Home » Títulos » Colecção Tecnologias » UML - Metodologias e Ferramentas CASE - 2ª Edição - Vol. 1

UML - Metodologias e Ferramentas CASE - Volume 1
Encomendar

UML - Metodologias e Ferramentas CASE -
2ª  Edição - Volume 1

Autores:
Alberto Silva e Carlos Videira
Nº Páginas: 384
ISBN: 989-615-009-5
Dep Legal: 226.829/05
Preço: 22,20 Euros
2ª Edição: Maio/2005
Colecção: Tecnologias

 

 

 

22,20 Euros

Novo
  13,32 Euros Manuseado

   
PREFÁCIO À SEGUNDA EDIÇÃO

Quatro anos decorridos após a primeira edição do nosso livro “UML, Metodologias e Ferramentas CASE” tem sido constante a evolução nesta área da engenharia! Temas como o paradigma do desenvolvimento de sistemas de software baseado em modelos, o aparecimento de novas metodologias de desenvolvimento que pretendem reduzir o tempo dos projectos e a importância crescente atribuída à modelação do negócio e das organizações (business modeling) são apenas dois exemplos de actuais áreas de actuação e de investimento. No entanto a principal motivação para esta nova edição resulta da recente publicação de uma nova versão do UML (2.0), com algumas inovações importantes.

A segunda edição deste livro procura minimizar as alterações aos principais objectivos e à estrutura, relativamente à primeira edição. No entanto, é inevitável a introdução de novos temas, o refinamento de outros e a actualização de algumas matérias que entretanto sofreram evolução, ou que decorrem da natural evolução e maturidade dos autores. De entre as matérias que entretanto surgiram destaca-se um capítulo dedicado ao tema da modelação de dados (data modeling) em UML, nas suas diferentes representações ao nível conceptual, lógico e físico, e nas regras de mapeamento dos modelos UML para esquemas relacionais e DDL/SQL. No entanto, a principal alteração prende-se com a divisão do livro em dois volumes, o primeiro com as partes 1 e 2 e o segundo com as partes 3 e 4; esta divisão vem de encontro a alguns comentários que fomos recebendo, e tem também por objectivo separar matérias que podem interessar a públicos alvo distintos.

As matérias que sofreram alterações mais significativas incluem todos os capítulos da Parte 2 (que envolve a apresentação da linguagem UML), derivado ao facto de se ter realizado um esforço de actualização alinhado com a apresentação da versão 2 do UML. A evolução do UML 1.4 para o UML 2 produziu fortes alterações ao nível da sua própria arquitectura, um refinamento e aumento de qualidade da generalidade dos diagramas, e implicou também a introdução de novos diagramas.
Adicionalmente, e na resposta às sugestões de alguns dos nossos leitores, utilizaremos um exemplo comum para suportar a explicação dos conceitos debatidos ao longo de toda a Parte 2. Em relação ao segundo volume, o capítulo referente ao RUP (Rational Unified Process) foi também substancialmente alterado, tendo em consideração a sua importância e significativas evoluções ao longo deste
intervalo de tempo.
Finalmente, houve da parte dos autores e da editora um maior cuidado na verificação da produção final do livro, em particular nas características de impressão!

Lisboa, Março de 2005
Alberto Manuel Rodrigues da Silva
Carlos Alberto Escaleira Videira
 

 

Objectivos, Contexto e Motivação

O livro “UML, Metodologias e Ferramentas CASE” aborda tópicos importantes para a generalidade dos intervenientes nas actividades enquadradas na engenharia de software, designadamente as problemáticas (1) das linguagens de modelação de software, (2) do processo e das metodologias de desenvolvimento de software, e (3) das ferramentas CASE de suporte à modelação e ao próprio desenvolvimento.
Pretende dar uma panorâmica abrangente sobre estes três aspectos de forma integrada e coerente. Embora o foco do livro seja nas fases de concepção de sistemas de software, discute o seu enquadramento de modo mais lato em áreas como o planeamento estratégico de sistemas de informação; as arquitecturas de sistemas de informação; ou mesmo a engenharia de software.

