Engenharia de Software I
Curso de Sistemas de Informação
Karla Donato Fook
DESU / DComp 2017
Ferramentas
Computer-Aided Software Engineering – CASE
Engenharia de Software Auxiliada
por Computador
5
Computer-Aided Software Engineering – CASE
Nome dado ao software usado para apoiar as atividades de processo de software, como engenharia de requisitos,
projeto, desenvolvimento de programas e testes
6
Como acontece esse apoio?
7
Quais atividades podem ser automatizadas?
O desenvolvimento dos modelos gráficos de sistema como parte da especificação de requisitos ou do projeto de software
A compreensão de um projeto por meio de um dicionário de dados
A geração de interfaces com o usuário com base em uma descrição de interface gráfica
Quais atividades podem ser automatizadas?
O debugging do programa por meio do fornecimento de informações sobre o programa em execução
A tradução automática de programas a partir de uma versão antiga de uma linguagem de programação, como COBOL, para uma versão mais recente
9
Quais atividades podem ser automatizadas
por quais ferramentas?
Documentação
Tratamento de Requisitos
Projeto e Análise
Implementação
Ferramentas de Revisão e Testes
Documentação
Aplicações em XML (eXtensible Markup Language)
Tem se tornado um padrão para armazenamento de
informações, em especial quando se faz a gerência de conteúdo
LibreOffice
São integrados de forma a trocar dados entre si
• Planilhas eletrônicas • Bancos de dados • Software de apresentação 10
Documentação
Documentação
Documentação
Wiki
Passam a ser utilizadas para a gerência de grandes
quantidades de informação
Mais conhecida: Wikipedia
Permite a criação de um Website, uma intranet, por
exemplo
Os dados podem ser mantidos em um banco de dados,
como o MySQL, por exemplo
Caráter colaborativo 11
Documentação
Documentação
Tratamento de Requisitos
Armazenagem e gerenciamento Permite registrar artefatos de diversos tipos, como
diagramas UML, casos de teste ou documentos
Exemplos
• Astah
• IBM Rational Rose Pro • Borland Caliber RM
Tratamento de Requisitos
Descrições textuais e formais
Exemplos de ferramentas para verificação formal de
requisitos especificados por métodos formais
• Atelier-B (comercial) e B4free (uso restrito acadêmico)
• Suportam a linguagem B para formalização de
requisitos • Zeta
• Ferramenta gratuita que suporta a notação Z
13
Tratamento de Requisitos
Descrições textuais e formais
Redes de Petri
Linguagem natural Ferramentas experimentais
• ARM Automated Requirement Measurement (NASA): o software analisa textos escritos em inglês e identifica neles elementos como listas de itens, exemplos ou frases cuja interpretação possa ser ambígua
• Matafor (MIT): traduz especificações em código
Tratamento de Requisitos
14
Projeto e Análise
Interfaces e Protótipos
O Eclipse, com extensão para o Visual Editor ou BIRT Teresa, do ISTI, na Itália
• Suporta metodologia para o projeto e avaliação de interfaces com base em organização de tarefas
15
Projeto e Análise
Projeto e Análise
Arquitetura Utilizando UML • JDeveloper, da Oracle • Sun Java Studio Enterprise • Astah• StarUML
• Com extensão para SIGs (UFV)
• AgoUML
Projeto e Análise
Arquitetura Astah http://astah.change-vision.com/en/product/astah-community.html https://members.change-vision.com/members/files/astah_community 17Projeto e Análise
Projeto
Implementação
Documentação de Código Doxigen JavaDoc 18Implementação
Implementação
Controle de Versões
GIT Hub
CVS (Concurrent Version System)
• Gratuito • Código aberto
• http://www.cvshome.com
• Projeto base para outros sistemas de controle de versão
TortoiseCVS, emhttp://www.tortoisecvs.org TortoiseSVN, emhttp://tortoisesvn.tigris.org
JediCVS 19
Implementação
Ferramentas de Revisão e Testes
As revisões e testes são instrumentos de controle de qualidade de um projeto
Uma relação de ferramentas para teste de software pode ser encontrada emhttp://opensourcetesting.org
As ferramentas têm aplicação diversa
Testes de desempenho
Interfaces gráficas (GUI)
Apoio a Metodologias
Ferramentas que podem auxiliar na aplicação de metodologias ágeis, em particular a XP
VersionOne XPlanner (gratuita) XPMT (gratuita) 21
Apoio a Metodologias
Apoio a Metodologias
22Quais são os fatores que limitam o
aprimoramento pelo uso de CASE?
Os sistemas CASE existentes automatizam as atividades rotineiras, mas as tentativas de aproveitar a tecnologia de inteligência artificial para apoiar o projeto não foram bem-sucedidas
23
Quais são os fatores que limitam o
aprimoramento pelo uso de CASE?
Na maioria das organizações, a engenharia de software é uma atividade de equipe e os engenheiros de software passam boa parte do tempo interagindo com outros
membros da equipe
A tecnologia CASE não pode ajudar muito nesse caso
Perspectivas da classificação CASE
Perspectiva Funcional
São classificadas de acordo com suas funções específicas Perspectiva de Processo
São classificadas de acordo as atividades de apoio que fornecem Perspectiva de Integração
25
Classificação funcional das ferramentas CASE
26
Classificação sob a perspectiva de processo das
ferramentas CASE
Specification Design Implementation Verification and Re-eng ineering tools
Testing tools Debugg ing tools Prog ram analysis tools Language-processing tools
Method suppor t tools Prototyping tools Configuration management tools Change management tools Documentation tools Editing tools Planning tools
Ferramentas CASE para Gerenciamento
de Configuração
Gerenciamento de Configuração de Software (SCM
-Software Configuration Management)
Desenvolvimento e uso de padrões e procedimentos para o gerenciamento de sistemas de software
29
Gerenciamento de Configuração
Controla a evolução do sistema de software, gerenciando versões dos componentes de software e seus relacionamentos
O propósito é identificar todos os componentes do software e controlar sua evolução através das várias fases no ciclo de vida de desenvolvimento
30
Gerenciamento de Configuração
É uma disciplina que pode ser aplicada para atividades incluindo
desenvolvimento de software controle de documentação problemas de rastreamento
31
Gerenciamento de Configuração
Os procedimentos de gerenciamento de configuração definem
como registrar e processar mudanças de sistema como relacioná-las aos componentes de sistema e
os métodos usados para identificar diferentes versões dele É considerado como parte do gerenciamento de qualidade do
software
Gerenciamento de Configuração
Ferramentas de gerenciamento de configurações são usadas para armazenar versões de componentes do sistema e rastrear releases das versões do sistema
33
Gerenciamento de Configuração
Exemplos
Construção de sistemas
• make (Feldman, 1979; Oram e Talbott, 1991) • imake (DuBois, 1996) Rastreamento de defeitos • Bugzilla Gerenciamento de versões • RCS (Tichy, 1985) • CVS (Berliner, 1990) 34
Gerenciamento de Configuração
Apoio para gerenciamento de mudanças
35
GC - Apoio para gerenciamento de mudanças
Recursos
Editor de formulários Sistema de workflow
• Permite à equipe de GC definir quem deve processar o formulário de solicitação de mudança e a ordem de processamento.
• Encaminha automaticamente os formulários para as pessoas corretas no tempo certo
Banco de dados de mudança
• Usado no gerenciamento de todas as propostas de mudanças
Sistema de relato de mudanças
• Gera relatórios sobre a situação das mudanças
GC - Apoio para gerenciamento de versões
Recursos
Identificação de versões e releases Gerenciamento de armazenamento
• Visa reduzir o espaço de armazenamento para as versões
Registro de histórico de mudanças
• Mudanças de executadas no código são registradas e listadas
Desenvolvimento independente
37
Lembrando de ferramentas CASE
Incluem
Editores de diagramas Dicionário de dados Compiladores Debuggers
Ferramentas de construção de sistemas ...