U IVERSIDADE CATÓLICA DE GOIÁS DEPARTAME TO DE COMPUTAÇÃO GRADUAÇÃO EM CIÊ CIA DA COMPUTAÇÃO



Documentos relacionados
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

UML - Unified Modeling Language

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Fase 1: Engenharia de Produto

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

MASTER IN PROJECT MANAGEMENT

Universidade Paulista

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

PROJETO DE FÁBRICA DE SOFTWARE

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Prof. Marcelo Machado Cunha

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Plano de Gerenciamento do Projeto

Documento de Arquitetura

ENGENHARIA DE SOFTWARE I

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Engenharia de Software III

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Gerenciamento de Projetos

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Introdução à Computação

Módulo 4: Gerenciamento de Dados

Requisitos de Software

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

PLANEJAMENTO E PROJETOS. Lílian Simão Oliveira

Introdução à Engenharia de Software

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

GARANTIA DA QUALIDADE DE SOFTWARE

Wilson Moraes Góes. Novatec

15/09/2015. Gestão e Governança de TI. Modelo de Governança em TI. A entrega de valor. A entrega de valor. A entrega de valor. A entrega de valor

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português

Engenharia de Software

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Autores/Grupo: TULIO, LUIS, FRANCISCO e JULIANO. Curso: Gestão da Tecnologia da Informação. Professor: ITAIR PEREIRA DA SILVA GESTÃO DE PESSOAS

Gerenciamento de Riscos do Projeto Eventos Adversos

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software na Prática Hélio Engholm Jr.

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

RiskFree Uma ferramenta de apoio à gerência de riscos em projetos de software

PLANO DE GERENCIAMENTO DO PROJETO

Processo de Desenvolvimento de Sites

Políticas de Qualidade em TI

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Noções de. Microsoft SQL Server. Microsoft SQL Server

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Cargo Função Superior CBO. Tarefas / Responsabilidades T/R Como Faz

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Conceitos de Banco de Dados

Dados do Projeto. Nome do Projeto. Fingerprint Access Users. Data de Inicialização 14/04/2012

Gerenciamento de custos do projeto

Engenharia de Software

Extração de Requisitos

ISO/IEC 12207: Gerência de Configuração

Engenharia de Requisitos

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Implantação de um Processo de Medições de Software

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Tipos de teste de software

Figura 1 - Arquitetura multi-camadas do SIE

2 Diagrama de Caso de Uso

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Trabalho Interdisciplinar. MS Project

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Fábrica de Software 29/04/2015

Projeto de Sistemas I

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Gerenciamento de Níveis de Serviço

Unidade II MODELAGEM DE PROCESSOS

A Disciplina Gerência de Projetos

4 O Workflow e a Máquina de Regras

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Gerência de Projetos

Engenharia de Requisitos Estudo de Caso

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Software automatizado para controle de consultas da clínica de fisioterapia

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Pós Graduação Engenharia de Software

Introdução a Computação

Transcrição:

U IVERSIDADE CATÓLICA DE GOIÁS DEPARTAME TO DE COMPUTAÇÃO GRADUAÇÃO EM CIÊ CIA DA COMPUTAÇÃO ESTUDO SOBRE FERRAME TAS CASE LUCAS NOBERTO DOS SANTOS JUNHO 2009

U IVERSIDADE CATÓLICA DE GOIÁS DEPARTAME TO DE COMPUTAÇÃO GRADUAÇÃO EM CIÊ CIA DA COMPUTAÇÃO ESTUDO SOBRE FERRAME TAS CASE Trabalho de Conclusão de Curso apresentado por Lucas Noberto dos Santos à Universidade Católica de Goiás, como requisito parcial para obtenção do título de Bacharel em Ciências da Computação, aprovado em 25/06/2009 pela Banca Examinadora: Joriver Rodrigues Canêdo, Me UCG - Orientador Nilson Cardoso Amaral, Dr. UCG Nibney França, UCG I

ESTUDO SOBRE FERRAME TAS CASE LUCAS NOBERTO DOS SANTOS Trabalho de Conclusão de Curso apresentado por Lucas Noberto dos Santos à Universidade Católica de Goiás, como parte dos requisitos para obtenção do título de Bacharel em Ciências da Computação. Joriver Rodrigues Canêdo, Me Orientador Pedro Araújo Valle, Me Coordenador de Trabalho de Conclusão de Curso II

