Software Product Line

Top PDF Software Product Line:

Managing Software Product Line

Managing Software Product Line

1.1 Problem Definition A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way [1]. The concept of software product line has become an attractive phenomenon within organizations dealing with software development process. The inception, elaboration and construction phase of software product line requires a careful strategy to implement this concept. Organizations trying to incorporate this concept require certain rules to be followed for effective development and management of software product line. There is a need of defining and summarizing all the necessary guidelines and principles for software product line development and management activities as rules so that they should be strictly and religiously followed for successful outcome of efforts. F 2 - Rules covers all the possible aspects of developing and managing a software product line in an organization effectively.
Show more

7 Read more

Software Product Line Engineering

Software Product Line Engineering

The component diagram is the most important diagram for the architecture. It is the main means to decompose the system according to the development view, incorporating the high-level decomposition of the software system into components and their relationships. Each component diagram is used to describe an internal design for a part of a layer or subsystem. Its design is mainly based upon experience and partially dependent on the set of require- ments to be fulfilled. In addition, the architect takes into account the general principles of complexity management, resulting in layered abstractions, and of the divide-and-conquer strategy. To enable this, the architect needs repre- sentations for layers and subsystems. The package diagram is not specifi- cally meant for this. Yet, since it is a means for clustering arbitrary elements, it is used to cluster components in subsystems and layers. An important quality characteristic of software engineering (and in particular of software product line engineering) is to design for flexibility, thereby enabling ease of adaptation. By putting similar functionality together in the same subsystem and component, changes are kept local, which is crucial for fast adaptations.
Show more

473 Read more

SPLConfig: Product Configuration in Software Product Line

SPLConfig: Product Configuration in Software Product Line

Abstract. Software product line (SPL) is a set of software systems that share a common set of features satisfying the specific needs of a particular market segment. A feature represents an increment in functionality relevant to some stakeholders. SPLs commonly use a feature model to capture and document common and varying features. The key challenge of using feature models is to derive a product configuration that satisfies all business and customer requirements. To address this challenge, this paper presents a tool, called SPLConfig, to support business during product configuration in SPL. Based on feature models, SPLConfig automatically finds an optimal product configuration that maximizes the customer satisfaction.
Show more

8 Read more

Keywords: - Software Product Lines (SPLs), Product Line Engineering (PLE), Core Assets, Software Product Line Development.

Keywords: - Software Product Lines (SPLs), Product Line Engineering (PLE), Core Assets, Software Product Line Development.

e) Weather Stations are also following this approach of product line. V. Conclusion SPLs are under research in various areas. Developing of common asset that include test cases, architecture, requirements, design, test plans, reusable software components and many other different artifacts. Individual products are developed from a set of common assets which can lead to increase the productivity, decrease the development effort, cost and time to market. Here it is concluded that Software Product line as an emerging technology being used also bears some disadvantages besides advantages. It has various tools and applications now days. Various companies are involving SPLs. The area needs more attention from the industry as there are more tools available in the academics as compared to the commercial category. The tool support is also significant as there are no standards available to manage the variability among family of products. In the future I will work on the involvement of Software Product Lines with Software Architectures that is Product Line Architectures (PLA), with component model using SPL sample as a creating feature model. In the end I, would like to thank my god, my guide, my family and friends for supporting me in each and every step while working within these areas and supporting for research work to continue.
Show more

6 Read more

A Framework for Software Product Line Engineering

A Framework for Software Product Line Engineering

2.5.2 Domain Variability Model The domain variability model defines the variability of the software product line. It defines what can vary, i.e. it introduces variation points for the prod- uct line. It also defines the types of variation offered for a particular vari- ation point, i.e. it defines the variants offered by the product line. Moreover, the domain variability model defines variability dependencies and variability constraints which have to be considered when deriving product line applica- tions. Last but not least, the domain variability model interrelates the vari- ability that exists in the various development artefacts such as variability in requirements artefacts, variability in design artefacts, variability in compo- nents, and variability in test artefacts. It thus supports the consistent defini- tion of variability in all domain artefacts.
Show more

21 Read more

