Sei sulla pagina 1di 44

CICLO DE VIDA DOS SISTEMAS

1/45

CICLO DE VIDA E PROCESSO DE DESENVOLVIMENTO DE SOFTWARE


2/45

O QUE UM MODELO DE CICLO DE VIDA DE PROCESSO DE SOFTWARE?


Uma representao abstrata e simplificada do processo de desenvolvimento software, tipicamente mostrando as principais atividades e dados usados na produo e manuteno de software

3/45

PRINCIPAIS MODELOS DO CICLO DE VIDA DE SOFTWARE


Cascata Modelo de Desenvolvimento Evolucionrio
Programao Exploratria Prototipagem descartvel

Modelo de Transformao Formal Modelos Iterativos


Espiral Incremental
4/45

MODELO CASCATA (OU CLSSICO)


Derivado de modelos existentes em outras engenharias Sua estrutura composta por vrias etapas que so executadas de forma sistemtica e seqencial Na prtica, existe uma interao entre as etapas e cada etapa pode levar a modificaes nas etapas anteriores
5/45

MODELO CASCATA
Definio de Requisitos

Projeto do Sistema e do Software

Implementao e Testes Unitrios

Integrao e Teste do Sistema 6/45

Operao e Manuteno

MODELO CASCATA NA PRTICA


Definio de Requisitos

Projeto do Sistema e do Software Implementao e Testes Unitrios

Integrao e Teste do Sistema

Operao e Manuteno

7/45

MODELO DE DESENVOLVIMENTO EVOLUCIONRIO


Programao Exploratria Prototipagem Descartvel
Atividades Concorrentes

Especificao

Verso Inicial

Esboo de Descrio

Desenvolvimento

Verses Intermedirias

Validao

Verso Final
8/45

PROGRAMAO EXPLORATRIA
Idia geral:
Desenvolvimento da primeira verso do sistema o mais rpido possvel Modificaes sucessivas at que o sistema seja considerado adequado Aps o desenvolvimento de cada uma das verses do sistema ele mostrado aos usurios para comentrios

Adequado para o desenvolvimento de sistemas onde difcil ou impossvel se fazer uma especificao detalhada do sistema Principal diferena para os outros modelos a ausncia da noo de programa correto

9/45

PROGRAMAO EXPLORATRIA
Tem sido mais usada no desenvolvimento de sistemas especialistas - geralmente sistemas que tentam emular capacidades humanas A maioria dos sistemas desenvolvidos com sucesso usando a programao exploratria foi implementada usando pequenos grupos de profissionais altamente qualificados e motivados
10/45

PROTOTIPAGEM DESCARTVEL
Como na programao exploratria, a primeira fase prev o desenvolvimento de um programa para o usurio experimentar
No entanto, o objetivo aqui estabelecer os requisitos do sistema O software deve ser reimplementado na fase seguinte

A construo de prottipos com os quais os usurios possam brincar uma idia bastante atrativa:
Para sistemas grandes e complicados Quando no existe um sistema anterior ou um sistema manual que ajude a especificar os requisitos

11/ 45

PROTOTIPAGEM DESCARTVEL
Os objetivos do prottipo devem estar bem claros antes do incio da codificao. Possveis objetivos: Entender os requisitos dos usurios Definir a interface com os usurios Demonstrar a viabilidade do sistemas para os gerentes. Uma deciso importante a ser tomada escolher o que ser e o que no ser parte do prottipo No economicamente vivel implementar todo o sistema! Os objetivos do prottipo so o ponto de partida

12/ 45

TRANSFORMAO FORMAL
Idia geral:
Uma especificao formal (definio matemtica, no ambgua) do software desenvolvida e posteriormente transformada em um programa atravs de regras que preservam a corretude da especificao

esp. 1

esp. 2

implement.

13/ 45

TRANSFORMAO FORMAL
A grande motivao por trs da idia de refinamento formal a possibilidade de gerar automaticamente programas que so corretos por construo
O prprio processo de desenvolvimento deve grantir que o programa faz exatamente o que foi especificado

Este modelo tem sido aplicado ao desenvolvimento de sistemas crticos, especialmente naqueles onde a segurana um fator crtico (ex: sistema de controle de trfego areo)

14/ 45

MODELO DE DESENVOLVIMENTO BASEADO EM REUSO


