You are on page 1of 10

FACULDADE INTEGRAL DIFERENCIAL CURSO: SISTEMAS DE INFORMAO DISCIPLINA: ENGENHARIA DE SOFTWARE PROFESSOR: JESSE JAMES

RESUMO CAPTULO 09 ENGENHARIA DE PROJETO

Teresina, 2010 ENGENHARIA DE PROJETO

CONCEITOS CHAVES A engenharia de projeto engloba um conjunto de princpios, conceitos e praticas que levam ao desenvolvimento de um sistema ou produto de alta qualidade. Conceitos de projeto devem ser compreendidos antes que a mecnica da pratica de projeto seja aplicada, e prticas de projetos em si levam criao de vrias representaes do software que norteiam a atividade de construo. O objetivo da engenharia de projeto produzir um modelo ou representao que exiba, firmeza comodidade e prazer. Projeto no Contexto de Engenharia de Software O projeto de software situa-se no ncleo tcnico da engenharia de software e aplicado independentemente do modelo de processo de software usado. Cada um dos elementos do modelo de anlise fornece informao necessria para uma completa especificao do projeto. Usando a notao de projetos, o projeto produz um projeto de dados/classes, um projeto arquitetural, um projeto de interface e um projeto de componentes. O projeto de dados /classes transforma modelos de anlise classes em realizaes de classes de projetos e na estruturas de dados dos requisitos necessrias para implementar o software. O projeto arquitetural define os relacionamentos entre os principais elementos estruturais do software, os estilos arquiteturais e padro de projeto que podem ser usado para satisfazer aos requisitos definidos para o sistema e as restries que afetam o modo pelo qual o modelo arquitetural pode ser implementado. O projeto de interface descreve como o software se comunica com os sistemas interoperam com ele e com as pessoas que o utilizam. O projeto em nvel de componente transforma elementos estruturais da arquitetura de software em uma descrio procedural dos componentes de software. A importncia do projeto de software se resume em uma palavra qualidade. Projeto a etapa na qual a qualidade incorporada na

engenharia

na

engenharia

de

software.

projeto

nos

fornece

representaes do software que podem ser avaliadas quanto qualidade. PROCESSO DE PROJETO E QUALIDADE DE PROJETO Projeto de software um processo interativo por meio do qual os requisitos so traduzidos em um documento para construo do software. Inicialmente, o documento mostra uma viso holstica do software. medida que ocorrem as iteraes de projeto, os refinamentos subseqentes levam a representao de projeto em nveis de abstrao muito mais baixos. Esses ainda podem ser relacionados aos requisitos, mas a conexo mais sutil. Ao longo do processo, qualidade do projeto em evoluo com uma srie de revises tcnicas formais ou walkthroughs de projeto. McGlaughlin sugere trs caractersticas que servem de orientao para a avaliao de um bom projeto que so: - O projeto deve implementar todos os requisitos contidos no modelo de analise e os desejados pelo cliente. - O projeto deve ser um guia legvel, ser compreendido por quem vai gerar o cdigo e os que testam. - O projeto deve fornecer um quadro completo do software, focalizando os domnios dos dados, funcional e comportamental sobre algumas implementaes. Diretrizes de qualidade Para avaliarmos a qualidade de uma representao do projeto, precisamos estabelecer critrios tcnicos para um bom projeto. Algumas diretrizes so: - Um projeto deve exibir uma arquitetura que tenha sido criada por meio de estilos ou padres arquiteturais reconhecveis, seja composta de componentes que exibam boas caractersticas de projeto e pode ser implementada de modo evolucionrio, facilitando assim a implementao e o teste. - Um projeto deve ser modular; o software deve ser logicamente particionado em elementos ou subsistemas.

