Processo Unificado de Desenvolvimento de Software

91
Processo Unificado de Processo Unificado de Desenvolvimento de Desenvolvimento de Software Software G. Booch, Ivar Jacobson, James Rumbaugh Rational Software Corporation UNIVERSIDADE FEDERAL DA PARAÍBA DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO © Ulrich Schiel

Transcript of Processo Unificado de Desenvolvimento de Software

Page 1: Processo Unificado de Desenvolvimento de Software

Processo Unificado de Processo Unificado de Desenvolvimento de Desenvolvimento de

SoftwareSoftwareG. Booch, Ivar Jacobson, James Rumbaugh

Rational Software Corporation

UNIVERSIDADE FEDERAL DA PARAÍBADEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO

© Ulrich Schiel

Page 2: Processo Unificado de Desenvolvimento de Software

PRECURSORES

Object Modeling Technique - OMT de J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy e W. Lorensen(TMO - Técnica de Modelagem de Objetos), 1991

Objectology - A Use-Case Driven Approach de I. Jacobson,M. Ericsson e A. Jacobson, 1992

Object Oriented Analysis and Design - OOA & OOD de G. Booch, 1994

Page 3: Processo Unificado de Desenvolvimento de Software

CARACTERÍSTICAS

baseado em componentes que realizam interfaces

usa UML

aspectos:

* dirigido por Use-Cases

* centrado em arquitetura

* iterativo e incremental

os 4 Ps:pessoal, projeto, produto e processo

Page 4: Processo Unificado de Desenvolvimento de Software

P4 = Pessoa, Projeto, Produto, Processo

PESSOASPESSOAS financiam, escolhem, desenvolvem, gerenciam, testam, usam e são beneficiadas por produtos

PROJETOSPROJETOS sofrem alterações. Determinam os tipos de pessoas que irão trabalhar no projeto e os artefatos que serão usados

Sistema-i Sistema-i+1

ciclo

faseiteração

Page 5: Processo Unificado de Desenvolvimento de Software

P4 = Pessoa, Projeto, Produto, Processo

PRODUTOPRODUTO código fonte, código de máquina, subsistemas, classes,diagramas: interação, de estados e outros artefatos

ARTEFATO é qualquer tipo de informação criada por uma pessoa(diagramas UML, textos, modelos de interfaces)

PROCESSOPROCESSO define quem faz o que, quando e como

PUPU é um processo. Considera fatores organizacionais, do domínio, ciclo de vida e técnicos

Page 6: Processo Unificado de Desenvolvimento de Software

Modelos

REQUISITOSREQUISITOS - funcionais e não-funcionais

descrevem o sistema a ser desenvolvido, sob um certo ponto-de-vista, e

seu ambiente, ou seja, os atores

ANÁLISEANÁLISE classes e responsabilidades

PROJETOPROJETO classes de projeto, subsistemas, interfaces

IMPLEMENTAÇÃOIMPLEMENTAÇÃO código fonte (DLLs, JavaBeams, ActiveX)

TESTETESTE casos de teste (baseado nos use-cases)

DISTRIBUIÇÃODISTRIBUIÇÃO nós físicos e os componentes em cada nó

Page 7: Processo Unificado de Desenvolvimento de Software

Dirigido a Use-Cases

Um ator é uma pessoa ou outro sistema

Cada use-case é um requisito funcional do sistema

Modelo Use-Case = use-cases = funcionalidade do sistema

Os Use-Cases acompanham todo o processo de desenvolvimento:Especificação de Requisitos, Análise, Projeto, Implementação e Testes

Cada use-case representa uma sequência de ações que produzem um resultado de utilidade para um ator

Page 8: Processo Unificado de Desenvolvimento de Software

Dirigido a Use-Cases

Porque USE-CASES??

Capturar os requisitos: o Diagrama Use-Case mostra quais atores usam quais use-cases

Use-Cases Arquitetura do sistemadirige

influi

Dirigir o processo: para realizar os use-cases são definidos classificadores (classes, subsistemas, interfaces) e relacionamentos (colaborações) entre estes

Elaborar a arquitetura, determinar iterações, determinação dos manuais de usuário

Page 9: Processo Unificado de Desenvolvimento de Software

Dirigido a Use-Cases

Classe defronteira

Classe decontrole

Classe deentidades

ModeloUSE-CASE

ModeloANÁLISE

Modelo PROJETO

Classe

Modelo IMPLEMENT

