Presentation is loading. Please wait.

Presentation is loading. Please wait.

Copyright 8 2002 Flying Kiwi Productions Inc. 1 An Introduction to Object-Oriented Analysis Objects and UML in plain English. Chapter.

Similar presentations


Presentation on theme: "Copyright 8 2002 Flying Kiwi Productions Inc. 1 An Introduction to Object-Oriented Analysis Objects and UML in plain English. Chapter."— Presentation transcript:

1 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 1 An Introduction to Object-Oriented Analysis Objects and UML in plain English. Chapter 12: Subsystems Based on the book by David William Brown John Wiley & Sons, ISBN 0471371378

2 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 2 Copyright Copyright 8 2002 Flying Kiwi Productions All rights reserved. This slide presentation is based on “An Introduction to Object- Oriented Analysis; Objects and UML in Plain English,” by David William Brown, Wiley, ISBN 0471371378, “The Book.” where a copy of The Book is purchased Permission is hereby granted to copy, modify or excerpt all or any part of this slide presentation, provided it is solely for use with courses, seminars or other presentations or productions where a copy of The Book is purchased by or for each and every participant or recipient. An instructor guide is available from the publisher for such presentations.

3 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 3 Chapter 12: Subsystems 12.1. Dividing Up a Project. 12.2. How to Subdivide. 12.3. When to Subdivide. 12.4. Some Special Classes. 12.5. Comparison of Terms. 12.6. The Multilayer Model.

4 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 4 12.1 Dividing Up a Project. Chapter 12: Subsystems

5 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 5 l It can be used on projects n From very small, with 4 or 5 classes, n To huge, with hundreds of classes l But large projects are difficult to manage (in any paradigm) l Simply because of size and complexity. number of possible relationships The number of possible relationships exponentially grows exponentially with the number of classes. Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. scalable OOA is highly scalable

6 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 6 l Can be physically impossible to draw, l Let alone comprehend. reduce complexity. We need to reduce complexity. Subsystems, One method is Subsystems, encapsulation. Which are a form of encapsulation. Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. l l A large system with hundreds of boxes on the diagram

7 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 7 Encapsulation is hiding details and complexity within a well-defined published boundary. Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. As we have defined it

8 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 8 To illustrate, here is a class diagram for a Human Resources system... Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project.

9 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 9 Skill Requirement Position Assignment Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. Project Unit of Work Activity Employee Position Enrolment Credential Skill Course Training Source Instructor Course Offering H.R. System Licence drives 1 * 1 * 1 * * 1 * * ** * 11 * 1 * * **1 1 * 1 * * * * * 1 * ** 1 * * 1 * 1 ** * * * 1 * 1

10 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 10 Such as the Time-Reporting System... Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. We can divide this diagram into clusters of related classes,

11 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 11 TimeReporting Skill Requirement Position Assignment Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. Project Unit of Work Activity Employee Position Enrolment Credential Skill Course Training Source Instructor Course Offering H.R. System Licence drives 1 * 1 * 1 * * 1 * * ** * 11 * 1 * * **1 1 * 1 * * * * * 1 * ** 1 * * 1 * 1 ** * * * 1 * 1

12 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 12 Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. And the Administration System...

13 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 13 AdministrationSubsystem Skill Requirement Position Assignment Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. Project Unit of Work Activity Employee Position Enrolment Credential Skill Course Training Source Instructor Course Offering H.R. System Licence drives 1 * 1 * 1 * * 1 * * ** * 11 * 1 * * **1 1 * 1 * * * * * 1 * ** 1 * * 1 * 1 ** * * * 1 * 1

14 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 14 Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. And the Skills & Training System...

15 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 15 Skills & Training Subsystem Skill Requirement Position Assignment Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. Project Unit of Work Activity Employee Position Enrolment Credential Skill Course Training Source Instructor Course Offering H.R. System Licence drives 1 * 1 * 1 * * 1 * * ** * 11 * 1 * * **1 1 * 1 * * * * * 1 * ** 1 * * 1 * 1 ** * * * 1 * 1

