Você está na página 1de 23

“ENGENHARIA DE SOFTWARE II”

1. Introdução à Engenharia de Softaware II


2. Engenharia de Software e a problemática do
desenvolvimento de software
 A Crise da Engenharia de Software
Conteúdos
1. Apresentação do Docente e dos Estudantes;
2. Apresentação dos principais temas;
3. Metodologia do trabalho;
4. Formação de grupos de trabalho e distibuição de temas;
5. Introdução à Engenharia de Softaware II;
 Revisão dos principais conceitos.

2
1. Apresentação do docente e dos estudantes

Docente: Alfredo Castigo Zita

Contactos:
E-mail : fredzitha@gmail.com
Skype:
Celular: 84/87 50 98 680

Students

3
2. Apresentação dos Principais Temas

1. Engenharia de Software e a problemática do


desenvolvimento de software
2. Boas práticas no desenvolvimento de software
3. O processo de desenvolvimento de software
4. Especificação de requisitos de software
5. Padrões de Software
6. UML - Unified Modeling Language
7. Ciclo de vida de utilização de Ferramentas CASE. Integração de
ferramentas
8. Métricas no processo de desenvolvimento de Software
4
9. Verificação e validação do software.
3. Metodologia do trabalho;

1. Aulas
Introdução de novos conceitos

2. Exercícios

3. Projectos Individuais
• Desenvolvimento de um Projecto de Engenharia de Software

4. Assistência aos Projectos Individuais


5
4. Formação de grupos e distribuição de temas

– 1º Grupo: O processo de desenvolvimento de software.


– 2º Grupo: UML - Unified Modeling Language.
– 3º Grupo: Ciclo de vida de utilização de Ferramentas CASE.
Integração de ferramentas.
– 4º Grupo: Métricas no processo de desenvolvimento de
Software.
Envio e apresentação:
Envio até as 23:59 de 22 de Outubro (fredzitha@gmail.com)
Apresentação e discussão: 1º Grupo: 26 de Outubro
2º Grupo: 09 de Novembro
3º Grupo: 23 de Novembro
4º Grupo: 07 de Dezembro 6
Bibliografia a Consultar

1. Sommervill, Ian. Engenharia de Software; Tradução Ivan Bosnic e


Kalinka Gde O. Gonçalves; 9. ed. – São Paulo: Pearson Prentice Hall,
2011.
2. Pressman, Roger S. Engenharia de Software: Uma abordagem
profissional; Tradução Ariovaldo Griesi; 7. ed.
3. Adolph, Steve; Bramble, Paul. Patterns for Effective Use Cases,
Addison-Wesley Pearson Education, 2003.
4. Nunes, Mauro; O'Neill, Henrique. Fundamental de UML, 5ª Ed., FCA
Editora, 2007.
5. ONeil, H., Nunes, M., Ramos, P. Exercícios de UML, FCA, 2010.
6. Acobson, Ivar; Booch, Grady; Rumbaugh, James; The Unified
Software Development Process; Addison –Wesly; 1999.
7. Wazlawick, Raul S.; Engenharia de Software: Conceitos e Práticas; Rio
7
de Janeiro: Elsevier, 2013.
4. Introdução à Engenharia de Softaware II

8
Revisão dos principais conceitos (1)

A Engenharia de Software
 Disciplina da engenharia que se preocupa com todos os
aspectos da produção de software desde o início da
especificação do sistema até a manutenção do sistema após
esse estar sendo usado.
Utiliza teorias e métodos adequados para resolver os problemas tendo em
mente as restrições organizacionais e financeiras.

 Estudo ou aplicação de abordagens sistemáticas, econômicas e


quantificáveis para o desenvolvimento, operação e manutenção
de software de qualidade.
9
Revisão dos principais conceitos (2)

A Engenharia de Software
 Não se preocupa apenas com os processos técnicos do
desenvolvimento de software. Ela também inclui atividades
como gerenciamento de projeto de software e
desenvolvimento de ferramentas, métodos e teorias para
apoiar a produção de software.

10
Revisão dos principais conceitos (3)

Objetivos da Engenharia de Software


 Controle sobre o desenvolvimento de software dentro de
custos, prazos e níveis de qualidade desejados.
 Produtividade no desenvolvimento, operação e manutenção de
software.
 Qualidade versus Produtividade (custo e tempo de
desenvolvimento reduzido).
 Permitir que profissionais tenham controle sobre o
desenvolvimento de software dentro de custos, prazos e níveis
de qualidade desejados.

11
Revisão dos principais conceitos (4)

Características da Engenharia de Software


 A Engenharia de Software se refere a software (sistemas)
desenvolvidos por grupos ao invés de indivíduos.
 usa princípios de engenharia ao invés de arte, e
 inclui tanto aspectos técnicos quanto não técnicos.

