Title: CPSC 606 : Software Engineering
1CBD
- CPSC 606 Software Engineering
- Component Based Development -
Presented ByJongyoon Choi
2Table of contents
- Definition of Component
- Types of Component
- Characteristics of Component
- Standards for Component
- Interface
- Comparison with OOAD
- Catalysis Method
3Definition of Component
- The definition of component is different between
people
Definitions
- A component is an independently deliverable
package of operations. - Texas Instruments
Literature - A component is just a physical packaging of a
society of classes. - Grady Booch - A replaceable unit of development work which
encapsulates design decisions and which will be
composed with other components as part of a
larger unit. - Desmond DSouza, in Catalysis - A runtime software component is a dynamically
bindable package of one or more programs managed
as a unit and accessed through documented
interfaces that can be discovered at runtime. -
Gartner Group
Common features
- identity, reusable, published interface
4Types of Component1
- We can classify components with broad definition.
Class Library
- The lowest abstraction level
- Very similar to programming code.
- Not enough separation of interface and
implementation - It requires high level skill of object skill
Encapsulated Component
- The most common one
- Interface and implementation is separated well
- Higher abstraction level than class library
- Low required skill level and high productivity
5Types of Component2
Software Framework
- Reusable as a group Set of Items
- User can customize by own needs
- EX) MFC(Microsoft Foundation Class) by Microsoft
Pre-built Application
- It is and application itself
- The smallest level of user coding
- It constructs whole domain as function of
Pre-built Application - EX) SAP R3
6Characteristics of Component
- The component is an independent module
Essential
- Identifiable
- Traceable Replaceable
- Accessed only via interface.
- Services Offered through interfaces should not
Change - Accurately Documented Service)
Optional
- Physical Implementation is Hidden
- Independent
- Encapsulated
- Reuse of Services is not constrained by Physical
Implementation) - Platform Independent Reuse
- Can be Reused Dynamically
- Offer a Generic Service
- Specialized only via Designated Plug Points
- Certified and Authenticated
Virtual Software Repository by Carnegie Melon
University
7Standards for Component
- A component has several elements and should
follow standard specification for interoperability
- Interface Set of operation signatures for
invoking component service - Implementation Actual implementation for the
service - Container Service provider for locating and
getting component interface - EX) CORBA 3.0, Enterprise JavaBeans, COM
8Interface
- An interface is the core of component
One of the greatest challenges to component
software is designing Interfaces that are
reusable, adaptable, flexible and prepared for
the future
-Inside COM. Rogerson. Microsoft Press
Why important ?
- It connects client with component internal
implementation - We can use component if we know the Interface
- We can change component while keeping the
Interface
How to define ?
- Described by IDL(Interface Definition Language)
- Interface is separated from the Implementation
9Comparison with OOAD
- CBD and OOAD is not competitive
OOAD
- OOAD is concerned with creating objects
- Design of function inside the component
- OOAD is designing process for internal
architecture
CBD
- CBD is concerned with making object work
together - Design of interface which exposed from component
- CBD is the modulation process to set entire
specification
10Catalysis Method1
- Designed by Desmond DSouza
11Catalysis Method2
Essential Domain Modeling
- define the scope of the domain and make domain
model
- Preparing a Business Type Model
create type collaboration diagram decompose all
actions to the operation level
12Catalysis Method3
To-Be System Context Modeling
- Describe system functionality with interaction
between domain type and interface
- Scope the system interface
13Catalysis Method4
Type Interface Definition
- Preparing an Interfaces Type Model
Decide data type Specify Business Type
- Defining Operation Specification
- Set operation signature
regCreateConfirmationLetter(InOut
RegRegistration, Out RegDetailsRegistration
Details) - Set pre-condition post-condition
- Pre-condition for regCreateConfirmationLetter
- RegRegistration exists, Reg.Letter Sent False
- Post -condition for regCreateConfirmationLetter
Confirmation letter created, Reg.Letter Sent
True, Reg.Confirmation not equal to Null
14Catalysis Method5
Essential Domain Modeling
- Identifying a Component
- Assign interface to a component
Application User Interface Definition
- Paper Prototyping User Interface Prototype
- Software Prototyping Software Prototype Code
- Usability Testing user feedback
15Summary
- CBD is promising but it is not easy to apply it
Advantage
- Management of Complexity
- Reduce Development Time
- Increased Productivity
- Improved Quality
Disadvantage
- Development of Components
- Lack of Components
- Component Maintenance Costs
- Reliability and Sensitivity to changes
- Unsatisfied Requirements
- Trust
16References
Crnkovic, Ivica, Component-based Software
Engineering New Challenges in Software
Development, in 27th Int. Conf. Information
Technology Interfaces 2003, June 1-19, 2003,
Cavtat, Croatia. Desmond F. DSouza, Alan
Cameron Wills, Objects, Components, and
Frameworks with UML, Addison Wesley,
1998 Clemens Szyperski, Component Softeware
beyond object-oriented programming, Addison
Wesley, 1997 John Cheesman, John Daniels, UML
Components, Addison Wesley, 1998
1 2 3 4
17Questions
1. What is the difference from OOAD ?
2. How can we handle customization ?
3. How can we connect to persistent storage ?
4. Using out side component is always good ?
5. Can we make system like Lego block ?
18QA