1 - lafayette b. melo – análise e projeto de sistemas para a internet – modelos de ciclo de...

24
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 8. Análise e projeto orientados a 8. Análise e projeto orientados a objetos e UML (casos de uso) objetos e UML (casos de uso) 8.1 A junção da análise orientada a objetos com a 8.1 A junção da análise orientada a objetos com a UML e com outros métodos UML e com outros métodos 8.2 Casos de uso 8.2 Casos de uso Objetivo: compreender os acréscimos dados a Objetivo: compreender os acréscimos dados a análise orientada a objetos e aplicar casos análise orientada a objetos e aplicar casos de uso de uso em UML em UML

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

11 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

8. Análise e projeto orientados a objetos e UML 8. Análise e projeto orientados a objetos e UML (casos de uso)(casos de uso)

8.1 A junção da análise orientada a objetos com a UML e com 8.1 A junção da análise orientada a objetos com a UML e com outros métodosoutros métodos8.2 Casos de uso8.2 Casos de uso

Objetivo: compreender os acréscimos dados a análise Objetivo: compreender os acréscimos dados a análise orientada a objetos e aplicar casos de usoorientada a objetos e aplicar casos de uso

em UMLem UML

22 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• 8.1 A junção da análise orientada a objetos com a 8.1 A junção da análise orientada a objetos com a UML e com outros métodosUML e com outros métodos

• UML (unified modeling language) é uma linguagem para especificar, visualizar e construir os artefatos de sistemas de software

• É um padrão aceito para a indústria para a modelagem orientada a objetos

• Resultou de um esforço conjunto de três autores e da aceitação da OMG (object management group) – Grady Booch– Jim Rumbaugh– Ivar Jacobson– http://www.omg.org

• UML tem ao menos dez/treze notações/diagramas e é voltada para modelar e não para dizer como fazer uma análise ou projeto

33 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

UML 1.XUML 1.X UML 2.0UML 2.0

Atividade Atividade

Caso de uso Caso de uso

Classe Classe

Objetos Objetos

Sequência Sequência

Colaboração Comunicação

Estado Estado

Pacotes

Componentes Componentes

Instalação Implantação

Interação – Visão geral

Timing

Composite structure diagram

Atualizações em UML estão em http://www.omg.org/tecnology/documents/formal/uml

44 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• É importante compreender que a UML surgiu como uma linguagem que integrava a modelagem orientada a objetos com outras notações– UML também não é orientação a objetos em si

• Razões do que é hoje UML– I) Padronização e mudanças de metodologias e notações– II) Resposta aos velhos problemas do software

• I) Padronização e mudanças de metodologias e I) Padronização e mudanças de metodologias e notaçõesnotações

– De uma maneira geral, transposição do modelo em cascata para um processo unificado

55 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

66 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

– De uma maneira mais específica, um conjunto de fatos históricos que resultaram na união dos “três amigos”

77 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• PERGUNTA CRUCIAL:

• Como estabeleceremos nossa metodologia de desenvolvimento?– RUP?– XP?– ICONIX?– AM?– Remendos de outras metodologias, hibridismos, ecletismos?

– E as questões para a Web?– E as questões de hoje sobre software livre?– Há questões específicas, por exemplo, para o desenvolvimento

de produtos educacionais?

– Etc, etc e etc

88 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• Além da padronização e mudanças de metodologias e notações dos “três amigos” atender um apelo comercial, há razões para esta padronização que dizem respeito II)II) aos velhos problemas do softwareaos velhos problemas do software……

– 1) O software não apresenta a mesma constância que em outras áreas

– 2) A “burrice” do usuário X a “burrice” de não entender que os requisitos de software sofrem mudanças

99 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• Na concepção do software – o usuário pode ter certa uma necessidade, mas a forma de resolver ou atender a necessidade não tem um formato definido

– Na área civil, o engenheiro pode delimitar a medida e as Na área civil, o engenheiro pode delimitar a medida e as possibilidades de terreno em um formato definidopossibilidades de terreno em um formato definido

• Na aprovação da concepção – o usuário requer conhecimento específico sobre as modelagens e outras questões que lhe formos remeter, mesmo se for da área de informática, para amadurecer sua idéia inicial

– Na área civil, ele vê a planta sabendo o que é uma Na área civil, ele vê a planta sabendo o que é uma paredeparede

• No detalhamento das necessidades – após às funcionalidades escritas a própria equipe de desenvolvimento descobre suas inconsistências

– Na área civil, isso simplesmente não aconteceNa área civil, isso simplesmente não acontece

1010 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• No início da construção – a idéia de como atender a necessidade muda a partir de um formato

