1 / 30

Chapter 2 Specification of Software Components

Chapter 2 Specification of Software Components. Overview. Current Component Specification Techniques Specifying the Semantics of Components Specifying Extra-Functional Properties of Components Summary. What Is a Component Comprised of?. Some Code…

yukio
Download Presentation

Chapter 2 Specification of Software Components

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 2 Specification of Software Components Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  2. Overview • Current Component Specification Techniques • Specifying the Semantics of Components • Specifying Extra-Functional Properties of Components • Summary Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  3. What Is a Component Comprised of? • Some Code… • The code represents the operations that the component will perform when invoked • An interface… • The interface tells the component-user everything he needs to know in order to deploy the component • The interface of a component should provide all the information needed by its users The specification of a component is therefore the specification of its interface Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  4. The Specification of an Interface • This must consist solely of: • A precise definition of the component's operations. • All context dependencies. Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  5. Usefulness of Component Specification • For users, • The specification provides a definition of its interface, viz. its operations and context dependencies. • Since it is only the interface that is visible to users, its specification must be precise and complete. • For developers, • The specification of a component also provides an abstract definition of its internal structure. Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  6. Current Component Specification Techniques • syntactic specifications • Microsoft’s Component Object Model (COM) • Common Object Request Broker Architecture (CORBA) • JavaBeans Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  7. Components and Interfaces • A component provides: • The implementation of a set of named interfaces, or types, each interface being a set of named operations • The following diagram is a UML metamodel • This model allows an interface to be implemented by several different components, and an operation to be part of several different interfaces Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  8. Components and Interfaces Illustrated Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  9. Model explained • The model presents a generic representation of: • The relationships between components, interfaces, and operations • One can distinguish between: • Object Oriented specifications and • Procedural specifications Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  10. IDL Example 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; }; }; Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  11. Specification Uses • the primary uses of such specifications are: • Type checking of client code. • A base for interoperability between independently developed components and applications. • An important aspect of interface specifications is how they relate to substitution and evolution of components Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  12. Substitution • Substituting a component Y for a component X is said to be safe if: • All systems that work with X will also work with Y • From a syntactic viewpoint, a component can safely be replaced if: • The new component implements at least the same interfaces as the older components, or • The interface of the new component is a subtype of the interface of the old component. Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  13. Specifying the Semantics of Components • Current component technologies assume that the user of a component is able to make use of such semantic information. • COM dictates that the error codes produced by an operation are immutable, i.e. changing these is equivalent to changing the interface Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  14. Interfaces • A component: • Implements a set of interfaces that each consists of a set of operations. • In addition, a set of pre-conditions and post-conditions is associated with each operation. Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  15. A Pre-condition • Is an assertion that the component assumes to be fulfilled before an operation is invoked. • Will in general be a predicate over the operation’s input parameters and this state Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  16. A Post-condition • Is an assertion that the component guarantees will hold just after an operation has been invoked, provided the operation’s pre-conditions were true when it was invoked. • Is a predicate over both input and output parameters as well as the state just before the invocation and just after Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  17. An Invariant • Is a predicate over the interface’s state model that will always hold • A set of invariants may be associated with an interface. Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  18. Interface specification diagram This model allows the same state to be associated with several interfaces Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  19. Semantic Specification in a UML metamodel Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  20. Interface Specification 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) implieswords = words@pre->including (word) context ICustomSpellCheck::remove(in word : String) : HRESULT pre: word <> “” post: SUCCEEDED(result) implies words = words@pre->exluding(word) Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  21. Component specification diagram • Similarly to interface specification diagrams, components specification diagrams are used to specify which interfaces components provide and require. Specifying a component that provides interfaces Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  22. Inter-interface Constraints • The component specification is completed by the specification of its inter-interface constraints, an example constraint is formulated in OCL below. context SpellChecker ISpellCheck::words = ICustomSpellCheck::words Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  23. ISomeInterface <<comp spec>> SomeComponent IAnotherInterface IUsedInterface Interface dependency Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  24. 1: op1 /ISomeInterface 1.1: op2 /IUsedInterface Realization Contracts • We can also specify realization contracts using collaboration interaction diagrams. Whenever the operation op1 is called, a component supporting this operation must invoke the operation op2 in some other component Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  25. Specifying Extra-Functional Properties • Conventional software doctrine is the view that software specifications must be: • Sufficient • Complete • Static • Homogeneous Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  26. Credentials • A Credential is a triple <Attribute, Value, Credibility> • Attribute: is a description of a property of a component • Value: is a measure of that property • Credibility: is a description of how the measure has been obtained • Attributes in .NET • A component developer can associate attribute values with a component and define new attributes by sub-classing an existing attribute class. Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  27. Architectural component • Structural properties • Governing how a component can be composed with other components. • Extra-functional properties • Such as performance, capacity, and environmental assumptions. • Family properties • Specifying relations among similar or related components. Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  28. Ensemble • In Ensemble, a set of credentials may be associated with a single technology, product, or component, or with a group of such elements • A UML metamodel with the concepts of syntactic specification augmented with credentials is shown in the following slide. Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  29. Extra-functional Properties Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

  30. Summary • A component has two parts: an interface and some code • In current practice, component specification techniques specify components only syntactically. • The use of UML and OCL to specify components represents a step towards semantic specifications. • Specification of extra-functional properties of components is still an open area of research, and it is uncertain what impact it will have on the future of software component specification Building Reliable Component-based SystemsChapter 2 -Specification of Software Components

More Related