Transcript MagicDraw UML for Developers
Free Mini Course: Applying UML 2.0 with MagicDraw
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!
2
UML in the Software Development Process
Domain analysis model Visual concept dictionary Use case scenarios Activity trails Implementation architecture Package structure Interaction scenarios Detailed class and data models User interface “maps” Test case action flows Test data object structures Interactions for test scenarios Code generation from UML Visualization of code structure Model transformations Code model analysis 3
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 … 4
A Case Study: Domain Analysis
Reader
1 performs 0..*
Reservation
1 0..* books 1
Item
0..* is given for classified by 1 1..*
Loan Category
1
Penalty
0..1
given for overdue inactivates 1
Return
1 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 5
A Case Study: Use Case Model
Reader Librarian Make item 's reservation Review reader's history
<
Register item s' return extension points
overdue
Register item s' loan
<
Find item
<
With MagicDraw you can document use cases and generate use case documentation from model.
Penalize for overdue
6
A Case Study: Activity Diagram for Use Case Scenarios
Identify reader Show list of loaned item s Select returned item s
[overdue] [on time]
Record return data Penalize for overdue
Model abstract use case implementation by creating activity diagrams secondary visualizing activity flows for primary and 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 7
A Case Study: Robustness Analysis
LoginDialog Librarian ReaderProfile System AccessService NotificationService User LoanService Loan Penalty Reader Item Brow ser SearchService Item SearchForm Item
Perform the robustness analysis to identify the major components in layered architecture : user interface boundaries , business logic controls , and data entities .
8
A Case Study: Package Dependencies
gui web services domain Stability persistence Specifics
Prepare package dependencies diagram classes in appropriate way. This will help you maintain the code well structured and avoid design flaws to group your implementation such as cyclic dependencies or dependencies on unstable parts .
9
A Case Study: Interactions
: Reader
<
: ReaderProfile
<
: LoanManager
<
: Loan
<
: NotificationService
1: select rezervations for canceling 2: cancelReservations() 3: cancelReservation() 4: inactivate() 5: getWaitingOrder 6: notifyUser(-) Model component interactions methods for use case scenarios in order to in existing classes or even new classes find out new with specific responsibilities.
10
A Case Study: Detailed Class Model
Reader
-firstName : String -lastName : String -birthday : date -email : String 1 -loaner 1 -overdueLoan -reader 1
Loan
-dateReserved : date -dateLoaned : date = null -dateReturned : date = null
Penalty
-suspendedUntil : date -book 1
Item
-title : String -description : String -price : float 0..* -categories 1..*
Category
-name : String -description : String -childs 0..* -parent 0..1
Book
-ISBN : String -numberOfPages : int -edition : int -published : date
AudioRecord
-artist : String -label : String -released : date 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.
– 11
A Case Study: Implementation Architecture
Web Client
<
Browser
HTTP
J2EE Application Server
<
JSP pages Local Client
<
AdminGUI.jar
TCP/IP <
EJBServices.jar
<
EJBEntities.jar
Database Server
<
Database
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 .
12
A Case Study: Prepare Platform Specific Models
<
index.html
<