ENGENHARIA DE SOFTWARE
RECURSOS TECNOLOGICOS PARA ENGENHARIA DE SOFTWARE
1. CASE
As Ferramentas CASE (Computer-Aided Software Engineering) constituiem
uma categoria de software que tem por finalidade auxiliar as atividades de engenharia
de software, o que envolve recursos para gerencia, análise de requisitos, modelagem,
programação, testes e manutenção de software.
1.1 Classificação de CASE
Não há um padrão definido para classificar as CASE, de um modo geral é
possível agrupá-las em:
Upper CASE
Lower CASE
I-CASE
As Upper CASE, também referenciadas como Back End, são as CASE
destinadas a apoiar as etapas iniciais de criação dos sistemas: as fases de
planejamento, análise e projeto do sistema.
As Lower CASE, também referenciadas como Front End, são as CASE
destinadas a apoiar a codificação testes e manutenção da aplicação.
As I-CASE , também referenciadas como Integrated CASE, são as CASE
destinadas a apoiar todo o ciclo de vida do software, desde os requisitos do sistema
até o controle final da qualidade do produto gerado, o software.
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 Projetos
1. 2. Vantagens do uso de CASE
Dentre as principais vantagens do uso de ferramentas CASE
destacar:
•
•
•
podemos
Qualidade no produto final
Produtividade
Agilizar o tempo para tomada de decisão
Nota de Aula - Prof. Sidney Vieira
1
•
•
Menor quantidade de códigos de programação
Melhoria e redução de custos na manutenção
2. RAD
Uma RAD (Rapid Application Development), Desenvolvimento Rápido de
Aplicativos, é uma ferramenta que visa a maior produtividade dos desenvolvedores. As
ferramentas RAD devem propiciar um desenvolvimento de software interativo e
incremental que enfatiza um ciclo de desenvolvimento extremamente curto (entre 60 e
90 dias).
O termo foi registrado por James Martin em 1991 e tem substituído
gradativamente o termo de prototipação rápida que já foi muito utilizada no passado.
Estas ferramentas empregam técnicas de quarta geração, trabalham com a
reutilização de componentes de programa existentes quando possível, ou criam
componentes reusáveis.
Dentre as vantagens de se empregar uma rad temos:
•
•
•
•
•
•
•
•
Permite o desenvolvimento rápido e/ou a prototipagem de aplicações;
Enfatiza um ciclo de desenvolvimento extremamente curto (entre 60 e
100 dias);
Cada função principal pode ser direcionada para a uma equipe RAD
separada e então integrada a formar um todo;
Criação e reutilização de componentes;
Usado principalmente para aplicações de sistemas de informações;
Grande redução de codificação manual;
Provável custo reduzido;
Aparência padronizada (As APIs e outros componentes reutilizáveis
permitem uma aparencia consistente).
Exemplos de RAD
DELPHI, VISUAL BASIC, wxDesigner, Anubis PHP
Um comportamento de RAD no Delphi é o fato de ao se colocar um botão num
formulário, ele automaticamente acrescenta, na clausula "uses", a library que contém o
objeto Tbutton e cria um Tbutton. Caso o objeto TButton possuir dependências de
outras classes, o Delphi se encarrega de encontra-las e inclui-las em sua aplicação.
3 IDE
Um IDE (Integrated Development Environment), Ambiente Integrado de
Desenvolvimento, é um programa de computador que reúne características e
ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este
processo. Uma IDE deve disponibilizar mais de um ambiente de codificação.
Uma IDE deve ser composta de:
Nota de Aula - Prof. Sidney Vieira
2
•
•
•
•
•
•
•
•
•
Editor - edita o código-fonte do programa escrito na linguagem
suportada pela IDE;
Compilador - compila o código-fonte do programa, editado em uma
linguagem específica e a transforma em linguagem de máquina;
Linker - liga os vários "pedaços" de código-fonte, compilados em
linguagem de máquina, em um programa executável.
Depurador - auxilia no processo de encontrar e corrigir erros (bugs) no
código-fonte do programa, na tentativa de aprimorar a qualidade de
software;
Modelagem - criação do modelo de classes, objetos, interfaces,
associações e interações dos artefatos envolvidos no software com o
objetivo de solucionar as necessidades-alvo do software final.
Geração de código - Possibilita a geração de código com base em um
modelo gerado pelo no próprio ambiente. Esta característica mais
explorada em ferramentas CASE,
Distribuição - auxilia no processo de criação do instalador do software,
ou outra forma de distribuição do mesmo, seja discos ou via internet.
Testes Automatizados - realiza testes no software de forma
automatizada, com base em scripts ou programas de testes
previamente especificados, gerando um relatório dos mesmos.
Refatoração - consiste na melhoria constante do código-fonte do
software, seja na construção de código mais otimizado, mais limpo e/ou
com melhor entendimento pelos envolvidos no desenvolvimento do
software.
Exemplos de IDE:
Eclipse, NetBeans, Eric Python IDE, Boa Constructor, o próprio delphi é
considerado uma IDE RAD
4 Framework
Um Framework é um conjunto de módulos que colaboram para realizar uma
responsabilidade para um domínio de um sub-sistema da aplicação.
Framework de software compreende de um conjunto de módulos (funções e
procedures), implementadas em uma linguagem específica, usadas para auxiliar o
desenvolvimento de software de forma que os mesmos são reaproveitados.
O framework atua onde há funcionalidades em comum a várias aplicações,
porém para isso as aplicações devem ter algo razoavelmente grande em comum para
que o mesmo possa atingir a várias aplicações.
Um framework deve:
•
•
•
Ser reusável
Bem documentado
Fácil de usar
Nota de Aula - Prof. Sidney Vieira
3
•
•
Conter funcionalidade abstrata (sem implementação) que deve ser completada
Deve ser de uso seguro não permitindo que seus modulos sejam destruídos pelo
usuário(desenvolvedor)
Exemplos de Framework:
miolo, microsoft.net, Zend, Sring, JUnit
4 – Reengenharia de Software
O termo “Engenharia Reversa” tem sua origem na análise de hardware, pois é
comum a prática de decifrar projetos de produtos finalizados com intuito de duplicá-los.
O conceito de Engenharia Reversa de Software é similar. Porém,
tradicionalmente o objetivo da dessa engenharia reversa é obter apenas um
entendimento do sistema
Podemos definir Engenharia Reversa de software como o processo de exame
e compreensão do software existente, para recapturar ou recriar o projeto e decifrar os
requisitos atualmente implementados pelo sistema, apresentando-os em um nível ou
grau mais alto de abstração
Nota de Aula - Prof. Sidney Vieira
4
Download

As Ferramentas CASE (Computer-Aided Software Engineering