You are on page 1of 7

Como Funciona o Processo de Desenvolvimento de Software

15:23 desenvolvimento, engenharia, software No comments


O Processo de Desenvolvimento de um Software
Nesse post vamos entender como funciona o processo de desenvolvimento de
software de uma forma simples e sem metodologias nem modelos. O processo
de desenvolvimento de um software um conjunto de finalidades e atividades
que visam a criao de um software bem estruturado e de qualidade, para um
boa manuteno e reaproveitamento do software.
No processo de Desenvolvimento de Software, existem vrios passos ou
processos para se criar um software, seguindo modelos de desenvolvimento,
so eles:

- Anlise Econmica
Visa a estabelecer se o projeto de Software gerar lucro, e se a receita gerada
ser o suficiente para cobrir os custos. Este processo acompanha todas as
demais etapas de desenvolvimento do Software, sendo sempre acompanhada
de perto.
- Anlise de requisitos de software
A extrao dos requisitos de um desejado produto de software a primeira
tarefa na sua criao. a obteno das informaes necessrias para o
desenvolvimento.
Conceitualmente, a anlise de requisitos inclui trs tipos de atividades:

Elicitao dos requisitos: a tarefa de comunicar-se com os usurios e


clientes para determinar quais so os requisitos de sistema.
Anlise de requisitos: determina se o estado do requisitos obscuro,
incompleto, ambguo, ou contraditrio e resolve estes problemas.
Registros dos requisitos: os requisitos podem ser documentados de
vrias formas, tais como documentos de linguagem natural, casos de
uso, ou processo de especificao.
- Especificao
Uma especificao de programa a definio do que se espera que um
programa de computador faa. Ela pode ser informal, neste caso ela pode ser
considerada como um blueprint ou manual de usurio do ponto de vista do
desenvolvedor, ou formal, no caso de ela ser definida principalmente em
termos matemticos ou programticos.
- Arquitetura de Software
Remete a uma representao abstrata daquele sistema. Arquitetura
concernente garantia de que o sistema de software ir ao encontro de
requisitos do produto, como tambm assegurar que futuros requisitos possam
ser atendidos. A etapa da arquitetura tambm direciona as interfaces entre os
sistemas de software e outros produtos de software, como tambm com o
hardware bsico ou com o sistema operacional.
- Implementao/Codificao
a transformao da sua especificao para o cdigo fonte executvel do seu
projeto.
- Teste
A etapa de teste deve ser a mais intensiva pssivel, afim de eliminar qualquer
vestigio de erro de implementao ou de especificao, precisa tomar um
grande foco nessa hora de testes porque vai ser comum aparecer muitos
"bugs" e eles vo precisar ser reparados para um bom funcionamento do
software.
- Documentao
Uma importante tarefa a documentao do projeto interno do software para
propsitos de futuras manutenes e aprimoramentos. As documentaes mais
importantes so das interfaces externas.
- Suporte e Treinamento de Software
Uma grande porcentagem dos projetos de software falham pelo fato de o
desenvolvedor no perceber que no importa quanto tempo a equipe de
planejamento e desenvolvimento ir gastar na criao do software se ningum
da organizao ir us-lo. As pessoas ocasionalmente resistem mudana e
evitam aventurar-se em reas pouco familiares. Ento, como parte da fase de
desenvolvimento, muito importante o treinamento para os usurios de
software mais entusiasmados, alternando o treinamento entre usurios neutros
e usurios favorveis ao software. Usurios iro ter muitas questes e
problemas de software os quais conduziro para a prxima fase.
- Manuteno
A manuteno e a melhoria do software fazem parte da necessidade e de
descoberta do novos itens, necessidades ou erros no software.

Processo e Modelo
Este o processo para o desenvolvimento de um software, cumprir todas as
etapas independente da sua metologia de desenvolvimento acarretar em um
software de qualidade, as fases so relativamente simples se organizadas e
feitas em conjunto com uma equipe disposta a trabalhar em cima de cada
requisito do projeto, os princpios bsicos do processo de desenvolvimento
foram apresentados aqui nesse post, no post anterior eu falei sobre os
modelos, eu quis falar sobre os modelos primeiro, pra explicar como funciona
de uma forma geral o modelo pra ento sim poder mostrar como funciona de
uma forma integral o processo, mas no se esqueam, o processo diferente
do modelo, o processo a necessidade que todos os projetos tem para
comearem a ser desenvolvidos de forma completa e satisfatria, o modelo a
forma como voc vai escolher trabalhar em cima desses requisitos mostrados
acima, se da forma do modelo de Cascata ou Iterativo, isso j fica a sua
escolha, dependendo das suas necessidades e do seu projeto.

Outro________________

O Processo de Desenvolvimento de Software


Objetivos

Contextualizar Anlise e Projeto de software dentro de uma metodologia de


desenvolvimento (um processo de desenvolvimento de software)

Um processo de desenvolvimento de software

Uma linguagem de modelagem no suficiente


Precisamos tambm de um processo de desenvolvimento
o Linguagem de modelagem + processo de desenvolvimento = mtodo (ou
metodologia) de desenvolvimento
O que um processo de desenvolvimento?
o Define quem faz o que, quando e como, para atingir um certo alvo
Veremos os detalhes de processos concretos em outras disciplinas
o Aqui, s uma introduo
As grandes fases de qualquer processo de desenvolvimento
o Planejamento e elaborao
Planejamento, definio de requisitos, construo de prottipos
(opcional)
o Construo do sistema (inclui codificao e testes)
o Implantao (colocar em produo, treinar usurios, ...)

