Foto de Reijan

Sistemas embarcados

2023-09-29
4 atividades universais para identificar a criação de um software.

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