<executável>

<arquivo>

<arquivo>

relacionamento

Page 10: Processo Unificado de Desenvolvimento de Software

Dirigido a Use-Cases

Dirigir o processo:

ANÁLISE: definir as CLASSES DE ANÁLISE para realizar um use-case (classes limite, classes de controle e classes de entidades)

PROJETO: ENTRADA: modelo de análise, pacote de construção de interfaces, SGBD, sistemas existentes.

SAIDA: classificadores (classes, subsistemas, interfaces), relacionamentos e colaborações

IMPLEMENTAÇÃO:criação de programas executáveis e arquivosque realizam os use-cases

TESTE: casos de teste e procedimentos de teste. Testar entradas, resultados e condições

Page 11: Processo Unificado de Desenvolvimento de Software

Centrado na arquitetura

DECISÕES SOBRE:• a organização do sistema como um todo• os elementos estruturais, interfaces e seu comportamento• composição de elementos estruturais e comportamentais em subsistemas

A ARQUITETURA descreve as partes essenciais do sistema, importantes para todos desenvolvedores

Menos de 10% das classes são relevantes para a arquitetura

Descrição de REQUISITOS ADICIONAIS: segurança,distribuição, concorrência, plataformas, etc.

Page 12: Processo Unificado de Desenvolvimento de Software

Centrado na arquitetura

Use-Cases

Plataforma de software

Disponibilidade de blocosreusáveis

Sistemas existentes

Hardware existente

Requisitos não-funcionais(performance, segurança)

Arquitetura

influem

Page 13: Processo Unificado de Desenvolvimento de Software

Centrado na arquitetura

PRODUTO

Use-Case

Arquitetura

Sequência para o arquiteto:

Criar uma visão preliminar da arquitetura

Analisar os use-cases chave (5-10%) e especificar um subsistemapara cada um

Pela especificação dos subsistemas aparecem mais detalhes da arquitetura e novos use-casesRepetir o passo acima, até terminar o sistema

função

forma

Page 14: Processo Unificado de Desenvolvimento de Software

4 FASES

CONCEPÇÃO

CONSTRUÇÃO

ELABORAÇÃO

TRANSIÇÃO

Page 15: Processo Unificado de Desenvolvimento de Software

Iterativo e incremental

Projetos grandes são divididos em mini-projetos

Cada mini-projeto é uma iteração

•Um grupo de use-cases que estendem usabilidade

Fatores de risco mais importantes

MINI-PROJETO

Cada iteração gera um incremento

PORQUE ITERATIVO E INCREMENTAL• atenuar riscos• obter arquitetura robusta• facilitar alterações táticas ou contínuas• conseguir aprendizado mais cedo

Page 16: Processo Unificado de Desenvolvimento de Software

Iterativo e incremental

Concepção Elaboração Construção Transição

Requisitos

Análise

Projeto

ImplementaçãoTestes

Iter.#1

Iter.#2

_ _ _ _ _ Iter.#n-1

Iter.#n

Fases

Page 17: Processo Unificado de Desenvolvimento de Software

Iterativo e incremental

Cada fase termina com um MARCO (milestone):

INICIOINICIO: o que o sistema fará? Como poderia ser a arquitetura?Prazos e custos?

Um CICLO é uma sequência das 4 fases. Um projeto pode necessitar de vários ciclos.

• identificar os riscos• fixar subconjunto chave -> arquitetura candidata• estimativas iniciais (custos, esforços, alocações e qualidade do produto)• iniciar caso gerencial (business case)

Page 18: Processo Unificado de Desenvolvimento de Software

Iterativo e incremental

ELABORAÇÃOELABORAÇÃO: use-cases especificados e esqueleto da arquitetura definido

CONSTRUÇÃOCONSTRUÇÃO: software feito

TRANSIÇÃOTRANSIÇÃO: beta-teste feito por poucos usuários. Treinamento, documentação

• identificar e reduzir riscos de construção• especificar maioria dos use-cases• fixar a arquitetura em proporções executáveis• preparar o plano de projeto (para a próxima fase)• estimar e justificar o orçamento• finalizar o business case

• iterações garantindo viabilidade em forma executável -> incrementos

• eliminar problemas e erros não identificados previamente

Page 19: Processo Unificado de Desenvolvimento de Software

O O

PPROCESSO ROCESSO

UUNIFICADONIFICADO

Page 20: Processo Unificado de Desenvolvimento de Software