O livro explica a necessidade da modelação no desenvolvimento de software, o que é o UML (Unified Modeling Language), como aplicar o UML no contexto mais abrangente das metodologias e processos de desenvolvimento, e como usar ferramentas CASE de forma a maximizar e automatizar algumas das tarefas relacionadas com a modelação, por exemplo, produção e gestão de documentação, geração de código, geração de esquemas de dados, reverse engineering, round-trip engineering, mecanismos de extensão, etc.

A aprendizagem e adopção dos temas abordados neste livro constituem uma vantagem decisiva para os intervenientes que os adoptarem consistentemente.
Entre outros, salientamos os seguintes benefícios: melhor documentação dos sistemas e dos respectivos artefactos; aplicação de técnicas de modelação orientadas por objectos, mais fáceis de entender; reutilização desde as fases preliminares da concepção até à implementação; rastreabilidade dos requisitos ao longo de todo o processo; facilidade de comunicação entre todos os intervenientes envolvidos no processo; melhorias significativas em factores como sejam flexibilidade e produtividade; melhor gestão de requisitos; avaliação e manutenção de sistemas mais facilitadas. Estas características são naturalmente interdependentes entre si; por exemplo, uma maior qualidade da documentação produzida possibilita uma melhor comunicação entre os intervenientes de um projecto.

Todavia, os assuntos tratados neste livro são difíceis de adoptar nas organizações, por inúmeras razões. Antes de mais porque o ritmo de inovação tecnológica nesta área da engenharia tem-se processado a um ritmo particularmente intenso.
A segunda razão deve-se ao facto dos tópicos abordados neste livro exigirem uma formação significativa e principalmente uma adequada e correspondente actuação.
Não basta dominar um conjunto alargado de conceitos e notações para especificar software, mas é fundamental aprender a aplicá-los de forma consistente, repetida e sistemática; adaptá-los às condicionantes e realidades de cada empresa, ou de cada projecto em particular; e ainda partilhar técnicas e métodos entre todos os indivíduos da empresa, ou de cada projecto, para que a comunicação entre todos os intervenientes seja maximizada e eficiente.

A terceira razão, consequência das razões anteriormente referidas, é o facto de ser oneroso a adopção efectiva e produtiva (dos tópicos abordados neste livro) no seio das empresas. Oneroso em termos do tempo inicial que é necessário despender em formação, em termos da “resistência à mudança”, assim como o investimento necessário na selecção e aquisição de ferramentas CASE que potenciem significativamente as suas vantagens.

Este livro surge na sequência da experiência dos autores em actividades de investigação, mas principalmente em actividades de consultoria e de docência nas áreas de engenharia de software e de sistemas de informação.

Os temas abordados neste livro são na sua maioria influenciados pelo trabalho de unificação e de evangelização dos “três amigos”: Grady Booch, Ivar Jacobson e James Rumbaugh. Todavia, é da nossa exclusiva responsabilidade o estilo do livro, assim como a sua estrutura, conteúdo, exemplos e exercícios propostos (tal como as correspondentes gralhas e omissões decorrentes!). O livro condensa e integra informação dispersa por alguns livros da área, em particular os seguintes títulos:
OMG Unified Modeling Language Specification [OMG99], The Unified Modeling Language User Guide [Booch99], The Unified Software Development Process [Jacobson99], Visual Modeling with Rational Rose 2000 and UML [Quatrani00] e The Rational Unified Process [Kruchten00]. No entanto, há inúmeros aspectos que o livro propõe e discute de forma única, dificilmente encontrados em qualquer dos livros referidos.

A nível internacional, existe um número relevante de títulos nesta área; contudo, há reconhecidamente, na língua Portuguesa uma lacuna muito significativa. Paralelamente, e em consequência da nossa experiência e responsabilidade de docência, supervisão e coordenação de trabalhos finais de curso e de investigação identificamos a necessidade e oportunidade de produzirmos este livro com vista a apoiar a aprendizagem da engenharia de software nos tópicos referidos.

