Component-Based Software Development: Technologies, Quality Assurance Schemes, and Risk Analysis Tools Cai Xia Supervisor: Prof. Michael R. Lyu Markers:

Slides:



Advertisements
Similar presentations
Overview of Web Services
Advertisements

COM vs. CORBA.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
P RESENTATION ON C OMPONENT B ASED S OFTWARE E NGINEERING Presented by: Richard Akono Burak Çamdereli Yousef Al Sharma Volkan Ozdamar Eastern Mediterranean.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 3 – Building.
8.
Technical Architectures
Chapter 17: Client/Server Computing Business Data Communications, 4e.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Quality Prediction for Component-Based Software Development: Techniques and A Generic Environment Presented by: Cai Xia Supervisor: Prof. Michael Lyu Examiners:
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Chapter 13 Physical Architecture Layer Design
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
- 1 - Component Based Development R&D SDM Theo Schouten.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Nikolaos Korfiatis The Java 2 Enterprise Edition Platform Dept. of Management & Technology-Athens University of Economics and Business Java 2 Platform.
A Computer Aided Despatch System on CORBA/Java Platform Chau Chi Wing.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Client/Server Architecture
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
Component Based Development
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Web services: Why and How OOPSLA 2001 F. Curbera, W.Nagy, S.Weerawarana Nclab, Jungsook Kim.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
第十四章 J2EE 入门 Introduction What is J2EE ?
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
DCOM (Overview) by- Jeevan Varma Anga.
Quality Assessment for CBSD: Techniques and A Generic Environment Presented by: Cai Xia Supervisor: Prof. Michael Lyu Markers: Prof. Ada Fu Prof. K.F.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
WebService. Outline Overview of Web Services SOAP (messaging) WSDL (service description) UDDI (registry)
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
An Introduction to Web Services Web Services using Java / Session 1 / 2 of 21 Objectives Discuss distributed computing Explain web services and their.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
Lecture 21: Component-Based Software Engineering
Enterprise Computing Distribution and components.
1 Pass-By-Value Services in Object Component Software Group 1 Yannick Loitiere Andrea Rowan Michele Co Jinze Liu.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
A service Oriented Architecture & Web Service Technology.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
A Hierarchical Model for Object-Oriented Design Quality Assessment
Component-Level Design
Overview of Web Services
Inventory of Distributed Computing Concepts and Web services
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Inventory of Distributed Computing Concepts
Component--based development
Service Oriented Architecture (SOA)
Chapter 17: Client/Server Computing
Quality Assurance for Component-Based Software Development
Copyright 1999 B.Ramamurthy
Presentation transcript:

Component-Based Software Development: Technologies, Quality Assurance Schemes, and Risk Analysis Tools Cai Xia Supervisor: Prof. Michael R. Lyu Markers: Prof. Kam-Fai Wong Prof. Ada Fu December 18, 2000

Presentation Outline  Introduction  Current component technologies  Quality assurance issues and a QA model for Component-Based Software Development (CBSD)  A risk analysis tool: ARMOR  Expected new features of our risk analysis tool  Demonstration of ARMOR  Conclusion and future work

Introduction  Software systems become more and more large-scale, complex and uneasily controlled  One of 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 repository Software systems s elect assemble Component 1 Component 2 Component n... Commercial Off-the-shelf (COTS) components Software systems can be developed by selecting appropriate off-the-shelf components and then assembling them with a well-defined software architecture.

Advantages of CBSD Reduce Development cost Time-to-market Improve Maintainability Reliability Overall quality of software systems

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

System Architecture  Layered  Modular Special business components Common components Basic components App2 App1 App3 Application Layer Components Layer

Current Component Technologies  Common Object Request Broker Architecture (CORBA) from Object Management Group (OMG)  Component Object Model (COM) and Distributed COM (DCOM) from Microsoft  JavaBeans and Enterprise JavaBeans (EJB) from Sun Microsystems

CORBA  CORBA is an open standard for application interoperability  Allows applications/components to communicate with one another despite of different locations and designers.  The interface is the only way that applications/ components communicate with each other.  Object Request Broker (ORB) is the middleware that establishes the client-server relationships between components.  CORBA is widely used in OO distributed systems including component-based software systems