EXEMPLODesenvolver um sistema de controle de vendedores ambulantes de um empresa. A empresa dividiu cada cidade em que atua em regiões. Cada região é controlada por um supervisor ao qual está subordinado um certo número de vendedores. A empresa possui diversos pontos distribuídos na cidade. Todo dia os vendedores passam pela empresa, de manhã, e registram, em um boletim de controle, a hora da partida, o roteiro de visitas planejado e o número de contratos de vendas que levaram. Ao final da tarde, cada vendedor passa por um pontos, e registra o resultado das atividades do dia, ou seja, os contratos de venda fechados.

Até as 20 horas, todos vendedores devem ter registrados suas produçõesdo dia. Cada ponto da empresa, processa a esta hora, um resumo das atividades registradas e o remete para a central da empresa. No outro dia o supervisor analisa os boletins recebidos e passa-os, com alguns comentários, ao controle geral de vendas da empresa.

O supervisor, além de controlar a produção dos vendedores, registra o recebimento de novos vendedores e a liberação deles para o departamento pessoal que, por sua vez, controla a contratação, alocação, relocação e demissão de vendedores e supervisores.

Page 21: Processo Unificado de Desenvolvimento de Software

Modelos

RequisitosARTEFATOS

Análise

Projeto

Implementação

Testes

ARTÍFICES

PASSOS e ATIVIDADES

produz

produzido-por

composto-por

Page 22: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos

ARTEFATOS

Modelo Use-Case

ator

Use-Case

descrição da arquitetura

Page 23: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos

ARTÍFICES

Analista de sistemas

arquiteto

Especificador de Use-Case

projetista de interfaces

Page 24: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos

PASSOS

listar potenciais requisitos

entender o contexto do sistema

capturar requisitos funcionais

capturar requisitos não-funcionais

Page 25: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos - Passos

listar potenciais requisitos

Desenvolver uma lista de características obtidas de clientes,usuários, analistas e desenvolvedores

CARACTERÍSTICA:• nome• breve descrição ou definição• conjunto de valores

• Estado (proposto, aprovado, incorporado, validado)•estimativa de custos•prioridade (crítica, importante ou secundária)• riscos (crítico, significante, ordinário)

Page 26: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos - Passos

entender o contexto do sistema

• criar um modelo do domínio

• objetos de negócio (pedidos, contas, contratos,..)• objetos do mundo real (veículos, máquinas, trajetos,..)• eventos básicos (chegada de um pedido, partida de um transporte, ..)

usar diagramas UML, em particular diagramas de classe

Page 27: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos - Passos

capturar requisitos funcionais

ARTÍFICE ARTEFATO

Analista de Sistemas

Especificador de Use-Cases

Projetista de Interfaces

Arquiteto

•Modelo use-case•atores•glossários

Protótipos de interfaces

Use-cases

Arquitetura

responsável

Page 28: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos - Passos

capturar requisitos funcionais

ATIVIDADES E SUBPASSOS

A1) encontrar os atores e use-cases

encontrar os atores

encontrar e descrever cada use-case

descrever o Modelo Use-Case como um todo

A2) Priorizar Use-Cases (visão arquitetural)

Page 29: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos - Passos

capturar requisitos funcionais

ATIVIDADES E SUBPASSOS

A3) Detalhar cada Use-Case

estruturar a descrição do use-case(construir um diagrama de estados e analisar cada caminho)

formalizar a descrição do use-case(usar diagramas de estado, diagramas de atividade ou diagramas

de interação)

descrever o Modelo Use-Case como um todo

Page 30: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos - Passos

capturar requisitos funcionais

ATIVIDADES E SUBPASSOS

A4) Prototipar as interfaces com o usuário

projeto lógico da interface do usuário

projeto físico da interface do usuário e protótipo

Page 31: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos

PROJETO LÓGICO: para cada ator, ver todos use-cases nos quais está envolvido e especificar os elementos de interação (ícones, listas, campos, figuras, etc.)N.B. a mesma interface (formulário) pode aparecer em diversos use-cases para diversos atores!

QUESTÕES para determinar os elementos de interação:• quais informações o ator fornece ao sistema?• quais informações o ator necessita do sistema?• com quais elementos de interação o ator trabalha?• quais ações o ator pode acionar e quais decisões tomar?•Quais classes de domínio ou entidades de negócio estão envolvidos com elementos de interação?

Page 32: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos

