Você está na página 1de 12

1

PROCESSO DE SOFTWARE

Conceito:
1. um conjunto de atividades ou sequncias ou tarefas estruturadas relacionadas que
produzem um servio ou produto especifico para seus clientes;
2. um conjunto de atividades ou sequncia coerente de prticas que leva ao
desenvolvimento ou evoluo do produto software. (Aqui, verifica os passos, em quais
caminhos devemos percorrer para no final ter um produto software com qualidade);
3. Segundo Falbo (2005): um processo de software pode ser visto como o conjunto de
atividades, mtodos, prticas e transformaes que guiam pessoas na produo de
software. Um processo eficaz deve, claramente, considerar as relaes entre as
atividades, os artefatos produzidos no desenvolvimento, as ferramentas e os
procedimentos necessrios e a habilidade, o treinamento e a motivao do pessoal
envolvido.
4. Segundo Pressman (2006): um processo de desenvolvimento de software um
arcabouo (traado inicial de algo esboo) para as tarefas necessrias para a
construo de um software de qualidade;
5. Um processo de software define uma abordagem que adotada quando o software
elaborado;
6. Modo de fazer alguma coisa; mtodo, maneira, procedimento;
7. Processos so atividades previamente estabelecidas cujo objetivo determinar como o
trabalho ser realizado em uma organizao;
8. um guia de como um produto software deve ser constitudo, do incio ao fim. A
ligao est no fato que esse guia depende do modelo de ciclo de vida utilizado.
9. Resumindo: so passos que devem ser seguidos para o desenvolvimento de um
determinado sistema de software.
10.Um processo de software pode ser visto como o conjunto de atividades, mtodos,
prticas e transformaes que guiam pessoas na produo de software. (Um processo
eficaz deve, claramente, considerar as relaes entre as atividades, os artefatos
produzidos no desenvolvimento, as ferramentas e os procedimentos necessrios e a
habilidades, o treinamento e a motivao do pessoal envolvido.).

2
ELEMENTOS QUE COMPEM UM PROCESSO DE SOFTWARE
Processo de Software
Processos
Atividades
Pr-atividades
Sub-atividades
Artefatos
Insumos
Produtos
Recursos
Recursos Humanos
Ferramentas de Software
Hardware
Procedimentos
Mtodos
Tcnicas
Roteiros.
NOTA

PROCESSO: conjunto de passos e instrues para executar determinadas atividades;


DESENVOLVIMENTO: criao ou manuteno de um produto ou servio;
SOFTWARE: conjunto de cdigo fonte e documentao.

3
O significado do processo de software determinar, documentar de forma precisa e
detalhada:

O que feito (produto);


Quando feito (passos);
Por quem feito (agente);
O que usa como entrada (insumo);
O que produzido (resultado).

Obs.: NO DIZ COMO FAZER!

O que define?

Define QUAIS ATIVIDADES devem ser realizadas dentro de uma produo de sistema;
Define as PESSOAS ENVOLVIDAS. (Quem so as pessoas);
Define as TAREFAS (obras ou poro de trabalho que se deve acabar num determinado
prazo) a serem gerados.

Quais so as caractersticas?
caracterizado por meio de um conjunto de atividades bem definidas e documentadas que
quando aplicadas, sistematicamente, garantem certo grau de qualidade na confeco do
produto. Alm do conjunto de atividades, o processo possui outros atributos como: MATERIA
PRIMA, MO DE OBRA e RECURSOS. Tais atributos so considerados os insumos do processo
de produo.

PROCESSO DE DESENVOLVIMENTO

Existem vrios processos de desenvolvimento de software, porm algumas atividades/passos


fundamentais so comuns a todos eles:

ESPECIFICAO: define a funcionalidade do software (requisitos funcionais) e as restries


(requisitos no-funcionais) sobre sua operao e premissas (lgica) para a sua execuo;

ENGENHARIA DE SISTEMA: estabelecimento de uma soluo geral para o problema,


envolvendo questes extra software.
ANLISE DE REQUISITOS: levantamento das necessidades do software a ser
implementado. A Anlise tem como objetivo produzir uma especificao de requisitos,
que convencionalmente um documento.
ESPECIFICAO DE SISTEMA: descrio funcional do sistema. Pode incluir um plano de
testes para verificar adequao.