AGRADECIME TOS Ao Professor Joriver Rodrigues Canêdo, orientador acadêmico, pelo apoio, confiança depositada e inestimável contribuição, que se estende muito além desta obra. Aos professores Nilson Cardoso Amaral e Nibney França pelas sugestões e ensinamentos. Aos professores André Luiz Alves e Adriana Silveira de Souza, cujos conhecimentos, ensinados em matérias ministradas por eles, ajudaram na confecção do capítulo dois. Ao professor Vicente Paulo de Camargo, por me apresentar as ferramentas alvo da comparação, e pelos conhecimentos e prática que levaram a criação do documento de análise utilizado. Ao professor Ivon Rodrigues Canedo, pelos conhecimentos de banco de dados adquiridos durante matéria ministrada por ele. A todos os outros professores da universidade, integrantes do corpo docente e convidados, que de alguma forma contribuíram para a minha formação. Aos meus colegas de turma, pelo companherismo desprendido. À minha mãe Maria Celina, pelo exemplo de vida, amor, ajuda financeira e tantas mais no decurso de minha graduação. Às minhas irmãs Raquel e Letícia, pelo incentivo e motivação. A meu pai João Noberto (in memorian), por todo companherismo dispensado a nós em todos os momentos em que esteve presente em nossas vidas. A DEUS, pela força para continuar e tantas graças mais. III

RESUMO Apresenta-se um estudo sobre ferramentas de auxílio ao desenvolvimento de software, Computer Aided Software Engineering (CASE), onde o assunto é abordado de forma ampla. As partes do processo de desenvolvimento de software que poderiam ser auxiliadas por ferramentas CASE são explicadas conforme as áreas de conhecimento do Software Engineering Body of Knowledge (SWEBOK). Logo após, as definições existentes para ferramentas CASE são abordadas, com um detalhamento maior para a taxonomia por funcionalidades. Para conhecimento de algumas ferramentas reais, cinco ferramentas são explicadas tendo em vista o auxílio fornecido por elas ao desenvolvimento. Duas das ferramentas explicadas são utilizadas para um caso escolhido de forma comparativa. É mostrado que ambas são muito diferentes e apenas uma permite gerar todos os artefatos do caso escolhido. Palavras-Chave: CASE, Enterprise Architect Ultimate, JUDE Professional, Taxonomia de ferramentas CASE. IV

ABSTRACT A study is presented on tools to aid software development, Computer Aided Software Engineering (CASE), where the subject is addressed in a broad. Parts of the software development process that could be aided by CASE tools is explained as the knowledge areas of the Software Engineering Body of Knowledge (SWEBOK). Soon after, the existing definitions for CASE tools are addressed in greater detail to taxonomy of features. To know of some real tools, five tools are explained in view of the assistance provided by them for development. Two of the tools used are explained for a case chosen from a comparative way. It is shown that both are very different and one can generate all the artifacts of the case chosen. Keywords: CASE, Ultimate, Enterprise Architect, JUDE Professional, Taxonomy of CASE tools. V

ESTUDO SOBRE FERRAME TAS CASE SUMÁRIO LISTA DE FIGURAS... XII LISTA DE TABELAS... XIV LISTA DE ABREVIATURAS E SIGLAS... XV 1. INTRODUÇÃO... 20 2. DESENVOLVIMENTO DE SOFTWARE COM FERRAMENTAS CASE... 22 2.1. Requisitos de software... 23 2.2. Modelagem (projeto) de software... 24 2.3. Construção de software... 25 2.4. Teste de software... 25 2.5. Manutenção de software... 27 2.6. Gerencia de configuração de software... 28 2.7. Gerencia de engenharia de software... 29 2.8. Processo de engenharia de software... 30 2.9. Métodos de engenharia de software... 30 2.10. Qualidade de software... 31 3. CARACTERÍSTICAS DE FERRAMENTAS CASE... 33 3.1. Benefícios trazidos e dificuldades de uso... 33 3.2. Classificação por apoio ao ciclo de vida do software... 34 3.2.1. Upper CASE... 34 3.2.2. Lower CASE... 34 3.2.3. Integrated CASE... 34 3.3. Classificação por funcionalidade... 35 3.3.1. Ferramentas de engenharia de processos de negócios... 36 3.3.2. Ferramentas de gerência e modelagem de processos.... 36 3.3.3. Ferramentas de planejamento de projeto... 36 3.3.4. Ferramentas de análise de risco... 36 3.3.5. Ferramentas de gerência de projetos... 37 3.3.6. Ferramentas de rastreamento de requisitos.... 37 VI

