Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof....
Preview:
Citation preview
- Slide 1
- 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
- Slide 14
- SanFrancisco Infrastructure
- Slide 15
- Software 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
- Slide 16
- 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
- Slide 26
- Functionality Interface Userability Testability Modifiability
(Maintainability) Documentation Fault Tolerance (Reliability)
Quality Characteristics of Components
- Slide 27
- A Draft QA Model for CBSD Component System
- Slide 28
- 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
- Slide 38
- Q & A Section