Ciclo de desenvolvimento de software

O ciclo de desenvolvimento de software consiste de todos os passos/estágios do software desde sua concepção até sua implantação. Existem vários tipos de modelos de ciclos de desenvolvimento de software(Agile, Waterfall, etc) e você escolher qualquer um desses tipos de acordo com a sua necessidade.

Abaixo segue algumas fases que são comuns a todos os tipos de modelos. Vamos ver uma visão geral de cada um deles antes de nos aprofundarmos no assunto:
Levantamento e análise de requisitos: essa é a primeira fase de qualquer modelo de ciclo de desenvolvimento de software. Essa fase é basicamente a fase de brainstorming e frequentemente consiste de sub-estágios como a Análise de viabilidade para verificar o quanto da idéia inicial pode ser posta em prática.
Se um software em particular precisa ser modificado, o problema inerente a esse software é resolvido junto com a procura de maneiras para resolvê-lo. Se um novo software irá ser desenvolvido, então cada minuto gasto com o projeto é com essa busca. Isso implica que esse estágio envolverá o máximo de pesquisa e entradas tanto da companhia que está desenvolvendo o sistema quanto do cliente.
Análise do sistema: Essa é a segunda fase do ciclo de desenvolvimento de software, onde todo o sistema é definido em detalhes. De fato, é nesse estágio onde uma planta detalhada dos vários processos do software é desenvolvida. Se necessário, o sistema pode ser dividido em partes menores de forma a tornar mais fácil seu gerenciamento pelos desenvolvedores, projetistas, testadores, gerentes de projeto e outros profissionais que irão trabalhar no projeto nas fases seguintes.
Codificação: Como o nome indica, nesse estágio o software é codificado com precisão. Um time de programadores é designada pela empresa para trabalhar no software. Com bastante frequência, o trabalho é subdividido em uma sub-fase chamada Alocação de tarefas, onde cada desenvolvedor recebe uma parte do trabalho dependendo de suas habilidades. Isso ajuda a que a codificação seja completa de maneira eficiente.
Teste: Quando o software esta pronto, é enviado para o departamento de teste onde Analistas de qualidade testam ele cuidadosamente por diferentes erros através da formação de vários casos de teste. Eles ou testam o software manualmente ou usam ferramentas automatizadas para teste e garantem que cada componente do software funcione bem. Uma vez que o controle de qualidade ateste que o software esteja livre de erros, ele vai para a próxima fase, que é a implantação.
Implantação (Implementação): Essa é a fase final do ciclo de desenvolvimento de software. Nessa fase, o software é executado pelos usuários em vários sistemas. Se ele é executado de forma satisfatória sem nenhuma falha, então é considerado pronto para ser lançado.

Levantamento e análise de requisitos

Nesse estágio, você precisa coletar dados no cliente necessários para desenvolver o software. Você precisa identificar as entradas necessárias, como essas entradas são trabalhadas pelo cliente, e o resultado desejado.
As “entradas” normalmente são os serviços que são solicitados ao cliente por seus consumidores, como por exemplo qual filme será alugado em uma locadora de vídeo. Essa entrada deve receber algum tratamento pelo agente, como por exemplo o cadastro de uma nova locação. Finalmente, espera-se algum resultado de cada ação tomada pelo sistema; no exemplo dado, seria a emissão de um recibo da locação para obtenção da assinatura do locatário.

Análise de sistema

Nessa fase, deve-se transformar todos os dados obtidos na fase de levantamento de requisitos em diagramas que serão a base para codificação do sistema. Esses diagramas são normalmente implementados usando a linguagem de modelagem UML, e na ordem a seguir:
1 – Diagrama de Caso de Uso: Este diagrama é o ponto de partida da análise de sistema. Aqui, é descrito os agentes que atuarão no sistema (Funcionários, Clientes, Administradores, etc) e as ações executadas por cada um desses agentes;
2 – Diagrama de Classe: Aqui, partindo-se dos casos de uso descrito anteriormente, são descritas entidades (classes) que atuam como modelos para os objetos que irão implementar na prática as atividades do sistema. Essas atividades e as relações entre as classes são descritas nos diagramas de comunicação, sequência e estados;
3 – Diagrama de Sequência: Neste diagrama, descreve-se a sequência de ações necessárias para se sair de um determinado estado do sistema para outro (interações entre objetos) em ordem cronológica; a partir desse diagrama, pode-se determinar boa parte dos métodos das classes descritas no diagrama anterior;
4 – Diagrama de Comunicação (ou Colaboração): De forma similar ao diagrama de sequência, descreve as interações entre objetos, mas aqui com enfase no contexto do sistema. O diagrama de colaboração é desenhado como um diagrama de objeto, onde os diversos objetos são mostrados juntamente com seus relacionamentos. O Diagrama de Colaboração dá ênfase à ordenação estrutural em que as mensagens são trocadas entre os objetos de um sistema.
5 – Diagrama de Estado: esse diagrama é uma representação do estado ou situação em que um objeto pode se encontrar no decorrer da execução de processos de um sistema. Com isso, o objeto pode passar de um estado inicial para um estado final através de uma transição.

Codificação

Nessa fase, os diagramas gerados na fase anterior são passados para o Programador que irá transformá-los em código de uma linguagem de programação qualquer. Normalmente, as pessoas envolvidas nesse processo são divididos em dois grupos, um responsável pela implementação da interface gráfica e outro pela implementação da lógica da aplicação. Além disso, boa tarde da estrutura básica da aplicação pode ser exportada diretamente dos diagramas em código, dependendo das ferramentas que estiverem sendo usadas pela equipe.

Testes

Nessa fase é gerada um protótipo do sistema, que é então testada por uma amostra de usuários do sistema (selecionados pelo cliente). Eles entrarão com dados reais e analisarão os resultados, de modo a validar a saída do sistema e identificar possíveis erros que devem ser corrigidos.

Implantação (ou Implementação)

Após a fase de testes, onde deve-se concluí-las quando os usuários não identificarem mais nenhum erro no sistema, o sistema está pronto para ser implantado nos equipamentos do cliente e colocado em execução para todos os usuários do cliente.

Conclusão

Agora que você conhece o básico do ciclo de desenvolvimento de software, isso ajudará você a desenvolver software com o máximo de perfeição em um futuro próximo. Para mais detalhes, você pode pesquisar pelos vários modelos de ciclo e encontrar um que se adeque melhor às suas necessidades. Qualquer dúvida ou sugestão de correção é só publicar sua mensagem na seção se comentários a seguir.