|
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.
|