A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

GSI030 – engenharia de software

Apresentações semelhantes


Apresentação em tema: "GSI030 – engenharia de software"— Transcrição da apresentação:

1 GSI030 – engenharia de software
UFU – Universidade Federal de Uberlândia FACOM – Faculdade de Computação GSI030 – engenharia de software Aulas 02 – Processos de Software Prof. William Chaves de Souza Carvalho

2 Agenda de Hoje Modelos de processo de software.
Atividades de processo. Modelos de Processo

3 Processo de software “Um processo de software é um método para desenvolver ou produzir software. A pesquisa em processo de software lida com métodos e tecnologias estimativas, suporte e melhoria das atividades de desenvolvimento de software. Define quem faz o que, quando e como.

4 Chapter 2 Software Processes
4 O processo de software Um conjunto estruturado de atividades necessárias para desenvolver um sistema de software. Existem vários processos de desenvolvimento de software diferentes mas todos envolvem: Um modelo de processo de desenvolvimento de software é uma representação abstrata de um processo. Ele apresenta uma descrição do processo de uma perspectiva em particular. Especificação Implementação Validação Evolução especificação – definição do quê o sistema deve fazer; projeto e implementação – definição da organização do sistema e implementação do sistema; validação – checagem de que o sistema faz o que o cliente deseja; evolução – evolução em resposta a mudanças nas necessidades do cliente.

5 Descrições de processo de software
5 Chapter 2 Software Processes Descrições de processo de software Quando descrevemos e discutimos processos, geralmente falamos sobre as atividades desses processos, tais como especificação de modelo de dados, desenvolvimento de interface de usuário, etc. e organização dessas atividades. Descrições de processos também podem incluir: Produtos, que são os resultados de uma atividade do processo; Papéis, que refletem as responsabilidades das pessoas envolvidas no processo; Pré e pós-condições, que são declarações que são verdadeiras antes e depois de uma atividade do processo ser executada, ou um produto produzido.

6 Processos dirigidos a planos e ágeis
6 Chapter 2 Software Processes Processos dirigidos a planos e ágeis Processos dirigidos a planos são processos em que todas as atividades do processo são planejadas com antecedência e o progresso é medido em relação a esse plano. Nos processos ágeis o planejamento é incremental e é mais fácil modificar o processo para refletir alterações nos requisitos do cliente. Na realidade, os processos mais práticos incluem elementos dos processos ágeis e dirigidos a planos. Não existe processo de software certo ou errado.

7 Modelos Um modelo é uma simplificação da realidade.
Planos de detalhes, podem ser estruturais (organização do sistema) ou comportamentais (dinâmica do sistema) Modelos são construídos para permitir um melhor entendimento sobre o sistema que está sendo construído. especificar a estrutura e comportamento guia para construção do sistema documentam as decisões tomadas

8 Modelos Modelos de sistemas complexos são importantes porque não temos capacidade de compreendê-los inteiramente Os melhores modelos estão relacionados à realidade (modelos simplificam a realidade) Nenhum modelo único é suficiente. Conjunto de modelos independentes

9 Modelagem na Engenharia Civil

10 Modelos de processo de software
Uma representação simplificada de um processo de software, apresentada de uma perspectiva específica Exemplos de modelos de processo são: Workflow - sucessão de atividades Fluxo de Dados - fluxo de informação Papel/ação – representa os papéis das pessoas e as atividades pelas quais elas são responsáveis.

11 O modelo cascata Principais problemas:
O cliente participa do projeto somente no início e no final Os riscos são mitigados no final do projeto Tem descoberta tardia de erros de projeto Levantamento Análise Projeto Implementação Testes

12 O modelo cascata Principais problemas:
O cliente participa do projeto somente no início e no final Os riscos são mitigados no final do projeto Tem descoberta tardia de erros de projeto Levantamento Análise Projeto Implementação Testes

13 Fases do modelo cascata
Chapter 2 Software Processes 1313 Fases do modelo cascata Existem fases identificadas e separadas no modelo cascata: O principal inconveniente do modelo cascata é a dificuldade de acomodação de mudanças depois que o processo já foi iniciado. Em princípio, uma fase precisa ser completada antes de se mover para a próxima fase. Análise e definição de requisitos Projeto de sistema e software Implementação e teste de unidade Integração e teste de sistema Operação e manutenção

14 O modelo iterativo Iteração 1 Iteração 2 Iteração 3 Módulo 1 Módulo 2
Levantamento Análise Projeto Implementação Testes Levantamento Análise Projeto Implementação Testes Levantamento Análise Projeto Implementação Testes Módulo 1 Módulo 2 Módulo 3

