Please enable JavaScript.
Coggle requires JavaScript to display documents.
Flexibilidade de Software (Personalidades (Edsger Dijkstra (1930 - 2002,…
Flexibilidade de Software
Portabilidade
Ambiente
Sistema
Camada externa
Voltada para o usuário
Camada interna
Maleabilidade do código
Permite ao programado fazer ajustes (tuning)
Melhor performance
Performance esta ligado ao hardware
Permite o sistema rodar, mesmo que de maneira ineficiente
Suporte
Linguagem (alto nível)
Interface (ponte) entre sistemas
Bootstraping
Código base usado para carregar o resto do sistema
Half-Bootstraping
Código para a máquina nova é gerado na maquina antiga
Compilador expansível
Facilitar a transição da linguagem
Diferentes especificações
Exemplos
Formato de dados
Diferentes linguagens usam diferentes especificações
Sistema de entrada e saída (I/O)
Formato de memória
Possível reformulação do sistema (backtracking)
Novas tecnologias
Como prever mudanças que ainda não ocorreram?
Tamanho de palavras de memória
Número de núcleos do processador
Número de registradores
Podem ser padronizadas
Exige adequação
Design
Caracterização de blocos
Coupling (acoplamento)
Regras de Parametrização
Acoplamento fraco
Gathering (agrupamento)
Blocos mais intensamente acoplados
Devem ser identificados
Como fazer?
Todo Output pode ser um Input
Fechamento
Sistema
Família de programas relacionados
Componentes
Estrutura compartilhada
Adaptabilidade
Sistema
Adequações
Necessidades do usuário
Personalidades
Edsger Dijkstra
1930 - 2002
Ensaios sobre programação, incluindo "Go To Statement Considered Harmful"
Cientista da computação
Algoritmo para o problema do caminho mínimo
Sistema operacional THE
Linguagens de programação
Processamento distribuído
Butler Lampson
1943 - presente
Cientista da computação
Xerox Alto, primeiro computador pessoal
Sistema do SDS 940, primeira máquina a suportar time-sharing
John Reynolds
1935 - 2013
Linguagens de programação
Cálculo lambda de segunda ordem
Cientista da computação