Você está na página 1de 24

Computer-Aided Software Engeneering

◦ A – Assisted  Sinónimo de Aided

◦ A – Automated  Realçe na importância da utilização de meios informáticos


nas actividades relacionadas com a engenharia de software, de modo a que essas
actividades sejam realizadas de forma automática

◦ S – System  Dá abrangência maior ao conceito CASE. Aspectos relacionados


com as questões do Sistema de Informação no seu todo (Planeamento Estratégico
de Sistemas de Informação e da definição da Arquitectura de Sistemas de
Informação )

"Engenharia de Software Auxiliada por Computador"

CASE
Carma McClure [McClure89]: "Uma combinação de
ferramentas de software e de metodologias de
desenvolvimento estruturadas".

B. Terry [Terry90]: "CASE designa um conjunto de


ferramentas que auxiliam um programador ou um gestor
de projectos durante uma ou mais fases do processo de
desenvolvimento de software, incluindo a manutenção".

SoftwareEngineering Institute (www.sei.cmu.edu): "CASE


é a utilização de meios de suporte baseados em
computador no processo de desenvolvimento de software"

CASE – Definição (1)


Conjunto de técnicas e ferramentas informáticas que
auxiliam o engenheiro de software no desenvolvimento de
aplicações, com o objectivo de diminuir o respectivo
esforço e complexidade, de melhorar o controle do
projecto, de aplicar sistematicamente um processo
uniformizado e de automatizar algumas actividades,
nomeadamente a verificação da consistência e qualidade do
produto final e a geração de artefactos.

Uma ferramenta CASE não é mais do que um produto


informático destinado a suportar uma ou mais actividades
de engenharia de software, relacionadas com uma (ou mais)
metodologia(s) de desenvolvimento.

CASE – Definição (2)


Ferramentas de Ambientes Integrados
Ferramentas de Ferramentas
Representação de Modelização
Desenvolvimento RAD
de Diagramas Visual

Editores de Texto DFD’s Geração de código Integração


Compiladores ER’s Realização de Testes Modelização O-O
Interpretadores Esquemas de BD’s Gestão de Projectos Modelização
Linkers Documentação negócio

Evolução Histórica
Ferramentas CASE – identificam-se 3 grandes focos de
especialização

1. Especialização em uma tarefa específica do processo de


desenvolvimento de software.

2. Concentração na disponibilização de funcionalidades relevantes


para a fase de concepção (por exemplo, elaboração de diversos
diagramas).

3. Direccionado particularmente para a fase de implementação


(por exemplo, desenvolvimento visual, geração de código e
apoio à realização de testes).

Arquitectura das Ferramentas CASE


(1)
A arquitectura típica das ferramentas CASE é constituída por
um conjunto de aplicações/componentes, suportados por um
repositório integrado

Modelização da
Modelização de Base de Dados Desenvolvimento
Software de Aplicações

Modelização de
Processos do Negócio Gestão do Testes
Repositório

Gestão de Projectos Gestão de Configuração


e Alterações
Repositório
Centralizado

Arquitectura das Ferramentas CASE


(2)
Componente da arquitectura das ferramentas
CASE que é utilizado como:
◦ meio de armazenamento, gestão e partilha de objectos,
modelos, documentos, ou quaisquer outros artefactos,
produzidos por algum dos restantes componentes que
completam a arquitectura.

Na prática os repositórios são concretizados


através de base de dados (Oracle, Sybase) ou
por simples sistemas de gestão de ficheiros
(Alguns com formato proprietário).

Repositório nas Ferramentas CASE


As ferramentas CASE são principalmente classificadas pelos
seguintes critérios:

1. A análise das funcionalidades disponíveis;

2. O papel que representam para os gestores ou para elementos técnicos;

3. A possibilidade de serem utilizados nas várias fases do processo de


desenvolvimento de software.

A taxonomia das ferramentas CASE é particularmente importante,


pois facilita a compreensão da abrangência de uma determinada
ferramenta e da sua aplicabilidade nas fases e actividades do
processo de desenvolvimento de software.

Critérios de Classificação das


ferramentas CASE
 Upper CASE - aplicações que se especializaram na
fase de concepção do software (ferramentas de análise e
especificação e/ou modelação de requisitos).

 Lower CASE - aplicações utilizadas na fase de


implementação (ferramentas de desenho técnico, de
edição e compilação de código e de testes).

 i CASE – aplicações que juntam as fases de concepção ,


implementação e controlo de qualidade do software

Categorias das ferramentas CASE


As Ferramentas CASE podem ainda ser agrupadas nas seguintes
categorias:

 Modelação de processos de negócio


 Modelação de análise e desenho do sistema
 Desenho da base de dados
 Programação de aplicações
 Gestão de alterações no software
 Testes
 Orientadas para a Gestão de Projectos

Categorias das ferramentas CASE


 Uniformização do processo de desenvolvimento,
das actividades realizadas, e dos artefactos
produzidos.
 Reutilização de vários artefactos ao longo do