PROJETO FÍSICO:

• combinar elementos de interação para formar interfaces que atendam a atores

• determinar elementos adicionais (folders, janelas, controles, etc.)

• desenvolver um protótipo para cada interface

Page 33: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos

capturar requisitos funcionais

ATIVIDADES E SUBPASSOS

A5) Estruturar o modelo Use-Case

identificar funcionalidades comuns(generalizações, <<estende>>)

identificar funcionalidades adicionais ou opcionais

identificar outros relacionamentos entre use-cases (<<inclui>>, inverso de <<estende>>)

Page 34: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos

capturar requisitos não-funcionais

ATIVIDADES

usabilidade

requisitos de interfaces metáfora, frequência de uso, ..

documentação

confiabilidade

tolerância a falhas.

Page 35: Processo Unificado de Desenvolvimento de Software

Obtenção dos Requisitos

capturar requisitos não-funcionais

ATIVIDADES

performance

tempos de resposta

volumes de transações

requisitos físicos

equipamentos, material, espaços, configurações de rede,

software

Page 36: Processo Unificado de Desenvolvimento de Software

Análise

Page 37: Processo Unificado de Desenvolvimento de Software

Análise

MODELO USE-CASE MODELO DA ANÁLISE

linguagem do usuário Linguagem do desenvolvedor

Visão externa do sistema Visão interna do sistema

Estruturado por use-cases Estruturado por classes

Captura a funcionalidade do sistema

Descreve como realizar a funcionalidade

Usado para o contrato com o cliente

Usado para o desenvolvedor entender o sistema

Pode conter redundâncias, inconsistências, etc.

Deve ser preciso e inambíguo

Os requisitos externos são transformados em um modelo interno preciso e completo para desenvolver o projeto do sistema

Page 38: Processo Unificado de Desenvolvimento de Software

Análise - artefatos

2. CLASSE DE ANÁLISE

Classe defronteira

Classe decontrole

Classe deentidades

EXEMPLO

Interface deregistro

processarresumo do dia

Boletim decontrole

1. MODELO DA ANÁLISE

Page 39: Processo Unificado de Desenvolvimento de Software

Análise - artefatos

3. REALIZAÇÃO DE UM USE-CASE

Diagramas de classe

Diagramas de colaboração

Resultadodo dia

Processarresumo

boletim de controle

VENDEDOR

partida

Resumo do dia

SUPERVISOR

mostraresumos

1.registra partida

3. registra retorno2. abre boletim

3. completa boletim

5. dados boletim

6. Registra resumo

8. analisa resumo

9. comentários

7. mostra resumo

10. resumocomentado

RELOGIO

4. 8 horas

Page 40: Processo Unificado de Desenvolvimento de Software

Análise - artefatos

3. REALIZAÇÃO DE UM USE-CASE (cont.)

requisitos especiais

fluxo de eventos

Descrição textual de requisitos não-funcionais

Descrição textual do diagrama de colaboração

4. PACOTES DE ANÁLISE

PACOTE DE SERVIÇOS

Devem ter coesão e fraco acoplamento•Candidatos a subsistemas do projeto

é um conjunto de ações coerentes, indivisíveis para usoem vários use-cases

5. DESCRIÇÃO DA ARQUITETURA

Page 41: Processo Unificado de Desenvolvimento de Software

Análise

arquiteto

Especificador de Use-Case

Especificador de componentes

ARTÍFICES

• responsável pela integridade global do modelo de análise (corretude, consistência e legibilidade), tanto pela sua funcionalidade quanto pela arquitetura

• responsável que a realização de um use-case corresponde a sua especificação

• responsável pelas classe de análise e pelos pacotes

Page 42: Processo Unificado de Desenvolvimento de Software

Análise

PASSOS

Análise arquitetural

Análise de cada Use-Case

Análise de cada classe

Análise de cada pacote

Page 43: Processo Unificado de Desenvolvimento de Software

Análise - passos

Análise arquitetural

Análise arquitetural

MODELOUSE-CASE

REQUISITOS ADICIONAIS

MODELODO DOMÍNIO

DESCRIÇÃOARQUITETURA(mod. Requisitos)

ARQUITETO

DESCRIÇÃOARQUITETURA

(mod. Análise)

CLASSE DE ANÁLISE

(esboço)

PACOTEANÁLISE

(esboço)

Page 44: Processo Unificado de Desenvolvimento de Software

Análise - passos