16 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 16 Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. can be viewed as a sub -sub-system... Of which the Training part

17 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 17 TrainingSub-sub-system Skill Requirement Position Assignment Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. Project Unit of Work Activity Employee Position Enrolment Credential Skill Course Training Source Instructor Course Offering H.R. System Licence drives 1 * 1 * 1 * * 1 * * ** * 11 * 1 * * **1 1 * 1 * * * * * 1 * ** 1 * * 1 * 1 ** * * * 1 * 1

18 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 18 There are relatively few that cross the boundaries. Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. Note that while there are many relationships within each subsystem,

19 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 19 Skill Requirement Position Assignment Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. Project Unit of Work Activity Employee Position Enrolment Credential Skill Course Training Source Instructor Course Offering H.R. System Licence drives 1 * 1 * 1 * * 1 * * ** * 11 * 1 * **1 1 * 1 * * * * * 1 * * 1 * * 1 * 1 ** * * * 1 * 1 Skills & Training Subsystem Training Sub-sub-system 1*1 * ** * 1 1 * 1 *

20 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 20 The human mind can handle only “Seven  Three” pieces of information (Miller 1956,1975) Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. The Purpose of Subsystems

21 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 21 complexity There is a definite limit to the amount of complexity we can handle. dividedencapsulated Models divided and encapsulated become More understandable, More understandable, and Better communication tools. Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. In other words,

22 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 22 Let’s look at how to go and do this... Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. Now we’ve seen what subsystems are about,

23 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 23 Chapter 12: Subsystems 12.1. Dividing Up a Project. 12.2 How to Subdivide. 12.3. When to Subdivide. 12.4. Some Special Classes. 12.5. Comparison of Terms. 12.6. The Multilayer Model.

24 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 24 12.2 How to Subdivide. Chapter 12: Subsystems

25 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 25 l Often the divisions are “obvious”, l But still check the other criteria on the next few slides... Chapter 12: Subsystems Chapter 12: Subsystems 12.2. How to Subdivide. Intuitively Obvious

26 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 26 l For a subsystem to be an identifiable unit or whole, l Relatively few connections should cross its boundaries. l These connections can be: n Associations from the Class Diagram, n Events passed from one state machine to another (Ch 10), n Messages passed to a class requesting a service, n Responsibilities borne by one class to another. Chapter 12: Subsystems Chapter 12: Subsystems 12.2. How to Subdivide. Minimal Interactions and Dependencies

27 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 27 l Our example showed subsystems for n Training n Skills & Training n Time Reporting n Personnel Administration n And so on. l Each exists to handle some Business Function. Chapter 12: Subsystems Chapter 12: Subsystems 12.2. How to Subdivide. Functional Grouping

28 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 28 l Sometimes the groupings will be by hardware/software function l e.g., Printing, GUI or Database subsystems. l Subsystems may also be set by things happening at a single n Geographical location, n Hardware platform. Chapter 12: Subsystems Chapter 12: Subsystems 12.2. How to Subdivide. Functional Grouping

29 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 29 Chapter 12: Subsystems 12.1. Dividing Up a Project. 12.2. How to Subdivide. 12.3 When to Subdivide. 12.4. Some Special Classes. 12.5. Comparison of Terms. 12.6. The Multilayer Model.

30 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 30 12.3 When to Subdivide. Chapter 12: Subsystems

31 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 31 Systems Request document Systems Request document n Your first encounter with the problem n Your experience allied with your users’ view of the problem Completion of Requirements Analysis Completion of Requirements Analysis n Pause at this point to check n Maybe reuse a subsystem from an earlier project. Chapter 12: Subsystems Chapter 12: Subsystems 12.3. When to Subdivide. Before you begin Before you begin n n Based on knowledge of users’ business

32 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 32 Associations Associations show interactions and highlight collaborations l The Class Diagram is a powerful tool for finding subsystems graphic. Drawing a “fence” around a subsystem is easy, productive, and above all graphic. n Observe guidelines about “minimal interactions and dependencies.” l Works well at the whiteboard n Trying things out and erasing to try again. Chapter 12: Subsystems Chapter 12: Subsystems 12.3. When to Subdivide. The Class Diagram The Class Diagram

