This Lesson covers the following topics :
Exploring the Benefits of Modeling Software
What Is a Model ?
Why Model software ?
OOSD as Model Transformation
Defining the UML
UML Elements
UML Diagrams
UML Diagrams Categories
UML CASE Tools
2. Outline
Exploring the Benefits of Modeling Software
What Is a Model ?
Why Model software ?
OOSD as Model Transformation
Defining the UML
UML Elements
UML Diagrams
UML Diagrams Categories
UML CASE Tools
3. Exploring the Benefits of Modeling Software
The inception of every software project starts as an idea
in someone's mind .
To construct a realization of that idea , the development
team must create a series of conceptual models that
transform the idea into a production system.
4. What Is a Model ?
Modeling is Describing a system at a high level of abstraction
“A model is a simplification of reality .”
A model is an abstract conceptualization of some entity (such as
building) or a system (such as software).
Different views show the model from different perspectives
5. Why Model Software ?
We build models so that we can better understand the
system we are developing .
Specifically , modeling enables you to :
Visualize new or existing systems
Communicate decisions to the project stakeholders
Document the decisions made in each OOSD workflow
Specify the structure (static)and behavior(dynamic) elements
of a system
Use a template for constructing the software solution
6. OOSD as Model Transformation
Software development can be viewed as a series of
transformations from the Stockholder's mental model to the
actual code :
7. Defining the UML
UML stands for Unified Modeling Language
"A graphical language for visualizing, specifying, constructing, and
documenting the artifacts of a software-intensive system .“
UML was created by Object Management Group (OMG) and UML 1.0
specification draft was proposed to the OMG in January 1997.
UML is a pictorial language used to make software blue prints.
UML provides notations for capturing the results of requirements analysis and
design .UML does so by providing 14 different kinds of diagrams that are
designed to describe the requirements , architecture, mechanisms and
implementation of the system
Using the UML , a model is composed of :
Elements(things and relationships)
Diagrams (build from elements )
11. UML CASE Tools
Many CASE Tools exist that implement the UML.
These CASE tools provide diagram-specific editors for the 13
diagram types of UML
• Smart line routing—The editor will route the arrows and other
lines to help ensure that the lines don’t cross each other.
• Cross-referencing—The tools will automatically provide cross-
references and hyperlinks between the various diagrams and
other information that you enter into the tool.
• Checking and testing—Most tools will check whether the
various diagrams and the accompanying text are consistent
with each other.
12. UML CASE Tools – Cont.
• Advanced analysis— Some tools will analyze your diagrams
and find conceptual and timing inconsistencies in them.
These tests are more advanced than the basic checking and
testing that almost all tools provide.
• Document generation—Many tools automatically generate
documentation from the specification.
• Code generation—Many tools will generate Java, SQL, C++,
Visual Basic or other source code for you.
• Code reverse engineering—Some tools will read your source
code and generate the UML diagrams from the code.
• Group tools—Most of the tools provide assistance for groups
to work together in developing complex systems. For
example, the tool might include version management
capabilities
13. UML CASE Tools – Cont.
List of UML tools
http://en.wikipedia.org/wiki/List_of_UML_tools
Here is a list of some of the more common CASE Tools that
are available.
• Rational Rose
• Visio
• Paradigm Plus
• Together/J from Object International
• Visual UML
• TAU from TeleLogic
• Rhapsody from iLogix for Real Time Systems
Hinweis der Redaktion
You know exactly what you are getting
You will have lower development costs
Your software will behave as you expect it to. Fewer surprises
The right decisions are made before you are given poorly written code. Less overall costs
We can develop more memory and processor efficient systems
System maintenance costs will be lower. Less relearning takes place
Working with a new developer will be easier.
Communication with programmers and outside contractors will be more efficient
If software is complex need of model
If a system is developed by the hundreds of People there is also need of model for smooth communication and understanding the software system
Now looking at the Object Oriented Software Development as mental transformations , so looking at this current figure that we see on this current slide , it shows the few of the models that a development team might create . Again the project starts as the mental models of the client side stockholders. During the requirement gathering and analysis workflows the mental models are combined and transformed into requirements model . So the non-functional requirements of the requirements model are transformed in the architecture model which again defines the high-level structure solution and the functional requirements of the requirements model are transformed into a design model, which again defines the abstract components of the software solution .so the design model is merged with the architecture model to produce the solution model which again defined the detailed structure of the software solution , so the solution model is used to guide the construction of the code fro the again software solution
Now looking at the UML Diagrams .On this current slide , we see again these UML diagrams enable us to create visualizations of our mental model of software systems.
Use Case Diagram : represents the set of high - level behaviors that a system must perform for a given actor.
Cass Diagram : represents a collection of software classes and their entire relationships
Object Diagram : represents a runtime snapshot of software objects and their entire relationships
Communication Diagrams and they are formally by the way called Collaboration diagrams that represent a collection of object that work together to support some system behavior.
Sequence Diagram : represents a time oriented perspective of object communication
Activity Diagram : represents a flow of the activities that might be performed by either a system or an actor
State Machine Diagram : represents a set of states that an object might experience and the triggers that transition the object from one state to another
Component Diagram : represents a collection of physical software Components and their interrelationships
Deployment Diagram : represents a collection of Components and shows how these are distributes across one or more hardware notes
Package Diagram : represents a collection of other modeling elements and diagrams
Interactive Overview Diagram : represents a form of activity diagram where nodes can represent interaction diagram fragments , these fragments are usally sequences fragments that can also be communication timing or interaction overview diagram fragments .
A Timing Diagram : represents changes in a state or value. It can also show time and duration interactions between time events
Composite Structure Diagram : represents the internal structure of a classifier usually in a form of parts and can include the interaction ports and interfaces and we see a profile diagram that might define additional diagram types or extend existing diagrams with additional notations
UML is divided in to two General set of Diagrams
Structured modeling diagrams
It shows the static structure of the objects in a system
Behavioral modeling diagram
It shows the dynamic behavior of the objects in a system