Análise arquitetural

ATIVIDADES E SUBPASSOS

A1) Identificar pacotes de análise

Encontrar pacotes coesos e fracamente acoplados

Identificar funcionalidades comuns entre pacotes

(pacotes genéricos)

Identificar pacotes de serviço

(serviços opcionais, classes relacionadas funcionalmente)

Dependências entre pacotes

Page 45: Processo Unificado de Desenvolvimento de Software

Análise - passos

Análise arquitetural (cont.)

A2) Identificar classes de entidades óbvias Obtidas a partir das classe do domínio

A3) Identificar requisitos especiais comuns Persistência

Distribuição e concorrência

aspectos de segurança

tolerância a falhas

gerência de transações

Page 46: Processo Unificado de Desenvolvimento de Software

Análise - passos

Análise de cada Use-Case • encontrar as classe de análise para realizar o use-case• distribuir o comportamento do use-case entre as classes• identificar requisitos especiais

Análise de um Use-Case

MODELOUSE-CASE

REQUISITOS ADICIONAIS

MODELODO DOMÍNIO

DESCRIÇÃOARQUITETURA

(mod Análise)

ESPECIFICADORDE USE-CASES

CLASSE DE ANÁLISE

(esboço)

REALIZAÇÃODE UM USE-CASE

(diagramas de classese de colaboração)

Page 47: Processo Unificado de Desenvolvimento de Software

Análise - passos

Análise de cada Use-Case

A1) Identificar classes de análise encontrar classes de entidades para armazenar as informações do use-case para cada ator humano, determinar uma classe de fronteira central (representa a janela principal) determinar as classe de fronteira que interagem com as classes

de entidade determinar, pelo menos, uma classe de controle que coordena o use-case

CONSTRUIR UM DIAGRAMA DE CLASSES

Page 48: Processo Unificado de Desenvolvimento de Software

Análise - passos

Análise de cada Use-Case (cont.)

A2) Descrever interações entre objetos construir um diagrama de colaboração toda classe de análise deve participar de algum diagrama de colaboração dar maior ênfase às conexões e condições do que à sequência às conexões de mensagens podem corresponder associações do diagrama de objetos ou não considerar as relações entre use-cases no diagrama

A3) Determinar requisitos especiais

Page 49: Processo Unificado de Desenvolvimento de Software

Resultadodo dia

Processarresumo

boletim de controleVENDEDOR

partida

Resumo do dia

mostraresumos

1.registra partida

3. registra retorno

2. abre boletim

4. completa boletim

6. dados boletim

7. Registra resumo

9. analisa resumo

10. comentários

8. mostra resumo

11. resumocomentado

5. 8 horas

Análise - passos

RELÓGIO

SUPERVISOR

Análise de cada Use-Case (cont.)

Page 50: Processo Unificado de Desenvolvimento de Software

Análise - passos Análise de cada classe

• identificar as responsabilidades de cada classe, baseado em sua função na realização de use-cases• definir os atributos e relacionamentos• capturar requisitos especiais para cada classe

Análise de uma classeREALIZAÇÃO

DE UM USE-CASE(diagramas de classes

e de colaboração)

ESPECIFICADORDE COMPONENTES

CLASSE DE ANÁLISE

(completa)

CLASSE DE ANÁLISE

(esboço)

Page 51: Processo Unificado de Desenvolvimento de Software

Análise - passos Análise de cada classe

A3) Identificar associações e agregações

A2) Definir os atributos tipos de atributos são conceituais classes com muitos atributos podem ser divididas atributos de classes de fronteira são campos em interfacesclasses de controle geralmente não tem atributos

A1) Identificar responsabilidades Determinar os papéis de cada classe nos diferentes use-cases

A4) Identificar generalizações

A5) Determinar requisitos especiais

Page 52: Processo Unificado de Desenvolvimento de Software

Análise - passos

Análise de cada pacote

Rever as dependências entre pacotes de acordo com associações estáticas ou dinâmicas entre as classes, criadas nos passos anteriores

Garantir que cada pacote preenche sua função

Rever as questões de acoplamento fraco e coesão

Page 53: Processo Unificado de Desenvolvimento de Software

Projeto

• adquirir uma compreensão de aspectos de requisitos não funcionais e restrições sobre linguagens de programação, sistemas operacionais, SGBDs, aspectos de distribuição, etc..• Criar informações suficientes para a implementação, descre- vendo subsistemas, interfaces e classes.

