Chapter 19: Interfaces and Components

Slides:



Advertisements
Similar presentations
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
Advertisements

COMPONENT DIAGRAM in UML 2.0 Veronica Carrega
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 5 Architecture-Driven Component Development.
Chapter 5: Advanced Use Case Modeling [Arlow and Neustadt, 2005] CS 426/CPE 426 Senior Projects University of Nevada, Reno Department of Computer Science.
Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426/CPE 426 Senior Projects University of Nevada, Reno.
C OMPONENT & D EPLOYMENT D IAGRAMS Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
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.
THE OBJECT-ORIENTED DESIGN WORKFLOW Interfaces & Subsystems.
CS 425/625 Software Engineering System Models
1 CS 426 Senior Projects Chapter 7: Classes and Objects & Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2002] February 14, 2006.
Chapter 5: Advanced Use Case Modeling [Arlow and Neustadt, 2005] CS 426/CPE 426 Senior Projects University of Nevada, Reno Department of Computer Science.
1 CS 426 Senior Projects Chapter 9: Relationships Chapter 10: Inheritance and Polymorphism [Arlow and Neustadt, 2002] February 27, 2007.
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 691z / 791z Topics on Software Engineering Chapter 17: Interfaces and Subsystems [Arlow & Neustadt, 2002] March 6, 2007.
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.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Chapter 16 Applying UML and Patterns Craig Larman
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
CBSE 2014 Modeling Components with UML. Bibliography Modelling components in UML – Main text: Kim Hamilton, Russell Miles, Learning UML 2.0, OReilly,
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Part VII: Design Continuous
UML / UML 2.0 Diagrams (Part I) 1. Overview of the 13 diagrams of UML Structure diagrams 1.Class diagram 2.Composite structure diagram (*) 3.Component.
COMPONENT DIAGRAM in UML 2.0 Veronica Carrega. PLAN OF TALK  Introduction about components  Components and component diagrams in uml 2.0  Case study.
Chapter 19: Interfaces and Components [Arlow and Neustadt, 2005] University of Nevada, Reno Department of Computer Science & Engineering.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in.
Chapter 9: Relationships Chapter 10: Inheritance and Polymorphism [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada,
Design Concepts ch-8
Chapter 16: The Design Workflow Chapter 17: Design Classes
CompSci 280 S Introduction to Software Development
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
COMPONENT & DEPLOYMENT DIAGRAMS
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Systems Analysis and Design With UML 2
Chapter 4: Use Case Modeling
Systems Analysis and Design With UML 2
Part 3 Design What does design mean in different fields?
Abstract descriptions of systems whose requirements are being analysed
Software Design AITI GP John Paul Vergara.
Chapter 13 Logical Architecture.
Chapter 19: Interfaces and Components
CS 426 Senior Projects Chapter 9: Relationships
Chapter 18: Refining Analysis Relationships
CBSE 2014 Modeling Components with UML
Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes
Chapter 5: Advanced Use Case Modeling
Chapter 4: Use Case Modeling
Chapter 14: Activity Diagrams
Chapter 20 Object-Oriented Analysis and Design
Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes
Starting Design: Logical Architecture and UML Package Diagrams
Introduction to Computer Science for Majors II
Chapter 13 Logical Architecture.
An Introduction to Software Architecture
Chapter 19: Interfaces and Components
Chapter 14: Activity Diagrams
Chapter 4: Use Case Modeling
Chapter 14: Activity Diagrams
Software Analysis.
Design Yaodong Bi.
Interfaces and Components
Chapter 19: Interfaces and Components
Chapter 13 Logical Architecture.
Presentation transcript:

Chapter 19: Interfaces and Components CS 426 Senior Projects in Computer Science Chapter 19: Interfaces and Components [Arlow and Neustadt, 2005] University of Nevada, Reno Department of Computer Science & Engineering

Interfaces and Components Outline Interfaces and subsystems: Introduction Interfaces Interface realization vs. inheritance Components Subsystems Finding interfaces The layering pattern Advantages and disadvantages of interfaces Interfaces and Components

1 Introduction Chapter 19 roadmap, Fig. 19.1 [Arlow & Neustadt, 2005]

1 Introduction Designing large software applications is concerned with breaking a system up into subsystems (as independent as possible) Interactions between subsystems are mediated by interfaces

Interfaces and Components An interface specifies a named set of public features It defines a contract (set of services) to be implemented by a classifier It also separates specification from implementation An interface cannot be instantiated Anything that realizes an interface (e.g., a class) must accept and agree by the contract defined by the interface Interfaces and Components

Interfaces and Components Interface features that need to be realized Interfaces and Components

Interfaces and Components Interfaces allow “design to a contract” as compared to “design to an implementation” supported by classes This provides a high degree of flexibility Modern software architectures are based on the concept of service, supported by interfaces The attributes and operations of an interface should be fully specified, with: Complete operation signature The semantics of the operation (text or pseudocode) Name and type of the attributes Any operation or attribute stereotypes, constraints, tagged values Interfaces and Components

Interfaces and Components The set of interfaces realized by a classifier is known as provided interfaces, with UML syntax (two styles) shown in Fig. 19.3 [Arlow & Neustadt 2005] Note that the two different notations for the realization relationship Interfaces and Components

Interfaces and Components The set of interfaces needed by a classifier for its operations are called required interfaces, as shown in Fig. 19.4 [Arlow & Neustadt 2005] Note that the two different notations for the dependency relationship, with the socket symbol in the right-hand side Interfaces and Components

Interfaces and Components Example of an assembled system Interfaces and Components

Interfaces and Components Interfaces in Java: the collection classes Interfaces and Components

3 Interface realization vs. inheritance Interface: “realizes contract specified by” Inheritance: “is a” Both can generate polymorphism Example of inheritance-based solution shown here Interfaces and Components

3 Interface realization vs. inheritance Adding non-borrowable items such as journal needs further modeling Interfaces and Components

3 Interface realization vs. inheritance A more elegant solution is shown below Interfaces and Components

3 Interface realization vs. inheritance Still better is to combine inheritance and interfaces, as below . Advantages: every item in the Library is a LibraryItem; borrowability concept is factored out; fewer classes; simpler inheritance hierarchy; fewer compositions and inheritances Interfaces and Components

4 Interfaces and component-based development Interfaces are key elements for component-based development (CBD) They allow addition of plug-in parts without changing the specification Both with components and subsystems, interfaces support low coupling and provide high architectural flexibility Interfaces and Components

Interfaces and Components A component is a “modular part of the system that encapsulates its contents and whose manifestation is replaceable within its environment” It acts as a black box whose external behaviour is completely defined by its interfaces (provided and required) UML notation: Interfaces and Components

Interfaces and Components Components may depend on other components To decouple components, mediate the dependency with interfaces Interfaces and Components

4 Components Component stereotypes

Interfaces and Components 5 Subsystems A subsystem is a component that acts as unit of decomposition for a larger system Interfaces connect subsystems to create a system architecture Subsystems are used to: Separate design concerns Represent large-grained components Wrap legacy systems A system example is shown here Interfaces and Components

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

7 Architecture and the layering pattern

7 Architecture and the layering pattern: HEDC

8 Advantages and disadvantages of interfaces Designing with interfaces increases flexibility and extensibility Also, using interfaces supports low coupling 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 Interfaces and Components