Técnicas e Projeto de Sistemas
André Mesquita [email protected]@gmail.com
Introdução a Engenharia de Software – Parte 2
Técnico Subsequente – Módulo III(22/02/2010)
Engenharia de Software – Modelos
o Definem um conjunto distinto de atividades, ações, tarefas, marcos e produtos de trabalho
o Engenheiros de software e seus gerentes adaptam um modelo de ciclo de vida a sua necessidades e depois o seguem
o Fornece estabilidade, controle e organização a uma atividade que pode, se deixada sem controle, tornar-se bastante caótica
Engenharia de Software – Modelos
o Ciclo de vida clássico (Cascata)o Abordagem sistemática e sequencialo Paradigma mais antigo da ES
Engenharia de Software – Modelos
o Ciclo de vida clássico (Cascata)o Vantagens
o Torna o processo estruturado de forma fácil de ser visualizado e utilizado
o Todas as atividades identificadas nas fases do modelo são fundamentais
o Esta abordagem é quase que um padrão para muitas empresas
Engenharia de Software – Modelos
o Ciclo de vida clássico (Cascata)o Desvantagens
oNão fornece feedback entre as fases e não permite a atualização ou redefinição das fases anteriores
oNão suporta modificações nos requisitos (O cliente deveria “saber” todos os requisitos no início do projeto)
oNão visa a reutilização
o É excessivamente sincronizado, se ocorrer um atraso todo o processo é afetado
oO produto só é visto no final
Engenharia de Software – Modelos
o Ciclo de vida clássico (Cascata)o Pode ser evoluído em uma versão iterativao Chamada de modelo incremental
o Divide o projeto em pacotes de trabalho e aplica o modelo cascata
o Permite entregas mais rápidaso Exige um bom planejamento de iteraçõeso Representado por um gráfico com o modelo cascata
Engenharia de Software – Modelos
o Modelos evolucionários – Prototipaçãoo Vantagem
oConstrução de protótipos para aprovações das idéias e coleta de novos requisitos
oO cliente e o desenvolvedor devem ambos concordar que o protótipo seja construído para servir como um mecanismo a fim de definir os requisitos
o DesvantagemoCliente insiste que o protótipo seja com ligeiras
modificações, a versão final do produto
Engenharia de Software – Modelos
o Modelos evolucionários – Espiralo Engloba as melhores características do ciclo de vida
Clássico com o da prototipação
o Segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa Estrutura Iterativa que reflete mais realisticamente o mundo real
o Modelo utilizado por métodos ágeis
o Representado pelo desenho de um espiralo 1: Análise de requisitos e planejamento; 2: Análise de riscos
(gerenciar expectativas), 3: Prototipação e avaliação do cliente; 4: Construção e testes; 5: Aprovação pelo cliente
Engenharia de Software – Modelos
o Técnicas de Quarta Geraçãoo Concentra-se na capacidade de se especificar o
software a uma máquina em um nível próximo à linguagem natural
o Engloba um conjunto de ferramentas de software que possibilitam que:oO sistema seja especificado em uma linguagem de alto
nível
oO código fonte seja gerado automaticamente a partir dessas especificações
Engenharia de Software – Modelos
o Técnicas de Quarta Geraçãoo Vantagens
oQuanto mais alto o nível em que o software pode ser especificado em uma máquina, mais rapidamente o programa pode ser construído
oObtenção de requisitos facilitada: o cliente descreve os requisitos que são traduzidos para um protótipo operacional
oCiclo de vida simplificado
Engenharia de Software – Modelos
o Técnicas de Quarta Geraçãoo Desvantagens
oO cliente pode estar inseguro quanto aos requisitos
oO cliente pode ser incapaz de especificar as informações de forma adequada
oPode não ser eficiente em projetos grandes
Engenharia de software
o Áreas de conhecimento da engenharia de Software (SWEBOK IEEE)o Engenharia de requisitos, Design, Construção, Teste,
Manutenção, Gerência de configuração, Gerência da engenharia de software, Processos da engenharia de software, Ferramentas e métodos da engenharia de software e Qualidade de Software
o Disciplinas relacionadaso Engenharia da computação, Gerência de Projetos, Ciência
da Computação, Ergonomia de Software, Matemática e Engenharia de Sistemas