• Estar apto a dividir a tarefa de implementação em equipes

• Determinar mais cedo as interfaces entre os subsistemas

• Criar um modelo que possibilite uma implementação que preencha as estruturas definidas sem altera-las

OBJETIVOS

Page 54: Processo Unificado de Desenvolvimento de Software

Projeto

MODELO DE ANÁLISE MODELO DE PROJETO

conceitual físico

Genérico (c.r. projeto) específico

3 tipos de classes Depende da implementação

Menos formal Mais formal

Mais rápido (1/5 do projeto Mais demorado (5 x análise)Poucos níveis Muitos níveisMenos dinamica Mais dinâmica, foco na

sequenciaNão se mantém no ciclo Se manté em todo ciclo

Page 55: Processo Unificado de Desenvolvimento de Software

Projeto - artefatos

1. MODELO DE PROJETO

É uma hierarquia de subsistemas contendo classe de projeto, projetos de use-cases e interfaces

2. CLASSE DE PROJETO

• na linguagem de programação da implementação• visibilidade dos atributos (ex. publico, protegido, privado)• generalizações herança; • associações e agregações atributos• métodos em pseudo-código

Page 56: Processo Unificado de Desenvolvimento de Software

Projeto - artefatos

3. REALIZAÇÃO DO USE-CASE

Diagrama de classes

Diagrama de interações (diagramas de sequência)

Fluxo de eventos (textual)

Requisitos de implementação

Page 57: Processo Unificado de Desenvolvimento de Software

Projeto - artefatos

7. MODELO DE DISTRIBUIÇÃO (Diagrama de nós e conexões)

5. INTERFACE (separa funcionalidade de implementação)

6. ARQUITETURA (VISÃO DO PROJETO) (1. Subsistemas, interfaces e dependências 2. Classes chave, classes ativas 3. Realização de use-cases centrais ao sistema

4. SUBSISTEMA DE PROJETO (pacotes de análise, componentes, produtos de software, sistemas existentes) - SUBSISTEMAS DE SERVIÇO

8. ARQUITETURA (VISÃO DO MODELO DE DISTRIBUIÇÃO)

Page 58: Processo Unificado de Desenvolvimento de Software

Projeto - artífices

Arquiteto

Especificador de use-cases

Especificador de componentes

MODELO DO PROJETO

ARQUITETURA

MODELO DE DISTRIBUIÇÃO

REALIZAÇÃO DE USE CASE

CLASSE DE PROJETO

SUBSISTEMA

INTERFACE

Page 59: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto deum use-case

Projeto de uma classe

Projeto deum subsistema

Projeto daarquitetura

ARQUITETOESPECIFICADORDE COMPONENTES

ESPECIFICADORDE USE-CASES

Page 60: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto da arquitetura

A1) Identificar nós e configurações de rede

determinar os nós envolvidos e suas características

determinar os tipos de conexões entre os nós

verificar necessidades de processamentos redundantes, backups, etc.

Page 61: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto da arquitetura (cont.)

A2) Identificar subsistemas e suas interfaces subsistemas da aplicação identificar middleware (SO, SGBD, software de comunicação, pacotes GUI, distribuição, etc.) definir dependências entre os subsistemas identificar as interfaces entre os subsistemas

Pacote (análise)

Subsistema novo

Software existente

Não serve como subsistema

É integrado com sistemas existentes

Page 62: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto da arquitetura (cont.)

A3) Identificar classes de projeto significativas

a partir das classes de análise

classes ativas (requisitos de concorrência, performance, inicialização, distribuição, prevenção de deadlocks)

A4) outros requisitos de projeto (persistência, transparência de distribuição, segurança, recuperação de erros, gerência de transações)

Page 63: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto de um use-case

A1) Identificar classes de projeto participantes

estudar as classes de análise identificar classes que realizam os requisitos especiais da análise definir as classes de projeto e passar para o projetista de componentes

OBJETIVO:• identificar classes de projeto• distribuir o comportamento entre os objetos• definir requisitos das operações• requisitos de implementação do use-case

Page 64: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto de um use-case (cont.)

A2) Descrever a interação entre objetos

o use-case é acionado por uma mensagem de um ator a um objeto traçar um ou vários diagramas de sequência utilize nomes e textos (fluxo de eventos) para descrever as sequências considere as associações entre use-cases no diagrama de sequência

Page 65: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto de um use-case (cont.)

