42
Suporte de Suporte de Ferramentas CASE Ferramentas CASE Universidade Federal de Pernambuco Centro de Informática / Pós-Graduação Engenharia de Requisitos e CASE Prof. Alexandre Lins S S uporte de Ferramentas uporte de Ferramentas CASE CASE na Implantação do CMM na Implantação do CMM TERESA MARIA DE MEDEIROS MACIEL TERESA MARIA DE MEDEIROS MACIEL CESAR – Centro de Estudos e Sistemas Avançados do Recife [email protected] GABRIELA MOREIRA CARNEIRO CAMPÊLO GABRIELA MOREIRA CARNEIRO CAMPÊLO PROCENGE - Processamento de Dados e Engenharia de Sistemas Ltda [email protected]

1di.ufpe.br/~req_case/CASE/Teresa_Gabriela/CASE.doc · Web viewEngenharia de Requisitos e CASE. Prof. Alexandre Lins. suporte de Ferramentas CASE na Implantação do CMM. Teresa Maria

  • Upload
    hadang

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Suporte de Ferramentas CASE Suporte de Ferramentas CASE na Implantação do CMMna Implantação do CMM

Universidade Federal de PernambucoCentro de Informática / Pós-Graduação

Engenharia de Requisitos e CASEProf. Alexandre Lins

SSuporte de Ferramentas CASE uporte de Ferramentas CASE na Implantação do CMMna Implantação do CMM

TERESA MARIA DE MEDEIROS MACIELTERESA MARIA DE MEDEIROS MACIELCESAR – Centro de Estudos e Sistemas Avançados do Recife

[email protected]

GABRIELA MOREIRA CARNEIRO CAMPÊLOGABRIELA MOREIRA CARNEIRO CAMPÊLOPROCENGE - Processamento de Dados e Engenharia de Sistemas Ltda

[email protected]

14/02/2000

Suporte de Ferramentas CASE para a Implantação do CMM pág. 2/29

ÍndiceÍndice

Resumo...................................................................................................................................4

1 Introdução.................................................................................................................5

2 Ferramentas CASE - Visão Geral............................................................................6

3 A Estrutura do SEI-Capability Maturity Model.......................................................8

3.1 Os Níveis de Maturidade 2 e 3...................................................................................................10

O Nível Repetível.....................................................................................................10

O Nível Definido.......................................................................................................10

4 Características das Ferramentas CASE para Suporte ao CMM.........................11

4.1 KPA CMM N2: Gerenciamento de Requisitos............................................................................11

4.2 KPA CMM N2: Planejamento do Projeto de Software................................................................11

4.3 KPA CMM N2: Acompanhamento do Projeto de Software.........................................................12

4.4 KPA CMM N2: Gerenciamento de Subcontratos........................................................................13

4.5 KPA CMM N2: Garantia da Qualidade de Software...................................................................14

4.6 KPA CMM N2: Gerenciamento de Configuração.......................................................................15

4.7 KPA CMM N3: Foco no Processo da Organização....................................................................16

4.8 KPA CMM N3: Definição do Processo da Organização.............................................................16

4.9 KPA CMM N3: Programa de Treinamento.................................................................................17

4.10 KPA CMM N3: Gerenciamento de Software Integrados.............................................................18

4.11 KPA CMM N3: Engenharia de Produtos de Software................................................................18

4.12 KPA CMM N3: Coordenação de Intergrupos..............................................................................19

4.13 KPA CMM N3: Revisões (Peer-reviews)....................................................................................20

5 Análise das Ferramentas CASE Existentes no Mercado....................................21

5.1 Ferramentas para Gerenciamento de Requisitos.......................................................................21

5.2 Ferramentas para Atividades de Planejamento e Gerenciamento de Projetos..........................22

5.3 Ferramentas de Gerenciamento da Configuração.....................................................................24

5.4 Ferramentas de Suporte ao Processo de Desenvolvimento......................................................25

Suporte de Ferramentas CASE para a Implantação do CMM pág. 3/29

5.5 Ferramentas para Apoio Organizacional do Projeto...................................................................26

6 Conclusões.............................................................................................................27

7 Referências.............................................................................................................29

Suporte de Ferramentas CASE para a Implantação do CMM pág. 4/29

ResumoResumo

Diversos modelos para avaliação do processo de produção de software tem sido

estabelecidos para oferecer diretrizes às organizações. O SEI-Capability Maturity Model tem

sido adotado por grande parte das empresas de software no mundo inteiro, como guideline

para garantia da qualidade em processos de desenvolvimento. O suporte para ferramentas de

automação na engenharia de software, por sua vez, certamente conduz a melhoria da

produtividade e qualidade. O termo Computer-aided Software Engineering (CASE) é

atualmente utilizado para denominar esse suporte automatizado para o processo de

engenharia de software. Inserido neste contexto, este trabalho compreende uma análise das

áreas-chaves de processo (KPAs) constantes nos níveis de maturidade 2 e 3 do CMM,

apresentando um conjunto de informações sobre ferramentas CASE, formado por

características, categorias e disponibilidade de mercado, para o suporte no alcance dos

objetivos de cada KPA analisada.

Suporte de Ferramentas CASE para a Implantação do CMM pág. 5/29

11 IntroduçãoIntrodução

A garantia da qualidade no processo de desenvolvimento de software tem se tornado, cada vez

mais, uma premissa básica para a competitividade das indústrias de software. Vários modelos

têm sido propostos por instituições no mundo inteiro, a fim de prover um guideline para

garantia da qualidade no processo de software.

Dentre os modelos mais utilizados no mercado mundial, podemos citar os modelos do

Software Engineering Institute(SEI), em particular o Capability Maturity Model (CMM), o

qual tem sido bastante difundido e utilizado por empresas no mundo inteiro.

O SEI definiu modelos que abrangem os três níveis comportamentais de uma empresa: a

organização em si, as equipes de trabalho e o indivíduo. Foi no contexto organizacional que o

SEI se deteve ao definir o CMM, baseado em áreas chaves de processos (KPAs). O CMM foi

definido a partir de uma solicitação do Departamento de Defesa dos Estados Unidos e

classifica as empresas de software em 5 níveis de maturidade: inicial, repetível, definido,

gerenciado e otimizado.

O suporte para ferramentas de automação na engenharia de software, por sua vez, tornou-se

uma arma fundamental para apoiar a garantia da qualidade em um processo de

desenvolvimento. Desde o início dos anos 80, uma grande quantidade de ferramentas para o

suporte ao desenvolvimento de software tem sido desenvolvida. O termo Computer-aided

Software Engineering (CASE) é atualmente utilizado para denominar esse suporte

automatizado para o processo de engenharia de software.

Este trabalho apresenta uma análise do suporte de ferramentas CASE na implantação do

CMM, particularmente focando as KPAs dos níveis 2 e 3, respectivamente: gerenciamento de

requisitos, planejamento do projeto de software, acompanhamento do projeto de software,

gerenciamento de subcontratados, garantia da qualidade do software, gerenciamento de

configuração, foco do processo da organização, definição do processo da organização,

programa de treinamento, gerenciamento de software integrado, engenharia de produto de

software, coordenação de intergrupos, e revisões (Peer-reviews).

O trabalho foi organizado seguindo o seguinte roteiro: a seção 2 compreende uma visão geral

do Capability Maturity Model (CMM), com ênfase nos níveis de maturidade 2 e 3, foco deste

