Quality Assurance for Component- Based Software Development Cai
Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000
Slide 2
Presentation Outline Introduction Current Technologies for
Component Case Study Survey on Software Quality Assurance A draft
QA model for Component-Based Software Development Conclusion
Slide 3
Introduction 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
Slide 4
What is Component-Based Software Development ? Component
repository Component 1 Component 2 Component n Software systems
select assemble... Commercial Off-the-shelf (COTS) components
Slide 5
What 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
Slide 6
System Architecture Layered Modular Special business components
Common components Basic components Application2 Application1
Application3 Application Layer
Slide 7
Current 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
Slide 8
CORBA 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
Slide 9
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
Slide 10
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 DCOM
Slide 11
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
JavaBeans/EJB
Slide 12
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
JavaBeans/EJB
Slide 13
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 Case
Study: IBM SanFrancisco
Software 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
Slide 17
QA for Object-Oriented Systems Key concepts in OO Design Object
Class Polymorphism Inheritance
Slide 18
Object-Oriented Design Method Design Object Design Object
Definition Attributes of Objects Communication Among Objects
Slide 19
Testability Factors in OO Systems
Slide 20
Example Metrics for OO Software
Slide 21
QA for Component-Based Software How to certify quality of a
component? How to certify quality of a component- based software
system?
Slide 22
Component vs. Object Object: Defined at a low level Component:
higher-level entity Object: multiple inheritance model inherent
dependency Component: multiple interfaces flexibility
Slide 23
Life Cycle of A Component
Slide 24
Requirements analysis Software architecture selection,
creation, analysis and evaluation Component evaluation, selection
and customization Integration Component-based system testing
Software maintenance Life Cycle of CBSD
Slide 25
Identification of the QA characteristics Well-defined Standards
Models Metrics Testing tools Open Problems About QA for CBSD
Main Practices Component requirement analysis Component
development Component evaluation Component customization System
architecture design System integration System testing System
maintenance
Slide 29
Process Overview Diagrams Component Requirement Analysis
Slide 30
Process Overview Diagrams Component Development
Slide 31
Process Overview Diagrams Component Evaluation
Slide 32
Process Overview Diagrams Component Customization
Slide 33
Process Overview Diagrams System Architecture Design
Slide 34
Process Overview Diagrams System Integration
Slide 35
Process Overview Diagrams System Testing
Slide 36
Process Overview Diagrams System Maintenance
Slide 37
Conclusion 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