Beruflich Dokumente
Kultur Dokumente
Processos de Software
Objetivos
Conhecer os modelos de processos de software,
Tamanho de Software
Tamanho de Software
Michael Cusumano, na revista Communications of the ACM
de Julho de 2006
Um dado interessante a progresso do tamanho da base
de cdigo do Windows : a verso 95 possua 15 milhes de linhas de cdigo, o Windows XP possui 35 milhes. J o Windows Vista deve possuir acima de 50 milhes (4.000 programadores).
Processos de Software
Um processo uma srie de etapas envolvendo
Processo de Software:
Especificao Projeto e implementao
Validao
Evoluo
Modelo
Um modelo de processo de software uma
perspectiva em particular.
Desenvolvimento de Software
Definio: qual o problema?
implement-las?
melhoria
Fase de Definio
O que ser desenvolvido?
Quais as funes e desempenhos desejados?
sistema foi bem definido? Quais informaes sero processadas? Que interfaces sero estabelecidas? Que restries existem?
Fase de Desenvolvimento
Como o software ser desenvolvido?
Como os dados sero estruturados? Como os detalhes procedimentais sero
implementados? Como sero as interfaces? Como sero feitos os testes? Como o projeto ser traduzido para uma linguagem de programao?
Modelagem
Podem ser estruturais (organizao do sistema) ou
Fase de Manuteno
Focaliza as mudanas no software aps a liberao
O que processo?
Uma receita um processo? Ela pode ser executada de formas diferentes? Uma torta para diabticos ou para que tem
Caractersticas da equipe
Estabilidade dos requisitos Outros
Atividade
Desenvolva um modelo de processo de software e aponte as
Um processo de software formado por um conjunto de atividades, mtodos, prticas e transformaes que guiam as pessoas no desenvolvimento do software.
Um processo deve considerar as relaes entre as atividades, os artefatos produzidos, as ferramentas e procedimentos necessrios e as habilidades e treinamento das pessoas envolvidas.
Para cada atividade de um processo tem-se:
Pr-atividades; Artefatos de entrada (insumos) e de sada (produtos); Recursos necessrios (humanos, hardware, software, etc.) Procedimentos (mtodos, tcnicas, modelos de documento etc.)
Modelo Sequencial
Organizam o processo em uma sequencia linear de
fases.
O principal modelo desta categoria o modelo em
cascata, a partir do qual diversos outros modelos foram propostos, inclusive a maioria dos modelos incrementais e evolutivos.
de se iniciar a prxima fase. Reflete o que mais usado em outros projetos de engenharia.
sofisticao gerencial;
Torna o processo de desenvolvimento estruturado; Indicado para problemas pequenos e bem definidos,
onde os desenvolvedores conhecem bem o domnio do problema e os requisitos podem ser claramente estabelecidos.
etapas distintas
desenvolvimento
Modelo V
Similar ao cascata, mas com planejamento de testes
Anlise
Teste de Validao
Teste de Integrao Teste de Unidade
Projeto
Codificao
Modelo V
A ligao entre os lados direito e esquerdo do
modelo V implica que, caso sejam encontrados problemas em uma atividade de teste, a correspondente fase do lado esquerdo e suas fases subsequentes podem ser executadas novamente para corrigir ou atenuar esses problemas.
Os modelos sequenciais pressupem que o sistema
Modelo Incremental
Ha muitas situaes em que os requisitos so
razoavelmente bem definidos, mas o tamanho do sistema a ser desenvolvido impossibilita a adoo de um modelo sequencial, sobretudo pela necessidade de disponibilizar rapidamente uma verso para o usurio;
No desenvolvimento incremental, o sistema dividido
Entrega Incremental
Modelo Cascata + Prototipagem
Entrega Incremental
Entrega Incremental
Vantagens:
Os clientes no precisam esperar at a entrega do
sistema inteiro para se beneficiarem dele O risco de falha geral do projeto menor Partes mais importantes so entregues primeiro e tendem a serem mais testadas
Desvantagens:
Os incrementos devem ser relativamente pequenos
(20 mil linhas de cdigo) podendo ser difcil mapear os requisitos do cliente em tamanho adequado
Evolutivos
Surgem para minimizar os pontos fracos do processo Cascata. Permitem que se trabalhe com um subconjunto de requisitos do produto completo os quais so incrementados, gradualmente e entregues aos clientes. Enquanto modelos incrementais tem por base a entrega de verses operacionais desde o primeiro ciclo, os modelos evolutivos no tem essa preocupao.
Na maioria das vezes, os primeiros ciclos produzem prottipos ou at mesmo apenas modelos. A medida que o desenvolvimento avana e os requisitos vo ficando mais claros e estveis, prottipos vo dando lugar a verses operacionais, at que o sistema completo seja construdo.
Quando o problema no bem definido e ele no pode ser totalmente especificado no incio do desenvolvimento, deve-se optar por um modelo evolutivo.
Prototipao
Possibilita que o desenvolvedor crie um modelo
Apropriado quando:
O cliente tem uma viso geral do software mas no
identificou os requisitos de entrada, processamento e sada com detalhes Desenvolvedor no tem certeza da eficincia de um algoritmo, forma de interao homem- mquina
Prototipao
Investigatrio ou Exploratrio
Objetivo trabalhar com o cliente para explorar os
Prototipao
Prototipao
Desvantagens
O processo no visvel Sistemas so mal estruturados Cliente fora a utilizao do prottipo como produto final
Vantagens
Recomendado para sistemas:
De pequeno e mdio porte (at 500 mil linhas) Com ciclo de vida curto
Modelo Espiral
Modelo evolutivo mais difundido. Novo elemento: Anlise de riscos
cada loop:
Modelo espiral
Modelo Espiral
O produto resultante do primeiro ciclo pode ser uma especificao do produto ou um estudo de viabilidade. As passadas subsequentes ao longo da espiral podem ser usadas para desenvolver prottipos, chegando progressivamente a verses operacionais do software, ate se obter o produto completo. a abordagem mais realista para o desenvolvimento de software Capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva De cada iterao ao redor da espiral derivam verses mais completas: concepo, desenvolvimento, melhoria, manuteno
Outros Modelos
Vantagens
Usado em sistemas crticos em termos de segurana
(Commercial-off-the-shelf)
Etapas do Processo
Anlise do Componente Modificaes dos requisitos Projeto de sistema com reuso Desenvolvimento e integrao
Exerccios
1.
Sugira e justifique o modelo mais apropriado para o desenvolvimento dos seguintes sistemas:
Um sistema para controlar um antibloqueador de freios em um automvel Um sistema de contabilidade de universidade que substitui um sistema existente Um sistema interativo que permite aos passageiros encontrar o horrio dos trens por terminais nas estaes
2.
Explique porque um sistema de software usado em um ambiente real deve mudar sob pena de tornar-se progressivamente menos til.
Referncias
SOMMERVILLE, Ian, Software Engineering, AddisonWesley , 9th Edition, 2011