150 likes | 240 Views
Software Architecting Using Goals, Scenarios, Patterns and Objects. Lawrence Chung The University of Texas at Dallas. Software Architecture: Why?. Historical Perspective 1994 – A Panel Session on Software Architecture at ICSE 1995 – 1 st Int. Workshop on Software Architecture
E N D
Software Architecting Using Goals, Scenarios, Patterns and Objects Lawrence Chung The University of Texas at Dallas
Software Architecture: Why? • Historical Perspective • 1994 – A Panel Session on Software Architecture at ICSE • 1995 – 1st Int. Workshop on Software Architecture • 1999 – 1st IFIP Working Conf. on Software Architecture • … • And, Bill Gates = a chief software architect • And, a software architect = a high-paying position • …
Software Architecture: What? • The underlying structure of things • Project blue print • High level abstraction of software system solution • Architectural Constituents • Components– Process, Data, Control, Resource, etc. – what, how many • Connections– explicit, implicit, #param, …, RPC, Messages, MOMs, etc. – what, how many • Constraints– dependencies among components, (de-)activation conditions, etc., • Patterns– structural, behavioral, etc. • Styles– OO, Imp. Invocation, Pipe&Filter, … • Rational • Infrastructure
Software Architecture: How? • Current Practice: • Model Functional Requirements • Develop Architecture to meet Functional Reqs Dominant technique = UML-Rational Rose (In research: ADLs – Rapide, SCR, SPIN, …) • Needed Practice: • Model Functional Requirements • Model Non-Functional Requirements • Systematically Develop Architecture • Reuse (Design) Patterns
The GSPO Framework • Develop scenarios • Model Functional Requirements: UML • Model Non-Functional Requirements as Softgoals: The NFR Framework • Develop Macro-architecture • Develop Micro-architecture using design patterns
Activate Deactivate Send message Messaging Service Message Transmission Receive message PIMS Change Presence Enable Presence Service Disable Subscribe Presence Info Transmission Fetch Unsubscribe Autonomous notification Status Change Detection Presence Notification Scenarios for PIMS • Interactions between system and user • Help elicitation, validatation, and veriffication • Use cases, episodes, and scripts
Functional Requirement for PIMS • Use case diagram as part of the FRs • Important use cases from the scenario graph Send Message Change Presence User Fetch Subscribe Unsubscribe
Non-Functional Requirements for PIMS • NFRs as softgoals (clouds) – priority type [topic] (or type [topic1, topic2, …]) • AND/OR decompositions • Softgoal Interdependency graph (SIG)
Integrating FRs and NFRs • Use topic as the “anchor”: type [topic] (or type [topic1, topic2, …]) • Indirect linking thru scenario graph • Refine as needed
Operationalization Using Macro-Architectures • Identify tasks to realize use cases • Identify architectural alternatives (operationalizing softgoals) to realize the tasks • Choose ones that best satisfice the (refined) softgoals
Operationalization Using Micro-Architectures of Design Patterns • Identify design patterns (operationalizing softgoals) to safisfice architectural constituents • establish relationships among design patterns
Architectural Composition • Identify overlapping objects • establish relationships among non-overlapping objects
PresenceService EntityFactory PresentityProxy Entity(Presentity) SubscriberProxy UAInterface Entity(Subscriber) Watch... Presence... 1: changeStatus 1.1: changeStatus 1.1.1: findPresentity 1.1.1.1: <create> 1.1.2: changeStatus 1.1.2.1: changeStatus 1.1.2.2: update 1.1.2.2.1: update 1.1.2.2.1.1: getState 1.1.2.2.1.2: notifyStateChange 1.2: notifyStatusChange Sequence Diagram • Identify interactions among objects (& software agents)
Conclusions • Contributions • Methodology for architecting “good-enough” software architecture • From OO to GO • From Use case to Scenaria • Both Macro- and Micro-architecture • Future Work • Knowledge base of patterns & CASE tool • More empirical/case studies