Study of Component Based Software Engineering

Similar documents
Software Reuse and Component-Based Software Engineering

Minsoo Ryu. College of Information and Communications Hanyang University.

Component-Based Software Engineering TIP

Component-Based Software Engineering TIP

Dr. Tom Hicks. Computer Science Department Trinity University

Chapter 18. Software Reuse

2. The Proposed Process Model of CBD Main phases of CBD process model are shown, in figure Introduction

Software Engineering

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman (revised by Seung- Hoon Na) For non-profit educational use only

Component-based Architecture Buy, don t build Fred Broks

Component-based software engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1

SOFTWARE ENGINEERING. To discuss several different ways to implement software reuse. To describe the development of software product lines.

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

CT41 (ALCCS) SOFTWARE ENGINEERING JUN 2015

CHAPTER 5 GENERAL OOP CONCEPTS

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Component-based Development Process and Component Lifecycle

ΗΜΥ 317 Τεχνολογία Υπολογισμού

Software Engineering Chap.7 - Design and Implementation

Chapter 17 - Component-based software engineering. Chapter 17 So-ware reuse

Introduction to Software Reuse

Towards The Adoption of Modern Software Development Approach: Component Based Software Engineering

Configuration Management for Component-based Systems

CHAPTER 9 DESIGN ENGINEERING. Overview

Architectural Blueprint

Seminar report Software reuse

Software Reuse Techniques

BASIC CONCEPT OF OOP

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

09. Component-Level Design

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Architectural Design. Architectural Design. Software Architecture. Architectural Models

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN

Object-Oriented Concepts and Design Principles

Applying the Component Paradigm to AUTOSAR Basic Software

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

Software Engineering. Dr. Raj Singh

Software Development. Modular Design and Algorithm Analysis

The Open Group SOA Ontology Technical Standard. Clive Hatton

Introduction to Object Oriented Analysis and Design

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

Software Engineering Fall 2014

Topics in Object-Oriented Design Patterns

Chapter 12 (revised by JAS)

Project Name. The Eclipse Integrated Computational Environment. Jay Jay Billings, ORNL Parent Project. None selected yet.

What is CBSE and Why? Component-Based Software Engineering. But why not in Software engineering? Component Everywhere

Component-Based Software Engineering

Object- Oriented Design with UML and Java Part I: Fundamentals

Game Production: reuse

Part 7 - Object Oriented Concepts Classes, Objects, Properties and Methods

Part 4. Development. -Software Reuse - Component-Based Software Engineering. JUNBEOM YOO Ver. 1.

Reusable General Component in Unknown Domain

Chapter 8: Class and Method Design

Presenter: Dong hyun Park

Comparison Study of Software Testing Methods and Levels- A Review

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?

3 Product Management Anti-Patterns by Thomas Schranz

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015

Design Concepts. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman

PROGRAMMING IN C++ COURSE CONTENT

COMPARATIVE STUDY OF TECHNOLOGIES RELATED TO COMPONENT-BASED APPLICATIONS BASED ON THEIR RESPONSE TIME PERFORMANCE

CSCU9T4: Managing Information

Lecture 4: Design Concepts For Responsibility- Driven Design Kenneth M. Anderson January 20, 2005

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Oracle Forms Modernization Through Automated Migration. A Technical Overview

A Framework for COTS Integration and Extension

Incremental development A.Y. 2018/2019

News in RSA-RTE 10.0 updated for sprint Mattias Mohlin/Anders Ek, June 2016

Element: Relations: Topology: no constraints.

A Practitioner s Approach to Successfully Implementing Service Virtualization

Second. Incremental development model

The Nature of Software. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Object-Oriented Design

Architectural Design

VB.NET. Exercise 1: Creating Your First Application in Visual Basic.NET

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

CHAPTER 5: PRINCIPLES OF DETAILED DESIGN

Ch 1: The Architecture Business Cycle

AADL Graphical Editor Design

1. Write two major differences between Object-oriented programming and procedural programming?

QUIZ #5 - Solutions (5pts each)

Evolution of Technology through Procedural, Object Oriented, and Component Based to Service Oriented

Abstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

Design Metrics for Object-Oriented Software Systems

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their

ebook library PAGE 1 HOW TO OPTIMIZE TRANSLATIONS AND ACCELERATE TIME TO MARKET

Software testing. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 23 Slide 1

Object Orientated Analysis and Design. Benjamin Kenwright

Architectural Design

Software Engineering

Software Engineering (CSC 4350/6350) Rao Casturi

User Interface Design. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

Chapter 6 Architectural Design. Chapter 6 Architectural design

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

Transcription:

Study of Based Software Ishita Verma House No.4, Village Dayalpur Karawal Nagar Road Delhi-110094, India ish.v.16@gmail.com Abstract based engineering is an approach of development that emphasizes the design and construction of computer based systems using reusable components. A set of pre-built, standardized components are made available to fit a specific architectural style for some application domain. Based Software encompasses two parallel engineering activities: domain engineering and component based development. This paper studies about s, based development, its advantages, disadvantages and comparison of Based Software engineering with Conventional Software. General Terms Based Software Keywords, reuse, based development, based engineering. based systems are easier to assemble and therefore less costly to build than systems constructed from discrete components. A is an independent executable entity. It does not have to be compiled before it is used with other components. The services offered by a component are made available through an interface and all the interactions take place through that interface. Advantages of based development are increased quality, accelerated development and reduced risk. 2. Interfaces The interfaces of a, as in Fig 1, are as follows: Provides Interface: defines the services that are provided by the component to other components. Requires Interface: defines the services that must be made available to the component to execute as specified. 1. Introduction Requires interfaces Provides interfaces A component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A Software can be deployed independently and is subject to composition by a third party. Based Software (CBSE) is an approach that relies on the reuse of Software components. A set of pre-built, standardized components are made available to fit a specific architecture for some application domain. The application is then assembled using these components, rather than the discrete parts of a conventional programming language. Fig 1: and its interfaces The principles which govern Based Software design is as follows: 1) s are independent so do not interfere with each other. 2) implementation is hidden. 3) Communication is through well-defined interfaces. 4) platforms are shared and reduce development costs. 84

3. Based Software Systems Based Software (CBSE) is an approach to development that relies on reuse. The process begins when a team establishes requirements for the system to be built. An architectural design is prepared but rather than moving immediately into more detailed design tasks, the team examines requirements to determine what subset is directly amenable to composition rather than construction. That is, the team asks the following questions for each system requirement: 1.) Are commercial off-the shelf (COTS) components available to implement the requirement? 2.) Are internally developed reusable components available to implement the requirement? 3.) Are the interfaces for available components compatible within the architecture of the system to be built? The team attempts to modify or remove those system requirements that cannot be implemented with COTS or in house components. If the requirement(s) cannot be changed or deleted, engineering methods are applied to build those new components to meet requirement(s). For those requirements that can be addressed with available components the following activities take place: 1) qualification 2) adaptation 3) composition 4) System evolution and component upgrade 3.1 Qualification Qualification is the process of determining the suitability of a component for use within the intended final system. qualification ensures that a candidate component will perform the function required, will properly fit into the architectural style specified for the system and will exhibit the quality characteristics that are required for the application. The interface description provides useful information about the operation and use of a component, but it does not provide all the information needed to determine if a proposed component can be reused effectively in a new application. 3.2 Adaptation Even after a component has qualified for use within application architecture, there may be some gaps between the component features and the requirements as a result of which some conflicts may occur. The aim of Adaptation is to ensure that the conflicts among components are minimized. An Adaptation technique called as Wrapping is often used. When a team has full access to the internal design and code for a component then code level modifications can be done to remove a conflict. This is called as White box wrapping. Gray box wrapping is used when the component library provides an API that enables conflicts to be removed. Black box wrapping introduces Pre and Post-processing at the component interface to remove conflicts. 3.3 Composition The component assembly task assembles qualified, adapted and engineered components to populate the architecture established or an application. To accomplish this, an infrastructure must be established to bind the components into an operational system. 3.4 System Evolution and Upgrade Because components are the units of change, system evolution is based around the replacing of outdated components by new ones. The components are treated as plug replaceable unite. But in practice this replacement may not be trivial as there can be a mismatch between the old and the new component thus triggering another stage of component adaptation. 4. Based Software Process Based, as in Fig 2, encompasses two parallel engineering activities: Domain and Based development. Also there is the process of which is used for constructing new components for those requirements for which no suitable pre-built components exist. 85

