Você está na página 1de 41

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA CURSO DE ENGENHARIA DE TELECOMUNICAES

Modelos de processos de desenvolvimento de software

Disciplina: Engenharia de software Hertz Wilton de Castro Lins

Tpicos

Objetivos Processos de software Atividades fundamentais Modelos de processo de software

Engenharia de software

Objetivos
Apresentar o conceito de processo de software Introduzir modelos de processo de software Descrever diferentes modelos e processos Apresentao do RUP Atividades de processo

Engenharia de software

Processo de software
Um processo
Segundo o IEEE, uma seqncia de passos executados com um determinado objetivo; Segundo o PMBOK, um conjunto de aes e atividades inter-relacionadas, realizadas para obter um conjunto especificado de produtos, resultados ou servios.

Conjunto coerente de atividades para especificao, concepo, execuo e teste de sistemas de software.
Especificao, Design, Validao e Evoluo Um modelo de processo de software uma representao abstrata de um processo.
Engenharia de software

Atividades do processo
Especificao de Software Projeto e implementao de Software Validao de Software Evoluo de Software

Engenharia de software

Atividades do processo
Especificao de Software ou Engenharia de requisitos
o processo para compreender e definir quais servios so necessrios e identificar as restries de operao e de desenvolvimento do sistema Estagio Crtico Erros neste estgio conduzem a problemas posteriores no projeto e na implementao do sistema

Engenharia de software

Atividades de processo
Processo de engenharia de requisitos

Estudo de viabilidade

Elicitao e anlise de Requisitos

Especificao de Requisitos

Validao de Requisitos

Relatrio de Viabilidade

Modelos de Sistema

Requisitos de Usurio e de Sistema Documento De Requisitos

Engenharia de software

Atividades de processo
Projeto e implementao de software
O processo de converter a especificao do sistema em um sistema executvel Atividades
Projeto de arquitetura Estrutura geral, componentes principais e seus relacionamentos, subsistemas, mdulos. Projeto de Interface sistema. Projeto de Componente Projeto de banco de dados Definio de cada componente e seu funcionamento Projeto das estruturas de dados e sua Definio das interfaces entre os componentes do

representao em um banco de dados.

Engenharia de software

O Processo de Projeto de Software


Especificao de Requisitos

Atividades de Projeto

Projeto de Arquitetura

Projeto de interface

Projeto de Componente

Projeto de Banco de dados

Arquitetura de Sistema

Especificao de Interface

Especificao de Componente

Especificao de banco de dados

Produtos de Projeto
Engenharia de software

Validao de software
Verificao e validao destinam-se a demonstrar que o sistema est em conformidade com a sua especificao e cumpre os requisitos do cliente. Envolve verificar e analisar processos do sistema e testes. Sistema de testes envolve executar o sistema com casos de teste que so obtidos a partir da especificao dos dados reais que sero processado pelo sistema.

Engenharia de software

10

Validao de software
Validao
Estamos construindo o produto correto? O sistema atende s expectativas do cliente/usurio

Verificao
Estamos construindo o produto corretamente? O software est de acordo com suas especificaes As especificaes do software nem sempre esto de acordo com as expectativas dos usurios

Engenharia de software

11

O processo de teste

Teste de Componente

Teste de Sistema

Teste de Aceitao

Engenharia de software

12

Fases de teste no processo de software

Especificao De Requisitos

Especificao de Sistema

Projeto de Sistema

Projeto detalhado

Teste de aceitao

Teste de Integrao de sistema

Teste de Integrao de subsistema

Cdigo e Teste de Unidade e mdulo

Operao

Plano de teste de aceitao

Plano de teste de Integrao de sistema

Plano de teste de Integrao de subsistema

Engenharia de software

13

Modelos de processo de software


Modelo em Cascata
Separa e distingue as fases de especificao e desenvolvimento

Desenvolvimento incremental
Especificao e desenvolvimento so intercaladas

Engenharia de Software orientado a reuso


Baseia-se na existncia de um numero significante de componentes, e enfoca o processo de desenvolvimento na integrao dos mesmos. RUP

Modelos de maturidade

Engenharia de software

14

Modelos de processo de software


Modelo em cascata
Requirements Definio De Requisitos definition
Projeto and de System Sistema e Software software design

Resultado de uma fase alimenta a outra Mais antigo Modelado em funo do ciclo da engenharia convencional

Implementao Implementation e teste de Unidade and unit testing

Integrao Integr ation and e teste de sistema system testing

Operao Operation and e maintenance Manunteno

