1.1 Problem Definition
A softwareproductline 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 . The concept of softwareproductline has become an attractive phenomenon within organizations dealing with software development process. The inception, elaboration and construction phase of softwareproductline 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 softwareproductline. There is a need of defining and summarizing all the necessary guidelines and principles for softwareproductline 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 softwareproductline in an organization effectively.
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 softwareproductline 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.
Abstract. Softwareproductline (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.
e) Weather Stations are also following this approach of productline.
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 SoftwareProductline 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 SoftwareProduct Lines with Software Architectures that is ProductLine 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.
2.5.2 Domain Variability Model
The domain variability model defines the variability of the softwareproductline. 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 productline. Moreover, the domain variability model defines variability dependencies and variability constraints which have to be considered when deriving productline 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.
Management: Management plays a vital role in successfully institutionalising the softwareproductline 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 softwareproductline 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 productline . Technical management plays a critical role in decision-making about the scope of softwareproductline based on requirements. It handles the associated processes of software development. Northrop  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 softwareproductline in order to handle cost constraints associated with the project. It ensures a viable and accurate communication and operational path between essential activities of softwareproductline 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 softwareproductline within an organization. The major responsibility of the management is to ensure proper training of the people to become familiar with the softwareproductline concepts and principles. Management deals with external
Softwareproduct 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 productline 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 softwareproductline 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 softwareproduct lines.
Qaiser Munir Muhammad Shahid
A softwareproductline 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 softwareproductline are very few in number. The purpose of these tools is to support the creation, maintenance and using different versions of productline artifacts. This requires a development environment that supports the management of assets and product development, processes and sharing of assets among different products.
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 softwareproductline. 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.
Abstract— SoftwareProduct 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 SoftwareProductLine, 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.
(The Open University, Milton Keynes, United Kingdom email@example.com)
Abstract: The architecture of a softwareproductline 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 productline architecture in order to: increase the productivity of the productline 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 productline variability. The evaluation of productline architecture can serve as a basis to analyze the managerial and economical values of a productline for software managers and architects. Most of the current research on the evaluation of productline architecture does not take into account metrics directly obtained from UML models and their variabilities; the met- rics used instead are diﬃcult to be applied in general and to be used for quantitative analysis. This paper presents a Systematic Evaluation Method for UML-based Soft- ware ProductLine Architecture, the SystEM-PLA. SystEM-PLA diﬀers from current research as it provides stakeholders with a means to: (i) estimate and analyze potential products; (ii) use predeﬁned basic UML-based metrics to compose quality attribute metrics; (iii) perform feasibility and trade-oﬀ analysis of a productline architecture with respect to its quality attributes; and, (iv) make the evaluation of productline architecture more ﬂexible. An example using the SEI’s Arcade Game Maker (AGM) productline is presented as a proof of concept, illustrating SystEM-PLA activities.
Software families, also named SoftwareProductLine (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
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 SoftwareProductLine 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.
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 softwareproduct 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” . In a softwareproductline, 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.
2 A Subdomain-Oriented SoftwareProductLine 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.
2 Department of Software Engineering, Daffodil International University, Bangladesh
Modelling softwareproductline (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.
Abstract. A softwareproductline 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 productline 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.
Little Rock, AR 72204, USA firstname.lastname@example.org
ABSTRACT. SoftwareProductLine 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 softwareproductline context. This is due to the special property of softwareproductline, 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 softwareproductline. We then present an evolution-based configuration management model for softwareproductline, 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.
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 .
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  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  as being very suitable for industrial evaluations because they can avoid scalability issues while sampling from variables representing a typical situation; however,  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 ; however, like case studies, experiments also have a difficulty generalizing results . It is also reported in  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 softwareproductline methods, techniques, and approaches by conducting more experiments in an industrial setting.