RESUMO 1 PROVA POO 1 copy
UNIDADE 1
Complexidade inerente aos sistemas de software:
É quase impossível para um único indivíduo entender todos os detalhes do sistema.
Tem um ciclo de vida longo.
Podemos gerenciar a complexidade, mas não podemos eliminá-la.
Por quê os sistemas de software são complexos?
Dificuldade de captura de requisitos.
Quem desenvolve o sistema não é quem conhece o domínio do problema.
Os requisitos podem não ser estáveis.
É necessário pensar na evolução do sistema.
A grande flexibilidade é uma desvantagem por permitir que o programador reinvente a roda.
Existe falta de padronização na indústria de software.
É difícil gerenciar o processo de desenvolvimento.
Quanto maior o sistema mais difícil é desenvolvê-lo.
Consequência da complexidade ilimitada:
Quanto mais complexo o sistema mais fácil ele entrará em colapso.
Sem gerenciar a complexidade os sistemas são: entregues com atraso, não atendem aos requisitos especificados e estouram o orçamento.
A estrutura de sistemas de complexos
A complexidade é organizada na forma de uma hierarquia: decompondo o sistema em subsistemas sucessivamente até se alcançar os componentes primitivos.
A escolha de quais componentes são primitivos é relativa e depende daquilo que o observador quer ver.
Os componentes de um mesmo nível de hierarquia têm uma relação forte, já os componentes de níveis diferentes da hierarquia tem uma relação fraca.
Sistemas hierárquicos são compostos por um número pequeno de diferentes subsistemas em várias combinações de arranjos, formando assim os padrões do sistema: isso significa que os padrões podem envolver a REUTILIZAÇÃO de certos componentes.
Um sistema complexo que funciona imperativamente é um aperfeiçoamento de um sistema simples que funcionava.
Sistemas complexos projetados do nada quase nunca funcionam.
A medida que um sistema complexo é aperfeiçoado, componentes complexos passam a ser vistos como primitivos, baseados nos quais sistemas mais complexos são construídos.