Estratégias de Design Software



Projeto de Software é um processo para conceituar os requisitos de software para implementação de software. Projeto de Software tem os requisitos do usuário como desafios e tenta encontrar a melhor solução. Enquanto o software está sendo pensada, um plano é marcado para encontrar o melhor design para implementar a solução desejada.

Existem múltiplas variantes de design de software. Vamos estudá-los brevemente:

Projeto Estruturado

Design Estruturado é uma conceituação do problema em vários bem-organizados os elementos de solução. O que no fundo está em causa com o desenho da solução. Benefícios do projeto estruturado, permite uma melhor compreensão da forma como o problema está sendo resolvido. Design Estruturado também torna mais simples para design para concentrar-se no problema mais precisa.

Design Estruturado baseia-se principalmente em "dividir e conquistar" estratégia onde um problema é dividido em vários pequenos problemas e cada pequeno problema é individualmente resolvido até que todo o problema está resolvido.

Os pequenos pedaços de problema são resolvidos por meio de módulos de soluções. Design Estruturado a ênfase que estes módulos sejam bem organizadas, a fim de obter uma solução.

Estes módulos são organizados em hierarquia. Eles se comunicam uns com os outros. Um bom design estruturado sempre segue algumas regras para a comunicação entre os vários módulos, nomeadamente -

Coesão - agrupamento de todos funcionalmente elementos relacionados.

Acoplamento - comunicação entre diferentes módulos.

Um bom design estruturado com alta coesão e baixo acoplamento.

Projeto Orientado Função

Em função de projeto orientado, o sistema é composto de muitos pequenos sub-sistemas conhecidos como funções. Estas funções são capazes de executar tarefa importante no sistema. O sistema é considerado como vista de cima de todas as funções.

Projeto orientado Função herda algumas propriedades do projeto estruturado onde dividir e conquistar metodologia é utilizada.

Este mecanismo de concepção divide todo o sistema em eventos menores, o que proporciona meios de abstração, escondendo as informações e o seu funcionamento. Estes módulos funcionais podem compartilhar informações entre si por meio de informações que passa e utilizar as informações disponíveis em todo o mundo.

Outra característica das funções é a de que quando um programa chama uma função, a função muda o estado do programa, que por vezes não é aceitável por outros módulos. Projeto orientado função funciona muito bem quando o estado do sistema não importa e o programa/funções funcionam na entrada, em vez de em um estado.

Processo de Design

  • O sistema como um todo é visto como a maneira como os dados são transmitidos para o sistema por meio de diagrama de fluxo de dados.
  • DFD mostra como funciona alterar dados e estado de todo o sistema.
  • Todo o sistema é logicamente subdividido em unidades menores conhecidas como funções sobre a base de sua operação no sistema.
  • Cada função é então descrito em grande.

Design orientado a objetos

Trabalhos de design orientado a objetos em torno das entidades e suas características em vez das funções envolvidas no sistema de software. O estratégias de design concentra-se sobre as entidades e suas características. Todo o conceito de solução de software gira em torno da actividade as entidades.

Vamos ver os conceitos importantes de Design orientado a objetos.

  • Os objetos - Todas as entidades envolvidas no projeto da solução são conhecidos como objetos. Por exemplo, a pessoa, os bancos, a empresa e os clientes são tratados como objetos. Cada entidade tem alguns atributos associados a ela e tem alguns métodos para realizar os atributos.
  • As aulas - uma classe é a descrição generalizada de um objeto. Um objeto é uma instância de uma classe. Classe define todos os atributos que um objeto pode ter e métodos, que define a funcionalidade do objeto.

    No projeto da solução, os atributos são armazenados em variáveis e funções são definidos por meio de métodos ou procedimentos.

  • Encapsulamento - Em OOD, os atributos (variáveis de dados) e métodos (operação sobre os dados) são agrupados em conjunto é chamada de encapsulamento. Não só encapsulamento pacotes informações importantes de um objeto, mas também restringe o acesso dos dados e métodos do mundo exterior. Isso se chama ocultação de informações.
  • Herança - OOD permite que classes semelhantes à pilha para cima de maneira hierárquica onde a menor ou sub-classes pode importar, implementar e re-uso permitido variáveis e métodos de sua imediata super classes. Esta propriedade de contraplacado é conhecida como herança. Isso faz com que seja mais fácil para definir classe específica e generalizada para criar as classes de problemas específicos.
  • Polimorfismo - OOD línguas fornecem um mecanismo onde os métodos executando tarefas semelhantes, mas variam em argumentos, pode ser atribuído mesmo nome. Este é o chamado polimorfismo, que permite que uma única interface executando tarefas de diferentes tipos. Dependendo da forma como a função é invocada, à respectiva parte do código é executada.

Processo de Design

Projeto de Software processo pode ser entendida como uma série de passos bem definidos. No entanto, varia de acordo com a abordagem de projeto (orientados para as funções ou orientada a objetos, no entanto, pode ter as seguintes etapas envolvidas:

  • Uma solução é criada a partir de exigência ou sistema usado anteriormente e/ou sistema diagrama de seqüência.
  • Os objetos são identificados e agrupados em classes em nome de similaridade no atributo características.
  • Hierarquia de classes e a relação entre eles é definida.
  • Application framework for definido.

Abordagens de Projeto Software

Aqui estão duas abordagens genéricas de software projetar:

Top Down Design

Sabemos que um sistema é composto de mais de uma sub-sistemas e que contém uma série de componentes. Além disso, esses sub-sistemas e componentes podem ter seu conjunto de sub-sistemas e componentes e cria estrutura hierárquica no sistema.

Top-down design leva todo o sistema de software como uma entidade e, em seguida, se decompõe para atingir mais de um sub-sistema ou componente com base em algumas características. Cada sub-sistema ou componente é então tratado como um sistema e decompostos. Esse processo mantém em funcionamento até o nível mais baixo do sistema top-down hierarquia é alcançado.

Top-down design começa com um modelo generalizado do sistema e mantém sobre a definição da parte mais específica. Quando todos os elementos são compostos por todo o sistema entra em existência.

Top-down design é mais adequado quando a solução de software precisa ser projetado do zero e detalhes específicos são desconhecidos.

Bottom-up Design

O modelo de design começa com mais específica e componentes básicos. Ele prossegue com escrever maior nível de componentes, utilizando basic ou componentes de nível inferior. Ela continua criando componentes do nível mais elevado até que o sistema desejado não está evoluindo como um único elemento. A cada nível mais elevado, a quantidade de captação é maior.

Estratégia bottom-up é mais adequada quando o sistema precisa de ser criado a partir de um sistema já existente, onde os primitivos básicos podem ser utilizados no sistema mais recente.

Ambos, abordagens top-down e bottom-up não são práticos individualmente. Em vez disso, uma boa combinação dos dois é usado.

Advertisements