Advanced Object-Oriented Analysis & Design

Slides:



Advertisements
Similar presentations
Fall 2002 SJSU -- CmpE Enterprise & Application Frameworks Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José.
Advertisements

L3-1-S1 OO Concepts © M.E. Fayad SJSU -- CMPE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room.
 Fayad SJSU -- CmpE Software Engineering Management Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
SJSU – CmpE Fall 2002 Enterprise & Application Frameworks Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José.
L3-5c-S1 Object Diagrams © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department,
L16-S1 Object Diagrams 2003 SJSU -- CmpE Software Patterns Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L28-S1 Interaction Diagrams 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room.
L5-S1 Software StabilitySJSU – CmpE © M.E. Fayad Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
L19-S1 More on Class Diagrams 2003 SJSU -- CmpE Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
 Fayad SJSU – CmpE Software Engineering Management Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L21-S1 Model-Based Arch SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
L3-5d-S1 Class Diagrams © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room.
L03-S1 Stable Analysis Patterns 2003 SJSU -- CmpE Software Pattens Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L26-S1 Interactions 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
© M.E. Fayad SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
L5-S1 Class Diagrams 2003 SJSU -- CmpE Software Patterns Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
L8-S1 CRC Cards 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
© M.E. Fayad SJSU -- CmpE Analysis Heuristics Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L18-S1 Getting Started 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
 Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L04-S1 Stable Design Patterns 2003 SJSU -- CmpE Software Patterns Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L3-6b-S1 Sequence Diagrams © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room.
L6-1-S1Design Heuristics - 1 © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department,
L2-S1Modeling 2003 SJSU -- CMPE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
L1-S1Introduction 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
L4-S1 Modeling Concepts 2003 SJSU -- CMPE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Fall 2002 SJSU -- CMPE Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José.
L3-S1Analysis Heuristics 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
L1-S1 Infinite R-DB 2003 SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
SJSU – CmpE © M.E. Fayad Software Engineering Management Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
Object-Oriented Analysis & Design
Chapter 11 Object-Oriented Design
Advanced Object-Oriented Analysis & Design
Iterative design and prototyping
Software Engineering Management
CS 641 – Requirements Engineering
By Dr. Abdulrahman H. Altalhi
Software Patterns Dr. M.E. Fayad, Professor
Object-Oriented Analysis
Component-Based & Software Reuse
Software System Engineering
Object-Oriented Analysis & Design
Software Engineering Management
Design and Implementation
DESIGNING YOUR SYSTEM.
Software System Engineering
Software System Engineering
Advanced Object-Oriented Analysis & Design
Object-Oriented Analysis & Design
Advanced Object-Oriented Analysis & Design
Advanced Object-Oriented Analysis & Design
Component Based & Software Reuse
Software Systems Engineering
Advanced Object-Oriented Analysis & Design
Software System Engineering
Object-Oriented Analysis & Design
Designing Scalable Architectures
Presentation transcript:

Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José State University One Washington Square San José, CA 95192-0180 http://www.engr.sjsu.edu/~fayad 2003 SJSU -- CmpE

Stable Design Patterns Lesson 23: Stable Design Patterns 2 2003 SJSU – CmpE --- M.E. Fayad

3 Lesson Objectives Explore Stable Design Patterns Examine Stable Design Patterns Discuss the following Stable Design Patterns: Account Entry Party Trust 3 2003 SJSU – CmpE --- M.E. Fayad

The concept of extracting patterns using software stability concepts Problem FIRST ABSTRACTION: Apply SSM concepts Define EBTs, BOs, and IOs Create SSM for the problem SECOND ABSTRACTION: Model each EBT using SSM concepts Build natural domain Stable Design Pattern 4 2003 SJSU – CmpE --- M.E. Fayad

Stable Design Patterns’ Properties Timeless Notion Pattern Working Horse of the system Patterns Adaptability Patterns True Presentation of The Solution Space Patterns Management Workflow Metaphor Patterns Domain-Independent Patterns 5 2003 SJSU – CmpE --- M.E. Fayad