15 O modelo iterativo e incremental
Iteração 1 Iteração 2 Iteração 3 Levantamento Análise Projeto Implementação Testes Levantamento Análise Projeto Implementação Testes Levantamento Análise Projeto Implementação Testes Módulo 3 Módulo 1 Módulo 1 Módulo 2 Módulo 1 Módulo 2

16 Benefícios do desenvolvimento incremental
1616 Chapter 2 Software Processes Benefícios do desenvolvimento incremental O custo para acomodar mudanças nos requisitos do cliente é reduzido. A quantidade de análise e documentação que precisa ser feita é bem menor do que o necessária no modelo cascata. É mais fácil obter feedback do cliente sobre o trabalho de desenvolvimento que tem sido feito. Os clientes podem comentar demonstrações do software e ver quanto foi implementado. Possibilidade de mais rapidez na entrega e implantação de software útil para o cliente. Os clientes podem usar e obter ganhos do software mais cedo do que é possível no processo cascata.

17 Problemas do desenvolvimento incremental
1717 Chapter 2 Software Processes Problemas do desenvolvimento incremental O processo não é visível. Gerentes precisam de entregas regulares para medir o progresso. Se os sistemas são desenvolvidos de forma rápida, não é viável do ponto de vista do custo produzir documentação para refletir todas as versões do sistema. A estrutura do sistema tende a degradar conforme novos incrementos são adicionados. A menos que tempo e dinheiro sejam gastos na reconstrução para melhorar o software, as mudanças regulares tendem a corromper a estrutura do sistema. A incorporação posterior de mudanças no software se torna progressivamente mais difícil e cara.

18 Protótipação rápida Um protótipo é uma versão inicial de um sistema usada para demonstrar conceitos e testar opções de projeto. Um protótipo pode ser usado: No processo de engenharia de requisitos para ajudar na elicitação e validação de requisitos; Nos processos de projeto para explorar opções e desenvolver um projeto de interface de usuário; No processo de testes para executar testes fim-a-fim.

19 Protótipação rápida Início Fim Coleta e refinamento dos requisitos
Refinamento do protótipo Engenharia do produto Projeto rápido Construção do protótipo Avaliação do protótipo pelo cliente Fim Início

20 Desenvolvimento de protótipos
Chapter 2 Software Processes 2020 Desenvolvimento de protótipos Pode ser baseado em linguagens ou ferramentas de prototipagem rápida. A prototipação deve focar em áreas do produto que não são bem entendidas; A checagem de erros e recuperação podem não estar incluídas no protótipo; O foco deve ser em requisitos funcionais ao invés de não funcionais como por exemplo, a confiabilidade e a segurança. Os protótipos devem ser descartados depois do desenvolvimento, pois não são uma boa base para um sistema em produção. Geralmente a estrutura do protótipo é degradada por mudanças rápidas;

21 Modelo espiral - Boehm Segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real Usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos. Cada loop na espiral representa uma fase do processo de software, ou seja, não existem fases fixas. Engloba as melhores características do ciclo de vida Clássico como o da Prototipação, adicionando um novo elemento: a Análise Dos Riscos

22 Modelo espiral de Boehm

23 Setores do modelo espiral
2323 Chapter 2 Software Processes Setores do modelo espiral O projeto é revisto e a próxima fase da espiral é planejada. Planejamento Um modelo de desenvolvimento para o sistema é escolhido, pode ser qualquer um dos modelos genéricos. Desenvolvimento e validação Os riscos são avaliados e atividades executadas para reduzir os principais riscos. Avaliação e redução de riscos São identificados os objetivos específicos para cada fase. Definição de objetivos

24 2424 Chapter 2 Software Processes Pontos Importantes Os processos de software são as atividades envolvidas na produção de um sistema de software. Os modelos de processo de software são representações abstratas desses processos. Modelos de processo gerais descrevem a organização dos processos de software. Exemplos desses processos gerais incluem o modelo 'cascata', desenvolvimento incremental e desenvolvimento orientado a reuso. A engenharia de requisitos é o processo de desenvolver uma especificação de software.

25 2525 Chapter 2 Software Processes Pontos Importantes Processos de projeto e implementação se preocupam em transformar uma especificação de requisitos em um sistema de software executável. A validação de software é o processo de checar se o sistema está em conformidade com sua especificação e se esse está de acordo com as necessidades reais do usuário do sistema. A evolução de software ocorre quando você altera sistemas de software existentes para adequá-los a novas necessidades. O software precisa evoluir para continuar útil.

26 Questões?


Carregar ppt "GSI030 – engenharia de software"

Apresentações semelhantes


Anúncios Google