Buscar

GABARITO - APLICANDO CONHECIMENTO - AULA 6

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

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.

Continue navegando