Title: Quality Assurance for Component-Based Software Development
1Quality Assurance for Component-Based Software
Development
Presented by Cai Xia Supervised by Prof.
Michael Lyu 11 April, 2000
2Presentation Outline
? Introduction ? Current component technologies
? Case study ? Quality Assurance for
component-based software systems ? 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(1)
? CORBA is an open standard for application
interoperability ? V1.1 defines IDL, API, ORB
(1991) ? V2.0 defines true interoperability
(1994) ? ORB is a middleware that establishes the
client/server relationships between objects
9CORBA(2)
? 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
10COM/DCOM(1)
? COM 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
11COM/DCOM(2)
? DCOM 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
12JavaBeans/EJB (1)
? 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
13JavaBeans/EJB (2)
? 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
14Case Study IBM SanFrancisco
? subjective 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
15SanFrancisco Infrastructure
16Software Quality Assurance (SQA)
? Process-oriented (Software Quality
Engineering) subjective procedures,
techniques and tools standard ISO9000-3,
CMM ? Product-oriented (Software Quality
Control) subjective software product
delivered method testing tools, metrics
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
19Metrics for OO Software
Aim at ? Complexity ? Understandability
? Maintainability ? Reusability ?
Testability
20Testability Factors in OO Systems
21Example Metrics for OO Software
22QA for Component-Based Software
? How to qualify a component? ? How to qualify a
component-based software system?
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
26Q A Section