A temática tratada neste livro é abrangente e a sua profundidade é, propositadamente, de nível intermédio. Inúmeros assuntos poderão ser analisados e aprofundados complementarmente, entre os quais destacam-se a título de exemplo os seguintes: arquitecturas de sistemas de software [Hofmeister99]; processos de negócio em contextos organizacionais [Penker00]; padrões de análise [Fowler96]; padrões de desenho em infra-estruturas de software (frameworks) [Souza99]; modelação de dados [Muller00]; modelação de aplicações segundo o paradigma dos agentes de software [Odell00], modelação de aplicações de tempo real [Selic94], ou modelação de aplicações interactivas [Nunes99]. Todos estes tópicos são importantes nos seus respectivos contextos de aplicação; muitos são alvo de intensa actividade de estudo e investigação. Todos eles apresentam, contudo, um denominador comum: baseiam-se no conhecimento introduzido, apresentado e discutido neste livro.

 

Prefácio à Segunda Edição

Prefácio

Índice

PARTE 1 – INTRODUÇÃO E VISÃO GERAL

Capítulo 1 - Enquadramento e Conceitos Gerais
 1.1 Introdução
 1.2 O Impacto das Tecnologias de Informação
 1.3 Produto e Processo
 1.4 Sistemas de Informação
 1.5 Arquitectura de Sistemas de Informação
 1.6 Objectivos do Desenvolvimento de Sistemas Informação
 1.7 Problemas no Desenvolvimento de Sistemas Informação
 1.8 Planeamento Estratégico de Sistemas de Informação
 1.9 Engenharia de Software
 1.10 Conclusão
 1.11 Exercícios

Capítulo 2 - O Processo de Desenvolvimento de Software
 2.1 Introdução
 2.2 Processos e Metodologias
 2.3 Modelos e Modelação
   2.3.1 Importância da Modelação
   2.3.2 Princípios da Modelação
 2.4 Boas Práticas no Desenvolvimento de Software
2.5 Fases do Processo de Desenvolvimento de Software
   2.5.1 Tarefas Transversais
   2.5.2 Planeamento
   2.5.3 Análise
   2.5.4 Desenho
   2.5.5 Implementação
   2.5.6 Testes
   2.5.7 Instalação
   2.5.8 Manutenção
2.6 Processos de Desenvolvimento de Software
   2.6.1 Processos em Cascata
   2.6.2 Processos Iterativos e Incrementais
2.7 Conclusão

Capítulo 3 -  Evolução das Metodologias de Desenvolvimento de Software
3.1 Introdução
3.2 A Programação como Fonte de Inovação
3.3 O Desenvolvimento Ad-Hoc
3.4 As Metodologias Estruturadas
   3.4.1 Contexto e Motivação
   3.4.2 Conceitos Básicos
   3.4.3 Técnicas e Notações mais Utilizadas
   3.4.4 Principais Metodologias
3.5 Metodologias Orientadas por Objectos
   3.5.1 Contexto e Motivação
   3.5.2 Conceitos Básicos
   3.5.3 Técnicas e Notações mais Utilizadas
   3.5.4 Principais Metodologias
3.6 Outras Abordagens
   3.6.1 Metodologias Ágeis
   3.6.2 MDA, Desenvolvimento Baseado em Modelos
3.7 Comparação de Metodologias
   3.7.1 Gestão de Requisitos e Facilidade de Manutenção
   3.7.2 Representação da Realidade
   3.7.3 Outros Aspectos
3.8 Conclusão
3.9 Exercícios

PARTE 2 – LINGUAGEM DE MODELAÇÃO UML

Capítulo 4 - UML – Visão Geral
4.1 Introdução
4.2 Visão Histórica
4.3 Tipos de Elementos Básicos
4.4 Tipos de Relações
4.5 Tipos de Diagramas Principais
   4.5.1 Diagramas de Casos de Utilização
   4.5.2 Diagramas de Modelação da Estrutura
   4.5.3 Diagramas de Modelação do Comportamento
   4.5.4 Diagramas de Arquitectura
4.6 Mecanismos Comuns do UML
   4.6.1 Notas (ou Anotações)
   4.6.2 Mecanismos de Extensão
   4.6.3 Tipos de Dados
