Title: ComponentBased Software Development: Technologies, Quality Assurance Schemes, and Risk Analysis Tool
1Component-Based Software Development
Technologies, Quality Assurance Schemes,
and Risk Analysis Tools
Cai Xia Supervisor Prof. Michael R. Lyu
Markers Prof. Kam-Fai Wong Prof. Ada Fu
December 18, 2000
2Presentation Outline
? Introduction ? Current component technologies
? Quality assurance issues and a QA model for
Component-Based Software Development (CBSD) ? A
risk analysis tool ARMOR ? Expected new features
of our risk analysis tool ? Demonstration of
ARMOR ? Conclusion and future work
3Introduction
? Software systems become more and more
large-scale, complex and uneasily controlled ?
One of the most promising solution now is
component-based software development approach ?
The process of CBSD is totally different from
traditional systems ? Quality Assurance is very
important for component-based software systems
4What is Component-Based Software Development?
Software systems can be developed by selecting
appropriate off-the-shelf components and then
assembling them with a well-defined software
architecture.
Component repository
5Advantages of CBSD
- Reduce
- Development cost
- Time-to-market
- Improve
- Maintainability
- Reliability
- Overall quality of software systems
6What is A Component?
? A component is an independent and replaceable
part of a system that fulfills a clear function ?
A component works in the context of a
well-defined architecture ? It communicates with
other components by the interfaces
7System Architecture
? Layered ? Modular
8Current Component Technologies
- ? Common Object Request Broker Architecture
(CORBA) from Object Management Group (OMG) - ? Component Object Model (COM) and Distributed
COM (DCOM) from Microsoft - ? JavaBeans and Enterprise JavaBeans (EJB)
from Sun Microsystems
9CORBA
- ? CORBA is an open standard for application
interoperability - ? Allows applications/components to communicate
with one another despite of different locations
and designers. - ? The interface is the only way that
applications/ components communicate with each
other. - ? Object Request Broker (ORB) is the middleware
that establishes the client-server relationships
between components. - ? CORBA is widely used in OO distributed systems
including component-based software systems
10COM/DCOM
- ? COM is a general architecture for component
software - Defines how components and their clients interact
directly and dynamically - ? DCOM is a protocol that enables software
components to communicate directly over a network - ? Designed for use across multiple network
transports, including Internet protocols such as
HTTP
11JavaBeans/EJB
? JavaBeans for client-side component
development, while Enterprise JavaBeans for
server-side component development ? Offers an
efficient solution to the portability, security
and reliability of component-based development. ?
The features are well suited for developing
robust server objects independent of OS, Web
servers and database management server.
12Comparison of Current Component Technologies
13Life Cycle of CBSD
? Requirements analysis ? Software architecture
selection, creation, analysis and evaluation ?
Component evaluation, selection and
customization ? Integration ? Component-based
system testing ? Software maintenance
14QA for Component-Based Software
Two inseparable parts ? How to certify
quality of a component? ? How to certify
quality of a component-based software
system? Metrics for components ? Size
? Complexity ? Reuse frequency ?
Reliability
15A Quality Assurance Model for CBSD
? Component ? System
16Hong Kong SQA Model
- Proposed by Hong Kong Productivity Council
- Provides the standard for local software
organizations - Meet basic software quality requirements
- Improve on software quality practices
- Use as a bridge to achieve other international
standards - Assess and certify them to a specific level of
software quality conformance
17Main Practices
Requirement Analysis
Component
Architecture Design
System
18Process Overview ? Component Requirement Analysis
19Process Overview ? Component Development
20Process Overview ? Component Certification
21Process Overview ? Component Customization
22Process Overview ? System Architecture Design
23Process Overview ? System Integration
24Process Overview ? System Testing
25Process Overview ? System Maintenance
26The Feature of Our QA Model
Compared with other existing models ? Simple,
easy to apply ? Design for local component
vendors (small to medium size) ? Focused on
development process, according to the life cycle
of CBSD ? Not focused on the measure/predict the
quality of components/systems
27ARMOR Analyzer for Reducing Module Operation Risk
? The prototype was developed at Bell Lab in
1995. ? A software risk analysis tool which
automatically identifies the operational risks of
software program modules. ? Take data directly
from project database, failure database and
program development database. ? Collect software
metrics, select risk models, and validate the
established models.
28ARMOR Objectives
? To access and compute software data deemed
pertinent to software characteristics . ? To
compute product metrics automatically whenever
possible ? To evaluate software metrics
systematically ? To perform risk modeling in a
user-friendly and user-flexible fashion ? To
display risks of software modules ? To validate
risk models against actual failure data and
compare model performance ? To identify risky
modules and to indicate ways for reducing
software risks
29High Level Architecture for ARMOR
30Component Evaluation and Risk Analysis Tool
- ? Based on ARMOR
- ? Add some Java feasure on it
- Java Classes
- Program Coupling
- Java Methods
- Hierarchical Structure
- Clone Detection
31Existing Metrics on Java
- ? Metamata
- ? Jprobe
- ? Both base on Java language
- ? Adopted in current component market
32Examples of Metamata Metrics
33Conclusion and Future Work
? We look at the current technologies, quality
assurance schemes for component-based software
development. ? Our work is to implement a
component evaluation and risk analysis tool ?
The tool will make use of the well-adopted
metrics ? It is Java language oriented.
34Q A