Stable Design Patterns Advantages Contribute to Stable Architectures Can be Used to Model a Better Solution Space Provide True Solution Modeling Specifies Hooks for Extensions Enhance Team Dynamic 6 2003 SJSU – CmpE --- M.E. Fayad

Stable Design Patterns’ Challenges Abstractions Adaptation Extensions Customization Integration 7 2003 SJSU – CmpE --- M.E. Fayad

AnyAccount Pattern (1) It was not too long ago when the word “account” was merely used to indicate banking and financial accounts. Today, the word “account” alone becomes a vague concept if it is not allied with a word related to a certain context. For instance, besides all of the traditional well- known business and banking accounts, today we have e-mail accounts, on-line shopping accounts, on-line learning accounts, subscription accounts, and many others kinds of accounts. 8 2003 SJSU – CmpE --- M.E. Fayad

AnyAccount Pattern (2) In the last decade, there were many patterns that have been developed to model the account problems. However, even though they are all aimed to model the same problem “the account problem”, and they are all developed based on the long experience of their developers; however, each pattern has its own structure, with noticeable differences from the others. 9 2003 SJSU – CmpE --- M.E. Fayad

AnyAccount Pattern (3) What might be surprising is that most of these different models are developed for the similar applications, which are usually monetary applications, and all are claimed to be working just fine in the project they where originally developed for. Examples of different patterns that model the account problem can be found in the following Ref: [1] M. Fowler, “Analysis Patterns: Reusable Object Models”, Addison-Wesley, 1997. [2] E. Fernandez, “ The Account Analysis Pattern” , PLoP 2000 [3] D. Hay, “Data model patterns”, Conventions of thought, Dorset House Publ., 1996 10 2003 SJSU – CmpE --- M.E. Fayad

AnyAccount Pattern (4) There are some fundamental questions still to answer: Why do we have MANY different patterns that model single problem? Can we develop a pattern that capture the atomic account notion, and thus can serve as a base for modeling any kind of accounts? The objective of this lecture is to provide an answer to these questions by discussing and documenting the atomic pattern AnyAccount. This pattern models the core knowledge of any account, making it easy to reuse this pattern and build on the top of it to model any kind of accounts rather than thinking of the same problem each time from scratch. 11 2003 SJSU – CmpE --- M.E. Fayad

12 AnyAccount Pattern (5) Pattern Name: AnyAccount This pattern is required to model the core knowledge of any account without tied the pattern to a specific application or domain; hence the name AnyAccount is chosen. Problem How to build an account model that can capture the core knowledge of the account problem, and can be reused to model the account problem in any application? 12 2003 SJSU – CmpE --- M.E. Fayad

Forces (1) Account problem spans a fairly wide range of applications and domains, which makes the task of capturing the core concept of the account problem more challenging than it might appears. Even after extracting the common feature of different accounts types, the difficulty still resides in how these common features can be abstracted in such away that makes them still valid for all these wide applications. 13 2003 SJSU – CmpE --- M.E. Fayad

