Noções Básicas Sobre Design de Software



Projeto de Software é um processo de transformar requisitos do usuário em alguma forma apropriada, o que ajuda o programador na codificação de software e implementação.

Para avaliar os requisitos do usuário, um SRS (Software Requirement Specification)) documento é criado considerando que para a codificação e implementação, não há a necessidade de mais específicas e detalhadas exigências em termos do software. O resultado desse processo pode ser imediatamente utilizado para implementação de linguagens de programação.

Projeto de Software é o primeiro passo no SDLC (Software Design Life Cycle), que se move a concentração do problema para a solução. Ela se esforça para especificar como a cumprir os requisitos mencionados nos SRS.

Níveis de Projeto Software

Projeto de Software produz três níveis de resultados.

  • Projeto Arquitetônico - o projeto arquitetônico é a maior abstract versão do sistema. Ele identifica o software como um sistema com muitos componentes interagindo uns com os outros. A este nível, os designers a ideia da solução proposta.
  • Design de alto nível- o design de alto nível rompe com a "entidade única de vários componentes", conceito de projeto de arquitetura em menos de visualização transposta de sub-sistemas e módulos e retrata sua interação uns com os outros. Design de alto nível se concentra em como o sistema juntamente com todos os seus componentes podem ser aplicadas em forma de módulos. Ele reconhece estrutura modular de cada sub-sistema e a sua relação e interação entre todos os outros.
  • Projeto detalhado- projeto detalhado aborda a implementação fazem parte daquilo que é visto como um sistema e os seus sub-sistemas, os dois últimos projetos. Ele é mais detalhado para os módulos e suas implementações. Ele define estrutura lógica de cada módulo e suas interfaces de comunicação com outros módulos.

Modularização

A modulação é uma técnica para dividir um sistema de software em vários módulos separados e independentes, que se prevê que venham a ser capaz de realizar a(s) tarefa(s) independente. Esses módulos podem funcionar como construções básicas de todo o software. Designers tendem a projetar módulos, que podem ser executadas e/ou compilados separadamente e de forma independente.

Design Modular involuntariamente segue as regras de "dividir e conquistar" estratégia de resolução de problemas é porque há muitos outros benefícios associados com o projeto modular de software.

Vantagem de modularização.

  • Componentes menores são mais fáceis de manter
  • Programa pode ser dividido com base em aspectos funcionais
  • Nível desejado de abstração pode ser interposto no programa
  • Os componentes com alto nível de coesão pode ser re-usado novamente
  • Execução concorrente pode ser feita possível
  • Do ponto de vista de segurança desejado

Simultaneidade

Voltar no tempo, todos os softwares são feitos para serem executados sequencialmente. A execução sequencial, entendemos que o codificado instrução será executada uma após a outra que represente apenas uma parte do programa que está sendo ativado a qualquer momento. Dizer que um software tem vários módulos e, em seguida, apenas um de todos os módulos podem ser encontrados em qualquer momento da execução.

Em design de software, a simultaneidade é implementado por dividir o software em várias unidades independentes da execução, como módulos e executá-las em paralelo. Em outras palavras, a simultaneidade fornece capacidade de o software para executar mais de uma parte do código em paralelo um ao outro.

É necessário para os programadores e designers para reconhecer os módulos, os quais podem ser feitas execução paralela.

Exemplo

O recurso de verificação ortográfica do word processor é um módulo do software, que funciona ao lado do processador de texto propriamente dito.

Coesão e Acoplamento

Quando um programa de software é modularizada, suas tarefas são divididas em vários módulos com base em algumas características. Como sabemos, os módulos são conjunto de instruções colocadas em conjunto, a fim de realizar algumas tarefas. São no entanto, considerada como entidade única mas podem consultar uns aos outros para trabalhar em conjunto. Não há medidas pelas quais a qualidade de um projeto de módulos e sua interação entre eles pode ser medido. Estas medidas são chamados acoplamento e coesão.

Coesão

Coesão é uma medida que define o grau de confiabilidade intra-elementos dentro de um módulo. Quanto maior a coesão, a melhor é a concepção do programa.

Existem sete tipos de coesão, nomeadamente -

  • Co-relacionados com coesão - é aleatória e não planejado coesão, que pode ser o resultado da quebra do programa em pequenos módulos para o benefício de modularização. Pois é não planejado, pode servir uma confusão para os programadores e geralmente não é aceito.
  • Coesão lógica, quando logicamente categorizados elementos são colocados juntos em um módulo, é chamado coesão lógica.
  • Emporal coesão - quando os elementos do módulo são organizados, que são processadas em um semelhante ponto no tempo, é chamado coesão temporal.
  • Coesão processual - quando os elementos do módulo são agrupadas, que são executadas sequencialmente a fim de executar uma tarefa, ela é chamada coesão processuais.
  • Coesão comunicacionais - quando os elementos do módulo são agrupadas, que são executadas sequencialmente e trabalhar no mesmo os dados (informações), ele é chamado coesão comunicacional.
  • Coesão Sequencial - quando os elementos do módulo são agrupados porque a saída de um elemento serve como entrada para outro e assim por diante, ela é chamada coesão sequencial.
  • Coesão Funcional - que é considerado o mais alto grau de coesão, e é muito esperado. Os elementos de coesão funcional no módulo são agrupados porque todos contribuem para um único e bem definido. Ele também pode ser reutilizada.

Acoplamento

Acoplamento é uma medida que define o nível de inter-dependência entre os módulos de um programa. Ela diz em que nível os módulos interferem e interagem uns com os outros. Quanto menor o acoplamento, o melhor do programa.

Há cinco níveis de acoplamento, ou seja -

  • Conteúdo acoplamento - Quando um módulo pode acessar diretamente ou modificar ou consultar o conteúdo de um outro módulo, é chamada de content versão do acoplamento.
  • Acoplamento comum - Quando vários módulos ter acesso de leitura e escrita para alguns dados globais, que é chamado global comum ou acoplamento.
  • Acoplamento Controle- Dois módulos são chamados control-aliado se um deles decide a função do outro módulo ou muda seu fluxo de execução.
  • Acoplamento Selo- quando vários módulos compartilham os dados comuns estrutura e trabalhar em outra parte, ele é chamado carimbo acoplamento.
  • Dados- acoplamento acoplamento é quando dois módulos interagem uns com os outros por meio de transmissão de dados (como parâmetro). Se um módulo passa estrutura de dados como parâmetro, então o módulo de recepção deve usar todos os seus componentes.

O ideal é que não haja acoplamento é considerado para ser o melhor.

Verificação de Design

A produção de software processo de elaboração do projeto documentação do projeto, pseudo-códigos, as diagramas de lógica, os diagramas de processo, e a descrição detalhada de todos os funcionais ou requisitos não-funcionais.

A próxima fase, que é a implementação do software, depende de todas as saídas mencionadas acima.

É, em seguida, torna-se necessário verificar a impressão antes de prosseguir para a próxima fase. O cedo qualquer erro é detectado, o melhor é ou pode não ser detectada até o teste do produto. Se as saídas da fase de projeto estão em notação formal, em seguida, as suas ferramentas associadas para verificação deverá ser utilizada caso contrário uma profunda revisão do desenho pode ser usado para verificação e validação.

A abordagem estruturada verificação, os analistas podem detectar defeitos que possam ser causados por com vista para algumas condições. Uma boa revisão do projeto é importante para um bom software design, precisão e qualidade.

Advertisements