trabalho; a seção 3 contempla uma introdução a ferramentas CASE, suas características e

categorias; a seção 4 apresenta as principais características que as ferramentas CASE devem

Suporte de Ferramentas CASE para a Implantação do CMM pág. 6/29

disponibilizar para suporte às áreas chaves (KPAs) do CMM ; a seção 5 apresenta as

principais ferramentas existentes no mercado, categorizando as mesmas de acordo com

grupos de KPAs consideradas afins; finalmente, a seção 6 apresenta as conclusões do trabalho

e uma tabela com um resumo do estudo realizado.

22 Ferramentas CASE - Visão GeralFerramentas CASE - Visão Geral

Historicamente, o aumento de produtividade mais significativo nos processos manufaturados

e de construção ocorreu quando ferramentas poderosas foram incorporadas às habilidades

humanas. Similarmente, a produtividade dos projetos de engenharia é melhorada quando estes

projetos estão suportados por sistemas CAD, que eliminam o trabalho tedioso dos desenhos e

verificam os erros e omissões do projeto.

Portanto, o suporte para ferramentas de automação na engenharia de software deve também

conduzir a melhoria da produtividade do software. Desde o início dos anos 80, uma grande

quantidade de ferramentas para o suporte ao desenvolvimento de software tem sido

desenvolvida. O termo Computer-aided Software Engineering (CASE) é atualmente utilizado

para denominar esse suporte automatizado para o processo de engenharia de software.

Três níveis diferentes de tecnologia CASE podem ser identificados [3]:

1. Tecnologia de suporte a produção do processo: Isso inclui suporte a atividades do

processo como especificação, projeto, implementação e testes.

2. Tecnologia de gerenciamento de projeto: Isso inclui ferramentas para suportar a

modelagem e gerenciamento do processo . Essas ferramentas vão chamar nas ferramentas

de suporte a produção do processo para suportar atividades específicas do processo.

Alguns produtos nessa área já são válidos, porém isso ainda é assunto para pesquisas.

3. Tecnologia Meta-Case: Ferramentas meta-case são geradores usados para criar

ferramentas de produção de processo e de suporte a gerenciamento de processos. Algumas

ferramentas meta-CASE são válidas, mas elas não são fáceis de utilizar e ainda não são

largamente adotadas.

No final dos anos 80 e início dos anos 90, produtos oferecidos por diferentes CASE se

expandiram muito rapidamente, mas agora parecem ter entrado num período de crescimento

mais lento. Isso se deve em parte, a circunstâncias econômicas. No entanto, a primeira

geração de produtos CASE não conduziu a melhoria de produtividade esperado pelos

vendedores por algumas razões[3]:

Suporte de Ferramentas CASE para a Implantação do CMM pág. 7/29

Os principais problemas para desenvolvimento de grandes sistemas são quanto a

complexidade do gerenciamento do produto a ser desenvolvido, bem como do processo de

desenvolvimento. A tecnologia CASE pode prover algum suporte, mas não resolve a

essência da complexidade do problema.

Os atuais produtos CASE representam “ilhas de automação” onde várias atividades de

processo são suportadas por extensões. Integrações entre diferentes produtos são

limitadas, e terminam limitando também a aplicabilidade da tecnologia.

Adeptos da tecnologia CASE algumas vezes subestimam os custos com treinamento e

com o processo de adaptação, que essenciais para a introdução de CASE.

As ferramentas CASE podem ser classificadas de acordo com as funcionalidades que

suportam. Dentro dessa classificação podemos ter ferramentas de:

Gerenciamento: ferramentas para estimativas.

Edição: editores de texto, editores de diagramas, processadores de textos

Gerenciamento de Configuração: sistemas de gerenciamento de versões, sistemas de

gerenciamento de mudanças.

Prototipagem: linguagens de alto nível, geradores de interfaces de usuários.

Processamento de Linguagens: compiladores, interpretadores

Análise de Programas: geradores de referências cruzadas, analisadores sintáticos,

analisadores semânticos.

Testes: geradores de dados de teste, comparadores de arquivos.

Debugging: sistema interativos de debugging.

Documentação: programas de layout de páginas, editores de imagens.

Re-engenharia: sistemas de referências cruzadas, sistemas de reestruturação de programas.

Outras possíveis dimensões de classificação são:

Suporte do Processo: Classificação de acordo com as fases do processo que a tecnologia

CASE suporta. Nesse ponto de vista, as ferramentas podem ser classificadas como

ferramentas de projeto, programação, manutenção e outras.

Abrangência do Suporte: Classificação de acordo com a abrangência das atividades do

processo suportadas pela tecnologia. “Suporte estreito” significa suporte para tarefas muito

específicas no processo, como criação de diagrama de entidade-relacionamento, compilação

Suporte de Ferramentas CASE para a Implantação do CMM pág. 8/29

de programa. “Suporte largo” caracteriza suportes abrangentes para fases do processo como

projeto, incluindo suportes gerais que cobrem toda, ou pelo menos a maioria, das fases do

processo de software.

33 A Estrutura do SEI-Capability Maturity ModelA Estrutura do SEI-Capability Maturity Model

O CMM é uma iniciativa do SEI (Software Engineering Institute) para avaliar e melhorar a

capacitação de empresas que produzem software. O projeto CMM foi apoiado pelo

Departamento de Defesa do Governo dos Estados Unidos, que é um grande consumidor de

software e precisava de um modelo formal que permitisse selecionar os seus fornecedores de

software de forma adequada.

Embora não seja uma norma emitida por uma instituição internacional (como a ISO ou o

IEEE), o CMM tem tido uma grande aceitação mundial, até mesmo fora do mercado

americano. Publicado em 1992, ele não é extenso e pode ser obtido na própria Internet 1 com

facilidade.

O CMM fornece às organizações diretrizes para controlar seus processos de modo a

desenvolver e manter software, bem como instituir uma cultura de excelência em engenharia e

gerenciamento de projeto de software. O CMM auxilia uma organização a determinar o seu

estado atual de maturidade de processo e a identificar os pontos críticos que devem ser

atacados para melhorar a qualidade do software e do processo.

A Estrutura do CMM é constituída de 5 níveis de maturidade, os quais, por sua vez, são

definidos em áreas-chave de processos (KPAs), práticas-chave e características comuns. O

termo maturidade está associado ao grau de conhecimento, controle e sistemática de execução

de um processo de software atingido por uma organização. Uma organização madura possui

habilidade para gerenciar e manter seus processos; planejar suas atividades; e monitorar a

qualidade de seus produtos e a satisfação dos usuários, buscando ums melhoria constante de

seus processos. Por outro lado, em uma organização imatura, os processos de software são,

em geral, improvisados e caóticos. Essas organizações geralmente ultrapassam seus

cronogramas e não tem controle sobre seus orçamentos. Assim, a maturidade neste contexto

representa o grau em que um processo de software específico é explicitamente definido,

gerenciado, mensurado, controlado e eficaz, como apresentado na figura abaixo.

1 Através do site oficial do SEI: www.sei.cmu.edu

Suporte de Ferramentas CASE para a Implantação do CMM pág. 9/29

Conforme pode ser observado, os níveis de maturidade são proporcionais ao grau de

organização do processo das empresas. No nível 1, por exemplo, são categorizadas as

organizações mais imaturas, que não possuem nenhuma metodologia implementada e tudo

