ArticlePDF Available

Abstract and Figures

This article presents a framework for characterizing architecturally significant requirements (ASRs) on the basis of an empirical study using grounded theory. The study involved interviews with 90 practitioners with an accumulated 1,448 years of software development experiences in more than 500 organizations of various sizes and domains. These findings could provide researchers with a framework for discussing and conducting further research on ASRs and can inform researchers' development of technologies for dealing with ASRs. The findings also enrich understanding of requirements and architecture interactions, allowing the twin peaks to move from aspiration to reality.
Content may be subject to copyright.
38 IEEE SoftwarE | publIShEd by thE IE EE comput Er SocIE ty 0740 -745 9/13 /$ 31.0 0 © 2013 IE EE
AT THE HEART of any engineering dis-
cipline is the interplay between problem
and solution development. In software
engineering, we determine a software
solution’s effectiveness with respect to
a problem, yet the nature of the prob-
lem and its scope could depend on what
solutions already exist or what solu-
tions are plausible and cost-effective.
This iterative and concurrent develop-
ment and trade-off between software
problems and solutions characterize
the twin peaks model of software
development.1
For the development of many large-
scale, software-intensive systems, the
software architecture is a fundamen-
tal part of a software solution.2 It sig-
nicantly affects software quality and
cost, but not all of a system’s require-
ments affect software architecture
equally.3 In many cases, only some re-
quirements actually determine and
shape a software architecture;4 we call
these architecturally signicant re-
quirements (ASRs). If ASRs are wrong,
incomplete, inaccurate, or lack details,
then a software architecture based on
them is also likely to contain errors.
Unfortunately, in practice, stake-
holders and requirements engineers
frequently fail to express or effectively
communicate ASRs to the architects,
preventing the architects from mak-
ing informed design decisions.4 This is
partly due to a lack of an authoritative,
evidence-based discourse characteriz-
ing ASRs.
To address this, we carried out an
empirical study to help characterize
ASRs. Based on the study’s results,
this article presents an evidence-based
framework for systematically charac-
terizing ASRs. We hope our ndings
can help practitioners better understand
and deal with ASRs, as well as pro-
vide researchers with a framework for
discussing and conducting further re-
search on ASRs. The work can also in-
form researchers’ development of tech-
nologies for dealing with ASRs. Finally,
our ndings can enrich understanding
of requirements and architecture in-
teractions, allowing the twin peaks to
move from aspiration to reality.
Methodology
and Research Design
As our research method, we used
grounded theory (GT),5 which pro-
vides a systematic process of generat-
ing theory from data. GT has gained
popularity among software engineering
researchers, who have reported its ef-
fectiveness for topics that lack empiri-
cal research.6 GT recommends avoiding
the formulation of research questions
upfront, promoting instead the selec-
tion of a general area of interest for re-
search. We chose to explore ASRs as an
area of research.
We collected the data in our
study by conducting interviews with
FOCUS: Twin Peaks
Characterizing
Architecturally
Signicant
Requirements
Lianping Chen, University of Limerick and Paddy Power PLC
Muhammad Ali Babar, Lancaster University and IT University
of Copenhagen
Bashar Nuseibeh, University of Limerick and The Open University
// A new framework characterizes architecturally
signicant requirements on the basis of
an empirical study of 90 practitioners from
organizations of various sizes and domains. //
march/aprIl 2013 | IEEE SoftwarE
39
90 practitioners, who we recruited
through personal connections and so-
cial networks. We conducted the inter-
views mostly via email and sometimes
via phone. In instances when we used
email for data collection, participants
didn’t have to nd a sufcient chunk
of free time to t researchers’ sched-
ules, but could answer in their own
time; this also provided participants
with more time for reective answers.
Figure 1 summarizes the participants’
demographics.
The participants came from four
countries (58 percent from the US, 28
percent from India, 13 percent from
the Netherlands, and 1 percent from
the UK), as shown in Figure 1a. Figure
1b shows that the participants repre-
sented a diverse set of industries. Each
participant had worked for an average
of seven organizations during his or
her career. Cumulatively, the partici-
pants had worked for more than 500
distinct organizations throughout their
careers. The size of the organizations
they worked for ranged from very small
(fewer than 10 people) to very large
(more than 10,000 people), as shown in
Figure 1c.
Given our research’s focus on under-
standing requirements’ effects on archi-
tectures, we decided to limit participa-
tion to be only from those professionals
who had experience working with soft-
ware architectures in their current or
previous roles. Although the majority of
participants we interviewed were soft-
ware architects, some were executives,
managers, consultants, or developers.
None of our participants specically
identied themselves as requirements
engineers, but we observed that consul-
tants often played such roles. As Figure
1d shows, 52 percent of our participants
were architects, followed by 20 percent
executives, 14 percent managers, 8 per-
cent consultants, and 6 percent develop-
ers. Together, the participants had more
than 1,448 years of accumulated work
experience in software development and
761 years in software architecture, as
shown by Figure 1e.
We conducted our interviews via
informal conversations. Most of the
conversations kicked off with the fol-
lowing question: “From your observa-
tions and experiences, what are the
characteristics that distinguish ASRs
from other requirements? In other
words, what, if anything, makes them
unique or peculiar?” Follow-up ques-
tions sought to clarify or gather more
details about the characteristics men-
tioned by the participants.
For analyzing the data, we used
some of GT’s qualitative data analysis
techniques such as open coding, con-
stant comparison method, selective
coding, and memoing.7 We began data
analysis as soon as we collected some
data and continued iteratively and in
parallel. We used a tool called NVivo
to facilitate the analysis.
Only concepts that were men-
tioned by at least two participants
were included in the nal ndings.
Once concepts earned their way into
the theory, we did not discriminate
between them based on their frequen-
cies; rather, we focused on the logical
relationships among concepts, as rec-
ommended by GT.
Characteristics
of Architecturally
Signicant Requirements
A framework of characteristics of ASRs
emerged from our analysis. Figure 2
shows the framework, which consists of
four sets of characteristics: denition,
descriptions, indicators, and heuristics.
Denition
ASRs are those requirements that have
a measurable impact on a software
system’s architecture. Essentially, this
denition delimits a portion of require-
ments, the portion that affects the ar-
chitecture of a system in measurably
identiable ways. Do such require-
ments really exist? Our empirical data
appears to conrm this—for example,
participants didn’t perceive a require-
ment stating that “temperature should
be displayed in Celsius not Fahrenheit
on this webpage” to be architectur-
ally signicant, but they did usually
perceive a requirement stating that
“the system should provide ve nines
(99.999 percent) availability” as archi-
tecturally signicant.
“Signicant” is a key term in our
denition. What does it mean? Ulti-
mately, it is measured by high cost of
change. This cost can be monetary or
not (for example, time, resources, rep-
utation, and opportunity cost). What
cost is considered as high? The an-
swer is invariably project-specic—a
US$10,000 cost can be high for a small
budget project but low for a large one.
Some cost measures can be entirely
qualitative but still identiable in their
ability to distinguish ASRs.
Descriptions
ASRs are often hard to dene and artic-
ulate, tend to be expressed vaguely, tend
What cost is considered as high?
The answer is invariably project-specic.
40 IEEE SoftwarE | www.computEr.org/SoftwarE
FOCUS: Twin Peaks
(a) (b)
(c)
(e)
(d)
0
5
10
15
20
25
30
35
40
45
50
1–5 6–10 11–15 16–20 21–25 26–30 31–35 36–40
Number of participants
Years of experience
Software development
(min = 3, max = 37, avg = 16, total = 1,448)
Software architecture
(min = 1, max = 23, avg = 8, total = 761)
UK
1%
US
58%
India
28%
Netherlands
13%
Other
(telecom, retail, military, legal,
investment, insurance, healthcare)
8%
Financial
services
6%
Computer
software
58%
Information
technology
and services
28%
Very large
(>10,000)
47%
Very small
(<10)
14%
Large
(250–10,000)
16%
Medium
(50–249)
19%
Small
(10–49)
4%
Developer
6%
Excecutive
(VP, CEO,
president,
chief scientist,
director)
20%
Manager
14%
Architect
52%
Consultant
8%
Figure 1. Demographics of study par ticipants: (a) distribution over countries, (b) distribution over industries, (c) distribution over organization
sizes, (d) job positions, and (e) experience in software development and architecture.
march/aprIl 2013 | IEEE SoftwarE
41
to be initially neglected, tend to be hid-
den within other requirements, and are
subjective, variable, and situational. We
could argue that other requirements also
demonstrate these descriptive character-
istics, or descriptions. However, ASRs’
architectural signicance made these
characteristics’ manifestations unique
and challenging for ASRs.
Hard to dene and articulate. One par-
ticipant noted, “Users usually nd it
difcult to articulate [ASRs], as many
of them are about abstract and general
concepts.”
In addition, ASRs are expected to
be ready in the early stage of the soft-
ware development process. At this early
stage, customers might not yet be clear
about their exact needs, and some re-
quirements decisions (especially about
details) might not have been made. This
adds to the difculties of dening and
articulating ASRs.
Tend to be described vaguely. Many ar-
chitects reported that ASRs they re-
ceived are too vague to be used for
making informed architectural deci-
sions. Vaguely described ASRs often
lead to bad decisions because architects
can make wrong assumptions about the
missing details.
Consider an example of users re-
questing the ability to receive notica-
tion about cash ows. Architects as-
sumed that emails would be acceptable
for this. During detailed design, users
explained that they wanted real-time
notication, the ability to subscribe to
different account topics, and a user in-
terface that shows all of this. This re-
quired publish-subscribe, a different ar-
chitecture style.
Tend to be neglected initially. One par-
ticipant said, “Typically [ASRs] are
overlooked in the early phase of a proj-
ect.” ASRs are often neglected initially
because of a lack of initial awareness
of their signicant effects on architec-
ture, and thus aren’t given sufcient
attention. One participant said, “Us-
ers do not typically have a good under-
standing of [ASRs]; people who con-
duct requirement analysis often do not
document them properly. … Users will
not ask for them unless you are deal-
ing with a highly tech-savvy group of
users.” Another participant said that
neglecting ASRs in this way often hap-
pens with less-experienced teams.
Many times, requirements aren’t
recognized as architecturally signi-
cant until they’ve incurred a high cost,
and at that stage, rectifying mistakes
can be costly.
Tend to be hidden within other require-
ments. Following the way people spon-
taneously express requirements, ASRs
usually aren’t emphasized in require-
ments’ oral or written descriptions;
rather, they’re embedded in other re-
quirements’ descriptions. Short phrases
such as “highly available system of
99.999 percent uptime” or “fault
tolerant” are often only mentioned
briey while describing other require-
ments, but these phrases can signi-
cantly affect architecture.
When architects receive ASRs that
are hidden within other requirements,
the ASRs usually aren’t sufciently
elaborated and often lack the key de-
tails required for making informed ar-
chitectural decisions.
Subjective. ASRs tend to be requested
subjectively based on opinion instead of
fact-based objective decisions. One par-
ticipant reported, “[ASRs requested by
customers] usually contain subjectiv-
ity—for example, ‘The system should
be available for 24/7’—whether it
[needs to] be or not.”
This subjectivity can lead to inac-
curacy of the requirements conveyed
to architects. Small differences in ASRs
can lead to big differences in resulting
architectures.
Variable. ASRs can change over time.
This is usually unavoidable owing to
• Have a measurable impact
on the software system’s
architecture
• Wide impact
• Targeting tradeoffs
• Strictness (constraining,
limiting, nonnegotiable)
• Assumption breaking
• Difcult to achieve
Denition
Architecturally
signicant
requirements
• Hard to dene and articulate
• Tend to be described vaguely
• Tend to be neglected initially
• Tend to be hidden within
other requirements
• Subjective
• Variable
• Situational
Descriptions
Indicators
• Quality attributes
• Core features
• Constraints
• Application environment
Heuristics
Figure 2. A framework of the characteristics of architecturally signicant requirements.
42 IEEE SoftwarE | www.computEr.org/SoftwarE
FOCUS: Twin Peaks
changes that take place in business
and technology. As a participant re-
ported, “Requirements always change
over time, during the project and after-
ward.” Another participant reported,
“Technology as dened as hardware,
software, and the relatively new inclu-
sion of user experience is now changing
so quickly that companies are viewing
products as having a very limited (and
short) lifetime before needing to be re-
designed to take advantage of those
ch a nges .”
ASRs can also vary over space—
for example, consider the variability
of ASRs for different but similar soft-
ware systems that are engineered using
a software product line paradigm.8
Situational. Whether a piece of require-
ment is architecturally signicant de-
pends on situations. As one participant
said, “A requirement is architecturally
signicant in one case, while being ‘just
a requirement’ in the other case.”
Requirements can be situational
regarding an existing architecture, a
project’s context or scope, and so on.
A requirement might be architecturally
signicant in a situation where a “bad”
architecture is in place, but is not so
when the architecture is “good.” An-
other participant reported, “A simple
requirement in a smaller project might
not be architecturally signicant. Take
the same requirement and enhance
scope, add multiple interactions—then
it could become signicant.”
A requirement’s architectural sig-
nicance can depend on many fac-
tors. So, a denitive judgment on a
requirement’s architectural signicance
usually can only be made when the re-
quirement really incurs a high cost or if
the architects require it to make archi-
tectural decisions. During requirements
gathering, we can only say that certain
requirements are likely to be architec-
turally signicant. Finding a denitive
list of ASRs is not feasible. ASRs need
to be dealt with individually.
Indicators
Although the cost of change is a mea-
sure of signicance, getting an accurate
cost of a requirement is challenging (de-
spite extensive studies9). In addition,
an estimate of whether a requirement
is architecturally signicant can be im-
portant for guiding the gathering of
ASRs, but cost estimation is usually un-
dertaken after requirements have been
gathered.
ASRs do have some characteris-
tics that help us distinguish them from
other requirements without needing to
undertake a full cost estimation. In-
dicative characteristics, or indicators,
provide such pragmatic hints about
the architectural signicance of a
requirement.
Wide impact . When a requirement has
wide impact on a system, it’s usually ar-
chitecturally signicant. This can be in
terms of the components, other require-
ments, the code modules, the stakehold-
ers, or other things that are affected by
the requirement. Participants noted,
“Yes, there are requirements [that] can
be thought of as architecturally signi-
cant because those requirements impact
the system as a whole immediately”;
“[An ASR] has widespread impact
across multiple components of the sys-
tem”; and “The more broadly a require-
ment and its resolution can be applied,
the more signicant it is.”
Targeting trade-offs. A requirement that
targets trade-off points is usually ar-
chitecturally signicant. A trade-off
point is one at which there’s no solution
that satises all involved requirements
equally well, therefore architects must
select a design option that compromises
some requirements to meet others. Such
requirements can directly affect archi-
tecture decisions’ outcome, thus they’re
architecturally signicant. One par-
ticipant reported this as follows: “The
trade-offs are the weak points—the
raw nerves— of the architecture. If a
new requirement happens to (uninten-
tionally) target these trade-offs—these
weak points—then the probability of
it becoming architecturally signicant
is higher than if it did not target these
trade-offs.”
When the requirement targets a
trade-off point, the details, accuracy,
and precision of the requirement de-
scription become important. One par-
ticipant reported that half-a-second
difference in his system’s performance
requirements can lead to a totally dif-
ferent design.
Strictness (constraining, limiting, non-
negotiable). A strict requirement neces-
sitates a particular design option, and
the requirement itself can’t be negoti-
ated. When making architectural deci-
sions, the requirements that can be sat-
ised by multiple design options (or can
be negotiated to a form that can be sat-
ised by multiple design options) will
allow exibility in architectural design,
whereas a strict requirement will deter-
mine architectural decisions because it
can’t be satised by alternative design
options (thus being constraining or lim-
iting). One participant reported, “Our
Although the cost of change is a measure
of signicance, getting an accurate cost
of a requirement is challenging.
march/aprIl 2013 | IEEE SoftwarE
43
signicant requirements were those
that would be the limiting, or dening,
characteristics of the product.”
Assumption breaking. When designing
a system’s architecture, the architect
makes some fundamental assumptions
(explicitly or implicitly). For example,
architects assume that turning down
the server at midnight for maintenance
is acceptable. Later on, this might no
longer be acceptable if the business
expands to countries in different time
zones.
When a requirement breaks any of
these assumptions, it’s architecturally
signicant. This is because it requires
architectural change to accommodate
the requirement. One participant re-
ported, “Down the line someday, we
meet our assumptions face to face, and
a requirement that actually crosses the
boundary of that assumption would be
the one that changes the architecture.”
Judging whether a requirement
breaks any such fundamental assump-
tions requires good knowledge about
the system’s existing architecture. A
well-organized record of the assump-
tions and related architectural decisions
can make the job easier, so there’s a
need for effective tools that can manage
assumptions and design decisions.
Difcult to achieve. If a requirement is
difcult to meet or is technologically
challenging, it’s likely to be architec-
turally signicant. One participant re-
ported, “The uniqueness of [ASRs] to
me is … difculty of achieving. For ex-
ample, latency is very hard to achieve if
not thought [about] early on.”
Heuristics
Judging whether a requirement has wide
impact, whether a requirement tar-
gets trade-offs, whether a requirement
strictly requires a particular design
option, whether a requirement breaks
existing architectural assumptions, or
whether a requirement is difcult to
achieve can require substantial knowl-
edge of the solution space.
Requirements engineers, however,
aren’t usually expected to have exten-
sive solution space knowledge. Thus,
many of them are unlikely to be able
to use such indicators to identify ASRs.
Therefore, we need characteristics that
are familiar to requirements engineers.
We discovered a set of such characteris-
tics, which we call heuristic character-
istics, or heuristics.
Heuristics can guide requirements
engineers to ask questions proactively
regarding concerns that are likely to be
architecturally signicant but that us-
ers don’t mention.
Quality attributes. When a requirement
species a software system’s quality at-
tributes, it’s usually architecturally sig-
nicant. The participants mentioned a
variety of such quality attributes from
the software systems that they worked
on (see Figure 3).
Quality attributes’ specic meanings
can vary from project to project, so we
must also gather details of quality at-
tributes—for example, a general state-
ment that “the system should respond
in real time” probably won’t be enough
to make correct architectural decisions.
Core features. A requirement that refers
to a software system’s core features is
likely architecturally signicant. Core
features dene the problems the soft-
ware is trying to solve; they usually
capture the essence of the software sys-
tem’s behavior and describe the core
expectations users have on the software
system. They directly serve to achieve
the objective of building the system.
These requirements are usually as-
sumed, often implicitly, to be the invari-
ants of the software system. They are
part of the fundamental assumptions
that the architecture is built upon. Based
on a software system’s core features,
the most relevant quality attributes of-
ten choose themselves; as one partici-
pant reported, “Based on the unique
functional aspects a software system
is targeted to address, the nonfunc-
tional ones often align themselves. ...
A high-frequency quantitative trading
engine with millisecond latency will
automatically emphasize performance,
whereas an airline control system will
immediately focus on reliability.”
Constraints. Requirements that im-
pose constraints on a software system
are usually architecturally signicant.
These can be nontechnical—such as
nancial, time, and developer skill
constraints—or technical—such as
constraints imposed by existing archi-
tectural decisions or by a client’s tech-
nical decisions.
Application environment. Requirements
that dene the environment in which
the software system will run are likely
to be architecturally signicant. Par-
ticipants mentioned examples such as
application servers, the Internet, cor-
porate networks, embedded hardware,
virtual machines, mobile devices, and
so on. Systems running in different en-
vironments often have vastly different
architectures.
Adaptability
Availability
Congurability
Flexibility
Interoperability
Performance
Reliability
Responsiveness
Recoverabilit y
Scalabilit y
Stabilit y
Security
Extensibility
Modularity
Portability
Reusability
Testability
Auditability
Maintainability
Manageabilit y
Sustainability
Supportability
Usability
Figure 3. Software systems’ quality
attributes that participants mentioned during
the study.
44 IEEE SoftwarE | www.computEr.org/SoftwarE
FOCUS: Twin Peaks
Implication on Practice
In this article, we made a distinction
between requirements that have signi-
cant impact on software architecture
and other requirements. This distinc-
tion has helped us focus on ASRs when
dealing with interplay between require-
ments and architecture.
ASRs can be challenging to deal with,
as revealed by our descriptive character-
istics. Descriptive characteristics explain
why ASRs are challenging to handle.
They can also be useful input for devel-
oping evaluation criteria for approaches,
tools, and practices to deal with ASRs.
In practice, there is no label for each
requirement to tell us whether or not it
is architecturally signicant. To make
the distinction practical, we need prag-
matic characteristics to enable us to
identify ASRs. Indicative characteris-
tics provide such pragmatic hints about
the architectural signicance of a re-
quirement. They rely on some knowl-
edge of the solution space.
Heuristic characteristics highlight
requirements that tend to be architec-
turally signicant, using terminology
familiar to people in the problem space.
In contrast to indicators, they can be
used by people who do not have suf-
cient knowledge of the solution space.
They can guide requirements engineers
to ask questions proactively, on con-
cerns that are likely to be architectur-
ally signicant but that users do not
mention. These characteristics have the
potential to bring substantial improve-
ments to the gathering of ASRs by iden-
tifying those ASRs that might other-
wise be ignored.
The twin peaks model suggests that
requirements and architecture should
be treated iteratively and concurrently.
Our observations of the situational na-
ture of ASRs suggest that such itera-
tion is inevitable. Some requirements
are only recognized as architecturally
signicant after architects realize they
need them to make architectural deci-
sions. At this point, architects usually
need to ask requirements engineers to
provide them.
Our ndings also reveal another
interaction between requirements and
architectures: providing feedback on an
architecture’s impact on requirements
to inform requirements decisions and
to avoid committing to infeasible re-
quirements or requirements that cost
more than the value they can generate.
The concrete manifestation of this
nding can be in the form of improved
requirements negotiation—for exam-
ple, if a requirement targets a trade-off
point but doesn’t bring sufcient value
to justify the cost incurred by the corre-
sponding design option, one can nego-
tiate the requirement with the users to
make the requirement less demanding
or drop it altogether.
This also poses challenges to what
used to be traditional thinking that
one should not consider solution space
concerns while gathering requirements.
This can be true for requirements that
are not architecturally signicant.
However, for ASRs, architects’ feed-
back about requirements’ impact can
help with better-informed requirements
decisions. Thus, we suggest that appro-
priate use of solution space knowledge
can help gather and negotiate ASRs
more effectively.
Indicative characteristics also sug-
gest that there should be a closer col-
laboration between requirements
engineers and software architects. De-
velopment teams, processes, and prac-
tices should be organized and designed
in a way that encourages and facilitates
such collaboration, with correspond-
ing tools that encourage exchange
rather than separation of development
activities.
Although it is perhaps contro-
versial, it does appear that
there is a case to be made for
requirements engineers having better
knowledge of software architectural
concerns. We suggest that such knowl-
edge could enable them to gather and
negotiate ASRs more effectively. They
can ask questions of users more au-
thoritatively during requirements elici-
tation. However, we are not arguing
that solutions could determine problem
analysis, but rather inform it and en-
sure that implications of requirements
on architecture (and vice versa) are un-
derstood and communicated.10
Acknowledgments
We thank our study participants for their
contributions and this article’s reviewers for
their prompt and thoughtful comments. This
work was funded in part by SFI Lero grant
10/CE/I1855 and ERC Advanced Grant
2916 52 .
References
1. B. Nuseibeh, “Weaving Together Requi re-
ments and Architectu res,” Computer, vol. 34,
no. 3, 2001, pp. 115–117.
2. R.N . Taylor, N. Medvidov ic, and E .M.
Dasho fy, Software Architec ture: Found ations,
Theor y, and Practice, Wiley, 2009.
3. C. Hofmeister et al., “A General Model of
Software Architec ture Design Derived from
Five Industrial Approaches,” J. Syste ms an d
Software, vol. 80, no. 1, 2007, pp. 106–126.
In practice, there is no label for each
requirement to tell us whether or not it is
architecturally signicant.
march/aprIl 2013 | IEEE SoftwarE
45
4. P. Clements a nd L. Bass, Relati ng Business
Goals to Architecturally Signican t Require-
ment s for Sof tware Systems, tech. note CM U/
SEI-2010-TN- 018, Software E ng. Inst., Carn-
egie Mel lon Univ., 2010.
5. B. Glaser and A . Strauss, The D iscovery of
Grounded Theory: Strategies fo r Qualitative
Research, Aldine Transaction, 1967.
6. S. Adolph, W. Hall, a nd P. Kruchten, “Using
Grounded Theor y to Study t he Experience of
Softwa re Development,” Empiric al Sof tware
Eng., vol. 16, no. 4, 2011, pp. 487–513.
7. J. Corbin and A. Strauss, Basi cs of Qu alit a-
tive Re search: Techniques and Proced ures for
Devel oping G roun ded Theory, 3rd ed., Sage,
20 0 7.
8. M.A. Babar, L. Chen, and F. Shull, “Manag-
ing Variabi lity in Soft ware Product Lines,”
IEEE Software, vol. 27, no. 3, 2010, pp.
89–91, 94.
9. M. Jorgensen and M. Shepperd, “A Systemat ic
Review of S oftware Development Cos t Esti-
mation St udies ,” IEEE Trans. Sof tware Eng.,
vol. 33, no. 1, 20 07, pp. 33–53.
10. L. Rapanotti et al., “Architectu re-Driven
Problem De composit ion,” Proc. 12th IE EE
Int’l R equire men ts Eng. C onf., IE EE , 2003;
doi: 10.1109/ICR E.2004.1335666.
LIANP ING CH EN is a doctoral researcher at Lero —the Irish Soft ware
Engineering Research Centre at the University of Limerick and a senior
software engineer at Paddy Power PLC. His research interests include
software requirements and architecture, and software product lines.
Chen received an MS in soft ware engineering from Nor thwestern Poly-
technical University. Contact him at lianping.chen@lero.ie.
MUHAMMAD ALI BABAR is a reader in software engineering
at Lancaster University and an associate professor at IT University
of Copenhagen, Denmark. His research interests include software
architecture, cloud computing, and soft ware development paradigms.
Ali Babar received a PhD in computer science and engineering from the
Universit y of New South Wales. Contact him at malibaba@itu.dk.
BASHA R NUSE IBEH is a professor of computing at The Open Uni-
versity, UK , and a professor of software engineering at Lero —the Irish
Soft ware Engineering Research Centre at the University of Limerick. His
research interests include software requirements and design, security
and privacy, and technology transfer. Nuseibeh received a PhD in soft-
ware engineering from Imperial College London. He currently serves as
editor in chief of IEEE Transactions on Software Engineering and holds
a European Research Council Advanced Grant and a Royal Society-
Wolfson Merit Award. Contact him at b.nuseibeh@open.ac.uk.
abouT The auThors
ADVERTISER PAGE
Impact 2013 37
IREB 13
John Wiley & Sons, Inc. Cover 4
StarCanada 2013 Cover 3
Advertising Personnel
Marian Anderson: Sr. Advertising Coordinator
Email: manderson@computer.org
Phone: +1 714 816 2139 | Fax: +1 714 821 4010
Sandy Brown: Sr. Business Development Mgr.
Email: sbrown@computer.org
Phone: +1 714 816 2144 | Fax: +1 714 821 4010
Advertising Sales Representatives (display)
Central, Nor thwest, Far East: Eric Kincaid
Email: e.kincaid@computer.org
Phone: +1 214 673 3742; Fax: +1 888 886 8599
Northeast, Midwest, Europe, Middle East: Ann & David Schissler
Email: a.schissler@computer.org, d.schissler@computer.org
Phone: +1 508 394 4026; Fax: +1 508 394 1707
Southwest, California: Mike Hughes
Email: mikehughes@computer.org; Phone: +1 805 529 6790
Southeast: Heather Buonadies
Email: h.buonadies@computer.org
Phone: +1 973 585 7070; Fax: +1 973 585 7071
Advertising Sales Representatives (Classified Line)
Heather Buonadies
Email: h.buonadies@computer.org
Phone: +1 973 585 7070; Fax: +1 973 585 7071
AdvertiSer informAtion • mArch/April 2013
Selected CS articles and columns
are also available for free at
http://ComputingNow.computer.org.
... This mostly includes remodeling software and associated processes to be directly related and compliant with regulatory demands on quality properties (cf. [40]), rarely involving new software assets, processes or functional non-software properties 2 . This effort is distributed across clusters of teams and their assets and processes (e.g., auditing at different levels, know-your-customer checks), leading to several interdependent subcases under the governance and security umbrellas. ...
... We suspect that software-relevant regulation is dominantly concerned with software quality as defined by[40], but we limit the scope of our claims to the case itself. ...
... The digital era is characterized by the unpredictable evolution and frequent changes in software requirements [20]. Factors contributing to this include: ...
Article
Full-text available
The rapid pace of digital transformation is fundamentally altering the landscape of software architecture, posing both significant challenges and unprecedented opportunities. This abstract explores the evolving role of software architecture in the contemporary era, highlighting key trends and issues faced by architects. It examines how traditional architectural principles are being redefined to meet the demands of emerging technologies such as cloud computing, microservices, artificial intelligence, and the Internet of Things (IoT). The abstract also discusses the importance of agility and scalability in modern architectures and the need for continuous integration and delivery (CI/CD) practices. Furthermore, it emphasizes the critical role of security and privacy in the architectural design process amidst increasing cyber threats. Finally, it outlines opportunities for innovation in architectural practices, advocating for a forward-thinking approach that leverages new methodologies and tools to enhance system robustness, flexibility, and sustainability. This exploration provides insights into how software architects can navigate the complexities of digital transformation to build resilient and adaptive systems. We determined the difficulties that professionals in software architecture encounter when creating and maintaining software. Common software architecture tasks at software requirements, design, construction, and testing were covered in our report. Phases of maintenance and the associated difficulties. Our analysis reveals that the majority of these issues are related to process, tools, documentation, and management, and it compiles suggestions to deal with these issues.
Conference Paper
Full-text available
This paper introduces a measurement model for integration architectures and describes the initial validation based on an industrial case study. The work is motivated by the rising challenge of transforming historically grown legacy system landscapes to reduce technical dept in large enterprises while mitigating limitations of competence sovereignty and sparse availability of integration architecture professionals. To address this challenge, the authors describe an easy-to-use approach to classify integration designs and compare their strengths and weaknesses to give guidance on which integration concepts fit best to the needs of the respective use case. These insights can be used on a the one hand to identify potentially problematic integrations that need to be refactored and on the other hand to provide requirements-based guidance for designing new integrations. With this the authors aim to provide enterprise architects with a tool to quantify the architecture fit of the integrations in their information systems landscape while supporting them in prioritizing their efforts. To define the measurement model, the authors analyse established possibilities to classify system architectures and define a taxonomy for integration architectures based on topologies, paradigms and technologies. After defining the subject of measurements, the authors make use of established standards for software quality measuring and define Confidentiality, Availability, Integrity, Flexibility, Throughput and Latency as the metrics to measure integration designs against non-functional requirements. To generate first empirical insights, the authors apply the measurement model to a real-world integration use case that is being refactored in context of a large industrial digital transformation project. By quantifying the gaps of the current integration design and comparing the results of the measurement model with the real-world observations, the authors gain first insights about the validity of their conceptualized approach. The results of the measurements imply, that the current integration using File-Imports has gaps in Confidentiality, Integrity and Latency. Switching to an integration using Webhooks or Change-Data-Capture would close those gaps and would conceptually result in a higher Throughput and a stronger Integrity and Flexibility. These outcomes are in line with the real-world observations, which implies that the conceptualized measurement model works and is fit-for-purpose. Even though the first results are very positive, the authors also identify weaknesses of the approach, so that further research is required for validate and refine the approach.
Chapter
Full-text available
During the process of software architectural design, numer­ous questions arise which must be answered. These questions may be about requirements on the proposed system (the problem space) or about how the system should be designed and developed (the solution space). As questions arise they may be answered immediately, deferred until later, or provisionally answered with an assumption about the answer. The objective of this work was to explore the nature of questions that arise during architecture. We explored the types of questions, how they are organized, how they are tracked, and how and when they are answered. We started by surveying highly experienced architects about their practices with respect to architectural questions. We also performed a controlled experiment with master students about organizing archi­tectural questions that clarified and substantiated the survey data. We learned that architectural questions include slightly more questions about the problem space than the solution space, as well as a minority of ques­ tions related to the managing of the project. We found that architects often use ad hoc methods to organize and track them, although they typically organize them along more than one dimension. We learned also that, about a third of the time, architects make assumptions about the answers to architectural questions in order to make progress on the archi­ tecture. This suggests that some projects may have risks of incorrect design or later costly rework due to inadequate tracking or incorrectly answered architectural questions.
Article
In the past decade, thanks to the powerfulness of deep-learning techniques, we have witnessed a whole new era of automated code generation. To sort out developments, we have conducted a comprehensive review of solutions to deep learning-based code generation. In this survey, we generally formalize the pipeline and procedure of code generation and categorize existing solutions according to taxonomy from perspectives of architecture, model-agnostic enhancing strategy, metrics, and tasks. In addition, we outline the challenges faced by current dominant large models and list several plausible directions for future research. We hope that this survey may provide handy guidance to understanding, utilizing, and developing deep learning-based code-generation techniques for researchers and practitioners.
Article
Complex and large software-intensive systems are increasingly present in several application domains, including Industry 4.0, connected health, smart cities, and smart agriculture, to mention a few. These systems are commonly composed of diverse other systems often developed by different organizations using various technologies and, as a consequence, interoperability among these systems becomes difficult. Many architectural strategies for interoperability have already been proposed; however, selecting adequate strategies is challenging. Additionally, it lacks an overview of such strategies. This work presents TASIS, a typology of architectural strategies for the interoperability of software-intensive systems. We also validated it with 33 practitioners from different countries with an extensive experience in integration projects. This work also offers 12 industry-based association rules that suggest how to combine those strategies to mitigate issues at different interoperability levels. As a result, our typology can serve as a starting point to further aggregate new strategies and, ultimately, supports software architects in designing interoperability-driven architectural solutions.
Article
This study investigates the processes and means of requirements engineering (RE) of software and complex information systems (SWS). The subject of this study is the instrumental means of SWS RE based on the methods of artificial (computational) intelligence (AI). The goal is to improve the accuracy and efficiency of CCD requirements development processes using AI tools by providing better communications between business teams and technical teams and automating complex requirements collection and documentation processes. The tasks are as follows: to analyze the principles and means of integrating AI tools into requirements engineering processes, the development and verification of which is a critical stage in the development of SWS; to determine the problems of using traditional SWS RE methods and perform their comparative analysis with AI-based methods; and to develop a chatbot architecture for requirements validation and identify characteristics of RE processes that are improved through its use. The results. The results of this study demonstrate that AI tools can significantly improve the accuracy, timeliness, and efficiency of requirements development processes and project team communication. An architecture and software solution for an intelligent chatbot for requirements validation is proposed, and the benefits and limitations of its application are discussed. Directions for further development and research regarding the end-to-end implementation of AI tools in IP processes have been developed.
Article
Full-text available
Grounded Theory is a research method that generates theory from data and is useful for understanding how people resolve problems that are of concern to them. Although the method looks deceptively simple in concept, implementing Grounded Theory research can often be confusing in practice. Furthermore, despite many papers in the social science disciplines and nursing describing the use of Grounded Theory, there are very few examples and relevant guides for the software engineering researcher. This paper describes our experience using classical (i.e., Glaserian) Grounded Theory in a software engineering context and attempts to interpret the canons of classical Grounded Theory in a manner that is relevant to software engineers. We provide model to help the software engineering researchers interpret the often fuzzy definitions found in Grounded Theory texts and share our experience and lessons learned during our research. We summarize these lessons learned in a set of fifteen guidelines.
Article
Full-text available
peer-reviewed Variability management (VM) is a fundamental activity of software product line engineering (SPLE). VM explicitly represents software artifact variations for managing dependencies among SPL variants and support their instantiations throughout the SPL life cycle. It involves complex and challenging tasks, which must be supported by effective methods, techniques, and tools. Researchers have studied these challenges and proposed solutions to them for nearly 20 years. This article reports results from a study to systematically review the research and synthesize the evidence regarding the effectiveness of proposed solutions. One Web extra offers a systematic literature review of a study in which the authors assessed 97 papers that either claimed or provided some kind of evaluation of a variability management approach, technique, or tool. The other Web extra is an erratum to this article. SFI
Conference Paper
Full-text available
Jackson's problem frames provide a means of analysing and decomposing problems. They emphasise the world outside the computer helping the developer to focus on the problem domain instead of drifting into inventing solutions. The intention is to delay consideration of the solution space until a good understanding of the problem is gained. In contrast, early consideration of a solution architecture is common practice in software development. Software is usually developed by including existing components and/or reusing existing frameworks and architectures. This has the advantage of shortening development time through reuse, and increasing the robustness of a system through the application of tried and tested solutions. In This work, we show how these two views can be reconciled and demonstrate how a choice of architecture can facilitate problem analysis, decomposition and subsequent recomposition, within the problem frames framework. In particular, we introduce architectural frames - combinations of architectural styles and problem frames - and illustrate their use by applying them to two problems from the literature.
Article
Full-text available
This paper aims to provide a basis for the improvement of software-estimation research through a systematic review of previous work. The review identifies 304 software cost estimation papers in 76 journals and classifies the papers according to research topic, estimation approach, research approach, study context and data set. A Web-based library of these cost estimation papers is provided to ease the identification of relevant estimation research results. The review results combined with other knowledge provide support for recommendations for future software cost estimation research, including: 1) increase the breadth of the search for relevant studies, 2) search manually for relevant papers within a carefully selected set of journals when completeness is essential, 3) conduct more studies on estimation methods commonly used by the software industry, and 4) increase the awareness of how properties of the data sets impact the results when evaluating estimation methods
Article
Full-text available
Software development organizations often choose between alternative starting points-requirements or architectures. This invariably results in a waterfall development process that produces artificially frozen requirements documents for use in the next step in the development life cycle. Alternatively, this process creates systems with constrained architectures that restrict users and handicap developers by resisting inevitable and desirable changes in requirements. The spiral life-cycle model addresses many drawbacks of a waterfall model by providing an incremental development process, in which developers repeatedly evaluate changing project risks to manage unstable requirements and funding. An even finer-grain spiral life cycle reflects both the realities and necessities of modern software development. Such a life cycle acknowledges the need to develop software architectures that are stable, yet adaptable, in the presence of changing requirements. The cornerstone of this process is that developers craft a system's requirements and its architecture concurrently, and interleave their development
Conference Paper
Software architecture has become a centerpiece subject for software engineers, both researchers and practitioners alike. At the heart of every software system is its software architecture, i.e., "the set of principal design decisions about the system". Architecture permeates all major facets of a software system, for principal design decisions may potentially be made at any time during a system's lifetime, and potentially by any stakeholder. Such decisions encompass structural concerns, such as the system's high-level building blocks -components, connectors, and configurations; the system's deployment; the system's non-functional properties; and the system's evolution patterns, including runtime adaptation. Software architectures found particularly useful for families of systems - product lines - are often codified into architectural patterns, architectural styles, and reusable, parameterized reference architectures. This tutorial affords the participant an extensive treatment of the field of software architecture, its foundation, principles, and elements, including those mentioned above. Additionally, the tutorial introduces the participants to the state-of-the-art as well as the state-of-the-practice in software architecture, and looks at emerging and likely future trends in this field. The discussion is illustrated with numerous real-world examples. One example given prominent treatment is the architecture of the World Wide Web and its underlying architectural style, REpresentational State Transfer (REST).
Article
We compare five industrial software architecture design methods and we extract from their commonalities a general software architecture design approach. Using this general approach, we compare across the five methods the artifacts and activities they use or recommend, and we pinpoint similarities and differences. Once we get beyond the great variance in terminology and description, we find that the five approaches have a lot in common and match more or less the “ideal” pattern we introduced. From the ideal pattern we derive an evaluation grid that can be used for further method comparisons.
Book
Most writing on sociological method has been concerned with how accurate facts can be obtained and how theory can thereby be more rigorously tested. In The Discovery of Grounded Theory, Barney Glaser and Anselm Strauss address the equally Important enterprise of how the discovery of theory from data--systematically obtained and analyzed in social research--can be furthered. The discovery of theory from data--grounded theory--is a major task confronting sociology, for such a theory fits empirical situations, and is understandable to sociologists and laymen alike. Most important, it provides relevant predictions, explanations, interpretations, and applications. In Part I of the book, "Generation Theory by Comparative Analysis," the authors present a strategy whereby sociologists can facilitate the discovery of grounded theory, both substantive and formal. This strategy involves the systematic choice and study of several comparison groups. In Part II, The Flexible Use of Data," the generation of theory from qualitative, especially documentary, and quantitative data Is considered. In Part III, "Implications of Grounded Theory," Glaser and Strauss examine the credibility of grounded theory. The Discovery of Grounded Theory is directed toward improving social scientists' capacity for generating theory that will be relevant to their research. While aimed primarily at sociologists, it will be useful to anyone Interested In studying social phenomena--political, educational, economic, industrial-- especially If their studies are based on qualitative data.