* Problema
* Esquisso + Modelos (algum método conhecido para ataque?)
* Algoritmo
http://en.wikipedia.org/wiki/
(há problemas que não podem ser resolvidos
por nenhum algoritmo; esperando que o que se tem de resolver
o possa, segue-se o seguinte)
* Linguagem (escolha?)
diferentes paradigmas e diferentes linguagens
http://en.wikipedia.org/wiki/
* Programação (escrever tudo ou recorrer a algumas "bibliotecas")
http://en.wikipedia.org/wiki/
tradução do algoritmo na linguagem,
por vezes requer detalhe de alguns passos que podiam estar
vagos)
* Compilação (dependendo do tipo de linguagem...)
Passagem do programa escrito por um outro programa
(ou sequência de programas) que o analisa, detecta
possíveis erros sintáticos (instruções que não
estão de acordo com a gramática da linguagem) e
alguns semânticos,
e, se tudo correr bem, o traduz numa linguagem
que pode ser executada pelo processador (ou
por uma máquina virtual, dependendo da linguagem
de partida) eventualmente
com alguma optimização do código
http://en.wikipedia.org/wiki/
(Nesta fase, quem escreveu o programa pode ter necessidade
de corrigir os erros
reportados e voltar a tentar compilar....)
* Execução
http://en.wikipedia.org/wiki/
Pode ou não requer introdução de dados
Pode levar a detectar outros erros
-- resultados inesperados, resultantes dalgum
erro lógico na implementação ou no algoritmo...)
-- não produção de qualquer resultado
* Pode ser necessário "apurar" o programa
-- melhorar aqui ou ali
-- melhorar partes significativas para tentar assegurar
escalabilidade (quando aumenta dimensão dos dados
o programa pode não conseguir determinar resposta
em tempo útil)
-- tempo (e espaço) gasto: complexidade do
método (ou do problema que se quer resolver)
http://en.wikipedia.org/wiki/
Realizar uma série de testes para tentar detectar erros
(em programas suficientemente pequenos, pode-se
tentar demonstrar formalmente a correcção do programa
mas, em geral, não é possível).
Dependendo do tipo de problema/projecto, o desenvolvimento do programa pode
envolver várias componentes (bem como integrar várias ferramentas e tecnologias).
http://en.wikipedia.org/wiki/
http://en.wikipedia.org/wiki/
Sem comentários:
Enviar um comentário