- Um projeto deve conter representaes distintas dos doados, arquitetura, interfaces e componentes. - Um projeto deve levar a estruturas de dados adequadas as classes a ser implementadas e baseadas em padres de dados reconhecveis. Alm dessas, existem muito mais diretrizes para se definir um bom projeto. Essas diretrizes de projeto no so satisfeitas por acaso. A engenharia de projeto incentiva um bom projeto por meio da aplicao de princpios fundamentais de projeto, metodologia sistemtica e revises precisas. Atributos de qualidade A Hewlett-Packard desenvolveu um conjunto de atributos de qualidade de software chamado de FURPS. Os atributos de qualidade FURPS representam uma meta para todo o projeto de software: - Funcionalidade avaliada pela observao do conjunto de caractersticas e capacidades do programa. - Usabilidade avaliada considerando fatores humanos, esttica, consistncia e documentao globais. Confiabilidade avaliada medindo-se a freqncia e a severidade das falhas, a preciso dos resultados de sada, o tempo mdio entre falhas e etc. - Desempenho medido pela velocidade de processamento, tempo de resposta, consumo de recursos e etc. - Suportabilidade combina a capacidade de estender o programa, adaptabilidade e reparabilidade. em todo atributo de qualidade de software igualmente ponderado medida que o projeto de software desenvolvido. Uma aplicao pode salientar funcionalidade com nfase especial em segurana, outra pode exigir mais de processamento, uma terceira pode focar a confiabilidade. Esses atributos devem ser considerados quando o projeto comea no quando estiver completo. CONCEITOS DE PROJETO

Os Conceitos de Projeto tem evoludo durante a primeira metade de sculo de trabalho de engenharia de software. Eles descrevem atributos de software de computador que devem estar presentes independentemente do processo de engenharia de software escolhido, dos mtodos de projeto aplicados ou das linguagens de programao usadas. Os conceitos fundamentais de projeto de software fornecem o arcabouo necessrio para faz-lo corretamente. Os conceitos so:

Abstrao uma coleo de dados com uma denominao que descreve um objetos de dados. No contexto da abstrao procedural abrir, podemos definir uma abstrao de dados chamada de porta. Como qualquer objeto de dados, a abstrao de dados para porta abrangeria um conjunto de atributos que descrevem a porta (tipo de porta, direo de giro, mecanismo de abertura, peso, dimenses). Da decorre que a abstrao procedimental abrir faria uso da informao contida nos atributos da abstrao de dados porta. Arquitetura Refere-se a estrutura global do software e aos modos pelos quais essa estrutura fornece integridade conceitual para um sistema. De maneira mais simples, arquitetura a estrutura ou organizao dos componentes de programa, o modo pelo qual esses componentes interagem e as estruturas dos dados que so usadas pelos componentes. O projeto arquitetural pode ser representado por usando um ou vrios modelos diferentes: modelos estruturais, modelos dinmicos e/ou, modelos funcionais. Padres

Descreve uma estrutura de um projeto que resolve um problema particular de projeto em um contexto especfico e em meio a foras que podem ter impacto na maneira pela qual o padro aplicado e usado. Modularidade Arquitetura modularidade; o de software e padres em de projeto incorporam nomeados

software

dividido

componentes

separadamente e endereveis, algumas vezes chamados de mdulos, que so integrados para satisfazer aos requisitos do problema. Diz-se que modularidade o atributo individual de software que permite a um programa ser gerencivel intelectualmente. A modularizao de um projeto permite que o modo de desenvolvimento possa ser mais facilmente planejado; incrementos de software possam ser definidos e liberados; modificaes possam ser mais facilmente acomodadas; teste e depurao possam ser conduzidos mais eficientemente; e manuteno a longo prazo possa ser conduzida sem srios efeitos colaterais. Ocultamento da Informao O princpio do ocultamento da informao sugere que os mdulos sejam caracterizados por decises de projeto que (cada um) esconde de todos os outros. Ou seja, mdulos devem ser especificados e projetados para que a informao contida em um mdulo seja inacessvel a outros mdulos que no necessitam dessa informao. Independncia Funcional O conceito de independncia funcional uma decorrncia direta da modularidade e dos conceitos de abstrao e ocultamento da informao. obtida pelo desenvolvimento de mdulos com funo de finalidade nica e uma averso interao excessiva com outros mdulos. Independncia avaliada usando dois critrios qualitativos: coeso e acoplamento. Coeso indica a robustez funcional relativa de um mdulo. Acoplamento indica a interdependncia relativa entre mdulos. Refinamento