Engenharia de software

15

O Modelo em Cascata

Principais estgios: Anlise e Definio de Requisitos: as funes, as restries e os objetivos do sistema so estabelecidos por meio de consulta aos usurios do sistema. Em seguida, so definidos em detalhes e servem como uma especificao do sistema.

Projeto de Sistemas e Software: o processo de projeto de sistemas agrupa os requisitos em sistemas de hardware e software. Envolve a identificao e a descrio das abstraes fundamentais do sistema de software e suas relaes.

Engenharia de software

16

O Modelo em Cascata
Principais estgios Operao e manuteno: O sistema instalado e colocado em operao. Envolve corrigir erros que no foram descobertos em estgios anteriores, melhorando a implementao e descobrindo novos requisitos.

Engenharia de software

17

O Modelo em Cascata
Principais estgios Implementao e Testes de Unidade: Durante este estgio, o projeto do software compreendido como um conjunto de programas ou unidades de programa. O teste de unidade envolve verificar se cada uma das unidades atendem sua especificao

Integrao e Teste de sistemas: as unidades de programa ou programas individuais so integrados e testados como um sistema completo a fim de garantir que os requisitos de software foram atendidos. Depois do teste, o software entregue ao cliente.

Engenharia de software

18

O Modelo em Cascata

Principais estgios: Projeto de Sistemas e Software: o processo de projeto de sistemas agrupa os requisitos em sistemas de hardware e software. Envolve a identificao e a descrio das abstraes fundamentais do sistema de software e suas relaes.

Engenharia de software

19

O Modelo em Cascata

Principais estgios: Implementao e Testes de Unidade: Durante este estgio, o projeto do software compreendido como um conjunto de programas ou unidades de programa. O teste de unidade envolve verificar se cada uma das unidades atendem sua especificao.

Engenharia de software

20

O Modelo em Cascata

Principais estgios: Integrao e Teste de sistemas: as unidades de programa ou programas individuais so integrados e testados como um sistema completo a fim de garantir que os requisitos de software foram atendidos. Depois do teste, o software entregue ao cliente.

Engenharia de software

21

O Modelo em Cascata

Principais estgios: Operao e manuteno: O sistema instalado e colocado em operao. Envolve corrigir em erros que no foram

descobertos

estgios

anteriores,

melhorando a implementao e descobrindo novos requisitos

Engenharia de software

22

Modelos de processo de software


Modelo em cascata Indicao
Requisitos do sistema esto claros Requisitos no sejam alterados radicalmente durante o processo de desenvolvimento.

Problemas
Particionamento Inflexvel do projeto em fases distintas Isso torna difcil responder evoluo das necessidades dos clientes Portanto, este modelo apropriado apenas quando os requisitos so bem compreendidos

Engenharia de software

23

Desenvolvimento incremental
Especificao e desenvolvimento so intercaladas Neste modelo a entrega dividida em incrementos onde cada incremento implementa um subconjunto de funcionalidades do sistema. Uma vez que o desenvolvimento de um incremento iniciado, os requisitos so congelados embora possam mais tarde continuar a evoluir .

Engenharia de software

24

Entrega incremental

Definir Requisitos Iniciais

Atribuir Requisitos aos Incrementos

Projetar Arquitetura de Sistema

Desenvolver Incremento De Sistema

Validar Incremento

Integrar Incremento

Validar Sistema

Sistema Final

Sistema Incompleto

Engenharia de software

25

Desenvolvimento incremental
Vantagens
O custo de acomodar as mudanas nos requisitos do cliente reduzido. mais fcil obter feedback dos clientes sobre o desenvolvimento realizado. Onde existe uma dificuldade natural dos clientes de avaliar a evoluo do software atravs de documentos. Possibilidade de obter entrega e implementao rpida de software til ao cliente. Desvantagens O processo com ou um todo no visvel. A estrutura do sistema tende a se degradar com a adio de novos incrementos. No indicado para sistemas muito grandes.

Engenharia de software

26

Engenharia de Software orientada a reuso


Baseada na sistemtica da reutilizao, algumas vezes estes componentes so sistemas comerciais independentes que podem fornecer uma funcionalidade especfica. Componente Unidade de software cuja funcionalidade e dependncias so completamente definidas por um conjunto de interfaces publicas. Podem ser implantados com uma unidade executvel.

Engenharia de software

27

Engenharia de Software orientada a reuso


Fases.

Especificao de Requisitos

Analise de Componentes

Modificao de Requisitos