Maturity of the Software Product Line Process

Maturity of the Software Product Line Process

Management: Management plays a vital role in successfully institutionalising the software product line within an organization, because it provides and coordinates the required infrastructure. Management activity involves essential processes carried out at technical and organizational levels to support the software product line process. It ensures that necessary resources must be available and well coordinated. The objective of “Technical Management” is to oversee the core asset and product development activities by ensuring that the groups who build core assets and the groups who build products are engaged in the required activities, and are following the processes defined for the product line [4]. Technical management plays a critical role in decision-making about the scope of software product line based on requirements. It handles the associated processes of software development. Northrop [11] summarized the responsibilities of organizational management, which are: structuring an organization, resource management and scheduling, cost control and communication. Organizational management deals in providing a funding model for the software product line in order to handle cost constraints associated with the project. It ensures a viable and accurate communication and operational path between essential activities of software product line development because the overall process is highly iterative in nature. The fundamental goal of the organizational management is to establish an adoption plan, which completely describes a strategy to achieve the goals of software product line within an organization. The major responsibility of the management is to ensure proper training of the people to become familiar with the software product line concepts and principles. Management deals with external
Show more

18 Read more

Configuration Management in a Software Product Line

Configuration Management in a Software Product Line

Abstract Software product lines offer a comprehensive strategy for successfully building products. This strategy also greatly expands the number and types of artifacts upon which that success depends. Managing these artifacts over the life- time of the product line requires a carefully structured set of configurations and a rigorously enforced change man- agement process. In this paper we present an approach to configuration management in a software product line orga- nization that has evolved from our work with several prod- uct line organizations. The approach, which is added to traditional configuration management practices, managing information, including changes, about assets and products ensuring that they are exactly what they were intended to be. We also briefly describe our technique for interacting with groups to design effective configuration management processes for software product lines.
Show more

9 Read more

Software Product Line: Survey of Tools

Software Product Line: Survey of Tools

Qaiser Munir Muhammad Shahid Abstract A software product line is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission. The main attractive part of SPL is developing a set of common assets which includes requirements, design, test plans, test cases, reusable software components and other artifacts. Tools for the development of software product line are very few in number. The purpose of these tools is to support the creation, maintenance and using different versions of product line artifacts. This requires a development environment that supports the management of assets and product development, processes and sharing of assets among different products.
Show more

59 Read more

Managing Product Variants in a Software Product Line with PTC Integrity

Managing Product Variants in a Software Product Line with PTC Integrity

Conclusion PTC Integrity allows organizations implementing SPL engineering practices to manage the complexities of product variants effectively and efficiently. PTC Integrity maintains a single physical copy of the common shared assets across a software product line. As such, PTC Integrity handles common requirements and other lifecycle assets much more efficiently than a traditional approach, which can dramatically increase the number of requirements – inviting error-prone duplication and dramatically increased cost. PTC Integrity also main- tains the traceability relationships between common, shared assets and variant-specific assets, providing teams a clear understanding of the relationships between specific variants and the shared core assets.
Show more

8 Read more

Experiences with software product line development in risk management software.

Experiences with software product line development in risk management software.

Dublin, Ireland. mel.ocinneide@ucd.ie Abstract—— Software Product Lines are intended to reduce time to market, improve quality and decrease costs. In this paper we examine the evolution of a single system to a Software Product Line, and evaluate if these benefits have occurred in this case. We describe in detail how this evolution took place and relate our experiences to those described in the current literature. Three tenets used by the company involved helped avoid some of the known pitfalls. A configurable core asset version of functionality is compared to the previous customizable version of the same functionality. From analyzing empirical data collected over a ten- year period, we find that efficiency and quality have improved, while costs have been reduced. The high initial investment associated with evolving to an SPL has been postponed by taking small steps towards an SPL architecture. In addition, this approach has enabled us to expand our product into a wider market and deal with more complex customer requirements without incurring a corresponding increase in staffing and costs.
Show more

10 Read more

Systematic evaluation of software product line architectures

Systematic evaluation of software product line architectures

