Sistemas de informação complexos
Feitos para cada tipo de serviços e indústrias
A engenharia de software se destina a apoiar o desenvolvimento de software profissional em vez de progressão individual. Ela inclui técnicas que apoiam a especificação, o projeto e a evolução do software. Assim o sommerville, aponta ao um conjunto de atividades relacionadas que se culminam num software pronto, não tendo um método universal.
4 atividades universais para identificar a criação de um software:
- Especificação: A funcionalidade do software e as restrições sobre sua operação devem ser definidas.
- Desenvolvimento: O software deve ser produzido para atender a especificação.
- Validação: O software deve ser validado para garantir que atenda o que o cliente deseja
- Evolução: O software deve evoluir para atender as mudanças nas necessidades dos clientes.
Modelos de processos de software:
1 - Processos prescritivos: Modelos de processos tradicionais, que surgiram com o propósito de organizar e direcionar as atividades inerentes ao desenvolvimento de software.
2 - Processos ágeis: Possuem iterações curtas, nas quais o resultado é medido através do produto pronto, ao contrário dos modelos prescritivos, em que o desenvolvimento é dividido em etapas bem definidas
Exemplos de modelos:
Modelo em Cascata
- Desenvolvido na década de 1970
- Derivado dos modelos utilizados na engenharia de grandes sistemas militares
- Apresenta o processo de desenvolvimento de software como uma série de fases
Marcado por lentidão por uma parte só deverá ser iniciada quando a anterior estiver sido terminada.
Vantagens
- Fases bem definidas ajudam a detectar erros mais cedo.
- Procurar promover a estabilidade dos requisitos.
- Funciona bem quando os requisitos são conhecidos e estáveis.
- É adequado para equipes tecnicamente fracas ou inexperientes (Em lidar com os modelos de trabalho).
Desvantagens
- Não produz resultados tangíveis até a fase de codificação
- É difícil estabelecer requisitos completos antes de começar a codificar.
- Desenvolvimento sempre reclamam que os usuários não sabem expressar aquilo de que precisam.
- Não há flexibilidade com requisitos