4.1 Domain Domain explores an application domain with the intent of finding functional, behavioral and data components that are candidates for reuse. These components are placed in Reuse libraries. The intent of Domain is to identify, construct, catalog and disseminate a set of components that have applicability to existing and future in a particular application domain. Domain includes three major activities: Analysis, Construction and Dissemination. 4.2 Based Development based development elicits requirements from the customer, selects an appropriate architectural design to meet the objectives of the system to be built and then (1) Selects potential components for reuse (2) Qualifies the components to be sure that they properly fit the architecture of the system, (3) Adapts components, if modifications must be made to properly integrate them and, (4) Integrates the components to form subsystems and the application as a whole. In addition, custom components are engineered to address those aspects of the system that cannot be implemented using existing components. This activity takes place in parallel with Domain engineering. Using analysis and architectural design methods, the team refines an architectural style that is appropriate for the analysis model created for the application to be built. Once the architecture has been established, it must be populated by components that are available from reuse libraries and/or are engineered to meet custom needs. When Reusable components are available for potential integration into the architecture, they must be qualified and adapted. When new components are required, they must be engineered. The resultant components are then integrated (composed) into the architecture and tested thoroughly. Qualification upgrade Analysis Architectural Design Adaptation composition Application Testing Fig. 2: Based Software process model 86

5. Comparison of Based Software with Traditional Software based engineering is advantageous than Traditional engineering (see Table 1) Table 1: Comparison of CBSE with Traditional Software engineering Attribute Based Software Traditional Software 6. Comparison of Based Software with Object Oriented Software Object oriented engineering is another approach to development in which the real world things are modeled as objects which have certain attributes and methods which affect those attributes. A collection of objects of similar type is called a class. An object may seem to be similar to a component but object is much more specific (see Table 2) and hence its use is limited. Cost Developmen t Time It involves reuse of components in building thus reducing the cost. Because of the use of pre-built components the development time is reduced. Quality The components which are used for building the, exhibit quality characteristics like performance, reliability and usability thus increasing quality. Applicability This approach of development is applicable only to with prebuilt components. There is no reuse of components and hence no reduced costs. No pre-built components are used and hence no reduction in the development time. No reusable components are used here and hence no increased quality is achieved. There is no such restriction with traditional engineering. Table 2: Comparison of CBSE with Object oriented engineering Based Software s are not too specific and provide some degree of abstraction and hence can be reused in development. Object oriented concepts like Inheritance, Encapsulation and polymorphism cannot be used in development. Object Oriented Classes and Objects are too specific and hence are difficult to be reused in development. Object oriented concepts of Inheritance, polymorphism and Encapsulation are used in development. 7. Disadvantages of Based Software Development The disadvantages of Based Software Development are as follows: 1) Finding suitable components which fit the architectural design of the to be developed may be sometimes difficult because gaps exist between the component features and the requirements. 2) Based development has not been widely adopted in domains of embedded systems because of inability of this technology to cope with the important concerns of embedded systems like resource constraints, real time or dependability requirements. 87

3) Based Software is young; therefore long term maintainability is still unknown. 8. Conclusions Based Software development can increase the productivity and quality of the. It also reduces the development cost as components are designed to be independent. The development cost is also reduced. But because of the inability of this technology in dealing with real time requirements it is not used widely in the field of embedded systems. 9. Acknowledgments The help rendered by friends and colleagues in finalizing this paper is duly acknowledged. 10. References [1] Pressman Roger, Software : A Practitioner s Approach, McGraw Hill, Sixth Edition, 2012. [2] Ian Sommerville, Software, 8 TH Edition, 2012. [3] Ivica Crnkovic, based Software for embedded systems, in IEEE proceedings of International Conference on Software, 2005. [4] http://www.cs.man.ac.uk 88