Part II Black-Box Composition Systems 20. Finding UML Business - - PowerPoint PPT Presentation

part ii black box composition systems 20 finding uml
SMART_READER_LITE
LIVE PREVIEW

Part II Black-Box Composition Systems 20. Finding UML Business - - PowerPoint PPT Presentation

Fakultt Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Amann - CBSE Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process 1. Business


slide-1
SLIDE 1

Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - CBSE

Part II – Black-Box Composition Systems

  • 20. Finding UML Business Components in

a Component-Based Development Process

Lecturer: Dr. Sebastian Götz

  • Prof. Dr. Uwe Aßmann

Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de/teaching/cbse 19.04.2018

  • 1. Business component model of

the Cheesman/Daniels process

  • 2. Identifying business

components

1

slide-2
SLIDE 2

Component-Based Software Engineering (CBSE)

Literature

  • J. Cheesman, J. Daniels. UML Components. Addison-Wesley.

2

slide-3
SLIDE 3

Component-Based Software Engineering (CBSE)

3

Classical Component Systems Architecture Systems Aspect Systems View Systems Darwin BPMN Aspect/J AOM Invasive Composition Piccola Gloo Standard Components Reflection Architecture as Aspect Connectors Aspect Separation Crosscut graphs Composition Operators Composition Language Object-Oriented Systems UML C++ Java Objects as Run-Time Components Modular Systems Modules as Compile- Time Components Composition Filters Hyperspaces Software Composition Systems .NET CORBA Beans EJB

The Ladder of Composition Systems

Shell scripts Modula Ada-85 COSY ACME

slide-4
SLIDE 4

Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - CBSE

20.1 The Cheesman-Daniels Business Component Model

  • Problem: UML classes do not specify required interfaces,

which is necessary for UML components

  • The Cheesman-Daniels process helps to find components

from UML class diagrams

  • Using the “Business component model”

4

slide-5
SLIDE 5

Component-Based Software Engineering (CBSE)

Business Objects are Complex Objects

  • In the Cheesman-Daniels component model, a business component consists of a

set of business objects and other business components (part-of relation)

The smallest component is a business object with several provided and required interfaces

.

The business objects are the logical entities of an application

.

Their interfaces are re-grouped on system components for good information hiding and change-oriented design

A business component has a specification containing all interfaces and contracts and an implementation

UML-CD are used (UML profile with stereotypes)

5

slide-6
SLIDE 6

Component-Based Software Engineering (CBSE)

Goals of the Cheesman-Daniels Process

The Cheesman-Daniels Process identifies UML components in UML class diagrams

It bridges

domain modelling with

use case modelling (functional requirements)

6

slide-7
SLIDE 7

Component-Based Software Engineering (CBSE)

Identifying Business Components with the Cheesman-Daniels Process

  • Overall development process

1) Requirements 2) Specification 3) Provisioning 4) Assembly Test Deployment

Use Case models Business Concept models Constraints Components Existing assets Component Specs & Architectures

Simplified version of Fig. 2.1 from Cheesman/Daniels

1) Component Identification 2) Component Interaction 3) Contract Specification

7

slide-8
SLIDE 8

Component-Based Software Engineering (CBSE)

Artifacts of the Cheesman/Daniels Process

Requirement artifacts:

Domain model (business concept model): describes the business domain (application domain)

Use case model (requirements model)

System artifacts, derived from the business concept model:

Business type model, class diagram derived from domain model:

.

Represents the system's perspective on the outer world (more attributes, refined class structures from the system's perspective)

Business object interface model, identifies the business objects and all their interfaces

Business object model, derived from the business object interface model by adding additional operations

System component artifacts

Component interface specifications: one contract with the client

Component interface information model (state-based model)

Component specifications: all interface specifications of a component plus constraints.

Component architecture: wiring (topology) of a component net.

8

slide-9
SLIDE 9

Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - CBSE

20.2. Identifying Business Components

9

slide-10
SLIDE 10

Component-Based Software Engineering (CBSE)

Component Identification (Step 2.1)

Select interesting Business Classes From Domain Model

Component Identification Domain Model (Business Concept Model) Business Type Model Develop system interfaces model Use Case Model Component Specification Database Find UML component specifications (matchmaking) Decompose top-down Allocation of business object interfaces to components Reusable component specifications New component specifications Find out Business Object Interfaces Business Object Interface Model

Domain analysis Function analysis Reuse analysis

Business Component Specifications and Architecture

10

slide-11
SLIDE 11

Component-Based Software Engineering (CBSE)

Ex.: Domain Model of a Course-Management System

Collects all concepts of the domain (aka business concept model)

Teacher Participant Company Course Course Part Exercise Exam Student Engineer Alumnus

11

slide-12
SLIDE 12

Component-Based Software Engineering (CBSE)

Step 2.1a) Business Type Model

Shorten the domain model by selecting system types from the domain model

Eliminates superfluous concepts

Adds more details

Distinguish datatypes (passive objects, materials, persistent entities)

Teacher Participant Company

<<datatype>>

Course

<<datatype>>

Course Part

<<datatype>>

Exercise

<<datatype>>

Exam Student Engineer Alumnus Person name:String

12

slide-13
SLIDE 13