Projeto de Sistema Com reuso

Desenvolvimento E Integrao

Validao De Sistema

Engenharia de software

28

Engenharia de Software orientada a reuso


Tipos de componentes de software utilizados em um processo orientado a reuso. Web services, disponveis para invocao remota. Colees de objetos integrados a partir de frameworks como J2EE ou .NET. Sistemas de software stand-alone configurados para uso em ambiente particular.

Engenharia de software

29

Engenharia de software orienta a reuso


Vantagens Reduzir a quantidade de software a ser desenvolvido Reduzir custos e riscos Entrega mais rpida Consideraes O componente atende ao requisito? Conhecimento prvio das funcionalidades do componente Facilidade de substituio do componente no momento da alterao do sistema. Interao entre componentes

Engenharia de software

30

RUP
O RUP, abreviao de Rational Unified Process, um processo proprietrio de Engenharia de software criado pela Rational Software Corporation, adquirida pela IBM. Ele oferece uma abordagem baseada em disciplinas para atribuir tarefas e responsabilidades dentro de uma organizao de desenvolvimento. Sua meta garantir a produo de software de alta qualidade que atenda s necessidades dos usurios dentro de um cronograma e de um oramento previsveis.

Engenharia de software

31

RUP
O RUP tem duas dimenses:
o eixo horizontal representa o tempo e mostra os aspectos do ciclo de vida do processo medida que se desenvolve o eixo vertical representa as disciplinas, que agrupam as atividades de maneira lgica, por natureza.

Engenharia de software

32

RUP
Fases
Concepo: nfase no escopo do sistema Elaborao: nfase na arquitetura Construo: nfase no desenvolvimento Transio: nfase na implantao

Engenharia de software

33

RUP
Concepo A fase de concepo contm os workflows necessrios que as partes interessadas (stakeholders) concordem com os objetivos, arquitetura, e o planejamento do projeto. Elaborao A fase de elaborao ser apenas para o projeto do sistema, buscando complementar o levantamento / documentao dos casos de uso, voltado para a arquitetura do sistema, revisa a modelagem do negcio para os projetos e inicia a verso do manual do usurio. Deve-se aceitar: Viso geral do produto (incremento + integrao) est estvel? ; O plano do projeto confivel? ; Custos so admissveis?
Engenharia de software

34

RUP
Construo Na fase de construo, comea o desenvolvimento fsico do software, produo de cdigos, testes alfa e beta. Deve-se aceitar testes, e processos de testes estveis, e se os cdigos do sistema constituem "baseline". Transio Nesta fase ocorre a entrega ("deployment") do software, realizado o plano de implantao e entrega, acompanhamento e qualidade do software. Produtos (releases, verses) devem ser entregues, e ocorrer a satisfao do cliente.

Engenharia de software

35

RUP
Aspectos
No adequado para todos os tipos de desenvolvimento Desenvolvimento iterativo.

Vantagens:
Processo robusto e bem definido com a gerao de artefatos importantes; Registro constante do fluxo do projeto Os maiores riscos so atacados primeiro, diminuindo as chances de fracasso do projeto

Desvantagens:
Complexo para projetos de pequeno porte Exige experincia da equipe.

Engenharia de software

36

Pontos Chave
Processos de Software so atividades envolvidas na produo de um sistema de software. Todos os processos de software incluem especificao, projeto e implementao, validao e evoluo de software. Modelos Genricos de processo descrevem a organizao dos processos de software.

Engenharia de software

37

Como escolher um modelo

Natureza do projeto e da aplicao

Mtodos e ferramentas a serem usados

Controles e produtos que precisam ser entregues

Engenharia de software

38

Como escolher um modelo


Sistemas Crticos
Sugerido um modelo de processo mais estruturado / rigoroso como o Modelo Cascata ou RUP.

Sistemas de Negcios
(requisitos mudam com frequncia) Sugerido um modelo de processo gil e flexvel como o Desenvolvimento Incremental ou o Baseado em Reuso.

Prazos inflexveis
Modelo incremental

Engenharia de software

39

Como escolher um modelo


Tipo de software (sistema de informao, sistema de tempo real), Paradigma de desenvolvimento (estruturado, orientado a objetos etc), Domnio da aplicao, Tamanho e complexidade do sistema, Estabilidade dos requisitos, caractersticas da equipe.

Engenharia de software

40

Perguntas
Por que adotar um modelo de processos? Qual a relao entre a qualidade do software e o processo de software?

Engenharia de software

41

Você também pode gostar