Forces (2) Different accounts have some features that are not applies to other accounts types. The challenge arises when such uncommon features are associated with classes that should exist in the atomic pattern (For instance: in credit card accounts, it is acceptable to have many authorized holders who share the same credit card account. While, student account in a university, for example, is solely belongs to him, and cannot be shared. On the other hand, the account holder is an essential part in any account independent of the account application, whenever there is an account there should be a holder/holders for this account. In this case, how can we manage to model the holder in such a way that is appropriate for such situations?” 14 2003 SJSU – CmpE --- M.E. Fayad

Pattern structure 15 2003 SJSU – CmpE --- M.E. Fayad

Participants Classes Ownership. Represents the existence of the account. There is no existing for the account without the existence of an Owner. Therefore, ownership is always present, whenever there is an account exists. Describes the ownership rules, and regulations to the account holder(s). AnyAccount. Represents the account itself. 2. Patterns AnyParty. Represents the account handler(s). Party can be a person, organization, a group with specific orientation 16 2003 SJSU – CmpE --- M.E. Fayad

Ownership (Owning Controller) CRC Cards (1) Ownership (Owning Controller) Responsibility Collaboration   Clients Server Describes the ownership rules, and regulations to the account holder(s). AnyParty defineRules()specify() contrast() evaluate()   17 2003 SJSU – CmpE --- M.E. Fayad

AnyParty (Account holder) CRC Cards (2) AnyParty (Account holder) Responsibility Collaboration Access the account. Clients Server Ownership AnyAccount access() approve() activate() grant()     18 2003 SJSU – CmpE --- M.E. Fayad

AnyAccount (Descriptor)   CRC Cards (3)   AnyAccount (Descriptor) Responsibility Collaboration Describes account terms and conditions. Clients Server -         AnyParty defineAccountR egulations() open() close()       19 2003 SJSU – CmpE --- M.E. Fayad

Applicability with Illustrated Examples (1) AnyAccount pattern has developed in such away that makes its model captures the very basic structure of any account independent of specific applications in mind. Consequently, this atomic pattern is expected to play a role in any application where any sort of account is required. 20 2003 SJSU – CmpE --- M.E. Fayad

Applicability with Illustrated Examples (2) Another feature that worth to illustrate in the applicability section, is how this atomic pattern can indeed form the core where other specific patterns can be built on its top. For instance, by modeling the checking account as a standalone problem using the AnyAccount pattern we can build and document a new pattern called CheckingAccount pattern, which is domain-specific pattern, in contrast to the AnyAccount pattern, which is domain-neutral pattern. 21 2003 SJSU – CmpE --- M.E. Fayad

Applicability with Illustrated Examples (3) Simple Problem (1) Access account to the copy machine: Suppose that you have an account to access the copy machine in your school or work. This account is no more than a passport for you for using the copier. There are no entries in this case. 22 2003 SJSU – CmpE --- M.E. Fayad

Applicability with Illustrated Examples (4) EBTs BOs IOs   23 2003 SJSU – CmpE --- M.E. Fayad

Applicability with Illustrated Examples (5) This simple problem shows how to use the “AnyAccount” pattern in the modeling of a simple copy machine account in one of the universities. Each student in the university has an account that he can use to access a central copy machine. Other Comments on the solution: Where IOs, Application classes. 24 2003 SJSU – CmpE --- M.E. Fayad

Applicability with Illustrated Examples (6) Problem (2): Modeling a simple hotmail account This example shows how to integrate more than one pattern to model larger problems. The aim of the problem is to utilize the two constructed patterns: the “AnyAccount”, and the “AnyEntry” patterns, in the modeling of a simple Hotmail Account. it is important to note that this model is not complete; it is merely for demonstration purpose. 25 2003 SJSU – CmpE --- M.E. Fayad

Applicability with Illustrated Examples (7) EBTs BOs IOs   26 2003 SJSU – CmpE --- M.E. Fayad

27 Discussion Questions 1. T/F Account Pattern is an analysis pattern. Account pattern contains the core knowledge of any account without tied the pattern to a specific application or domain. Use AnyAccount Pattern as a foundation to model the following concepts: Trust, CheckingAccount, SavingAccount, contraAccount, DialUpAccount, DiscretionaryAccount, EscrowAccount, and IndividualRetirementAccount. 27 2003 SJSU – CmpE --- M.E. Fayad

Questions for the Next Lecture We will cover Behavior Modeling: Activity Diagrams, Sequence Diagrams, STDs, Object Interaction Diagrams (OIDs) or Object Collaboration Diagrams (OCDs). Describe the following Models: STD, OID, OCD. 28 2003 SJSU – CmpE --- M.E. Fayad