Académique Documents
Professionnel Documents
Culture Documents
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
Definio de Processos
O objetivo de se definir um processo de software favorecer a produo de
sistemas de alta qualidade, atingindo as necessidades dos usurios finais, dentro de um
cronograma e um oramento previsveis.
Um processo de software no pode ser definido de forma universal. Para ser
eficaz e conduzir construo de produtos de boa qualidade, um processo deve ser
adequado s especificidades do projeto em questo. Deste modo, processos devem ser
definidos caso a caso, considerando-se as caractersticas da aplicao (domnio do
problema, tamanho, complexidade etc), a tecnologia a ser adotada na sua construo
(paradigma de desenvolvimento, linguagem de programao, mecanismo de persistncia
etc), a organizao onde o produto ser desenvolvido e a equipe de desenvolvimento.
H vrios aspectos a serem considerados na definio de um processo de
software. No centro da arquitetura de um processo de desenvolvimento esto as
atividades-chave desse processo: anlise e especificao de requisitos, projeto,
implementao e testes, que so a base sobre a qual o processo de desenvolvimento
deve ser construdo. Entretanto, a definio de um processo envolve a escolha de um
modelo de ciclo de vida (ou modelo de processo), o detalhamento (decomposio) de
suas macro-atividades, a escolha de mtodos, tcnicas e roteiros (procedimentos) para a
sua realizao e a definio de recursos e artefatos necessrios e produzidos.
A escolha de um modelo de ciclo de vida (ou modelo de processo) o ponto de
partida para a definio de um processo de desenvolvimento de software. Um modelo
de ciclo de vida, geralmente, organiza as macro-atividades bsicas do processo,
estabelecendo precedncia e dependncia entre as mesmas. Para a definio completa
do processo, cada atividade descrita no modelo de ciclo de vida deve ser decomposta e
para suas subatividades, devem ser associados mtodos, tcnicas, ferramentas e critrios
de qualidade, entre outros, formando uma base slida para o desenvolvimento.
Adicionalmente, outras atividades, tipicamente de cunho gerencial, devem ser definidas,
entre elas atividade de gerncia de projetos e de controle e garantia da qualidade.
Os seguintes fatores influenciam a definio de um processo e, por conseguinte,
a escolha do modelo de processo a ser usado como base: tipo de software (p.ex., sistema
de informao, sistema de tempo real etc), paradigma de desenvolvimento (estruturado,
orientado a objetos etc), domnio da aplicao, tamanho e complexidade do sistema,
estabilidade dos requisitos, caractersticas da equipe etc.
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
Ainda que os processos tenham de ser definidos caso a caso, de maneira geral, o
ciclo de vida de um software envolve, pelo menos, as seguintes fases:
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
O Modelo RAD
O modelo RAD (Rapid Application Development), ou modelo de
desenvolvimento rpido de aplicaes, um tipo de modelo incremental que prima por
um ciclo de desenvolvimento curto (tipicamente de at 90 dias) [1a]. Assim, como no
modelo incremental, o sistema subdividido em subsistemas e incrementos so
realizados. A diferena marcante que os incrementos so desenvolvidos em paralelo
por equipes distintas e apenas uma nica entrega feita, como mostra a Figura 2.5.
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
O Modelo Espiral
O modelo espiral, mostrado na Figura 2.6, um dos modelos evolutivos mais
difundidos.
Anlise
Especificao de
Requisitos
Projeto
Implementao
Entrega e
Implantao
Testes
10
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
uma tcnica para ajudar engenheiros de software e clientes a entender o que est sendo
construdo quando os requisitos no esto claros. Ainda que tenha sido citada
anteriormente no contexto do modelo espiral, ela pode ser aplicada no contexto de
qualquer modelo de processo. A Figura 2.7, por exemplo, ilustra um modelo em cascata
com prototipao [3].
11
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
Em 2009 ocorreu uma reviso da ISO 9004, que passou a incluir o conceito
de sucesso sustentvel1 foco na melhoria contnua e sustentvel.
A sustentabilidade o resultado da capacidade da organizao em
alcanar seus objetivos em longo prazo com anlise equilibrada das
necessidades e expectativas das partes interessadas. (Boletim ABNT,
10/2009)
No Brasil, a publicao dessa verso da ISO 9004 como a NBR ISO 9004 ocorreu em 2010.
12
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
O principal problema para se adotar essa norma precisamente o fato dela ser
geral. Assim, quando aplicada ao contexto da indstria de software, muitos problemas
surgem pela falta de diretrizes mais focadas nas caractersticas de processos de
software. Assim, de maneira geral, outras normas e modelos de qualidade so usadas
por organizaes de software para apoiar uma certificao ISO 9000, com destaque para
a norma NBR ISO/IEC 12207.
A Norma ISO/IEC 12207
A Norma ISO/IEC 12207 Tecnologia da Informao Processos de Ciclo de
Vida de Software [7, 8] estabelece uma estrutura comum para os processos de ciclo de
vida de software, com terminologia bem definida, que pode ser referenciada pela
indstria de software. A estrutura contm processos, atividades e tarefas que devem ser
aplicados na aquisio, fornecimento, desenvolvimento, operao e manuteno de
produtos de software. Esse conjunto de processos, atividades e tarefas foi projetado para
ser adaptado de acordo com as caractersticas de cada projeto de software, o que pode
envolver o detalhamento, a adio e a supresso de processos, atividades e tarefas no
aplicveis ao mesmo.
Em outubro de 2002 e de 2004, a ISO/IEC 12207 recebeu duas emendas
(emendas 1 e 2, respectivamente) para tratar a evoluo da Engenharia de Software e,
tambm, para harmoniz-la com a norma ISO/IEC 15504. Basicamente, essas melhorias
criaram novos ou expandiram o escopo de alguns processos, alm de serem
adicionados, a cada processo, o seu propsito e resultados. Assim, agora, cada processo
tem um propsito e um resultado associados, alm de atividades e tarefas.
Em 2006 houve uma nova reviso para alinhamento com a ISO/IEC 15288
(Engenharia de Sistemas Processos de Ciclo de Vida de Sistemas) e em 2008 uma
nova verso foi publicada (padro ISO/IEC e IEEE) unindo as alteraes das emendas
anteriores.
Antes da verso publicada em 2008, a ISO/IEC 12207 possua 23 processos,
agrupados em trs categorias de processo (fundamentais, de apoio e organizacionais),
mais um processo de adaptao, que, como o nome indica, trata da adaptao da norma
cultura e aos aspectos especficos de uma organizao. A Figura 2.8 apresenta os
processos presentes na ISO/IEC 12207 [7]. Os processos em vermelho foram
adicionados pela Emenda 1 (2002).
13
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
14
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
15
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
O Modelo CMMI
O Modelo de Maturidade e Capacidade Integrado (Capability Maturity Model
Integration - CMMI) [10] foi desenvolvido no Instituto de Engenharia de Software
(Software Engineering Institute - SEI) da Universidade de Carnegie Mellon, com o
intuito de quantificar a capacidade de uma organizao produzir produtos de software
de alta qualidade, de forma previsvel e consistente. Sua motivao inicial foi apontar as
necessidades de melhoria nos projetos de desenvolvimento de software do
Departamento de Defesa dos EUA.
O CMMI estruturado em cinco nveis de maturidade, de 1 a 5, onde o nvel 1
o menos maduro e o nvel 5 o mais maduro. Cada nvel de maturidade, com exceo
do nvel 1, composto de vrias reas de processo (process areas - PAs). As
caractersticas de cada nvel so apresentadas a seguir.
Nvel 1 Inicial: O processo de software caracterizado como ad hoc e,
eventualmente, catico. Poucos processos so definidos e o sucesso depende de
esforos individuais. Neste nvel, a organizao, tipicamente, opera sem
formalizar procedimentos, estimativas de custo e planos de projeto.
Ferramentas no so bem integradas ao processo ou no so uniformemente
aplicadas. O controle de alteraes superficial e h pouco entendimento sobre
os problemas.
Nvel 2 Gerenciado: Os processos bsicos de gerncia so estabelecidos para
acompanhar custo, cronograma e funcionalidade. Os sucessos em projetos
anteriores com aplicaes similares podem ser repetidos.
Nvel 3 Definido: A organizao possui um processo padro definido que
usado como base para todos os projetos. As atividades de engenharia e
gerncia de software so estveis e h um entendimento comum e amplo das
atividades, papis e responsabilidades no processo.
Nvel 4 Gerenciado Quantitativamente: A organizao fixa metas
quantitativas de qualidade para produtos e processos e fornece instrumentos
para medies consistentes e bem definidas. Tanto o processo de software
como os produtos so quantitativamente entendidos e controlados. possvel
que a organizao preveja tendncias na qualidade do processo e dos produtos,
dentro de fronteiras quantificadas.
Nvel 5 Otimizado: A organizao possui uma base para melhoria contnua e
otimizao do processo. Dados sobre a eficincia de um processo so usados
para efetuar anlises custo-benefcio de novas tecnologias e para propor
mudanas no processo.
A Figura 2.10 mostra os nveis de maturidade do CMMI e, em seguida, na Tabela
2.1 so apresentadas as reas de processo de cada nvel.
16
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
4
5
reas de Processo
Monitorao e Controle do Projeto (PMC)
Gerncia de Requisitos (REQM)
Anlise e Medio (MA)
Garantia da Qualidade do Processo e do Produto (PPQA)
Gerncia de Configurao (CM)
Gerncia de Fornecedor Integrada (SAM)
Gerncia de Projeto Integrada (IPM)
Gerncia de Riscos (RSKM)
Definio do Processo Organizacional (OPD)
Foco no Processo Organizacional (OPF)
Treinamento Organizacional (OT)
Desenvolvimento de Requisitos (RD)
Integrao do Produto (PI)
Soluo Tcnica (TS)
Validao (VAL)
Verificao (VER)
Anlise de Deciso e Resoluo (DAR)
Gerncia Quantitativa do Projeto (QPM)
Desempenho do Processo Organizacional (OPP)
Gerncia do Desempenho Organizacional (OPM)
Resoluo e Anlise Causal (CAR)
17
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
18
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
cada projeto. A Figura 2.9 ilustra essa abordagem de definio de processos de software
em nveis [4].
Uma vez que objetivo das normas e modelos de qualidade apontar
caractersticas que um bom processo de software tem de apresentar, deixando a
organizao livre para estruturar essas caractersticas segundo sua prpria cultura, elas
so uma importante base para a definio dos processos padro das organizaes.
Assim, usando essas normas e modelos de qualidade em uma abordagem de definio
de processos em nveis, possvel definir processos para projetos especficos, que
levem em considerao as particularidades de cada projeto, sem, no entanto,
desconsiderar aspectos importantes para se atingir a qualidade do processo.
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
Referncias
1. R.S. Pressman, Engenharia de Software, Rio de Janeiro: McGraw Hill, Traduo
da 5 edio, 2002.
1a. R.S. Pressman, Software Engineering: A Practitioners Approach, McGraw Hill,
6th edition, 2005.
O Captulo 2 (Processo de Software) da 5 edio discute o que processo de
software e apresenta alguns dos modelos de processo discutidos anteriormente. No
entanto, por ser uma edio antiga (veja referncia [1a]), algumas consideraes no so
vlidas. Assim sendo, recomenda-se a leitura dos captulos 2 e 3 da 6 edio, ainda no
traduzida para o portugus. No Captulo 2 da 6 edio, alm de uma discusso sobre o
que processo de software, h tambm uma apresentao do modelo CMMI. O
Captulo 3 dessa edio, por sua vez, apresenta os principais modelos de processo.
O Captulo 31 (Engenharia de Software Apoiada por Computador) da 5 edio
trata da automatizao do processo de software. J a 6 edio [1a] no tem um captulo
explicitamente dedicado a esse tema.
2. I. Sommerville, Engenharia de Software, So Paulo: Addison-Wesley, 6 edio,
2003.
O Captulo 3 (Processo de Software) discute o que processo de software e
apresenta os principais modelos de processo discutidos anteriormente. Este captulo tem
tambm uma seo, a seo 3.7, dedicada ao tema apoio automatizado ao processo de
software.
3. S.L. Pfleeger, Engenharia de Software: Teoria e Prtica, So Paulo: Prentice
Hall, 2 edio, 2004.
O Captulo 2 (Modelagem do Processo e Ciclo de Vida) discute o que processo de
software e apresenta alguns dos modelos de processo discutidos anteriormente.
4. A. R. C. Rocha, J. C. Maldonado, K. C. Weber, Qualidade de Software: Teoria e
Prtica, So Paulo: Prentice Hall, 2001.
O Captulo 1 (Normas e Modelos de Qualidade de Processo) apresenta sucintamente
as principais normas (ISO/IEC 12207, ISO 9000, ISO/IEC 15504) e modelos de
qualidade de processo (CMM). J o Captulo 12 (Automatizao da Definio de
21
Este material foi extrado de FALBO, R. A., 2005, Notas de Aula Engenharia de Software, Departamento de Informtica,
Universidade Federal do Esprito Santo Atualizadas em 2011 por Monalessa Perini Barcellos e Ricardo de Almeida Falbo.
22