Baseado no reuso sistemtico de componentes existentes os sistemas COTS (Commercial-offthe-shelf) Etapas do processo
Especificao dos requisitos Anlise de componentes Modificao dos requisitos Projeto de sistema com reuso Desenvolvimento e integrao Validao

Esta abordagem est se tornando mais importante, mas h ainda pouca experincia com ela

15/ 45

MODELO DE DESENVOLVIMENTO BASEADO EM REUSO

Especificao de Requisitos

Anlise de Componentes

Modificao de Requisitos

Projeto de Sistema com Reuso

Desenvolvimento e Integrao

Validao do Sistema

16/ 45

MODELOS ITERATIVOS
Requisitos de sistema SEMPRE evoluem durante curso de um projeto. Assim a iterao do processo sempre faz parte do desenvolvimento de grandes sistemas Iteraes podem ser aplicadas a quaisquer dos modelos de ciclo de vida Duas abordagens (relacionadas)
Desenvolvimento espiral Desenvolvimento incremental
17/ 45

DESENVOLVIMENTO ESPIRAL
Acrescenta aspectos gerenciais ao processo de desenvolvimento de software.
anlise de riscos em intervalos regulares do processo de desenvolvimento de software planejamento controle tomada de deciso

O processo representado como uma espiral em vez de uma seqncia de atividades Cada volta na espiral representa uma fase no processo No h fases fixas como especificao ou projeto voltas na espiral so escolhidas dependendo do que requerido Riscos so avaliados explicitamente e resolvidos ao longo do processo

18/ 45

DESENVOLVIMENTO ESPIRAL
Determinao dos objetivos, alternativas e restries Anlise das alternativas e identificao e/ou resoluo de riscos Anlise de Riscos

Simulaes, modelos e benchmarks Planejamento Desenvolvimento e validao da verso corrente do produto

19/ 45

DESENVOLVIMENTO INCREMENTAL
Em vez de entregar o sistema como um todo, o desenvolvimento e a entrega so divididos em incrementos, com cada incremento entregando parte da funcionalidade requerida Requisitos dos usurios so priorizados e os requisitos de mais alta prioridade so includos nas iteraes iniciais Uma vez que o desenvolvimento de um incremento iniciado, os requisitos so "congelados". Embora os requisitos possam continuar a evoluir para incrementos posteriores Em certos aspectos similar programao exploratria. No entanto, o escopo do sistema deve ser claramente entendido antes de se iniciar o desenvolvimento

20/ 45

DESENVOLVIMENTO INCREMENTAL

Definir esboo dos requisitos

Associar requisitos a incrementos

Projetar a arquitetura do sistema

Desenvolver um incremento

Validar o incremento

Integrar o incremento

Validar o sistema Sistema Final


21/ 45

PROCESSO
Conjunto de atividades
bem definidas com responsveis com artefatos de entrada e sada com dependncias entre as mesmas e ordem de execuo com modelo de ciclo de vida

22/ 45

PROCESSO
uma ao regular e contnua (ou sucesso de aes) realizada de forma bem definida, levando a um resultado um conjunto parcialmente ordenado de atividades (ou passos) para se atingir um objetivo define quem est fazendo o que, quando e como para atingir um certo objetivo
23/ 45

PROCESSO VERSUS METODOLOGIA


Alguns autores consideram que processos incluem
uma metodologia pessoas tecnologia (suporte de ferramentas)

Outros consideram que uma metodologia a especializao de um processo com um conjunto de mtodos

24/ 45

MTODO
Descrio sistemtica de como deve-se realizar uma determinada atividade ou tarefa A descrio normalmente feita atravs de padres e guias Exemplos: Mtodo para descoberta de atores e casos de uso no RUP.

25/ 45

MODELO DE PROCESSO
uma representao de um processo, usualmente envolvendo
atividades a serem realizadas agentes que realizam as atividades artefatos (produtos) gerados recursos necessrios (consumidos)

26/ 45

MODELO DE PROCESSO
Um modelo usado para entendimento e comunicao do processo, e como base para anlise, execuo, gerncia e melhoria do processo Idealmente a descrio deve ser formal e completa para permitir, por exemplo, automao A descrio deve ser apresentada em diferentes nveis de abstrao
27/ 45

MODELO DE PROCESSO
O formalismo utilizado para representar o processo o ingrediente mais importante da modelagem No parece haver consenso sobre um formalismo ideal
Mas h esforo de padronizao (SPEM OMG)

28/ 45