ocorre de forma desorganizada. No nível 2, a empresa já consegue produzir bons softwares,

no prazo e a um custo previsível. O nível 3 garante um excelente nível de qualidade, tanto no

produto quanto no processo de desenvolvimento como um todo Enquanto no nível 5, por

exemplo, das organizações mais maduras, cada detalhe do processo de desenvolvimento está

definido, quantificado e acompanhado e a organização consegue até absorver mudanças no

processo sem prejudicar o desenvolvimento[1].

Processo disciplinado

Processo consistente, padrão

Processo previsível

Processo continuamente melhorado

Inicial(1)

Repetitível (2)Gerenciamento de configuração de software

Garantia da qualidade de softwareGerenciamento de subcontratos de software

Monitoramento e controle de projeto de softwarePlanejamento de projeto de software

Gerenciamento de requisitos

Definido (3)Auditorias

Coordenação intergruposEngenharia do produto de software

Gerenciamento integrado de softwarePrograma de treinamento

Definição do processo da organizaçãoFoco no processo da organização

Gerenciado (4)Gerenciamento da qualidade de softwareGerenciamento do processo quantitativo

Otimizando (5)Gerenciamento de modificações no processoGerenciamento de mudanças de tecnologia

Prevenção de defeitos

ESTRUTURA DO CMM

Suporte de Ferramentas CASE para a Implantação do CMM pág. 10/29

As características comuns são itens a serem observados para que se possa verificar a

implementação e institucionalização de cada área-chave de processo. Elas podem indicar se a

área-chave de processo é eficiente, repetível e duradoura.

As práticas-base descrevem as atividades que contribuem para atingir os objetivos de cada

área-chave do processo. Em geral são descritas com frases simples, seguidas de descrições

detalhadas que podem até incluir exemplos.

3.13.1 Os Níveis de Maturidade 2 e 3Os Níveis de Maturidade 2 e 3

Conforme supra-citado, os níveis de maturidade são detalhados em áreas-chave de processo.

Estas áreas são exatamente aquilo no que a organização deve focar para melhorar o seu

processo de desenvolvimento de software.

A seguir são relacionadas as áreas-chave de processos relativas aos níveis 2 e 3, focos deste

trabalho.

O NÍVEL REPETÍVEL

Gerenciamento de requisitos

Planejamento do projeto de software

Acompanhamento do projeto de software

Gerenciamento de subcontratados

Garantia da qualidade do software

Gerenciamento de configuração

O NÍVEL DEFINIDO

Foco do processo da organização

Definição do processo da organização

Programa de treinamento

Gerenciamento de software integrado

Engenharia de produto de software

Coordenação de intergrupos

Recisões (Peer-reviews)

As KPAs acima relacionadas serão detalhadas na Seção 4 deste documento.

Suporte de Ferramentas CASE para a Implantação do CMM pág. 11/29

44 Características das Ferramentas CASE para Suporte ao CMMCaracterísticas das Ferramentas CASE para Suporte ao CMM

Esta seção apresenta uma análise sobre as KPAs do CMM, particularmente as que compõem

os níveis 2 – Repetitivo e 3 – Definido, sob a óticas do suporte necessário por ferramentas

CASE. Assim, cada KPA incluída neste contexto é analisada com relação às características

necessárias que as ferramentas CASE devem apresentar para seu suporte.

4.14.1 KPA CMM N2: Gerenciamento de RequisitosKPA CMM N2: Gerenciamento de Requisitos

O gerenciamento de requisitos tem como metas principais documentar e controlar os

requisitos alocados para estabelecer uma baseline para uso gerencial e da engenharia de

software, bem como manter planos, artefatos e atividades de software consistentes com os

requisitos alocados.

Sendo assim, é preciso que a organização tenha uma política bem definida de gerenciamento

de requisitos a ser seguida e que durante o projeto sejam realizadas atividades como:

revisar requisitos alocados antes de incorporá-los ao projeto de software;

utilizar requisitos alocados como base para o desenvolvimento do software;

revisar alterações nos requisitos alocados e incorporá-los ao projeto do software.

Para facilitar esse gerenciamento, as seguintes ferramentas poderiam seria utilizadas :

ferramentas para o registro e análise de requisitos;

ferramentas para a gerenciamento de mudanças nos requisitos;

ferramentas para a rastreabilidade de requisitos;

ferramentas para edição de textos.

Dessa forma, teríamos o documento de requisitos alocados gerenciado e controlado de forma

segura e eficaz.

4.24.2 KPA CMM N2: Planejamento do Projeto de SoftwareKPA CMM N2: Planejamento do Projeto de Software

De acordo com CMM, o planejamento do projeto tem como objetivo estabelecer planos para

desenvolvimento e gerenciamento do projeto de software. As principais metas para atingir seu

objetivo são o desenvolvimento e documentação de estimativas para utilização no

planejamento e gerenciamento do trabalho a ser realizado, planejamento e documentação das

atividades e dos compromissos do projeto de desenvolvimento do software, bem como obter a

concordância dos grupos e das pessoas envolvidos quanto aos respectivos compromissos

relacionados ao projeto de desenvolvimento de software.

Suporte de Ferramentas CASE para a Implantação do CMM pág. 12/29

De acordo com as afirmações descritas, o planejamento do projeto provê a base para o

desenvolvimento e gerenciamento das atividades do projeto do software. Dentre as atividades

principais do planejamento, podemos citar [2]:

definir do escopo, metas e objetivos do projeto;

identificar o ciclo de vida escolhido para o desenvolvimento do software;

definir ou indicar procedimentos, métodos e padrões adotados para o desenvolvimento

e/ou manutenção do software;

estimar o tamanho dos artefatos de software;

estimar esforço e custo do projeto de software;

estimar recursos computacionais críticos;

estabelecer do cronograma de software do projeto;

registros, gerenciar e controlar dados de planejamento;

iniciar planejamento do projeto de software;

identificar ou definir um ciclo de vida de software;

elaborar e documentar o plano de desenvolvimento de software;

identificar, avaliar e documentar os riscos de software;

planejar as facilidades e ferramentas de suporte ao projeto;

revisar compromissos externos do projeto de software.

Ferramentas de suporte às atividades de planejamento do projeto de software seriam:

planilhas eletrônicas;

software para estimativas;

programas para a criação de planos, cronogramas, orçamentos e acompanhamentos de

projetos;

base de dados contendo dados históricos de projetos passados ou em andamento, para

identificação de riscos e estimativas de tamanho, recursos e esforço.

4.34.3 KPA CMM N2: Acompanhamento do Projeto de SoftwareKPA CMM N2: Acompanhamento do Projeto de Software

A supervisão e acompanhamento do projeto de software deve garantir a integridade dos

resultados e desempenhos reais com o plano de desenvolvimento de software. Esta garantia

está inteiramente relacionada com objetivos primários tais como, qualidade, produtividade e

redução de risco.

Entre as atividades principais, tomar decisões corretivas e gerenciá-las até a sua conclusão,

sempre que resultados ou desempenhos reais desviem significativamente do plano de

Suporte de Ferramentas CASE para a Implantação do CMM pág. 13/29

desenvolvimento de software, e assegurar que as alterações nos compromissos de software se

dêem através de acordo entre os grupos e pessoas envolvidos[2].

Para garantia do sucesso desse acompanhamento, algumas atividades importantes devem ser

realizadas:

utilizar o plano de desenvolvimento de software como base para a supervisão e o

