View
239
Download
1
Category
Tags:
Preview:
Citation preview
2
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!
3
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
4
Application of Modeling Skill Sets
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 …
5
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
performs1
0..*
books
0..*
1
given for overdue0..1
1
6
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.
7
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
8
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
9
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
10
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
Loginref
cancelReservation()3:
inactivate()4:
getWaitingOrder5:
notifyUser(-)6:
select rezervations for canceling1:
cancelReservations()2:
[for each reservation ]
loop
Loginref
11
A Case Study: Detailed Class Model
Create detailed class diagrams to capture your object-oriented data model. 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
-categories1..*
0..*
-reader1
-book1
-childs0..*
-parent0..1
-loaner1
12
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 artifacts that manifest implementation of your components.
Indicate how they are deployed on hardware nodes, their inter-dependencies and communication protocols.
13
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!
14
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!
Increase efficiency of tool usage by learning how to:
15
Sample MagicDraw Feature: Comparison of Two Model Versions (1)
Deleted elements
Modified element – a diagram
Added element
16
Sample MagicDraw Feature: Comparison of Two Model Versions (2)
Find out modified parts in diagrams!
17
ANNOUNCING New Open Enrollment Classes from No Magic
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 USA,
Europe, and Thailand.
Onsite training is available in all the
world with the possibility to choose
specialized course that suites best your
needs!
Do you need MagicDraw training for just yourself or several
employees?
Want MagicDraw training for a small group but want to get away?
18
Use MagicDraw Open Enrollment Courses: Locations and Dates
Location Apr May Jun Jul Aug Sep Oct Nov Dec
USA1-5
Seattle, WA5-9
Plano, TX10-14
Seattle, WA4-8
Plano, TX16-20
Seattle, WA4-8
Plano, TX
Europe10-14
Kaunas, Lithuania
29-02TBD,
Germany
21-25Kaunas,
Lithuania
2-6TBD,UK
27-1Kaunas,
Lithuania
Asia8-12
Bangkok,Thailand
24-28,Bangkok,Thailand
18-22,Bangkok,Thailand
13-17Bangkok,Thailand
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 Group Leader
Recommended