Page 1, CBSE – graduate course Specification of Software Components Frank Lüders Mälardalen University, Dept. of Computer Engineering

Slides:



Advertisements
Similar presentations
Design by Contract.
Advertisements

Building Bug-Free O-O Software: An Introduction to Design By Contract A presentation about Design By Contract and the Eiffel software development tool.
The Substitution Principle SWE 332 – Fall Liskov Substitution Principle In any client code, if subtype object is substituted for supertype object,
Figures – Chapter 17. Figure 17.1 Component characteristics Component characteristic Description StandardizedComponent standardization means that a component.
Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved ASU Open Course.
Basic Concepts in Component-Based Software Engineering
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der.
Semantic description of service behavior and automatic composition of services Oussama Kassem Zein Yvon Kermarrec ENST Bretagne France.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 19 Slide 1 Component-based software engineering.
1 Specifying Object Interfaces. 2 Major tasks in this stage: --are there any missing attributes or operations? --how can we reduce coupling, make interface.
Software Testing and Quality Assurance
Page 1 Building Reliable Component-based Systems Chapter 2 -Specification of Software Components Chapter 2 Specification of Software Components.
Component-based approach for embedded systems Ivica Crnkovic Mälardalen University (MdH) Department of Computer Science and Electronics, Mälardalen.
Page 1 Building Reliable Component-based Systems Chapter 6 - Semantic Integrity in Component Based Development Chapter 6 Semantic Integrity in Component.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
R R R CSE870: Advanced Software Engineering: Extending and Using UML (Cheng) Supplementary: Using and Extending UML.
Adding Contracts to Ada Ehud Lamm Adding Design By Contract to Ada.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Component Technology objects versus components -- definitions interoperability.
® Eurostep.ESUKPC v0.1©Copyright Eurostep Limited An Introduction to ISO STEP Part 25 David Price.
Component specification Main bibliography: –Ivica Crnkovic, Magnus Larsson (Eds.): Building reliable component- based systems Chapter 2: Specification.
Dr. Eman M. Saleh Al-Maghary
Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 2.
Topic 6 Component-based software engineering
CBSE 2014 Component specification. Bibliography Main bibliography: –Sommerville: Software Engineering, 8 th Edition Chapter 19.3 Component Composition.
111 Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract,
Low-Level Detailed Design SAD (Soft Arch Design) Mid-level Detailed Design Low-Level Detailed Design Design Finalization Design Document.
Composition of UML Described Refactoring Rules Presented by Chin-Yi Tsai.
Component Models - main characteristics Ivica Crnkovic.
Deriving Operational Software Specification from System Goals Xin Bai EEL 5881 Course Fall, 2003.
DEVS Based Modeling and Simulation of the CORBA POA F. Bernardi, E. de Gentili, Pr. J.F. Santucci {bernardi, gentili, University.
The Unified Modeling Language (UML)
Component Models - main characteristics Ivica Crnkovic.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 32. Review Behavioral Patterns – Observer Pattern – Chain of command.
Chapter 16 - Component-based software engineering Chapter 16 Component-based software engineering119/11/2014.
Software Development Introduction
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
PROGRAMMING PRE- AND POSTCONDITIONS, INVARIANTS AND METHOD CONTRACTS B MODULE 2: SOFTWARE SYSTEMS 13 NOVEMBER 2013.
CSSE501 Object-Oriented Development. Chapter 10: Subclasses and Subtypes  In this chapter we will explore the relationships between the two concepts.
©Ian Sommerville 2006MSc module: Advanced Software Engineering Slide 1 Component-based software engineering.
Interpreting the Object Constraint Presented by: Ed Kausmeyer.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
Component-based software engineering (Sommervile chapter 17) 1Chapter 17 Software reuse.
Chapter 17 - Component-based software engineering
COMPONENT BASED SOFTWARE ENGINEERING
Component Object Model(COM)
Security analysis of COM with Alloy
Design by Contract Jim Fawcett CSE784 – Software Studio
Design by Contract Jim Fawcett CSE784 – Software Studio
Chapter 17 - Component-based software engineering
Component Based Software Engineering
Arab Open University 2nd Semester, M301 Unit 5
UML - Unified Modeling Language
Component-Based Software Engineering Testing
Component Based Software Engineering
Specifying Object Interfaces
Component-Based Software Engineering
SwE 455 Tutorial.
Component--based development
ARCH-5: From Design to Implementation in OpenEdge® using UML and MDA
Semantics In Text: Chapter 3.
Defining Classes and Methods
Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract, Computer,
ISpec: A Compositional Approach to Interface Specification
Chapter 17 - Component-based software engineering
Assertions References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 4/25/2019.
Software Development Process Using UML Recap
COMPONENT – BASED SOFTWARE ENGINEERING MODULE 2 – SECOND SEMESTER MKHIZE, BSC HONS COMPUTER SCIENCES, DIP IT, ICDL.
Software Architecture & Design
Presentation transcript:

Page 1, CBSE – graduate course Specification of Software Components Frank Lüders Mälardalen University, Dept. of Computer Engineering

Page 2, CBSE – graduate course Outline  Introduction to Software Components and Specification  Introduction to UML Class Modeling  Syntactic Specification of Software Components  Semantic Specification of Software Components  Specification and CBSE Methodology  Conclusion

Page 3, CBSE – graduate course Software Components and Their Specification  A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parts.  Internal components: same as above, except for the independent deployment and composition by third parts.  The specification of a software component is the key to its successful use as a part in a larger piece of software.

Page 4, CBSE – graduate course Different Types/Levels of Specification  Syntactic Specification Specifies the syntax of using a component’s services Technologies such as COM, CORBA, and JavaBeans  Semantic Specification Also specifies the semantics of these services State-of-the-art CBSE methodology  Extra-Functional Specification Specifies properties besides a component’s services A fairly new research area NOT COVERED IN THIS TALK

Page 5, CBSE – graduate course Simple UML Class Models

Page 6, CBSE – graduate course UML Class Diagram

Page 7, CBSE – graduate course UML Class Diagram with Generalization

Page 8, CBSE – graduate course Aggregation and Composition

Page 9, CBSE – graduate course UML Metamodel

Page 10, CBSE – graduate course Syntactic Specification 1.A component implements a set of named interfaces and can require a set of interfaces implemented by others 2.An interface implements a set of named operations 3.An operation has a set of input and output parameters with associated types  Variations: A COM component implements a set of classes, each implementing a set of interfaces. 1 holds by association. A JavaBean is a class with one interface which can be derived from (be a subtype of) several other interfaces. An operation can have a return value. This can be viewed as an output parameter.

Page 11, CBSE – graduate course A Generic Model of Syntactic Specifications

Page 12, CBSE – graduate course Example: Specification of a COM component interface ISpellCheck : IUnknown { HRESULT check([in] BSTR *word, [out] bool *correct); }; interface ICustomSpellCheck : IUnknown { HRESULT add([in] BSTR *word); HRESULT remove([in] BSTR *word); }; library SpellCheckerLib { coclass SpellChecker { [default] interface ISpellCheck; interface ICustomSpellCheck; };

Page 13, CBSE – graduate course Uses of Syntactic Specifications  Type checking of client code  Ensuring run-time interoperability COM: binary standard for interfaces (vtables) CORBA: mapping to programming languages  Ensuring syntactically safe substitution and evolution  Documentation - along with semantic descriptions

Page 14, CBSE – graduate course Semantic Specification  Extension of syntactic specification  A state model is associated with each interface  Operations have pre- and post-conditions pre: state * in-parameters -> bool post: state * state * in-parameters * out-parameters -> bool  Invariants on an interface’s state model state -> bool  Intra-interface conditions for components state1 * state2 * … -> bool

Page 15, CBSE – graduate course A Generic Model for Semantic Specifications

Page 16, CBSE – graduate course Example: UML Component Specification

Page 17, CBSE – graduate course Example: Object Constraint Language (OCL) context ISpellCheck::check(in word : String, out correct : Boolean) : HRESULT pre: word <> “” post: SUCCEEDED(result) implies correct = words->includes(word) context ICustomSpellCheck::add(in word : String) : HRESULT pre: word <> “” post: SUCCEEDED(result) implies words = (word) context SpellChecker ISpellCheck::words = ICustomSpellCheck::words

Page 18, CBSE – graduate course Uses of Semantic Specification  Tool support for component developers and users Automatic correctness testing of components Checking that client code satisfies pre-conditions  Ensuring semantically safe substitution and evolution Liskov’s principle of substitution applies  Possible to substitute if new component accept larger sets and produces a smaller that the original  Documentation – supplementary to natural language

Page 19, CBSE – graduate course Specification and CBSE Methodology  Methods using extra-functional specification Ensemble (Wallnau, Stafford, 2001)

Page 20, CBSE – graduate course Conclusion  Syntactic vs. semantic specification Syntactic specs is the only form in widespread use The potential utility of semantic specs is much greater UML may lead to wider use of semantic specification  Extra-functional specification Many open issues Will probably have great impact in the future