Introdução à Engenharia de Software
Data de postagem: 12/02/2020 22:27:56
Objetivos do da Engenharia de Software:
- desenvolver software iterativamente
- gerenciar requisitos
- usar arquiteturas baseadas em componentes
- modelar visualmente o software
- verificação contínua da qualidade #6: controle de mudanças
Modelos tradicionais de desenvolvimento:
Modelo Cascata (Waterfall)
• Intenção: Uma seqüência unidirecional de atividades transforma requisitos em um sistema
• Realidade :
- Reduz flexibilidade: é difícil saber onde se vai chegar quando os caminhos são vários;
- Desestimula inovação: software em execução constrói uma máquina (sistema), em muitos casos uma novidade;
- evita-se experimentar novos conceitos porque o sistema pode não se adequar às necessidades reais de seus usuários;
Modelo Espiral (Spiral)
• “De modo cíclico e incremental, aprimorar o grau de definição e implementação de um sistema, enquanto diminui o grau de risco do projeto” .
• Milestones (marcos de ancoragem) asseguram compromisso de todos os envolvidos com a satisfação dos objetivos do projeto.
• Produção dos artefatos é concorrente, e não seqüencial
• Elementos fundamentais considerados em um ciclo espiral
– Objetivos e restrições dos envolvidos
– Alternativas para produtos e processos
– Identificação e resolução de riscos
– Revisão por parte dos envolvidos (stakeholders)
– Compromisso no prosseguimento para próxima etapa
• Riscos determinam:
– Nível de esforço para próxima etapa
– Nível de detalhe dos artefatos a produzir
• Ênfase do sistema e no ciclo de vida, em vez de código.
Componentes da Engenharia de Software:
Requisitos.
– Capacidades, propriedades e restrições que devem estar presentes em um sistema
• O problema dos requisitos:
– Mudança constante:
• Determinar requisitos reais do sistema é uma tarefa contínua e constante
– Especificação, rastreamento, negociação e evolução.
Modelos
São abstrações da realidade
– Estruturam solução de problemas
– Permite experimentar com várias soluções
– Reduzem complexidade e incrementam compreensão
– Reduzem custo e tempo para desenvolvimento de conceitos e produtos
– Reduz riscos
• UML
– Linguagem visual para visualizar, especificar, construir e documentar estrutura e comportamento de um sistema de software
• Modelos estruturais e comportamentais
Referência: https://cic.unb.br/~jhcf/MyBooks/iess/RUP/FaseI-Introdutorio-PartesI-II-III/RUP-ParteI.PDF