Software Product Line
Software Product Line
Introduction.......................................................................................................................................3
Aspects to Product Lines................................................................................................................3
Art studio (theoretical framework)....................................................................................................5
Domain-specific modeling (DSM).......................................................................................................6
Elements of the Domain Model.....................................................................................................8
Domain Model Construction Process.............................................................................................8
Tool support for DSM.......................................................................................................................12
Interoperability.........................................................................................................................13
Conclusions......................................................................................................................................15
REFERENCES.....................................................................................................................................17
1
Introduction
Domain information for a product line will help you determine: [9]
Which capabilities tend to be common across systems in the domain and what
variations are present. This information will inform the process of scoping, in which
the commonality and variations for your product line will be established.
Which subsets of capabilities might be packaged together as assets for the product
line? This information begins to inform the architecture creation effort for the
product line, by suggesting potential subsystems that have occurred in other systems
in the domain.
Which assets typically constitute members of the domain? This suggests a list of
assets that an organization could begin to search for in its own legacy inventory or
on the open market.
Domain analysis, or product line analysis, is the process of analyzing related software
systems in a domain to find their common and variable parts. It is a model of wider
2
business context for the system. The term was coined in the early 1980s by James
Neighbors.[1] [2]
Domain analysis is the first phase of domain engineering. It is a key method for
realizing systematic software reuse. [3]
Domain analysis produces domain models using methodologies such as domain specific
languages, feature tables, facet tables, facet templates, and generic architectures, which
describe all of the systems in a domain. Several methodologies for domain analysis have
been proposed. [4]
For this we use a method called domain specific modeling which will help us
understand a type of modeling for software product lines
In this paper we will study and understand the artifacts that use this method for
modeling software product lines.
3
Art studio (theoretical framework)
The investigation is viable and that the references consulted are important sources
such as sei, ibm, etc.
DSM differs from earlier code generation attempts in the CASE tools of the 1980s
or UML tools of the 1990s. In both of these, the code generators and modeling languages
were built by tool vendors. While it is possible for a tool vendor to create a DSM language
and generators, it is more normal for DSM to occur within one organization. [16]
[5][1][2][4], “
Northrop and Clements, Neighbors J.M., Frakes W.B. and Kyo Kang a
software product line is a set of software intensive systems that share a managed set of
characteristics, and that satisfies the needs of a particular market segment or mission, being
developed using a set of common core assets in a preestablished fashion.”
Dennis de Champeaux, Douglas Lea, and Penelope Faure [3] “Domain analysis is the
first phase of domain engineering. It is a key method for realizing systematic software
reuse”
Domain-Specific Modeling (DSM) can raise the level of abstraction beyond coding
by specifying programs directly using domain concepts. The final products can then be
generated from these high-level specifications. This automation is possible because the
4
modeling language and generator only need to fit the requirements of one domain, often in
only one company. [14],[15]
Being free from the manual creation and maintenance of source code means DSM
can significantly improve developer productivity. The reliability of automatic generation
compared to manual coding will also reduce the number of defects in the resulting
programs thus improving quality.
Having the modeling language and generator built by the organization that will use
them allows a tight fit with their exact domain and needs. It also reduces the time needed
for developers to learn the modeling language, since it can use familiar terms and concepts.
Finally, since only one organization's requirements need be taken into account, it is
easier for the modeling language to evolve in response to changes in the domain.
DSM languages can usually cover a range of abstraction levels for a particular domain.
Tolvanen identifies over 20 industrial cases in which this approach has been
successfully applied to target languages such as C, C++, Java 2 Platform, Enterprise
Edition (J2EE), and Extensible Markup Language (XML).
5
The domains of these industries include telecom services, insurance, medical
device configuration, handheld devices, machine control, and business processes.
An application area
A business area
A software business area
A software intensive application area
An application area for which similar software systems have been built
Variability is the key aspect of SPL that must be considered when analyzing models
and as it was previously mentioned, embedded SPL may have diverse variability issues:
Some functionality may vary from one product of the line to another. Not all
products of the product line have the same functionalities.
Two products with the same functionality may require different quality attributes, as
well as the priority or degree of them. Impacts may also arise among different
quality attributes and/or other variability issues.
6
Elements of the Domain Model
The Domain model structure is based on features, goals, scenarios and lexicon.
7
The business goal establishes the purpose for developing products as a family. This
goal is unique for the whole SPL, but there may be several particular goals.
Features are those data storage, parameters or functionalities identified for the
potential products in the SPL; they may be common, optional or alternative.
The lexicon involves terms necessary for understanding the domain and they can be
any relevant thing into the domain.
Activity diagram for building the domain model. The domain expert and the domain
analyst should interact in order to identify and specify goals, features, scenarios, actions,
and terms of the lexicon as well as their relationships considering information from the
stakeholders (included domain expert and analyst), available components developed in the
domain, external information and systems.
8
Identifying information
Depelopment Artifacts
9
DSM can support UML Diagrams:
1.-Sequence diagram
2.-Communication diagram, a simplified version of the Collaboration Diagram
2.-Timing diagram
3.-Global interaction diagram or interaction diagram view
The DSL (Domain Specific Language) is the underlying model for a domain to
perform DSM, and it is generally captured in the form of a meta-model or final model
domain.
One or a few expert developers create the modeling language and generators, and
the rest of the developers use them.
10
Example for Domain Model
For this case we need to model a large domain as the CASE tools provides us with a
limited solution so this is based on a tool that has the same base and Eclipse specific
particularities called ActifSource.
11
The main basis of its construction is eclipse.
Interoperability
Actifsource can use models from other modeling tools by importing and exporting
the ecore format which is defined by the Eclipse Modeling Framework.
12
Design of a Meta-Model Specific Domain with extensions
Actifsource allows you to manage your feature structure and generate all structural
code artifacts and their interdependencies needed to build your complex software-system
The tool is based on obtaining the business Goals, as well as information from
stakeholders and information from existing systems and processes for the development of
artifacts.
It will be useful for many types of software engineers and administrators, as well as
domain analysts.
13
Conclusions
Using the DSM based approach a decision support system with appropriate
visualization can be realized cost efficient.
Domain-specific modeling is most often used only in the design phase of software
development process
We are said to be a reliable method because of the variety of tools that support it as
CASE tools provides us with a great framework and good development.
This method is a very broad area of opportunity in the development of software engineering
in SPL mode, but in this case we use the tool because of its high coupling actifsource the
modeling domain
Product line analysis applies established modeling techniques to engineer the
requirements for a product line of software-intensive systems.
We are able to develop the information provided various faces to go with such a
final domain model, in which we specify what we have and we can work around that.
The tool allows us to model Actifsource domain models since it has the ability to
process business Goals and information provided by stakeholders, as well as information
needs of existing systems, if they exist.
14
This method is very useful, as it helps us a good development of the SPL, and
provides us a very broad framework, as well as a range of tools for its implementation.
15
REFERENCES
[1] Neighbors, J.M. Software Construction using Components. Technical Report 160,
Department of Information and Computer Sciences, University of California, Irvine.
[2] Neighbors, J.M. "The Draco Approach to Constructing Software from Reusable
Components". IEEE Transactions of Software Engineering, SE-10(5)
[3] Dennis de Champeaux, Douglas Lea, and Penelope Faure (1993). Domain Analysis,
chapter 13, Object-Oriented System Development. Addison Wesley. ISBN 0-201-56355-X.
[4] Frakes, W.B. and Kyo Kang, (2005), "Software Reuse Research: Status and Future",
IEEE Transactions on Software Engineering, 31(7), July, pp. 529-536.
[5] L. Northrop and P. Clements. A Framework for Software Product Line Practice,
version 5.0. http://www.sei.cmu.edu/productlines/frame_report/
[9] http://www.sei.cmu.edu/productlines/frame_report/rel_domains.htm
16
[10] K. Czarnecki and U. W. Eisenecker. Generative Programming. Methods, Tools, and
Applications. Addison Wesley
[12] A Systematic Process for Defining Meshing Tool Software Product Line Domain
Model. Pedro O. Rossel, Departamento de Ingeniería Informática, Universidad Católica de
la Santísima Concepción Alonso de Ribera 2850, Concepción, Chile [email protected]
[13] http://en.wikipedia.org/wiki/Computer-aided_software_engineering
[14] Pohjonen, R., Kelly, S., Domain-Specific Modeling, Dr. Dobb’s Journal
[16] Kelly, S. and Tolvanen, J.-P., (2008) Domain-Specific Modeling: Enabling Full
Code Generation, John Wiley & Sons, New Jersey. ISBN 978-0-470-03666-2
17