acompanhamento do projeto;

acompanhar o tamanho dos artefatos de software;

acompanhar esforço e custos de software;

acompanhar a utilização de recursos computacionais críticos;

acompanhar cronograma de software;

acompanhar atividades técnicas de engenharia de software;

acompanhar riscos de software;

registrar dados de medição e replanejamento;

acompanhar o andamento do projeto;

conduzir revisões formais nos marcos de acompanhamento de progresso do projeto

revisar o plano de desenvolvimento de software;

revisar compromissos e alterações de compromissos;

comunicar alterações nos compromissos.

Como características de auxílio a esse acompanhamento temos:

planilhas eletrônicas;

programas para planejamento e acompanhamento de projetos;

sistemas de registro, acompanhamento e tratamento estatístico de medição;

software para gerenciamento de riscos.

Dessa forma, podemos garantir o bom gerenciamento e controle do plano de desenvolvimento

de software, bem como dos seus dados de replanejamento.

4.44.4 KPA CMM N2: Gerenciamento de SubcontratosKPA CMM N2: Gerenciamento de Subcontratos

O gerenciamento de subcontratos de software tem como metas principais a seleção de

contratadas de software qualificadas, o acordo com a reciprocidade dos compromissos entre a

contratante e a contratada, garantia de comunicação entre contratante e contratada durante

todo contrato, bem como o acompanhamento do desempenho e resultados reais da contratada ,

comparando-os com os compromissos assumidos.

O cumprimento dessas metas pode ser facilitado pelo seguimento de algumas atividades:

Suporte de Ferramentas CASE para a Implantação do CMM pág. 14/29

planejar e definir o trabalho a ser contratado;

selecionar a contratada;

gerenciar o contrato de software;

analisar o plano de desenvolvimento de software da contratada;

alterar o trabalho da contratada, compromissos, termos e condições de contrato, de acordo

com um procedimento documentado;

revisar periodicamente o andamento do contrato;

manter intercâmbio e revisões técnicas;

realizar revisões formais do projeto da contratada;

avaliar desempenho da contratada;

usar o plano de desenvolvimento de software da contratada como base para o

acompanhamento do seu trabalho;

monitorar atividades de garantia de qualidade de software da contratada;

monitorar atividades de gerência de configuração de software da contratada;

testar produtos da contratada.

Para facilitar o gerenciamento de subcontratos, é bastante promissor o uso de ferramentas tais

como:

planilhas eletrônicas;

modelos de estimativa;

bases de dados de histórias de projetos;

softwares para gerenciamento de riscos;

programas para planejamento e acompanhamento de projeto.

4.54.5 KPA CMM N2: Garantia da Qualidade de SoftwareKPA CMM N2: Garantia da Qualidade de Software

A garantia da qualidade de software tem como metas planejar as atividades de garantia da

qualidade (GQS); verificar objetivamente a conformidade das atividades e dos artefatos de

software com os padrões, procedimentos e requisitos aplicáveis; informar aos grupos e às

pessoas envolvidas quanto às atividades e resultados de GQS; encaminhar à gerência sênior

todas as questões de não conformidade que não possam ser resolvidas no âmbito do projeto de

software.

Para que essas metas sejam atingidas, é importante que a organização tenha uma política de

GQS a ser seguida e que atividades como as que seguem sejam realizadas [2]:

preparar plano GQS;

executar atividades de acordo com o plano GQS;

Suporte de Ferramentas CASE para a Implantação do CMM pág. 15/29

fornecer consulta e realizar revisões;

revisar atividades de engenharia de software;

realizar auditoria em artefatos de software;

relatar resultados ao grupo de engenharia de software;

documentar e tratar desvios;

revisar atividades do grupo de GQS com o GS do cliente;

Para auxiliar na garantia de qualidade de software, devem ser empregadas ferramentas como:

sistemas de gerência de banco de dados;

planilhas eletrônicas;

ferramentas de medição;

ferramentas de acompanhamento da evolução dos artefatos;

pacotes de rotinas estatísticas;

ferramentas de auditoria.

Dessa forma, garantimos o gerenciamento e controle do plano GQS e da documentação dos

itens que não estão em conformidade com as respectivas exigências.

4.64.6 KPA CMM N2: Gerenciamento de ConfiguraçãoKPA CMM N2: Gerenciamento de Configuração

As principais metas do gerenciamento de configurações são: planejar as atividades de

gerência de configuração de software; identificar, controlar e tornar disponível os artefatos de

software selecionados; controlar as alterações nos artefatos de software identificados;

informar pessoas e grupos envolvidos acerca do estado e do conteúdo das baselines de

software.

As seguintes atividades contribuem para um bom gerenciamento de configurações:

prepara plano de gerenciamento de configuração;

executar atividades de gerenciamento de configuração de acordo com o plano;

estabelecer um repositório para baselines;

identificar itens de configuração;

controlar a liberação de produtos;

gerenciar requisições de mudanças e relatórios de problemas para todos os itens de

configuração;

controlar alterações nas baselines;

registrar o estado dos itens de configuração;

divulgar as atividades de gerenciamento de configuração e conceito de baselines;

conduzir auditorias nas baselines de software;

Suporte de Ferramentas CASE para a Implantação do CMM pág. 16/29

Para auxiliar no gerenciamento de configuração de software, devem ser empregadas

ferramentas como:

programas para gerenciamento de bases de dados;

ferramentas para controle de versões;

ferramentas de acompanhamento de produtos;

ferramentas para gerência de configuração.

4.74.7 KPA CMM N3: Foco no Processo da OrganizaçãoKPA CMM N3: Foco no Processo da Organização

As metas dessa KPA são coordenar as atividades de melhoria e desenvolvimento do processo

de software na organização; identificar, comparando com um processo padrão, os pontos

fortes e as necessidades de melhoria dos processos de software usados na organização;

planejar as atividades de melhoria e desenvolvimento do processo a nível da organização.

Para alcançar essas metas, o cumprimento de algumas atividades, como as que seguem

abaixo, pode ser útil:

coordenar atividades de melhoria e desenvolvimento do processo de software na

organização;

coordenar o uso do banco de dados dos processos;

fazer experimentos pilotos de novas tecnologias;

coordenar treinamentos em processos;

divulgar as atividades de melhoria e desenvolvimento do processo de software;

avaliar o processo de software, e se necessário, desenvolver planos de ação;

desenvolver e manter um plano de melhorias e desenvolvimento do processo de software;

Além disso, o uso de ferramentas é sempre bem vindo como suporte a realização dessas

atividades. Algumas dessas ferramentas de auxílio seriam:

ferramentas de análise estatística;

ferramentas de editoração eletrônica;

sistemas de gerência de banco de dados;

ferramentas de modelagem de processos;

4.84.8 KPA CMM N3: Definição do Processo da OrganizaçãoKPA CMM N3: Definição do Processo da Organização

A definição do processo da organização visa desenvolver e manter um processo de software

padrão para organização, bem como coletar, revisar e disponibilizar informações a respeito do

uso do processo de software padrão da organização realizados pelos projetos de software.

Suporte de Ferramentas CASE para a Implantação do CMM pág. 17/29

Para isso, algumas atividades são propostas, tais como:

desenvolver e manter o processo de software padrão da organização;

documentar o processo padrão da organização;

documentar e manter os ciclos de vida;

desenvolver e manter diretrizes e critérios de adaptação do processo;

