Over the last ten
years the IT industry has seen a resurgence in CASE technology. Software
projects have become more and more complex and the need to manage and
understand these systems is more pronounced than ever before. Object
technology has shown itself to be the critical element in the majority
of new tools and development methods we use today. With the new tools
and more and more complex projects a mass of development techniques
and notations have emerged, some only applicable within individual companies,
others being used across a wide spectrum of companies. Some ten years
ago three leading gurus in OO methods began to work on a mechanism to
unify the industry and with the help of many leading companies released
an iconic language for describing Object Oriented software systems.
"UML by Experience" is a course designed to introduce and clarify the
meaning of this iconic language. Designed and used by software developers,
architects and analysts, this course aims to bring to the software team
a pragmatic view of the language through theoretical study and workshops.
The course focuses on bringing to the students how the language is being
used, rather than how it should be used, and examines on whether some
of the uses shown are valid.
If you are involved
in any part of the software development process then you should attend
this course. The course is not designed just for software developers,
but anyone who has a stake in the project. Analysts should attend to
ensure that they can represent the problem domain in a unified manner.
Architects should attend so that they can represent their structural
ideas in a unified manner to ensure continuity from the architecture
to the implementation. Software developers should attend so that the
internal logical elements of the systems they construct can be seen
without looking at the code. Managers should attend so that they develop
a sense of confidence in this tool. This is a unifying tool. On projects
where all groups have used it, conceptual continuity has been maintained.
This is an intense
five day course. All those who attend should be alert and ready to assimilate
a large amount of information. A basic understanding of software principles
is necessary. Some OO background would be useful, but is not essential.
You do not need to be a software developer, but a basic appreciation
of software concepts is essential i.e. functions, variables and data
- Software engineering
- Use cases in
theory and pragmatically
- Overview of architectures;
system and domain partitioning and using UML to capture architectural
concepts, developing use cases based upon domain partitions
- Activity diagrams;
basic syntax and benefits of use, domain to domain communication
- Sequence diagrams;
basic syntax and simple flow control, branching, synchronous versus
asynchronous modelling, capturing state on sequence diagrams, partitioning
large flow controls into smaller diagrams for domain to domain communication
- Class diagrams;
basic syntax, how to read and draw diagrams in a consistent manner,
associations, aggregation, inheritance, roles, class in state, metamorphic
modelling, interfaces and packaging
- State diagrams;
basic syntax, nested states, state concurrency and synchronisation,
handling interrupts " Each of the above topics is supported by an
- On completion
of the study notes, there is a one day workshop using all of the ideas
from the course
doesn't the course cover?
"UML by Experience"
does not try to be an analysis or design process course. Its focus is
on the language as tool that can be used for the architecture, analysis
or design of systems.