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 Prof. Dr. Uwe Aßmann 1. The UML component model Technische Universität Dresden 2. Business component model of Institut für Software- und the Cheesman/Daniels process Multimediatechnik 3. Identifying business http://st.inf.tu-dresden.de/teaching/cbse components 16-0.1, 29.03.16
Literature Component-Based Software Engineering (CBSE) J. Cheesman, J. Daniels. UML Components. Addison-Wesley. ►
The Ladder of Composition Systems Component-Based Software Engineering (CBSE) 3 Software Composition Invasive Composition Composition Language Piccola Gloo Systems Aspect Separation Aspect/J Aspect Systems Crosscut graphs AOM Composition Composition Filters View Systems Operators Hyperspaces Architecture as Aspect Darwin COSY Architecture Systems Connectors BPMN ACME Classical Standard Components .NET CORBA Component Systems Reflection Beans EJB UML Objects as Object-Oriented Systems C++ Java Run-Time Components Shell scripts Modules as Compile- Modular Systems Modula Ada-85 Time Components
Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - CBSE 20.1 Big Objects, Business Objects, and UML Components • The Cheesman-Daniels approach identifies UML components in UML class diagrams, adding required and provided interfaces. • It describes how to transform a UML class diagram to a UML component diagram.
Natural and Dependent Types Component-Based Software Engineering (CBSE) An object with a natural type (entity type) lives on its own and exists Ø independent of context and collaborators The type does not depend on other types ( independent type ) ■ Hotel vs. HotelRoom . Car vs. Screw or Motor . Types that depend on others are called dependent types. ■ Role types, facet types, part types are dependent types. ■ Ø A big object (bob) is complex, hierarchical object with a natural type Usually, it has subobjects with dependent types, role types and others. • A business object (domain object) is a bob with a natural type of the ► domain model (business model) Usually, business objects (domain objects) are large hierarchical objects ► They can consist of thousands of smaller objects of dependent types (part-of ■ relation) They can play many roles with context-based types ■
Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - CBSE 20.2 The Cheesman-Daniels Business Component Model • Problem: UML classes do not specify required interfaces, which is necessary for UML components • The Cheesman-Daniels process to find components from UML class diagrams • Using the “Business component model”
Business Objects are Complex Objects Component-Based Software Engineering (CBSE) 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) ■
Goals of the Cheesman-Daniels Process Component-Based Software Engineering (CBSE) The Cheesman-Daniels Process identifies UML components in UML class ► diagrams It bridges domain modelling with use case modelling (functional requirements) ► Be aware: the Cheesman-Daniels Process can be employed also for many ► other component models of this course, such as Black box component models, such as EJB, Corba, .NET ► Grey-box component models: ► Generics (e.g., class diagram templates) ► Fragment component models (e.g., advice groups in aspects) ► Class-role models ►
Identifying Business Components with the Cheesman-Daniels Process Component-Based Software Engineering (CBSE) Ø Overall development process 1) Use Case Requirements models Business Concept Constraints Components models 3) Provisioning 4) Assembly 2) Specification 1) Component 2) Component Identification Interaction Existing assets Component Specs & Architectures Test 3) Contract Specification Deployment Simplified version of Fig. 2.1 from Cheesman/Daniels
Artifacts of the Cheesman/Daniels Process Component-Based Software Engineering (CBSE) 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. ■
Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - CBSE 20.3. Identifying Business Components
20.3.1 Component Identification (Step 2.1) Component-Based Software Engineering (CBSE) Component Domain Function Reuse Use Case Domain Model Specification Model (Business Concept Model) analysis analysis analysis Database Select interesting Business Classes Component From Domain Model Identification Develop system Business Type interfaces model Model Decompose Find out top-down Business Object Interfaces Find UML component Allocation of specifications business object interfaces Business Object (matchmaking) to components Interface Model New Reusable component specifications component specifications Business Component Specifications and Architecture
Ex.: Domain Model of a Course-Management System Component-Based Software Engineering (CBSE) Collects all concepts of the domain (aka business concept model) ► Teacher Company Course Participant Exercise Course Part Engineer Alumnus Student Exam
20.3.1.a) Step 2.1a) Business Type Model Component-Based Software Engineering (CBSE) 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) ■ Person name:String Company Teacher <<datatype>> Participant Course <<datatype>> Exercise <<datatype>> Course <<datatype>> Engineer Alumnus Student Part Exam
20.3.1.b) Step 2.1b) Identifying Business Object Interfaces Component-Based Software Engineering (CBSE) 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 ICompanyMgmt IPersonMgmt <<business object>> Person name:String <<business object>> Teacher Company ICourseMgmt <<business object>> Participant Course Exercise Course Engineer Part Student Exam
20.3.1.c) Step 2.1c) Component Grouping (Version 0.1) Component-Based Software Engineering (CBSE) Group classes and interfaces into reusable components ► ICompanyMgmt <<comp spec>> IPersonMgmt Company ICourseMgmt <<business object>> Company <<comp spec>> << business object>> Teacher Repository Person name:String <<business object>> Participant Course Exercise Course Engineer Part Student Exam
Alternative Component Grouping (Version 0.2) Component-Based Software Engineering (CBSE) 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 ICompanyMgmt <<comp spec>> IPersonMgmt Company ICourseMgmt <<business object>> Company <<comp spec>> <<business object>> Teacher Courses Person name:String <<business object>> Participant Course <<comp spec>> Persons Exercise Course Engineer Part Student Exam
Recommend
More recommend