definir e manter o banco de dados de processos de software da organização;

definir e manter uma biblioteca de documentação relacionada aos processos de software.

Como recomendações de ferramentas que possam auxiliar no trabalho para definição desse

processo padrão, temos:

ferramentas de editoração eletrônica;

sistemas de gerência de banco de dados;

ferramentas de modelagem de processo.

4.94.9 KPA CMM N3: Programa de TreinamentoKPA CMM N3: Programa de Treinamento

O programa de treinamento visa planejar as atividades de treinamento; fornecer treinamento

necessário para desenvolver as habilidades e os conhecimentos requeridos para desempenhar

papéis técnicos e gerenciais de software; ministrar o treinamento necessário às pessoas do

grupo de engenharia de software e para as de outros grupos relacionados a software, de modo

que possam desempenhar seus papéis eficiente e eficazmente.

Dentro desse ponto de vista, as seguintes atividades poderão facilitar esses objetivos:

preparar e manter um plano de treinamento para projetos de software;

preparar e revisar o plano de treinamento da organização;

seguir o plano de treinamento da organização;

seguir padrões organizacionais na elaboração de treinamentos no nível da organização;

implantar procedimento de dispensa;

manter registros de treinamentos.

Como apoio ao programa de treinamento são recomendadas as seguintes ferramentas:

ferramentas de apoio ao design de software;

software para o desenvolvimento de apresentações e cursos;

sistemas de gerência de bancos de dados.

Suporte de Ferramentas CASE para a Implantação do CMM pág. 18/29

4.104.10 KPA CMM N3: Gerenciamento de Software IntegradosKPA CMM N3: Gerenciamento de Software Integrados

A gerência de software integrada tem como metas assegurar que o processo de software

definido do projeto corresponda a uma versão adaptada do processo de software padrão da

organização, e planejar e gerenciar o projeto de acordo com o processo de software definido

do projeto [2].

Para assegurar essas metas, algumas atividades são sugeridas. Dentre elas temos:

desenvolver o processo de software definido do projeto a partir do processo de software

padrão da organização;

revisar o processo de software definido de cada projeto;

desenvolver e revisar o plano de desenvolvimento de software do projeto;

gerenciar o projeto de software com base no processo de software definido do projeto;

planejar e estimar software com dados do banco de dados de processos de software da

organização;

gerenciar o tamanho de artefatos de software;

gerenciar esforço e custo e de software;

gerenciar recursos críticos de computação;

gerenciar dependências e caminhos críticos do cronograma;

identificar, avaliar, documentar e gerenciar riscos de software;

revisar periodicamente o projeto de software.

Como ferramenta de apoio a esse gerenciamento podemos sugerir:

banco de dados de processos de software da organização;

softwares para quantificação e gerenciamento de riscos.

Com isso, podemos garantir o bom gerenciamento e controle das descrições do processo de

software definido do projeto e do plano de gerência de risco do software.

4.114.11 KPA CMM N3: Engenharia de Produtos de SoftwareKPA CMM N3: Engenharia de Produtos de Software

A engenharia de produtos de software tem como metas definir, integrar e executar de forma

organizada e consistente as tarefas de engenharia de software ao produzir ou evoluir o

software, bem como manter a consistência entre os artefatos que compõem o software.

Dessa forma, algumas atividades essenciais devem ser realizadas pata conduzirem ao sucesso

dessas metas.

A seguir são relacionadas atividades inseridas neste contexto:

Suporte de Ferramentas CASE para a Implantação do CMM pág. 19/29

integrar instrumentos de engenharia de software ao processo de software definido do

projeto;

implementar os requisitos de software;

implementar o design de software;

controlar código;

implementar testes de software;

planejar e executar testes de integração;

implementar e executar testes de sistema e de aceitação;

implementar documentação de software;

coletar e analisar dados de defeitos;

manter consistência do conjunto de artefatos de software.

Para apoiar essas atividades podemos fazer uso de ferramentas como:

ferramentas para construir e manter os artefatos e software. (processadores de texto,

compiladores, sistemas operacionais);

ferramentas de suporte a tarefas de engenharia de software (sistemas de gerência de banco

de dados, ferramentas gráficas, ferramentas de geração de auxílio on line, ferramentas de

geração de documentação interativa, sistema de processamento de textos);

ferramentas de suporte à análise de requisitos de software (ferramentas para

acompanhamento de requisitos, ferramentas de apoio à especificação, ferramentas de

prototipação, ferramentas de apoio à modelagem, ferramentas de simulação);

ferramentas de suporte ao design de software(linguagens de design de programas,

ferramentas de derivação do design a partir da especificação);

ferramentas de suporte à produção de código (editores de código e de texto, compiladores,

geradores de referências cruzadas, compositores de programas a partir de especificações,

controladores de consistência do uso de tipos de dados, ambientes de desenvolvimento de

programas);

ferramentas de suporte ao teste de software (ferramentas de gerência de testes, geradores

de casos de teste, controladores de teste – test drivers, analisadores de perfis de teste,

depuradores simbólicos, analisadores de cobertura de testes).

4.124.12 KPA CMM N3: Coordenação de IntergruposKPA CMM N3: Coordenação de Intergrupos

A coordenação entre grupos visa obter o acordo de todos os grupos envolvidos quanto aos

requisitos do cliente; obter o acordo dos grupos envolvidos acerca dos compromissos entre os

Suporte de Ferramentas CASE para a Implantação do CMM pág. 20/29

grupos de engenharia e os grupos de engenharia devem identificar, acompanhar e resolver

questões entre grupos [3].

Para isso, a prática das seguintes atividades serão de suma importância:

participar no estabelecimento de requisitos de sistema;

utilizar um pano para coordenação das atividades e divulgação dos compromissos entre os

grupos;

tratar dependências críticas entre grupos de engenharia;

revisar artefatos de entrada;

gerenciar atividades e questões técnicas;

gerenciar questões não solucionadas entre grupos;

conduzir revisões técnicas periódicas.

Como suporte a essas atividades podemos ter ferramentas de apoio usadas pelos diferentes

grupos de engenharia e que devem ser compatíveis entre si:

sistemas de processamento de texto;

sistemas de banco de dados;

ferramentas gráficas;

planilhas eletrônicas;

pacotes de acompanhamentos de problemas;

ferramentas de gerenciamento de bibliotecas;

correio eletrônico e browsers WWW.

4.134.13 KPA CMM N3: Revisões (Peer-reviews)KPA CMM N3: Revisões (Peer-reviews)

Revisões eficientes se preocupam em planejar as atividades de revisões por parceiros, bem

como identificar e remover os defeitos nos artefatos de software.

As atividades que devem ser realizadas para garantir o sucesso de uma revisão são:

prepara plano de revisão;

realizar a revisão segundo um procedimento documentado;

registrar dados das revisões.

Poderão ser muito úteis para isso, ferramentas como:

sistemas de confecções e preenchimentos de checklists;

bases de dados de medições;

geradores de relatórios estatísticos.

Suporte de Ferramentas CASE para a Implantação do CMM pág. 21/29

55 Análise das Ferramentas CASE Existentes no MercadoAnálise das Ferramentas CASE Existentes no Mercado

Esta seção apresenta um levantamento realizado sobre ferramentas CASE disponíveis no

mercado, cujas propostas se enquadram nas características fundamentais descritas na Seção 4,

para suporte as áreas-chave de processo (KPA) apresentadas.

