Engenharia de Software I. Curso de Sistemas de Informação. Karla Donato Fook DESU / DAI. Ferramentas

Tamanho: px
Começar a partir da página:

Download "Engenharia de Software I. Curso de Sistemas de Informação. Karla Donato Fook karladf@ifma.edu.br DESU / DAI. Ferramentas"

Transcrição

1 Engenharia de Software I Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DAI 2015 Ferramentas 1

2 Computer-Aided Software Engineering CASE Engenharia de Software Auxiliada por Computador 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. 4 2

3 Como acontece esse apoio? Pela automação de algumas atividades de processo 5 Quais atividades podem ser automatizadas? Documentação Tratamento de Requisitos Projeto e Análise Implementação Ferramentas de Revisão e Testes 6 3

4 Documentação 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 Modo conveniente para registrar dados e metadados Editor WYSIWYG (gratuito), da Altova ixedit, código aberto XMLFox, gratuito LibreOffice 7 Documentação Documentação LibreOffice São integrados de forma a trocar dados entre si Editor de textos WYSIWYG (What You See Is What You Get) Planilhas eletrônicas Bancos de dados Software de apresentação Gratuito O formato OpenDocument é público 8 4

5 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 9 Tratamento de Requisitos Tratamento de Requisitos Armazenagem e gerenciamento Permite registrar artefatos de diversos tipos, como diagramas UML, casos de teste ou documentos Exemplos IBM Rational Rose Pro Borland Caliber RM 10 5

6 Tratamento de Requisitos 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) Zeta Suportam a linguagem B para formalização de requisitos Ferramenta gratuita que suporta a notação Z 11 Tratamento de Requisitos 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 12 6

7 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 13 Projeto e Análise Arquitetura Utilizando UML JDeveloper, da Oracle Sun Java Studio Enterprise Astah StarUML Com extensão para SIGs (UFV) AgoUML Com extensão para SIGs 14 7

8 Projeto e Análise Arquitetura Projeto Astah Implementação Implementação Documentação de Código Doxigen Para gerar gráficos, utiliza a Graphiviz, ferramenta gratuita desenvolvida pelo Bell Labs ( JavaDoc 16 8

9 Implementação Implementação Controle de Versões CVS (Concurrent Version System) Gratuito Código aberto Projeto base para outros sistemas de controle de versão TortoiseCVS, em TortoiseSVN, em JediCVS 17 Ferramentas de Revisão e Testes 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 em As ferramentas têm aplicação diversa Testes de desempenho Interfaces gráficas (GUI) Estresse de aplicações web 18 9

10 Apoio a Metodologias Apoio a Metodologias Ferramentas que podem auxiliar na aplicação de metodologias ágeis, em particular a XP VersionOne XPlanner (gratuita) XPMT (gratuita) 19 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 20 10

11 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 21 Quais são os fatores que limitam o aprimoramento pelo uso de CASE? A engenharia de software é baseada no pensamento criativo. 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 22 11

12 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 23 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 São classificadas de acordo com sua organização em unidades integradas que apóiam uma ou mais atividades de processo 24 12

13 Classificação funcional das ferramentas CASE 25 Classificação sob a perspectiva de processo das ferramentas CASE 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 Specification Design Implementation Verification and Validation 26 13

14 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 em desenvolvimento

15 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 29 Gerenciamento de Configuração É uma disciplina que pode ser aplicada para atividades incluindo desenvolvimento de software controle de documentação problemas de rastreamento controle de mudanças e manutenção 30 15

16 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 31 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 O apoio de uma ferramenta CASE é fundamental 32 16

17 Gerenciamento de Configuração Exemplos Rastreamento de defeitos Bugzilla Gerenciamento de versões RCS (Tichy, 1985) CVS (Berliner, 1990) Construção de sistemas make (Feldman, 1979; Oram e Talbott, 1991) imake (DuBois, 1996) 33 Gerenciamento de Configuração Apoio para gerenciamento de mudanças Apoio para gerenciamento de versões 34 17

18 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 35 Recursos GC - Apoio para gerenciamento de versões 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 Múltiplas versões podem ser desenvolvidas em paralelo Suporte a projetos O sistema pode dar suporte a vários projetos 36 18

19 Lembrando de ferramentas CASE Incluem Editores de diagramas Dicionário de dados Compiladores Debuggers Ferramentas de construção de sistemas