31
Engenharia de Softwares e Gerência de Projetos Prof. Rudson Kiyoshi Souza Carvalho Anhanguera - 2015 Engenharia de Software - Parte 2

Aula 2 - Processos de Software

Embed Size (px)

Citation preview

Page 1: Aula 2 - Processos de Software

Engenharia de Softwares e Gerência de Projetos

Prof. Rudson Kiyoshi Souza Carvalho Anhanguera - 2015

Engenharia de Software - Parte 2

Page 2: Aula 2 - Processos de Software

Engenharia de Softwares e Gerência de Projetos.

Page 3: Aula 2 - Processos de Software

Processos de Software

Page 4: Aula 2 - Processos de Software

O que é um processo de Software?

Page 5: Aula 2 - Processos de Software

• Um processo de software é um conjunto de atividades relacionadas que levam à produção de um produto de software. Essas atividades podem envolver o desenvolvimento de software a partir do zero em uma linguagem padrão de programação como C# ou Java.

Processo de Software

Page 6: Aula 2 - Processos de Software

Modelos de Processos de Software

• O modelo de um processo de software é uma representação simplificada de um processo de software, e existem vários modelos de processo de software (ou paradigmas de engenharia de software)

Obs. cada uma representa uma tentativa de colocar ordem em uma atividade inerentemente caótica

Page 7: Aula 2 - Processos de Software
Page 8: Aula 2 - Processos de Software

Modelos de Processos de Software

Page 9: Aula 2 - Processos de Software
Page 10: Aula 2 - Processos de Software

Modelo em Cascata (Waterfall)

Page 11: Aula 2 - Processos de Software

Modelo em Cascata• Popularizado na década de 1970;

• Características:

• Composto por uma sequência de atividades;

• Uma atividade começa a executar quando a outra termina;

• Resultado de uma etapa é utilizado na etapa seguinte;

• Guiado por documentos;

• Ciclo de vida mais antigo e mais utilizado.

Page 12: Aula 2 - Processos de Software

Modelo em Cascata• Análise e definição de requisitos

• Objetivos, funções e restrições são definidos, com á ajuda de clientes e usuários, e servem como uma especificação do sistema, indicando o que deve ser implementado.

• Design de sistemas e software

• Envolve a descrição do sistema e do software em termos de unidades abstratas e de suas relações, indicando como o software deve ser implementado.

• Implementação e testes de unidade

• As unidades do software devem ser codificadas e testadas individualmente.

• Integração e testes de sistema

• As unidades são integradas e testadas

• Entrega, operação e manutenção

• O sistema é instalado e colocando em operação. A manutenção envolve a correção de erros e evolução do sistema para atender a novos requisitos.

Engenharia de Software © 2008 Jair C Leite

Page 13: Aula 2 - Processos de Software

Problemas Comuns no Modelo em Cascata

• Projetos reais raramente seguem o fluxo sequencial que o modelo propõe;

• ︎ Logo no início é difícil estabelecer explicitamente todos os requisitos. No começo dos projetos sempre existe uma incerteza natural;

• ︎ O cliente deve ter paciência. Uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento (na instalação);

• ︎ Difícil identificação de sistemas legados (não acomoda a engenharia reversa).

Page 14: Aula 2 - Processos de Software

Desenvolvimento Incremental

Page 15: Aula 2 - Processos de Software

Desenvolvimento Incremental

• O desenvolvimento incremental é baseado na ideia de desenvolver uma implementação inicial, expô-la aos comentários dos usuários e continuar por meio da criação de várias versões até que um sistema adequado seja desenvolvido.

Page 16: Aula 2 - Processos de Software

Desenvolvimento Incremental

Page 17: Aula 2 - Processos de Software

Problemas Comuns no Desenvolvimento Incremental• Do ponto de vista de gerenciamento, a abordagem

incremental tem dois problemas:

• O processo não é visível. Os gerentes precisam de entregas regulares para mensurar o progresso.

• A estrutura do sistema necessita de diversas refatorações para acomodar as mudanças, e esta tarefa consome tempo e dinheiro.

Page 18: Aula 2 - Processos de Software

Engenharia de Software Orientada a Reuso

• Códigos, componentes ou sistemas completos que possuem semelhanças com a implementação desejada são identificados, modificados/adaptados para serem incorporados ao projeto.

Page 19: Aula 2 - Processos de Software

Engenharia de Software Orientada a Reúso

Page 20: Aula 2 - Processos de Software

Atividades do Processo

• Processos reais de software são intercalados com sequências de atividades técnicas, de colaboração e de gerenciamento, com o intuito de especificar, projetar, implementar e testar um sistema de software.

Page 21: Aula 2 - Processos de Software

Especificação do Software

• É o processo de compreensão e definição dos serviços requisitados do sistema e identificação de restrições relativas à operação e ao desenvolvimento do sistema.

Page 22: Aula 2 - Processos de Software

Especificação de Software

Page 23: Aula 2 - Processos de Software
Page 24: Aula 2 - Processos de Software

Projeto e Implementação• É o processo de conversão de uma especificação do sistema

em um sistema executável. Sempre envolve processo de projeto e programação de software, mas, se for usada um abordagem incremental para o desenvolvimento, também pode envolver o refinamento da especificação do software.

• Definição da arquitetura

• Projeto de Interfaces e Componentes

• Modelo de Dados

• Codificação

Page 25: Aula 2 - Processos de Software

Validação de Software• Tem a intenção de mostrar que um software se

adequa à suas especificações ao mesmo tempo que satisfaz as especificações do cliente.

• Testes de desenvolvimento

• Testes de sistema (integrado)

• Teste de aceitação

Page 26: Aula 2 - Processos de Software

Evolução do Software• Com o decorrer do tempo o software pode mudar,

e o mesmo deverá ser flexível para acomodar futuras mudanças.

Page 27: Aula 2 - Processos de Software

Prototipação

• O objetivo é entender os requisitos do usuário e, obter uma melhor definição dos requisitos do sistema.

• Podendo ajudar a validar requisitos e estudar soluções especificas para apoiar o projeto de interface do usuário.

Page 28: Aula 2 - Processos de Software

Prototipação

Page 29: Aula 2 - Processos de Software

Entrega Incremental• É uma abordagem para desenvolvimento de

software na qual alguns dos incrementos desenvolvidos são entregues ao cliente e implementados para uso em um ambiente operacional.

Page 30: Aula 2 - Processos de Software

Estudo de Caso Faz Site

• Atividade individual.

• Para o estudo de caso Faz Site, crie um processo de software que na concepção de vocês garantiriam a entrega do projeto em questão com sucesso.

Page 31: Aula 2 - Processos de Software