Para facilitar o entendimento e eliminar redundâncias, as ferramentas estão apresentadas em

grupos, a saber: ferramentas para gerenciamento de requisitos, ferramentas para apoio ao

planejamento e gerenciamento de projeto, ferramentas para gerenciamento da configuração de

software, ferramentas de suporte ao processo de desenvolvimento, ferramentas de suporte ao

processo organizacional do projeto.

Cada um dos grupos definidos pode atender a uma ou mais KPA, e uma KPA pode ser

suportada por ferramentas constantes em mais de um grupo.

Vale salientar que não está no escopo deste trabalho uma análise detalhada de cada

ferramenta, e sim, uma apresentação das mesmas e do que cada uma propõe oferecer.

5.15.1 Ferramentas para Gerenciamento de RequisitosFerramentas para Gerenciamento de Requisitos

KPA: Gerenciamento de Requisitos

No contexto da análise de requisitos, podemos afirmar que ainda existe uma grande carência

de ferramentas para suporte a este processo.

No que diz respeito ao registro e documentação de requisitos, o editor de texto é ainda a

ferramenta mais utilizada, pelo menos no contexto das empresas de software brasileiras.

Com relação ao gerenciamento e rastreamento de requisitos, as dificuldades aumentam

proporcionalmente ao número de requisitos levantados. Quando o número de requisitos é

muito elevado, se torna impossível deixar atualizadas matrizes de rastreamento, pois as

ferramentas disponíveis não dispõe de funcionalidade que automatize este tipo de técnica de

forma eficaz.

A tabela a seguir apresenta algumas ferramentas disponíveis no mercado que tratam de

requisitos.

Suporte de Ferramentas CASE para a Implantação do CMM pág. 22/29

FERRAMENTAS DE SUPORTE À GERENCIAMENTO DE REQUISITOSFERRAMENTAS DE SUPORTE À GERENCIAMENTO DE REQUISITOS

Rational RequisitPro (Rational Corporation) - www.rational.comA proposta da Rational Corporation compreende funcionalidades para revisões, estabelecimento e modificações em rastreamento de relacionamento e de atributos, consultas de requisitos e visões a partir do banco de dados. Além destas funcionalidades, no RequisitPro os membros das equipes podem participar de discussões on-line, via Web e via e-mail. [8]

WSP (WIT)Essa ferramenta apresenta suporte para as seguintes fases: Modelagem de requisitos, Evolução, Validação de requisitos, Testes de Aplicação e Medição. Todas as fases do WSP atualizam o documento de requisitos.

Editores de Texto

Ferramentas de Modelagem para Suporte a Análise (vide Seção 5.4)

Ferramentas de Gerenciamento da Configuração (vide Seção 5.3)

Gerenciadores de Banco de Dados

5.25.2 Ferramentas para Atividades de Planejamento e Gerenciamento de ProjetosFerramentas para Atividades de Planejamento e Gerenciamento de Projetos

KPAs: Planejamento de Projeto de Software Acompanhamento do Projeto de Software

Gerência de Subcontratos Garantia da Qualidade de Software

Conforme descrito na Seção 4, as ferramentas de suporte ao planejamento e gerenciamento de

projetos devem apresentar planilhas para planos, cronogramas, controle de custos, e prover

suporte a estimativas e análise de riscos.

Os pacotes para gerenciamento de projetos são genéricos e aplicados à maioria das atividades,

seja para a construção de edifícios, equipamentos, produtos ou softwares. Em geral, estes

pacotes produzem telas baseadas na teoria de Gantt e de PERT-COM. Os pacotes mais

sofisticados não somente custam mais, como requerem um investimento substancial da

aprendizagem.

Alguns pacotes são projetados com forte ênfase no planejamento dos recursos (resource-

drivem schedulling), e outros para planejar e seguir utilizando estimativas de trabalho

fornecem programação baseada na duração do trabalho. A tabela abaixo apresenta algumas

ferramentas disponíveis no mercado.

Suporte de Ferramentas CASE para a Implantação do CMM pág. 23/29

FERRAMENTAS DE APOIO AO PLANEJAMENTO E GERENCIAMENTO DE PROJETOSFERRAMENTAS DE APOIO AO PLANEJAMENTO E GERENCIAMENTO DE PROJETOS

MSProject (Microsoft) - www.microsoft.comO MSProject apresenta funcionalidades para elaboração de cronogramas, incluindo planejamento de atividades com relação de dependência entre elas, alocação e análise de recursos e custo. Além destas funcionalidades, a ferramenta disponibiliza diagramas de Perti para análise de caminhos críticos e gráficos de Gantt. A ferramenta, no entanto, não apresenta funcionalidades eficazes para orçamentos e controle financeiro, além de análise de riscos[6].No contexto das empresas brasileiras, o MSProject, da Microsoft, tem sido a ferramenta mais utilizada para planejamento e acompanhamento, embora não apresente todas as funcionalidades necessárias.

Primavera Project Planner (Primavera Systems) - www.primavera.com/products/p3e_feat.htmlApresenta uma forte orientação a Work Breackdown Structure, com diagramas WBS; utiliza Organizational Breakdown Structure; hierarquia de atividades; suporte a custos.Oferece suporte para análise e acompanhamento através de disponibilização de tabelas com sumários de atividades, recursos, custos; gráficos; filtros por WBS, recurso, fase do projeto. Provê controle proativo de riscos do projeto através de cálculos de impactos[9].Suporta um número ilimitado de projetos, grupos de projetos e atividades, e oferece relatórios de acompanhamento e calculo de estimativas.

Artemis Views (Artemis Management Systems) - http://www.artemispm.com/w4122.htmlO Artemis Views apresenta suporte divididos em 4 visões[10]:ProjectView - combina planejamento de projetos, cronogramas, recursos, controle de custos, relatórios gráficos. Suporta o planejamento e acompanhamento de deadlines críticos, atividades, recursos e custos.TrackView - suporte para medição de processos, esforço gasto, e custos efetivosCostView - para projetos sofisticados, contratos e gerência de programas de desempenho, e controle de custo.GlobalView - gráficos executivos para visão e análise do projeto como um todo.

Outros pacotes: Open Plan, Cobra, Enterprise PM, Micro-Planner Manager.

Ferramentas de Análise de Risco: Risk+, Primavera MonteCarlo

Gerenciadores de Banco de Dados

Ferramentas Adicionais: Microsoft Excel (para suporte ao controle financeiro), Editores de Textos etc

Além de ferramentas especializadas em gestão de projetos, outras ferramentas também devem

ser úteis neste contexto, como ferramentas CASE para ciclos de vida, ferramentas de

métricas, ferramentas de controle da configuração.

5.35.3 Ferramentas de Gerenciamento da ConfiguraçãoFerramentas de Gerenciamento da Configuração

KPA: Gerenciamento da ConfiguraçãoGerenciamento de Requisitos

Suporte de Ferramentas CASE para a Implantação do CMM pág. 24/29

As ferramentas de suporte ao gerenciamento da configuração são fundamentais na

implantação do CMM. O processo de controle de versão e gerência de mudanças no software

é bastante complexo e precisa garantir, efetivamente, a integridade de versões, o que se torna

quase impossível quando controlado manualmente. Existem várias ferramentas disponíveis

para este fim. A tabela abaixo mostra algumas delas.

