
Modeling the Chaos !!
This is what the course is about.
Many times the business domain seems to be very simple and misleads us that the problem is trivial.
Nothing can be more wrong!
In order to challenge this perception, I will introduce our test case. I will describe, in simple statements, a typical university: Students, courses, instructor, syllabus, grades.
A deep investigation will approve that nothing is simple as it looks.
We, therefore, need a structured and solid approach to understand and analyze our domain.
This will be the class model
I will introduce the class and object concepts. The cornerstones to the Class model.
Classes don't not stand alone.
After discovering the main classes in our model, we start investigating the relationships between them.
Clear understanding of classes relationships is of great challenge to the system analyst. Poor understating might result in major flaws in the information system.
There are 3 kinds if relationships between classes .
In this lecture we introduce the association relationships, and immediately implement this concept on our test case.
Having introduced the association relationship, we can now leverage the concept and improve our model.
Doing so will result in a more accurate and clear model, that represents in a very elegant way the essence of our business model.
At this point we realize that we need urgently a computerized tool to build our models.
We introduce the concept of CASE tools - Computer Aided System Engineering.
From this point you will be able to build your models with dedicated software, instead of pen and paper (or PowerPoint).
We will learn how to start working with our CASE tool.
We'll start with the basics:
Building classes and their attributes
Associating classes with direction and multiplicity
We will learn how to document our model.
We will learn how to:
Document the diagram
Document the class
Document the class attributes
Add a diagram info box to the model
export our model to acrobat (PDF) file
In some cases, the UML fails to be able to represent some delicate, yet critical, issues of the business domain.
We will introduce the idea of constraint, that provides a nice and flexible answer for such limitations.
Recursion is an elegant implementation of association, where we discover relationships between objects of the same class.
We will learn how to add advanced features to our class model.
We will learn how to:
Define Constraints
Build a recursive association
Build an association class
We will learn how to build sub class for a its super class.
We introduce some more features to further refine the attributes of a class:
Attribute multiplicity
Derived attribute
Unique constraint
Default value
These features further improve our ability to build an accurate model of the business domain.
We introduce the concept of stereotyping classes.
We then use two UML predefined stereotypes:
<<Data def>>
<< Enum >>
We explain the idea in these stereotypes, and implement them in our test case.
We explain the relationship of "is part a" which is the composition relationship.
We will learn how to enhance our model.
We will learn how to:
define attribute multiplicity
define derived attribute
add unique constraint to an attribute
define a default value for attribute
We will learn how to define special ("stereotype") class.
We will learn how to:
build a <<Data def>> class and define an attribute based on it
build an <<Enum>> class and define an attribute based on in
We will learn how to build a composition relationship between two classes.
Below is a description of a business domain.
This description is written deliberately on a “free” format. It reflects the way the domain expert describes his business domain: Sometimes it’s a little blur, sometimes not so accurate, sometimes with inner contradictions, but always authentic…
Whenever needed, and as long as not been specified otherwise, you may wish any business assumptions you want, as long as they make sense.
Your challenge is to understand it, analyze it, and build a clear-cut Class Model.
Open your CASE tool and explore the complete model
Building the UML class model is the first and most crucial step in information system analysis.
Countless projects failed and billions of dollars went to the history garbage, because the first step,- to deeply understand the business domain - has been done negligently.
It doesn't have to be like this anymore!
Building the Class model guides you by a very structured and solid method on how to understand and analyze the domain.
It really forces you to think in a structured way; It doesn't let you delude yourself that you "understand" the business world because it forces you to build a model: With strict logic and rules and in well-defined language (UML) with a wealth of options.
In theory, theory and practice are the same, but in practice - they are not!
The course takes a very pragmatic approach.
No more long and boring theoretical academic introductions, no more naive examples with no relevance to real life, and no more long educated argumentation about delicate nuances that don't really matter in real life.
Right from the start, I will introduce a real-world test case. This test case will accompany us throughout the course. In every lecture I will add more details that will reflect the complexity of real test case and will set the stage for adding more concepts and "wisdom" to the class model.
We will conclude the course with a very accurate (and elegant) class model that will reflect completely our complex business domain.
Since building a class model is quite a challenging mission, I will teach you how to work with CASE tools (Computer Aided System Engineering).
From the beginning, all your work will be done with leading CASE software, which is been used by real system analysts in real projects.
We will learn and practice:
Classes and objects
UML (the Unified Modeling Language) - what it is, why it's so crucial to the analysis process
The association relationship
CASE tools - Why, what and how to use it
How to enhance our test case
Constraints
Recursion
The association class
The inheritance relationship
Refining attributes
The data def stereotype
The Enum stereotype
The composition relationship
Managing historical data
Since I believe in hard work, you need to practice, practice and then practice again.
In the supplementary section of the course, you will find more test cases from various business domain. You are highly recommended to use it!
My name is Yosi Wiesel. I have a passion for information systems. I have a passion for the magical journey, when we take some abstract, vague idea, and realizing it to a real working software system.
And I have a passion to share with you my knowledge and insights.
Let's start!
Have fun and productive studies!