4.7 Organização dos Artefactos - Pacotes
   4.7.1 Representação Gráfica
   4.7.2 Relações entre Pacotes
   4.7.3 Tipos de Pacotes
   4.7.4 Modelação de Grupos de Elementos
4.8 Molduras e Fragmentos
4.9 Aspectos Específicos do UML 2
   4.9.1 Objectivos do UML 2
   4.9.2 Diagramas do UML 2
4.10 Exercícios

Capítulo 5 - UML – Casos de Utilização
5.1 Introdução
5.2 Casos de Utilização
   5.2.1 Casos de utilização e Cenários
   5.2.2 Relações entre Casos de Utilização
5.3 Diagramas de Casos de Utilização
   5.3.1 Actores
   5.3.2 Casos de Utilização Abstractos e Concretos
5.4 Proposta de Metodologia
5.5 Exemplos e Recomendações
5.6 Exercícios

Capítulo 6 - UML – Modelação da Estrutura
6.1 Introdução
6.2 Classes
   6.2.1 Declaração de Atributos
   6.2.2 Declaração de Operações
6.3 Relações
   6.3.1 Relação de Dependência
   6.3.2 Relação de Generalização
   6.3.3 Relação de Associação
6.4 Interfaces
6.5 Instâncias e Objectos
6.6 Diagramas de Classes e Diagramas de Objectos
6.7 Exemplos e Recomendações
6.8 Exercícios

Capítulo 7 - UML – Modelação do Comportamento
7.1 Introdução
7.2 Interacções
   7.2.1 Objectos e Ligações
   7.2.2 Mensagens
   7.2.3 Representação Gráfica de Mensagens
   7.2.4 Tipos de Mensagens
7.3 Diagramas de Interacção
   7.3.1 Diagramas de Sequência
   7.3.2 Diagramas de Comunicação
   7.3.3 Equivalência Semântica
   7.3.4 Diagramas de Interacção e Casos de Utilização
   7.3.5 Reutilização de Interacções
   7.3.6 Diagrama de Visão Geral da Interacção
   7.3.7 Combinação de Fragmentos de Interacção
   7.3.8 Diagrama Temporal
7.4 Diagrama de Estados
   7.4.1 Estados
   7.4.2 Transições
   7.4.3 Eventos
   7.4.4 Acções e Actividades
   7.4.5 Ordem da realização de operações
   7.4.6 Sub-Estados
   7.4.7 Outros Aspectos dos Diagramas de Estados
7.5 Diagramas de Actividade
   7.5.1 Decisões
   7.5.2 Caminhos Concorrentes
   7.5.3 Partições de Actividades
   7.5.4 Actividades e Objectos
   7.5.5 Utilizações Típicas
   7.5.6 Outros Aspectos dos Diagramas de Actividade
7.6 Exercícios

Capítulo 8 -UML – Modelação da Arquitectura
8.1 Introdução
8.2 Componentes e Nós
   8.2.1 Componentes no UML 1
   8.2.2 Componentes no UML 2
   8.2.3 Nós
   8.2.4 Relações entre Nós e Componentes
8.3 Diagramas de Componentes
8.4 Diagramas de Instalação
8.5 Exercícios

Capítulo 9 -UML – Aspectos Avançados
9.1 Introdução
9.2 A Arquitectura do UML
   9.2.1 A Estrutura do UML a Quatro Camadas
   9.2.2 A Camada Metamodelo, UML 1.x
   9.2.3 Mecanismos de Extensão, UML 1.x
   9.2.4 A Camada Metamodelo, UML 2
9.3 Perfis UML
   9.3.1 Referências a Perfis UML
   9.3.2 Perfil para Processos de Desenvolvimento Software
   9.3.3 Perfil para Modelação de Negócios
9.3.4 Perfil para Modelação de Aplicações Web
9.4 Sistemas de Componentes e Reutilização
   9.4.1 Definição de Componente
   9.4.2 Famílias de Aplicações
   9.4.3 Sistemas de Componentes
   9.4.4 Reutilização