FERRAMENTAS DE SUPORTE À GERENCIAMENTO DA CONFIGURAÇÃOFERRAMENTAS DE SUPORTE À GERENCIAMENTO DA CONFIGURAÇÃO

StarTeam (StarBase Corporation) - www.choose.com.brO produto StarTeam contempla gerência de configuração visual; comunicação colaborativa; rastreamente de defeitos; operação de comparação e merging visual; controle de versão; gerência de mudanças; acesso remoto ou Internet; notificação de requisições de mudanças por e-mail; interoperabilidade com PVCS™, SourceSafe, and StarBase; relações de dependência entre arquivos; integração com MSProject.Apresenta níveis de segurança para garantir visões read-only ou acessos restritos por projeto, subprojeto, grupos, hora, dia etc. [7]Visual SourceSafe (Microsoft) [6] - www.microsoft.comComo a maioria dos programas de controle de versão, o Microsoft Visual SourceSafe fornece ferramentas para armazenar e organizar o código fonte, mediar entre desenvolvedores, rastrear versões diferentes, evita perda acidental de códigos, permitir um acompanhamento reverso para as versões anteriores e acessar facilmente os arquivos.O que a Microsoft afirma é que, ao contrário de outros programas, o sistema de controle de versão do SourceSafe realiza tudo isso em um sistema orientado ao projeto, onde o sistema, e não os desenvolvedores, mantém um registro de relacionamento entre os arquivos.

Rational ClearCase (Rational Corporation) - www.rational.comComo as demais ferramentas de gerenciamento da configuração, o ClearCase suporta o desenvolvimento paralelo, mesmo em ambientes distribuídos. Apresenta facilidade de adaptação a diferentes processos de configuração, sem a necessidade de customização complexa; auditoria de programação; acesso via Web; integração com ferramentas Microsoft e com os produtos da Rational; gerencia mudanças. [8]Dentre as três ferramentas, o ClearCase apresenta o custo mais elevado.

Gerenciadores de Banco de Dados

5.45.4 Ferramentas de Suporte ao Processo de DesenvolvimentoFerramentas de Suporte ao Processo de Desenvolvimento

KPAs: Foco no Processo Organizacional Definição do Processo da OrganizaçãoGerenciamento de Software IntegradosEngenharia de Produtos de SoftwareGarantia da Qualidade de SoftwareRevisões (Peer-Reviews)

Suporte de Ferramentas CASE para a Implantação do CMM pág. 25/29

No grupo de suporte ao processo de desenvolvimento foram categorizadas as KPAs que se

concentram no processo de desenvolvimento em si. Neste contexto, todas as demais

ferramentas citadas em outros grupos também são fundamentais para sua implantação.

Nesta seção, no entanto, são apresentadas ferramentas CASE menos específicas, metodologias

de desenvolvimento e outras ferramentas auxiliares para garantir um processo efetivo de

desenvolvimento.

FERRAMENTAS DE SUPORTE AO PROCESSO DE DESENVOLVIMENTOFERRAMENTAS DE SUPORTE AO PROCESSO DE DESENVOLVIMENTO

System Architect - AS - www.choose.com.br/asEsta ferramenta viabiliza técnicas de levantamento de requisitos. Apresenta abordagem ampla em análise (Orientada a Objeto, Essencial, Estruturada); Suporta modelagem de dados e implementação física em BD’s (engenharia direta e reversa); automatização na geração de aplicativos; fornece relatórios técnicos e gerenciais; é uma ferramenta customizável (Meta-Cse); workgroup, possibilitando uso compartilhado e seguro pelos desenvolvedores. System Architect 2001 - AS2001 - www.choose.com.br/asO AS2001 é uma evolução de ferramenta AS. Ela abrange o que se chama de Modelagem Corporativa, incorporando: Mapeamento e Modelagem do Negócio, Tecnologia, Organização, Componentes e Objetos, Dados, Aplicações e Localização.Ela oferece um diagrama de hierarquia de processo lógico que é usado para criar um mapeamento entre os processos de negócio modelados e técnicas de análise e projeto usadas na definição da aplicação. UML é suportada por este mapeamento. [7]

Rose (Rational Corporation) - www.rational.com/products/rs/developmentrt/prodinfo.jtmpl O Rational Rose é uma ferramenta de modelagem que suporta atividades de análise e projeto. A proposta da ferramenta se concentra em um alto grau de confiabilidade, uma vez que contempla a validação de requisitos, arquitetura e design através de modelos executáveis e integração com os demais produtos da Rational, garantindo uma redução substancial de tempo para integrar modelos. [8]O Rose, no entanto, não apresenta suporte metodológico para técnicas estruturadas e análise essencial, nem permite enfoque voltado a negócios, utilizando técnicas IDEF.

FERRAMENTAS DE SUPORTE AO PROCESSO DE DESENVOLVIMENTO FERRAMENTAS DE SUPORTE AO PROCESSO DE DESENVOLVIMENTO (continuação) (continuação)

Rational Unifield Processo (Rational Corporation) - www.rational.comO RUP é uma ferramenta para configuração de processo de desenvolvimento de software, a apartir de um processo macro, baseado em UML. Suas principais características se concentram em um desenvolvimento iterativo e incremental, orientado a objetos, com foco na criação de uma arquitetura robusta, análise de riscos e utilização de casos de uso para o desenvolvimento. [8]

O RUP foi desenvolvido para ser aplicável a uma grande classe de projetos diferentes e pode ser considerado como um framework genérico para processos de desenvolvimento. Isso significa que ele deve ser configurado para ser usado eficientemente. A configuração pode ser feita para empresas (para

Suporte de Ferramentas CASE para a Implantação do CMM pág. 26/29

definir o processo padrão de desenvolvimento da empresa) ou mesmo para projetos específicos e normalmente envolve remoção e/ou modificação de atividades do framework.

Rational Suite TestStudio (Rational Corporation) - www.rational.com/products/rs/test/index.jtmpA proposta da Rational é prover uma ferramenta completa, multi-plataforma, para automatização de testes, através da visão comum compartilhada da situação do projeto, suportando o gerenciamento de requisições de mudanças, acompanhamento de defeitos etc. O TestStudio dispnibiliza testes em cada interação nas diferentes dimensões de qualidade: funcionalidade, desempenho e confiabilidade. [8]

O pacote inclui as seguintes ferramentas: Rational Robot, Rational TestFactory™ , Rational Purify® , Rational Quantify™ , Rational PureCoverage®,

Oracle DesignerO Oracle Designer é uma ferramenta para modelagem de negócios e aplicações baseada em repositório de dados. Contempla o ciclo completo de desenvolvimento de aplicações: análise, design, geração e manutenção. Suporta a modelagem relacional ou orientada a objetos (UML), gerando automaticamente aplicações Web e cliente/servidor em diversas linguagens e ferramentas. [12]

Ambientes de Desenvolvimento: Jdeveloper, Jbuilder, OracleDeveloper

Ferramentas Adicionais: editores de texto, gerenciadores de banco de dados, compiladores, ferramentas gráficas, ferramentas de quantificação e gerenciamento de riscos (vide Seção 5.2) etc.

5.55.5 Ferramentas para Apoio Organizacional do ProjetoFerramentas para Apoio Organizacional do Projeto

KPAs: Programa de TreinamentoCoordenação Intergrupos