3.3.7. Ferramentas de métricas e gerenciamento... 37 3.3.8. Ferramentas de documentação... 38 3.3.9. Ferramentas de ambiente de software... 38 3.3.10. Ferramentas de garantia da qualidade... 38 3.3.11. Ferramentas de gerenciamento de banco de dados... 38 3.3.12. Ferramentas de gerência de configuração de software... 39 3.3.13. Ferramentas de análise e modelagem... 39 3.3.14. Ferramentas PRO/SIM... 39 3.3.15. Ferramentas de desenvolvimento e interface de modelagem... 40 3.3.16. Ferramentas de prototipagem... 40 3.3.17. Ferramentas de programação... 40 3.3.18. Ferramentas de desenvolvimento web... 40 3.3.19. Ferramentas de integração e teste... 41 3.3.20. Ferramenta de análise estática... 41 3.3.21. Ferramentas de análise dinâmica... 42 3.3.22. Ferramentas de gerência de teste... 42 3.3.23. Ferramentas de teste cliente/servidor... 42 3.3.24. Ferramentas de reengenharia... 42 3.4. Formas de Integração entre Ferramentas... 43 3.5. Seleção e avaliação... 44 4. ESTUDO DE ALGUMAS FERRAMENTAS CASE... 47 4.1. Rational Rose 2000... 47 4.1.1. Interface Gráfica... 48 4.1.2. Banco de dados... 49 4.1.3. Visões e Diagramas UML... 50 4.1.4. Modelação do Negócio... 51 4.1.5. Mecanismos de Extensão... 52 4.1.5.1. Extensão dos Menus... 53 4.1.5.2. Scripts no Rose 2000... 53 4.1.5.3. Rose 2000 Automation... 53 4.1.5.4. Rose 2000 Add-Ins... 54 VII

4.1.5.5. Rose 2000 Extensibility Type Library... 54 4.1.6. Geração de Código... 55 4.1.7. Geração de Modelos de Dados... 56 4.1.7.1. Geração de Modelos de Dados para o Rose 2000... 56 4.1.7.1.1. Definição de Propriedades Gerais... 57 4.1.7.1.2. Definição de Tipos de Dados... 58 4.1.8. Geração da Interface Homem-Máquina... 58 4.1.9. Geração de Documentação... 59 4.1.9.1. Ferramenta SoDA... 59 4.1.9.2. Rose 2000 Web Publisher... 60 4.1.9.3. Scripts de geração de relatórios... 61 4.2. System Architect 2001... 61 4.2.1. Interface Gráfica... 63 4.2.2. Banco de dados... 64 4.2.3. Técnicas de Modelação... 66 4.2.3.1. Configuração das Propriedades do Projeto... 66 4.2.3.2. O System Architect 2001 e o UML... 66 4.2.3.3. Outras Técnicas de Modelação... 67 4.2.4. Modelação do Negócio... 68 4.2.5. Geração de Código... 69 4.2.5.1. Engenharia reversa... 70 4.2.6. Geração de Modelos de Dados... 70 4.2.7. Geração de Interfaces Homem-Máquina... 72 4.2.8. Mecanismos de Extensão... 73 4.2.9. Geração de Documentação... 74 4.3. Prometeu 0.99... 75 4.3.1. Os artefatos que são gerenciados... 75 4.3.2. A estratégia de rastreabilidade utilizada... 77 4.3.2.1. Informações que são utilizadas... 77 4.3.2.2. Conexões de rastreabilidade... 78 4.3.3. Algumas funcionalidades da ferramenta Prometeu 0.99... 78 VIII

4.3.3.1. Visualização das associações entre diversos artefatos (e seu status)... 78 4.3.3.2. Visualização do impacto causado por uma modificação... 79 4.3.3.3. Identificação de problemas de consistência (e atualidade) entre artefatos...... 79 4.3.3.4. Geração de documentos personalizados... 80 4.3.3.5. Identificação dos artefatos relacionados, e partes envolvidas, à correção de um defeito... 81 4.3.4. Comparação com algumas outras ferramentas... 82 4.4. Enterprise Architect 7.5... 82 4.4.1. Funcionalidades do EA... 83 4.4.2. Diferenças entre edições... 86 4.4.2.1. Edição Enterprise Architect Corporate... 86 4.4.2.2. Edição Business and Software Engineering... 86 4.4.2.3. Edição Systems Engineering... 87 4.4.2.4. Edição Ultimate... 88 4.4.2.5. Edições Enterprise Architect Professional e Desktop... 88 4.4.3. O que se pode fazer com o EA... 89 4.4.3.1. Projetar e construir sistemas diversos utilizando UML... 89 4.4.3.2. Projetar e gerenciar complexidade... 89 4.4.3.3. Compartilhar projetos... 90 4.4.3.4. Projetar, gerenciar e rastrear requisitos... 90 4.4.3.5. Desenvolver visões personalizadas e pedaços extraídos do projeto... 90 4.4.3.6. Rastrear e gerar rastros de estruturas do projeto... 91 4.4.3.7. Gerar documentação... 91 4.4.3.8. Gerar e fazer engenharia reversa de código fonte... 91 4.4.3.9. Visualizar, inspecionar e compreender software complexo... 91 4.4.3.10. Fazer transformações MDA... 92 4.4.3.11. Suporte a SOA (Service Oriented Architecture)... 92 4.4.3.12. Suporte a engenharia de sistemas... 92 4.4.3.13. Projetar banco de dados... 93 4.4.3.14. Customizar o EA... 93 IX