A3) Identificar subsistemas e interfaces

identificar os subsistemas obtidos a partir de pacotes deste use-case verifique se há classes de projeto especiais e seus subsistemas

A4) Descrever a interação entre subsistemas

a partir dos caminhos no diagrama se sequência determinar a interação determinar qual interfaces é utilizada por qual mensagem

Page 66: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto de uma classe

A1) Definir uma classe de projeto

a partir de classes de fronteira : depende da linguagem classes de entidades persistentes podem produzir tabelas relacionais classes de controle podem gerar várias classes de projeto (distribuição) ou serem encapsuladas em classes de entidades

ASPECTOS:• atributos• operações e sua realização• relacionamentos• estados• dependências• interfaces• requisitos de implementação

Page 67: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto de uma classe (cont.)

A2) Definir operações realizar as responsabilidades da classe requisitos especiais (e.g. acesso ao banco de dados) atender às necessidades das interfaces da classe

A3) Definir atributos considerar os atributos da análise os tipos dos atributos são determinados pela linguagem de programação valores de atributos usados por vários objetos devem ser transformados em objetos

Page 68: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto de uma classe (cont.)

A4) Identificar associações e agregações dependendo da linguagem, transformá-los em relacionamentos tentar transformar cardinalidades, papéis, etc. em atributos ou em novas classes para realizar a associação analise a navegabilidade pelas associações

A5) Identificar generalizações

A6) Descrever métodos realização de operações por pseudo-código, diagramas de atividades, linguagem natural,..

A7) Descrever estados diagrama de estados

Page 69: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Projeto de um subsistema

A1) Rever as dependências entre subsistemas

A2) Rever as interfaces

A3) Rever o conteúdo

Page 70: Processo Unificado de Desenvolvimento de Software

Implementação - artefatos

1. MODELO DA IMPLEMENTAÇÃO

2. COMPONENTE

3. SUBSISTEMA DE IMPLEMENTAÇÃO

4. INTERFACE

5. ARQUITETURA (visão da implementação)

6. PLANO DE INTEGRAÇÃO

Page 71: Processo Unificado de Desenvolvimento de Software

Implementação - artefatos

1. MODELO DA IMPLEMENTAÇÃO

É uma hierarquia de subsistemas de implementação contendo componentes e interfaces

2. COMPONENTE

• <<executable>> (programa executável)• <<file>> (arquivo contendo código fonte ou dados)• <<library>> (biblioteca estática ou dinâmica) • <<table>> (tabela do banco de dados)• <<document>> (um documento)

É UM PACOTE CONTENDO ELEMENTOS DO PROJETO

Estereótipos:

Page 72: Processo Unificado de Desenvolvimento de Software

Implementação - artefatos

2. COMPONENTE - exemplos

<<executable>>ProcessaBoletim.java

<<table>>Resumo

BOLETIM____________________

RESUMO____________________ <<table>>

Contrato

realiza

realiza

geragera

Page 73: Processo Unificado de Desenvolvimento de Software

Implementação - artefatos

3. SUBSISTEMAS DE IMPLEMENTAÇÃO

• um package em Java•um project em Visual Basic•um diretório de C++

CORRESPONDÊNCIA 1-1 COM SUBSISTEMAS DE PROJETO

4. INTERFACES

Implementam as interfaces do projeto

Page 74: Processo Unificado de Desenvolvimento de Software

Implementação - artefatos

5. ARQUITETURA (visão da implementação)

6. PLANO DE INTEGRAÇÃO

•Decomposição em subsistemas, compostos de interfaces e componentes •Componentes chave

• Primeira versão executável• testes localizados de integração para facilitar a detecção de erros• versão final

Page 75: Processo Unificado de Desenvolvimento de Software

Implementação - artífices

Arquiteto

Integrador do sistema

Engenheiro de componentes

MODELO DA IMPLEMENTAÇÃO

DESCRIÇÃO DA ARQUITETURA

MODELO DE DISTRIBUIÇÃO

PLANO DE INTEGRAÇÃO

COMPONENTE

SUBSISTEMA DE IMPLEMENTAÇÃO

INTERFACE

Page 76: Processo Unificado de Desenvolvimento de Software

Implementação - artífices

Page 77: Processo Unificado de Desenvolvimento de Software

Implementação

PASSOS

Implementação arquitetural

Integrar sistemas

Implementar subsistema

Testar componentes

Implementar uma classe

