Rent from DeepDyve. If you think you should have access to this content, click to contact our support team. Contact us. Please note you do not have access to teaching notes. Other access options You may be able to access teaching notes by logging in via your Emerald profile. Practical implications — The model has the potential to tremendously increase software engineers' productivity. Join us on our journey Platform update page Visit emeraldpublishing.
It means that any operation of ,component This relation associates a , component The , context These relationships are vital for data mining — the automated extraction of hidden predictive information from large data sets, such as reusable library of software assets.
Component assembly g The decisions involving the reuse of a component are very important in that the in software engineer must select the component that requires the least effort to adapt, h is with an exact match between what is needed and what is available being the goal.
Following a procedure which helps select potentially reusable components is vital to the reuse process. The procedure described in Figure 4 shows a typical attempt to reuse a component from a reusable library. The procedure describes only the selection and adaptation of reusable components.
While searching for components it is also necessary to address the similarity between the required target component and any near matching components. The best component selected for reuse may also require specialization, generalization or adjustment to the requirements of the new software system in which it will be reused. Sometimes, it is preferable to change the requirements in order to reuse the available components.
The process of adapting components is h is the least likely to become automated in the software reuse process. The COTS life cycle As COTS-based software is produced essentially out of interrelated collections of p independently developed components, it is important to understand the stages that u ro such components go through. The stages reflect the activities involving the design, implementation, verification, classification, storage, selection, retrieval, and adaptation G of the component.
Figure 5 shows the lifetime of a reusable component. When a software er system has been developed, the software engineer may realise that some components m can be generalized for potential reuse in future projects. Therefore, COTS-based developing reusable components is considerable more difficult and involves much software product greater expense then producing ordinary components, although it may still be worth the investment over the longer term.
The validation is applied only to that component, not to the whole software system and should include treatment of exceptional conditions. Classification of components depends on the experience of the software engineer, and storage issues are straightforward.
By properly storing a component using the relations proposed previously, the chances of finding potentially reusable components are increased. The effort required to get a suitable component is reduced because the d classification scheme based on relations guides the software engineer through the ite various relations quickly and efficiently. Selection involves browsing to find a component, retrieving it, and transferring it from the reusable assets g in library to the SPL.
On the is contrary, usually, components selected and derived from reusable libraries are bl combined with newly-written components, and all of them have to be bound together in Pu the final software.
It is natural that with some of the components, the software designer will face the decision of whether to reuse them straightforwardly, adapt them then p reuse, or write them from scratch. The break-even point of reusing versus redoing is u ro where the cost of search plus adaptation exceeds the cost of producing the respective G component. Following the Y-model: a case study er One day while Luiz, Faheem, Shereef, and Zaher were busy in discussions about how they m could evaluate the Y-model, somebody knocked at the office door.
He seemed to be upset. You guys have to help me either to establish a product line or to find a new job. Luiz glanced at Shereef and Faheem and all came to the same conclusion that here was the test bed for the Y-model. The domain engineering phase will carry out certain activities in the product line infrastructure view and COTS archive view to do that job.
Tell me what kind of products you want to produce from this product line. It confuses me. Explain to me u ro what you want to know. It was Zaher and he was anxious to tell us what he had found. Zaher was delighted to tell us he had a huge list of these things. In the meantime, please coordinate with Zaher and evaluate the COTS to ensure that they are fulfilling our product line requirements and make different categories of them. Which product do you want to develop first?
We are going to start assembly and query activities. And we need to evaluate the business case. I will ask my boss to look at it and evaluate this business d al case.
We did a quick exercise to explain to you the various steps of the Y-model. Now you have to go through carefully all these steps in your office and understand the various views of the Y-model. You will need to establish a team and let them understand the collaboration protocols.
Lucas left with high hopes and after few days conveyed to us that he has established a COTS-based SPL in his office and has produced four e-commerce applications so far and is in the process of producing more. There is still a need for tools to support the management of software families, which line development are specific to particular application domains.
A software family comprises a group of software systems that expresses a general solution for a family of related applications in that application domain.
Therefore, a component will not be as generally useful outside the application domain because it contains domain-dependent components. However, it is sometimes beneficial to adapt the developing software so that it fits into a software family, resulting in a tremendous gain in productivity.
The interdependence of various ite activities of SPL and COTS shows a strong relationship within a common framework m of product development. In order to validate the model, we conducted a case study Li based on e-commerce application, which revealed that productivity, in terms of cost, time and quality, increased when we followed the Y-model for COTS-based SPL.
The shift from custom development to software family is occurring in is both new development and maintenance activities. If done properly, this shift can help establish a sustainable practice. We believe that SPLs and COTS-based development encompass the best practices of p software engineering and hold the promise of improving the quality of software as well u ro as the productivity of software engineers.
G d References al er Ahmed, F. E Buckle, G. Capretz, L. Clement, P. Google , Google Code Search Engine, available at: www. Jazayeri, M. Weiss, D. A model of open source software-based product line development By Luiz Fernando Capretz.
Comparing practices for reuse in integration-oriented software product lines and large open source software projects By Christian Prehofer. Software Product Line SPL is at the forefront among the techniques for reducing costs, decreasing schedule time, and ensuring commonality of features across a family of products - as components off-the-shelf COTS are reused in multiple products.
A disciplined process for software product line development is still needed. The model put forward identifies and elaborates the essential phases and activities of software product line development from COTS-based repository.
The Y-model provides an efficient way of integrating the approaches of software product line and COTS-based development as a cohesive software development model.
0コメント