948 research outputs found
Software Evolution Understanding: Automatic Extraction of Software Identifiers Map for Object-Oriented Software Systems
Software companies usually develop a set of product variants within the same family that share certain functions and differ in others. Variations across software variants occur to meet different customer requirements. Thus, software product variants evolve overtime to cope with new requirements. A software engineer who deals with this family may find it difficult to understand the evolution scenarios that have taken place over time. In addition, software identifier names are important resources to understand the evolution scenarios in this family. This paper introduces an automatic approach called Juana’s approach to detect the evolution scenario across two product variants at the source code level and identifies the common and unique software identifier names across software variants source code. Juana’s approach refers to common and unique identifier names as a software identifiers map and computes it by comparing software variants to each other. Juana considers all software identifier names such as package, class, attribute, and method. The novelty of this approach is that it exploits common and unique identifier names across the source code of software variants, to understand the evolution scenarios across software family in an efficient way. For validity, Juana was applied on ArgoUML and Mobile Media software variants. The results of this evaluation validate the relevance and the performance of the approach as all evolution scenarios were correctly detected via a software identifiers map
Naming the Identified Feature Implementation Blocks from Software Source Code
Identifying software identifiers that implement a particular feature of a software product is known as feature identification. Feature identification is one of the most critical and popular processes performed by software engineers during software maintenance activity. However, a meaningful name must be assigned to the Identified Feature Implementation Block (IFIB) to complete the feature identification process. The feature naming process remains a challenging task, where the majority of existing approaches manually assign the name of the IFIB. In this paper, the approach called FeatureClouds was proposed, which can be exploited by software developers to name the IFIBs from software code. FeatureClouds approach incorporates word clouds visualization technique to name Feature Blocks (FBs) by using the most frequent words across these blocks. FeatureClouds had evaluated by assessing its added benefit to the current approaches in the literature, where limited tool support was supplied to software developers to distinguish feature names of the IFIBs. For validity, FeatureClouds had applied to draw shapes and ArgoUML software. The findings showed that the proposed approach achieved promising results according to well-known metrics in terms of Precision and Recall
Requirements Traceability: Recovering and Visualizing Traceability Links Between Requirements and Source Code of Object-oriented Software Systems
Requirements traceability is an important activity to reach an effective
requirements management method in the requirements engineering.
Requirement-to-Code Traceability Links (RtC-TLs) shape the relations between
requirement and source code artifacts. RtC-TLs can assist engineers to know
which parts of software code implement a specific requirement. In addition,
these links can assist engineers to keep a correct mental model of software,
and decreasing the risk of code quality degradation when requirements change
with time mainly in large sized and complex software. However, manually
recovering and preserving of these TLs puts an additional burden on engineers
and is error-prone, tedious, and costly task. This paper introduces YamenTrace,
an automatic approach and implementation to recover and visualize RtC-TLs in
Object-Oriented software based on Latent Semantic Indexing (LSI) and Formal
Concept Analysis (FCA). The originality of YamenTrace is that it exploits all
code identifier names, comments, and relations in TLs recovery process.
YamenTrace uses LSI to find textual similarity across software code and
requirements. While FCA employs to cluster similar code and requirements
together. Furthermore, YamenTrace gives a visualization of recovered TLs. To
validate YamenTrace, it applied on three case studies. The findings of this
evaluation prove the importance and performance of YamenTrace proposal as most
of RtC-TLs were correctly recovered and visualized.Comment: 17 pages, 14 figure
Protocol for a Systematic Literature Review on Design Decisions for UML-based DSMLs
Series: Technical Reports / Institute for Information Systems and New Medi
Integration of Quality Attributes in Software Product Line Development
Different
approaches
for
building
modern
software
systems
in
complex
and
open
environments
have
been
proposed
in
the
last
few
years.
Some
efforts
try
to
apply
Software
Product
Line
(SPL)
approach
to
take
advantage
of
the
massive
reuse
for
producing
software
systems
that
share
a
common
set
of
features.
In
general
quality
assurance
is
a
crucial
activity
for
success
in
software
industry,
but
it
is
even
more
important
when
talking
about
Software
Product
Lines
since
the
intensive
reuse
of
assets
makes
the
quality
attributes
(a
measurable
physical
or
abstract
property
of
an
entity)
of
the
assets
to
be
transmitted
to
the
whole
SPL
scope.
However,
despite
the
importance
that
quality
has
in
software
product
line
development,
most
of
the
methodologies
being
applied
in
Software
Product
Line
Development
focus
only
on
managing
the
commonalities
and
variability
within
the
product
line
and
not
giving
support
to
the
non--Âż
functional
requirements
that
the
products
must
fit.
The
main
goal
of
this
master
final
work
is
to introduce
quality
attributes
in
early
stages
of
software
product
line
development
processes
by
means
of
the
definition
of
a
production
plan
that,
on
one
hand,
integrates
quality
as
an
additional
view
for
describing
the
extension
of
the
software
product
line
and,
on
the
other
hand
introduces
the
quality
attributes
as
a
decision
factor
during
product
configuration
and
when
selecting
among
design
alternatives.
Our
approach
has
been
defined
following
the
Model--Âż
Driven
Software
Development
paradigm.
Therefore
all
the
software
artifacts
defined
had
its
correspondent
metamodels
and
the
processes
defined
rely
on
automated
model
transformations.
Finally
in
order
to
illustrate
the
feasibility
of
the
approach
we
have
integrated
the
quality
view
in
an
SPL
example
in
the
context
of
safety
critical
embedded
systems
on
the
automotive
domain.González Huerta, J. (2011). Integration of Quality Attributes in Software Product Line Development. http://hdl.handle.net/10251/15835Archivo delegad
Early aspects: aspect-oriented requirements engineering and architecture design
This paper reports on the third Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design Workshop, which has been held in Lancaster, UK, on March 21, 2004. The workshop included a presentation session and working sessions in which the particular topics on early aspects were discussed. The primary goal of the workshop was to focus on challenges to defining methodical software development processes for aspects from early on in the software life cycle and explore the potential of proposed methods and techniques to scale up to industrial applications
- …