terça-feira, 29 de abril de 2014

Diagramas de Casos de Uso

O modelo de casos é uma representação das funcionalidades extremamente observáveis do sistema  dos elementos externos ao sistema que interagem com ele. Este modelo é parte integrante da especificação de requisitos.
Na verdade, o Modelo de Casos de Uso molda os requisitos do sistema. O diagrama da UML utilizado na modelagem de casos de uso é o diagrama de casos de uso.

Exemplo de diagrama de caso de uso

Casos De Uso

Um caso de uso é a especificação de uma sequência de interações entre um sistema e os agentes externos que utilizam esse sistema. Um caso de uso deve definir o uso de uma parte da funcionalidade de sistema, sem revelar a estrutura e os comportamentos internos desse sistema.
Cada caso de uso deve ser definido através da descrição narrativa das interações que ocorrem entre os elementos externos e o sistema. Um modelo de casos de uso típico contem vários casos de uso. Representa quem faz o que com o sistema, sem considerar o comportamento interno do sistema. Deve ser definido através da narrativa das interações que ocorrem entre os elementos externos e o sistema. A UML não define o formato e o grau de abstração a serem utilizados na descrição de um caso de uso.
 

Casos de Uso: Formato, Detalhamento e Abstração

Formato? Como assim?

Casos de Uso
 
Formato
Quanto ao Formato comumente são utilizadas as descrições continua, a descrição numerada e a descrição particionada.
No formato de descrição continua a narrativa é feita através de um  texto livre. Como exemplo considere o caso de uso Realizar Saque em um caixa eletrônico:
O cliente chega ao caixa e insere seu cartão O sistema requisita a senha do cliente. Após o cliente fornecer a senha e esta ser validada, o sistema exibe as opções de operações possíveis. O cliente opta fazer saque. Então o sistema requisita o total a ser sacado. Sistema fornece a quantia desejada e imprime o recibo.
No formato de descrição numerada, a narrativa é descrita através de suma série de passos numerados. Considerando o mesmo exemplo realizar saque.
1- Cliente insere cartão no caixa.
2- Sistema apresenta solicitação de senha.
3- Cliente digita senha.........
E assim por diante.
Já o formato de descrição particionada tenta prover alguma estrutura à descrição de uso. A sequência de interações entre ator e o sistema é particionada em duas colunas, uma para o ator ( Cliente) e outra para o sistema.


 E Detalhamento?

O grau de detalhamento a ser utilizado na descrição de um caso de uso pode variar desde o mais sucinto até a descrição envolvendo vários detalhes (expandido). Um caso sucinto descreve as interações sem muitos detalhes. Um caso de uso expandido descreve as interações em detalhes.

 E a Abstração?

O grau de abstração de um caso diz respeito à existência ou não de menção à tecnologia a ser utilizada na descrição desse caso de uso. Em relação ao grau de abstração, um caso de uso pode ser real ou essencial.
Um caso de uso essencial é abstrato e não faz menção à tecnologia a ser utilizada. Por exemplo, uma interface no site na internet e outra interface via celular.
Diferentemente, em um caso de uso real, as descrições das interações citam detalhes da tecnologia a ser utilizada na implementação.


 


Linguagens Orientada a objetos 

A primeira linguagem com os conceitos de orientação a objetos foi a linguagem Simula.  Iniciado em 1962 na Noruega, por Olé-Johan Dahl e Kristen Nygaard, e curiosamente muito antes dos métodos estruturados.
Baseado na linguagem  Algol 60 seu desenvolvimento teve três fases:  Simula 0  (1962-1963), Simula 1 (1963-1965) e Simula 67  (1966-1967). Com esse projeto surgiram os primeiros conceitos de classes, com seus atributos e métodos, encapsulamento e herança.
Simula 67
Influenciou a primeira e totalmente orientada a objetos que viria a seguir, a SmallTalk, solidificou para  a comunidade os conceitos de classe, objeto, atributo, método, encapsulamento, hierarquia, herança e mensagens. Continua sendo usado comercialmente por vários fornecedores, com nomes complementares distintos.
Podemos classificar as linguagens orientadas a objeto como hibridas e puras.
Uma linguagem hibrida é criada a partir da ampliação de uma linguagem procedural, de origem na analise estruturada, permitindo a implementação da orientação a objetos. Ou seja, a linguagem mantem a programação estruturada e acrescentada a orientada a objetos.
A linguagem  pura só permite implementação baseada na programação orientada a objetos. As únicas linguagens puras, atualmente no mercado, são: SmallTalk e Eiffel.
Encapsulamento, Polimorfismo e Herança? Mas o que é isso?
 
