CPSC 606 : Software Engineering - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

CPSC 606 : Software Engineering

Description:

Independent. Encapsulated. Reuse of Services is not constrained by Physical Implementation) Platform Independent Reuse. Can be Reused Dynamically. Offer a Generic ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 19
Provided by: jongyo
Category:

less

Transcript and Presenter's Notes

Title: CPSC 606 : Software Engineering


1
CBD
  • CPSC 606 Software Engineering

- Component Based Development -
Presented ByJongyoon Choi
2
Table of contents
  • Definition of Component
  • Types of Component
  • Characteristics of Component
  • Standards for Component
  • Interface
  • Comparison with OOAD
  • Catalysis Method

3
Definition 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

4
Types 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

5
Types 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

6
Characteristics 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
7
Standards 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

8
Interface
  • 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

9
Comparison 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

10
Catalysis Method1
  • Designed by Desmond DSouza

11
Catalysis Method2
Essential Domain Modeling
  • define the scope of the domain and make domain
    model
  • Preparing a Domain Model
  • Preparing a Business Type Model

create type collaboration diagram decompose all
actions to the operation level
12
Catalysis Method3
To-Be System Context Modeling
  • Describe system functionality with interaction
    between domain type and interface
  • Scope the system interface
  • System context model

13
Catalysis 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

14
Catalysis 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

15
Summary
  • 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

16
References
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
17
Questions
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 ?
18
QA
Write a Comment
User Comments (0)
About PowerShow.com