6 identify design elements - fudan...
TRANSCRIPT
![Page 1: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/1.jpg)
1
6 Identify Design Elements
![Page 2: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/2.jpg)
2
![Page 3: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/3.jpg)
3
![Page 4: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/4.jpg)
4
Identify Design Elements in Context
[EarlyElaboration
Iteration][Inception
Iteration (Optional)]
Define a CandidateArchitecture
PerformArchitectural
Synthesis
Analyze Behavior
Refine theArchitecture
DesignComponents
Design theDatabase
(Optional)Identify DesignElements Architect
![Page 5: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/5.jpg)
5
![Page 6: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/6.jpg)
6
![Page 7: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/7.jpg)
7
Identify Design Elements Steps
Identify classes and subsystems
Identify subsystem interfaces
Identify reuse opportunities
Update the organization of the Design Model
Checkpoints
Analysis Classes
![Page 8: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/8.jpg)
8
From Analysis Classes to Design Elements
Analysis Classes Design Elements
<<boundary>>
<<control>>
<<entity>>
<<boundary>>
Many-to-Many Mapping
Subsystem<<subsystem>>
Subsystem<<subsystem>>
![Page 9: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/9.jpg)
9
Example: Registration Package
MainRegistrarForm
1
11
MainStudentForm
1
RegisterForCoursesForm
<<boundary>>
0..10..1
11
CloseRegistrationForm
<<boundary>>
0..10..1
CloseRegistrationController
<<control>>RegistrationController
<<control>>
1
![Page 10: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/10.jpg)
10
FulltimeStudent
<<entity>>
ParttimeStudent
<<entity>>PrimaryScheduleOfferingInfo
<<entity>>
ScheduleOfferingInfo
<<entity>>Student
<<entity>>
Example: University Artifacts Package: Generalization
![Page 11: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/11.jpg)
11
Student
<<entity>>
Professor
<<entity>>
Schedule
<<entity>>
CourseOffering
<<entity>>
CourseOfferingList
1
Prerequisites
0..*Course
<<entity>>0..*
1
instructor
0..1
0..*
0..*0..*
0..*
0..4
primaryCourses
0..*
0..2
alternateCourses
0..*
1
Example: University Artifacts Package: Associations
![Page 12: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/12.jpg)
12
IBillingSystem
<<Interface>>
ICourseCatalogSystem
<<Interface>>
Example: External System Interfaces Package
![Page 13: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/13.jpg)
13
Realizes one or more interfaces that define its behavior
Subsystem
Review: Subsystems and Interfaces
InterfaceRealization (Canonical form)
Realization (Elided form)
Interface Name
Subsystem Name <<subsystem>>
Interface Name
<<interface>>
Subsystem Name <<subsystem>>
![Page 14: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/14.jpg)
14
Identify Design Elements Steps
Identify classes and subsystems
Identify subsystem interfaces
Identify reuse opportunities
Update the organization of the Design Model
Checkpoints
![Page 15: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/15.jpg)
15
All other analysis classes map directly to design classes.
Analysis Design
Example: Design Subsystems and Interfaces
BillingSystem
//submit bill()
<<boundary>>
Billing System
<<subsystem>>
IBillingSystem
submitBill(forTuition : Double, forStudent : Student)
CourseCatalogSystem
//get course offerings()
<<boundary>>
Course Catalog System
<<subsystem>>
ICourseCatalogSystem
getCourseOfferings(forSemester : Semester, forStudent : Student) : CourseOfferingList
initialize()
![Page 16: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/16.jpg)
16
Analysis Class Design Element
CourseCatalogSystem
BillingSystem
All other analysis classes
map directly to design
classes
CourseCatalogSystem Subsystem
BillingSystem Subsystem
Example: Analysis-Class-To-Design-Element Map
![Page 17: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/17.jpg)
17
Interfaces start with an “I”
Modeling Convention: Subsystems and Interfaces
CourseCatalogSystem<<subsystem>>
ICourseCatalogSystem + initialize ()
+ getCourseOfferings ()
CourseCatalogSystem<<subsystem>>
+ initialize ()
+ getCourseOfferings ()
ICourseCatalogSystem<<interface>>
+ getCourseOfferings ()
+ initialize ()
![Page 18: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/18.jpg)
18
Example: Subsystem Context: CourseCatalogSystem
Provided
interface
defined
ICourseCatalogSystem<<Interface>>
CloseRegistrationController
+ // is registration open?()
+ // close registration()
<<control>>
0..1
+courseCatalog
CourseCatalogSystem<<subsystem>>
+ initialize ()
+ getCourseOfferings ()
+ getCourseOfferings ( for Semester: Semester )
+ initialize ()
RegistrationController
+ getCurrentSchedule()
+ deleteCurrentSchedule()
+ submitSchedule()
+ saveSchedule()
+ getCourseOfferings()
+ setSession()
+ <<class>> new()
+ getStudent()
<<control>>
CourseOfferingList
+ new()
+ add()
1
Required interface
defined
![Page 19: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/19.jpg)
19
Example: Subsystem Context: Billing System
IBillingSystem
+ submitBill(forStudent : Student, forTuition : double)
<<Interface>>1
0..1
+ Biller 1
Student
<<entity>>
CloseRegistrationController
+ // is registration open?()
+ // close registration()
<<control>>
BillingSystem<<subsystem>>
+ submitBill(forStudent : Student, forTuition : double)
![Page 20: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/20.jpg)
20
Identify Design Elements Steps
Identify classes and subsystems
Identify subsystem interfaces
Identify reuse opportunities
Update the organization of the Design Model
Checkpoints
![Page 21: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/21.jpg)
21
?
Reuse Opportunities Internal to System
![Page 22: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/22.jpg)
22
Identify classes and subsystems
Identify subsystem interfaces
Identify reuse opportunities
Update the organization of the Design Model
Checkpoints ClassB
Y()
Z()
ClassA
Y()
Z()
Identify Design Elements Steps
ClassC
Y()Z()
ClassD
Y()Z()
ClassC
Y()Z()
ClassE
Y()Z()
![Page 23: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/23.jpg)
23
Example: Architectural Layers
Middleware
<<layer>>
Base Reuse
global
Application
<<layer>>
Business
Services
<<layer>>
Necessary because the
Application Layer must
have access to the core
distribution mechanisms
provided with Java RMI.
![Page 24: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/24.jpg)
24
Registration
<<layer>>
Application
Example: Application Layer
![Page 25: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/25.jpg)
25
Security
GUI FrameworkSecure Interfaces
Application<<layer>>
Business Services
<<layer>>
<<layer>>
Application
<<layer>>
Business Services
Example: Application Layer Context
University Artifacts
Registration
External System
Interfaces
![Page 26: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/26.jpg)
26
Example: Business Services Layer
CourseCatalogSystem
<<subsystem>>
External System
Interfaces
University
Artifacts
ObjectStore
Support
<<layer>>
Business Services
GUI
Framework
Secure
Interfaces
Security
<<subsystem>>
Security
Manager
BillingSystem
<<subsystem>>
![Page 27: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/27.jpg)
27
Middleware<<layer>>
Business Services
<<layer>>
Example: Business Services Layer Context
java.sqlcom.odi
<<layer>>
Middleware
BillingSystem<<subsystem>>
CourseCatalogSystem<<subsystem>>
External System Interfaces
University Artifacts
ObjectStoreSupport
<<layer>>
Business Services
GUI
Framework
Secure
Interfaces
Security
<<subsystem>>
SecurityManager
![Page 28: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/28.jpg)
28
com.odi
Database(from com.odi)
Session(from com.odi)
Transaction(from com.odi)
Map(from com.odi)
java.sql
ResultSet(from com.odi)
Connection(from com.odi)
Statement(from com.odi)
DriverManager(from com.odi)
Example: Middleware Layer
<<layer>>
Middleware
![Page 29: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/29.jpg)
29
7 RunTime Architecture
![Page 30: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/30.jpg)
30
![Page 31: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/31.jpg)
31
Describe the Run-time Architecture in Context
[EarlyElaboration
Iteration][Inception
Iteration (Optional)]
Define a CandidateArchitecture
PerformArchitectural
Synthesis
Analyze Behavior
Refine theArchitecture
DesignComponents
Design theDatabase
(Optional)Describe the Run-time Architect
Architecture
![Page 32: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/32.jpg)
32
![Page 33: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/33.jpg)
33
![Page 34: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/34.jpg)
34
Describe the Run-time Architecture Steps
Analyze concurrency requirements
Identify processes and threads
Identify process lifecycles
Map processes onto the implementation
Distribute model elements among processes
![Page 35: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/35.jpg)
35
![Page 36: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/36.jpg)
36
![Page 37: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/37.jpg)
37
![Page 38: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/38.jpg)
38
![Page 39: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/39.jpg)
39
![Page 40: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/40.jpg)
40
![Page 41: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/41.jpg)
41
![Page 42: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/42.jpg)
42
![Page 43: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/43.jpg)
43
![Page 44: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/44.jpg)
44
Class diagrams
Active classes as processes/threads
Composition relationships from processes/threads to classes
Composition relationships from processes/threads to subsystems
Class NameProcess Name
<<process>>
Process Name
<<process>>
Process Name
<<process>>
Modeling the Mapping of Elements to Processes
Thread Name
<<thread>>
<<subsystem>>
Subsystem Name
![Page 45: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/45.jpg)
45
![Page 46: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/46.jpg)
46
![Page 47: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/47.jpg)
47
![Page 48: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/48.jpg)
48
8 Describe Distribution
![Page 49: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/49.jpg)
49
![Page 50: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/50.jpg)
50
Describe
Distribution
Implementation Model
Describe Distribution Overview
Software
Architecture
Document
Deployment Model
Design Model
Supplementary
Specifications
![Page 51: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/51.jpg)
51
Key Concepts: The Deployment View
The Deployment View is an “architecturally significant”
slice of the Deployment Model.
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance, scalability, throughput
System integrators System topology, delivery,
installation, communication
System engineering
Analysts/Designers
Structure
![Page 52: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/52.jpg)
52
<<legacy RDBMS>>
Course Catalog
Review: Example: Deployment Diagram with Processes
<<Campus LAN>>
<<Campus LAN>><<Campus LAN>>
<<application server>>
Registration Server
<<client workstation>>
PC
CourseCatalogSystemAccess
CourseRegistrationProcess
BillingSystemAccess
Billing
System
<<legacy>>
0..2000
1
1
1
1
1
![Page 53: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/53.jpg)
53
Why Distribute?
Reduce processor load
Special processing requirements
Scaling concerns
Economic concerns
Distributed access to the system
![Page 54: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/54.jpg)
54
Distribution Patterns
Client/Server
3-tier
Fat Client
Fat Server
Distributed
Client/Server
Peer-to-peer
![Page 55: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/55.jpg)
55
Thinner client, thicker server
Database Server(s)
Client/Server Architectures
Application
Business Object
Services
Client A
Business Object
Engine
Business Object
Services
Business Object
Engine
Business Object Server
COM
MTS
Beans
ETS
Client B
Application
DCOM
ADO/RCORBA Beans
Client C
WWW Browser
Web Server
HTML
CGIASP Java
Business Object
Services
Business Object
Engine
![Page 56: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/56.jpg)
56
Application Services
Business Services
Data Services
Client/Server: Three-Tier Architecture
Database Server(s)
Business Object
Services
Business Object
Engine
Business Object Server
COM
MTS
Beans
ETS
Client B
Application
DCOM
ADO/RCORBA Beans
![Page 57: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/57.jpg)
57
Application Services
Business Services
Data Services
Client/Server: “Fat Client” Architecture
Application
Business Object
Services
Client A
Business Object
Engine
Database Server(s)
![Page 58: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/58.jpg)
58
Application Services
Business Services
Data Services
Client/Server: Web Application Architecture
Client C
WWW Browser
Web Server
HTML
CGIASP Java
Business Object
Services
Business Object
Engine
Database Server(s)
![Page 59: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/59.jpg)
59
Application
Services
Business
Services
Data Services
Peer-to-Peer Architecture
Business Object
Services
Business Object
Engine
COM
MTS
Beans
ETS
Application
DCOM
ADO/RCORBA Beans
Business Object
Services
Business Object
Engine
COM
MTS
Beans
ETS
Application
DCOM
ADO/RCORBA Beans
![Page 60: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/60.jpg)
60
Describe Distribution Steps
Define the network configuration
Allocate processes to nodes
Define the distribution mechanism
![Page 61: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/61.jpg)
61
Describe Distribution Steps
Define the network configuration
Allocate processes to nodes
Define the distribution mechanism
![Page 62: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/62.jpg)
62
The Network Configuration
End-user workstation nodes
”Headless" processing server nodes
Special configurations
Development
Test
Specialized processors
![Page 63: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/63.jpg)
63
Review: What Is a Node?
Represents a run-time computational resource Generally has at least memory
and often processing capability.
Types: Device
• Physical computational resource with processing capability.
• May be nested
Execution Environment• Represent particular
execution platforms
<<exe env>>
EE Name
<<device>>
Device Name
<<device>>
Sub Device
Name
![Page 64: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/64.jpg)
64
Review: What Is a Connector?
A connector represents a:
Communication mechanism
• Physical medium
• Software protocol
<<application server>>
Server<<RS-232>>
<<100-T Ethernet>>
Connector
<<client workstation>>
Console
<<client workstation>>
Kiosk
![Page 65: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/65.jpg)
65
Review: Example: Deployment Diagram
<<legacy RDBMS>>
Course Catalog
<<Campus LAN>>
<<Campus LAN>><<Campus LAN>>
<<application server>>
Registration Server
<<client workstation>>
PC
Billing System
<<legacy>>
0..2000
1
1
1
1
1
![Page 66: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/66.jpg)
66
Describe Distribution Steps
Define the network configuration
Allocate processes to nodes
Define the distribution mechanism
![Page 67: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/67.jpg)
67
Process-to-Node Allocation Considerations
Distribution patterns
Response time and system throughput
Minimization of cross-network traffic
Node capacity
Communication medium bandwidth
Availability of hardware and communication links
Rerouting requirements
![Page 68: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/68.jpg)
68
<<legacy RDBMS>>
Course Catalog
Review: Example: Deployment Diagram with Processes
<<Campus LAN>>
<<Campus LAN>><<Campus LAN>>
<<application server>>
Registration Server
<<client workstation>>
PC
CourseCatalogSystemAccess
CourseRegistrationProcess
BillingSystemAccess
Billing
System
<<legacy>>
0..2000
1
1
1
1
1
![Page 69: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/69.jpg)
69
What is Deployment?
Deployment is the assignment, or mapping, of software artifacts to physical nodes during execution.
Artifacts are the entities that are deployed onto physical nodes
• Processes are assigned to computers
Artifacts model physical entities.
Files, executables, database tables, web pages, etc.
Nodes model computational resources.
Computers, storage units.
![Page 70: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/70.jpg)
70
Example: Deploying Artifacts to Nodes
<<client workstation>>
PC
StudentApplication
<<client workstation>>
PC
<<process>>
StudentApplication
<<deploy>>
<<client workstation>>
PC
<<process>>
StudentApplication
![Page 71: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/71.jpg)
71
What is Manifestation?
The physical implementation of a model element as an artifact.
A relationship between the model element and the artifact that implements it
• Model elements are typically implemented as
a set of artifacts.
Source files, executable files, documentation file
![Page 72: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/72.jpg)
72
Example: Manifestation
<<client workstation>>
PC
<<process>>
StudentApplication
<<deploy>>
MainStudentForm
<<manifest>>
<<header>>
MainStudentForm
<<source>>
MainStudentForm
<<manifest>>
<<manifest>>
![Page 73: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/73.jpg)
73
What is a Deployment Specification?
A detailed specification of the parameters of the deployment of an artifact to a node.
May define values that parameterize the execution
![Page 74: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/74.jpg)
74
Example: Deployment Specification
<<client workstation>>
PC
<<process>>
StudentApplication
<<deploy>>
MainStudentForm
<<manifest>>
<<header>>
MainStudentForm
<<source>>
MainStudentForm
<<manifest>>
<<manifest>>
<<deploymentSpec>>
StuAppDeploy
execution =
priority =
location =
![Page 75: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/75.jpg)
75
Describe Distribution Steps
Define the network configuration
Allocate processes to nodes
Define the distribution mechanism
![Page 76: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/76.jpg)
76
Distribution Mechanism
Remote Method
Invocation (RMI)
Analysis
Mechanism
(Conceptual)
Design
Mechanism
(Concrete)
Implementation
Mechanism
(Actual)
Java 1.2 from SunDistribution
RMI was chosen as the implementation mechanism for distribution
![Page 77: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/77.jpg)
77
Design Mechanisms: Distribution: RMI
Distribution characteristics Latency
Synchronicity
Message Size
Protocol
![Page 78: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/78.jpg)
78
Remote Method Invocation (RMI) (continued)
OneInstanceper node
For all classes that realize the Remote
interface, a remote stub and a remote
skeleton are created. These classes handle
the communication that must occur to
support distribution.
Naming.
lookup(name : String) : Remote
(from java.rmi)
SampleDistributedClass
doSomething(aParameter : SamplePassedData)
<<role>>
Remote(from java.rmi)
SampleDistributedClassClient<<role>>
SamplePassedData<<role>>
Any Java class that you want to
pass as an argument to an
operation on a remote interface
must realize the Serializable
Interface.
UnicastRemoteObject(from Server)
To "distribute" a class in Java, you must define an interface
that inherits from Remote. The distributed class needs to
realize the defined Remote interface and also inherit from
(extend) the UnicastRemoteObject.
ISampleDistributedClass
doSomething(aParameter : SamplePassedData)
<<Interface>>
Serializable(from java.io)
Roles to be filled by the
designer applying the
mechanism
![Page 79: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... · · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]](https://reader034.vdocuments.us/reader034/viewer/2022051723/5ab302a27f8b9a1d168e0928/html5/thumbnails/79.jpg)
79
<<layer>>
Business Services
Example: Incorporating RMI
<<layer>>
Middleware
<<layer>>
Application
University Artifacts
(from Business Services)
Middleware<<layer>>
Application<<layer>>
Business Services
<<layer>>
java.rmi
<<interface>>
remote(from java.rmi)
Naming(from java.rmi)
UnicastRemote
Object(from Server)
Server
<<interface>>
Serializable(from java.io)
Java.io
Registration
Package
(from Application)