– Na área civil, geralmente os requisitos simplesmente não Na área civil, geralmente os requisitos simplesmente não mudam (já imaginou quebrar as paredes de um quarto mudam (já imaginou quebrar as paredes de um quarto porque se viu que uma cama de casal não cabia?)porque se viu que uma cama de casal não cabia?)

• Nos testes – problemas podem ocorrer pelo fato de o usuário não participar e até haver a demissão anterior de um elemento da equipe

– Na área civil, o usuário normalmente visita a obra Na área civil, o usuário normalmente visita a obra periodicamente e a demisão de um trabalhador não periodicamente e a demisão de um trabalhador não afeta que outro continue o mesmo trabalhoafeta que outro continue o mesmo trabalho

• Na entrega – normalmente, o usário diz “não era bem isso que eu queria” ou pede mais uma modificação

– O que representaria tal frase depois de uma casa O que representaria tal frase depois de uma casa entregue?entregue?

1111 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

– 3) Não há uma forma CORRETA de construir software, pois esta construção depende de vários fatores atuando em conjunto:

• Conhecimento do negócio a ser modelado• Conhecimento da tecnologia a ser utilizada• Capacidade de abstração do usuário• Capacidade de abstração do desenvolvedor• Dinheiro e outros recursos…

– 4) Relações MODELAGEM X REALIDADE

– 5) Intangibilidade

– 6) Condições de automatizar algo que já tem em pleno vigor (problema para os casos de uso, ver adiante!)

– 7) Má formação profissional em informática (ver o profissional dos casos de uso – o analista de negócios – adiante!)

1212 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• 8.2 Casos de uso8.2 Casos de uso

• O caso de uso é a mais importante construção de orientação a objetos, utilizando UML– Acompanha do início ao fim da conclusão– Acontece em todas as iterações

• Conceitos importantes:– Ator

• É uma pessoa, um sistema, uma entidade externa, um roteador

• Representa um determinado papel

1313 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

– Caso de uso• Macroatividade que encerra diversas tarefas ou atividades• Ex.: Pagamento de compras

» Atividades – mostrar e validar cartão, informar valor debitado, informar senha que permite o débito, validar senha, retorno da instituição financeira, resumo da operação

• Ex.: imprimir nota fiscal• O limite de um caso de uso é uma decisão pessoal

1414 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• Quanto um caso de uso deve ser descrito?– Com bastantes detalhes– Com objetividade que não sacrifique a composição do detalhe– Aplicado a partir de abstrações

• Quem faz a extração dos casos de uso?– Um profisional habilitado em análise de negócios– Métodos usados

• Observação• Entrevista

– Perfil do profissional de casos de uso:• Boa capacidade de comunicação interpessoal

– # de extrovertido# de extrovertido– Com capacidade de ouvir # escutarCom capacidade de ouvir # escutar

• Capacidade de escrever o que ouviu• Bom relacionamento interpessoal• Cultura geral

1515 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• Como extrair casos de uso?– Sugestão de estrutura de caso de uso

Nome referência: AB200501 – Nome do caso de usoVerbo no infinitivo (informar, comprar, pagar)

Breve descritivoInformar o que trata o caso de uso

Pré-condiçõesDescrição que informa o que é necessário para que este caso de uso se inicie

Atores envolvidos

Cenário principalDescrição do mundo perfeito, sem exceções (presente do indicativo e substantivos)

Cenário alternativo

Requisitos especiais

Dados

Observação

Analista de negócio:___________________________________

Entrevistado:________________________________________

Área:_______________________________________________

Data:___/___/___

Versão:

1616 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• Como lidar com as mudanças de requisito nos casos de uso?

– Entender que requisito é uma condição ou capacidade que um software deve ter

– Entender que mudança de requisito não é mudança do negócio• Essas implicam não só novos modelos, mas novos

documentos, novos prazos e novos preços• Dependerá de uma avaliação coletiva e da comunicação

entre os stakeholders

• Quem e como é aprovado um caso de uso?– Em primeiro lugar, seu colega– Por qualquer meio– Nunca, caso de uso um a um

1717 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• Modelar “o que é” ou “como será”?– Se o negócio existir e se desejar levar ele para a Internet,

retratar “como é”– Se o usuário disser que gostaria de modelar “diferente”,

modele “como será”– Enfim, pense como um analista de objetos

• Como acompanhar o progresso dos casos de uso?– Reuniões quinzenais ou mensais

• O que usar, além da forma escrita?– Gráficos, organogramas e uma notação padrão adiante

1818 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• Notação gráfica para casos de uso

1919 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• Exemplo1 – Locadora de DVD (alguns problemas)

2020 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

2121 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

• Exemplo 2 – Posto de vendas (problema típico)

2222 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

2323 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB

2424 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB COINFO – CEFET-PB • Exemplo 3 – Operações bancárias (incluir a descrição)