Copyright W. Howden1 Lecture 3: Elaboration and System Architecture.

Slides:



Advertisements
Similar presentations
Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Advertisements

1 CIS224 Software Projects: Software Engineering and Research Methods Lecture 9 Object, Package, Component and Deployment Diagrams (Based on Fowler, 2004,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
Copyright W. Howden1 Lecture 7: Functional and OO Design Descriptions.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
Lecture 5a: Sequence Interaction Diagrams CSE 111 Copyright W. Howden1.
Copyright W. Howden1 Lecture 6: Design Evaluation and Intro to OO Design Patterns.
Copyright W. Howden1 Lecture 8: O/O Programming. Copyright W. Howden2 Topics OO Programming Languages Developing programs from Designs –Class and method.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Copyright W. Howden1 Lecture 11: UML Terminology and Additional Models and Notation.
Copyright W. Howden1 Lecture 13: Programming by Contract.
1 Lecture 3: Elaboration and System Architecture.
Copyright W. Howden1 Lecture 4: Sequence Interaction Diagrams.
Copyright W. Howden1 Lecture 19: Intro to O/O Components.
Copyright W. Howden1 Lecture 14: Callbacks, Singletons and Wrappers.
Copyright W. Howden1 Lecture 5: Collaboration Diagrams.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
System Architecture Lecture 3 CSE 111 Spring /22/20151Copyright William E. Howden.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented design 2.
1 Lecture 2: Elaboration Tasks and Domain Modeling.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Copyright W. Howden1 Lecture 2: Elaboration Tasks and Domain Modeling.
Copyright W. Howden1 Lecture 12: State Chart Models.
Copyright W. Howden1 Lecture 4: Elaboration Tasks and Domain Modeling.
Lecture a: Additional UML Models: Package, Activity, Deployment Lecture b: Generalization, Aggregation and Additional Domain Model Notation Copyright W.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Lecture 7: UML Class Diagrams CSE 111 7/15/20151Copyright W. Howden.
SE-565 Software System Requirements More UML Diagrams.
March R McFadyen1 Figure 30.2 Layers in NextGen They only have three layers in this architecture Each layer is shown as a UML Package No separate.
Client/Server Architecture
Chapter 26 Applying Gang of Four Design Patterns 1CS6359 Fall 2012 John Cole.
An Introduction to Rational Rose Real-Time
Chapter 2 Database System Concepts and Architecture
Client/Server Architectures
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
CST203-2 Database Management Systems Lecture 2. One Tier Architecture Eg: In this scenario, a workgroup database is stored in a shared location on a single.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
4. UML. CPSC 333: Foundations of Software EngineeringJ. Denzinger 4.1. Motivation The Unified Modeling Language tries to integrate older approaches Developed.
Systems Prog. & Script. - Heriot Watt Univ 1 Systems Programming & Scripting Lecture 11: The Distributed Object Model.
Course Instructor: Kashif Ihsan 1. Chapter # 3 2.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Summing Up Object Oriented Design. Four Major Components: Abstraction modeling real-life entities by essential information only Encapsulation clustering.
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
CSC480 Software Engineering Lecture 10 September 25, 2002.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 26 - Java Object-Based Programming Outline 26.1Introduction.
CS451 - Lecture 2 1 CS451 Lecture 2: Introduction to Object Orientation Yugi Lee STB #555 (816) * Acknowledgement:
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
1 CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
INFO 620Lecture #71 Information Systems Analysis and Design Design Class Diagrams and others INFO 620 Glenn Booker.
Identifying classes, Packages and drawing class Diagrams, Object Diagrams and composite structure diagrams Week 07 1.
1 BTS330 Visual Modeling. What is Visual Modeling? 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship.
Object Oriented Programming in Java Habib Rostami Lecture 10.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 10 Java Fundamentals Objects/ClassesMethods.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Software Design Refinement Using Design Patterns
Chapter 2 Database System Concepts and Architecture
Lecture 4: Sequence Interaction Diagrams
An Introduction to Software Architecture
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

Copyright W. Howden1 Lecture 3: Elaboration and System Architecture

Copyright W. Howden2 Topics System design oriented software architecture concepts –component structures UML and the representation of architecture –components Java and architectural components –folders

Copyright W. Howden3 Why Now? System Architecture is often considered design, not requirements/elaboration Personal past experience –Have a ready system metaphor we can use Industry past experience –Study other experiences to get some insight Examine technology to see what it will support

Copyright W. Howden4 System Architecture Basic Pieces of the system –Components, Modules, Subsystems Structure of the System –Relationships between pieces Solution Strategies for System –Is this Architecture? –E.g. Analysis and Design Mechanisms

Copyright W. Howden5 Mechanisms AnalysisDesignImplementation PersistencyRelational DBMS JDBC DistributionRemote Method Invocation Java 2

Copyright W. Howden6 Tiers Physical tiers –Separate machines, e.g. client/server Logical tiers –Logical components, e.g. GUI, Business Logic, Data- Base Refinements –E.g. Thin client: presentation logic only Fat client: presentation logic plus business logic

Copyright W. Howden7 Layers From OS – layers of progressively more abstract machines, each of which uses the services of lower levels Logical Tiers and Layers GUI Business/Application/Domain Logic Data Base

Copyright W. Howden8 Model-View Separation Layers model for GUI oriented application: View-GUI Model View layer displays information known from model layer Why? –Divide and conquer approach to development –Can make changes to GUI without touching the “guts” of the system

Copyright W. Howden9 Model View Controller View = graphics presentation Model = Business Logic Controller = respond to input from View by calling on Model, updating view with information from model Java, VB, etc.- view classes have associated event responders. Controller merged into View

Copyright W. Howden10 MV Separation and Callbacks View can call on model to get information to display How does lower level Model alert View about something that needs to be displayed? View calls a model method with an identifier for a method to be called when the condition of interest happens. Passed method is called a call back function

Copyright W. Howden11 Observer/Observable -1 Based on a design pattern Java Classes Can be used to support callbacks Observers – register with observable Observable – when instructed, will call the observers’ update() method

Copyright W. Howden12 Observer/Observable -2 Observer is an interface –Implementer class must implement update(Observable obs, Object arg) Observable is a class –Includes addObserver(Observer obs) notifyObservers(Object arg)

Copyright W. Howden13 Sample Callback for DatingSystem Requirement: we want the domain/business logic layer of the system to flash a warning on the screen if the logged on member is not paid up, and then continue normally with the logic for logging on Use of observer/observable –GUI implements Observer => must implement an update() method. Have this method flash the warning –DL extends Observable => it will have an addObserver(Observer obs) and notifyObserverMethod()

Copyright W. Howden14 Use of the CallBack Assume at start up where the constructor for GUI is passed a reference to an instance of the DL GUI constructor calls DL.addObserver(this) to register itself as an observer of DL In the logOn logic in DL: if the special condition is recognized, notifyObservers() is called which causes the registered observers update() methods to be called which causes the warning to flash

Copyright W. Howden15 UML and Components Components –Pieces of the system architecture –Layers, modules, logical tiers –May be nested subcomponents UML packages –Collections of classes and packages –May be used for modeling components

Copyright W. Howden16 Subsystems Package plus one or more interfaces that define the services supported by the subsystem Layers can be modeled as subsystems Interfaces: set of method specifications, e.g. Java interfaces

Copyright W. Howden17 Subsystems and Facades Façade – an interface object that is the single point of entry for the services of a subsystem - a common unified interface for a disparate set of implementations or interfaces Subsystem interface can be a façade which calls methods in an implemented subsystem Could also be a proxy which simulates a subsystem or which communicates with a remote implementation These patterns (façade and proxy) will be discussed later

Copyright W. Howden18 Java Subsystems Possible units of organization: –Files –Folders –Classes –Packages

Copyright W. Howden19 Files and Subsystems Files: units of compilation Compilation produces class files for each class in a file Too small a unit for organizing subsystems Class in one file has limited visibility (i.e ability to create an instance of) to classes in other files.

Copyright W. Howden20 Inner Classes and Subsystems Inner Class –Defined inside another class –Has access to variables of enclosing class Subsystems consist of a principal class (e.g. subsystem proxy controller), and its inner classes? Problems e.g. –Cannot have static members in inner classes –Cannot access inner classes from the outside

Copyright W. Howden21 Folders and Subsystems Associate subsystems with folders When class file is compiled, compiled class files will go into the same folder

Copyright W. Howden22 Packages Java Package is a collection of classes Package is associated with a folder Can use import statement in a file to identify source of classes used in file Use package statement to identify a file as belonging to a package Use import to identify sources of referenced classes

Copyright W. Howden23 Packages and Subsystems Subsystem is a package Package has interface classes for the subsystem (e.g. a façade class) Visibility –Normal: can see the public class in another file –Package: can see non-private (public and “friendly” undesignated) entities in other files

Copyright W. Howden24 Additional Packages Globals –E.g. MemberData in DS Utility routines –E.g. Classes used for tracing and debugging Subsystem interface definitions?

Copyright W. Howden25 Dating System Architecture

Copyright W. Howden26 Start Up Logic

Copyright W. Howden27 Distributed Systems Architecture Stand Alone versus Client Server Basic Model: Communicating State Machines –Components: client(s) and server –Component specification: state machine

Copyright W. Howden28 State Machines Nodes correspond to states a system/component/object is in Transitions from one state to another caused by external events that are recognized/recorded by the component Transitions may also have –conditions that must be satisfied for transition to occur –actions that are carried out when a transition is followed

Copyright W. Howden29 Some state machine notation Solid black dot shows the starting state(s) Circular transitions are allowed “[ cond ]” on a transition indicates a transition condition “/ action” on a transition indicates a transition action e.g. send or receive message from other component further discussion will be done in lecture on state charts

Copyright W. Howden30 Client Server Model