Vous êtes sur la page 1sur 11

Modelos de Processo (mtodos)

Um modelo de processo ou mtodo define um conjunto de atividades especficas. Principais modelos:


Cascata (Waterfall) Espiral (Spiral) Evolutivo Incremental Processo Unificado da Rational (Rational Unified Process RUP) eXtreme Programming (XP) OpenUP
Engenharia de Software 2008 Jair C Leite

Modelo Cascata

Fonte: Ian Sommerville


Engenharia de Software 2008 Jair C Leite

Atividades tpicas do modelo Cascata


Anlise e definio de requisitos
Objetivos, funes e restries so definidos, com ajuda de clientes e usurios, e servem como uma especificao do sistema, indicando o que deve ser implementado.

Design de sistemas e software


Envolve a descrio do sistema e do software em termos de unidades abstratas e de suas relaes, indicando como o software deve ser implementado.

Implementao e testes de unidade


As unidades do software devem ser codificadas e testadas individualmente.

Integrao e testes de sistema


A unidades so integradas e testadas

Entrega, operao e manuteno


O sistema instalado e colocando em operao. A manuteno envolve a correo de erros e evoluo do sistema para atender a novos requisitos.
Engenharia de Software 2008 Jair C Leite

Caractersticas do modelo Cascata


Diviso inflexvel do projeto em estgios distintos. A fase seguinte s deve iniciar quando a anterior tiver sido concluda e aprovada pelas partes envolvidas. Por exemplo,o design apenas deve comear quando os requisitos estiverem totalmente definidos e aprovados Dificuldade em realizar mudanas com o processo em andamento requisitos sempre mudam. O modelo em cascata apropriado quanto se tem um entendimento claro dos requisitos. Oferece maior previsibilidade de prazos e custo: melhor planejamento e gerenciamento. A engenharia do sistema segue este tipo de modelo.
Engenharia de Software 2008 Jair C Leite

Prototipao
Abordagem baseada numa viso evolutiva do desenvolvimento de software, afetando o processo como um todo Prottipo de software um sistema que...
funciona no tem tempo de vida definido pode servir a mltiplos propsitos deve ser construdo rapidamente e com baixo custo parte integrante de um design centrado no usurio, para avaliao e modificao
Engenharia de Software 2008 Jair C Leite

Tipos e objetivos dos prottipos


Tipos
Falso Autntico Funcional Sistema piloto

Objetivos
Explorao Experimentao Evoluo

Engenharia de Software 2008 Jair C Leite

Prototipao

Engenharia de Software 2008 Jair C Leite

Desenvolvimento Evolutivo
Desenvolvimento Exploratrio
A partir de requisitos iniciais, elaborado um prottipo que permite, junto ao cliente, explorar novos requisitos.

Prototipagem
Prottipo descartveis Prottipo evolutivos - evolui para o produto final

Caractersticas
til quando os requisitos esto obscuros Especificao construda gradativamente Possibilitam um rpido desenvolvimento da aplicao Requer ferramentas especficas Os sistemas so freqentemente mal-estruturados e maldocumentados. Processo no claro, dificuldade de planejamento e gerenciamento Engenharia de Software 2008 Jair C Leite

Desenvolvimento Evolutivo

Fonte: Ian Sommerville


Engenharia de Software 2008 Jair C Leite

Desenvolvimento incremental
Desenvolvimento iterativo, em ciclos que permitem revises de atividades anteriores. O sistema particionado em partes independentes que podem ser entregues medida que forem ficando prontas e avaliadas. A arquitetura do sistema deve possibilitar a entrega das partes independentes.

Engenharia de Software 2008 Jair C Leite

Caractersticas do modelo incremental


Os incrementos funcionam como prottipos do sistema. A avaliao do cliente pode ser feitas a partir das experincias do usurio com as entregas parciais. Novos requisitos podem ser incorporados aos outros incrementos do sistema. Deve-se identificar funcionalidade prioritrias que sero desenvolvidas primeiro. Os processos de cada incremento podem ser independentes. Pode-se utilizar Cascata. Risco menor de fracasso completo do sistema. A funes entregues primeiro so testadas mais vezes, medida que os incrementos so entregues.
Engenharia de Software 2008 Jair C Leite

Desenvolvimento formal de sistemas


Baseado na transformao de uma srie representaes matemticas da especificao em um programa executvel. A especificao de requisitos, informal ou semi-formal, redefinida em uma especificao formal detalhada, utilizando uma notao matemtica:
VDM, Z, B, Larch e outras

As atividades de design, implementao e testes so substitudas por um processo transformacional. As transformaes devem ser matematicamente corretas, baseadas em provas-de-correo. As provas so longas e impraticveis para sistemas de grande porte. adequado a sistemas com exigncias rigorosas de segurana, confiana e garantia.

Engenharia de Software 2008 Jair C Leite

Transformaes formais

Fonte: Ian Sommerville


Engenharia de Software 2008 Jair C Leite

Modelo Espiral
O processo representado como uma espiral. Cada ciclo do espiral uma fase do processo Cada ciclo determina quatro etapas fundamentais:
Definio de objetivos, alternativas e restries Anlise e reduo de riscos Desenvolvimento e validao Planejamento do prximo ciclo

Prottipos so construdos em cada ciclo. No h fases fixas pr-definidas. Elas so definidas de acordo com os objetivos. um meta-modelo: qualquer modelo pode ser derivado a partir do modelo espiral
Engenharia de Software 2008 Jair C Leite

Modelo Espiral (Spiral)

Engenharia de Software 2008 Jair C Leite

Programao eXtrema (XP)


Abordagem baseada no desenvolvimento e entrega de pequenas partes da funcionalidade do software. As partes devem ser incrementadas e requer a melhoria constante do cdigo (re-trabalho). Requer o envolvimento constante do cliente Os sistema concebido a partir de uma metfora e descritos em estrias do usurio. necessrio a definio de testes de aceitao. No existe um processo de design tradicional e no so gerados modelos da arquitetura do software A programao feita por pares de programadores. Prtica do codifica-e-conserta.
Engenharia de Software 2008 Jair C Leite

Regras e Prticas - 1
Planejando
Estrias do usurio Planejando liberaes (releases) e pequenas liberaes Dividir projetos em iteraes (ciclos) Medindo velocidade do projeto Dinmica de pessoal Reunies dirias em p Simplicidade (no adicione funcionalidades antes do tempo) Metfora Cartes CRC (Classes, Responsabilidades e Colaborao) Re-fabricar (refactor)
Engenharia de Software 2008 Jair C Leite

Projetando (designing)

Regras e Prticas - 2
Codificando
O cliente deve estar sempre disponvel. Programao em pares. Codificar de acordo com padres acordados. Codificar testes de unidade primeiro. Integrar com freqncia. O cdigo propriedade coletiva. No atrase. Todo cdigo deve ter os testes de unidade. Cada unidade deve ser testada antes de liberada. Quando um erro encontrado, testes devem ser realizados. Testes de aceitao devem ser freqentes.
Engenharia de Software 2008 Jair C Leite

Testando

XP - Projeto

Engenharia de Software 2008 Jair C Leite

XP - Iterao

Engenharia de Software 2008 Jair C Leite

XP - Desenvolvimento

Engenharia de Software 2008 Jair C Leite

XP Propriedade coletiva do cdigo

Engenharia de Software 2008 Jair C Leite

Vous aimerez peut-être aussi