Baixe o app para aproveitar ainda mais
Prévia do material em texto
GABARITO – APLICANDO CONHECIMENTO – AULA 6 Para fixar os principais pontos apresentados nesta aula, responda às questões abaixo: 1) Qual é a importância da atividade de Projeto em um processo de desenvolvimento de software? • O projeto permite que se modele o sistema ou o projeto a ser construído, e os modelos documentam as decisões tomadas. • O modelo pode ser avaliado em termos de qualidade e aperfeiçoado antes de o código ser gerado, ou de os testes serem realizados. • O projeto permite um melhor planejamento e melhores resultados. 2) Quais são as entradas para a atividade de Projeto? • Informações sobre a plataforma, ou seja, o ambiente no qual o software será executado. A maioria dos softwares interage com outros sistemas de software, incluindo desde sistemas operacionais e banco de dados até middleware e outras aplicações. • Requisitos do Software – que já foram definidos na etapa anterior ao Projeto. • Descrição dos dados – a organização dos dados precisa ser definida. 3) Quais etapas envolvem a atividade de Projeto em um processo de desenvolvimento de software? 1. Projeto de Arquitetura: onde são identificados a estrutura global do sistema e os componentes principais (às vezes, chamados de subsistemas ou módulos), observando seus relacionamentos e como são distribuídos. 2. Projeto de Banco de Dados: onde são projetadas as estruturas de dados do sistema e como elas devem ser representadas em um banco de dado. Pode-se definir entre reusar um banco de dados ou criar um novo. 3. Projeto de Interface: onde são definidas as interfaces entre os componentes do sistema. 4. Seleção e projeto de componentes: onde são feitas buscas por componentes reusáveis e, caso não haja componentes adequados, são projetados novos componentes de software. 4) Quais seriam as diretrizes para avaliar se o projeto de software tem qualidade? A resposta a seguir foi baseada no livro: PRESSMAN, Roger; MAXIM, Bruce. Engenharia de Software. 8. ed. Porto Alegre: Bookman, 2016 | Minha Biblioteca | Página 228 • O projeto deve implementar todos os requisitos explícitos contidos no modelo de requisitos e deve acomodar todo os requisitos implícitos desejados pelos envolvidos. • O projeto deve ser um guia legível e compreensível para aqueles que geram código e para aqueles que o testam e, subsequentemente, dão suporte ao software. • O projeto deve dar uma visão completa do software, tratando os domínios de dados, funcional e comportamental do ponto de vista da implementação. • Um projeto deve exibir uma arquitetura que seja composta por componentes que apresentam boas características de projeto e que possa ser implementada de uma forma evolucionária, facilitando, portanto, a implementação e os testes. • Um projeto deve ser modular; ou seja, o software deve ser dividido logicamente em elementos ou subsistemas, de modo que seja fácil de testar e manter. • Um projeto deve conter representações distintas de: dados, arquitetura, interfaces e componentes. • Um projeto deve levar a estruturas de dados adequadas às classes a serem implementadas e baseadas em padrões de dados reconhecíveis. • Um projeto deve levar a componentes que apresentem características funcionais independentes (baixo acoplamento). • Um projeto deve levar a interfaces que reduzam a complexidade das conexões entre os componentes e o ambiente externo (encapsulamento). • Um projeto deve ser obtido usando-se um método repetível, isto é, dirigido por informações obtidas durante a análise de requisitos de software. • Um projeto deve ser representado usando-se uma notação que comunique seu significado eficientemente. 5) A Implementação é a próxima atividade após o Projeto, em um processo de desenvolvimento de software. O que é realizado na atividade de Implementação? Explique quais aspectos devem ser levados em consideração, atualmente, na Implementação. Nesta etapa, o sistema é codificado a partir da descrição computacional da atividade de projeto em uma linguagem de programação, em que se torna possível a compilação e geração do código-executável para o desenvolvimento do software. Todos os modelos representados na fase de projeto serão traduzidos para uma linguagem de programação. Os aspectos que devem ser considerados na implementação são: • Reuso: a maior parte dos softwares modernos é construído reusando componentes ou sistemas que já existem. • Gerenciamento de Configuração: várias versões diferentes do software são criadas durante o processo de desenvolvimento e precisa haver um controle sobre essas versões. Esse controle deve ser feito por um sistema de gerenciamento de configuração para não incluir versões erradas dos componentes no sistema. • Desenvolvimento host-target: o software é desenvolvido em um computador (o host), mas executado em outra máquina (o target). A maior parte dos softwares profissionais é desenvolvido neste modelo. Podemos relacionar com uma plataforma de desenvolvimento (host) e uma plataforma de execução (target). A plataforma envolve tanto hardware como software. • Uma plataforma de desenvolvimento de software deve oferecer ferramentas de apoio aos processos da engenharia de software como um ambiente integrado de desenvolvimento.
Compartilhar