Encapsulamento

Em linguagens orientadas à objetos, é possível encapsular o estado de um objeto. Sendo uma forma de restringir o acesso ao comportamento interno de um objeto. Um objeto que precise da colaboração de outro objeto para realizar alguma tarefa simplesmente envia uma mensagem a este ultimo. O método utilizado pelo objeto requisitado para realizar a tarefa não é conhecido pelos objetos requisitantes.
 Dentro deste conceito visualizamos o objeto como uma " caixa preta". Quem descreve o comportamento de um objeto é a sua classe. Um objeto possui uma interface. É o que ele conhece e o que ele sabe fazer, sem descrever como o objeto conhece o que faz.

Polimorfismo
 
O polimorfismo indica a capacidade de abstrair várias implementações diferentes em uma única interface. Um bom exemplo para explicar este conceito seria o controle remoto. Embora ele seja normalmente fabricado para um tipo de aparelho, existem os considerados universais, sendo que, mesmo com um controle remoto de outro fabricante é possível acionar o aparelho de outro fornecedor. Este é um exemplo de aplicação do principio do polimorfismo. Note também que a abstração é aplicada aqui: um objeto pode enviar a mesma mensagem para objetos semelhantes, mas implementam sua interface de formas distintas.

Herança

A herança é uma forma de abstração utilizada na orientação de objetos. As características e o comportamento comuns a um conjunto de objetos podem ser abstraídos em uma classe. A herança pode ser vista como um nível de abstração acima da encontrada entre classe e objetos. Na herança, classes semelhantes são agrupadas em hierarquias, cada nível de uma hierarquia pode ser visto como nível de abstração. Sendo que cada classe em um nível da hierarquia herda as características das classes nos níveis acima. Este mecanismo facilita o compartilhamento  entre um conjunto de classes semelhantes. Além disso as diferenças ou variações de uma classe em particular podem ser organizadas de uma forma mais clara.

terça-feira, 8 de abril de 2014

Qual a diferença entre Análise estruturada e Orientada a objetos? Análise Estruturada vs Orientada a Objetos

Análise Estruturada
A análise estruturada é uma atividade de construção de modelos. Utiliza uma notação que é particular ao método de análise estruturada para com a finalidade de retratar  o fluxo e o conteúdo das informações utilizadas pelo sistema, dividir o sistema em partições funcionais e comportamentais e descrever a essência daquilo que será construído.

A análise estruturada é muito difícil de ser modelada e, rastrear e gerenciar mudanças manualmente. Por essas e outras razões, as ferramentas DFD tornaram-se uma abordagem preferida. Para uma pré-elaboração de um projeto de desenvolvimento de software.A análise estruturada também contém gráficos que possibilita o analista criar modelos defluxo de informação, com uma heurística para o uso dos símbolos, juntamente com um dicionário de dados, e narrativas de processamentos como o complemento aos modelos defluxo de informação. Um modelo de fluxo pode ser criado para qualquer sistema baseado em computador, independentemente do tamanho e complexidade.

O dicionário de dados é uma listagem organizada de todos os elementos de dados que são pertinentes ao sistema, com definições precisas e rigorosas, de forma que tanto o usuário como os analistas de sistemas tenham uma compreensão comum das tarefas, das saídas, dos componentes dos depósitos e[até mesmo] dos cálculos intermediários. Atualmente, isto é inserido quase sempre como parte de uma ferramenta de projeto e análise estruturada

