A complexidade crescente dos sistemas requer a implementação de novos métodos de desenvolvimento para manter os custos, o tempo e a qualidade sob controle. As abordagens tradicionais, centradas em documentos e baseadas em testes não são mais compatíveis com a atual engenharia de sistema multidisciplinar e distribuída.
Considerando o texto acima, analise as afirmativas abaixo sobre as características de sistemas que devem ser tratadas e consideradas pelos analistas e projetistas de engenharia de software para futuras aplicações.
I. Considerar as arquiteturas complexas e sistemas heterogêneos distribuídos
II. Devem considerar somente a reatividade e os usuários experientes para interação com o sistema.
III. Considerar a multifuncionalidade e variabilidade de manutenção
IV. Considerar a criticidade do software, pois tornou-se o componente pivô em todos os sistemas críticos nos negócios e em muitos sistemas em termos de segurança.
É correto o que se afirma em:
Alternativas
Alternativa 1:
I, apenas.
Alternativa 2:
I e II, apenas.
Alternativa 3:
II e IV, apenas.
Alternativa 4:
I, III e IV, apenas.
Alternativa 5:
I, II, III e IV.
Respostas
Resposta:
Resposta correta: I,III,IV
Quem quiser pode conferir na página 216 e 217 do livro tópicos especiais.
Explicação: A tabela 11 aborda os mesmos textos das afirmativas,exceto a questão II, que não menciona nada sobre usuários experientes.
Resposta:
Alternativa 4:
I,III e IV, apenas.
Explicação:
Multifuncionalidade
À medida que os dispositivos digitais evoluíram começaram
a apresentar um amplo conjunto de funções às vezes não
relacionadas. Os engenheiros devem descrever o contexto detalhado no qual as funções serão fornecidas e, mais importante, devem identificar as interações potencialmente perigosas
entre diferentes características do sistema.
Reatividade e
temporização
(timeliness)
Os dispositivos digitais interagem cada vez mais com o
mundo real e devem reagir aos estímulos externos no tempo.
Eles devem estabelecer interface com um amplo conjunto
de sensores e devem responder em um intervalo de tempo
apropriado para a tarefa em questão.
Novos modos
de interação
de usuário
As tendências abertas para software significam que novos
modos de interação devem ser modelados e implementados.
Independentemente do fato de essas novas abordagens usarem
interfaces multitoque, reconhecimento de voz ou interfaces
mentais diretas, as novas gerações de software para dispositivos
digitais devem modelar as novas interfaces homem-computador.
As tendências que têm um efeito sobre a tecnologia de engenharia de software muitas vezes originam-se de cenários de negócios, organizacionais,
mercado e cultural. O grau segundo o qual qualquer tecnologia de engenharia de software ganha uma aceitação ampla está ligado a sua habilidade
para resolver os problemas apresentados pelas tendências tanto leves (soft)
quanto pesadas (hard). Tendências leves — a necessidade cada vez maior
de conectividade e colaboração, projetos globais, transferência de conhecimento, o impacto das economias emergentes e a influência da própria cultura humana levam a uma série de desafios que abrangem desde o gerenciamento de complexidade e requisitos emergentes até a manipulação de
um mix de talentos sempre em mudanças entre equipes de software geograficamente dispersas. Tendências pesadas — o ritmo sempre acelerado da
mudança da tecnologia — surgem do âmbito das tendências leves e afetam
a estrutura do software e o escopo dos processos e a maneira pela qual uma
estrutura de processo é caracterizada.
Fonte: Pressman (2016, p. 852).
Tendências Leves
Arquiteturas
complexas
Sistemas ainda mais complexos estão no horizonte próximo,
apresentando desafios significativos para os projetistas de
software.
Sistemas
heterogêneos
distribuídos
Os componentes de tempo real de qualquer sistema embutido
moderno podem ser conectados por meio de um barramento
interno, uma rede sem fio ou da Internet (ou as três coisas).
Criticidade
O software tornou-se o componente pivô em todos os sistemas críticos nos negócios e em muitos sistemas em termos de
segurança. Contudo, a comunidade de engenharia de software apenas começou a aplicar os princípios mais básicos de
segurança de software.
Variabilidade
de manutenção
A vida do software em um dispositivo digital raramente dura
além de 3 a 5 anos, mas os sistemas complexos de aviônica
instalados em uma aeronave têm uma vida útil de pelo menos
20 anos. O software dos automóveis fica a meio termo. Isso
deverá ter um impacto sobre o projeto.