4.4.3.15. Fazer link do EA com outras IDEs... 93 4.5. Jude Professional 5.4... 94 4.5.1. Resumo das funcionalidades do JUDE Pro... 94 5. ESTUDO DE CASO COM COMPARAÇÃO DE FERRAMENTAS CASE... 96 5.1. O caso escolhido... 96 5.2. EA Ultimate e JUDE Pro... 97 5.3. Diagramas suportados por ambas... 99 5.4. Diagramas específicos de cada um... 99 5.5. Geração de código, modelos, documentação e suporte a idiomas... 100 5.6. Interface de usuário... 101 5.7. Comparação com produtos do caso... 103 5.7.1. Diagrama de casos de uso... 103 5.7.2. Especificação de requisitos e telas... 106 5.7.3. Diagramas de sequência... 120 5.7.4. Diagrama de contratos de operação (classes)... 123 5.7.5. Diagrama de entidade e relacionamento... 132 6. CONCLUSÃO... 140 7. REFERÊNCIAS BIBLIOGRÁFICAS... 142 8. APÊNDICES LEITURA COMPLEMENTAR... 145 8.1. Apêndice A - DOCUMENTO DE ANÁLISE DO SISTEMA PARA ADMINISTRAÇÃO DE CONDOMÍNIOS... 146 X

LISTA DE FIGURAS Figura 4. 1 - Exemplo de tela do prometeu com uma seção de um documento do tipo plano de teste [11].... 76 Figura 4. 2 - Exemplo de tela do prometeu com associação de um caso de teste a requisitos e elementos da arquitetura [11].... 77 Figura 4. 3 - Exemplo de tela do prometeu com rastreabilidade entre casos de teste, requisitos e elementos da arquitetura [11].... 78 Figura 4. 4 - Exemplo de tela do prometeu com alerta de artefatos associados no momento de uma alteração [11].... 79 Figura 4. 5 Exemplo de tela do prometeu com identificação de problemas, de atualidade e consistência, entre artefatos [11].... 80 Figura 4. 6 Exemplo de tela do prometeu com geração de um documento personalizado [11].... 81 Figura 4. 7 Exemplo de tela do prometeu com artefatos associados a um incidente de teste [11].... 81 Figura 5. 1 - Janela principal do EA Ultimate... 102 Figura 5. 2 - Janela principal do JUDE Pro... 103 Figura 5. 3 - Diagrama com relacionamento dos atores feito no EA Ultimate... 104 Figura 5. 4 - Diagrama com relacionamento dos atores feito no JUDE Pro... 104 Figura 5. 5 - Diagrama de casos de uso feito no EA Ultimate... 105 Figura 5. 6 - Diagrama de casos de uso feito no JUDE Pro... 106 Figura 5. 7 - Diagrama com requisitos funcionais, feito no EA Ultimate... 107 Figura 5. 8 - Navegação de todos os requisitos feitos no EA Ultimate... 108 Figura 5. 9 - Diagrama de estados de navegação, feito no EA Ultimate... 110 Figura 5. 10 - Navegação e tela principal, feito no EA Ultimate... 111 Figura 5. 11 - Navegação e tela de ajuda, feito no EA Ultimate... 111 Figura 5. 12 - Navegação e telas de menus principais, feito no EA Ultimate... 112 Figura 5. 13 - Navegação e tela de cadastro de dependências, feito no EA Ultimate... 113 Figura 5. 14 - Navegação e tela cpc de atualização de dados, feito no EA Ultimate... 113 Figura 5. 15 - Navegação e tela cpc de geração de aviso de atraso, feito no EA Ultimate... 114 Figura 5. 16 - Navegação e tela cpc gerar lista de debitantes, feito no EA Ultimate... 114 Figura 5. 17 - Navegação e tela cpc inserir dados, feito no EA Ultimate... 115 Figura 5. 18 - Navegação e tela reserve de dependências, feito no EA Ultimate... 115 Figura 5. 19 - Navegação e tela gerar relatórios, feito no EA Ultimate... 116 Figura 5. 20 - Navegação e tela gerenciar reuniões, feito no EA Ultimate... 116 Figura 5. 21 - Navegação e tela incluir despesa tipo produto, feito no EA Ultimate... 117 Figura 5. 22 - Navegação e tela incluir despesa tipo serviço, feito no EA Ultimate... 118 Figura 5. 23 - Navegação e tela manter despesas, feito no EA Ultimate... 119 XI