um processo de elaborao. Comea-se com um enunciado da funo que definida em um alto nvel de abstrao. O enunciado descreve a funo ou informao conceitualmente, mas no fornece qualquer informao sobre o funcionamento interno da funo ou a estrutura interna da informao. O refinamento leva o projetista a elaborar o enunciado original, fornecendo mais e mais detalhes medida que cada refinamento sucessivo ocorre. Refabricao uma tcnica de reorganizao que simplifica o projeto (ou o cdigo) de um componente sem mudar sua funo ou comportamento. Classes de Projeto Classes de projeto , definidas por uma equipe de software, devem refinar as classes de anlise, fornecer detalhes de projeto que vo permitir que as classes sejam implementadas; e criar um conjunto de classes de projeto que implemente uma infra-estrutura de software para apoiar a soluo do negcio. So cinco os diferentes tipos de classes: classes de interface com o usurio; classes do domnio de negcio; classes de processo; classes persistentes e; classes de sistemas. O MODELO DE PROJETO O modelo de projeto pode ser visto de duas dimenses diferentes, a dimenso processo indica a evoluo do modelo de projeto medida que as tarefas so executadas como parte do processo de software. A dimenso representa o nvel de detalhe medida que cada elemento do modelo de anlise transformado em um projeto equivalente e, ento refinado iterativamente. O Modelo de Projeto

Projeto de Dados algumas vezes denominado arquitetura de dados, cria um modelo de dados e/ou informao que representado no nvel mais alto de abstrao. A estrutura de dados tem sido sempre uma parte importante do projeto de software. No nvel de componente do programa, o projeto das estruturas de dados e dos algoritmos associados necessrios para manipu-las essencial para a criao de aplicaes de alta qualidade. Elementos do Projeto Arquitetural O projeto arquitetural equivalente planta baixa de uma casa. Elementos de projeto arquitetural nos do uma viso geral do software. Elementos do Projeto da Interface Elementos do projetos de interface de software contam-nos como a informao flui para dentro e para fora do sistema e como ela disseminada entre os componentes definidos como parte da arquitetura. H trs importantes elementos do projeto de interface: 1. Interface com o usurio UI; 2. Interface externas com outros sistemas, disposistivos e etc.; 3. Interfaces internas entre vrios componentes de projeto; Elementos de Projeto em Nvel de Componente O projeto em nvel de componente de software descreve completamente os detalhes internos de cada componente de software. Os detalhes de projeto de um componente pode ser modelados em muitos nveis diferentes de abstrao. Elementos de Projeto em Nvel de Implementao Elementos de projeto em nvel de implementao indicam como a funcionalidade e os subsistemas do software sero colocados no ambiente computacional fsico que vai apoiar o software.

PROJETO DE SOFTWARE BASEADO EM PADRO Os melhores projetistas em qualquer campo tm uma habilidade incomum de ver padres que caracterizam um problema e padres correspondentes que podem ser combinados para criar uma soluo. Durante o processo de projeto, um engenheiro de software deve procurar toda a oportunidade de reutilizar padres de projeto existentes em vez de criar outros. Cada padro arquitetural, padro de projeto ou idioma catalogado, profundamente documentado e cuidadosamente considerado medida que ele avaliado para incluso em uma aplicao especfica.

Descrio de um projeto padro Descreve as normas essenciais para que um desenvolvedor seja capaz de torna o seu software padro. Assim temos um gabarito padro que deve ser seguido para manter, o software no padro (Nome do padro, Intenso Tambm conhecido como motivao -, aplicabilidade participantes, colaboradores, consequncias e padres relacionados. Alm destes tipos o projeto pode possuir influencias de projeto , que possuem requisitos no funcionveis ( facilidade de manuteno , portabilidade ) associados ao software o qual o padro pode ser aplicado contendo suas caractersticas (classes , responsabilidades e colaboraes ) indicando os atributos do projeto que podem ser ajustados para permitir ao padro acomodar caractersticas (ex: base de dados) de modo que o padro adequado. Uso padro do projeto Pode ser usado durante todo o tempo do projeto de software assim o projetista pode examinar uma representao detalhada , contendo os seguintes nveis : Padres Arquiteturais ( definindo os padres uma estrutura global de software) Padres de Projeto (Esses padres atendem a um padro especifico do projeto como agregao de componentes para resolver algum problema de um projeto) Idioma (Algumas vezes conhecido como padres de cdigo )

Frameworks Em alguns casos pode-se fornecer uma infraestrutura do

esqueleto de implementao especifica chamada de arcabouo . Um arcabouo no e um padro arquitetural mas um esqueleto com uma coleo de pontos conceituais que possibilitam adaptar um domnio especifico de problema. Em resumo o projetista de um arcabouo alegara que uma miniatura reusvel e aplicada a todo software

You might also like