4
PROJETO: o software que atenda a especificao deve ser produzido;

PROJETO ARQUITETURAL: onde desenvolvido um modelo conceitual para o sistema,


composto de mdulos mais ou menos independentes.
PROJETO DE INTERFACE: onde cada mdulo tem sua interface de comunicao
estudada e definida.
PROJETO DETALHADO: onde os mdulos em si so definidos, e possivelmente
traduzidos para pseudocdigo.

IMPLEMENTAO: o software que atenda a especificao deve ser produzido;

CODIFICAO: a implementao em si do sistema em uma linguagem de computador.

VALIDAO DE SOFTWARE: o software deve ser validado para garantir que ela faa o que o
cliente deseja;

TESTE DE UNIDADE E MDULO: a realizao de testes para verificar a presena de


erros e comportamento adequado a nvel das funes e mdulos bsicos do sistema.
INTEGRAO: a reunio dos diferentes mdulos em um produto de software
homogneo, e a verificao da interao entre estes quando operando em conjunto.

MANUTENO E EVOLUO: o software deve evoluir para atender aos novos requisitos que
naturalmente surgiro.

Nesta fase, o software em geral entra em um ciclo iterativo que abrange todas as fases
anteriores.

Desta forma as atividades relacionadas a um processo de software esto diretamente


vinculadas com a produo do software como produto final. Afim de especificar quais
atividades devem ser executadas e em qual ordem temos diversos modelos de
desenvolvimento de software.

PASSOS / ATIVIDADES DO PROCESSO


Quais so?

1. Planejamento / Anlise econmico;


2. Anlise e especificao de requisitos / Anlise de requisitos de software;
3. Especificao;
4. Projeto;
5. Implementao (ou Codificao);
6. Testes;
7. Documentao;
8. Suporte e treinamento de software / Entrega e implantao;
9. Operao;
10.Manuteno.
PLANEJAMENTO / ANLISE ECONMICA:
O objetivo desta atividade fornecer uma estrutura que possibilita ao gerente fazer
estimativas azoveis de recursos, custos e prazos.
A medida que o projeto progride, o planejamento deve ser detalhado e atualizado
regularmente.

5
O planejamento o acompanhamento do progresso fazem parte do processo de GERNCIA
DE PROJETO.
Este processo acompanha todas as demais etapas de desenvolvimento do software, sendo
sempre acompanhada de perto.
Visa a estabelecer se o projeto de software gerar lucro, e se a receita gerada ser o
suficiente para cobrir os custos.
ANLISE E ESPEFICICAO DE REQUISITOS / ANLISE DE REQUISITOS DE SOFTWARE:
Nesta atividade, o processo de levantamento de requisitos intensificado. O escopo deve ser
refinado e os requisitos melhor definidos.
Uma vez capturados os requisitos do sistema a ser desenvolvido, estes devem ser modelados,
avaliados e documentados. Uma parte vital dessa atividade a construo de um modelo
descrevendo o que o software tem que fazer (e no como faz-lo).
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.
ANALISE DE REQUISITOS: determina se o estado do requisito 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:
a tarefa de descrever precisamente o software que ser escrito, preferencialmente de uma
forma matematicamente rigorosa. Na prtica, somente especificaes mais bem sucedidas
foram escritas para aplicaes bem compreendidas e afinadas que j estavam bem
desenvolvidas, embora sistemas de software de misso crtica sejam frequentemente bem
especificadas antes do desenvolvimento da aplicao. Especificaes so mais importantes
para interfaces externas que devem permanecer estveis.
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.

PROJETO:
A arquitetura de um sistema 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.
Esta atividade responsvel por incorporar requisitos tecnolgicos aos requisitos essenciais do sistema,
modelados na atividade anterior e, portanto, requerer que a plataforma de implementao seja conhecida. Esta
atividade envolve basicamente duas grandes etapas:
Projeto da arquitetura do sistema e projeto detalhado:

