Sunteți pe pagina 1din 7

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC

DCC – Departamento de Ciência da Computação


Joinville-SC

CURSO: Bacharelado em Ciência da Computação


DISCIPLINA: APS – Análise e Projeto de Sistemas DATA:
AULA NÚMERO: 01 PROFESSOR: Murakami

Sumário
1 APRESENTAÇÃO...........................................................................................................1
2 DESENVOLVIMENTO.....................................................................................................1
2.1 Engenharia de Software...........................................................................................1
2.2 Qualidade de Software.............................................................................................2
2.3 Processo de Software...............................................................................................3
2.3.1 RUP – Rational Unified Process........................................................................3
2.4 Garantia de Qualidade de Software.........................................................................4
2.5 Modelos de Melhoria de Processos.........................................................................4
2.5.1 CMMI..................................................................................................................4
2.5.2 MPS.BR..............................................................................................................6
3 ATIVIDADES...................................................................................................................7
4 BIBLIOGRAFIA................................................................................................................7

1 APRESENTAÇÃO
Esta aula tem o objetivo de introduzir conceitos de qualidade de software,
processos de software e modelos de melhoria de processo.

2 DESENVOLVIMENTO
2.1 Engenharia de Software
Engenharia de software é uma área do conhecimento da informática voltada para
a especificação, desenvolvimento e manutenção de sistemas de software aplicando
tecnologias e práticas de ciência da computação, gerência de projetos e outras
disciplinas, objetivando organização, produtividade e qualidade.
Atualmente, essas tecnologias e práticas englobam linguagens de programação,
bases de dados, ferramentas, plataformas, bibliotecas, padrões, processos e a questão
da Qualidade de Software.
Os fundamentos científicos para a engenharia de software envolvem o uso de
modelos abstratos e precisos que permitem ao engenheiro especificar, projetar,
implementar e manter sistemas de software, avaliando e garantindo suas qualidades.
Além disso, a engenharia de software deve oferecer mecanismos para se planejar e
gerenciar o processo de desenvolvimento de um sistema de informação.
Segundo Fritz Bauer, "Engenharia de software é a criação e a utilização de
sólidos princípios de engenharia a fim de obter software de maneira econômica, que
seja confiável e que trabalhe eficientemente em máquinas reais".
Segundo Pressman, Engenharia de Software é uma tecnologia em camadas
(Figura 1).

27/07/2010 pág. 1
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC
DCC – Departamento de Ciência da Computação
Joinville-SC

Figura 1 – Tecnologia em Camadas. [Adaptado de Pressman].

A camada que dá apoio a engenharia de software é o Foco na Qualidade;


A camada de Processos é o fundamento da engenharia de software. Essa
camada é o adesivo que mantém unidas as camadas de tecnologia e permite o
desenvolvimento racional e oportuno de software. Processo define uma estrutura para o
conjunto de áreas de processo, que deve ser estabelecida para a efetiva utilização da
tecnologia de engenharia de software. As áreas de processo formam a base para o
controle gerencial de projetos de software e estabelecem o contexto no qual os
métodos técnicos são aplicados, os produtos de trabalho (documentos, arquivos,
modelos, dados, etc.) são produzidos, marcos são estabelecidos, qualidade é
assegurada e modificações são adequadamente geridas.
Métodos de engenharia de software fornecem a técnica de como fazer para
construir software. Os métodos incluem amplo conjunto de tarefas que abrange,
requisitos, análise e projeto, implementação, testes e manutenção.
Ferramentas de engenharia de software fornecem apoio automatizado ou semi
automatizado para o processo e para os métodos.

2.2 Qualidade de Software