9.5 Tipos Parametrizáveis
   9.5.1 Classes Parametrizáveis
   9.5.2 Padrões de Desenho
9.6 XMI (XML Metadata Interchange) e Diagram Interchange
9.7 Conclusão
9.8 Exercícios

Capítulo 10 -UML – Modelação de Dados

10.1 Introdução
10.2 Processo de Desenho de Bases de Dados com o UML
    10.2.1 Nível Conceptual
    10.2.2 Nível Lógico
    10.2.3 Nível Físico
10.3 Regras de Mapeamento de Modelos Lógicos UML em  Esquemas Relacionais
    10.3.1 Paradigma Relacional vs. Orientado por Objectos
    10.3.2 Classes em Relações e Objectos em Tuplos
    10.3.3 Identificação de Objectos em Chaves Primárias
    10.3.4 Mapeamento de Relações de Associação
    10.3.5 Mapeamento de Relações de Generalização
    10.3.6 Síntese das Regras de Mapeamento
10.4 Exemplos de Aplicação
10.5 Exercícios

Apêndice A – Guia de Recursos Electrónicos
 
Standards, Org. Normalizadoras, Iniciativas e Forums
 Empresas e Links Relevantes
 Leituras Recomendadas
 Jornais e Catálogos de Informação
 Ferramentas CASE

Apêndice B – Glossário, Siglas e Abreviaturas
 B.1 Glossário
 B.2 Siglas mais Usadas
 B.3 Abreviaturas

Apêndice C – Elementos UML Predefinidos
C.1 Palavras Reservadas
C.2 Estereótipos Standard

Referências

Índice Remissivo

 

CV DOS AUTORES

Alberto Manuel Rodrigues da Silva é professor do Departamento de Engenharia Informática (DEI) do IST/UTL, investigador sénior do INESC-ID, e consultor da empresa SIQuant – Engenharia do Território e Sistemas de Informação. É doutor e mestre em Engenharia Informática e Computadores pelo IST/UTL, e licenciado em Engenharia Informática pela FCT/UNL. Lecciona actualmente cadeiras da área de Sistema de Informação de nível licenciatura, pós-graduação e mestrado. Supervisiona a realização de vários trabalhos finais de curso, teses de mestrado e de doutoramento. Tem interesses profissionais e científicos em sistemas de informação dinâmicos e distribuídos em larga escala; engenharia de requisitos, desenvolvimento baseado em modelos, processos e ferramentas de sistemas de informação; e negócios suportados electronicamente. No INESC-ID é membro e co-fundador do Grupo do Sistemas de Informação e do Laboratório de Ambientes Virtuais e Cooperativos. Actualmente desempenha os seguintes cargos de gestão: Coordenador do Grupo do Sistemas de Informação do INESC-ID; Coordenador dos programas de Mestrado e de Doutoramento em Engenharia Informática e Computadores do IST/UTL; e Vogal da Região Sul do Colégio de Engenharia Informática da Ordem dos Engenheiros. É autor e co-autor de 3 livros técnicos e cerca de 50 artigos científicos em revistas, conferências e workshops nacionais e internacionais.

Carlos Alberto Escaleira Videira é actualmente consultor na área de sistemas de informação, e assistente no Departamento de Ciências e Tecnologias da UAL.
Desempenhou funções de coordenação na área de Informática em diferentes empresas e participou em diversos projectos como consultor. Tem um mestrado em Engenharia Electrotécnica e Computadores pelo IST/UTL e uma licenciatura em Engenharia Informática pela FCT/UNL. Lecciona actualmente disciplinas de Planeamento de Sistemas de Informação, Engenharia de Software, Qualidade de Sistemas de Informação e Negócios Electrónicos de nível de licenciatura e pósgraduação.
Tem interesses profissionais e científicos em temas relacionados com Planeamento Estratégico de Sistemas de Informação, Engenharia de Software, Sistemas de Informação, Gestão de Projectos e Negócios Electrónicos.

COMENTÁRIOS DOS LEITORES

 

 
Copyright @ 2015, Centro Atlântico, Lda. Todos os direitos reservados. Prezamos a sua Privacidade.