1 CS 691z / 791z Topics on Software Engineering Chapter 17: Interfaces and Subsystems [Arlow & Neustadt, 2002] March 6, 2007.

Slides:



Advertisements
Similar presentations
Object-Oriented Analysis and Design
Advertisements

Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426/CPE 426 Senior Projects University of Nevada, Reno.
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
1 CS 426 Senior Projects Chapter 4: Use Case Modeling [Arlow and Neustadt, 2002] February 8, 2007.
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.
CSCI 639 Topics in Software Engineering Assignment #3 Fall 2008.
1 CS 426 Senior Projects Chapter 9: Relationships Chapter 10: Inheritance and Polymorphism [Arlow and Neustadt, 2005] February 12, 2009.
1 CS 426 Senior Projects Chapter 19: Interfaces and Components [Arlow & Neustadt 2005] February 28, 2008.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
THE OBJECT-ORIENTED DESIGN WORKFLOW Interfaces & Subsystems.
1 CS 426 Senior Projects Chapter 7: Classes and Objects & Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2002] February 14, 2006.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
1 CS 426 Senior Projects Chapter 9: Relationships Chapter 10: Inheritance and Polymorphism [Arlow and Neustadt, 2002] February 27, 2007.
1 CS 425 Software Engineering Project Preparation Use Case Modeling [Based on Chapters 3 & 4, Arlow and Neustadt, “UML and the Unified Process,” Addison-Wesley,
1 SWE Introduction to Software Engineering Lecture 15 – System Modeling Using UML.
1 CS 691z/791z Topics in Software Engineering Chapter 20: Advanced Statechart Modeling [Arlow and Neustadt, 2002] March 8, 2007.
Component and Deployment Diagrams
1 CS/CPE 426 Senior Projects Chapter 21: State Machines Chapter 22:Advanced State Machines [Arlow and Neustadt 2005] March 24, 2009.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
1 CS 426 /CPE 426 Senior Projects Chapter 7: Classes and Objects & Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] February 19, 2008.
1 CS 426 Senior Projects Chapter 4: Use Case Modeling [Arlow and Neustadt, 2005] February 5, 2009.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Systems Analysis and Design in a Changing World, Fifth Edition
An Introduction to Software Architecture
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
A language to describe software texture in abstract design models and implementation.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
2 Object-Oriented Analysis and Design and the Unified Process Objectives  Explain the purpose and objectives of object- oriented design  Develop design.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Chapter 16 Applying UML and Patterns Craig Larman
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Design Analysis builds a logical model that delivers the functionality. Design fully specifies how this functionality will be delivered. Design looks from.
NJIT UML Class Diagrams Chapter 16 Applying UML and Patterns Craig Larman.
What to remember from Chap 13 (Logical architecture)
Object-Oriented Analysis and Design Feb 11, 2009.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Part VII: Design Continuous
Relationships Relationships between objects and between classes.
Chapter 19: Interfaces and Components [Arlow and Neustadt, 2005] University of Nevada, Reno Department of Computer Science & Engineering.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
1 Introduction to UML Interface and packages 即時與嵌入式系統實驗試 李榮華.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Chapter 9: Relationships Chapter 10: Inheritance and Polymorphism [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada,
Chapter 16: The Design Workflow Chapter 17: Design Classes
The Object-Oriented Thought Process Chapter 1
The Object Oriented Approach to Design
Chapter 13 Logical Architecture.
Chapter 19: Interfaces and Components
CS 426 Senior Projects Chapter 9: Relationships
CBSE 2014 Modeling Components with UML
CS/CPE 426 Senior Projects
Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 13 Logical Architecture.
Chapter 19: Interfaces and Components
CS/CPE 426 Senior Projects
Chapter 19: Interfaces and Components
Design Yaodong Bi.
CS 791Z State Machines & Advanced State Machines
Interfaces and Components
Chapter 19: Interfaces and Components
Chapter 13 Logical Architecture.
Presentation transcript:

1 CS 691z / 791z Topics on Software Engineering Chapter 17: Interfaces and Subsystems [Arlow & Neustadt, 2002] March 6, 2007

2 Outline Interfaces and subsystems: Introduction Interfaces and component-based development Finding interfaces Subsystems and interfaces Advantages and disadvantages of interfaces

3 Interfaces: Introduction… Chapter 17 roadmap, Fig [Arlow & Neustadt, 2002]

4 Interfaces:.Introduction.. An interface specifies a named set of operations It defines a contract to be implemented by a classifier It also separates specification from implementation If the classifier that realizes (implements) the interface is physically packaged in a subsystem or component and the interface is public in this subsystem or component, then the subsystem or component also realizes the interface

5 Interfaces:..Introduction. Interfaces allow “design to contract” as compared to “design to implementation” supported by classes Each operation in an interface must have a complete operation signature (name, types of all parameters, and return type), semantics (recorded as text or pseudo- code) and, optionally, a stereotype and set of constraints Interfaces may not have: Attributes Operation implementations Relationships navigable from the interface

6 Interfaces: …Introduction UML interface syntax, Fig [Arlow & Neustadt, 2002]

7 Interfaces and Component-based Development…. Interfaces are key elements for component- based development They allow addition of “plug-in” parts (with varied implementations) without changing the specification Both with components and subsystems, interfaces support low coupling and provide high architectural flexibility

8.Interfaces and Component-based Development… Example of interface, Fig [Arlow & Neustadt, 2002]

9..Interfaces and Component-based Development.. Example of interfaces and subsystems Fig [Arlow & Neustadt,2002]

10 …Interfaces and Component-based Development. Another example of interface, Fig [Arlow & Neustadt, 2002]

11 …. Interfaces and Component-based Development Interfaces in Java: the collection classes Fig [Arlow & Neustadt,2002]

12 Finding Interfaces Techniques for finding interfaces in a designed system or subsystem: Challenge each association Challenge each message sent Factor out groups of operations reusable elsewhere Factor out sets of operations that repeat in classes Look at classes that have similar roles in the system Consider future extensions

13 Subsystems.. Subsystems are packages stereotyped > They are used both in design and implementation Design subsystems contain: Design classes and interfaces Use case realizations Other subsystems Specification elements such as use cases Subsystems are used to: Separate design concerns Represent large-grained components Wrap legacy systems

14.Subsystems. Alternatives for drawing subsystems Fig [Arlow & Neustadt, 2002]

15..Subsystems More detailed representation of a subsystem Fig [Arlow & Neustadt, 2002]

16 Subsystems and Interfaces.. By introducing public interfaces in subsystems many of the classes in the subsystems could be hidden. As such subsystems could act as “black boxes”. Using interfaces in a subsystem is different from listing subsystem operations (see Figure 17.8). In the latter case, public classes must realize the operations. When a class of a subsystem realizes an interface, the subsystem realizes that interface A subsystem that provides a set of services by realizing one or more interfaces can be seen as a component

17.Subsystems and Interfaces. Example of subsystems that realize interfaces Fig [Arlow & Neustadt, 2002]

18..Subsystems and Interfaces Physical architecture and the layering pattern, Fig [Arlow & Neustadt, 2002]

19 Advantages and disadvantages of interfaces Designing with interfaces increases flexibility and extensibility Also, using interfaces supports low coupling by reducing the number of dependencies between classes, subsystems and components With interfaces, a model can be neatly separated in cohesive subsystems Drawbacks of interfaces relate to added complexity and increased performance costs As a guideline, use interfaces for the more “fluid” parts of the system and dispense of them for the more stable parts of the system