Profa. Reane Franco Goulart É uma representação de engenharia de algo que vai ser construído. Para a engenharia de software o projeto foca em quatro áreas principais: dados, arquitetura, interfaces e componentes. Engenheiros de software projetam sistemas baseados em computador, mas as habilidades necessárias em cada nível do trabalho de projeto são diferentes. No nível de dados e arquitetura, o projeto concentra-se em padrões que interessam a aplicação a ser construída. No nível da interface, a ergonomia humana frequentemente determina nossa abordagem de projeto. No nível de componente, uma “abordagem de programação” nos leva a obter projetos de dados e metodologia efetivos. O projeto tem início com um modelo de requisitos. O modelo deve ser transformado em quatro níveis de detalhes: estrutura de dados, arquitetura do sistema, representação da interface detalhe a nível de componente. Para finalizar, é produzida uma especificação do projeto. Ela é composta de modelos de projeto que descrevem os dados, a arquitetura, as interfaces e os componentes. Cada um é produto do trabalho do processo de projeto. Em cada estágio, os produtos do trabalho de projeto de software são revistos quanto à clareza, correção, completeza e consistência com os requisitos, e uns com os outros. Existem importante em qualquer processo de projeto: Diversificação é a aquisição de um repertório de alternativas, a matéria-prima do projeto: componentes, soluções de componentes e conhecimento, tudo contido em catálogos, livros-textos e na mente. Convergência é quando o projetista escolhe e combina os elementos apropriados desse repertório para satisfazer os objetivos do projeto, como declarados no documento de requisitos e como combinado com o cliente. Eliminação é gradual de todas com a exceção de uma configuração específica de componentes, criando assim o produto final. A diversificação e a convergência combinam intuição e julgamento, baseados na experiência de construção de entidades semelhantes: num conjunto de princípios e/ou heurísticas que guia o modo pelo qual o modelo evolui; num conjunto de critérios que permitem que a qualidade seja julgada; num processo de iteração que em última instância leva à representação do projeto final. É o núcleo técnico da engenharia de software aplicado independente do modelo de processo de software usado. Inicia-se desde que os requisitos de software tenham sido analisados e especificados, o projeto de software é a primeira de três atividades técnicas - projeto, geração de código e teste – que são necessárias para construir e verificar o software. Cada atividade transforma a informação de um modo que, em última análise, resulta em software para computador validado. Os elementos do modelo de análise fornece informações que são necessárias para criar os quatro modelos de projeto necessários para uma completa especificação do projeto. DFD, DER, Dicionário de Dados (DD), Diagrama de Transição de Estados (DTE), Descrição dos objetos de dados, Especificação de processos e de controle. Os requisitos de software, manifestados nos modelos de dados, funcional e comportamental, alimentam a tarefa de projeto, isto é, produz um projeto de dados, um arquitetural, um da interface e um de componentes. Transforma o modelo do domínio de informação, criado durante a análise, nas estruturas de dados que vão ser necessárias para implementar o software. Os objetos de dados e as relações definidas no DER, bem como o conteúdo detalhado dos dados mostrados no DD, fornecem a base para a atividade de projeto de dados. Define as relações entre os principais elementos estruturais do software, os “padrões de projeto”, que podem ser usados para satisfazer os requisitos que tenham sido definidos para o sistema e as restrições que afetam o modo pelo qual os padrões de projeto arquitetural podem ser aplicados. A representação deste tipo de projeto depende de um sistema baseado em computador – derivado da especificação do sistema, do modelo de análise e da interação dos subsistemas definida no modelo de análise. Descreve com o software se comunica com ele mesmo, com os sistemas que interoperam com ele e com as pessoas que o utilizam. Uma interface implica um fluxo de informação (dados e/ou controle) e um tipo de comportamento específico. Diagrama de fluxo de dados e controle fornecem muita informação necessária para o projeto da interface. Transforma elementos estruturais da arquitetura de software numa descrição procedimental dos componentes de software. ============================================ A importância do projeto de software pode ser definida com uma única palavra – Qualidade. Projeto é a etapa na qual a qualidade é incorporada na engenharia de software. O projeto é o único modo pelo qual pode-se traduzir precisamente os requisitos do cliente num produto ou sistema de software acabado.