(The Open University, Milton Keynes, United Kingdom l.barroca@open.ac.uk) Abstract: The architecture of a software product line is one of its most important artifacts as it represents an abstraction of the products that can be generated. It is cru- cial to evaluate the quality attributes of a product line architecture in order to: increase the productivity of the product line process and the quality of the products; provide a means to understand the potential behavior of the products and, consequently, decrease their time to market; and, improve the handling of the product line variability. The evaluation of product line architecture can serve as a basis to analyze the managerial and economical values of a product line for software managers and architects. Most of the current research on the evaluation of product line architecture does not take into account metrics directly obtained from UML models and their variabilities; the met- rics used instead are difficult to be applied in general and to be used for quantitative analysis. This paper presents a Systematic Evaluation Method for UML-based Soft- ware Product Line Architecture, the SystEM-PLA. SystEM-PLA differs from current research as it provides stakeholders with a means to: (i) estimate and analyze potential products; (ii) use predefined basic UML-based metrics to compose quality attribute metrics; (iii) perform feasibility and trade-off analysis of a product line architecture with respect to its quality attributes; and, (iv) make the evaluation of product line architecture more flexible. An example using the SEI’s Arcade Game Maker (AGM) product line is presented as a proof of concept, illustrating SystEM-PLA activities.
Show more

29 Read more

PL-Science: A Scientific Software Product Line

PL-Science: A Scientific Software Product Line

1. Introduction Software families, also named Software Product Line (SPL) a common set of features which are managed to satisfy specific needs of a particular market segment or mission and that are developed from a common set of cor ]. When the SPL approach is used, it is necessary to emphasize the importance of the domain model specification. Through domain models, we can express SPL variabilities which differentiate a given application from another in the same domain. To represent these variabilities, we can use domain models such as, feature models, ontological models or profiled UML class diagrams. Each of these models has its advantages and disadvantages to support variability and
Show more

10 Read more

A Practical High Volume Software Product Line

A Practical High Volume Software Product Line

Extension – No matter how well a collection of Domain Specific Languages are designed, eventually there will be edge cases that are not worth describing within a DSL*. Because of this it is important to include extension points in any Software Product Line so that any given application can be extended with custom GPL code. The most common approaches to extension are inheritance, events and AOP, although protected blocks and (in some GPLs) mixins can also be used for extending/overloading generated code with custom functionality[1].
Show more

10 Read more

Quality aware software product line engineering

Quality aware software product line engineering

While working on domain engineering phase, all the requirements of the products must be taken into account, including quality attribute requirements such as performance, reliability, usability, etc. However, “research in the field of software product lines has primarily focused on analysis, design, and implementation to date and only very few results address the quality assurance problems and challenges that arise in a reuse context” [32]. In a software product line, quality attribute requirements have also variability, because not all the products require the same level of security, performance, etc. This aspect has also been neglected or ignored by most of the researchers as attention has been mainly put in the variability to ensure that it is possible to get all the functionality of the products.
Show more

13 Read more

Developing a subdomain-oriented software product line

Developing a subdomain-oriented software product line

2 A Subdomain-Oriented Software Product Line Methodology Our development methodology combines advantages of several methodologies widely referenced in academy and industry [3, 5, 6, 8] and extend them in order to apply a subdomain view which guides the development of a software prod- uct line. Figure 1 shows the main activities of the methodology concerning the domain engineering phase. This phase is divided into two levels: subdomain and organizational. At the first level we define three processes which impact directly on the activities defined at the second level. The colored in gray rectangles in the figure denote the processes of the subdomain analysis and their influence into the activities of the organizational analysis. The processes of this subdo- main level collect and model information concerning the particularities of the marine ecology domain. On the other hand, at the organizational level, the sub- domain information is used to be applied to an organizational analysis in which organizations within the subdomain are analyzed. The information modeled and implemented at the organizational level will be a subset of the information cap- tured at the subdomain level.
Show more

10 Read more

MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS

MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS

