1 Orientação a Objetos - Programação em C++ Slides 9: Programação ou Implementação: uma fase da engenharia de software. Projeto (UML) e Programação (C++,...)

Slides:



Advertisements
Apresentações semelhantes
APS I Análise e Projeto de Sistemas I
Advertisements

Análise e Projeto Orientado a Objetos
Análise e Desenvolvimento de Sistemas
Padrão de Projeto Iterator
Modelagem de Software Orientado a Objetos
Sistema para Criação e Testes de Modelos Formais
Projeto de Sistemas de Software
Referências Bibliográficas Orientação a Objetos
Introdução a UML.
RUP Rational Unified Process (Processo Unificado de Desenvolvimento da Rational) 1.
Análise e Projeto de Sistemas
Arquitetura de Aplicações Web
Componentes: A Abordagem Catalysis
Professor: Rogério Lopes Disciplina: Engenharia de Software II Fortium Sistemas da Informação Engenharia de Software II.
WARE SECURITY SYSTEM Admerson Viana Eduardo Vecci Raul Maia Wagner Honorato.
WARE SECURITY SYSTEM Admerson Viana Eduardo Vecci Raul Maia Wagner Honorato.
Introdução a Engenharia de Software
Diagrama de Classes Ilustra as especificações de software para as classes e interfaces do sistema. É obtido através da adição de detalhes ao modelo conceitual.
Rose A ferramenta Case Rational Rose
Modelagem de Software.
Metodologia de Desenvolvimento de Software – RUP 4. Implementação
Gestão de Configuração & Mudanças Apresentação Márcio Aurélio Ribeiro Moreira
Metodologia de Desenvolvimento de Software – RUP 9. Ambiente
Introdução a Desenvolvimento de Sistemas
Introdução a Desenvolvimento de Sistemas
PSBD II Projeto de Sistemas de Banco de Dados II.
Introdução Eduardo Figueiredo 04 de Março de 2010 POOAula 01 ou
Padrão de Projeto Iterator Projeto de Sistemas de Software Thiago Pinheiro de Araújo.
Análise e Especificação de Requisitos © 2001 Jaelson CastroInformações Gerais 1 Análise e Especificação de Requisitos - IF119 Centro de Informática Jaelson.
Copyright © 2006 Qualiti. Todos os direitos reservados. Uma Visão Crítica.
Desenvolvimento de Jogos e Entretenimento Digital
A Linguagem Formal de Especificação VDM-SL
CIn-UFPE1 © 2003, Alexandre Vasconcelos Visão Geral do RUP.
Análise e Projeto de Sistemas © 2003 Jaelson CastroInformações Gerais 1 Análise e Projeto de Sistemas Centro de Informática Jaelson Castro
Engenharia de Software
Modelagem Orientada a Objetos Especialização em Engenharia de Software PUCPR 1999.
CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA DESIGN PATTERNS Prof. Cesar Augusto Tacla UTFPR/Campus Curitiba.
Introdução a UML.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
EA977 Laboratório de Programação de Sistemas FEEC-UNICAMP Ricardo Gudwin.
SISTEMAS DE INFORMAÇÃO Projeto de Sistemas Análise Orientada a Objetos 2011/02 UNIPAC – Araguari FACAE - Faculdade de Ciências Administrativas e Exatas.
APS II Análise e Projeto de Sistemas de Informação II
Projeto de Arquitetura de Software
Projeto Orientado a Objetos Prof. Wolley
Uma Extensão do Fluxo de Análise e Projeto do RUP com suporte a Desenvolvimento Baseado em Componentes Eduardo Almeida
1 Orientação a Objetos - Programação em C++ 3 o Slides: Relações entre objetos em C++ e UML OO – Engenharia Eletrônica Prof. Jean Marcelo SIMÃO – DAELN.
1 Orientação a Objetos - Programação em C++ 1 o Conjunto de Slides – A : o Conteúdo da Disciplina, Importância Sistêmica desta, e a Introdução à OO/C++.
Métodos e Técnicas de Desenvolvimento
Orientação a Objetos - Programação em C++ Slides 11: Herança et al. (Funções Virtuais, Polimorfismo, Herança Múltipla, Funções Virtuais Puras e Classes.
1 Orientação a Objetos - Programação em C++ 2 o Slides: Relações entre objetos em C++ OO – Engenharia Eletrônica Prof. Jean Marcelo SIMÃO.
Desenvolvimento dirigido a modelos Introdução. Agenda Modelos.
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Orientação a Objetos - Programação em C++ Slides 17: Programação Visual ou Orientada a Objetos Gráficos (Formulários, Botões, Caixas de Texto etc) – Exemplificado.
Disciplina: Análise e Projeto de Sistemas
1 Orientação a Objetos - Programação em C++ 1 o Slides – B : Introdução à OO/C++ Passando à Pratica – Estruturas, Classes e Objetos Engenharia Eletrônica.
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Transcrição da apresentação:

1 Orientação a Objetos - Programação em C++ Slides 9: Programação ou Implementação: uma fase da engenharia de software. Projeto (UML) e Programação (C++,...) OO – Engenharia Eletrônica Prof. Dr. Jean Marcelo SIMÃO – DAELN / UTFPR

2 Engenharia de Software Levantamento de Requisitos Análise e Projeto Implementação ou Codificação Testes Visão Clássica

3 Engenharia de Software OO Levantamento de Requisitos Análise e Projeto Implementação ou Codificação Testes Texto Estruturado Diagramas de Casos de Uso da UML. Diagramas de Requisitos da SysML. Exemplos de Técnicas Diagramas UML de: - CLASSES. - Objetos/Seqüência. -Colaboração. -Estados. -Atividades. -Componentes. Código em Ling. de Programação OO, por exemplo C++, Java ou C#. Testes utilizando o software gerado, utilizando registro em arquivos, usando debugger etc. Diagramas da UNIFIED MODELING LANGUAGE (UML) Diagramas da UNIFIED MODELING LANGUAGE (UML) e SYSTEM MODELING LANGUAGE (SysML). Linguagem e Ambiente de Programação OO Linguagem e Ambiente de Programação OO e eventualmente Ambiente de Testes.

4 Engenharia de Software OO Levantamento de Requisitos Análise e Projeto Implementação ou Codificação Testes Textos, Diagramas de Casos de Uso da UML etc Exemplos de Ferramentas Diagramas UML de: - CLASSES - Objetos - Seqüência -Colaboração -Estados -Atividades Código em Linguagem de Programação OO, por exemplo C++, Java ou C# Testes utilizando o software gerado, utilizando registro em arquivos, usando debugger. Ferramentas CASE: StarUML, Jude, Rational Rose, System Architect, Together, VisualParadigm, Rhapsody... Ambiente de Programação OO (integráveis as Ferramentas CASE): Microsoft Visual C++.net Express Edition, Microsoft Visual C++.net, Microsoft Visual C++, Borland Builder C++, Borland C++, Dev C++, G++.

5 Bibliografias: -Pressman, R. S. Software Engineering – A Practitioner’s Approach. 6th Edition McGraw Hill (Higher Education) ISBN RUMBAUGH, J.; JACOBSON, I.; BOOCH, G. The Unified Software Development Process. 1st Edition. Addison-Wesley ISBN RUMBAUGH, J.; JACOBSON, I.; BOOCH, G. The Unified Modeling Language Reference Manual. 2nd Edition. Addison-Wesley ISBN Bezerra, E. Princípios de Análise e Projeto de Sistemas com UML. Editora Campus ISBN Outras bibliografias: -GAMMA, E.; HELM, R.; Johnson, R.; Vlissides, J. Design Patterns: Elements of Reusable Object-oriented Software. Addison Wesley Longman, Largman, G. Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design. Prentice Hall ISBN Bibliografias

6 Unified Modeling Language (UML) Diagrama de Classe

7 Análise-Projeto / Implementação Uma classe em UML Uma classe em C++ #ifndef _PESSOA_H_ #define _PESSOA_H_ class Pessoa { protected protected: int diaP; int mesP; int anoP; int idadeP; char nomeP[ 30 ]; int id; public: Pessoa ( int diaNa, int mesNa, int anoNa, char* nome = ""); Pessoa ( ); ~Pessoa ( ); void Inicializa (int diaNa, int mesNa, int anoNa, char* nome = "" ); void Calc_Idade (int diaAT, int mesAT, int anoAT ); void Calc_Idade ( int anoAT ); int informaIdade ( ); void seId ( int i ) { id = i; } int getId ( ) { return id; } void seNome ( char* n ) { strcpy(nomeP, n); } char* getNome ( ) { return nome; } }; #endif

8 Herança Diagrama de Classe (de “Análise”) - Herança

9 Diag. Classes (“Análise”) Agregação (Fraca -Simples)

10 Diagrama de Classes (“Análise”) - Associação

11 Diagrama de Classes (“Análise”) – Papeis associativos Disciplina -id: int -nome: char[150] -area_conhecimento: char[150] >-Disciplina(i: int, na: int, ac: char) >+Disciplina() >-Disciplina() +setId(i: int): void +getId(): int +setNome(n: char*): void +getNome(): char* Aluno -RA: int >+Aluno() >+Aluno(i: int) >+Aluno() +setRA(ra: int): void +getRA(): int Cursar +Cursada+Cursa 1..*

12 Disciplina -id: int -nome: char[150] -area_conhecimento: char[150] >-Disciplina(i:int, na:int, ac:char) >+Disciplina() >-Disciplina() +setId(i: int): void +getId(): int +setNome(n: char*): void +getNome(): char* Aluno -RA: int >+Aluno() >+Aluno(i: int) >+Aluno() +setRA(ra: int): void +getRA(): int Cursar +Cursa +Cursada 1..* Realização – Relação entre Relações

13 Unified Modeling Language (UML) Diagrama de Classe (de "análise" e de "projeto")

14 Diagrama de Classe Associação Direcional

15 Diagrama de Classe Associação Direcional Aqui seria um diagrama de classes no escopo da ‘análise’, pois contém apenas as informações essenciais das classes e de seus relacionamentos.

16 Diagrama de Classe (de “Análise”) Associação Bidirecional

17 Diagrama de Classe (de “Análise”) Associação Bidirecional com Papeis FILIAR +gerencia_estudo +estuda 1 1..* Departamento -id: int -nome: char[100] >+Departamento(i: int) >+Departamento() +getId(): int +setNome(n: char): void +getNome(): char Aluno -RA: int >+Aluno() >+Aluno(i: int) >+Aluno() +setRA(ra: int): void +getRA(): int

18 Diagrama de Classe (de “Projeto”) Classe de Associação

19 Diagrama de Classe (de “Projeto”) Composição (Agregação Forte)

20 Diagrama de Classe (de “Projeto”) Esteriótipo Aluno -RA: int >+Aluno() >+Aluno(i: int) +setRA(ra: int): void +getRA(): int +setDepartamento(d: Departamento*): void +getDepartamento(): Departamento* +setId(i: int): void +getId(): int FILIAR +gerencia_estudos +estudande 1 1..* Departamento -id: int -nome: char[100] objtLAlunos: ListaAluno >+Departamento(i: int) >+Departamento() +getId(): int +setNome(n: char*): void +getNome(): char* +incluaAluno(a: Aluno*): void +listeAlunos(): void +...() 1 ListaAluno > -quant: int -nome: char +ListaAluno(nome: char) ~ListaAluno() +getQuant(): int +setQuant(int q): void +incluaAlunos(a: Aluno*): void +listeAlunos(): void ESTAR +lista +listado * 1 CONHECER +conhece 1 1

21 Diagrama de Classe (de “Projeto”) Realização Aluno -RA: int >+Aluno() >+Aluno(i: int) +setRA(ra: int): void +getRA(): int +setDepartamento(d: Departamento*): void +getDepartamento(): Departamento* +setId(i: int): void +getId(): int FILIAR +gerencia_estudos +estudande 1..* Departamento -id: int -nome: char[100] objtLAlunos: ListaAluno >+Departamento(i: int) >+Departamento() +getId(): int +setNome(n: char*): void +getNome(): char* +incluaAluno(a: Aluno*): void +listeAlunos(): void +...() 1 ListaAluno > -quant: int -nome: char +ListaAluno(nome: char) ~ListaAluno() +getQuant(): int +setQuant(int q): void +incluaAlunos(a: Aluno*): void +listeAlunos(): void ElAluno > ESTAR+lista +listado 1 1..* CONHECER +conhecido +conhece * CONHECER +conhece

22 Diagrama de Classe (de “Projeto”) “Refinando Realização” – “Relação Reflexiva” Aluno -RA: int >+Aluno() >+Aluno(i: int) +setRA(ra: int): void +getRA(): int +setDepartamento(d: Departamento*): void +getDepartamento(): Departamento* +setId(i: int): void +getId(): int FILIAR +gerencia_estudos +estudande 1 1..* Departamento -id: int -nome: char[100] objtLAlunos: ListaAluno >+Departamento(i: int) >+Departamento() +getId(): int +setNome(n: char*): void +getNome(): char* +incluaAluno(a: Aluno*): void +listeAlunos(): void +...() 1 ListaAluno > -quant: int -nome: char +ListaAluno(nome: char) ~ListaAluno() +getQuant(): int +setQuant(int q): void +incluaAlunos(a: Aluno*): void +listeAlunos(): void ElAluno > ESTAR +lista +listado * CONHECER +conhecido +conhece Conhecer Próximo Conhecer Anterior Conhecer Primeiro0..1 Conhecer Atual * CONHECER +conhece

23 Diagrama de Classe (de “Projeto”) “Projeto – ‘Eliminando’ Análise” - 1 Aluno -RA: int >+Aluno() >+Aluno(i: int) +setRA(ra: int): void +getRA(): int +setDepartamento(d:Departamento*):void +getDepartamento(): Departamento* +setId(i: int): void +getId(): int Departamento -id: int -nome: char[100] objtLAlunos: ListaAluno >+Departamento(i: int) >+Departamento() +getId(): int +setNome(n: char*): void +getNome(): char* +incluaAluno(a: Aluno*): void +listeAlunos(): void +...() 1 ListaAluno > -quant: int -nome: char +ListaAluno(nome: char) ~ListaAluno() +getQuant(): int +setQuant(int q): void +incluaAlunos(a: Aluno*): void +listeAlunos(): void ElAluno > ESTAR +lista +listado * CONHECER +conhecido +conhece Conhecer Próximo Conhecer Anterior Conhecer Primeiro0..1 Conhecer Atual * CONHECER +conhece

24 Diagrama de Classe (de “Projeto”) “Projeto – ‘Eliminando’ Análise” - 2 Aluno -RA: int >+Aluno() >+Aluno(i: int) +setRA(ra: int): void +getRA(): int +setDepartamento(d: Departamento*): void +getDepartamento(): Departamento* +setId(i: int): void +getId(): int Departamento -id: int -nome: char[100] objtLAlunos: ListaAluno >+Departamento(i: int) >+Departamento() +getId(): int +setNome(n: char*): void +getNome(): char* +incluaAluno(a: Aluno*): void +listeAlunos(): void +...() 1 ListaAluno > -quant: int -nome: char +ListaAluno(nome: char) ~ListaAluno() +getQuant(): int +setQuant(int q): void +incluaAlunos(a: Aluno*): void +listeAlunos(): void ElAluno > CONHECER +conhecido +conhece Conhecer Próximo Conhecer Anterior Conhecer Primeiro Conhecer Atual * CONHECER +conhece

25 Diagrama de Classe (de “Projeto”) “Projeto – ‘Eliminando’ Análise” - 3 Aluno -RA: int >+Aluno() >+Aluno(i: int) +setRA(ra: int): void +getRA(): int +setDepartamento(d: Departamento*): void +getDepartamento(): Departamento* +setId(i: int): void +getId(): int Departamento -id: int -nome: char[100] objtLAlunos: ListaAluno >+Departamento(i: int) >+Departamento() +getId(): int +setNome(n: char*): void +getNome(): char* +incluaAluno(a: Aluno*): void +listeAlunos(): void +...() 1 ListaAluno > -quant: int -nome: char +ListaAluno(nome: char) ~ListaAluno() +getQuant(): int +setQuant(int q): void +incluaAlunos(a: Aluno*): void +listeAlunos(): void ElAluno > CONHECER +conhecido +conhece Conhecer Próximo Conhecer Anterior Conhecer Primeiro 0..1 Conhecer Atual0..1 CONHECER +conhece

26 Diagrama de Classe (de “Análise”) Composição (Agregação Forte)

27 Diagrama de Classe (de “Projeto”) Composição (Agregação Forte) Disciplina -id: int -nome: char[100] -area_conhecimento: char[100] >-Disciplina(i: int, na: int, ac: char*) >-Disciplina() +setId(i: int): void +getId(): int +setNome(n: char*): void +getNome(): char* +setDepartamento(d: Departamento*): void +getDepartamento(): Departamento* +setAluno(a: Aluno): void +listeAlunos(): void +listeAlunos2(): void Departamento -id: int -nome: char[100] objtLAlunos: ListaAluno >+Departamento(i: int) >+Departamento() +getId(): int +setNome(n: char*): void +getNome(): char* +incluaAluno(a: Aluno*): void +listeAlunos(): void +...() 1..* ListaDisciplina > ElDisciplina > CONHECER CONHECER PRIMEIRO CONHECER ATUAL CONHECER PROXIMO CONHECER ANTERIOR 1 1 Conhecer 1..* 0..* 1