A Fase de Planejamento e Elaborao

1. Criar relatrio inicial de investigao (para construir o business case)


2. Levantar requisitos funcionais e no funcionais
3. Construir glossrio (ao longo da fase)
4. Definir modelo conceitual inicial (anlise inicial)
5. Projetar arquitetura
6. Priorizar a funcionalidade e distribu-la entre as iteraes

Detalhes sobre o levantamento de requisitos

Requisitos so "cortes" no espao de soluo


Entendimento do que o usurio quer
O resultado uma promessa para o cliente
No s requisitos funcionais, mas tambm:
o Facilidade de uso necessria
o Quem utilizar o produto
o Hardware e software alvo para o produto
o Qualidade/robustez
o Desempenho
o Segurana
o Compatibilidade com outros produtos/verses e necessidades de migrao
o Necessidades de internacionalizao do produto
o Suporte
o Preo da soluo
o Documentao necessria
o Uso de padres
o Aspectos legais
o Integrao com outros produtos
o Packaging
o etc.
No se fala "como" as coisas sero feitas
"Use cases" descrevem cenrios de funcionalidade desejada
o Tambm chamados de "User Stories", pois o usurio que decide o que deve
ser feito

Detalhes sobre a fase de Construo

Hoje, considerado errado ter um processo que gere um "big bang!"


o No se deve ter o software inteiro funcionando por inteiro no primeiro release
o O risco grande demais!
Um processo de desenvolvimento deve ser:
o Iterativo (ter vrias iteraes no tempo)
o Incremental (gerar novas verses incrementadas a cada release)
o Uma iterao dura entre 2 semanas e 2 meses
Motivos:
o Sempre tem algo para entregar para o cliente apressado (a ltima iterao)
o Os requisitos mudam com tempo e um processo iterativo mantm freqentes
contatos com o cliente o que ajuda a manter os requisitos sincronizados
o Altamente motivador para a equipe de desenvolvimento (e o cliente) ver o
software funcionando cedo
o Para evitar isso:
O que feito a cada iterao?
o Anlise (refinamento de requisitos, refinamento do modelo conceitual)
o Projeto (refinamento do projeto arquitetural, projeto de baixo nvel)
o Implementao (codificao e testes)
o Transio para produto (documentao, instalao, ...)
Detalhes sobre a anlise

A anlise gera um modelo para entender o domnio do problema


Anlise tambm trata em alto nvel de como uma soluo possvel pode ser montada
para atender aos requisitos
o Acaba gerando uma especificao, mas sempre do ponto de vista do usurio e
tratando apenas do domnio do problema
No trata de detalhes de implementao
Objetos tratados so sempre do domnio do problema (business objects)
Muitos diagramas UML podem ser usados
o O modelo para o cliente e no para o programador
Atividades tpicas durante a anlise

1. Refinar use cases


2. Refinar modelo conceitual
3. Refinar glossrio
4. Definir diagramas de seqncia (opcional)
5. Definir contratos de operao (opcional)
6. Definir diagramas de estado (opcional)

Detalhes sobre o projeto (design)

O projeto uma extenso do modelo de anlise visando sua implementao num


computador
Novos objetos aparecem, mas no so do domnio do problema
O resultado para o programador ver, no o cliente
Objetos da anlise so (geralmente) mantidos e so embutidos numa infra-estrutura
tcnica
o As classes tcnicas ajudam os business objects a:
Serem persistentes
Se comunicarem
Se apresentarem na interface do usurio
Terem desempenho aceitvel (usando caches ou threads, por
exemplo)
As atividades de projeto incluem:
o Fase de refinamento da arquitetura (high-level design)
Definio de pacotes (mdulos), interfaces entre pacotes
Deciso sobre uso/criao de bibliotecas e/ou componentes
Falaremos disso em detalhes adiante
o Fase de projeto detalhado (low-level design)
Atribuio de responsabilidades entre os objetos
Construo de diagramas de classes
Pode incluir documentao javadoc (ideal)
Construo de diagramas de interao (opcional)
Levantamento de necessidades de concorrncia
Consideraes de tratamento de falhas
Detalhamento do formato de sada (interface com usurio, relatrios,
transaes enviadas para outros sistemas, ...)
Definio do esquema do BD
Mapeamento de objetos para tabelas se o BD for relacional
o Advertncia: se voc usar Test-Driven Development, ento o design feito
bolando testes e escrevendo o software ao mesmo tempo
Neste caso, fazer diagramas ou Javadoc antes de codificar no
funciona

Detalhes sobre a implementao

Escrita do cdigo
Relativamente simples se o projeto tiver sido bem feito
Programadores devem normalmente seguir regras de codificao da empresa
Atividades incluem code reviews
No se deve chegar a esta fase cedo demais!
o Mais cedo voc agarra o teclado, mais vai demorar a terminar!
Poucos novos diagramas nesta fase

Detalhes sobre os testes

Inclui vrias fases de testes


Testes feitos pelo prprio programador durante a programao
o Unit test: teste de classes individuais (ou de grupos de classes relacionadas)
o Functional test: teste de funes inteiras (item de menu, p. ex.)
o Component test: teste de componentes inteiros (exe, dll, ...) sem (ou com
pouco) scaffolding
Testes feitos por equipes independentes de teste
o System test: testa a integrao entre todos os componentes do produto
o Alpha test: teste de produto inteiro dentro de casa
o Beta test: teste de produto inteiro fora de casa
Testes devem ser automatizados

You might also like