2 Department of Software Engineering, Daffodil International University, Bangladesh A BSTRACT Modelling software product line (SPL) features plays a crucial role to a successful development of SPL. Feature diagram is one of the widely used notations to model SPL variants. However, there is a lack of precisely defined formal notations for representing and verifying such models. This paper presents an approach that we adopt to model SPL variants by using UML and subsequently verify them by using first- order logic. UML provides an overall modelling view of the system. First-order logic provides a precise and rigorous interpretation of the feature diagrams. We model variants and their dependencies by using propositional connectives and build logical expressions. These expressions are then validated by the Alloy verification tool. The analysis and verification process is illustrated by using Computer Aided Dispatch (CAD) system.
Show more

13 Read more

Reducing Configurations to Monitor in a Software Product Line

Reducing Configurations to Monitor in a Software Product Line

bodden@st.informatik.tu-darmstadt.de Abstract. A software product line is a family of programs where each program is defined by a unique combination of features. Product lines, like conventional programs, can be checked for safety properties through execution monitoring. However, because a product line induces a number of programs that is potentially exponential in the number of features, it would be very expensive to use existing monitoring techniques: one would have to apply those techniques to every single program. Doing so would also be wasteful because many programs can provably never violate the stated property. We introduce a monitoring technique dedicated to prod- uct lines that, given a safety property, statically determines the feature combinations that cannot possibly violate the property, thus reducing the number of programs to monitor. Experiments show that our tech- nique is effective, particularly for safety properties that crosscut many optional features.
Show more

15 Read more

A Configuration Management Model for Software Product Line

A Configuration Management Model for Software Product Line

Little Rock, AR 72204, USA srini@acm.org ABSTRACT. Software Product Line has proved to be an effective approach to benefit from software reuse. Configuration management, an integral part of any software development activity, takes on a special significance in software product line context. This is due to the special property of software product line, in which the core assets are shared by all products. In this paper, we compare the existing configuration management models and analyze the artifacts that need to be configuration managed in software product line. We then present an evolution-based configuration management model for software product line, in which, the configuration management is divided into two domains, the production domain and the product domain. In this model, the evolution propagation of corrective changes and enhancement changes on different configuration artifacts follow different paths. The advantages and the constraints of this model are also discussed.
Show more

8 Read more

EMPIRICAL EVALUATION IN SOFTWARE PRODUCT LINE ENGINEERING

EMPIRICAL EVALUATION IN SOFTWARE PRODUCT LINE ENGINEERING

using practitioners and industrial sized examples). It is further recommended to use case studies to increase the degree of realism as case studies are suitable for industrial evaluations [27]. Further supporting the information tabled in Table 21, the information presented in Figure 5 shows that experiments and case studies are the dominating choice of research methods among researchers; whereas, action research, surveys, and post-mortem analysis are rarely used. Figure 5 shows most evaluations are conducted in Academia and most evaluations are conducted using industrial sized examples. The distribution of Figure 5 also confirms that experimental evaluations are typically performed in an academic setting whereas case studies are typically performed in an industrial setting. A common acknowledgment is shared between [27][37][50] and supports the findings that case studies by definition are empirical investigations of a phenomenon within a real- world context and experiments are empirical investigations of a theory or hypotheses testing within a controlled environment (i.e. classroom). Case studies are further classified in [27] as being very suitable for industrial evaluations because they can avoid scalability issues while sampling from variables representing a typical situation; however, [27] also acknowledges that the results of case study are difficult to generalize thus affecting the external validity of the evaluation. Experimental evaluations have higher validity than case studies because of their controlled environments [27][37][50]; however, like case studies, experiments also have a difficulty generalizing results [50]. It is also reported in [50] that the software engineering community holds a common agreement that most experiments do not resemble an industrial situation. Therefore, the ideal goal would be to increase the validity of software product line methods, techniques, and approaches by conducting more experiments in an industrial setting.
Show more

52 Read more

From Agile Software Product Line Engineering Towards Software Ecosystems

From Agile Software Product Line Engineering Towards Software Ecosystems

This thesis summarizes about five years of studies of a software product line organization called CSoft a pseudonym1, and shows how they have progressed from a plan-based and closed proc[r]

190 Read more

Show all 10000 documents...