Apoo Jacques Ufcg

  • View
    80

  • Download
    35

Embed Size (px)

Transcript

  • Anlise e Projeto de Sistemas Orientados a Objeto

    Objetivos Gerais Aprender a analisar, projetar e implementar sistemas usando a orientao a objeto (OO). Ao terminar a disciplina, o aluno ter desenvolvido um projeto prtico completo utilizando os conceitos gerais apresentados.

    Objetivos Especficos Introduzir os conceitos bsicos relacionados com a orientao a objeto, incluindo

    sua aplicabilidade a Anlise Orientada a Objeto (OOA), o Projeto Orientado a Objeto (OOD) e a Programao Orientada a Objeto (OOP)

    Apresentar a linguagem de modelagem padro de mercado Unified Modeling Language (UML) largamente utilizada para a Anlise e Projeto de sistemas de software de grande escala

    Apresentar um processo completo de desenvolvimento de software utilizvel com a linguagem UML

    Exemplificar OOA, OOD, OOP, UML e o processo de desenvolvimento atravs de um estudo de caso completo

    Apresentar tcnicas bsicas de Projeto Orientado a Objeto. O enfoque mostrar em que consiste um bom projeto.

    Apresentar Padres de Projeto, chaves para o bom projeto de software. Apresentar rapidamente assuntos mais "quentes" relacionados com a tecnologia

    OO. Permitir que o aluno aprofunde seu conhecimento dos conceitos apresentados

    atravs da elaborao de um sistema completo

    apoo-1 programa prxima

    Page 1 of 1Anlise e Projeto de Sistemas Orientados a Objeto

    04/02/2012file://C:\_SYNC\_DISCIPLINAS\APOO\APOO Jacques UFCG\apoo1.htm

  • Anlise e Projeto de Sistemas Orientados a Objeto

    Programa 1. Introduo Anlise e Projeto de Sistemas Orientados a Objeto

    1.1 Anlise e projeto orientados a objeto (Captulo 1 do livro de Larman) 1.2 Introduo a um processo de desenvolvimento (Captulo 2) 1.3 Modelos e artefatos (Captulo 3)

    2. Fase de Planejamento e Elaborao

    2.1 Estudo de caso: Terminal Ponto de Venda (PDV) (Captulo 4) 2.2 Entendendo requisitos (Captulo 5) 2.3 Use cases: descrio de processos (Captulo 6) 2.4 Priorizao de use cases (Captulo 7)

    3. Fase de Anlise 1

    3.1 Elaborao de um modelo conceitual (Captulo 9) 3.2 Modelo conceitual: adio de associaes (Captulo 10) 3.3 Modelo conceitual: adio de atributos (Captulo 11) 3.4 Construo do glossrio (Captulo 12) 3.5 Comportamento dinmico: diagramas de sequncia (Captulo 13) 3.6 Comportamento dinmico: contratos (Captulo 14)

    4. Fase de Projeto 1

    4.1 Da anlise ao projeto (Captulo 15) 4.2 Projeto arquitetural (Captulo 22) 4.3 Descrio de use cases reais (Captulo 16) 4.4 Diagramas de colaborao (Captulo 17) 4.5 Padres para atribuir responsabilidades (Captulo 18) 4.6 Projeto de solues com objetos e padres (Captulo 19) 4.7 Visibilidade (Captulo 20) 4.8 Diagramas de classe para a fase de projeto (Captulo 21) 4.9 Esquema de banco de dados e mapeamento OO-Relacional (Captulo 38)

    5. Fase de Implementao

    5.1 Mapeamento do projeto para cdigo (Captulo 23) 5.2 Programa exemplo em Java (Captulo 24) 5.3 Testes de unidade 5.4 Adicionando uma interface com o usurio

    6. Fase de Anlise 2

    6.1 Escolha de requisitos da segunda iterao (Captulo 25) 6.2 Relacionando mltiplos use cases (Captulo 26) 6.3 Extenso do modelo conceitual (Captulo 27) 6.4 Generalizao (Captulo 28) 6.5 Organizando o modelo conceitual com packages (Captulo 29) 6.6 Refinamento do modelo conceitual (Captulo 30) 6.7 Modelo conceitual no estudo de caso (Captulo 31)

    Page 1 of 2Anlise e Projeto de Sistemas Orientados a Objeto: Programa

    04/02/2012file://C:\_SYNC\_DISCIPLINAS\APOO\APOO Jacques UFCG\apoo2.htm

  • 6.8 Comportamento do sistema: Diagramas de sequncia e contratos na Segunda Iterao (Captulo 32) 6.9 Comportamento do sistema: Diagramas de estado (Captulo 33)

    7. Fase de projeto 2

    7.1 Polimorfismo 7.2 Interfaces 7.3 Composio versus herana 7.4 Padres de Projeto (Design Patterns)

    7.4.1 O que so Design Patterns? 7.4.2 Elementos essenciais de um Design Pattern 7.4.3 Design Pattern: Factory Method 7.4.4 Design Pattern: Iterator 7.4.5 Design Pattern: Composite 7.4.6 Design Pattern: Strategy 7.4.7 Design Pattern: Decorator 7.4.8 Design Pattern: Template Method 7.4.9 Design Pattern: Observer 7.4.10 Comentrios finais sobre Design Patterns

    8. Tpicos avanados

    8.1 Refactoring 8.2 Extreme Programming 8.3 Frameworks 8.4 Componentes

    apoo-2 home

    Page 2 of 2Anlise e Projeto de Sistemas Orientados a Objeto: Programa

    04/02/2012file://C:\_SYNC\_DISCIPLINAS\APOO\APOO Jacques UFCG\apoo2.htm

  • 1. Introduo Anlise e Projeto de Sistemas Orientados a Objeto

    Anlise e projeto orientados a objeto Introduo a um processo de desenvolvimento Modelos e artefatos

    intro programa

    Page 1 of 11. Introduo Anlise e Projeto de Sistemas Orientados a Objeto

    04/02/2012file://C:\_SYNC\_DISCIPLINAS\APOO\APOO Jacques UFCG\intro\index.htm

  • Anlise e Projeto Orientados a Objeto

    Objetivos

    Comparar e contrastar Anlise e Projeto Definir Anlise e Projeto Orientados a Objeto

    O que vamos fazer na disciplina?

    Saber uma linguagem de programao orientada a objeto (OO) no suficiente para criar sistemas OO

    Tem que saber Anlise e Projeto OO (APOO) Isto , Anlise e Projeto usando uma perspectiva de objetos

    Usaremos um estudo de caso para concretizar a discusso Usaremos a linguagem UML (Unified Modeling Language) para criar modelos (de

    anlise e de projeto) Um modelo uma representao abstrata dos aspectos essenciais de um

    sistema O que "essencial" depende do momento da modelagem A UML usa uma representao principalmente grfica para representar os

    modelos UML muito popular hoje em dia para modelar sistemas

    Usaremos Design Patterns (padres de projeto) para mostrar solues abstratas para problemas que surgem frequentemente durante o projeto de sistemas OO

    Os patterns trataro principalmente de: Como atribuir responsabilidades a objetos (uma das atividades mais difcil

    no desenvolvimento de sistemas OO) Como separar o que muda do que constante numa determinada situao,

    com o objetivo de ganhar flexibilidade Para evitar "o efeito gelatina"

    Explicaremos e seguiremos um processo de desenvolvimento que mostra claramente quais so as etapas a seguir para produzir software de qualidade

    Veremos tambm quais artefatos devem ser produzidos na vrias fases e etapas do processo

    O que Anlise e Projeto?

    Diferenas entre anlise e projeto: tem mais do que uma definio empregada Primeira alternativa:

    A anlise modela o problema e consiste das atividades necessrias para entender o domnio do problema (o que deve ser feito). uma atividade de investigao.

    O projeto modela a soluo e consiste das atividades de criao (como pode ser feito)

    Page 1 of 4Anlise e Projeto Orientados a Objeto

    04/02/2012file://C:\_SYNC\_DISCIPLINAS\APOO\APOO Jacques UFCG\intro\intro1.htm

  • Segunda alternativa: A anlise consiste de todas as atividades feitas com ou para o conhecimento

    do cliente. A informao produzida aquela que o cliente deve discutir e aprovar

    O projeto inclui as atividades que resultam em informao que interessa apenas ao programador

    Com essa definio, a anlise invade um pouco o "lado da soluo", pois o cliente deve discutir alguns tipos de interaes que ocorrero na interface do usurio, etc.

    Observe portanto que no definio binria que isole "anlise" de "projeto" Nesta disciplina, adotaremos a segunda alternativa, pois queremos associar as

    palavras "anlise" e "projeto" aos artefatos (deliverables) entregues nos final de cada fase

    Um modelo de anlise deve ser aprovado pelo cliente e pode incluir alguma (pequena) discusso da soluo, principalmente no que diz respeito interface com usurio, etc.

    Apesar do nome da disciplina, vamos ver tambm as fases de requisitos, implementao e testes

    A obteno de requisitos frequentemente includa na fase de anlise ("anlise de requisitos")

    Page 2 of 4Anlise e Projeto Orientados a Objeto

    04/02/2012file://C:\_SYNC\_DISCIPLINAS\APOO\APOO Jacques UFCG\intro\intro1.htm

  • O que Anlise e Projeto Orientados a Objeto (APOO)?

    A perspectiva empregada de objetos (coisas, conceitos ou entidades) Durante a Anlise OO, a nfase est em achar e descrever objetos (ou conceitos)

    no domnio do problema Por exemplo, num sistema de informao para uma biblioteca, alguns dos

    conceitos so Livro, Biblioteca, Usurio. Tais objetos podem ter atributos e responsabilidades

    Durante o projeto orientado a objeto, a nfase est em achar objetos lgicos de software que podero ser eventualmente implementados usando uma linguagem de programao OO

    Tais objetos pode ter atributos e mtodos Durante a construo (programao OO), os objetos do projeto so implementados

    e testados

    APOO versus AP Orientados a Funes (APOF)

    Com ambas as tcnicas, usa-se decomposio (chamado modularizao em APOF) para lidar com a complexidade

    A APOF (tambm chamados de Anlise e Projeto Estruturados), a decomposio por funo ou processo

    Page 3 of 4Anlise e Projeto Orientados a Objeto

    04/02/2012file://C:\_SYNC\_DISCIPLINAS\APOO\APOO Jacques UFCG\intro\intro1.htm

  • Por que queremos Orientao a Objeto? Quais so as vantagens?

    As abstraes podem corresponder s coisas do domnio do problema O nvel mais natural mais fcil comunicar-se com o usurio ou domain expert na linguagem dele

    Os mesmos objetos existem em todas as fases e uma notao nica (objetos) facilita portanto a integrao entre fases de desenvolvimento (passar de uma fase para a outra)

    Fases posteriores adicionam novos objetos mas os objetos do domnio do problema permanecem: so estveis

    Isso ajuda o rastreamento de decises de projeto