A Qualidade de Software é uma área de conhecimento da Engenharia de
Software que objetiva garantir a qualidade do software através da definição e
normatização de processos de desenvolvimento. Apesar dos modelos aplicados na
garantia da qualidade de software atuarem principalmente no processo, o principal
objetivo é garantir um produto final que satisfaça às expectativas do cliente, dentro
daquilo que foi acordado inicialmente.
Segundo a norma ISO 9000 (versão 2000), a qualidade é o grau em que um
conjunto de características inerentes a um produto, processo ou sistema cumpre os
requisitos inicialmente estipulados para estes.
No desenvolvimento de software, a qualidade do produto está diretamente
relacionada à qualidade do processo de desenvolvimento, desta forma, é comum que a
busca por um software de maior qualidade passe necessariamente por uma melhoria
no processo de desenvolvimento.

27/07/2010 pág. 2
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC
DCC – Departamento de Ciência da Computação
Joinville-SC

2.3 Processo de Software


Processo de software, ou processo de engenharia de software, é uma seqüência
coerente de práticas que objetiva o desenvolvimento ou evolução de sistemas de
software. Estas práticas englobam as atividades de especificação, projeto,
implementação, testes e caracterizam-se pela interação de ferramentas, pessoas e
métodos.
Nas últimas décadas foram propostas dezenas de metodologias e processos
adaptados a diferentes cenários e produtos. Há dezenas de trabalhos propostos para
casos particulares. Exemplos das diversas iniciativas para tratar o assunto são
processos e metodologias como RUP, XP e Scrum e modelos de processo como
MPS.BR e CMMI, além de várias teses de mestrado e doutorado.

2.3.1 RUP – Rational Unified Process


O Rational Unified Process (também chamado de processo RUP) é um processo
de engenharia de software. Ele oferece uma abordagem baseada em disciplinas para
atribuir tarefas e responsabilidades dentro de uma organização de desenvolvimento.
Sua meta é garantir a produção de software de alta qualidade que atenda às
necessidades dos usuários dentro de um cronograma e de um orçamento previsíveis. A
arquitetura geral do RUP é mostrada na imagem abaixo.

O RUP tem duas dimensões:


• Eixo horizontal representa o tempo e mostra os aspectos do ciclo de vida
do processo à medida que se desenvolve;
• Eixo vertical representa as disciplinas, que agrupam as atividades de
maneira lógica, por natureza.

A primeira dimensão representa o aspecto dinâmico do processo quando ele é


aprovado e é expressa em termos de fases, iterações e marcos.

27/07/2010 pág. 3
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC
DCC – Departamento de Ciência da Computação
Joinville-SC

A segunda dimensão representa o aspecto estático do processo, como ele é


descrito em termos de componentes, disciplinas, atividades, fluxos de trabalho,
artefatos e papéis do processo (consulte Conceitos-chave).
O gráfico da figura 1 mostra como a ênfase varia através do tempo. Por exemplo,
nas iterações iniciais, dedicamos mais tempo aos requisitos. Já nas iterações
posteriores, gastamos mais tempo com implementação.

2.4 Garantia de Qualidade de Software


A Garantia da Qualidade de Software (GQS) é a área-chave de processo do
CMMI cujo objetivo é fornecer aos vários níveis de gerência a adequada visibilidade dos
projetos, dos processos de desenvolvimento e dos produtos gerados. A GQS atua
como "guardiã", fornecendo um retrato do uso do Processo e não é responsável por
executar testes de software ou inspeção em artefatos.
Obtendo a visibilidade desejada, a gerência pode atuar de forma pontual no
sentido de atingir os quatro grandes objetivos de um projeto de desenvolvimento de
software, quais sejam, desenvolver software de alta qualidade, ter alta produtividade da
equipe de desenvolvimento, cumprir o cronograma estabelecido junto ao cliente e não
necessitar de recursos adicionais não previstos.

2.5 Modelos de Melhoria de Processos