Component-Based Software Engineering (CBSE)

Step 2.1b) Identifying Business Object Interfaces

Identifies business objects from the business type model

And defines management interfaces for them

Here, only Company, Course, Person are business objects, all others are dependent types Teacher Participant <<business object>> Company <<business object>> Course Course Part Exercise Exam Student Engineer <<business object>> Person name:String ICompanyMgmt ICourseMgmt IPersonMgmt

13

slide-14
SLIDE 14

Component-Based Software Engineering (CBSE)

Step 2.1c) Component Grouping

Group classes and interfaces into reusable components

Teacher Participant <<business object>> Company <<business object>> Course Course Part Exercise Exam Student Engineer << business object>> Person name:String ICompanyMgmt ICourseMgmt IPersonMgmt <<comp spec>> Company <<comp spec>> Repository

14

slide-15
SLIDE 15

Component-Based Software Engineering (CBSE)

Alternative Component Grouping (Version 0.2)

Often, classes and interfaces can be grouped in several ways into

  • components. Goal: think about what is reusable

Here: Person management might be reuseable, so make it a separate component

Teacher Participant <<business object>> Company <<business object>> Course Course Part Exercise Exam Student Engineer <<business object>> Person name:String ICompanyMgmt ICourseMgmt IPersonMgmt <<comp spec>> Company <<comp spec>> Courses <<comp spec>> Persons

15

slide-16
SLIDE 16

Component-Based Software Engineering (CBSE)

Component Identification

The component identification subprocess attempts to

Create a business object interface model from the domain model (still without methods)

Attempts to group these interfaces to initial system component specifications

.

The grouping is done according to

information hiding: what should a component hide, so that it can easily be exchanged and the system can evolve?

Reuse considerations: which specifications of components are found in the component specification repository, so that they can be reused?

There is a tension between business concepts, coming from the business domain (problem domain), and system components (solution domain). This gap should be bridged.

16

slide-17
SLIDE 17

Component-Based Software Engineering (CBSE)

Step 2.2: Component Interaction Analysis for Refinement

  • f Component Interfaces

Add Operations Component Interaction Analysis Business Object Interface Model Business Object Model Architecture Analysis Component Specifications and Architecture (0.1) Refine Interfaces Component Specifications and Architecture (0.2)

17

slide-18
SLIDE 18

Component-Based Software Engineering (CBSE)

Component Interaction Analysis

Component Interaction Analysis refines the results of the first stage

Removing,

Regrouping,

Augmenting,

Adding interfaces

Producing component specifications and wirings in a version 0.2

Additionally, operations are added to business object interfaces

And mapped to internal types.

18

slide-19
SLIDE 19

Component-Based Software Engineering (CBSE)

Step 2.3: Contract Specification

  • Enrich the interfaces with contracts

Add Contracts (pre-, postconditions, invariants) Specification Business Object Model Interfaces Component Specifications and Architecture (0.2) Component Specifications and Architecture (1.0) Construct Interface Information Model Interface Information Model

19

slide-20
SLIDE 20

Component-Based Software Engineering (CBSE)

Contract Specification in OCL (Step 2.3)

Specification of declarative contracts for UML classes in OCL

Invariants:

Evaluate business domain rules and integrity constraints

Example: context r: Course

  • - a course can only be booked if it has been allocated in the

company inv: r.bookable = r.allocation->notEmpty

Pre- and Postconditions for operations (assumptions and guarantees)

Can only be run on some state-based representation of the component

Hence, the component must be modeled in an interface information model

Or: be translated to implementation code (e.g. Java using an OCL2Java Compiler) context Course::book(cert:Certification)

  • - a course can only be booked if the booker has an A-level

certificate pre: cert.instanceOf A-level

20

slide-21
SLIDE 21

Component-Based Software Engineering (CBSE)

Step 3: Provisioning (Realization, Implementation, Publishing)

Provisioning selects component implementations for the specifications

Choosing a concrete implementation platform (EJB, CORBA, COM+, ...)

Look up component implementations in implementation repositories

.

Write adapters if they don't fit exactly

Program missing components

And makes them available in component repositories

Store component implementations and specifications in database for future reuse

21

slide-22
SLIDE 22

Component-Based Software Engineering (CBSE)

Step 4: Assembly

Puts together architecture, component specifications and implementations, existing components

We will see more in the next lectures

22

slide-23
SLIDE 23

Component-Based Software Engineering (CBSE)

20.3 Evaluation of Cheesman-Daniels Business Components

No top-down decomposition of components, only bottom-up grouping from class diagrams

part-of relationship is not really supported

Reuse of components is attempted, but

Finding components is not supported

.

Metadata

.

Facet-based classification

23

slide-24
SLIDE 24

Component-Based Software Engineering (CBSE)

Cheesman-Daniels’ Business Component Model as Composition System

Componen

  • nent

t Model Composi

  • siti

tion

  • n Techniq

hnique Composi

  • siti

tion

  • n Languag

age Content: a) UML class diagrams, component diagrams b) Contracts in OCL c) Business components Binding points: methods Standard object-oriented polymorphism Run-time contract checking

24

slide-25
SLIDE 25

Component-Based Software Engineering (CBSE)

The End

25