36
Engenharia de Software Aula 2 – Processos de Software Profa. Dra. Judith Pavón Universidade Salvador – UNIFACS 2012

Aula2 processos sw

Embed Size (px)

Citation preview

Page 1: Aula2 processos sw

Engenharia de Software

Aula 2 – Processos de SoftwareProfa. Dra. Judith Pavón

Universidade Salvador – UNIFACS2012

Page 2: Aula2 processos sw

Conteúdo Objetivo da aula Leitura recomendada Processos Modelos de Processos de Desenvolvimento de

Software Processo de Software (genêrico) Modelos do Ciclo de Vida de Software Linguagem Método Ferramenta CASE Metodologia Pontos Principais

2

Page 3: Aula2 processos sw

Objetivo da aula

3

O objetivo desta aula é apresentar os conceitos de processo de software e as características dos processos tradicionais de desenvolvimento de software.

Page 4: Aula2 processos sw

4

• Conjunto de atividades pré-definidas que levam a umresultado de boa qualidade, nas condições desejadas doprojeto (tempo e custo).• Os processos devem ser adequados aos diferentes tiposde sistema a construir.

Os modelos de processos de desenvolvimento de software foram originalmente propostos para colocar ordem no caos do desenvolvimento de software.

Processos

Maturidade do processo

- Medida da eficiência global da empresa de software em relação ao processo de desenvolvimento (Ex. CMMI)

Page 5: Aula2 processos sw

Processo Conjunto de atividades

bem definidas com responsáveis com artefatos de entrada e saída com dependências entre as mesmas

e ordem de execução com modelo de ciclo de vida

Page 6: Aula2 processos sw

6

• Os modelos de processos de desenvolvimento de software têm trazido uma certa dose de estrutura útil para o trabalho de engenharia de software e têm fornecido um roteiro razoavelmente efetivo para as equipes de software.

• Quem decide o modelo de processo de desenvolvimento a ser utilizado?Os líderes de equipe ou gerentes adaptam um modelo de processo a suas necessidades e depois o seguem.

Modelos de Processo de Desenvolvimento de Software

Page 7: Aula2 processos sw

7

• Por que é importante?Porque fornece estabilidade, controle e organização a uma atividade que pode, se deixada sem controle, tornar-se caótica.

• Quais são os passos?O processo dirige uma equipe de software por meio de um arcabouço de atividades guarda-chuva que são organizadas em um fluxo de processo que pode ser linear, incremental ou evolutivo.

• Qual é o produto do trabalho?Do ponto de vista de um engenheiro de software, os produtos do trabalho são todos os artefatos que conformam um software.

• Como tenho certeza que fiz corretamente?Existem diversos mecanismos de avaliação de processo de software que permitem às organizações determinar a “maturidade” do seu processo.

Modelos de Processo de Desenvolvimento de Software

Page 8: Aula2 processos sw

um framework para as tarefas necessárias para construir software de qualidade

Três fases genéricas: Definição Desenvolvimento Manutenção

Processo de Software (genêrico)

Page 9: Aula2 processos sw

Fase de Definição Foco: o que

Atividades: Análise de viabilidade

planejamento do projeto

análise e especificação de requisitos

Page 10: Aula2 processos sw

Fase de Desenvolvimento Foco: como

Atividades: projeto do software

geração de código

teste do software

Page 11: Aula2 processos sw

Fase de Manutenção

Foco: mudanças no produto associadas a:

correção de erros adaptação por mudanças no ambiente evolução por mudanças nos requisitos

do usuário

Page 12: Aula2 processos sw

Atividades de Apoio acompanhamento e controle do projeto revisões técnicas garantia da qualidade de software gerência de configuração preparação e produção de documentos gerência de reuso medições gerência de risco

Page 13: Aula2 processos sw

Atividade 3 (entregar na próxima aula)

Trabalho em duplas1. Identificar e listar os principais processos de

desenvolvimento de software

2. Fazer um breve resumo das principais características de cada processo listado no item anterior, comentar as fases desse processo e quando é recomendado usar.

3. Escolha um sistema a ser desenvolvido.

4. Defina o processo de desenvolvimento a ser seguido.

13

Page 14: Aula2 processos sw

Modelos do Ciclo de Vida de Software Cascata Modelos Iterativos

Espiral Incremental (ex: do RUP)

...

Page 15: Aula2 processos sw

Modelo Cascata

Page 16: Aula2 processos sw

Modelo Cascata

Page 17: Aula2 processos sw

A metodologia de desenvolvimento em cascata foi desenvolvida pela marinha norte-americana nos anos 60 para permitir o desenvolvimento de software militares.

Propõe uma sequência de fases rígidas. Ao final de cada fase, a equipe de projeto

finaliza com uma revisão. Somente pode ir para a próxima fase, se

finalizar a anterior para o sistema como um todo.

Modelo Cascata

Page 18: Aula2 processos sw

A Metodologia em Cascata funciona bem quando os requisitos do usuário são rígidos e podem ser conhecidos com antecedência.

A metodologia de Desenvolvimento em Cascata pode funcionar bem em ambientes rígidos e fortemente controlados.

No cenário comercial, somente recomenda-se usar este modelo para sistemas pequenos e simples, pois se for um sistema complexo vai demorar muito tempo até mostrar o funcionamento do sistema.

Modelo Cascata – Quando usar

Page 19: Aula2 processos sw

