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)

Cascata

• 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)

Espiral

• “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