EXEMPLOS DE PROCESSOS
Processos tradicionais (pesados)
RUP, OPEN, Catalysis

Processos geis (leves)


XP, Agile modeling, Crystal, pragmatic programming, Internet Speed, Scrum, ...

29/ 45

EXEMPLOS DE PROCESSOS
Consenso em torno de
Iteratividade Participao de usurios Flexibilidade de configurao para projetos especficos Comunicao entre membros da equipe

30/ 45

EXEMPLOS DE PROCESSOS
Divergncias
Detalhamento de atividades a serem seguidas Critrio de concluso da execuo das atividades
Arquitetura robusta (RUP) Arquitetura para o contexto da iterao atual (agile modeling)

Rigor na atribuio de tarefas a responsveis


workers (RUP) alocao sob demanda e interesse (XP)

Artefatos (documentao) gerados Nvel de Automao Nvel de (im)pessoalidade

31/ 45

POLMICA
Se a tendncia processos leves, afinal o desenvolvimento de software
Arte+Sociologia+Psicologia+... ou Lgica+Modelos+Engenharia+...???

E todo o esforo de consolidao da Engenharia de Software como uma cincia exata???


32/ 45

VISO GERAL DO RUP


33/ 45

O QUE O RUP?
O nome uma abreviao de Rational Unified Process
mas na verdade
Processo + Mtodos + Linguagem (UML)

e os autores argumentam que


Framework para gerar processos

34/ 45

O QUE O RUP?
Conjunto de atividades
bem definidas com responsveis com artefatos de entrada e sada com dependncias entre as mesmas e ordem de execuo com modelo de ciclo de vida descrio sistemtica de como devem ser realizadas guias (de ferramentas ou no), templates utilizando diagramas de UML

35/ 45

CARACTERSTICAS PRINCIPAIS DO RUP


O desenvolvimento de sistemas seguindo o RUP
Iterativo e incremental Guiado por casos de uso (use cases) Baseado na arquitetura do sistema

36/ 45

O RUP ITERATIVO E INCREMENTAL


O ciclo de vida de um sistema consiste de quatro fases:
concepo tempo elaborao construo transio

Concepo (define o escopo do projeto) Elaborao (detalha os requisitos e a arquitetura) Construo (desenvolve o sistema) Transio (implanta o sistema)

37/ 45

O RUP ITERATIVO E INCREMENTAL


Cada fase dividida em iteraes:
Inception Elaboration Construction Transition

Preliminary iteration

Architect. Architect. Devel.. iteration iteration iteration

Devel.. iteration

Devel.. iteration

Transition iteration

Transition iteration

Minor Milestones: Releases

38/ 45

O RUP ITERATIVO E INCREMENTAL


Cada iterao
planejada realiza uma seqncia de atividades (de elicitao de requisitos, anlise e projeto, implementao, etc.) distintas geralmente resulta em uma verso executvel do sistema avaliada segundo critrios de sucesso previamente definidos

39/ 45

O RUP ITERATIVO E INCREMENTAL

40/ 45

O RUP GUIADO POR CASOS DE USO


Os casos de uso no servem apenas para definir os requisitos do sistema Vrias atividades do RUP so guiadas pelos casos de uso:
planejamento das iteraes criao e validao do modelo de projeto planejamento da integrao do sistema definio dos casos de teste
41/ 45

O RUP BASEADO NA ARQUITETURA DO


SISTEMA

Arquitetura
viso geral do sistema em termos dos seus subsistemas e como estes se relacionam

A arquitetura prototipada e definida logo nas primeiras iteraes O desenvolvimento consiste em complementar a arquitetura A arquitetura serve para definir a organizao da equipe de desenvolvimento e identificar oportunidades de reuso
42/ 45

ORGANIZAO DO RUP
Fluxos de atividades Atividades
passos entradas e sadas guias (de ferramentas ou no), templates

Responsveis (papel e perfil, no pessoa) Artefatos

43/ 45

EXEMPLO DE FLUXO: PLANEJAMENTO E GERENCIAMENTO


Iniciar Projeto Contratante Aprovar Projeto Atestar Concluso do Projeto

Identificar Riscos Estudar Viabilidade

Executar Plano de Iterao

Desenvolver Plano de Projeto Gerente de projeto

Desenvolver Plano de Iterao Reavaliar Riscos

Avaliar Iterao

Finalizar Projeto

Arquiteto

Priorizar Casos de Uso

44/ 45

Potrebbero piacerti anche