Figura 5. 24 - Diagrama de sequência do caso de uso gerenciar reuniões, feito no JUDE Pro... 121 Figura 5. 25 - Diagrama de sequência do caso de uso gerenciar reuniões, feito no EA Ultimate... 122 Figura 5. 26 - Diagrama de classes, feito no EA Ultimate... 124 Figura 5. 27 - Diagrama de classes, feito no JUDE Pro... 125 Figura 5. 28 - Diagrama de Entidade e Relacionamento, feito no JUDE Pro... 133 Figura 5. 29 - Diagrama de Entidade e Relacionamento, feito no EA Ultimate... 134 Figura 5. 30 - A direita um exemplo de tabela com especificações de atributos do EA Ultimate, a esquerda do JUDE Pro... 134 Figura A 1 - Diagrama de casos de uso, visão do condômino... 162 Figura A 2 - Diagrama de casos de uso, visão geral... 162 Figura A 3 - Diagrama de casos de uso, visão dos fornecedores e prestadores... 163 Figura A 4 - Diagrama de sequência de manter despesas de condomínio... 165 Figura A 5 - Diagrama de sequência de gerenciar reuniões... 168 Figura A 6 - Diagrama de sequência de controlar pagamento de condomínio... 171 Figura A 8 - Diagrama de sequência de reserva de dependências compartilhadas, reservar... 173 Figura A 7 - Diagrama de sequência de reserva de dependências compartilhadas, cadastrar... 174 Figura A 9 Modelo conceitual... 175 Figura A 10 - Diagrama de classes... 182 Figura A 11 - Diagrama de estados de navegação... 183 Figura A 12 - Janela controle de despesas... 184 Figura A 13 - Janela incluir despesas - tipo produto... 185 Figura A 14 - Janela despesa - tipo serviços... 189 Figura A 15 - Janela manter despesas... 191 Figura A 16 - Janela gerar relatórios... 192 Figura A 17 - Janela gerenciar reuniões... 194 Figura A 18 - Janela controle de pagamento de condomínio (CPC) - principal... 197 Figura A 19 - Janela CPC - inserir dados... 198 Figura A 20 - Janela CPC - atualizar dados... 199 Figura A 21 - Janela CPC - gerar lista de debitantes... 200 Figura A 22 - Janela CPC - gerar aviso de atraso... 201 Figura A 23 - Janela cadastro de dependências... 203 Figura A 24 - Janela reserva de dependência... 205 Figura A 25 - Diagrama de entidade e relacionamento... 206 XII

LISTA DE TABELAS Tabela 5. 1 - Comparação entre EA Ultimate e JUDE Pro... 98 Tabela A 1 - Requisito manter condômino e locatário... 147 Tabela A 2 - Requisito manter cadastro de funcionários... 148 Tabela A 3 - Requisito controlar pagamento de condôminos... 149 Tabela A 4 - Requisito gerar lista de debitantes... 150 Tabela A 5 - Requisito gerar avisos... 150 Tabela A 6 - Requisito manter cadastro de fornecedores... 151 Tabela A 7 - Requisito manter cadastro de prestador de serviços... 151 Tabela A 8 - Requisito manter cadastro dos produtos... 152 Tabela A 9 - Requisito manter cadastro de serviços... 152 Tabela A 10 - Requisito manter despesas do condomínio... 153 Tabela A 11 - Requisito cadastrar dependências do condomínio... 155 Tabela A 12 - Requisito reserva de dependências compartilhadas... 155 Tabela A 13 - Requisito gerenciar reuniões... 156 Tabela A 14 - Requisito quadro de avisos... 157 Tabela A 15 - Requisitos suplementares... 157 Tabela A 16 - Relação com casos de uso, atroes, e referências cruzadas... 158 Tabela A 17 - Conceitos, referências cruzadas e pacotes... 161 Tabela A 18 - Descrição de persistência de condômino... 207 Tabela A 19 - Descrição de persistência de funcionário... 208 Tabela A 20 - Descrição de persistência de fornecedor... 209 Tabela A 21 - Descrição de persistência de produto... 209 Tabela A 22 - Descrição de persistência de prestadora... 209 Tabela A 23 - Descrição de persistência de serviço... 210 Tabela A 24 - Descrição de persistência de despesaserviço... 210 Tabela A 25 - Descrição de persistência de despesaproduto... 211 Tabela A 26 - Descrição de persistência de condomínio... 212 Tabela A 27 - Descrição de persistência de dependência... 213 Tabela A 28 - Descrição de persistência de reserva... 213 Tabela A 29 - Descrição de persistência de reunião... 214 XIII

