NEW! Open Enrollment MagicDraw Courses
in USA, Europe, and Asia
2
Open Enrollment Class Announcement
Check the upcoming open enrollment classes
“Applying UML 2.0 with MagicDraw” in multiple locations.
Check detailed info at www.magicdraw.com !
� We are offering you regular Open
Enrollment classes at a site near you, to
compliment our Onsite training curriculum.
� MagicDraw training open enrollment
classes are offered initially in the U.S. and
Europe.
Do you need MagicDraw training for just yourself or several employees?
Want MagicDraw training for a small group but want to get away?
3
MagicDraw Open Enrollment Locations and Dates
Location Apr May Jun Jul Aug Sep Oct Nov Dec
USA1-5
Seattle, WA
5-9
Plano, TX
10-14
Seattle, WA
4-8
Plano, TX
16-20
Seattle, WA
4-8
Plano, TX
Europe
10-14
Kaunas,
Lithuania
29-02
TBD,
Germany
21-25
Kaunas,
Lithuania
2-6
TBD,
UK
27-1
Kaunas,
Lithuania
Asia
8-12
Bangkok,
Thailand
24-28,
Bangkok,
Thailand
18-22,
Bangkok,
Thailand
13-17
Bangkok,
Thailand
4
Why Modeling Is Important?
� Modeling is the core of modern software development, and speeds up
implementation while elevating quality and user satisfaction.
� It applies to all software development activities – from requirements to testing.
� Without efficient modeling skills you cannot be successful in today’s software
development!
Did You Know?
Software Development magazine Salary Survey 2005 has surveyed over 4000 software
developers and managers and has identified that the MOST important skills needed to
produce quality projects and products are architecture modeling and design (59% of the
staff and 56% of the managers indicated this). The survey ranked this higher than
programming, QA, testing, and requirements management. Therefore, don't miss your
chance to spend your training budget on the right education!
5
UML in the Software Development Process
Implementation architecturePackage structureInteraction scenariosDetailed class and data modelsUser interface “maps”
Code generation from UMLVisualization of code structureModel transformationsCode model analysis
Test case action flowsTest data object structuresInteractions for test scenarios
Domain analysis modelVisual concept dictionaryUse case scenariosActivity trails
6
Application of Gained Skills
Business Analysts� Increase modeling efficiency of
business processes that capture user desires
� Perform domain analysis� Participate in creating UML and
other standards based models� …
Database Designers
� Design database architecture
� Introspect existing databases
� Generate database tables
� Transform class diagrams to
database schemas
� …
System Analysts & Architects
� Apply UML for different
architectural views
� Transition system models from
business models
� Manage modeling teamwork
� …
Developers
� Define package structure
� Prepare detailed class models
� Model interactions
� Visualize deployment
� Reverse and visualize code
� …
7
Contents of MagicDraw & UML Training Courses
8
A Case Study: Domain Analysis
Perform domain analysis by modeling domain entities and their relationships using simplified class diagram. This diagram will serve as a visual dictionary of concepts. It will also be a starting point for your design-level data model.
� With MagicDraw you can generate dictionary in HTML format
Reservation
Reader
Item
Loan
Category
Return
Penalty
is given for11
classified by1..*0..*
inactivates11
performs
1
0..*
books
0..*
1
given for overdue0..1
1
9
A Case Study: Use Case Model
Register items' return
extension pointsoverdue
Make item's reservation
Register items' loan
Review reader's history
Find item
Penalize for overdue
Librarian
Reader
<<extend>>(overdue)
<<include>>
<<include>>
Analyze functional requirements by identifying user roles – actors – and associating them to their use cases.
� With MagicDraw you can document use cases and generate use case documentation from model.
10
A Case Study: Activity Diagram for Use Case Scenarios
Select returned items
Identify reader
Show list ofloaned items
Record return data
Penalize for overdue [overdue]
[on time]
Model abstract use case implementation by creating activity diagrams visualizing activity flows for primary and secondary use case scenarios.
� You can hyperlink use cases to the activity diagrams modeling their scenarios
� You can decompose activity diagram elements using hyperlinks to detailed diagrams
� Assign activity diagrams as use case primary and secondary scenarios, which includes them in use case documentation
11
A Case Study: Robustness Analysis
Perform the robustness analysis to identify the major components in layered architecture: user interface boundaries, business logic controls, and data entities.
SystemAccessService
NotificationService
ItemSearchForm
ItemBrowser SearchService
ReaderProfile LoanService
LoginDialog
Librarian
Reader
Loan
Item
Penalty
User
12
A Case Study: Package Dependencies
Prepare package dependencies diagram to group your implementation classes in appropriate way. This will help you maintain the code well structured and avoid design flaws such as cyclic dependencies or dependencies on unstable parts.
gui
persistence
services
web
domain
Specifics
Stability
13
A Case Study: Interactions
Model component interactions for use case scenarios in order to find out new methods in existing classes or even new classes with specific responsibilities.
[for each reservation ]
loop
<<control>>
: NotificationService
<<boundary>>
: ReaderProfile
<<control>>
: LoanManager
: Reader <<entity>>
: Loan
Login
ref
cancelReservation()3:
inactivate()4:
getWaitingOrder5:
notifyUser(-)6:
select rezervations for canceling1:
cancelReservations()2:
[for each reservation ]
loop
Login
ref
14
A Case Study: Detailed Class Model
Create detailed class diagrams to capture your object-oriented datamodel. Later you will be able to transform them into executable code –database DDL scripts, XML schemas, Java code, etc.
Reader
-firstName : String-lastName : String-birthday : date-email : String
Loan
-dateReturned : date = null-dateLoaned : date = null-dateReserved : date
Book
-numberOfPages : int
-published : date
-ISBN : String
-edition : int
Penalty
-suspendedUntil : date
Item
-description : String-price : float
-title : String
AudioRecord
-released : date
-artist : String-label : String
Category
-description : String-name : String
-overdueLoan1
-categories
1..*
0..*
-reader
1
-book
1
-childs
0..*
-parent
0..1
-loaner1
15
A Case Study: Implementation Architecture
J2EE Application Server
<<artifact>>
JSP pages
<<EJB-JAR>>
EJBServices.jar
<<EJB-JAR>>
EJBEntities.jar
Database Server
<<artifact>>
Database
Local Client
<<artifact>>
AdminGUI.jar
Web Client
<<artifact>>
Browser
TCP/IP
HTTP
JDBC
Define the major artifactsthat manifest implementation of your components.
Indicate how they are deployed on hardwarenodes, their inter-dependencies and communication protocols.
16
A Case Study: Prepare Platform Specific Models
<<EJBSessionBean>>
SystemAccessService
+login( username : String, password : String ) : boolean
<<dao>>
User
+comparePassword( password : String ) : boolean+getUser( username : String ) : User
<<server page>>
LoginHandler.jsp
<<client page>>
main.html
<<client page>>
index.html
<<client page>>
error.html
<<form>>
login
<<builds>> <<builds>>
<<submit>>{parameters = name, password}
Identify implementation technologies and software component types.
Prepare models that are ready for code generation!
17
Learn MagicDraw Features!
� Organize your model elements and hyperlink them for easy navigation
� Prepare model content diagrams for easy model navigation� Find all generalized, associated, and dependent classes for
a given class� Reuse model element in multiple diagrams with different
level of details� Document your use case models and generate use case
specification� Transform OO data models to database structure and XML
schemas� Create business process and system documentation
following style guidelines and using layout tools� Visualize and analyze code structure after reversing it to
UML model� Decompose large models into independent modules and
profiles� Compare model versions and find out changes in model
and diagrams� Create and associate analysis-, design-, and
implementation- level models� …and much more!and much more!and much more!and much more!
Increase efficiency of tool usage by learning how to:
18
Sample MagicDraw Feature: Comparison of Two Model Versions (1)
Deleted elements
Modified element – a diagram
Added element
19
Sample MagicDraw Feature: Comparison of Two Model Versions (2)
Find out modified parts in diagrams!
20
Why Train with Us?
1. Our instructors are MagicDraw experts – people who participate in development of the product.
2. We have applied UML in numerous projects including development of MagicDraw itself.� We practice what we preach!
3. Our instructors are certified by OMG as UML professionals.4. We always get good reviews by our customers.
� Remember to order Training with every MagicDraw purchase.� Consider adding one of our Professional Services consultants as an on-staff mentor
in your first MagicDraw project.
“Course used our own project as case study and this was very effective. Darius
and the team were very good at understanding our issues and showing how
UML and MagicDraw can help us. Very impressive, friendly and helpful
instructor.”
Colin Manning, Lead Engineer, ts.com
21
Instructor
Darius has been working with No Magic from 1998. He participated as Java developer in
multiple international projects. Darius has developed a modeling case study MagicLibrary and
leaded multiple MagicDraw training courses worldwide. He also taught commercial courses on
Requirements Management with UML, Software Design with UML, and Java/J2EE
Programming. Darius received PhD from Vytautas Magnus University, where he teaches
courses Software Development Methodology and Software Engineering. Darius participates
frequently in various conferences and presents talks on UML and other software development
topics. He holds the following professional certificates:
� Microsoft Certified Professional� Sun Certified Programmer for the Java 2 Platform 1.4� OMG-Certified UML Professional Intermediate
Dr. Darius Šilingas
MagicDraw Training Department Leader