O objetivo da etapa de projeto da arquitetura do sistema definir a arquitetura geral do software, tendo
por base o modelo construdo na fase de anlise de requisitos. Essa arquitetura deve descrever a
estrutura de nvel mais alto da aplicao e identificar seus princpios componentes. Arquitetura de
software: a arquitetura de um sistema 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.
J o objetivo da etapa de projeto detalhado detalhar o projeto do software para cada componente
identificado na etapa anterior. Os componentes de software devem ser sucessivamente refinados em
nveis maiores de detalhamento, at que possam ser codificados e testados. A etapa da arquitetura
tambm direciona as tarefas entre os sistemas de software e outros produtos de software, como
tambm com o hardware bsico ou com o sistema operacional.

IMPLEMENTAO (OU CODIFICAO):


Nesta atividade o projeto deve ser traduzido para uma forma passvel de execuo pela
mquina. A atividade de implementao realiza essa tarefa, isto , cada unidade de software
do projeto detalhado implementada.
A transformao de um projeto para um cdigo deve ser a parte mais evidente do trabalho da engenharia de
software, mas no necessariamente a sua maior poro.

TESTES:
Teste de partes do software, especialmente onde tenha sido codificado por dois ou mais engenheiros
trabalhando juntos, um papel da engenharia de software. Diversas atividades de testes so executadas a fim
de se validar o produto de software, testando cada funcionalidade de cada mdulo, buscando, levando em
considerao a especificao feita na fase de projeto. Onde o principal resultado o relatrio de testes, que
contm as informaes relevantes sobre erros encontrados no sistema, e seu comportamento em vrios
aspectos.
Essa atividade inclui diversos nveis de testes, a saber, teste de unidade, teste de integrao, teste de sistema,
teste de aceitao e teste de operao. Inicialmente, cada unidade de software implementada deve ser testada
e os resultados documentados. A seguir, os diversos componentes devem ser integrados sucessivamente at
se obter o sistema. Finalmente, o sistema como um todo deve ser testado.

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 / INTREGA E IMPLANTAO:


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.
Uma vez testado, o software deve ser colocado em produo. Para que isso acontea, contudo, necessrio
treinar os usurios, configurar o ambiente de produo e, muitas vezes, converter bases de dados. O propsito
desta atividade estabelecer que o software satisfaa os requisitos dos usurios. Isso feito instalando o
software no ambiente do usurio e conduzindo testes de aceitao. Quando o software tiver demonstrado
prover as capacidades requeridas, ele pode ser aceito e a operao (prxima etapa) iniciada.

OPERAO:

7
Nesta atividade o software utilizado pelos usurios no ambiente de produo.

MANUTENO:
Sem dvida, o software sofrera mudanas aps ter sido entregue para o usurio. Alteraes ocorrero por
diversos motivos: porque erros forma encontrados, porque o software precisa ser adaptado para acomodar
mudanas em seu ambiente externo ou porque o cliente necessita de funcionalidade adicional ou aumento de
desempenho.
A manuteno e melhoria de software lidam com a descoberta de novos problemas e requisitos. Ela pode tomar
mais tempo que os gastos no desenvolvimento inicial do mesmo. No somente pode ser necessrio adicionar
cdigos que combinem com o projeto original, mas determinar como o software trabalhar em algum ponto
depois da manuteno estar completa, pode requerer um significativo esforo por parte de um engenheiro de
software. Cerca de 2/3 de todos os engenheiros de software trabalham com a manuteno, mas estas
estatsticas podem estar enganadas. Uma pequena parte destes trabalha na correo de erros. A maioria das
manutenes para ampliar os sistemas para novas funcionalidades, as quais, de diversas formas, podem ser
consideradas um novo trabalho. Analogamente, cerca de 2/3 de todos os engenheiros civis, arquitetos e
construtores trabalham com manuteno de uma forma similar.

PROCESSO DE META-MODELOS

O processo de desenvolvimento de software tem sido objeto de vrios padres, que visam a certificao de
empresas como possuidoras de um processo de desenvolvimento, o que garantiria certo grau de confiana aos
seus contratantes.

Alguns padres existentes atualmente:


ISSO / IEC 12207;
CMMI Modelo de Maturidade em Capacitao Integrao (anteriormente CMM);
ISO 9000;
ISO / ICE 15504 (anteriormente SPICE);
MR-MPS;
IBM Rational Unified Process.

ATIVIDADE DE APOIO

Acompanhamento e controle do projeto de software;


1.
2.
3.
4.
5.
6.
7.