LISTA DE ABREVIATURAS E SIGLAS Access Microsoft (MS) Access, banco de dados da empresa Microsoft. Os dizeres 97, 2000, 2003, e 2007 se referem a versões deste banco. ActiveX É um conjunto de tecnologias baseadas em software da empresa Microsoft criadas para facilitar a integração entre diversas aplicações. [19] ADA Linguagem de programação de alto nível originada do Pascal e outras linguagens. ADA 2005 é um dialeto dela. [18] API Acrônimo para Application Programming Language (linguagem de programação de aplicações), é um conjunto de definições para comunicação entre pedaços de software. [20] Back-to-Back Nome dado quando o objetivo do teste é comparar duas versões implementadas de um software. Baseline Conjunto de artefatos, com suas configurações, definidos em um determinado momento durante o projeto de software como um ponto definitivo. BMP Vindo do acrônimo BitMap (mapa de bits), é um formato para imagens da empresa Microsoft. [21] Booch Refere-se a notação de modelagem de Grady Booch. [20] BPEL (Business Process Execution Language) Linguagem executável para especificação de interações com serviços web. O dizer 1.1 se refere a versão. [12] BPMN Acrônimo para Business Process Modeling Language (linguagem de projeto de processo de negócio). O dizer 1.1 se refere a versão. [12] C++ Nome de uma linguagem de programação orientada a objetos, baseada na linguagem C. [20] C # Versão da empresa Microsoft para a linguagem C, com orientação a objetos. [20] C Linguagem de programação imperativa. [20] CASE Computer-Aided Software Engineering (Engenharia de Software Assistida por Computador). [1] XIV

CRUD Acrônimo para Create, Retrieve, Update e Delete. Define as quatro operações básicas de banco de dados. [22] CVS Acrônimo para Concurrent Version System (sistema de versões concorrentes). É um sistema de controle de versão. [23] DBMS Acrônimo para Database Management System (sistema para gerência de banco de dados SGBD). [13] DDS Acrônimo para Digital Data Storage (armazenamento digital de dados). [20] DELPHI IDE produzida pela empresa Borland. DFD Acrônimo para diagrama de fluxo de dados (Data Flow Diagram). [20] DLL Acrônimo para Dinamic Link Library (biblioteca de linkagem dinâmica). [20] DoDAF-MODAF Acrônimos para Department of Defense Architecture Framework (Estrutura de arquitetura do departamento de defesa) e Ministry of Defence Architectural Framework (Estrutura de arquitetura do ministério da defesa). [13] Dot Net Ou.Net, é uma plataforma da empresa Microsoft para desenvolvimento e execução de sistemas e aplicações. [20] EJB Acrônimo para Enterprise Java Beans, é uma API Java para aplicações distribuídas. [20] EAP Acrônimo para Enterprise Architect Project, format do programa EA Ultimate. Pode significar Estrutura Analítica do Projeto onde o assunto não for o Enterprise Architect. [12] EA Ultimate Versão da ferramenta EA. Veja EA. Eclipse IDE da empresa Sun Microsystems para programação com a linguagem Java. EMF Acrônimo para Enhanced Metafile (meta arquivo aprimorado). É um formato de imagem da empresa Microsoft. [12] HDL Acrônimo Hardware Description Language (linguagem de descrição de hardware). [20] HTML Hyper Text Markup Language (linguagem de marcação de hiper texto) [20] IBM Nome de uma empresa de informática IDE Integrated Development Enterprise (Ambiente de Desenvolvimento Integrado) [20] XV

IEEE Instituto de normas técnicas I 3 E s ISO International Organization for Standardization [20] JAR Acrônimo para Java Archive (arquivo java); é um arquivo compactado para distribuição de classes java. [20] JET Nome de uma máquina de banco de dados da empresa Microsoft. [12] JPEG Normalmente conhecido como JPG, é um formato de imagem. Significa Joint Photographic Experts Group. [21] JUDE Pro Versão paga e completa da ferramenta JUDE. Pro é um acrônimo para professional. [16] JUnit Ferramenta para testes de unidade para Java. O J é um acrônimo para Java. [20] Login Processo de oferecer senha e nome de usuário para iniciar a utilização de um sistema. MDA Model Driven Architecture (Modelo Orientado a Arquitetura) [12] MDD Model Driven Design (Modelo Orientado a Padrões) [20] MDG Acrônimo para Model Driven Generation (geração orientada a modelos) [20] MDI Multiple Document Interface (Interface de Múltiplos Documentos) [20] MySQL Sistema de banco de dados que utiliza a linguagem SQL. MS Word (Microsoft Word) Programa da suite de aplicativos para escritório da empresa Microsoft. Nunit Estrutura de teste de unidade para Dot Net. O N significa net de Dot Net. [20] ODBC Sigla para Open Data Base Connectivity. É um padrão para acesso a sistemas gerenciadores de banco de dados. [20] ODM Link Object Data Manager (gerenciador de objeto de dados). Estabelece uma relação entre um objeto em uma classe objeto e um objeto em outra classe objeto. [24] Oracle Sistema SGBD criado nos fins dos anos 70 por Larry Ellison, pertencente a Oracle Corporation. Os dizeres 9i, 10g e 11g, se referem a versão. [25] OMT Acrônimo de Object Modeling Technique (técnica de projeto de objetos) Nome de uma notação de modelagem. [26] PCX Acrônimo para Picture Exchange. É um formato de arquivo de imagem. [21] XVI

