Title: Quality Assurance for Component-Based Software Development
1Quality Assurance for Component-Based Software
Development
Cai Xia (Mphil Term1) Supervisor
Prof. Michael R. Lyu 5 May, 2000
2Presentation Outline
? Introduction ? Current Technologies for
Component ? Case Study ? Survey on Software
Quality Assurance ? A draft QA model for
Component-Based Software Development ? Conclusion
3Introduction
? Software systems become more and more
large-scale, complex and uneasily controlled ?
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 ?
Component repository
...
5What 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
6System Architecture
? Layered ? Modular
7Current Component Technologies
? Common Object Request Broker Architecture
(CORBA) from Object Management Group (OMG) ?
JavaBeans and Enterprise JavaBeans (EJB)
from Sun Microsystems ?
Component Object Model (COM) and Distributed COM
(DCOM) from Microsoft
8CORBA
? CORBA is an open standard for application
interoperability ? Allows heterogeneous
environments operating systems/execution
environment/ programming languages ? Allows
integration of existing components ? CORBA is
widely used in OO distributed systems including
component-based software systems
9COM
? Introduced in 1993 ? Platform-dependent
(Windows, WindowsNT) ? Language-independent ?
Defines how components and their clients interact
directly and dynamically ? Enables on-line
software update and cross-language software reuse
10DCOM
? Introduced in 1996 ? Extension of COM ? A
protocol that enables software components to
communicate directly over a network ? In a
reliable, secure, and efficient manner ? Across
multiple network transports, including Internet
protocols such as HTTP
11JavaBeans/EJB
? JavaBeans for client-side component
development ? Enterprise JavaBeans for
server-side component development ?
Platform-independent ? Language-dependent
(Java) ? Enables scalable, secure,
business-critical, multiplatform, reusable
components
12JavaBeans/EJB
? Efficient data access across heterogeneous
server ? Faster Java client connections,
transaction state management, caching and
queuing ? Connection multiplexing ? Transaction
load balancing across servers ? Easier
modification and maintenance than CORBA or
COM/DCOM
13Case Study IBM SanFrancisco
? Objective solving the high cost and low
efficiency problems when modernizing or
maintaining complex specific software systems ?
Provides a distributed object infrastructure and
a set of application components ? Programming
language Java ? Platforms Windows NT, OS/400,
AIX, Solaris, HP_UX and Reliant UNIX
14SanFrancisco Infrastructure
15Software Quality Assurance (SQA)
? Process-oriented (Software Quality
Engineering) Objective procedures,
techniques and tools standard ISO9000-3,
CMM ? Product-oriented (Software Quality
Control) Objective software product
delivered method testing tools, metrics
16Software Quality Standard Model
? ISO9000 (International Organization for
Standardization) ? development and management
process ? CMM (Software Engineering Institute
SEI) ? five levels of increasing process
maturity ? HKSQA Model (Hong Kong Productivity
Council) ? a framework of local software standard
practices
17QA for Object-Oriented Systems
Key concepts in OO Design ? Object ?
Class ? Polymorphism ? Inheritance
18Object-Oriented Design
Object-Oriented Design
Method Design
Object Design
Object Definition
Attributes of Objects
Communication Among Objects
19Testability Factors in OO Systems
20Example Metrics for OO Software
21QA for Component-Based Software
? How to certify quality of a component? ? How
to certify quality of a component-based software
system?
22Component vs. Object
? Object Defined at a low level
Component higher-level entity ? Object
multiple inheritance model ? inherent
dependency Component multiple interfaces
? flexibility
23Life Cycle of A Component
24Life Cycle of CBSD
? Requirements analysis ? Software architecture
selection, creation, analysis and evaluation ?
Component evaluation, selection and
customization ? Integration ? Component-based
system testing ? Software maintenance
25Open Problems About QA for CBSD
? Identification of the QA characteristics ?
Well-defined Standards ? Models ? Metrics ?
Testing tools
26Quality Characteristics of Components
? Functionality ? Interface ? Userability ?
Testability ? Modifiability (Maintainability) ?
Documentation ? Fault Tolerance (Reliability)
27A Draft QA Model for CBSD
? Component ? System
28Main Practices
? Component requirement analysis ? Component
development ? Component evaluation ? Component
customization ? System architecture design ?
System integration ? System testing ? System
maintenance
29Process Overview Diagrams ? Component
Requirement Analysis
30Process Overview Diagrams ? Component
Development
31Process Overview Diagrams ? Component Evaluation
32Process Overview Diagrams ? Component
Customization
33Process Overview Diagrams ? System Architecture
Design
34Process Overview Diagrams ? System Integration
35Process Overview Diagrams ? System Testing
36Process Overview Diagrams ? System Maintenance
37Conclusion and Future Work
? QA for CBSD should contain two different parts
component and system ? Materialize the draft
model ? Evaluate existing testing tools for
specific component technology, e.g. JavaBeans ?
Metrics
38Q A Section