2.5.1 CMMI
O CMMI (Capability Maturity Model Integration) é um modelo de referência
que contém práticas (Genéricas ou Específicas) necessárias à maturidade em
disciplinas específicas (Systems Engineering (SE), Software Engineering (SE),
Integrated Product and Process Development (IPPD), Supplier Sourcing (SS)).
Desenvolvido pelo SEI (Software Engineering Institute) da Universidade Carnegie
Mellon, o CMMI é uma evolução do CMM e procura estabelecer um modelo único para
o processo de melhoria corporativo, integrando diferentes modelos e disciplinas.
A versão atual do CMMI (versão 1.2) apresenta dois modelos:
• CMMI for Development (CMMI-DEV) publicada em agosto de 2006. Dirige-
se ao processo de desenvolvimento de produtos e serviços.
• CMMI for Acquisition (CMMI-ACQ) publicada em novembro de 2007.
Dirige-se aos processos de aquisição e terceirização de bens e serviços.

O CMMI possui duas representações: "contínua" ou "por estágios". Estas


representações permitem a organização utilizar diferentes caminhos para a melhoria de
acordo com seu interesse.

Representação Contínua

 Níveis de Capacidade
 Agrupamento das Áreas de Processo por Categoria
 Avaliação da capacidade das Áreas de Processo

27/07/2010 pág. 4
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC
DCC – Departamento de Ciência da Computação
Joinville-SC

NC5

NC4
NC3
NC2
NC1
NC0
VAL
PP PMC

Representação por Estágios

 Níveis de Maturidade
 Agrupamento de Áreas de Processo por Nível
 Avaliação da Organização como um todo

NM5

NM4

NM3

NM2

NM1

27/07/2010 pág. 5
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC
DCC – Departamento de Ciência da Computação
Joinville-SC

2.5.2 MPS.BR

O MPS.BR ou Melhoria de Processos do Software Brasileiro, é


simultaneamente um movimento para a melhoria e um modelo de qualidade de
processo voltado para a realidade do mercado de pequenas e médias empresas de
desenvolvimento de software no Brasil. Ele é baseado no CMMI, nas normas ISO/IEC
12207 e ISO/IEC 15504 e na realidade do mercado brasileiro.
O projeto tem apoio do Ministério da Ciência e Tecnologia, do FINEP e do Banco
Interamericano de Desenvolvimento. No Brasil o projeto é desenvolvido pela Softex,
pelo governo e por universidades como UFRJ e UCB.

27/07/2010 pág. 6
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC
DCC – Departamento de Ciência da Computação
Joinville-SC

3 ATIVIDADES
1) Revisão:
2) O que é qualidade de software?
3) O que é processo?
4) O que é RUP
5) O que é modelo de melhoria de processos?
6) O que é CMMI?

4 BIBLIOGRAFIA
Básica

BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML guia do usuário. Editora


Campus. 2000.

BEZERRA, E. Princípios de Análise e Projeto de Sistemas com UML. Editora


Campus. 2003.

PRESSMAN, R. S. Engenharia de Software. 5a. Edição. McGraw Hill. 2002.

SOMMERVILLE, I. Engenharia de Software. Addison Wesley. 8ª edição, 2007.

Complementar

KOSCIANSKI, A.; Soares, M.S. Qualidade de Software. 2a. Edição. Novatec, 2007.

CHRISSIS, A.B.; Konrad, M.; Shrum, S. CMMI: Guidelines for Process Integration and Product
Improvement. Addison-Wesley. 2003.

SEI. SOFTWARE ENGINEERING INSTITUTE. CMMI for Development (CMMI-DEV), Version 1.2,
Technical report CMU/SEI-2006-TR-008. Pittsburgh, PA: Software Engineering Institute, Carnegie
Mellon University, 2006.

SOFTEX. MPS.BR - Melhoria de Processo do Software Brasileiro. Guia Geral, versão 1.2. 2007.

ABNT – ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 12207 –


Tecnologia de informação - Processos de ciclo de vida de software. Rio de Janeiro, 1998.

ISO/IEC - The International Organization for Standardization and The International


Electrotechnical Commission, ISO/IEC TR 15504 Software Process Assessment. 1998.

27/07/2010 pág. 7

S-ar putea să vă placă și