Quality Assurance for Component Based Software Development Cai
Quality Assurance for Component. Based Software Development Cai Xia (Mphil Term 1) Supervisor: Prof. Michael R. Lyu 5 May, 2000
Presentation Outline Introduction Current Technologies for Component Case Study Survey on Software Quality Assurance A draft QA model for Component-Based Software Development Conclusion
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
What is Component-Based Software Development ? Component 1 Component repository Component 2 Software systems . . . Component n assemble select Commercial Off-the-shelf (COTS) components
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 welldefined architecture It communicates with other components by the interfaces
System Architecture Layered Modular Application 2 Application 1 Application 3 Special business components Common components Basic components Application Layer
Current Component Technologies Common Object Request Broker Architecture (CORBA) from Object Management Group (OMG) Java. Beans and Enterprise Java. Beans (EJB) from Sun Microsystems Component Object Model (COM) and Distributed COM (DCOM) from Microsoft
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
COM Introduced in 1993 Platform-dependent (Windows, Windows. NT) Language-independent Defines how components and their clients interact directly and dynamically Enables on-line software update and crosslanguage software reuse
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
Java. Beans/EJB Java. Beans for client-side component development Enterprise Java. Beans for server-side component development Platform-independent Language-dependent (Java) Enables scalable, secure, business-critical, multiplatform, reusable components
Java. Beans/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
Case Study: IBM San. Francisco 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
San. Francisco Infrastructure
Software Quality Assurance (SQA) Process-oriented (Software Quality Engineering) Objective: procedures, techniques and tools standard: ISO 9000 -3, CMM Product-oriented (Software Quality Control) Objective: software product delivered method: testing tools, metrics
Software Quality Standard & Model ISO 9000 (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
QA for Object-Oriented Systems Key concepts in OO Design Object Class Polymorphism Inheritance
Object-Oriented Design Object Definition Attributes of Objects Method Design Communication Among Objects
Testability Factors in OO Systems
Example Metrics for OO Software
QA for Component-Based Software How to certify quality of a component? How to certify quality of a componentbased software system?
Component vs. Object: Defined at a low level Component: higher-level entity Object: multiple inheritance model inherent dependency Component: multiple interfaces flexibility
Life Cycle of A Component
Life Cycle of CBSD Requirements analysis Software architecture selection, creation, analysis and evaluation Component evaluation, selection and customization Integration Component-based system testing Software maintenance
Open Problems About QA for CBSD Identification of the QA characteristics Well-defined Standards Models Metrics Testing tools
Quality Characteristics of Components Functionality Interface Userability Testability Modifiability (Maintainability) Documentation Fault Tolerance (Reliability)
A Draft QA Model for CBSD Component System
Main Practices Component requirement analysis Component development Component evaluation Component customization System architecture design System integration System testing System maintenance
Process Overview Diagrams Component Requirement Analysis
Process Overview Diagrams Component Development
Process Overview Diagrams Component Evaluation
Process Overview Diagrams Component Customization
Process Overview Diagrams System Architecture Design
Process Overview Diagrams System Integration
Process Overview Diagrams System Testing
Process Overview Diagrams System Maintenance
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. Java. Beans Metrics
Q & A Section
- Slides: 38