mesmo projecto, e entre projectos, promovendo o
consequente aumento da produtividade.
 Automatização de actividades, com particular
destaque ao nível da geração de código e de
documentação.

Vantagens (1)
 Diminuição do tempo de desenvolvimento, recorrendo à
geração automática de diversos artefactos do projecto, ou à
realização de outros previamente existentes.
 Integração de artefactos produzidos em diferentes fases do
ciclo de desenvolvimento de software, em que os outputs de
uma ferramenta são utilizados como inputs de outra.
 Demonstração da consistência entre os diversos modelos e
possibilidade de verificar a correcção do software.
 Qualidade do produto final superior.

Vantagens (2)
 Incompatibilidade de ferramentas

 Elevado custo da ferramenta e treino para a


sua utilização

 Elevada curva de aprendizagem

 Limitações na flexibilidade da documentação

Desvantagens
A estratégia de introdução das ferramentas CASE numa
organização pode ser diversa, nomeadamente:
 Suite : selecção de um conjunto integrado de
ferramentas, todas do mesmo fornecedor.
 Best-of-breed : selecção das melhores ferramentas
para cada funcionalidade, suportadas por um
repositório integrado.
 Pontual : selecção de ferramentas para cobrir áreas
pontuais.

Escolha das Ferramentas CASE


Fase de desenvolvimento Ferramenta CASE
TurboCase (StructSoft, Inc.)
Análise EasyCase
DecDesign (DEC)
SPARCSIM (SUN), X-Windows,
Design
Motiff, HyperCard, SQL
Implementação Eiffel, C++
Integração e Teste Code Visualization
desk-top publishing: pagemaker
(Aldus), e-mail, audit source code:
Ferramentas de suporte geral
diff (Unix), Sistemas de gestão de
bases de dados: RDB (DEC)

Ferramentas CASE
A disponibilização de diversos
mecanismos de automatização de tarefas
é uma das principais vantagens das
ferramentas CASE

As ferramentas CASE possuem


funcionalidades interessantes como a
geração automática de código e a geração
de documentação

Geração Automática de Artefactos


(1)
Round-Trip Engineering
◦ “Concept to Code” - na prática deveria ser possível a
partir da especificação dos requisitos de um problema,
definir e implementar a respectiva solução.

◦ Forward Engineering - efectuar as fases posteriores


a especificação de forma automática.

◦ Reverse Engineering - a partir de código


previamente existente, produzir os modelos de
desenho e de análise correspondentes
Geração Automática de Artefactos
(2)
Round-Trip Engineering

Geração Automática de Artefactos


(3)
Geração de Documentação
◦ A geração de documentação de uma forma
automática é uma funcionalidade importante em
qualquer ferramenta CASE

◦ No inicio de um projecto de raiz, liberta a equipa de


projecto de uma tarefa demorada e que muitas vezes
não chega a ser devidamente concluída

◦ Também muito útil em projectos/aplicações já


existentes e não documentados

Geração Automática de Artefactos


(4)
Geração de Documentação
◦ É expectável que as ferramentas CASE disponibilizem
um conjunto diverso de funcionalidades de geração de
documentação, tais como:
 Documentação de modelos e de código fonte.
 Geração de múltiplos formatos de documentos ( Html,
Word, etc... ).
 Geração de documentação com base em Templates.
 Possibilidade de configuração da geração de documentos.
 Possibilidade de personalização e extensão do processo de
geração de documentação através de linguagens de
scripting.

Geração Automática de Artefactos


(5)
 Complexidade dos programas

 Tamanho dos programas

 Comunicação entre os programadores

 Limitações de tempo

 Factores sociais

Efeito na Produtividade do
Programador
Recomendável o uso de um conjunto limitado de
ferramentas CASE, de preferência apenas uma,
que integrasse as diversas funcionalidades
necessárias, de forma a rentabilizar o
investimento e facilitar a integração.

No entanto, podem existir razões que justifiquem


que algumas organizações optem por
estratégias diferentes.

Avaliação das Ferramentas CASE (1)


Os critérios de avaliação são diversos e devem ser aplicados à realidade
concreta de uma organização.

No entanto, o processo de selecção deve ser semelhante às avaliações


de outras aplicações criticas para o negócio de uma organização, e
designadamente deve incluir:

1. Elaboração de uma grelha de critérios adaptada à realidade da organização,


agregados por grandes grupos, e onde deverão estar critérios funcionais,
tecnológicos, financeiros e de suporte do fornecedor;

2. Atribuição de factores de peso a cada critério, consoante a respectiva


importância para a organização;

3. Avaliação e classificação com base em informação recolhida e em


demonstrações;

4. Selecção com base na avaliação efectuada.

Avaliação das Ferramentas CASE (2)


Fazer um estudo comparativo sobre as
ferramentas CASE StartUML, ArgoUML e
Enterprise Architect de acordo com os
conceitos estudados.

Montar uma apresentação de 15 minutos.

Prática

Você também pode gostar