PHP Acrônimo recursivo para Hypertext Preprocessor. É uma linguagem de programação web. [20] PIM Sigla para Platform Independent Model (projeto independente de plataforma). É uma visão de um sistema sobre um ponto de vista independente de plataforma. [27] PMBOK Project Managment Body of Knowledge (Corpo de Conhecimento da Gerência de Projetos) [3] PNG Acrônimo para Portable Network Graphics (gráficos web portáveis) [21] PRO/SIM Prototipagem / Simulação [12] PSM Sigla para Platform Specific Model (modelo específico de plataforma). [12] Python Linguagem de programação orientada a objetos de alto nível. [20] RTF (Ritch Text Format) Formato para texto com formatação. [20] SASA Sybase Adaptive Server Anywhere[20] SCC Interface de controle de versões. É um acrônimo para Source Code Control (controle de código fonte). [20] SDK Acrônimo para Software Developers Kit (pacote para desenvolvedores de software) [20] SGBD Sigla para sistema gerenciador de banco de dados. SQL Server Banco de dados da empresa Microsoft. SQL é um acrônimo para Service Query Language (linguagem de requisição de serviços). Os dizeres 2000, 2005, 2008 e 7, se referem a diferentes versões. [20] SOA Acrônimo para Service Oriented Architecture (arquitetura orientada a serviços). [12] SOMF Acrônimo para Service-Oriented Modeling Framework. [20] SPEM Acrônimo para Software Process Engineering Metamodel. [20] Sybase Ou Sybase ASE, é o sistema de gerenciamento de dados da empresa Sybase. [28] SysML Acrônimo para Systems Modeling Language (linguagem de projeto de sistemas). O dizer 1.1 se refere a versão. [29] SystemC Linguagem de descrição de sistemas, mais conhecida como linguagem de descrição de hardware. [30] XVII

SWEBOK Software Engineering Body of Knowledge (Corpo de Conhecimento da Engenharia de Software) [2] TGA Formato de imagem desenvolvido pela empresa Truevision. [21] TOGAF Acrônimo para The Open Group Architecture Framework (Estrutura de arquitetura do Open Group ), é um conjunto de ferramentas para desenvolvimento de arquiteturas diferentes. [31] UML Nome de uma linguagem de modelagem unificada (Unified Modeling Language). UML 2.0, 2.1, 1.4, se refere a versões desta linguagem. [20] VBNet Versão DotNet da linguagem Visual Basic, pertencente a empresa Microsoft. [20] Verilog Linguagem de descrição de hardware usada para projetar sistemas eletrônicos. [20] VHDL Acrônimo para VHSIC Hardware Description Language (Linguagem de Descrição de Hardware VHSIC), é uma linguagem para projeto de circuitos digitais. [32] VHSIC Acrônimo para Very High Speed Integrated Circuits (Circuitos Integrados de Altíssima Velocidade). [32] XMI Acrônimo para XML Metadata Interchange é um padrão para troca de informações baseado em XML. [20] XML Nome de uma linguagem de marcação (para web) [20] XSD Acrônimo para XML Schema Definition (Definição de Esquema XML). Extensão para um arquivo da linguagem XML Schema. [33] WebApp Acrônimo para Application Web. WMF Acrônimo para Windows Media Format (Formato de Mídia do Windows). É um formato para mídia codificada pelo Windows Media Encoder da empresa Microsoft. [20] WSDL Acrônimo para Web Service Definition Language (Linguagem de Definição de Serviços Web). É uma linguagem baseada em XML utilizada para descrever serviços web. [34] WYSIWYG Sigla para What You See Is What You Get (o que você vê é o que você consegue). [20] XVIII

Zachman Zachman Framework é um conjunto de ferramentas, da ferramenta EA, que fornece uma maneira formal e altamente estruturada de se visualizar e definir uma empresa. [35] XIX

