| (13 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 27: | Linha 27: | ||
== Conceito == | == Conceito == | ||
Operação nada mais é que um serviço que é requisitado a um objeto. Uma operação pode ter parâmetros, ou seja, de forma simples, operação é uma ação ou transformação realizada por um objeto ou sofrido por ele. As operações podem ser conhecidas também como "métodos". Esses métodos determinam o comportamento dos objetos de uma classe e são análogos às funções ou procedimentos da programação estruturada. O envio de mensagens (chamada de métodos) pode alterar o estado de um objeto. | |||
== Exemplos == | == Exemplos == | ||
Alguns exemplos de operações na programação, são as ações indicadas pelo usuário para o software realizar, como matricular um aluno, trancar o seu curso, realizar um empréstimo, entre outros. | |||
Alguns outros exemplos poderão ser vistos na guia operações, em diagramas relacionados. | |||
== Diagramas Relacionados == | == Diagramas Relacionados == | ||
Os diagramas mostrados são todos relacionando os atributos e operações, sendo alguns relacionados com a programação em si e outros mostrando apenas exemplos simples como os métodos e atributos de uma calculadora. | |||
Figura 1: Diagrama de classes envolvendo programação para softwares médicos | |||
[http://www.google.com.br/imgres?imgurl=http://www.macoratti.net/net_uml6.gif&imgrefurl=http://www.macoratti.net/net_uml1.htm&h=444&w=653&tbnid=jwFCRhKRkOFONM:&zoom=1&docid=hIIFOHddN0nArM&ei=p6hCVb7UHMqngwTUooHwDQ&tbm=isch&ved=0CBsQMygAMAA] | |||
Figura 2: Diagrama de classes envolvendo programação para softwares comerciais | |||
[http://www.google.com.br/imgres?imgurl=http://www.usandoaccess.com.br/tutoriais/imagens/img_t19_4.gif&imgrefurl=http://www.usandoaccess.com.br/tutoriais/classe-access-modelagem-sistema-de-vendas.asp?id%3D1&h=378&w=672&tbnid=7ghpqCKTYC_EHM:&zoom=1&docid=H2riIkgMWkzuCM&ei=p6hCVb7UHMqngwTUooHwDQ&tbm=isch&ved=0CB4QMygDMAM] | |||
Figura 3: Diagrama de classes com atributos e métodos de uma calculadora | |||
[http://www.google.com.br/imgres?imgurl=http://ipartilho.partilho.com.br/2013/04/Diagrama-Classe-Calculadora-Exemplo1.png&imgrefurl=http://partilho.com.br/orientacao-a-objetos/classe-metodo-propriedade-orientacao-objeto/&h=288&w=562&tbnid=8AExl9HQKPw5uM:&zoom=1&docid=wz1OTqbW9XDf1M&ei=G6hCVaz2JMSkNvK6gZAH&tbm=isch&ved=0CB4QMygCMAI] | |||
= Herança = | = Herança = | ||
== Definição == | == Definição == | ||
Na Programação Orientada a Objetos o significado de herança tem o mesmo significado para o mundo real. Assim como um filho pode herdar alguma característica do pai, na Orientação a Objetos é permitido que uma classe herde atributos e métodos da outra, tendo apenas uma restrição para a herança. | |||
Uma das grandes vantagens de usar o recurso da herança é na reutilização do código. Esse reaproveitamento pode ser acionado quando se identifica que o atributo ou método de uma classe será igual para as outras. E é justamente através da herança que os objetos podem compartilhar métodos e atributos. | |||
== Exemplo 1 == | == Exemplo 1 == | ||
Herança Simples: Herança é denominada simples quando uma classe herda características de apenas uma superclasse. Por exemplo, podemos ter como superclasse uma classe chamada Pessoa, e dela derivar uma subclasse chamada Funcionário. Esta nova classe, Funcionário, herda todas as características da sua superclasse Pessoa, e de mais nenhuma outra. Como diferencial, esta nova classe Funcionário possui atributos e métodos que a classe Pessoa não possui, uma vez que atributos como Salário e Função não pertencem ao contexto da classe Pessoa, mas sim ao contexto da classe Funcionário. | |||
[http://www.google.com.br/imgres?imgurl=http://lisias.com.br/CMais10.gif&imgrefurl=http://lisias.com.br/pagCmm.html&h=461&w=426&tbnid=8dyRvNByWJbphM:&zoom=1&docid=f8zfvkpbEm35RM&ei=4K9CVZvdGIigNsCIgbAE&tbm=isch&ved=0CB0QMygBMAE] | |||
[http://www.google.com.br/imgres?imgurl=http://voat.com.br/rdal/wp-content/uploads/2011/01/Screen-shot-2011-01-24-at-1.27.10-AM.png&imgrefurl=http://voat.com.br/rdal/?tag%3Dsubclasse&h=270&w=364&tbnid=L1dCXQxYSEMoEM:&zoom=1&docid=SqsuiG5r4YzqxM&ei=4K9CVZvdGIigNsCIgbAE&tbm=isch&ved=0CD4QMygYMBg] | |||
== Exemplo 2 == | == Exemplo 2 == | ||
Herança Múltipla: Herança é denominada múltipla quando uma classe herda características de duas ou mais superclasses. Por exemplo, usando o exemplo do Funcionário e do Cliente, devemos estar atentos ao fato de que um funcionário pode vir a ser um cliente também. Assim, além de possuir atributos e métodos que o qualificam como funcionário, deve também possuir atributos e métodos que o qualificam como cliente. | |||
Para tanto, o que pode ser feito é criar uma nova subclasse, chamada Funcionário-Cliente, que tem como superclasse as classes Funcionário e Cliente. Esta nova classe herda todas as características da superclasse Pessoa, Funcionário e Cliente. O seu diferencial é justamente ter características das superclasses juntas, podendo ou não ser adicionados mais métodos e atributos. | |||
[http://www.google.com.br/imgres?imgurl=http://2.bp.blogspot.com/-8NugECuEB6A/T86lN4ByzRI/AAAAAAAAAHQ/CV6mRvxztLs/s320/heran%252525C3%252525A7a%25252BMultipla.PNG&imgrefurl=http://lcdesenvolvedor.blogspot.com/2012_06_01_archive.html&h=320&w=259&tbnid=cpewwBU52dwPsM:&zoom=1&docid=_J63cIXPZFGrcM&ei=sbFCVdWGEoKdgwTCj4DACw&tbm=isch&ved=0CCMQMygIMAg] | |||
[http://www.google.com.br/imgres?imgurl=http://api.ning.com/files/OcxvxG4wHxaZBnJlcUgIctgBaGekTTgpbl4rWrEHrJkDI4LxallCcLrseMSExVa0QoL4SrDD6mg8w7QXZnlHX0M51iM7XHlZ/DIAMOND.PNG&imgrefurl=http://www.itnerante.com.br/profiles/blogs/ambiguidade-e-duplicidade-em-heran-a-m-ltipla&h=431&w=349&tbnid=8aP8bg6sBUYHJM:&zoom=1&docid=CYmR9XsD2AE6fM&ei=sbFCVdWGEoKdgwTCj4DACw&tbm=isch&ved=0CCcQMygMMAw] | |||
[http://www.google.com.br/imgres?imgurl=http://www.ic.unicamp.br/~cmrubira/aacesta/cpp/veiculo.gif&imgrefurl=http://www.ic.unicamp.br/~cmrubira/aacesta/cpp/cpp15.html&h=190&w=368&tbnid=Gqu236blsd-6TM:&zoom=1&docid=XaZaGoK1JHOgeM&ei=sbFCVdWGEoKdgwTCj4DACw&tbm=isch&ved=0CCQQMygJMAk] | |||
== Exemplo 3 == | == Exemplo 3 == | ||
| Linha 45: | Linha 76: | ||
= Referências Bibliográficas = | = Referências Bibliográficas = | ||
Artigo da IFSudesteMG: http://sistemas.riopomba.ifsudestemg.edu.br/dcc/materiais/1662272077_POO.pdf | |||
PRESSMAN, Roger S. Engenharia de Software. São Paulo. Ed. Markon Books, 1995 | |||
Devmedia: http://www.devmedia.com.br/modelo-entidade-relacionamento-mer-e-diagrama-entidade-relacionamento-der/14332 | |||
Universidade Federal do Paraná: http://www.inf.ufpr.br/silvia/ESNovo/UML/pdf/ModeloConceitualAl.pdf | |||
Edição atual tal como às 23h07min de 30 de abril de 2015
Atributos
Conceito
Atributo é a propriedade de um objeto identificada por um nome, ou seja, são elementos que definem a estrutura de uma classe. São as características que descrevem cada entidade dentro do domínio. Por exemplo, um cliente possui nome, endereço e telefone. Durante a análise de requisitos, são identificados os atributos relevantes de cada entidade naquele contexto, de forma a manter o modelo o mais simples possível e consequentemente armazenar apenas as informações que serão úteis futuramente. Uma pessoa possui atributos pessoais como cor dos olhos, altura e peso, mas para um sistema que funcionará em um supermercado, por exemplo, estas informações dificilmente serão relevantes.
Exemplos
Exemplos bem simples de atributos são os nomes das variáveis definidas em programação, como por exemplo o nome de um aluno a ser cadastrado, sua matrícula, estado civil, endereço, entre outros.
Os atributos podem ser classificados quanto à sua função da seguinte forma: Descritivos: representam característica intrínsecas de uma entidade, tais como nome ou cor. Nominativos: além de serem também descritivos, estes têm a função de definir e identificar um objeto. Nome, código, número são exemplos de atributos nominativos. Referenciais: representam a ligação de uma entidade com outra em um relacionamento. Por exemplo, uma venda possui o CPF do cliente, que a relaciona com a entidade cliente.
Quanto à sua estrutura, podemos ainda classificá-los como: Simples: um único atributo define uma característica da entidade. Exemplos: nome, peso. Compostos: para definir uma informação da entidade, são usados vários atributos. Por exemplo, o endereço pode ser composto por rua, número, bairro, etc.
Diagramas Relacionados
Em engenharia de software, um modelo entidade relacionamento (modelo ER) é um modelo de dados para descrever os dados ou aspectos de informação de um domínio de negócio ou seus requerimentos de processo, de uma maneira abstrata que em última análise se presta a ser implementada em um banco de dados, como um banco de dados relacional. Os principais componentes dos Modelos Entidades Relacionamento (MER) são as entidades(coisas, objetos) suas relações e armazenamento em bancos de dados. Exemplos de diagramas E-R:
Operações
Conceito
Operação nada mais é que um serviço que é requisitado a um objeto. Uma operação pode ter parâmetros, ou seja, de forma simples, operação é uma ação ou transformação realizada por um objeto ou sofrido por ele. As operações podem ser conhecidas também como "métodos". Esses métodos determinam o comportamento dos objetos de uma classe e são análogos às funções ou procedimentos da programação estruturada. O envio de mensagens (chamada de métodos) pode alterar o estado de um objeto.
Exemplos
Alguns exemplos de operações na programação, são as ações indicadas pelo usuário para o software realizar, como matricular um aluno, trancar o seu curso, realizar um empréstimo, entre outros. Alguns outros exemplos poderão ser vistos na guia operações, em diagramas relacionados.
Diagramas Relacionados
Os diagramas mostrados são todos relacionando os atributos e operações, sendo alguns relacionados com a programação em si e outros mostrando apenas exemplos simples como os métodos e atributos de uma calculadora.
Figura 1: Diagrama de classes envolvendo programação para softwares médicos
Figura 2: Diagrama de classes envolvendo programação para softwares comerciais
Figura 3: Diagrama de classes com atributos e métodos de uma calculadora
Herança
Definição
Na Programação Orientada a Objetos o significado de herança tem o mesmo significado para o mundo real. Assim como um filho pode herdar alguma característica do pai, na Orientação a Objetos é permitido que uma classe herde atributos e métodos da outra, tendo apenas uma restrição para a herança. Uma das grandes vantagens de usar o recurso da herança é na reutilização do código. Esse reaproveitamento pode ser acionado quando se identifica que o atributo ou método de uma classe será igual para as outras. E é justamente através da herança que os objetos podem compartilhar métodos e atributos.
Exemplo 1
Herança Simples: Herança é denominada simples quando uma classe herda características de apenas uma superclasse. Por exemplo, podemos ter como superclasse uma classe chamada Pessoa, e dela derivar uma subclasse chamada Funcionário. Esta nova classe, Funcionário, herda todas as características da sua superclasse Pessoa, e de mais nenhuma outra. Como diferencial, esta nova classe Funcionário possui atributos e métodos que a classe Pessoa não possui, uma vez que atributos como Salário e Função não pertencem ao contexto da classe Pessoa, mas sim ao contexto da classe Funcionário.
Exemplo 2
Herança Múltipla: Herança é denominada múltipla quando uma classe herda características de duas ou mais superclasses. Por exemplo, usando o exemplo do Funcionário e do Cliente, devemos estar atentos ao fato de que um funcionário pode vir a ser um cliente também. Assim, além de possuir atributos e métodos que o qualificam como funcionário, deve também possuir atributos e métodos que o qualificam como cliente. Para tanto, o que pode ser feito é criar uma nova subclasse, chamada Funcionário-Cliente, que tem como superclasse as classes Funcionário e Cliente. Esta nova classe herda todas as características da superclasse Pessoa, Funcionário e Cliente. O seu diferencial é justamente ter características das superclasses juntas, podendo ou não ser adicionados mais métodos e atributos.
Exemplo 3
Referências Bibliográficas
Artigo da IFSudesteMG: http://sistemas.riopomba.ifsudestemg.edu.br/dcc/materiais/1662272077_POO.pdf
PRESSMAN, Roger S. Engenharia de Software. São Paulo. Ed. Markon Books, 1995
Universidade Federal do Paraná: http://www.inf.ufpr.br/silvia/ESNovo/UML/pdf/ModeloConceitualAl.pdf