260 likes | 269 Views
This presentation discusses the importance of quality assurance in component-based software development and explores current component technologies. It also includes a case study and highlights open problems in QA for CBSD.
E N D
Quality Assurance for Component-Based Software Development Presented by: Cai Xia Supervised by: Prof. Michael Lyu 11 April, 2000
Presentation Outline Introduction Current component technologies Case study Quality Assurance for component-based software systems 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
Component 1 Software systems Component 2 Component n assemble select Commercial Off-the-shelf (COTS) components What is Component-Based Software Development ? Component repository ...
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.
Application Layer Application2 Application3 Application1 Special business components Common components Basic components System Architecture Layered Modular
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
CORBA(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
CORBA(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
COM/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
COM/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
JavaBeans/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
JavaBeans/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
Case 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
Software 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
QA for Object-Oriented Systems Key concepts in OO Design Object Class Polymorphism Inheritance
Object-Oriented Design Object-Oriented Design Method Design Object Design Attributes of Objects Communication Among Objects Object Definition
Metrics for OO Software Aim at: Complexity Understandability Maintainability Reusability Testability
QA for Component-Based Software How to qualify a component? How to qualify a component-based software system?
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