12
Revisão dos principais conceitos (5)

Software de qualidade

 É aquele software que satisfaz os requisitos solicitados pelo


usuário. Deve ser fácil de manter, garantir confiança e
protecção, deve ser eficiente e aceitável.

13
Revisão dos principais conceitos (6)

Método
 Descrição sistemática de como deve-se realizar uma
determinada atividade ou tarefa.
 São formas organizadas de produzir software. Eles incluem
sugestões para o processo a ser seguido, as notações a serem
usadas, regras que governam as descrições do sistema que são
produzidas e diretrizes de projeto
 Exemplos: Método para descoberta das classes de análise
no RUP.

14
Revisão dos principais conceitos (7)

Processo
 Conjunto de actividades bem definidas com responsáveis com
artefatos de entrada e saída com dependências entre as
mesmas e ordem de execução com modelo de ciclo de vida.
 Um conjunto de actividades cujo objetivo é o desenvolvimento
ou a evolução do software.
 Conjunto coerente de actividades para especificação, projeto,
implementação e teste de sistemas de software
 É uma sequência de actividades que leva à produção de um
produto de software.

15
Revisão dos principais conceitos (8)

Produto de Software
 São programas desenvolvidos e documentação associada.

 Os atributos principais de um produto de software são


manutenibilidade, confiança, proteção, eficiência e
aceitabilidade.

16
Revisão dos principais conceitos (9)

Projecto de Software
 É uma descrição da estrutura do software a ser implementado,
dos modelos e estruturas de dados usados pelo sistema, das
interfaces entre os componentes do sistema e, às vezes, dos
algoritmos usados.
 Os projectistas desenvolvem o software de forma iterativa

17
Actividades fundamentais comuns a todos os processos

1. Especificação de software, em que clientes e engenheiros


definem o software a ser produzido e as restrições de sua
operação.
2. Desenvolvimento de software (Projeto e implementação de
software), em que o software é projetado e programado.
3. Validação de software, em que o software é verificado para
garantir que é o que o cliente quer.
4. Evolução de software, em que o software é modificado para
refletir a mudança de requisitos do cliente e do mercado.

18
Modelos de Processo de Software

1. O Modelo Sequencial Linear (Cascata)


2. Prototipação
3. O Modelo RAD (Rapid Application Development)
4. Modelos Evolutivos de Processo de Software
a) O Modelo Incremental
b) O Modelo Espiral
c) O Modelo de Montagem de Componentes
d) O Modelo de Desenvolvimento Concorrente
5. Modelos de Métodos Formais
6. Técnicas de Quarta Geração 19
Modelagem

Modelagem de sistema é o processo de desenvolvimento de


modelos abstratos de um sistema, em que cada modelo apresenta
uma visão ou perspectiva, diferente do sistema.
A modelagem de sistema geralmente representa o sistema com
algum tipo de notação gráfica, que, atualmente, quase sempre é
baseada em notações de UML (linguagem de modelagem
unificada, do inglês Unified Modeling Language).
1. Modelos de contexto
2. Modelos de interação
3. Modelos estruturais
4. Modelos comportamentais
20
5. Engenharia dirigida a modelos
Como lidar com mudanças? (1)

Abordagens que podem ser adotadas para a redução de


custos de retrabalho:
 Prevenção de mudanças - o processo de software inclui
atividades capazes de antecipar as mudanças possíveis
antes que seja necessário qualquer retrabalho (uso de
protótipos, por exemplo).
 Tolerância a mudanças - processo foi projetado para que as
mudanças possam ser acomodadas a um custo
relativamente baixo (desenvolvimento incremental).

21
Como lidar com mudanças? (2)

Formas de lidar com mudanças e mudanças nos


requisitos do sistema
1. Prototipação de sistema – uma versão do sistema ou
de parte dele é desenvolvida rapidamente para
verificar as necessidades do cliente e a viabilidade de
algumas decisões de projeto.
2. Entrega incremental – incrementos do sistema são
entregues aos clientes para comentários e
experimentação. Essa abordagem dá suporte tanto
para a prevenção de mudanças quanto para a
tolerância a mudanças.
22
Como lidar com mudanças?

Formas de lidar com mudanças e mudanças nos


requisitos do sistema
1. Prototipação de sistema – uma versão do sistema ou
de parte dele é desenvolvida rapidamente para
verificar as necessidades do cliente e a viabilidade de
algumas decisões de projeto.
2. Entrega incremental – incrementos do sistema são
entregues aos clientes para comentários e
experimentação. Essa abordagem dá suporte tanto
para a prevenção de mudanças quanto para a
tolerância a mudanças.
23

Você também pode gostar