Complexidade do Software

Documentos relacionados
Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Introdução à Análise e Projeto de Sistemas

Requisitos de sistemas

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

UML Unified Modeling Language Linguagem de Modelagem Unificada

Requisitos de Sistemas

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

UML (Unified Modelling Language)

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Programação em Comunicações. Programação Orientada por Objectos. Ademar Aguiar.

INF1013 MODELAGEM DE SOFTWARE

Análise de Sistemas. Aula 5

Modelo do Mundo Real. Abstração. Interpretação

Conceitos de Programação Orientada a Objetos

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Programação Orientada a Objetos

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

Levantamento, Análise e Gestão Requisitos. Aula 03

Capítulo 5 Modelação do Sistema 1

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

RUP Unified Process. Profª Jocelma Rios

O PARADIGMA ORIENTADO POR OBJETOS

Daniel Wildt

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo

Princípios de Análise e Projeto Orientados a Objetos com UML

Capítulo 2. Orientação a Objetos

Introdução a UML (Unified Modeling Language)

UML. Modelando um sistema

Análise de Sistemas 3º Bimestre (material 2)

UML. Adriano J. Holanda 21/3/

Orientação a Objetos (OO)

UML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

PUC-GO- ADS: Prof. Vicente P. de Camargo. Desenvolvimento de Aplicações para Cliente Servidor

UML e seus diagramas

Modelagem Orientada a Objeto

Engenharia de Software

INTRODUÇÃO À ENGENHARIA DE SOFTWARE. Prof.: Tiago Alves

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Nome da classe. Atributos. Serviços / métodos

Introdução. Pacote. Classe. UML Diagrama de. Atributo. Classes. Método. Prof. Dr. Enzo Seraphim. Visibilidade

Rational Unified Process (RUP)

Introdução a Orientação a Objetos e UML

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

Panorama da notação UML

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas

Análise de Sistemas. Visão Geral - Orientação a Objetos. Prof. José Honorato Ferreira Nunes

Prof. Esp. Fabiano Taguchi

Introdução à Orientação a Objetos. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

2. Introdução à Programação e Análise. Orientada a Objetos. Programação Orientada a Objetos em C O que é a Programação Orientada a Objetos?

UML. Trabalho Análise e Projeto de Sistemas. Aluna: Luana Alves Businaro

Programação Orientada a Objetos Relacionamentos entre classes

Programação Orientada a Objeto

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

Marcelo Henrique dos Santos

Aula 1 Introdução à Orientação a Objetos (OO) e UML

Linguagem de Modelagem Unificada UML

MODELAGEM DE DADOS MÓDULO III - UNIDADE V- MAPEAMENTO OBJETO RELACIONAL

DIAGRAMAS DE CLASSE UML

Análise e Projeto Orientados a Objetos

Linguagem de Programação I Apresentação da Disciplina

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

Unified Modeling Language (UML)

Lista de Exercícios AV1

Ferramenta para cálculo de métricas em softwares orientados a objetos codificados em Object Pascal

ANÁLISE E PROJETO DE SISTEMAS TÓPICO IV - INTRODUÇÃO A UML

Transcrição:

Complexidade do Software Sistemas de software são complicados Os requisitos modernos tendem a complicálo cada vez mais: Alta confiabilidade; Alto desempenho; Desenvolvimento rápido e barato Precisamos de mecanismos de gerenciamento da complexidade: Abstração; Generalização; Agregação.

O software deve passar uma ilusão de simplicidade:

Paradigma Procedural X OO Procedural tipos de dados variável função/procedimento chamada de função OO classes/tad objeto/instância operação/serviço passagem de mensagem

Processo Orientado a Objetos Baseia-se em objetos e não em procedimentos O projetista não inicia o processo com a O projetista não inicia o processo com a identificação das funções do sistema, mas sim pela identificação dos objetos

Modelo de Objetos Idéias Básicas Representar o software através de elementos do mundo real: Entidades físicas Entidades abstratas Unificação dos conceitos de dados e funções (encapsulamento)

Fundamentos do Modelo de Objetos Encapsulamento Modularidade Abstração de dados Hierarquia de Abstração

Encapsulamento Ocultação de informação (Information Hiden) esconder detalhes de um objeto que não contribuem para suas características essenciais Separar aspectos de uso de aspectos de implementação Um objeto Um objeto (componente de software) possui uma interface visível e uma parte interna invisível