COM/DCOM  COM is a general architecture for component software vDefines how components and their clients interact directly and dynamically  DCOM is a protocol that enables software components to communicate directly over a network  Designed for use across multiple network transports, including Internet protocols such as HTTP

 JavaBeans for client-side component development, while Enterprise JavaBeans for server-side component development  Offers an efficient solution to the portability, security and reliability of component-based development.  The features are well suited for developing robust server objects independent of OS, Web servers and database management server. JavaBeans/EJB

Comparison of Current Component Technologies CORBAEJBCOM/DCOM Development environment Underdeveloped Emerging Supported by a wide range of strong development environments Binary interfacing standard Not binary standardsBased on COM; Java specific A binary standard for component interaction is the heart of COM Compatibility & portability Strong in standardizing language bindings; but not so portable Portable by Java language spec; but not very compatible. Not having any concept of source-level standard of standard language binding. Modification & maintenance CORBA IDL for defining component interfaces Not involving IDL filesMicrosoft IDL for defining component interfaces Services providedA full set of standardized services; lack of implementations Neither standardized nor implemented Recently supplemented by a number of key services Platform dependency Platform independent Platform dependent Language dependency Language independentLanguage dependentLanguage independent Implementation Strongest for traditional enterprise computing Strongest on general Web clients. Strongest on the traditional desktop applications

 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

QA for Component-Based Software Two inseparable parts:  How to certify quality of a component?  How to certify quality of a component-based software system? Metrics for components:  Size  Complexity  Reuse frequency  Reliability

A Quality Assurance Model for CBSD  Component  System

Hong Kong SQA Model  Proposed by Hong Kong Productivity Council  Provides the standard for local software organizations  Meet basic software quality requirements;  Improve on software quality practices;  Use as a bridge to achieve other international standards;  Assess and certify them to a specific level of software quality conformance

Main Practices Requirement Analysis Component Architecture Design System Component Development Component Certification Component Customization System Integration System Testing System Maintenance

Process Overview  Component Requirement Analysis

Process Overview  Component Development

Process Overview  Component Certification

Process Overview  Component Customization

Process Overview  System Architecture Design

Process Overview  System Integration

Process Overview  System Testing

Process Overview  System Maintenance

The Feature of Our QA Model Compared with other existing models:  Simple, easy to apply  Design for local component vendors (small to medium size)  Focused on development process, according to the life cycle of CBSD  Not focused on the measure/predict the quality of components/systems

ARMOR: Analyzer for Reducing Module Operation Risk  The prototype was developed at Bell Lab in  A software risk analysis tool which automatically identifies the operational risks of software program modules.  Take data directly from project database, failure database and program development database.  Collect software metrics, select risk models, and validate the established models.

ARMOR Objectives  To access and compute software data deemed pertinent to software characteristics.  To compute product metrics automatically whenever possible  To evaluate software metrics systematically  To perform risk modeling in a user-friendly and user-flexible fashion  To display risks of software modules  To validate risk models against actual failure data and compare model performance  To identify risky modules and to indicate ways for reducing software risks

High Level Architecture for ARMOR

Component Evaluation and Risk Analysis Tool  Based on ARMOR  Add some Java feasure on it: o Java Classes o Program Coupling o Java Methods o Hierarchical Structure o Clone Detection

Existing Metrics on Java  Metamata  Jprobe  Both base on Java language  Adopted in current component market

Examples of Metamata Metrics MetricMeasuresDescription Cyclomatic Complexity ComplexityThe amount of decision logic in the code Lines of CodeUnderstandability, maintainability The length of the code; related metrics measure lines of comments, effective lines of code, etc. Weighted Methods per Class Complexity, understandability, reusability The number of methods in a class Response for a Class Design, usability, testabilityThe number of methods that can be invoked from a class through messages Coupling Between Objects Design, reusability, maintainability The number of other classes to which a class is coupled Depth of Inheritance Tree Reusability, testabilityThe depth of a class within the inheritance hierarchy Number of Attributes Complexity, maintainabilityThe amount of state a class maintains as represented by the number of fields declared in the class

Conclusion and Future Work  We look at the current technologies, quality assurance schemes for component-based software development.  Our work is to implement a component evaluation and risk analysis tool  The tool will make use of the well-adopted metrics  It is Java language oriented.

Q & A