quality assurance for component- based software development cai xia (mphil term1) supervisor: prof....

38
Quality Assurance for Component-Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000

Upload: beverly-porter

Post on 26-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 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