Orientada a Objetos
A programação orientada a objeto é diferente da programação estruturada. Na programação orientada a objeto, funções e dados estão juntos, formando o objeto. Essa abordagem cria uma nova forma de analisar, projetar e desenvolver programas, é uma forma mais abstrata, e genérica, que permite um maior reaproveitamento dos códigos, e facilita a sua manutenção. Observe que a modelagem orientada a objeto, não é somente uma nova forma de programar, mas uma nova forma de pensar um problema, de forma abstrata, utilizando conceitos do mundo real e não conceitos computacionais. Na programação orientada a objeto o conceito de objeto deve acompanhar todo o ciclo de desenvolvimento do software. A POO também inclui uma nova notação e exige do analista/programador o conhecimento dessa notação (diagramas de classe, diagramas de interação, diagramas de sequência, etc.). Atualmente existem centenas de bibliotecas, cuidadosamente desenhadas, para dar suporte aos programadores menos sofisticados. Desta forma os programadores podem montar seus programas unindo as bibliotecas externas com alguns objetos que criaram, ou seja, poderão montar suas aplicações rapidamente, contando com módulos pré-fabricados. O usuário final verá todos os ícones e janelas da tela como objetos e associará a manipulação desses objetos visuais à manipulação dos objetos reais que eles representam. Enxerga o mundo como objetos com estrutura de dados e comportamentos O objetivo é desenvolver uma série de modelos de análise, satisfazendo um conjunto de requisitos definidos pelo cliente O problema não está em aprender como programar em uma linguagem OO, mas sim em aprender a explorar as vantagens que as linguagens OO oferecem. Portanto, para o sucesso de um projeto OO é necessário seguir boas práticas de engenharia discutidas na literatura e pesquisando padrões já consolidados e aprovados.





Diferenças (AOO x Estruturada)

A AOO é um paradigma que pode ser aplicado a qualquer problema proposto em sistemas. Desde definição de pequenos problemas a problemas de grande complexidade. Orientada a objetos tem se mostrado mais adequada, comparativamente às demais, para ser empregada no desenvolvimento de sistemas de software complexos e de grande porte. Neste sentido, a orientada a objetos (AOO) tem papel fundamental.
 A programação orientada a objetos foi desenvolvida devido às limitações da estruturada, ou encontradas nas abordagens anteriores de programação. Isto é, cada declaração na linguagem informa que o computador deve realizar alguma tarefa como, por exemplo, ler um dado de entrada, adicionar uma constante, dividir por algum número e exibir o resultado.
Apesar de das inúmeras vantagens, a AOO tem também algumas desvantagens, que incluem: Apropriação, Fragilidade Linearidade de desenvolvimento. A apropriação é apresentada tanto como uma vantagem como uma desvantagem, porque a AOO nem sempre soluciona os problemas elegantemente. Enquanto que a mente humana parece classificar objetos em categorias (classes) e agrupar essas classes em relacionamentos de herança, o que ela realmente faz não é tão simples. Em vez disso, objetos com características mais ou menos similares, e não precisamente definidas, são reunidos em uma classificação.
A AOO requer definições precisas de classes; definições flexíveis e imprecisas não são suportadas. Na mente humana, essas classificações podem mudar com o tempo. Os critérios para classificar objetos podem mudar significativamente. A apropriação utilizada na aoo torna-a muito rígida para trabalhar com situações dinâmicas e imprecisas. Além disso, algumas vezes não é possível decompor problemas do mundo real em uma hierarquia de classes. Negócios e pessoas têm frequentemente regras de operações sobre objetos que desafiam uma hierarquia limpa e uma decomposição orientada a objetos.
O paradigma de objetos não trata bem de problemas que requerem limites nebulosos e regras dinâmicas para a classificação de objetos. Isto leva ao próximo problema com AOO: fragilidade. Desde que uma hierarquia orientada a objetos requer definições precisas, se os relacionamentos fundamentais entre as classes chave mudam, o projeto original orientada a objetos é perdido.
Torna-se necessário reanalisar os relacionamentos entre os objetos principais e reprojetar uma nova hierarquia de classes.




Qual o significado de (MER) x (DER)?

Modelo Entidade Relacionamento (MER)

