A maior rede de estudos do Brasil

Grátis
5 pág.
modelagem

Pré-visualização | Página 1 de 2

Prof. Edson dos Santos Cordeiro 1
Tópico: Modelagem de Processo de software 
Objetivo: Conhecer os principais conceitos à modelagem do processo de software. 
Bibliog. Base: Engenharia de Software. Ian Summerville. Addison- Wesley, 2003. 
Bibliog. Compl.: Engenharia de Software. Roger S. Pressman. Makron Books. 
Internet: 
» http://www.software-engineer.org (Engenharia de Software) 
» Software Engine Institute (Instituto de Engenharia de Software) 
» Ministério da Ciência e Tecnologia – Secretaria de Política e Informática 
 
INTRODUÇÃO 
 
 A descrição ou modelagem de processos de software é uma atividade fundamental para 
empresas de desenvolvimento de software que almejam qualidade no processo e produto. A importância 
em descrever o processo de software tem sido discutida na literatura de engenharia de software como 
uma das formas de suporte à qualidade do produto de software, sistematizar as práticas empregadas 
durante o desenvolvimento, aumentar a maturidade do processo de software, estabelecer uma linha de 
base (baseline) para avaliação e melhoria etc. Dada a importância em formalizar o processo de software, 
diversas organizações adotam-na como uma estratégia que tem resultado em inúmeros benefícios. 
 A descrição de processo de software permite detalhar o processo de software real executado 
em organizações de desenvolvimento e, conseqüentemente, possibilitar que falhas no processo sejam 
detectadas e corrigidas. Além disso, a formalização de processo de software é considerada o primeiro 
passo para implantação de programas de melhoria como CMM, SPICE (futura norma ISO 15504), 
BOOTSTRAP entre outros, pelo fato de capturar como o processo de software é executado (em um guia de 
processo de software, por exemplo) e adquirir experiências e lições que poderão ser incorporadas e 
utilizadas em projetos futuros. 
 A falta de descrição freqüentemente conduz a diversas conseqüências negativas às empresas 
de desenvolvimento de software, dentre as quais: atraso na entrega do produto, aumento no custo do 
projeto, baixa qualidade do produto, comprometimento do planejamento do projeto, impossibilidade de 
estabelecer uma prática sistemática de desenvolvimento (processo repetível), os processos não são 
visíveis, há dificuldades na implantação de programas de mensuração, baixa produtividade. 
 Entre organizações de desenvolvimento ou entre projetos de uma mesma organização, a 
modelagem dos processos de software pode variar em largura e profundidade. A largura determina o 
alcance do processo podendo abranger todo ciclo de vida do software ou uma simples fase. A 
profundidade determina o nível de refinamento, ou seja, até que ponto um processo deve ser detalhado. 
 As inúmeras variáveis envolvidas na elaboração de um produto de software determinam a sua 
complexidade. Dentre essas variáveis pode-se destacar: o produto que será desenvolvido, tecnologia 
aplicada, o número de pessoas envolvidas, métodos utilizados e etc. Conseqüentemente, o nível de 
complexidade do projeto de software determina o nível de complexidade dos processos necessários para 
desenvolvê-lo. Assim, quanto maior a complexidade do projeto de software maior será a complexidade dos 
processos exigindo um controle mais rigoroso sobre esses processos. A descrição de processos de software 
contribui com a resolução de diversos problemas presentes em organizações de desenvolvimento. A 
descrição de processos contribui sob vários aspectos no processo de desenvolvimento: 
 
• A padronização do processo é necessária para permitir o treinamento, elaboração de 
guias, gerenciamento, revisão e automação; 
• Com a padronização de métodos, cada experiência de projeto pode contribuir para uma 
melhoria global em uma organização; 
• Processos padronizados provêem uma infra-estrutura básica para melhoria, avaliação e 
mensuração; 
• Porque a definição de processos exige tempo e esforço para ser produzido, é impraticável 
produzir novos processos para cada novo projeto; 
• Porque tarefas básicas são comuns em muitos projetos de software, apenas algumas 
customizações seriam necessárias para um processo padrão atender à maioria das 
necessidades de projetos. 
 