Gesto de risco;
Garantia da qualidade;
Revises tcnicas formais;
Medio;
Gesto de configurao de software;
Gesto de reusabilidade;
Preparao e produo do produto de trabalho.

OBJETIVOS

8
Processos de software visam assegurar o desenvolvimento de software:

Com prazos e necessidades de recursos definidos;


Com elevada produtividade (de forma econmica);
Com qualidade assegurada.

Processos permitem:

Organizar;
Instrumentar;
Planejar;
Acompanhar projetos;
Treinar equipes.

COMPONENTES DO PROCESSOS

CONCEITOS BSICOS
ARTEFATO:
um resultado de uma atividade, exemplo:

Documento revisto e aceito, builds;


Mdulo implementado, testado e aceito;
Construto integrado, testado e aceito;
Framework documentado, implementado, testado e aceito;
Quando entregue ao usurio (cliente) o artefato um produto;
um modelo, documento ou cdigo produzido por uma atividade.

Em um mtodo, as disciplinas e papis produzem e consomem artefatos;


Um processo define quem produz e consome os artefatos e quando eles sero produzidos (marcos)

INSUMO:
Elemento necessrio para a realizao de uma tarefa ou atividade;
Pode ser um elemento de sada de outras atividades ou tarefas.
INCREMENTOS, BUILDS E RELEASES
Um incremento um componente de software compilado, utilizado na composio de builds.
Um build um artefato parciais de software composto por incrementos.
Uma release um build entregue ao cliente com executveis (bin), bibliotecas (lib), manuais, etc.

MARCOS (MILESTONES)
Um marco (milestone) um ponto final de uma atividade de processo.
Um processo deve estabelecer uma srie de marcos.
Marcos principais delimitam fases.
Marcos intermedirios permitem avaliar o progresso do processo de software.

10

TAREFA (PRODUTO DO TRABALHO):


uma ao desempenhada por alguma pessoa visando a realizao ou monitoramento do projeto.
No representa uma evidncia de progresso no desenvolvimento.
Ter trabalhado 20 horas no implica ter produzido um artefato de qualidade, mesmo que se tenha estimado
serem necessrios 20 horas para o seu desenvolvimento.
Consome recursos consumo real:
Esforo (tempo de pessoa);
Equipamento;
Financeiro.
ATIVIDADE (TAREFAS/DISCIPLINAS):
Conceitos:
Conjunto de tarefas que levam um ou mais artefatos de qualidade controlada.
Atividades devem gerar um artefato de sada, que possa ser verificado, e podem requisitar um artefato de
entrada.
Representa uma evidncia de progresso no desenvolvimento.
Os artefatos resultantes existem e podem ser usados.
Permitem o controle da qualidade do resultado.
Num extremo pode ser a mera constatao que o resultado existe.
No outro extremo pode envolver tcnicos muito avanados de controle da qualidade.
O esforo medido atravs das tarefas constituintes.
Atividades so mini-projetos:
Possuem incio e fim definidos;
Consomem um volume finito de recursos;

Produzem artefatos definidos;


Possuem artefatos definidos;
Possuem critrios de concluso estabelecidos.

Em um mtodo, as atividades ou tarefas a serem realizadas so as disciplinas.


Em um processo, as atividades devem ser alocadas aos papis...
... e deve ser determinado o fluxo de trabalho, a rede de dependncia e os marcos.

11

FERRAMENTAS E EQUIPAMENTOS:

Auxiliam a execuo das atividades e tarefas dos processos;


Podem automatizar partes da execuo das atividades e tarefas;
Agilizam a execuo dos processos.

DIAGRAMA DE GANTT

Determina a linha de tempo na qual as atividades sero executadas.


Deve refletir os marcos e as dependncias.

12
PAPEL (TRABALHADOR):

Descreve como as pessoas se comportam no processo e quais so as responsabilidades que elas tm;
Requer habilidades especificas necessrias;
Papis no so pessoas: (pessoas executam papis.)
Os papis podem variar de um processo para outro;
Na elaborao de um processo, deve-se definir quais pessoas desempenham papis.
Na definio de um mtodo, deve-se definir quais so os papis.

EXEMPLO DE ATIVIDADES RELACIONADAS A PAPEL