Engenharia de Software – Noturno
Nome:
RA.:
Curso:
Turma:
Duração: 75 min.
Prova P2
Gabarito CC
Instruções:


1)
2a)
2b)
3a)
leia atentamente o enunciado das questões;
questões com apresentação pura do resultado,
sem detalhamento (mesmo que correto) serão
desconsideradas;



manter celulares desligados;
permitida a utilização de calculadoras, mas não
o seu empréstimo;
prova individual, sem consulta.
No processo de desenvolvimento de software, todo software passa pelas fases de análise e
projeto, associadas, respectivamente, com o que deve ser feito e como deve ser feito. A partir
dessa informação, avalie a opções correta.
a) Na fase de análise, três modelos que devem ser considerados são: do domínio da
informação, o funcional e o comportamental.
b) Na fase de projeto, dois níveis de projeto devem ser considerados: o projeto detalhado,
que se preocupa com uma transformação dos requisitos em um projeto de dados e
arquitetural; e o projeto preliminar, que se preocupa em aprimorar o projeto detalhado
para que a implementação possa ser realizada em seguida.
Errado: o projeto preliminar, como indica o nome, precede o detalhado.
c) O objetivo do projeto arquitetural é desenvolver uma estrutura de programa e representar
os diversos fluxos de dados entre os módulos.
Errado: o projeto arquitetural é associado a estruturas, algo estático. Já o fluxo de dados
entre módulos é algo dinâmico, sem relacionamento direto com arquitetura.
d) O projeto arquitetural independe do paradigma de desenvolvimento.
Errado: o projeto arquitetural sim depende do paradigma de desenvolvimento utilizado (e
vice-versa).
e) Para lidar com a complexidade do software, pode-se aplicar o princípio do
particionamento, quebrando o problema em problemas menores. Esse princípio não é
aplicado nas outras fases de desenvolvimento e ele não causa impacto nos custos de
desenvolvimento.
Errado: a primeira frase está correta: aplicar particionamento para abordar o projeto em
problemas menores. Entretanto este princípio sim pode ser aplicado em outras etapas e, sim
causa impactos no custo do desenvolvimento.
Qual o possível impacto de interfaces entre sistemas em um projeto de software.
O projeto de interfaces é um dos princípios básicos de um projeto de software e obrigatoriamente
deve constar da definição e análise de requisito, tendo impacto direto na operação (manutenção). A
quantidade e complexidade das interfaces influenciam diretamente o custo, prazo e dificuldade do
projeto. Seu maior impacto vem da dificuldade do gerenciamento já que, na maioria das vezes, o
owner e operação do outro sistema é independente, de difícil gerenciamento.
Explique a importância da arquitetura de dados em um projeto de software.
É representação do relacionamento lógico entre elementos de dados individuais, tão importantes
quanto a arquitetura, pois afeta o projeto procedimental final e dela depende a implementação. Parte
integrante do projeto detalhado
Descreva o modelo que podemos utilizar na definição da estratégia de evolução de software
legado.
Na análise de um sistema legado, podemos mapear sua importância em um gráfico de Valor p/
Negócio x Qualidade, utilizando critérios específicos para isso.
Engenharia de Software
Engenharia de Software – Noturno
Nome:
RA.:
Curso:
Turma:
Duração: 75 min.
Prova P2
Gabarito CC
Quando determinamos o quadrante em que se encontra o sistema analisado, a estratégia fica
determinada:
 Baixa qualidade, baixo valor de negócio: sistemas devem ser substituídos.
 Baixa qualidade, alto valor negócio: reengenharia ou substituição.
 Alta qualidade, baixo valor de negócio: CotS, eliminação ou manutenção.
 Alta qualidade, alto valor de negócio: continuar operação.
A análise do software deve focar em:
Valor para o negócio


Qualidade
3b)
4a)
Fundamental analisar de diferentes pontos de vista (usuário final; clientes;
gerentes da linha; gerentes de TI; Gerentes seniores)
Entrevistar diferentes stakeholders e analise os resultados.
 Processos de negócio: quão bem os processos suportam as metas?
 Ambiente: quão efetivo / eficiente é o ambiente e qual o custo de mantê-lo?
 Aplicação: qual a qualidade da aplicação?
Podemos determinar o número ideal de módulos de um sistema segundo o gráfico abaixo. Como
isso impacta a qualidade do sistema (coesão e acoplamento)?
Coesão e acoplamento são tidos como critérios de qualidade no desenvolvimento de software,
dizemos que quanto maior a coesão e menor o acoplamento, maior a qualidade do código. O gráfico
abaixo indica de um ponto de vista puramente financeiro o intervalo ótimo de número de módulos do
sistema, o que pode estar em conflito com o número otimizado desde um ponto de vista de qualidade.
Sendo assim, com foco em custo, pode ser necessário diminuir a coesão e aumentar o acoplamento
do sistema visando baratear o custo final do sistema.
Podemos descrever o custo do desenvolvimento de um sistema (modular) segundo o gráfico
abaixo. Explique como podemos utilizá-lo na determinação do número ideal de módulos do
sistema.
Engenharia de Software
Engenharia de Software – Noturno
Nome:
RA.:
Curso:
Turma:
Duração: 75 min.
5a)
Gabarito CC
A curva em formato de parábola é gerada a partir da composição do custo unitário (por módulo) e o
custo da integração dos módulos. O ponto de mínimo desta curva indica o custo mínimo no
desenvolvimento de um sistema, composição entre baixar o custo unitário sem permitir que o custo de
integração exploda.
Detalhe a importância de um bom plano de comunicação na gerência de um grupo de
desenvolvimento.


5b)
Prova P2
Uma boa comunicação é essencial para um resultado efetivo.
Intercâmbio de informação referente ao status do trabalho, decisões de arquitetura e
desenho da solução e (principalmente) alterações de decisões tomadas anteriormente.
 Uma boa comunicação fortalece a coesão do grupo e promove a compreensão.
Descreva algumas das vantagens de um grupo coeso no processo de desenvolvimento de
software.
Vantagens:




padronização de qualidade pode ser desenvolvida / implementada;
trabalho integrado: inibição devido a desconhecimento ou ignorância é reduzida;
membros aprendem um com o outro e conhecem o trabalho de cada um;
esforço para a melhoria do programa de cada membro, em detrimento do Ego.
Engenharia de Software
Download

Engenharia de Software – Noturno Nome: RA.: Curso: Turma: Prova