Software Flexibility

Get Started. It's Free
or sign up with your email address
Software Flexibility by Mind Map: Software Flexibility

1. Exemplos

1.1. COBOL

1.1.1. Orientada para negocios

1.1.1.1. Divisões

1.1.1.1.1. Eficiente na reestruturação

1.2. BCPL

1.2.1. Desenvolvido de maneira transparente

1.2.1.1. Foi movido para uma maquina de compilador ALGOL

1.2.1.1.1. Foi convertido e executado

2. Personalidades presentes

2.1. Ross

2.1.1. 1929 - 2007

2.1.2. Originou o termo CAD

2.1.3. Criou as APTs (Automatically Programmed Tools)

2.2. Warshall

2.2.1. 1935 - 2006

2.2.2. Focou na pesquisa das Linguagens de Programação (design das linguagens e design dos compiladores)

2.3. Bauer

2.3.1. 1924 - 2015

2.3.2. Membro do comitê que desenvolveu as linguagens imperativas ALGOL 58 e ALGOL 60

2.3.3. O primeiro a propor o método de avaliação de expressões por pilha

3. Portabilidade

3.1. Definição das áreas de discussão

3.1.1. Portability e adaptability: Responsividade e escalabilidade

3.1.2. Sistema e ambiente: uma hierarquia linear

3.2. Descrição das ténicas em questão

3.2.1. Suporte a linguagem de alto nível.

3.2.2. Bootstrapping do sistema antigo.

3.3. Design para Portabilidade

3.3.1. Propriedades de Perlis

3.3.2. Definição e caracterização de bloco

3.3.3. Operações através de blocos

3.3.3.1. Processo sequêncial na memória

3.3.4. Máquina sequencial

3.4. Escrevendo Softwares Portáteis

3.4.1. Reeducação de Ross

3.4.2. Problema da Máquina proposto por Lampson

3.4.3. Padrões de Strachey

3.5. Problemas na Portabilidade de acordo com Fieldman

3.5.1. Diferença de Ambientes

3.5.1.1. Problema de Stan Brown na parametrização de seu sistema

3.5.2. Complexidade dos dados

3.5.2.1. Grande numero de arquivos demandam mais tempo de reestruturação

3.5.3. Diferença nos disposivitivos periféricos e armazenamento em fita

3.6. Diminuição de problemas de portabilidade

3.6.1. Programa ser escrito de uma maneira fácil de ser reestruturado

3.6.2. A flexibilidade com que é desenvolvido, garante eficiencia caso o suporte nao seja de qualidade.

4. Adaptabilidade

4.1. Definição de Warshall: se refere à capacidade de um software funcionar em dois ambientes (ou máquinas) completamente dissimilares

4.1.1. Exemplo do Armazenamento Secundário distinto

4.1.1.1. Fitas versus Outros Tipos

4.1.2. Solução possível: software intermediário

4.1.2.1. Solução usada atualmente por empresas como ABInBev

4.1.3. Exemplo do FORTRAN

4.1.3.1. Solução: "compilador intermediário"

4.2. Definição de Bauer: adaptabilidade significa a modificação de programas para relacioná-los com usuários específicos

4.2.1. Problema da SABRE

4.2.1.1. Solução possível: aumentar a capacidade de hardware

5. Eficiência da portabilidade na prática

5.1. Brown: Mudança radical de hardware pode tornar algoritmos obsoletos

5.1.1. Exemplo da adoção de multi-processamento paralelo de alto-nível

5.1.1.1. Com algoritmos obsoletos, o novo hardware se torna ineficiente

5.2. Feldman: Problema da complexidade dos compiladores

5.2.1. Adicionar funcionalidades eficientes à uma linguagem requer mudanças complexas em seus compiladores

5.2.1.1. Soluções

5.2.1.1.1. Compiladores facilmente modificáveis

5.2.1.1.2. Compiladores extensíveis

6. Transferência de conhecimento

6.1. Ross: Problema da complexidade dos sistemas

6.1.1. Sistemas complexos não são facilmente portáveis

6.1.1.1. Brown: Buscar soluções deste problema através das documentações e softwares de suporte à sistemas

6.2. Buxton: Dilema Usuários x Designers

6.2.1. Usuários buscam portabilidade de software

6.2.2. Muitos grandes produtores de software não prezam pela portabilidade, visando criar nichos de clientes e isolá-los dos competidores

6.2.2.1. Designers de softwares comerciais que são consumidos pelo usuário médio, então, desenharão sistemas não-portáveis

6.2.2.2. Podem se interessar por portabilidade, mas tendo exclusivamente como alvo as máquinas e softwares do produtor

6.2.2.2.1. Apple, IBM

6.2.3. Softwares com portabilidade são criados em sua maioria em ambientes acadêmicos por designers que também são usuários

6.2.3.1. Pouco aplicado comecialmente