20 ESTUDO SOBRE FERRAME TAS CASE CAPÍTULO I I TRODUÇÃO Ferramentas de auxílio ao desenvolvimento de software, Computer Aided Software Engineering (CASE), é um assunto que pode ser bastante abrangente, e presente no desenvolvimento de software, uma vez que o significado do termo permite isso. E assim como o assunto é abrangente, as ferramentas escolhidas para estudo aprofundado também o são. Com excessão da ferramenta Prometeu, todas as outras ferramentas especificadas procuram abranger grande parte do desenvolvimento de software. Muitos detalhes foram abordados, como empresa, o que oferecem apoio, e até mesmo diferenças entre versões oferecidas em algumas das ferramentas. Mas antes de se chegar às ferramentas, uma explicação melhor sobre detalhes do escopo do desenvolvimento de software, com foco no que poderia ser auxiliado por software, foi feita. Divisões existentes no livro SWEBOK, chamadas de áreas de conhecimento, foram abordadas e explicadas superficialmente. Isso para preparar o leitor para o conteúdo seguinte. Logo após ser definido as áreas de conhecimento e o que poderia ser feito para cada uma, pôde ser explicado o tema em si. Foi detalhada a taxonomia das ferramentas CASE, por funcionalidade e por abrangência no desenvolvimento, para poder entender melhor onde alguma ferramenta CASE se encaixa. Como sempre é preciso, durante um projeto, lidar com integração e, nas fazes iniciais, pode ser preciso adquirir ferramentas novas, foi abordado questões importantes quanto avaliação, seleção, e integração. Como ler sobre e utilizar uma ferramenta oferecem experiências distintas, e o conteúdo escrito encontrado pode não estar completo, duas das ferramentas escolhidas foram eleitas para utilização. Um tema foi utilizado para guiar a comparação, nomeadamente a análise para um software de administração de condomínios. Foi utilizado as duas ferramentas para gerar o que contém o documento do caso escolhido, que se encontra no APÊNDICE A; mas sem se preocupar em completar a análise ou fazer muito além do necessário para uma comparação detalhada entre as duas. Por último, as ferramentas escolhidas eram de grande interesse do autor, além do tema. O trabalho de criação desta obra leva o criador, e o leitor, a um entendimento profundo e

21 conciso do que vem a ser ferramentas CASE; além de o que esperar e procurar. Talvez algo possa ter passado despercebido em sua criação e se sim, não foi por falta de procura ou interesse. Como a própria bibliografia demonstra, e o texto, as fontes encontradas sobre o tema, em uma visão didática e explicativa, foram poucas. O que mais pôde ser encontrado pelo autor foram explicações sobre ferramentas específicas; e temas diversos, mas relacionados. Além de que, mais da metade das fontes foram utilizadas apenas para a confecção da lista de abreviaturas, cujos termos foram em sua maioria complexos e difíceis de descrever.

22 ESTUDO SOBRE FERRAME TAS CASE CAPÍTULO II DESE VOLVIME TO DE SOFTWARE COM FERRAME TAS CASE O processo de desenvolvimento de software é extenso e complexo, podendo até mesmo ser considerado um software, assim como diz o artigo de Leon Osterweil [6] (Software Processes are Software Too do inglês, Processos de Software são Softwares Também). Devido a sua natureza, há a necessidade de se utilizar algumas ferramentas que auxiliem o processo. Elas ajudam a cumprir cronogramas, garantir a qualidade e facilitar o trabalho. O processo é composto por cinco atividades genéricas, a saber: comunicação, planejamento, modelagem, construção e implantação [4]. Além dessas, pode surgir uma atividade de manutenção e deve haver uma atividade de teste, sendo que a última deve ser executada para todos os produtos de software, e processos, de cada atividade. É possível se encontrar ferramentas que auxiliem apenas parte dessas atividades, essas atividades como um todo, e todo o processo de software. Ao se destrinchar cada atividade, encontram-se várias tarefas que poderiam ser auxiliadas por um software; desde o seu planejamento até a documentação dos seus resultados. É comum que uma tarefa possa ser executada sem a necessidade de ajuda de um software específico, podendo-se escolher entre um leque de possibilidades. Segundo Pressman [4], as atividades genéricas devem ser complementadas por atividades-guarda-chuva, a saber: acompanhamento e controle de software, gestão de risco, garantia de qualidade de software, revisões técnicas formais, medição, gestão de configuração de software, gestão de reusabilidade, preparação e produção do produto do trabalho [4]. Uma divisão mais perto das ferramentas CASE oferecidas atualmente seria a sugerida pelo Software Engineering Body of Knowledge (Corpo de Conhecimento da Engenharia de Software), ou SWEBOK; onde a engenharia é dividida em áreas de conhecimento, a saber: requisitos de software, projeto (design) de software, construção de software, teste de software, manutenção de software, gerencia de configuração de software, gerencia de engenharia de software, processos de engenharia de software, métodos de engenharia de software, qualidade