Você está na página 1de 4

Nome: Gustavo de Oliveira Sato Curso: ADS – noturnoS

2.1 Justificando sua resposta com base no tipo de sistema a ser


desenvolvido, sugira o modelo genérico de processo de software mais
adequado para ser usado como base para a gerência do desenvolvimento
dos sistemas a seguir:
1. Um sistema para controlar o antibloqueio de frenagem de um carro.
R: O modelo mais adequado seria o modelo em cascata. Esse modelo é
adequado para sistemas com requisitos bem definidos e estáveis e com muita
previsibilidade.

2. Um sistema de realidade virtual para dar apoio à manutenção de software.


R: O modelo mais adequado seria o modelo de prototipação. Esse modelo é
adequado para sistemas em que os requisitos não são totalmente compreendidos ou
mudam frequentemente e para o desenvolvimento de sistemas de software que
envolvem muita interação com o usuário e requisitos dinâmicos.

3. Um sistema de contabilidade para uma universidade, que substitua um


sistema já existente.
R: O modelo mais adequado seria o modelo de evolução incremental. Esse
modelo é adequado para sistemas que precisam ser desenvolvidos rapidamente e que
podem ser aprimorados com o tempo.

4. Um sistema interativo de planejamento de viagens que ajude os usuários a


planejar viagens com menor impacto ambiental.
R: O modelo mais adequado seria o modelo de desenvolvimento ágil. Esse
modelo é adequado para sistemas que precisam ser desenvolvidos rapidamente e que
podem mudar com frequência.

2.2 Explique por que o desenvolvimento incremental é o método mais


eficaz para o desenvolvimento de sistemas de software de negócios. Por
que esse modelo é menos adequado para a engenharia de sistemas de
tempo real?
R: O modelo de desenvolvimento incremental é um método eficaz para o
desenvolvimento de sistemas de software de negócios porque permite que os requisitos do
sistema evoluam ao longo do tempo e permite que o sistema seja entregue em partes
funcionais, permitindo que os usuários vejam resultados tangíveis e deem feedback à equipe
de desenvolvimento. Isso ajuda a garantir que o sistema atenda às necessidades do usuário
final.

Porém, o modelo de desenvolvimento incremental pode ser menos adequado para a


engenharia de sistemas de tempo real. Pois sistemas de tempo real são sistemas que precisam
responder a eventos ou estímulos externos em tempo hábil, com pouca ou nenhuma
tolerância atrasos ou erros, dessa forma não sendo a melhor abordagem para a engenharia de
sistemas de tempo real, pois ele pode aumentar a complexidade do sistema e aumentar o
tempo de resposta do sistema a eventos críticos.

2.3 Considere o modelo de processo baseado em reúso da Figura 2.3.


Explique por que, nesse processo, é essencial ter duas atividades distintas
de engenharia de requisitos.
R: Nesse modelo de processo, é essencial ter duas atividades distintas de engenharia
de requisitos, pois a reutilização de componentes de software existentes tem um impacto
significativo na definição dos requisitos do sistema. Dessa forma, ter duas atividades distintas
de engenharia de requisitos é essencial para garantir que todos os requisitos do sistema sejam
identificados e definidos corretamente, tanto para os componentes reutilizados quanto para
os requisitos específicos do sistema.

2.4 Sugira por que é importante, no processo de engenharia de requisitos,


fazer uma distinção entre desenvolvimento dos requisitos do usuário e
desenvolvimento de requisitos de sistema.
2.5 Descreva as principais atividades do processo de projeto de software e
as saídas dessas atividades. Usando um diagrama, mostre as possíveis
relações entre as saídas dessas atividades.
R: Entre as principais atividade estão:

1. Identificação e análise dos requisitos do sistema: Os requisitos do sistema são


analisados e definidos em detalhes para que possam ser convertidos em um design do
sistema. As saídas dessa atividade incluem um conjunto de requisitos do sistema
documentados e uma especificação de requisitos.
2. Projeto arquitetural: A arquitetura do sistema é projetada, incluindo a definição dos
componentes do sistema, as interfaces entre os componentes e o comportamento do
sistema. As saídas dessa atividade incluem um modelo de arquitetura do sistema e um
conjunto de especificações de interface.
3. Projeto detalhado: Os componentes individuais do sistema são projetados em
detalhes. As saídas dessa atividade incluem um modelo de design detalhado para cada
componente e um conjunto de especificações de interface detalhadas.
4. Implementação: O design detalhado é implementado em código. As saídas dessa
atividade incluem o código-fonte do sistema e uma documentação técnica detalhada.
5. Teste: O sistema é testado para garantir que atenda aos requisitos especificados e que
funcione corretamente. As saídas dessa atividade incluem um conjunto de casos de
teste documentados e um relatório de teste.
6. Manutenção: O sistema é mantido e atualizado ao longo do tempo. As saídas incluem
documentação de manutenção e um conjunto de atualizações do sistema.
2.6 Explique por que, em sistemas complexos, as mudanças são
inevitáveis. Exemplifique as atividades de processo de software que
ajudam a prever as mudanças e fazer com que o software seja
desenvolvido mais tolerante a mudanças (desconsidere prototipação e
entrega incremental).
R: Porque esses sistemas são geralmente desenvolvidos para resolver
problemas complexos e dinâmicos, que podem mudar com o tempo. Além disso, os
sistemas são desenvolvidos em um ambiente em constante evolução, em que as
necessidades e expectativas dos usuários, estão em constante mudança.

2.7 Explique por que os sistemas desenvolvidos como protótipos


normalmente não devem ser usados como sistemas de produção.
R: Pois eles são projetados para serem soluções temporárias e incompletas. Os
protótipos são criados para explorar conceitos, testar funcionalidades e receber
feedback dos usuários, e não são desenvolvidos com a mesma qualidade, rigor e
robustez que os sistemas de produção.

2.8 Explique por que o modelo em espiral de Boehm é um modelo


adaptável, que apoia tanto as atividades de prevenção de mudanças
quanto as de tolerância a mudanças. Na prática, esse modelo não tem
sido amplamente usado. Sugira as possíveis razões para isso.

2.9 Quais são as vantagens de proporcionar visões estáticas e dinâmicas


do processo de software, assim como no Rational Unified Process?
R: As visões estáticas e dinâmicas do processo de software fornecem uma
compreensão clara do processo, facilitam a comunicação, oferecem flexibilidade e
permitem a melhoria contínua do processo. Isso ajuda a garantir o sucesso do projeto
e a qualidade do produto final.

2.10 Historicamente, a introdução de tecnologia provocou mudanças


profundas no mercado de trabalho e, pelo menos temporariamente,
deixou muitas pessoas desempregadas. Discuta se a introdução da
automação extensiva em processos pode vir a ter as mesmas
consequências para os engenheiros de software. Se sua resposta for não,
justifique. Se você acha que sim, que vai reduzir as oportunidades de
emprego, é ética a resistência passiva ou ativa, pelos engenheiros
afetados, à introdução dessa tecnologia?

Você também pode gostar