Page 78: Processo Unificado de Desenvolvimento de Software

Projeto - passos

Integrarsistemas

Implementaruma classe

Implementarum subsistemaImplementação

arquitetural

ARQUITETOENGENHEIRO DE COMPONENTES

INTEGRADOR DE SISTEMAS

Teste deunidade

Page 79: Processo Unificado de Desenvolvimento de Software

Implementação - passos

Implementação arquitetural

identificar componentes significativos

Integrar sistemas

determinar sequência de construção integrar construções (compilar e linkar novos componentes)

Page 80: Processo Unificado de Desenvolvimento de Software

Implementação - passos

Implementar subsistema

garantir conteúdo do subsistema

Implementar uma classe

implementar métodos determinar operações/métodos auxiliares

Page 81: Processo Unificado de Desenvolvimento de Software

Teste

OBJETIVOS

Planejar os testes em cada iteração, tanto os testes de integração quanto os testes de sistema preparar casos de teste, criar procedimentos de teste e

procedimentos executáveis Realizar os testes e analisar os resultados

Page 82: Processo Unificado de Desenvolvimento de Software

Teste - artefatos

1. MODELO DE TESTE

Planejar os testes em cada iteração, tanto os os testes de integração quanto os testes de sistema preparar casos de teste, criar procedimentos de teste e

procedimentos executáveis Realizar os testes e analisar os resultados

2. CASO DE TESTE

Page 83: Processo Unificado de Desenvolvimento de Software

Fases X Etapas

Concepção Elaboração Construção Transição

Requisitos

Análise

Projeto

ImplementaçãoTestes

Iter.#1

Iter.#2

_ _ _ _ _ Iter.#n-1

Iter.#n

Fases

Page 84: Processo Unificado de Desenvolvimento de Software

As quatro Fases

Fase de Concepção

estabelece o business case (prioridade de negócio)

Delimitar o escopo do sistema Determinar arquitetura candidata (elementos novos, arriscados) Identificar riscos críticos Identificar potenciais usuários ou clientes do sistema

Passos

Page 85: Processo Unificado de Desenvolvimento de Software

As quatro Fases

Fase de Elaboração

determina uma arquitetura estável

Determinar linha base da arquitetura cobrindo funcionalidades significantes

Identificar riscos críticos que podem derrubar planos, orçamentos,e prazos

Determinar níveis de qualidade (confiabilidade, tempos de resposta) Definir use-cases que cobrem ca. de 80% da funcionalidade do

sistema Determinar limites de pessoal, custos, prazos.

Passos

Page 86: Processo Unificado de Desenvolvimento de Software

As quatro Fases

Fase de Construção

determina capacidades operacionais iniciais

Estender o modelo de use-cases para toda a aplicação Finalizar a análise, projeto, implementação e testes Checar integridade da arquitetura (com possíveis alterações) Monitorar ricos críticos

Passos

Page 87: Processo Unificado de Desenvolvimento de Software

As quatro Fases

Fase de transição

transforma versão beta em um sistema operacional

Preparar atividades de transição Avisar clientes sobre mudanças no ambiente (hardware, software,

distribuição, ..) Preparar documentação final Carregar o novo sistema Corrigir possíveis defeitos detectados no beta-teste

Passos

Page 88: Processo Unificado de Desenvolvimento de Software

Iterativo e incremental

Uma ITERAÇÃO genérica é composta pelas 5 etapas:Requisitos, Análise, Projeto, Implementação e Testes

Após cada iteração ou cada fase:

• planejar a próxima iteração à luz da experiência anterior

• modificar o processo, adaptar ferramentas, treinamento, etc.

Page 89: Processo Unificado de Desenvolvimento de Software

Iterativo e incremental

requisitos análise projeto Implement. testes

planejamento consolidação

ITERAÇÃO

Page 90: Processo Unificado de Desenvolvimento de Software

Iterativo e incremental

Planejando asITERAÇÕES

Planejando as FASES • tempos por fase• milestones• iterações por fase• plano do projeto

• cronograma• conteúdo: - quais use-cases serão realizados - iterações anteriores e posteriores

Page 91: Processo Unificado de Desenvolvimento de Software

Riscos

Possíveis riscos:

Gerenciar umalista de riscos:

• descrição• prioridade (crítico, signifcante, rotineiro)• impacto• responsabilidades• contingência (o que fazer?)

• relacionados a um produto• não conseguir a arquitetura• não realizar os requisitos