O modelo de Prototipagem é uma abordagem que visualiza o desenvolvimento de concepções do sistema conforme o andamento do projeto.

Esta metodologia baseia-se na utilização de prototipagem visual ou modelos do sistema final. Estes modelos podem ser simples desenhos, imagens gráficas ou simulações de aplicações.

Esta metodologia é até certo ponto bastante flexível a respeito de mudanças de requisitos; contudo, este processo precisa de muito controle.

Prototipação

Page 20: Aula2 processos sw

Prototipação

Page 21: Aula2 processos sw

Modelos Iterativos Requisitos de sistema SEMPRE evoluem

durante o decorrer de um projeto. Assim a iteração do processo sempre faz parte do desenvolvimento.

Iterações podem ser aplicadas a quaisquer dos processos de software.

Duas abordagens (relacionadas) Desenvolvimento espiral Desenvolvimento incremental

Page 22: Aula2 processos sw

Desenvolvimento Espiral Guia o processo de desenvolvimento com base em

análise de riscos e planejamento que é realizado durante toda a evolução do desenvolvimento.

Exemplos de riscos: pessoas que abandonam a equipe de desenvolvimento, ferramentas que não podem ser utilizadas, falha em equipamentos usados no desenvolvimento ou que serão utilizados no produto final, etc.

A identificação e o gerenciamento de riscos é hoje uma atividade importantíssima no desenvolvimento de software devido à imaturidade da área e à falta de conhecimento, técnicas e ferramentas adequadas.

Page 23: Aula2 processos sw

Desenvolvimento Espiral Guia o processo de desenvolvimento com base em

análise de riscos e planejamento que é realizado durante toda a evolução do desenvolvimento.

Exemplos de riscos: pessoas que abandonam a equipe de desenvolvimento, ferramentas que não podem ser utilizadas, falha em equipamentos usados no desenvolvimento ou que serão utilizados no produto final, etc.

A identificação e o gerenciamento de riscos é hoje uma atividade importantíssima no desenvolvimento de software devido à imaturidade da área e à falta de conhecimento, técnicas e ferramentas adequadas.

Page 24: Aula2 processos sw

Desenvolvimento Espiral

Page 25: Aula2 processos sw

Desenvolvimento Espiral

Page 26: Aula2 processos sw

Desenvolvimento Incremental Em vez de entregar o sistema como um todo,

o desenvolvimento e a entrega são divididos em incrementos, com cada incremento entregando parte da funcionalidade requerida

Requisitos dos usuários são priorizados e os requisitos de mais alta prioridade são incluídos nas iterações iniciais

Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são "congelados". Embora os requisitos possam continuar a evoluir para incrementos posteriores.

Page 27: Aula2 processos sw

RUP (Rational Unified Process)

A metodologia RUP (Rational Unified Process) é um processo que fornece uma metodologia disciplinada de desenvolvimento utilizando um conjunto de ferramentas, modelos e entregáveis.

Nesse modelo, considera-se o desenvolvimento do software em ciclos iterativos onde uma pequena porção dos requisitos passa por todas as etapas de desenvolvimento como em um modelo cascata.

Ao final de cada ciclo de iteração têm-se uma nova versão do software, a qual será incrementada a cada novo ciclo que ocorrer.

Page 28: Aula2 processos sw

RUP (Rational Unified Process)

O RUP é estruturado em duas dimensões: Eixo X -Tempo: divisão do ciclo de vida em

fases e iterações, mostra os aspectos do ciclo de vida do processo à medida que se desenvolve.

Eixo Y - Componentes de processo: produção de um conjunto específico de artefatos (produtos) com atividades bem definidas.

Page 29: Aula2 processos sw

RUP (Rational Unified Process)

Page 30: Aula2 processos sw

Linguagem Notação com sintaxe e semântica

bem definidas com representação gráfica ou textual

Usada para descrever os artefatos gerados durante o desenvolvimento de software

Exemplos: UML, BPMN

Page 31: Aula2 processos sw

Método Descrição sistemática de como

deve-se realizar uma determinada atividade ou tarefa

A descrição é normalmente feita através de padrões e guias

Exemplos: Método para descoberta das classes de análise no RUP.

Page 32: Aula2 processos sw

Ferramenta CASE Provê suporte computacional a um

determinado método ou linguagem Ambiente de desenvolvimento:

conjunto de ferramentas integradas (CASE)

Exemplos: Rational Rose, JBuilder

Page 33: Aula2 processos sw

Metodologia Conjunto de métodos + processo

Page 34: Aula2 processos sw

Pontos principais Engenharia de software é uma disciplina de

engenharia que está envolvida com todos os aspectos da produção de software

Produtos de software consistem de programas desenvolvidos e documentação associada. Alguns atributos de qualidade do produto são manutenibilidade, eficiência e usabilidade

O processo de software consiste nas atividades que são envolvidas no desenvolvimento de produtos de software

Page 35: Aula2 processos sw

Pontos principais Métodos são formas organizadas de produzir

software. Eles incluem sugestões para o processo a ser seguido, as notações a serem usadas, regras que governam as descrições do sistema que são produzidas e diretrizes de projeto

Ferramentas CASE são sistemas de software que são projetados para suportar as atividades rotineiras no processo de software, como edição de diagramas de projeto e verificação de consistência dos diagramas

Page 36: Aula2 processos sw

Dúvidas

36