File Name: component based software engineering and development .zip
- Emergence of Component Based Software Engineering
- Emergence of Component Based Software Engineering
- Component-Based Software Engineering
- Component-based software engineering
Emergence of Component Based Software Engineering
The development of high quality software is the need of current technology driven world. CBSE is mainly based on the concept of reusability. Apart from these CBSE has several advantages as well as challenges which are summarized in this paper.
Large and complex software development requires management of reusable components and can be selected from component repository and assembled to obtain a working application. Development of components and their assembly is different from traditional softwares which leads to the need of new development paradigms for Component Based Systems CBS. Software development life cycle SDLC provides planned and systematic arrangement of activities to be carried out to deliver high quality products within time and budget.
This paper presents a comparative study of component based software development life cycle models with their strengths and weaknesses.
Gulia P, Palak. Software development process has evolved a long way from traditional waterfall model to highly manageable component oriented software. Initially softwares were developed from scratch using functional procedural approach.
It was a top-down approach which breaks functional requirements into sub functions and building a program for functionality. Later a huge change in software industry came with the introduction of object oriented paradigms in early s. Various features like abstraction, encapsulation, polymorphism, inheritance etc.
They offer a bottom up approach for software development where the main focus was on data and entities rather than on functions. Each component represents a set of services which can be assembled with other components. Thus collection of such interactive components builds the whole software. Later we can add, replace or modify components according to our needs. This helps in reducing software crisis and delivers robust software products with faster delivery and reduced cost.
Component Based Software Engineering CBSE has gained popularity in last few decades because of increasing demand of complex and up to date software. It has provided a cost effective, fast and modular approach for developing complex software with reduced delivery time. Actively reusing designs or code allows taking advantage of the investment made on reusable components. A component is defined by many researchers in many ways.
So we can say that a component is a black box, reusable software implementation that can be executed and interacts using well defined interfaces. Components are built to be reusable which makes development of further applications with similar functionalities much easier. Components are heterogeneous in nature in terms of programming languages and platform. Component based architecture provides flexibility to update or modify components and choose the best in class .
With the evolution of CBSE, it is easy to manage and update large and complex software. While object oriented paradigms are not sufficient for present day software, CBSE provides a promising solution with following advantages as shown in Fig. Components can be easily added, removed or updated. CBSE systems are highly scalable as more and more components with new functionality can be added easily.
As certification process is already completed for the developed components so the final software is readily predicted to be of good quality. Several models have been proposed to evaluate quality in such systems  . As the components are reused, the cost and the time needed to develop new components are saved. The cost of component development is recovered after five successive reuses. CBSE provides a set of adaptable components with predefined architecture. Application developers can purchase them from third party and customize and assemble them according to their specific requirements.
CBS are more maintainable as it is easy to replace faulty components with their alternatives . Risk of software failure is reduced because of availability of various alternatives for a component with similar functionality.
The advantages from CBSE are not limited to those described in above section. Several other inherent advantages are there for the developer as well as the user which makes CBSE a right choice for the future software products. Apart from advantages, CBSE introduces new challenges for the developers. Component based software products are completely dependent on efficient reusability and interaction between the heterogeneous components.
Although the field of CBSE is heavily researched over last two decades but still there are some challenges   which the practitioners have to face. Some of them are listed below:. Components are heterogeneous in terms of programming language, platform, data structure, naming conventions etc. They are developed by third party at different platforms under different project plans. Any internal error in the component can lead to its failure leading to overall system failure and cannot be easily corrected due to the heterogeneous nature of components.
A promising and optimal set of components should be selected from component pool after system analysis and requirement engineering. Component selection is NP Non — Deterministic Polynomial hard problem which requires a lot of effort and soft computing based approaches.
This has been an attractive research area for many researchers  . Component testing is an expansive process as it involves construction of test drivers and stubs. Building and configuring separate stub and drivers for each component is a cumbersome task for testers. All possible combinations of available components are very difficult to test.
Each component has some interfaces through which it interacts with other components. Interface specifications are the entry points for defects. They need to be tested thoroughly. But the problem arises when these specifications are complex. Co-existence of different versions of a component with slight modifications creates challenge for testers to test all possible versions. Changes on the application or system level may affect overall working of CBS as the lifecycle of components and the application in which they are used are separate.
There is a risk that this change introduced will cause system failure . A component must have standard configuration and must have undergone well established certification policy. This develops faith in stakeholders of CBS. But there is a lack of procedures and standards for the same . As stated earlier, CBSE is an approach of developing complex software applications by assembling reusable components from a variety of sources into a well-defined architecture.
Traditional waterfall and iterative life cycle development models are not sufficient for CBS. This section briefly summarizes some of these models. Y model was proposed in by Luiz Fernando Capretz . Considering the concept of reusability, Y model separate the development of components.
This model allows iteration and overlapping of stages. The model resembles the letter Y in English from where the name Y model came in existence. The model has three branches showing the main phases of development. Various phases are shown in Fig. At intersection of three branches is the assembly phase. Assembly of reusable components can be done after domain engineering and frame working where reusable components and their interrelationships are identified in terms of application vocabulary.
Parallel to domain engineering, system analysis and design phases are carried out. The results of system analysis and designing phase are useful for adapting the selected components according to the system design requirements.
Next step is to assemble and implement the system that is composed of various reusable components glued together in a framework. Component testing and system testing is also an important phase to assure quality of final product.
Ivica Crnkovic et. They proposed a modified V model considering two aspects i. They identified that component based development process is different from non-component based development and found the new problems that arise due to component selection and assembly.
Component development phase is independent of developing system from components and can be carried out in parallel. The developed reusable components are stored in component pool from where they can be selected after analysis and design phase is over. The model contains four arms arranged in the shape of letter X of English alphabet and each arm represents different perspective of development. The upper left arm specifies the stages for development of components for reuse.
Here the components are developed from scratch and stored in component repository. The lower left and lower right arms specify stages for development after modification and development without modifications respectively. Both arms select components from component repository and finally assemble them for Component based software development that is represented by upper right arm of the X model.
X model provides scope for system development with component modification as well as without component modification with is shown in lower left and lower right arm of X model in Fig. Jason et. This model coarsely divides the whole process into two parts i.
The individual phases of each part are shown in Fig. They also provided tenets of design science followed in successive phases of development. The component development is often carried out by third party commercial developers and they are developed in such a way that their architecture is well defined in terms of required inputs and outputs for proper functionality with other components. Component fabrication deals with testing the component in external environment to check its reusability.
Component selection phase of system development is directly linked to component development part. This model promises the separation between the two types of development but lacks the concern for component modification and overall system verification and validation. In , Knot model  came into existence which was focused towards reusability, modularity and risk analysis. Out of these phases, modification of existing components is an iterative phase which deals with selecting the component from component pool, adapting and testing it according to system architecture and receiving feedback.
Emergence of Component Based Software Engineering
Show all documents The various principles, procedures, methods and tools will be used similar way in CBSE. The Domain Engineering emphasizes with aim of finding functional, behavioural and data components for reuse which are stored in the Capability Knowledge Base CKB and reuse libraries. The area of domain engineering targeted to three major activities like Analysis, construction and dissemination of components for existing and future use. Component Software development focuses on the proper component identification, verification and forming the relations between them.
Industry is moving towards components based software development. Component is a ready-made code or reusable code. The advantage of component based development process is development time and cost both will be reduces. In the hardware development process, components are directly used in the project without changes but in the software development, project to project the functionality will be differ. So the components are customized rather than direct use. To develop large and complex system from scratch, it requires more number of resources such as time, money, and manpower.
Product development in software product lines is organized into two stages: domain engineering and application engineering with reuse of.
Component-Based Software Engineering
Component-based software engineering CBSE , also called components-based development CBD , is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system. It is a reuse-based approach to defining, implementing and composing loosely coupled independent components into systems. This practice aims to bring about an equally wide-ranging degree of benefits in both the short-term and the long-term for the software itself and for organizations that sponsor such software. Software engineering practitioners regard components as part of the starting platform for service-orientation.
Component-Based Development CBD has been broadly used in software development, as it enhances reusability and flexibility, and reduces the costs and risks involved in systems development. On the other hand, in order to gain a competitive edge, organizations need to define custom processes tailored to fit their specific development requirements. This has led to the emergence of process patterns and Method Engineering approaches. We propose a set of process patterns commonly encountered in component-based development methodologies.
The development of high quality software is the need of current technology driven world. CBSE is mainly based on the concept of reusability. Apart from these CBSE has several advantages as well as challenges which are summarized in this paper. Large and complex software development requires management of reusable components and can be selected from component repository and assembled to obtain a working application.
Component-based software engineering
Component-based software enginering and software architectire is an emerging research area. It encompasses the traditional area of software design with an emphasis on the design of distributed systems. Based on the past failures of complex design techniques to gain wide spread acceptance, CBSE and software architecture languages must demonstrate that they provide significant value. A primary benefit will be the early detection of software faults. This is particularly important for distributed systems, since even simple distributed systems can be difficult to understand.
So, All of authors and contributors must check their papers before submission to making assurance of following our anti-plagiarism policies. Component-based software engineering approach to software development employs the techniques of selecting reliable and reusable software components and assembling them within appropriate software architecture to form a robust software system. This approach is unique because it brings about designs that make a clear separation between the stable parts of the system from the specification of their composition. The rising need of software in 21st century is indeed of a great concern. In view of the increase in demand for software, software engineers need a proactive and pragmatic approach that will handle the situation on ground. Although object oriented approach helped in giving birth to software that reflect the object of the problem domain, the approach does not necessarily produce software architectures that can easily adapt to the changing requirements of users in this 21st century.
Skip to search form Skip to main content You are currently offline. Some features of the site may not work correctly. Component Based Approach has been introduced in core engineering discipline long back but the introduction to component based concept in software perspective is recently developed by Object Management Group. Its benefits from the re-usability point of view is enormous. The intertwining relationship of domain engineering with component based software engineering is analyzed. The object oriented approach and its basic difference with component approach is of great concern. View PDF on arXiv.
Беккер снова вздохнул, решительно подошел к двери и громко постучал. Пора переходить к решительным действиям. Немец рывком открыл дверь и собрался было закричать, но Беккер его опередил. Помахав карточкой теннисного клуба Мериленда, он рявкнул: - Полиция. После чего вошел в номер и включил свет. Немец не ожидал такого оборота. - Wasmachst… - Помолчите! - Беккер перешел на английский.