O grupo de apoio organizacional compreende ferramentas voltadas às atividades mais adminstrativas e de apoio à comunicação, tais como atividades de apresentações, treinamento, processo de comunicação, suporte a reuniões etc.Neste contexto, estão mais adequadas ferramentas de edição de textos, planilhas de cálculo, agendamento e comunicação .

FERRAMENTAS DE APOIO ORGANIZACIONAL DO PROJETOFERRAMENTAS DE APOIO ORGANIZACIONAL DO PROJETOLotus Notes R5 (Lotus) - www.lotus.comO Notes R5 fundamenta-se nos recursos mais populares dos produtos Lotus, incluindo as versões anteriores do Notes, cc:Mail e Lotus Organizer. Disponibiliza correio eletrônico, calendário, recurso de busca, agendamento corporativo (permite a criação de views "instantâneas" de várias agendas de colegas ao mesmo tempo), navegação na Internet, suporte móvel e gerenciamento de informações. [11]MSOffice (Microsoft) - www.microsoft.com O MSOffice apresenta recursos para atender atividades organizacionais administrativas. Disponibiliza planilha eletrônica (Excel), editor de textos (Word) e ferramenta para elaboração de apresentações (Power Point). [6]Bowsers - Nestcape, ExplorerGerenciadores de Banco de Dados

Suporte de Ferramentas CASE para a Implantação do CMM pág. 27/29

66 ConclusõesConclusões

O suporte para ferramentas de automação na engenharia de software deve conduzir a melhoria

da produtividade do software. O termo Computer-aided Software Engineering (CASE) é

atualmente utilizado para denominar esse suporte automatizado para o processo de engenharia

de software.

No entanto, para garantia do sucesso quanto a utilização dessas ferramentas, ou seja, para

garantia de que a utilização de produtos CASE irá conduzir à melhoria de produtividade

desejada, é preciso que a ferramenta adequada seja empregada, treinamento para a melhor

utilização das ferramentas seja proporcionado, e que os produtos CASE não sejam uma ilha

de automação onde várias atividades de processo são suportadas por extensão.

O CMM, por sua vez, tem sido adotado por grande parte das empresas de software no mundo

inteiro, como guideline para garantia da qualidade em processos de desenvolvimento.

Inserido neste contexto, este trabalho apresentou uma análise dos níveis 2 e 3 do CMM,

visando identificar os tipos de ferramentas CASE e as características necessárias para auxiliar

o alcance dos objetivos de cada KPA desses níveis.

Segundo o estudo realizado, existe ainda uma grande carência de ferramentas, por exemplo as

ferramentas necessárias suportar KPAs de Gerenciamento de Requisitos. Com relação a

ferramentas específicas para Garantia e Gestão da Qualidade, elas ainda são disponibilizadas

com enfoque fortíssimo no processo de manufatura, que não se enquadra efetivamente no

processo de Software. E mesmo assim, existem poucas disponíveis no mercado.

As ferramentas de planejamento e acompanhamento de projetos são aplicáveis a qualquer tipo

de projeto e as que apresentam uma maior abrangência em suas funções, ainda representam

um custo muito alto para as pequenas e médias empresas.

A tabela abaixo apresenta um sumário do trabalho realizado. Vale salientar que as ferramentas

não foram estudadas para efetuação de uma análise comparativa, mas apenas foram

levantadas e documentadas as funcionalidades propostas por cada uma delas.

GRUPOS DE FERRAMENTAS

KPA ATENDIDA SUPORTE NECESSÁRIO FERRAMENTAS

GERENCIAMENTO DE REQUISITOS

Gerenciamento de Requisitos.

. Registro de requisitos

. Rastreabilidade de requisitos

. Gerenciamento de requisitos/textos

RequisitPro; WSP; Editores de textos; Ferramentas de Modelagem; Gerenciadores de configuração; Gerenciadores de Banco de Dados.

Suporte de Ferramentas CASE para a Implantação do CMM pág. 28/29

PLANEJAMENTO E GERENCIAMENTO DE PROJETO

Planejamento de Projeto de Software;Acompanhamento do Projeto de Software;Gerência de Subcontratos;Garantia da Qualidade de Software.

. Planilhas eletrônicas

. Modelos de estimativa

. Ambiente par planejamento, criação de cronogramas e acompanhamento de projetos. Base de dados contendo dados históricos de projetos passados ou em andamento. Registro, acompanhamento e tratamento estatístico de medição. Quantificação e gerenciamento de riscos

MSProject; Primavera Project Planner; Artemis Views; Risk+;Primavera MonteCarlo; Excel; editores de textos

GERENCIAMENTO DA CONFIGURAÇÃO

Gerenciamento da Configuração;Gerenciamento de Requisitos.

. Gerenciamento de bases de dados

. Controle de versões e mudanças

. Acompanhamento de produtos

. Gerência de configuração

StarTeam; VisualSourceSafe;;ClearCase; gerenciadores de BD

SUPORTE AO PROCESSO DE DESENVOLVIMENTO

Foco no Processo Organizacional ;Definição do Processo da Organização;Gerenciamento de Software Integrados;Engenharia de Produtos de Software;Revisões ;Garantia da Qualidade de Software.

. Análise estatística

. Editoração eletrônica

. Gerência de banco de dados

. Modelagem de processos

.Quantificação e gerenciamento de riscos.

. Suporte a engenharia de software, análise de requisitos, design, produção de código e testes.

Rational Rose; Paradigm; System Architect.; RUP; Rational Suite TestStudio; Oracle Designer; Ambientes de Desenvolvimento; editores de textos; gerenciadores de BD; compiladores; ferramentas gráficas; quantificação e gerenciamento de riscos.

APOIO ORGANIZACIONAL DO PROJETO

Programa de Treinamento;Coordenação Intergrupos.

. Desenvolvimento de apresentações e cursos

. Gerência de bancos de dados.

. Sistemas de processamento de texto

. Ferramentas gráficas

. Planilhas eletrônicas

. Gerenciamento de problemas

. Ferramentas de gerenciamento de bibliotecas

. Correio eletrônico e browsers WWW

.Lotus Notes R5 (Lotus)

.MSOffice (Microsoft)

.Nestcape, Explorer

.Gerenciadores de Banco de Dados

Suporte de Ferramentas CASE para a Implantação do CMM pág. 29/29

77 ReferênciasReferências

[1] PAULK, Mark - The Capability Maturity Model - Guidelines for Improving the Software ProcessCarnegie Mellon University - SEI

[2] FIORINE, Soeli, VON STAA, Arndt, BAPTISTA, Renan - Engenharia de Software com CMM

[3] PRESSMAN - Engenharia de Software

[4] KRAUSE, Whalter - Gerenciamento de Risco: Garantindo o Sucesso da TIArtigo publicado na Developers' Magazine, Setembro 1999

[5] CAJADO, Eduardo - Gerência de projetos: Conceitos, Objetivos e Softwares de ApoioArtigo publicado na Developers' Magazine, Setembro 1999

[6] MICROSOFT, Página Web www.microsoft.com

[7] CHOOSE TECHNOLOGIES, Página Web www.choose.com

[8] RATIONAL CORPORATION, Página Web www.rational.com

[9] PRIMAVERA SYSTEMS, Página Webhttp://www.primavera.com/products/p3e_feat.html

[10] ARTEMIS MANAGEMENT SYSTEMS, Página Web http://www.artemispm.com/w4122.html

[11] LOTUS, Página Webwww.lotus.com

[12] ORACLE, Página Webwww.oracle.com