Modularidade É a propriedade de construir um sistema através de módulos altamente coesos e fracamente acoplados. Coesão do módulo: Acoplamento: interrelação entre interdependência seus componentes entre módulos

Abstração Concentrar no que é relevante e ignorar detalhes. Abstração descreve características essenciais do objeto que o distingue de outros tipos de objetos, e portanto proporciona limites conceituais bem definidos, relativo à perspectiva do observador.

Hierarquia de Abstração Sistema com muitos detalhes pode ser decomposto numa hierarquia de abstrações. Hierarquia permite que detalhes sejam inseridos de uma modo controlado Duas categorias : Agregação/decomposição Generalização/especialização

Aprendendo a pensar abstrações 1. Classificação/instanciação - construir uma abstração 2. Agregação/decomposição para construir uma hierarquia de agregação 3. Generalização/especialização para construir uma hierarquia de generalização

Classificação/instanciação Classificar significa agrupar objetos com estruturas e comportamento semelhantes. Instanciar objetos significa gerar novos Instanciar objetos significa gerar novos exemplares a partir de uma definição abstrata de um objeto genérico

Classificação/instanciação classe Aluno -nome:string -ra:int +verificarra(ra:int):boolean -ra:int Classificação Instanciação <<instance_of>> José:Aluno objeto (os objetos dependem da classe) <<instance_of>> Maria:Aluno objeto Um objeto é instância de apenas uma classe Uma classe pode possuir várias instâncias (objetos)

Classificação/instanciação Quantas classes você vê? Quantos objetos?

Generalização/Especialização É um tipo de : Implementa o conceito de herança de tipos Permite que todas as instancias de uma categoria específica tenham também as características de uma categoria mais abrangente.

Generalização/Especialização classe base Usuario -nome:string -cod:int +verificarcod(cod:int):boolean Generalização Especialização Aluno -serie:int +suspender():void Classe derivada Professor -temposerv:int +aposentar():void Classe derivada

Generalização/Especialização Objetos josé:usuario -nome= José :String -cod= ra123 :Int +verificarcod(cod:int):boolean maria:aluno -nome= Maria :String -cod= ra235 :Int -serie= 2 :int +verificarcod(cod:int):boolean +suspender():void elaine:professor -nome= Elaine :String -cod= rf345 :Int -temposerv:= 15 int +verificarcod(cod:int):boolean +aposentar():void

Agregação/Decomposição Agregação é um relacionamento estrutural entre o todo e suas partes. É-parte-de: implementa o conceito de decomposição hierárquica É um mecanismo que permite a montagem do todo a partir de suas partes

Agregação/Decomposição Biblioteca -identificador:string -endereço:string +listar usuarios():void +listar livros():void Agregação Decomposição Usuario -nome:string -cod:int +verificarcod(cod:int):boolean Livro -tombo:int -nome:string +buscar():void

Associação É um relacionamento estrutural que descreve um conjunto de links ; Agregação é um tipo especial de associação; Um usuário pode efetuar várias reservas e uma reserva é feita por apenas um usuário. Usuario -nome:string -cod:int +verificarcod(cod:int):boolean 1 * Reserva -codigo:int -data:date +efetuar():void +cancelar():void

Orientação a Objetos Programação Orientada a Objetos (POO) é um modelo de programação baseado em conceitos, tais como, objetos, classes, encapsulamento, herança, etc. Projeto Orientado a Objetos ( Object-Oriented Design ) é um modo de usar esses conceitos para estruturar e construir sistemas.

Metodologia Orientada a Objetos A abordagem orientada a objetos para construção de sistemas permite que um mesmo conjunto de conceitos e uma mesma notação sejam usados através de todo o ciclo de vida do software: análise, projeto e implementação.

Unified Modeling Language (UML) É um modelo de linguagem. Se uma pessoa quer conversar com outra sobre o projeto é através do modelo de linguagem que elas se entendem. Não é um método, pois não possui um processo. É a notação que o método usa para descrever o projeto.

Unified Modeling Language (UML) Sua especificação iniciou-se em 1994 pela Rational Software Corporation Tornou-se padrão do Object Management Group (OMG) em 1997 Se popularizou após a criação do Rational Unified Process (RUP), em 1998

Alguns Diagramas UML Diagrama de Casos de Uso Diagrama de Classes Diagrama de Seqüência Diagrama de Colaboração Diagrama de Atividades Diagrama de Estado...