O Modelo Entidade-Relacionamento tem o objetivo de representar as estruturas de dados da forma mais próxima do mundo real dos negócios.
Existem três conceitos no Modelo Entidade Relacionamento: Entidade, Atributo e Relacionamento.
Entende-se que Entidade são objetos, as características dos objetos são os Atributos, e a relação entre os objetos são os relacionamentos.

Entidade

Uma entidade serve tanto para depósito quanto para recuperação de dados. Ela representa substantivos, concretos ou abstratos. Exemplo: todos os Inquilinos de uma imobiliária podem ser armazenados em uma entidade chamada Inquilino.
Todos os Inquilinos da Entidade Inquilino podem ter um identificador único.
Assim como a Entidade é conhecida por Tabela, o identificador seria a chave primária.

Atributo

Toda entidade possui atributos, ou seja, características que informam sobre a entidade.
A entidade Inquilino contém informações sobre Nome, Endereço, Cidade, Data de Nascimento de cada Inquilino, identificado entre os outros por uma chave primária, no caso pode ser um atributo Código.

Tipos de atributos

Atributo Simples Atributo Concatenado Chave Primária Chave Estrangeira
Um único atributo representa uma característica Mais de um atributo representam uma característica Um atributo que é sempre único dentro de uma Entidade Atributo que se identifica com a chave primária em outra Entidade
Exemplo: Rg do Inquilino Exemplo: Endereço (Logradouro, Número,Cidade, Cep, UF) Exemplo: CPF – atributo que não se repete entre os Inquilinos Exemplo: Codigo do Inquilino na Entidade Aluguel.

Relacionamento

Relacionamento é a interação entre os objetos que indicam a dinâmica dos negócios.
Os Relacionamentos são identificados por verbos porque representam as ações que uma entidade exerce sobre outra. Como exemplo, O Inquilino aluga imóvel.

MER – Sistema de Imobiliária


Diagrama Entidade-Relacionamento (DER)

O Diagrama Entidade-Relacionamento descreve toda estrutura lógica do banco de dados. É possível construí-lo a partir de um MER, identificando assim a partir de um conceito do mundo real como os dados serão armazenados de fato.
O DER tem como ênfase os dados e os relacionamentos. Sua representação utiliza os símbolos:
  • Retângulos - representam as entidades;
  • Elipses - representam os atributos;
  • Losangos - representam os relacionamentos entre as entidades;
  • Linhas - unem os atributos aos conjuntos de entidades e os conjuntos de entidades aos conjuntos de relacionamentos;
  • Elipses duplas - atributos multivalorados.
Na construção de um projeto de banco de dados é necessário saber quais são os objetos e os relacionamentos para elaborar o DER , ou seja, descobrir quais os atributos que compõem as tabelas (objetos).




segunda-feira, 31 de março de 2014

Metodologia ou Tecnologia ?


Um vídeo pra se pensar em Metodologia ou Tecnologia


Sabemos que a tecnologia na educação deve se integrar ao currículo na forma de uma ferramenta multidisciplinar, constituindo-se em mais uma possibilidade que o professor pode contar para a realização do seu trabalho; desenvolvendo atividades que propiciem uma reflexão por parte do aluno e realizando a interação entre as diversas disciplinas e os recursos que esta oferece.


Utilizando a tecnologia a serviço de atividades educacionais, propiciamos aos alunos as condições de trabalhar a partir de temas ou atividades sugeridos em sala de aula e com os recursos tecnológicos há possibilidades de se ampliar o conhecimento e melhorar o aprendizado.

A metodologia e a tecnologia tem que andar juntas de forma clara e objetiva uma completando a outra.

domingo, 30 de março de 2014

Método X Metodologia

Olá pessoal!!!

A Aula da semana foi sobre Método e Metodologia, a seguir algumas imagens e logo mais postarei alguns vídeos interessantes a respeito de Metodologias de desenvolvimento.

Metodologia é o estudo dos métodos e especialmente dos métodos da ciência, enquanto método é o modo de proceder, a maneira de agir, o meio propriamente.

Assim, metodologia é a ciência integrada dos métodos.

.

A metodologia não procura as soluções, mas integra os conhecimentos adquiridos sobre os métodos em vigor nas diferentes disciplinas científicas e filosóficas.






 
Vídeo aula sobre metodologia.




Até mais...