Abordagem Top-down 
 
 A abordagem top-down pressupõe que o processo seja descrito de forma incremental e suas 
iterações se iniciem tendo em vista uma visão mais ampla do processo, ou seja, o processo pode ser 
descrito em camadas que manipulam os mesmos elementos do processo em diferentes fases do 
Modelagem de Processos de Software 
Prof. Edson dos Santos Cordeiro 2
desenvolvimento de software. Nesse caso, a descrição do processo poderia ser iniciada pelos elementos de 
alto nível, por exemplo, atividades. A Figura 1 mostra, a título de exemplo, a aplicação da abordagem 
top-down a qual se inicia, primeiramente, pela descrição de todas as atividades do processo (ciclo de 
vida) seguida pelas sub-atividades, papéis, ferramentas e artefatos de cada atividade do ciclo de vida 
(descrição do processo de software em profundidade). 
Atividade 1 Atividade 2 Atividade 3 Atividade 4
1º passo: ciclo de vida
2º passo 3º passo 4º passo 5º passo
...
Sub -
atividades
Papéis
Ferramentas
Artefatos
Sub -
atividades
Papéis
Ferramentas
Artefatos
Sub -
atividades
Papéis
Ferramentas
Artefatos
Sub -
atividades
Papéis
Ferramentas
Artefatos
 
Figura 1: Descrição do Processo de Software em profundidade (top-down) 
 
 Deve-se considerar que a Figura 1 apresenta apenas uma visão ampla da abordagem top-
down. Ao descrever o processo de software utilizando a abordagem top-down, outros elementos devem ser 
considerados, por exemplo, a transição entre as atividades, transição entre as sub-atividades, recursos, 
critérios de entrada e saída etc. Além disso, outras variações de descrição do processo de software 
poderiam ser aplicadas utilizando a abordagem top-down. A Figura 2 apresenta uma variação na qual os 
elementos do processo de software são descritos em camadas (descrição do processo de software em 
largura). São descritas, inicialmente, todas as atividades do processo (ciclo de vida), depois, 
diferentemente do primeiro exemplo (Figura 1), são descritas todas as sub-atividades, após a descrição de 
todas as sub-atividades, é descrito todos os papéis envolvidos no processo de software, seguido da 
descrição de ferramentas e artefatos. 
 
1º passo
2º passo
3º passo
4º passo
5º passo
Atividade 1 Atividade 2 Atividade 3 Atividade 4 ...
Sub -
atividades
Sub -
atividades
Sub -
atividades
Sub -
atividades
ArtefatosArtefatosArtefatosArtefatos
PapéisPapéisPapéisPapéis
FerramentasFerramentasFerramentasFerramentas
 
Figura 2: Descrição do Processo de Software em largura (top-down) 
 
Ferramentas utilizadas para descrever processos de software 
 
 A ferramenta Spearmint – Software Process Elicitation, Analysis, Review and Modeling in an 
Integrated Environment (vide figura 3) utiliza ícones para representar os quatro elementos básicos de 
Modelagem de Processos de Software 
Prof. Edson dos Santos Cordeiro 3
processo de software: atividade, artefato, papel e ferramenta e; seis tipos de relacionamentos entre os 
elementos: consome, produz, modifica, envolve, usa e contém. 
 
 
Figura 3: Ambiente da Ferramenta Spearmint 
 
 
Atividade / sub-atividade 
 
Artefato 
 
Papel 
 
Ferramenta 
 Consome: apenas é possível de artefato para atividade. 
 Produz: apenas é possível de atividade para artefato. 
 Modifica: apenas é possível entre atividade e artefato. 
 Envolve: apenas é possível entre atividade e papel. 
 Usa: apenas é possível entre atividade e ferramenta 
 Contém: apenas visível em árvore, não há uma notação gráfica 
explícita para esse relacionamento. 
Quadro 1: Notações gráficas utilizadas pela ferramenta Spearmint. 
 
 A ferramenta Spearmint também possui representações para execução de atividades em 
paralelo (Quadro 2). Quatro possíveis estados são representados: 
 
 
Utilizado para representar atividades em paralelo. 
x “and”: significa que