DESIGN DE SOFTWARE
Tese: DESIGN DE SOFTWARE. Pesquise 861.000+ trabalhos acadêmicosPor: tbjesus • 21/6/2013 • Tese • 2.719 Palavras (11 Páginas) • 403 Visualizações
2 DESENVOLVIMENTO
Objetivo a ser alcançado é desenvolver um sistema de controle de locação de livros, este sistema precisara suprir a necessidade atual da empresa.
O sistema a ser desenvolvido deverá ser uma ferramenta que ira trazer maior confiabilidade no acervo de livros, possibilitando sempre ter as quantidades necessárias de livros e quais os mais procurados pelos clientes. O sistema se propõe a padronizar as rotinas, melhorando a interface.
Um ponto fundamental será a satisfação do cliente, pois com este sistema o atendimento, será mais ágil. E as rotinas serão mais confiáveis.
DESIGN DE SOFTWARE
Para definir design de software, alguns autores o fazem em dois sentidos distintos: quando design de software é usado como produto e quando é usado como processo. Quando usado no primeiro sentido, o termo design de software indica o produto que emerge do ato (ou processo) de projetar um sistema de software e sendo assim algum documento ou outro tipo de representação do desejo do projetista (ou designer). Esse produto é o resultado das decisões do designer para formar uma abstração do sistema que é desejado no mundo real. Existem diversas formas de como representar essa abstração do sistema. Podemos citar, por exemplo, desenhos usando caixas e setas, textos descritivo, ou ainda uso de linguagens ou ferramentas criadas para este propósito, como linguagens de modelagem de software, redes de petr., pseudocódigo, etc. Já quando o termo é usado no segundo sentido, fazer design indica o processo seguido para se obter um projeto. Esse é um processo que faz parte do processo de desenvolvimento e que é orientado aos objetivos do software. Ele deve ser realizado tendo em mente os diversos stakeholders do sistema e deve ser fundamentado no conhecimento do designer sobre o domínio do problema.
A partir da visão de design como artefato, podemos observar que ele deve descrever diversos aspectos do software para que, assim, possibilite sua construção. Entre estes aspectos, estão:
• a estrutura estática do sistema, incluindo a hierarquia de seus módulos;
• a descrição dos dados a serem usados;
• os algoritmos a serem usados;
• o empacotamento do sistema, em termos de como os módulos estão agrupados em unidades de compilação; e
• as interações entre módulos, incluindo as regras de como elas devem acontecer e porque elas acontecem.
Podemos perceber que, apesar dos exemplos anteriores descreverem apenas parte do design de dois sistemas, eles mostram boa parte dos aspectos que esperamos no design de um software.
Por fim, citamos uma definição de design que engloba todos estes aspectos:
DEFINIÇÃO 1: design de software
"É tanto o processo de definição da arquitetura, módulos, interfaces e outras características de um sistema quanto o resultado desse processo.”
2.2.1 Características de Design de Software
Projetar os diversos aspectos de um sistema de software é um processo trabalhoso. No entanto, pode proporcionar diversos benefícios.
Design de software permite avaliação prévia. Como desenvolver software custa tempo e dinheiro, não parece sensato alguém investir seus recursos no desenvolvimento de um sistema que não soluciona os problemas propostos pelos interessados. Dessa maneira, a avaliação prévia do sistema se torna imprescindível para garantir que ele alcance os objetivos desses interessados. Como o design descreve diversos aspectos que estarão presentes no sistema quando construído, ele permite esse tipo de avaliação. Além disso, fazer o design de um sistema é, geralmente, mais barato que construí-lo.
Considerando o sistema do Exemplo 1 e que um de seus objetivos fosse a alta disponibilidade, podemos avaliar que design apresentado não seria a melhor solução para o objetivo proposto. Isso ocorre porque seu design possui um ponto único de falhas, que é uma característica indesejável para sistemas que buscam alta disponibilidade. Note ainda que não foi necessário ter o HBase desenvolvido para percebermos esse problema (na época em que implementava tal design, ele possuía cerca de cem mil linhas de código e alguns anos de desenvolvimento e, portanto, não sendo um software de desenvolvimento trivial), bastou apenas estudarmos seu design.
Design de software estimula modelagem. Ao modelar um sistema, o designer se concentra no domínio do problema, ignorando temporariamente detalhes menos significativo para se alcançar a solução. Isso facilita na separação da complexidade essencial da complexidade acidental do problema. E, como já dito por Fred Brooks em The Mythical Man-Month, essa separação é benéfica para a qualidade final do sistema projetado.
Design de software envolve planejamento. Uma vez que o design serve de guia para a construção do sistema, o designer deve então antecipar o que será necessário para tanto. Esse planejamento ajuda na estimativa dos diversos custos envolvidos no desenvolvimento do sistema. Entre esses custos, podemos citar:
• Quanto tempo durará todo o desenvolvimento,
• Quantos desenvolvedores serão necessários para o módulo A,
• Se comprado, quanto custará o módulo B, e se for implementado,
• Ou qual será o custo total do desenvolvimento do sistema.
Design de software facilita a comunicação, pois contém conhecimento sobre o sistema que pode ser gravado, transmitido e discutido entre os interessados. Um caso bem comum é o de apresentar um sistema a novos membros de um time de desenvolvimento. Informações valiosas, como por exemplo, quais os principais módulos e seus diversos comportamentos, lhes podem ser passadas através do design do sistema antes de mostrá-los o código-fonte. Dessa maneira, essas informações de alto nível de abstração ajudarão a situá-los no código posteriormente. No entanto, o design não serve apenas para os desenvolvedores. Um usuário do sistema pode procurar no design informações de um nível ainda maior de abstração, como quais funções o sistema é capaz de realizar, ou qual o desempenho delas.
Por outro lado, design de software também demanda algumas observações importantes.
O problema
...