33 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 33 n As you search for operations/services/methods n Using Use Cases, STDs, Responsibilities etc. n You will see groups of functions that belong together. Completion of Analysis n A final check. And at this stage an important use for subsystems... Chapter 12: Subsystems Chapter 12: Subsystems 12.3. When to Subdivide. During Behavior Analysis During Behavior Analysis

34 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 34 skills data about? Who is this system recording skills data about? Chapter 12: Subsystems Chapter 12: Subsystems 12.3. When to Subdivide. l l On the next slide, take a good look at Skills and Training the Skills and Training subsystem.

35 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 35 Employee Employee Skill Requirement Position Assignment Chapter 12: Subsystems Chapter 12: Subsystems 12.1. Dividing Up a Project. Project Unit of Work Activity Position Enrolment Credential Skill Course Training Source Instructor Course Offering H.R. System Licence drives 1 * 1 * 1 * * 1 * * ** * 11 * 1 * **1 1 * 1 * * * * * 1 * * 1 * * 1 * 1 ** * * * 1 * 1 Skills & Training Subsystem Training Sub-sub-system *

36 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 36 The Employees, The Employees, of course. no Employee data So the Skills & Training subsystem wouldn’t work too well if there were no Employee data available. with or before So this means the Employee class must be built with or before the Skills & Training classes. But not only that... Chapter 12: Subsystems Chapter 12: Subsystems 12.3. When to Subdivide. It’s keeping data about

37 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 37 Employee class Admin subsystem So the Employee class and the Admin subsystem ahead of need to be built ahead of the Skills & Training. But what about Chapter 12: Subsystems Chapter 12: Subsystems 12.3. When to Subdivide. PositionSkill Requirement The link from Position to Skill Requirement shows that PositionPosition Assignment The Position and Position Assignment data must be in place for the Skills & Training system to work.  Time Reporting?... Position Skill Requirement

38 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 38 Chapter 12: Subsystems Chapter 12: Subsystems 12.3. When to Subdivide. before or after Time Reporting could be built before or after the other subsystems, Employee Except that it requires the Employee class to be in place.

39 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 39 l By inspecting the models, especially the Class Diagram, must be in place you will see that certain classes or subsystems must be in place before the others can function. development sequence This determines the development sequence of the subsystems, Class Diagram and the Class Diagram can be a useful tool for discussion, understanding and decision-making with the users. Chapter 12: Subsystems Chapter 12: Subsystems 12.3. When to Subdivide. So we are saying that

40 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 40 But some classes can be a little tricky... Chapter 12: Subsystems Chapter 12: Subsystems 12.3. When to Subdivide.

41 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 41 Chapter 12: Subsystems 12.1. Dividing Up a Project. 12.2. How to Subdivide. 12.3. When to Subdivide. 12.4 Some Special Classes. 12.5. Comparison of Terms. 12.6. The Multilayer Model.

42 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 42 12.4 Some Special Classes. Chapter 12: Subsystems

43 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 43 l Employee is the classic example. l Almost every project will need Employee data. l Let’s say that in your modeling, you discover and design an Employee class, l But the HR model already has one, l So you negotiate with the HR people, l And add the things you need to their existing class. Chapter 12: Subsystems Chapter 12: Subsystems 12.4. Some Special Classes. Classes that appear in several subsystems

44 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 44 l During modeling, the users will often come up with a class that already exists in another model. l You must compare your definition, attributes and behaviors, which reflect the needs of your project, against the existing ones. Chapter 12: Subsystems Chapter 12: Subsystems 12.4. Some Special Classes. Classes that appear in several subsystems

45 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 45 l Classes whose relationships or message links cross the boundary. l These decisions are not critical, But can cause heated discussion! But can cause heated discussion! l Don’t get into a big argument. l Make a decision and move on. Chapter 12: Subsystems Chapter 12: Subsystems 12.4. Some Special Classes. Classes on the Boundaries

