5.4. Os Passos do Processo

Há dois ciclos de passos para AWA: o primeiro diz respeito ao projeto de software como um todo, enquanto o segundo orientará cada ciclo de implementação.

Ciclo geral:

# *Descrição Breve* - o projeto deve começar com uma descrição breve do projeto. Definindo uma categoria de projeto à qual pertença. Constitui o primeiro artefato. Há que se considerar que o projeto deve existir para resolver um problema específico, visto que segue a filosofia KISS;
* *To Do List* - uma vez definido o conceito do projeto, deve-se começar a montar uma lista de tarefas a fazer. Esta lista funcionará, em parte, como um roadmap, ou lista de recursos pretendidos. É o segundo artefato a ser produzido;
* *Código Base* - antes de iniciar uma nova implementação, convém buscar por um código-fonte básico para o seu projeto. Repositórios de projetos como o [[http://www.codigolivre.org.br | Código Livre]] e catálogos como o [[http://www.freshmeat.net | Freshmeat]] devem ser consultados. Ao final deve ser feito um documento informal Outros Projetos que descreva projetos existentes para o mesmo fim e projetos que serão usados na construção da nova aplicação. Em termos de importância, deve-se procurar por:
## Um projeto que lhe atenda perfeitamente - caso encontre, use-o. Se preciso, adapte-o para que se torne uma aplicação web atômica;
## Um projeto que lhe atenda quase perfeitamente - analise a complexidade de modificá-lo para que o atenda totalmente. Caso seja viável, parta deste projeto gerando contribuição, caso as mudanças sejam interessantes também para os usuários atuais do projeto, de acordo com julgamento de seu mantenedor; ou criando um fork (um projeto derivado);
## Um (ou mais) projeto de biblioteca simples que lhe seja útil e poupe boa parte do trabalho.
# *Preparação* – defina em uma lista os pré-requisitos que a sua ferramenta terá. Este será outro artefato. Se já decidiu usar alguma ferramenta adicional (controle de versões, por exemplo), trate de providenciar uma instalação que possa utilizar.
# *Padrão de URL do Sistema* - defina a estratégia de acesso a funcionalidades da aplicação via URL (como /edit/1 ou /list). A regra deve apresentar uma lista com as opções possíveis. Deve-se usar formas de representar uma variável sempre que necessário (por exemplo, para editar com base no ID deve-se montar uma URL como "edit/$id"). O artefato produzido será a lista de regras de URL que a aplicação deverá seguir;
# *Projeto do Banco de Dados* - o banco de dados deve ser definido seguindo as regras AWA para garantir atomicidade. Deve-se usar SQL, comandos para criar tabelas e populá-las com os dados iniciais necessários. Dependendo da complexidade do banco, convém separar em dois artefatos: a criação e a população. Utilizem-se comentários SQL no artefato de criação para explicar detalhes e conceitos usados no banco que não estejam suficientemente explícitos no SQL;
# *Implementação Mínima* - nesta fase é feita a implementação da arquitetura do sistema, o código-fonte básico e central da aplicação, que deve ser feito conforme as diretrizes de AWA. Como artefatos para documentação, deve-se escrever:
## _Definição de arquitetura_ - um texto informal explicando como está constituída a arquitetura da aplicação;
## _Changelog_ - um registro de mudanças na aplicação deve ser iniciado. Ele manterá data, hora, autor e descrição de cada mudança relevante que seja feita no código-fonte;
# *Implementação de Recurso* - para cada ítem constante na To Do List, deve ser cumprido este passo, que consiste em implementar o recurso na aplicação. Ao final do processo, o ítem deixará a To Do List para fazer parte do artefato Feature List. Deve-se criar uma etiqueta no Sistema de Controle de Versões quando o novo recurso estiver totalmente implementado. Também deve ser modificado o Changelog, acrescentando-se uma nova entrada;
# *Modularização* - para cada CMS desejado, deve-se criar um arquivo de módulo segundo as regras apropriadas para tal CMS, configurando os valores de configuração para que a aplicação seja devidamente integrada;
# Guia de Instalação - deve ser feito um guia simples de instalação, conduzindo o passo-a-passo para que outros possam facilmente instalar e usar o sistema na forma de aplicação autônoma ou na forma de módulo para os CMSs para os quais já foi feita a adaptação.

Os passos de *1* a *7* são fixos e únicos. Eventualmente, pode ser necessário voltar a um deles, e tal pode ser sempre permitido, mas quando tal acontecer certamente será em caráter de revisão e não de execução completa das atividades.

Os passos *8*, *9* e *10* são parcialmente independentes, sendo que *8* e *9* podem ocorrer várias vezes. De maneira geral, na maioria das ocasiões fará mais sentido seguir o passo *8* ao menos uma vez antes de ir para o *9*. Convém, porém, executar a fase *10* tão logo se tenha uma aplicação minimamente utilizável. A Figura 5.6 retrata o fluxo das atividades de AWA, relacionando-as aos artefatos gerados.

p=. !http://cyaneus.net/files/3processo.png!:http://cyaneus.net/files/processo.png

p=. Figura 5.6: Atividades e artefatos em AWA
Fonte: Elaborada pelo autor.

-- Cárlisson Galdino