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 firstorder
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.
Bio inspired use case variability modelling, ijseaijseajournal
Background.Feature Model (FM) is the most important technique used to manage the variability through products in Software Product Lines (SPLs). Often, the SPLs requirements variability is by using variable use case modelwhich is a real challenge inactual approaches: large gap between their concepts and those of
real world leading to bad quality, poor supporting FM, and the variability does not cover all requirements modeling levels.
Aims. This paper proposes a bio-inspired use case variability modeling methodology dealing with the
above shortages.
Bio inspired use case variability modelling, ijseaijseajournal
Background.Feature Model (FM) is the most important technique used to manage the variability through products in Software Product Lines (SPLs). Often, the SPLs requirements variability is by using variable use case modelwhich is a real challenge inactual approaches: large gap between their concepts and those of
real world leading to bad quality, poor supporting FM, and the variability does not cover all requirements modeling levels.
Aims. This paper proposes a bio-inspired use case variability modeling methodology dealing with the
above shortages.
Minimal Testcase Generation for Object-Oriented Software with State Chartsijseajournal
Today statecharts are a de facto standard in industry for modeling system behavior. Test data generation is
one of the key issues in software testing. This paper proposes an reduction approach to test data generation
for the state-based software testing. In this paper, first state transition graph is derived from state chart
diagram. Then, all the required information are extracted from the state chart diagram. Then, test cases
are generated. Lastly, a set of test cases are minimized by calculating the node coverage for each test case.
It is also determined that which test cases are covered by other test cases. The advantage of our test
generation technique is that it optimizes test coverage by minimizing time and cost. The present test data
generation scheme generates test cases which satisfy transition path coverage criteria, path coverage
criteria and action coverage criteria. A case study on Railway Ticket Vending Machine (RTVM) has been
presented to illustrate our approach.
In this Business Analysis Training, you will learn UML And Use Case Study. Topics covered in this session are:
• UML - Unified Modeling Language
• Modeling
• Why UML for Modeling
• Object Oriented Concepts
• Object Oriented Modeling
• Basic Building blocks -UML
• Overview of UML Diagrams
• UML Diagrams - Basic Notations
• UML Diagrams - Relationships
• UML Diagrams - Structural diagram
• UML Diagrams - Behavioral diagram
• UML Diagrams - Architectural
For more information, click on this link:
https://www.mindsmapped.com/courses/business-analysis/fundamentals-of-business-analysis/
Crosscutting Specification Interference Detection at Aspect Oriented UML-Base...IJERA Editor
In aspect oriented development, obliviousness is one of its pillars as it helps developers to implement crosscutting concerns via aspects, which increases the overall software modularity. Despite of its merits, obliviousness brings the problem of interferences among aspects as several aspects pointcuts may address the same joinpoint for the same advice. Existing approaches deals with conflicts at design level use graphs structures, which increase in size as project size increases. In this work, a relational database model is used to map aspect oriented design models and then conflicts are extracted by an algorithm runs over this database. This approach is simpler than other approaches and enables large project sizes while the other approaches get complicated due to increment in graph size. The proposed approach can be extended to the distributed team development, dependent on the database engine used.
To Get any Project for CSE, IT ECE, EEE Contact Me @ 09849539085, 09966235788 or mail us - ieeefinalsemprojects@gmail.com-Visit Our Website: www.finalyearprojects.org
Minimal Testcase Generation for Object-Oriented Software with State Chartsijseajournal
Today statecharts are a de facto standard in industry for modeling system behavior. Test data generation is
one of the key issues in software testing. This paper proposes an reduction approach to test data generation
for the state-based software testing. In this paper, first state transition graph is derived from state chart
diagram. Then, all the required information are extracted from the state chart diagram. Then, test cases
are generated. Lastly, a set of test cases are minimized by calculating the node coverage for each test case.
It is also determined that which test cases are covered by other test cases. The advantage of our test
generation technique is that it optimizes test coverage by minimizing time and cost. The present test data
generation scheme generates test cases which satisfy transition path coverage criteria, path coverage
criteria and action coverage criteria. A case study on Railway Ticket Vending Machine (RTVM) has been
presented to illustrate our approach.
In this Business Analysis Training, you will learn UML And Use Case Study. Topics covered in this session are:
• UML - Unified Modeling Language
• Modeling
• Why UML for Modeling
• Object Oriented Concepts
• Object Oriented Modeling
• Basic Building blocks -UML
• Overview of UML Diagrams
• UML Diagrams - Basic Notations
• UML Diagrams - Relationships
• UML Diagrams - Structural diagram
• UML Diagrams - Behavioral diagram
• UML Diagrams - Architectural
For more information, click on this link:
https://www.mindsmapped.com/courses/business-analysis/fundamentals-of-business-analysis/
Crosscutting Specification Interference Detection at Aspect Oriented UML-Base...IJERA Editor
In aspect oriented development, obliviousness is one of its pillars as it helps developers to implement crosscutting concerns via aspects, which increases the overall software modularity. Despite of its merits, obliviousness brings the problem of interferences among aspects as several aspects pointcuts may address the same joinpoint for the same advice. Existing approaches deals with conflicts at design level use graphs structures, which increase in size as project size increases. In this work, a relational database model is used to map aspect oriented design models and then conflicts are extracted by an algorithm runs over this database. This approach is simpler than other approaches and enables large project sizes while the other approaches get complicated due to increment in graph size. The proposed approach can be extended to the distributed team development, dependent on the database engine used.
To Get any Project for CSE, IT ECE, EEE Contact Me @ 09849539085, 09966235788 or mail us - ieeefinalsemprojects@gmail.com-Visit Our Website: www.finalyearprojects.org
To Get any Project for CSE, IT ECE, EEE Contact Me @ 09849539085, 09966235788 or mail us - ieeefinalsemprojects@gmail.com-Visit Our Website: www.finalyearprojects.org
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Collaboration in multicloud computing e...IEEEGLOBALSOFTTECHNOLOGIES
To Get any Project for CSE, IT ECE, EEE Contact Me @ 09849539085, 09966235788 or mail us - ieeefinalsemprojects@gmail.com-Visit Our Website: www.finalyearprojects.org
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Mining contracts for business events an...IEEEGLOBALSOFTTECHNOLOGIES
To Get any Project for CSE, IT ECE, EEE Contact Me @ 09849539085, 09966235788 or mail us - ieeefinalsemprojects@gmail.com-Visit Our Website: www.finalyearprojects.org
Los abdominales hipopresivos reducen la cintura pues contrae la faja abdominal de forma no voluntaria. Estos ejercicios logran que la barriga entre sola sin que hagas ningún esfuerzo para esconderla. Esto aumenta el tono de reposo de tu faja abdominal. En relajación te verás con un abdomen más plano y duro. La barriga que te observas por la mañana desaparecerá.
A SECURE BLOCK PERMUTATION IMAGE STEGANOGRAPHY ALGORITHMijcisjournal
Steganography is the art of hiding confidential information (secret) within any media file (cover media) to
produce an amalgamated secret-cover media called stego media, so that the secret cannot be recognized or
recovered by unauthorized recipients. Many steganalysis techniques have been developed enabling
recognition of the existence of secrets within stego media and recovering it. Therefore, it is necessary to
develop more secure steganography algorithms. This paper presents a detailed description of a new secure
Block Permutation Image Steganography (BPIS) algorithm. The algorithm converts the secret message to a
binary sequence, divides the binary sequence into blocks, permutes the block using a key-based randomly
generated permutation, concatenates the permuted blocks forming a permuted binary sequence, and then
utilizes the Least-Significant-Bit (LSB) approach to embed the permuted binary sequence into BMP image
file. The algorithm performance is investigated through performing a number of experiments, and for each
experiment the PSNR (Peak Signal-to-Noise Ratio) between the stego and cover images is calculated. The
results show that the algorithm provides high image quality, and invisibility, and most importantly higher
security as secret cannot be recovered without knowing the permutation, which has a complexity of O(N!),
where N is the length of the permutation.
Application Of UML In Real-Time Embedded Systemsijseajournal
The UML was designed as a graphical notation for use with object-oriented systems and applications.
Because of its popularity, now it is emerging in the field of embedded systems design as a modeling
language. The UML notation is useful in capturing the requirements, documenting the structure,
decomposing into objects and defining relationships between objects. It is a notational language that is
very useful in modelling the real-time embedded systems. This paper presents the requirements and
analysis modelling of a real-time embedded system related to a control system application for platform
stabilization using COMET method of design with UML notation. These applications involve designing of
electromechanical systems that are controlled by multi-processors.
Distributed Graphical User Interfaces to Class Diagram: Reverse Engineering A...ijseajournal
The graphical user interfaces of software programs are used by researchers in the soft-ware engineering
field to measure functionality, usability, durability, accessibility, and performance. This paper describes a
reverse engineering approach to transform the cap-tured images of the distributed GUIs into class
diagram. The processed distributed GUIs come from different and separate client computers. From the
distributed GUIs, the inter-faces are captured as images, attributes and functions are extracted and
processed through pattern recognitions mechanism to be stored into several temporary tables
corresponding to each client’s graphical user interface. These tables will be analyzed and processed into
one integrated normalized table eliminating any attribute redundancies. Further, the normalized the one
integrated table is to create a class diagram.
Modeling and Evaluation of Performance and Reliability of Component-based So...Editor IJCATR
Validation of software systems is very useful at the primary stages of their development cycle. Evaluation of functional
requirements is supported by clear and appropriate approaches, but there is no similar strategy for evaluation of non-functional requirements
(such as performance and reliability). Whereas establishing the non-functional requirements have significant effect on success of software
systems, therefore considerable necessities are needed for evaluation of non-functional requirements. Also, if the software performance has
been specified based on performance models, may be evaluated at the primary stages of software development cycle. Therefore, modeling
and evaluation of non-functional requirements in software architecture level, that are designed at the primary stages of software systems
development cycle and prior to implementation, will be very effective.
We propose an approach for evaluate the performance and reliability of software systems, based on formal models (hierarchical timed
colored petri nets) in software architecture level. In this approach, the software architecture is described by UML use case, activity and
component diagrams, then UML model is transformed to an executable model based on hierarchical timed colored petri nets (HTCPN) by a
proposed algorithm. Consequently, upon execution of an executive model and analysis of its results, non-functional requirements including
performance (such as response time) and reliability may be evaluated in software architecture level.
Testing and verification of software model through formal semantics a systema...eSAT Publishing House
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology
A review of slicing techniques in software engineeringSalam Shah
Program slice is the part of program that may take the program off the path of the
desired output at some point of its execution. Such point is known as the slicing criterion.
This point is generally identified at a location in a given program coupled with the subset
of variables of program. This process in which program slices are computed is called
program slicing. Weiser was the person who gave the original definition of program slice
in 1979. Since its first definition, many ideas related to the program slice have been
formulated along with the numerous numbers of techniques to compute program slice.
Meanwhile, distinction between the static slice and dynamic slice was also made.
Program slicing is now among the most useful techniques that can fetch the particular
elements of a program which are related to a particular computation. Quite a large
numbers of variants for the program slicing have been analyzed along with the
algorithms to compute the slice. Model based slicing split the large architectures of
software into smaller sub models during early stages of SDLC. Software testing is
regarded as an activity to evaluate the functionality and features of a system. It verifies
whether the system is meeting the requirement or not. A common practice now is to
extract the sub models out of the giant models based upon the slicing criteria. Process of
model based slicing is utilized to extract the desired lump out of slice diagram. This
specific survey focuses on slicing techniques in the fields of numerous programing
paradigms like web applications, object oriented, and components based. Owing to the
efforts of various researchers, this technique has been extended to numerous other
platforms that include debugging of program, program integration and analysis, testing
and maintenance of software, reengineering, and reverse engineering. This survey
portrays on the role of model based slicing and various techniques that are being taken
on to compute the slices.
an analysis and new methodology for reverse engineering of uml behavioralINFOGAIN PUBLICATION
The emergence of Unified Modeling Language (UML) as a standard for modeling systems has encouraged the use of automated software tools that facilitate the development process from analysis through coding. Reverse Engineering has become a viable method to measure an existing system and reconstruct the necessary model from its original. The Reverse Engineering of behavioral models consists in extracting high-level models that help understand the behavior of existing software systems. In this paper we present an ongoing work on extracting UML diagrams from object-oriented programming languages. we propose an approach for the reverse engineering of UML behavior from the analysis of execution traces produced dynamically by an object-oriented application using formal and semi-formal techniques for modeling the dynamic behavior of a system. Our methods show that this approach can produce UML behavioral diagrams in reasonable time and suggest that these diagrams are helpful in understanding the behavior of the underlying application.
Generation and Optimization of Test cases for Object-Oriented Software Using ...cscpconf
The process of testing any software system is an enormous task which is time consuming and
costly. The time and required effort to do sufficient testing grow, as the size and complexity of
the software grows, which may cause overrun of the project budget, delay in the development of
software system or some test cases may not be covered. During SDLC (software development
life cycle), generally the software testing phase takes around 40-70% of the time and cost. Statebased
testing is frequently used in software testing. Test data generation is one of the key issues
in software testing. A properly generated test suite may not only locate the errors in a software
system, but also help in reducing the high cost associated with software testing. It is often
desired that test data in the form of test sequences within a test suite can be automatically generated to achieve required test coverage. This paper proposes an optimization approach to test data generation for the state-based software testing. In this paper, first state transition graph is derived from state chart diagram. Then, all the required information are extracted from the state chart diagram. Then, test cases are generated. Lastly, a set of test cases are minimized by calculating the node coverage for each test case. It is also determined that which test cases are covered by other test cases. The advantage of our test generation technique is that it optimizes test coverage by minimizing time and cost. The proposed test data generation scheme generates test cases which satisfy transition path coverage criteria, path coverage criteria and action coverage criteria. A case study on Automatic Ticket Machine ( ATM ) has been presented to illustrate our approach.
Similar to MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS (20)
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Assuring Contact Center Experiences for Your Customers With ThousandEyes
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
1. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
DOI : 10.5121/ijsea.2013.4505 63
MANAGING AND ANALYSING SOFTWARE PRODUCT
LINE REQUIREMENTS
Shamim Ripon1
, Sk. Jahir Hossain1
and Touhid Bhuiyan2
1
Department of Computer Science and Engineering, East West University, Bangladesh,
2
Department of Software Engineering, Daffodil International University, Bangladesh
ABSTRACT
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.
KEYWORDS
Software Product Line, First order logic, Alloy, variant management
1. INTRODUCTION
Designing, developing and maintaining a good software system is a challengingtask still in this
21st century. The approach of reusing existing good solutions fordeveloping any new application
is now one of the central focuses of software engineers. Building software systems from
previously developed components savescost and time of redundant work, and improves the
system and its maintainability. A new software development paradigm, software product line [2],
is emergingto produce multiple systems by reusing the common assets across the systems inthe
product line. However, the idea of product line is not new. In 1976 Parnas [3]proposed
modularization criteria and information hiding for handling productline.
Core assets are the basis for software product line. The core assets ofteninclude the architecture,
reusable software components, domain models, requirements statements, documentation and
specifications, performance model, etc. Different product line members may differ in functional
and non-functional requirements, design decisions, run-time architecture and interoperability
(component structure, component invocation, synchronization, and data communication),
platform, etc. The product line approach integrates two basic processes:the abstraction of the
commonalities and variabilities of the products considered (development for reuse) and the
derivation of product variants from theseabstractions (development with reuse) [4].
The objective of this work is to provide an approach to modelling variants inthe domain model of
a product line. In our approach, we initially consider a domain model which includes default
domain view, a variant model and customization requirements. Default domain views describe
2. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
64
typical system in a domain. Default domain views are the starting point for understanding the
scope of the product line, i.e., the range of systems in the domain we wish to consider. We draw a
model to represent the variants of a product line. The model contains all the variant related
information required for customizing any product. After getting the requirements for any
particular product of the product line, the product line model collects proper variant information
from the variant model. A flexible variant configuration tool (FVC) interprets the variant model
and customizes the default domain model by adapting and customizing the default domain
according to the particular product requirements. Fig. 1 gives a top level view of the targeted
variant model along with its position and activity with product line model.
Figure 1.Variant model with product line model
The left-hand-side of Fig. 1 depicts the product line model which comprises the default model
and the variants. A feature diagram can be drawn from the product line model to get an overall
picture of the product line functionalities, both common and variants. The right-hand-side of the
figure mainly depicts the variant model. The variant model is constructed by getting information
from the product line relating to both common and variant features. A generic domain model is
created by adding the variants with the default model and during itsconstruction information is
collected from the variant model and also from the product line model. Finally, the required
product model is developed by customizing the generic domain model after handling the variants
according to the product requirements
This model carries all the variant relatedinformation like specifications, interdependencies,
origins of variants, etc. UMLhas been widely used as a modelling notation for any product.
However, it is onlydefined to model a single product. We use an extension mechanism of UML
[5]and model the case study. In particular we use UML ‘Use Case’ and ‘ActivityDiagram’ to
model the CAD domain. We then use logical representation offeature models facilitating the
development of decision table in a formally soundway. We define six types of logical notation to
represent all the parts in a featuremodel. First-order logic has been used for this purpose. These
notations are usedto define all possible scenarios of a feature model. It is often levelled that
manualverification leads to numerous error for large models and often misses the minutedetail in
the verification. To overcome this problem we use the model checkerAlloy [6]. Alloy use first-
order logic. We encode our logical definitions into Alloyand check the validity of the logical
verification that we perform by hand. Weuse a case study of Computer Aided Dispatch (CAD)
(http://xvcl.comp.nus.edu.sg/xvcl/cad/CAD.html) system product line.
3. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
65
In the rest of the paper, we first give a brief overview of CAD domain inSection 2. CAD variants
are drawn by using FODA and UML extension andlogical notation in Section 3. Various feature
analysis operations and corresponding rules are definedin Section 4. We illustrate various
example configurations and describe how tologically verify them using our logical definitions.
The Alloy representations oflogical verifications are outlined in Section 5. Finally, Section 6
concludes ourpaper and outlines our future plans.
2. CAD DOMAIN OVERVIEW
A Computer Aided Dispatch system (CAD) is a mission-critical system. Thesystem is used by
police, fire and rescue, health service, port operation, taxibooking and others. Fig. 2 portrays the
basic operational scenarios and roles ofa CAD system.
Figure 2.Basic operational scenario in a CAD system for police
After an incident, a caller reports to the command and control centre ofthe police unit. A Call
Taker captures the details about the incident and theCaller, and creates a task for the incident.
There is a Dispatcher in the systemwhose task is to dispatch resources to handle any incident. The
system showsthe Dispatcher a list of un-dispatched tasks. After examining the situation,
theDispatcher selects suitable Resources (e.g. police units) and dispatches them to execute the
task. The Task Manager monitors the situation and at the end, closesthe task. Different CAD
family members have different resources and tasks fortheir system.
At the basic operational level, all CAD systems are similar; basically theysupport the dispatcher
units to handle the incidents. However, there are differences across the CAD systems. The
specific context of operation results inmany variations on the basic operational theme. Some of
the variants identifiedin CAD domain are:
• Call taker and dispatcher roles: In some CAD system Call taker and dispatcher roles are
separated, whereas in some system their roles are mergedand one person plays the both roles.
• Validation of caller and task information differs across CAD systems. Insome CAD systems
basic validation (i.e., checking the completeness of callerinformation and the task
information) is sufficient while in other CAD systems validation includes duplicate task
checking, yet in other CAD systemsno validation is required at all.
• Un-dispatched task selection rule: In certain situation at any given time theremight be more
than one task to be dispatched and it is required to decidewhich task will be dispatched next.
A number of algorithms are available forthis purpose and different CAD system use different
algorithm
4. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
66
3. MODELLING SPL VARIANTS
Features are user visible aspects or characteristics of a system and are organizedinto And/Or
graph in order to identify the commonalities and variants of theapplication domain. Domain
features are organized into a tree-like graphical formand it is an integral part of the Feature
Oriented Domain Analysis (FODA) [7]method and the Feature Oriented Domain Reuse Method
(FORM) [8]. The rootnode of the tree represents the domain and the internal nodes of a tree
representthe variation point and their leaves represent the values of the correspondingvariation
points and known as variants. Graphical symbols are used to indicatethe categories of features
such as, Mandatory, Optional, and Alternative.
Mandatory features are default part of the system. Optional features maybe selected as a part of
the system if their parent feature is in the system. Alternative features, on the other hand, are
related to each other as a mutuallyexclusive relationship, i.e. exactly one feature out of a set of
features is to beselected. There are more relationships between features. One is Or-feature
[9],which connects a set of optional features with a parent feature, either commonor variant. The
meaning is that whenever the parent feature is selected then atleast one of the optional features
will be selected. Feature diagram also depictsthe interdependencies among the variants which
describes the selection of onevariant depends on the selection of the dependency connected
variants. A CADfeature tree is illustrated in Fig. 3.
Figure 3.CAD feature diagram with dependencies
Feature models are widely used in domain analysis to model the common as well as variant
requirements of the application domain. However, the semantics of a domain are not fully
expressed by feature models. As a result, there is a need for other notations to support feature
models which can enhance the meaning of the domain concept. The Unified Modelling Language
(UML), a standardized notation for describing object-oriented models, can be used with feature
model to depict the domain concept properly. UML is targeted at modelling single system rather
than system families. In order to use UML diagrams to represent the model of the system family
simple extension mechanisms [11] of UML, namely stereotypes and tagged values are used here.
The stereotype <<variant>> designates a model element as a variant and the tagged values are
used to keep trace of the models and their corresponding variant elements. It is claimed that
adding only the stereotype <<variants>> does not represent the types of variants and proposed
5. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
67
another extension where the notion of variation point is used to make variation point visible in
use case diagram, represented as a triangle and variant is used to make variant in use cases
explicitly.
Figure 4. Update task use case
Fig. 4 illustrates the use case diagram added with variants of ‘Update Task’ activity. An exclude
denotes that when one feature is selected other related feature cannot be selected. A requires
relation indicates that when there is a relation from one feature (source) to another (target), then if
the source feature is selected the target feature has to be selected as well. UML activity diagrams
are used to identify the workflow of any activity. As use cases are the source of information for
creating activity diagrams, whenever there is change occurs in use cases due to using
<<include>> or <<extend>>, then corresponding activity diagrams should be updated. The
activity diagram of a task updating a task is shown in Fig. 5.
6. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
68
Figure 5. Update task activity diagram
A feature model is a hierarchically arranged set of features. It represents allpossible products of a
software product line in a single model. The relationbetween a parent(variation point) features
and its child features (variants) arecategorized as Mandatory, Optional, Alternative, Optional
Alternative, Or, andOptional Or. The logical notions of these features are defined in Fig. 6.
Figure 6.Logical notations for feature models
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
68
Figure 5. Update task activity diagram
A feature model is a hierarchically arranged set of features. It represents allpossible products of a
software product line in a single model. The relationbetween a parent(variation point) features
and its child features (variants) arecategorized as Mandatory, Optional, Alternative, Optional
Alternative, Or, andOptional Or. The logical notions of these features are defined in Fig. 6.
Figure 6.Logical notations for feature models
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
68
Figure 5. Update task activity diagram
A feature model is a hierarchically arranged set of features. It represents allpossible products of a
software product line in a single model. The relationbetween a parent(variation point) features
and its child features (variants) arecategorized as Mandatory, Optional, Alternative, Optional
Alternative, Or, andOptional Or. The logical notions of these features are defined in Fig. 6.
Figure 6.Logical notations for feature models
7. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
69
Figure 7.(a)-(c) Requires dependency between variants and (d)-(e) Exclude dependency between variants
and variation points
4. LOGICAL ANALYSIS OF FEATURE MODEL
From the logical representation of feature model it is possible to analyse various scenarios during
product customization. We consider a feature model as a graph consists of a set of subgraphs.
Each subgraph is created separately by defining a relationship between the variation point
(denoted as ) and the variants ( . ) by using the expressions shown in Fig. 5. A relationship
between cross-tree (or cross hierarchy) variants (or variation points) is denoted as a dependency.
There are two types of dependencies considered in this paper, inclusion and exclusion: if there is
a dependency between p and q, then if p is included then q must be included (or excluded).
Dependencies are drawn by dotted lines.
Scenario 1: If there is a requirerelation between variants and as shown in Fig. 7(a), then
is elected whenever is selected. Adopting the notation in [10] the rule for dependency among
variants as well as variation points is defined as follows,
∀ , ⋅ ( , ) ∧ ( , )
∧ _ _ ( , ) ∧ ( ) ⇒ ( )
∀ , ⋅ ( , _ ) ∧ ( , _ )
∧ _ _ ( , ) ∧ ( ) ⇒ ( )
Where ( ) indicates is either a variant or variation point, ( ) indicated the
selection of and () indicates the require relationship.
Scenario 2: From Fig. 7(b), we derive the following rule,
∀ , , · ( , ) ∧ ( , ) ∧ ( , )
∧ ( , ) ∧ ( ) ⇒ ( )
Scenario 3: The following rule is derived from Fig. 7(c)
∀ , , , · ( , ) ∧ ( , )
∧ ( , ) ∧ ( , ) ∧ ( )
∧ ( , ) ∧ ( ) ⇒ ( )
Scenario 4: When there is an exclude relation betweenvariants (and/or variation point) as shown
in Fig. 7(d), only one among them can be selected at a time.
8. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
70
∀ , · ( , ) ∧ ( 2, ) ∧
_ _ ( , ) ∧ ( ) ⇒ ( )
∀ , · ( , ) ∧ ( , )
∧ _ _ ( , ) ∧ ( ) ⇒ ( )
Scenario 5: From Fig. 7(e) we derive the following rule,
∀ , , , · ( , ) ∧ ( , )
∧ ( , ) ∧ _ ( , )
∧ ( ) ⇒ ( )
Scenario 6: The scenario in Fig 7(f) depicts the following rule,
∀ , , , · ( , ) ∧ ( , )
∧ ( , ) ∧ ( , ) ∧ ( , )
∧ _ _ ( , ) ∧ ( ) ⇒ ( )
Figure 8. (a) Inconsistency checking, (b) False optional feature detection and (c) Dead feature detection
4.1. Analysis Operations
We perform some analysis operations that determine whether the feature model works correctly
Inconsistency: In Fig. 8(a), , and are three variation points where . and . are variants
of and . and . are of . There exists a require relationship between variant . and
variation point . As . and . are mandatory feature whenever is selected both variants
will be selected, and consequently, variation point will be selected as well due to require
relation. However, and are alternative features, and both cannot be selected at the same
time and it introduces an inconsistency into the feature model.
False optional is a situation where a feature is declared as optional which does not need to be
optional. In Fig. 8(b), is False optional.
Dead feature is a feature that never appears in any legal product from a feature model. As shown
in Fig. 8(c) due to exclude relation . will never be part of any valid product from the feature
model.
9. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
71
Figure 9.Partial CAD feature graph and its subgraphs
4.2. Analysis Examples
Automatic analysis of variants is already identified as a critical task [7]. Our logical
representation can define and validate a number of analysis operations suggested in [11], [12]. In
order to construct an instance product from the product line model, TRUE(T) is assigned to the
selected features and FALSE(F) to those not selected. These truth values are assigned to the
product line model and if TRUE value is evaluated, we call the model as valid otherwise the
model is invalid. For convenience, we represent a partial tree of the CAD feature in Fig. 10 which
is splitted into smaller subgraphs (Fig. 9(b), 9(c) and 9(d)).
Example 1: Suppose the selected variants are , . , , . , . , . . , . , and . . We
check the validity of the subgraphs , and by substituting the truth values of the variants of
the subgraphs.
∶ ( . ⊕ . ) ⇔ =
∶ ⇔ . ∨ . ∨ . ∨ .
= ⇔ . ∨ . ∨ ( . . ⊕ . . ) ⇔ . ∨ . =
∶ ( . ⊕ . ) ⇔ =
As the subgraphs , and are evaluate to TRUE, the product model is valid. However,
variant dependencies are not yet considered in this case. Checking the validity of each subgraph is
not enough for the validity of the whole model. Variant dependencies must also be checked as
additional constraints. We evaluate the dependencies of the selected variants and we get,
Dependency:( . . ⇒ . ) ∧ ( . ⇒ . )
= ( ⇒ ) ∧ ( ⇒ ) =
The truth (T) value of the dependencies ensures the validity of the product instance
Example 2: Suppose the selected variants are, , . , , . , . . , . , , . . To check
whether these input combination build a valid product we check the validity of the sub-graph
, and by substituting the truth values of the variants of the sub-graphs.
∶ ( . ⊕ . ) ⇔ =
∶ ( . ∨ . ∨ . ∨ . ) ⇔ 2
= ( . ∨ . ∨ ( . . ⊕ . . ) ⇔ . ∨ . ) ⇔ =
∶ ( . ⊕ . ) ⇔ 3 =
We then evaluate the dependencies of the selected variants,
10. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
72
Dependency: ( . . ⇒ . ) ∧ ( . ⇒ . ) =
Due to conflict within variant dependencies, the whole graph becomes invalid, which is due to an
incorrect selection of input.
5. ALLOY VERIFICATION
In order to define feature model in Alloy we first define the abstract syntax ofthe feature model.
A feature model (FM) has a set of features and one rootfeature. A FM also has a set of relations
and formulas.
sig FM {
features: set Name,
root: feature,
relation: set Relation,
form: Formula
}
abstract sig Type{}
one sig Optional, Mandatory, OrFeature,
Alternative OptionalAlternative, OptionalOr
extends Type {}
sig Name{}
sig Relation{
parent: Name,
child: set Name,
type: Type
}
Feature model declares formulas using propositional logic that returns aBoolean value when a
configuration satisfies a formula. An Alloy signature isalso declared for binary formulas.
abstract sig Formula
{
satisfy: configuration
->one Bool
}
abstract sig Op{}
one sig AndF, OrF, Implies, NotF
extends Op{}
Sig Form extends Formula {
f: Formula,
g: Formula,
op: Op
}
After defining the abstract syntax, the semantics are defined by first defining the configuration
which is a set of feature names. The semantics of FM isthen defined as the set of configurations
that satisfy all the relations whereasconstraints are denoted as predicates. We also define several
constraints overconfigurations as well as rules for formula satisfactions.
11. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
73
Example: We show how the feature diagram in Fig. 9(a) can be constructedfrom the syntax and
semantics defined in previous section. The feature diagramconsists of three subgraphs , and
. First we define the overall diagramby using the subgraphs and their relations and then define
the parent-childrelations.
one sig CAD extends FM{}
one sig c1,c2,c3 extends Relation{}
fact elements { CAD.root = v
CAD.feature = G1 + G2 + G3
CAD.relation = c1 + c2 + c3 }
fact relations{
c1.type = Mandatory
c1.parent = v c1.child = v1
c2.type = Mandatory
c2.parent = v c2.child = v2
c3.type = Optional
c3.parent = v c3.child = v3 }
Alloy checks the consistency of the sub-graphs and variant dependencies,and displays that a valid
instance is found which is indicated bythe alloy result display screen, where it shows that an
instance is found as shown in Fig.10.
Figure 10.Valid instance check in Alloy
If we select another combination of features as in Example 2 in earlier section, an invalid product
would be created and hence in instance should be found. Alloy produce an error stating that no
instance is found from the selected features as shown in Fig 11.
12. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
74
Figure 11.Invalid instance checking in Alloy
Currently, we are defining explicitformulas using our Alloy definitions. Our plan is first to define
the whole featurediagram then define the formulas specifying the relations between features
andoperators.
6. CONCLUSIONS
Modelling variants is considered as one the crucial factor for the successful deployment of
software product line. In our systematic modelling, first the variantsare visually arranged in a
feature diagram that illustrates various relationshipsamong the features. Although UML is
designed for single systems, an extendedversion of UML has been used in this paper to model
SPL variants. To be able toformally verify the variant configuration and consistency we model all
six typesof variant relations by using first-order logic. Cross tree variants dependencies
aredefined as well. Such formal definition facilitates the automated decision makingduring
product customization. The various analysis operation suggested in [11,12] are also addressed
here. To overcome the hurdles of by-hand verification, weencode our first-order logic
representation into Alloy [6], that automaticallychecks the consistency of feature configuration
and validity of product instances.
REFERENCES
[1] Ripon, S., Azad, K., Hossain, S.J., Hassan, M.: Modeling and analysis of productline variants, In:
Proceedings of the 16th International Software Product LineConference - Volume 2. SPLC ’12, New
York, NY, USA, ACM (2012) 26–31
[2] Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. 3rded. Addison-Wesley
Professional (August 2001)
[3] Parnas, D.L.: Software fundamentals. Addison-Wesley Longman Publishing Co.,Inc., Boston, MA,
USA (2001) 193–213
[4] Hein, A., MacGregor, J., Thiel, S.: Configuring software product line features.In Pulvermuller, E.,
Speck, A., Coplien, J., Hondt, M.D., Meuter, W.D., eds.:Proceedings of the ECOOP 2001 Workshop
on Feature Interaction in ComposedSystems (FICS 2001), Budapest, Hungary, June 18-22, 2001.
[5] Rumbaugh, J., Jacobson, I., Bosch, G.: The Unified Modeling Language, ReferenceManual. Addison-
Wesley (1999)
13. International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013
75
[6] Jackson, D.: Alloy: a lightweight object modelling notation. ACM Trans. Softw.Eng. Methodol. 11(2)
(April 2002) 256–290
[7] Kang, K.C., Cohen, S.G., Hess, J.A., Novak,W.E., Peterson, A.S.: Feature-orienteddomain analysis
(foda) feasibility study. Technical report, Carnegie-Mellon UniversitySoftware Engineering Institute
(November 1990)
[8] Kang, K.C., Kim, S., Lee, J., Kim, K., Shin, E., Huh, M.: Form: A feature-orientedreuse method with
domain-specific reference architectures. Ann. Softw. Eng. 5(January 1998) 143–168
[9] Czarnecki, K., Eisenecker, U.W.: Generative programming: methods, tools, andapplications. ACM
Press/Addison-Wesley Publishing Co., New York, NY, USA(2000)
[10] Elfaki, A.O., Phon-Amnuaisuk, S., Ho, C.K.: Knowledge based method to validatefeature models. In
Thiel, S., Pohl, K., eds.: SPLC (2), Lero Int. Science Centre,University of Limerick, Ireland (2008)
217–225
[11] Benavides, D., Cortés, A.R., Trinidad, P., Segura, S.: A survey on the automatedanalyses of feature
models. In: JISBD. (2006) 367–376
[12] Benavides, D., Segura, S., Cortés, A.R.: Automated analysis of feature models 20years later: A
literature review. Inf. Syst. 35(6) (2010) 615–636