46 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 46 l Look for the subsystem to which this class has more relationship &/or message links. l Logically and intuitively, which subsystem (or set of users) does this class appear to belong to? l Which subsystem has to be built first? l Can it be built without this class? consensus l Judgment call, by team consensus (I can live with it...) Chapter 12: Subsystems Chapter 12: Subsystems 12.4. Some Special Classes. Classes on the Boundaries

47 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 47 And now some discussion of word usage... Chapter 12: Subsystems Chapter 12: Subsystems 12.4. Some Special Classes.

48 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 48 Chapter 12: Subsystems 12.1. Dividing Up a Project. 12.2. How to Subdivide. 12.3. When to Subdivide. 12.4. Some Special Classes. 12.5 Comparison of Terms. 12.6. The Multilayer Model.

49 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 49 12.5 Comparison of Terms. Chapter 12: Subsystems

50 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 50 Definition: “A mechanism for guiding a reader.... through a large and complex model.” l Subjects (i.e. subsystems) are strictly a means to an end, l They give an overview of a complex model. l They are useful to both technical people (developers) and users. Chapter 12: Subsystems Chapter 12: Subsystems 12.5. Comparison of Terms. Subjects - Coad & Yourdon

51 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 51 “Subsystem boundaries disappear at execution time.” do not show in the program code, l i.e., they do not show in the program code, l Only in the Analysis and Design models. Chapter 12: Subsystems Chapter 12: Subsystems 12.5. Comparison of Terms. Rebecca Wirfs-Brock makes an important observation:

52 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 52 l They use the term “Domain” l By which they really mean “senior subsystems” l And which focuses on: Chapter 12: Subsystems Chapter 12: Subsystems 12.5. Comparison of Terms. Shlaer & Mellor n n Problem domain, n n Software Architecture domain n n GUI domain n n Operating system domain n n etc. l l Firesmith(1993) considers the term “domain” possibly misleading and confusing.

53 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 53 l Prefers the term “subassemblies” components l Since they are components out of which the larger system is assembled. Chapter 12: Subsystems Chapter 12: Subsystems 12.5. Comparison of Terms. Donald Firesmith

54 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 54 Chapter 12: Subsystems 12.1. Dividing Up a Project. 12.2. How to Subdivide. 12.3. When to Subdivide. 12.4. Some Special Classes. 12.5. Comparison of Terms. 12.6 The Multilayer Model.

55 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 55 12.6 The Multilayer Model. Chapter 12: Subsystems

56 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 56 l Subsystems are a “vertical” sectioning of a model. l Think of this as standing above the model, reaching down with a knife held vertical to cut out each subsystem. horizontally If you run your “knife” horizontally through the model, l You divide it into“layers.” Chapter 12: Subsystems Chapter 12: Subsystems 12.5. Comparison of Terms. Layers - Coad & Yourdon

57 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 57 l Think of layers as transparencies, l With part of your model on each, l So you can lay them on the model selectively, one of top of another l To show different parts of the model together. Chapter 12: Subsystems Chapter 12: Subsystems 12.5. Comparison of Terms. Layers - Coad & Yourdon

58 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 58 Webster: thickness Webster: “One thickness... lying over or under another.” Coad & Yourdon: level of detail, Coad & Yourdon: “One level of detail, containing the results of a particular part of the Object- Oriented Analysis process, and it adds information to the other layers.” Chapter 12: Subsystems Chapter 12: Subsystems 12.5. Comparison of Terms. Layers - Coad & Yourdon Definition:

59 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 59 l Subject/Subsystem layer l Class Diagram layer l Structure layer (Subclasses & Aggregations) l Attribute layer l Service/Operation/Behavior layer Chapter 12: Subsystems Chapter 12: Subsystems 12.5. Comparison of Terms. The 5 Layers Coad & Yourdon

60 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 60 End of Chapter 12


Download ppt "Copyright 8 2002 Flying Kiwi Productions Inc. 1 An Introduction to Object-Oriented Analysis Objects and UML in plain English. Chapter."

Similar presentations


Ads by Google