150 likes | 224 Views
Técnicas e Projeto de Sistemas. André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com. Introdução a Engenharia de Software – Parte 2 Técnico Subsequente – Módulo III (22/02/2010). Engenharia de Software – Modelos.
E N D
Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Introdução a Engenharia de Software – Parte 2 Técnico Subsequente – Módulo III (22/02/2010)
Engenharia de Software – Modelos • Definem um conjunto distinto de atividades, ações, tarefas, marcos e produtos de trabalho • Engenheiros de software e seus gerentes adaptam um modelo de ciclo de vida a sua necessidades e depois o seguem • Fornece estabilidade, controle e organização a uma atividade que pode, se deixada sem controle, tornar-se bastante caótica
Engenharia de Software – Modelos • Ciclo de vida clássico (Cascata) • Abordagem sistemática e sequencial • Paradigma mais antigo da ES
Engenharia de Software – Modelos • Ciclo de vida clássico (Cascata) • Vantagens • Torna o processo estruturado de forma fácil de ser visualizado e utilizado • Todas as atividades identificadas nas fases do modelo são fundamentais • Esta abordagem é quase que um padrão para muitas empresas
Engenharia de Software – Modelos • Ciclo de vida clássico (Cascata) • Desvantagens • Não fornece feedback entre as fases e não permite a atualização ou redefinição das fases anteriores • Não suporta modificações nos requisitos (O cliente deveria “saber” todos os requisitos no início do projeto) • Não visa a reutilização • É excessivamente sincronizado, se ocorrer um atraso todo o processo é afetado • O produto só é visto no final
Engenharia de Software – Modelos • Ciclo de vida clássico (Cascata) • Pode ser evoluído em uma versão iterativa • Chamada de modelo incremental • Divide o projeto em pacotes de trabalho e aplica o modelo cascata • Permite entregas mais rápidas • Exige um bom planejamento de iterações • Representado por um gráfico com o modelo cascata
Engenharia de Software – Modelos • Modelos evolucionários • Prototipação • Espiral
Engenharia de Software – Modelos • Modelos evolucionários – Prototipação • Vantagem • Construção de protótipos para aprovações das idéias e coleta de novos requisitos • O 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 • Desvantagem • Cliente insiste que o protótipo seja com ligeiras modificações, a versão final do produto
Engenharia de Software – Modelos • Modelos evolucionários – Espiral • Engloba as melhores características do ciclo de vida Clássico com o da prototipaçã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 • Modelo utilizado por métodos ágeis • Representado pelo desenho de um espiral • 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 • Técnicas de Quarta Geração • Concentra-se na capacidade de se especificar o software a uma máquina em um nível próximo à linguagem natural • Engloba um conjunto de ferramentas de software que possibilitam que: • O sistema seja especificado em uma linguagem de alto nível • O código fonte seja gerado automaticamente a partir dessas especificações
Engenharia de Software – Modelos • Técnicas de Quarta Geração • Vantagens • Quanto mais alto o nível em que o software pode ser especificado em uma máquina, mais rapidamente o programa pode ser construído • Obtenção de requisitos facilitada: o cliente descreve os requisitos que são traduzidos para um protótipo operacional • Ciclo de vida simplificado
Engenharia de Software – Modelos • Técnicas de Quarta Geração – Ciclo de vida
Engenharia de Software – Modelos • Técnicas de Quarta Geração • Desvantagens • O cliente pode estar inseguro quanto aos requisitos • O cliente pode ser incapaz de especificar as informações de forma adequada • Pode não ser eficiente em projetos grandes
Engenharia de software • Áreas de conhecimento da engenharia de Software (SWEBOK IEEE) • 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 • Disciplinas relacionadas • Engenharia da computação, Gerência de Projetos, Ciência da Computação, Ergonomia de Software, Matemática e Engenharia de Sistemas
Atividade (Em grupo: Máximo 3) • Descreva os modelos (ou paradigmas) da engenharia de software (mínimo de 3 linhas para cada um deles): • Ciclo de vida clássico (cascata): • Incremental: • Prototipagem: • Espiral: • Técnicas de quarta geração: