apoo jacques ufcg
Post on 29-Oct-2015
83 views
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