An-empirical-investigation-of-architectural-p_2010_Journal-of-Systems-and-So
An-empirical-investigation-of-architectural-p_2010_Journal-of-Systems-and-So
a r t i c l e i n f o a b s t r a c t
Article history: Architectural prototyping is the process of using executable code to investigate stakeholders’ software
Received 10 November 2008 architecture concerns with respect to a system under development. Previous work has established this
Received in revised form 11 June 2009 as a useful and cost-effective way of exploration and learning of the design space of a system and in
Accepted 24 July 2009
addressing issues regarding quality attributes, architectural risks, and the problem of knowledge transfer
Available online 12 August 2009
and conformance. However, the actual industrial use of architectural prototyping has not been thor-
oughly researched so far. In this article, we report from three studies of architectural prototyping in prac-
Keywords:
tice. First, we report findings from an ethnographic study of practicing software architects. Secondly, we
Software architecture
Architectural prototyping
report from a focus group on architectural prototyping involving architects from four companies. And,
Architectural analysis thirdly, we report from a survey study of 20 practicing software architects and software developers.
Architectural evaluation Our findings indicate that architectural prototyping plays an important and frequent role in resolving
Empirical software architecture problems experimentally, but less so in exploring alternative solutions. Furthermore, architectural proto-
types include end-user or business related functionality rather than purely architectural functionality.
Based on these observations we provide recommendations for effective industrial architectural
prototyping.
Ó 2009 Elsevier Inc. All rights reserved.
0164-1212/$ - see front matter Ó 2009 Elsevier Inc. All rights reserved.
doi:10.1016/j.jss.2009.07.049
134 H.B. Christensen, K.M. Hansen / The Journal of Systems and Software 83 (2010) 133–142
(Christensen et al., 2008a; Christensen et al., 2008b). The four com- ers in Danish IT industry. The course was taught by the authors and
panies are: organized as weekend seminars, e-learning activities, and manda-
tory exercises to complete and hand-in. As part of the mandatory
(i) Bang & Olufsen (BeO) produces high end audio products, tele- exercise program, a survey study was handed out to the students.
vision sets, and telephones. The company was founded in Section 5 describes our findings from this study.
1925, in Struer, Denmark. Since the beginning the company
has focused on creating quality products. The IT-organiza- 3. Field studies of architectural prototyping practice
tion of B&O consists of offices in Struer and Århus (Denmark)
and a subsidiary in Estonia, furthermore they work with a In the first phase of the SA@Work project we did a bottom-up,
consultancy company in India. ethnographically-inspired study of software architects. Concretely,
(ii) DSE A/S was established in 1981 in Horsens. The present each company designated a software architect that we would fol-
company is divided into two divisions, Test and Airport, with low, observe, and interact with. Specifically, we applied ‘‘participa-
respective markets. We have followed architects in the air- tory observation” in which we engaged with the software
port division that employs approximately 18 persons. The architects as necessary and did this akin to Miluk’s ‘‘rapid applied
DSE Airport Solutions division supply IT-based solutions ethnography” process (Miluk, 2006).
for Danish and international airports including ATC (Air Traf- The reason for using observations in this phase was twofold.
fic Control) and CNS (Communication, Navigation and Sur- First, we wanted to be as open as possible in our conception of ac-
veillance)/ATM (Air Traffic Management). tual architectural practice while acknowledging, though, that we
(iii) Jyske Bank (JB) is the second largest independent Danish had prior knowledge of the field and that the presence of an obser-
bank, employing some 4000 people in 119 Danish branches. ver changes what is being observed. In the analysis of observations,
The IT organization of Jyske Bank is the largest in Jutland, the presence of the observer thus has to be taken into consider-
designing, implementing, and running the systems of Jyske ation as noted in, e.g., Hammersley’s and Atkinson’s ‘‘reflexive real-
Bank in addition to processing central-government pay- ism” (Hammersley and Atkinson, 1997). Secondly, retrospective
ments and operating a payroll system for the Danish accounts such as interviews are often inaccurate because intervie-
counties. wees may not remember details about their work practice and may
(iv) Systematic Software Engineering (SSE) is Denmark’s largest also not know what is important or relevant for researchers to
privately owned software company. It was founded in know.
1985 and has since grown to over 400 employees, 50 of Fig. 2 shows a timeline of the Phase 1 interactions with software
these employed in the UK and USA. SSE is certified in process architects covering both observations and interviews. The exact
maturity at CMMI level 5. The main business areas are mis- timing and extent of the observations at the individual companies
sion critical systems for the defense and healthcare sectors. depended on the availability of architects and researchers, but we
aimed at having five days of observation at each company.
The SA@Work project was divided into two phases: One striking commonality between work practices of the archi-
tects was that the daily activities of software architects are very di-
Phase 1: Field studies of architectural practice. In this phase we verse and may change frequently according to project needs. This
have followed architects in their work for one and a half also means that specific architectural techniques were often only
to two weeks using ethnographical techniques to glimpsed, something that is also true for architectural prototyping.
observe and record actions, collaborations, artifacts, We only observed direct programming and/or execution of archi-
etc. The observations were complemented with inter- tectural prototypes in a few cases, but through the observation
views and document analysis. and followings interviews, we tentatively concluded the following:
Phase 2: Collaboration between practicing architects and
researchers. During this phase particular aspects of – Architectural prototypes are important. In all companies, critical
architectural work are identified that could be architectural decisions (such as the choice of a user interface
improved, and collaboration executed (intervention). platform or a remote procedure call middleware) had been
taken based on the construction of architectural prototypes.
Sections 3 and 4 describe observations from the two phases However, architectural prototypes complement other, theoreti-
respectively. cal, architectural techniques more than being an essential tech-
nique in its own right. It was however not clear to which extent
2.2. Continuing education course architectural prototypes were used and what were their precise
characteristic?
Our second source is architects and developers enlisted in a – Architectural prototyping needs opportunistic planning. All compa-
continuing education course, Software Architecture in Practice. The nies in our study used an iterative and incremental development
Department of Computer Science at Aarhus University has a long approach in which the activities of the software architect did not
tradition of continuing education in software engineering topics. fit well (Christensen et al., 2008b). Architectural prototyping
The course in question is a 15 ECTS course (equivalent of 1/4 study was often initiated due to uncertainties or risks in the activities
year) aimed at full time employed software architects and develop- that were part of the iterative process, meaning that architects
2007
Aug Sep Oct Nov Dec
JB JB JB
SSE SSESSE SSE
often had to take time out of their schedule to do prototyping (or – analysis of discovery protocol behavior in various scenarios like
even do them at home). One issue that was not clear was in device out-of-range and radio signal shut down,
which phase (e.g., inception, elaboration, construction, or transi- – analysis if the selected technologies ‘‘plays well together”.
tion as in Kruchten, 2003) architectural prototyping was most
useful? As, e.g., audio sources are browsed by showing album covers the
– Architects (and developers) code architectural prototypes. In most prototype included full graphics to verify rendering quality and
cases, the software architects themselves programmed architec- performance.
tural prototypes (often because they were the experts of the
(technical) domain being investigated); at other times, archi- 4.2. Jyske Bank
tects specified the architectural prototype and a (lead) developer
would code the prototype. How the construction of architectural The architect from Jyske Bank described a large experimental
prototypes fitted into the rest of the system construction was, effort to prototype the layering aspects of a novel service oriented
however, not clear? architecture that at the moment is being introduced at the enter-
prise level to supplement and partially replace the present archi-
Among others to investigate these issues further, we initiated tecture. The layering is a traditional three-tier layering with data,
two focus groups with software architects on architectural proto- business, and presentation layers but using a service oriented
typing. The results of these are presented in the next section. approach.
The architectural aspects to be investigated were:
4. Focus groups on architectural prototyping – verification and exploration of proper layering in the architec-
ture with emphasis on achieving loose coupling and low main-
For practical reasons, architects from three of the companies tenance costs,
were present at one focus group workshop and architects from – verify that adequate performance was still attainable,
the last company were present at a separate focus group workshop. – verify the security aspects could be implemented in the layered
The architects were in both cases given a homework assignment: SOA model,
they had to review their past use of coding practices in their archi- – analyze with respect to stability and 24/7 service.
tectural work to identify between three and four instances of using
experimental, code-based, analyses or techniques in their architec- The infrastructure was prototyped along with an example appli-
tural work. Furthermore, they were asked to present one of the in- cation of using it. The example application is a Jyske Bank internal
stances in technical detail at the focus group. They were also given teaching example, KAOS, that is a course administration system.
the paper ‘‘Architectural Prototyping: An Approach for Grounding The KAOS system is well known to the entire bank’s IT staff as they
Architectural Design” by Bardram et al. (2004) as part of the initial have all gone through the same internal training.
assignment.
The first focus group seminar lasted about 6 h and the last 4.3. Systematic Software Engineering
lasted about 2 h. In both cases, it consisted of an introduction by
the authors, describing the definition and characteristics of archi- A Systematic Software Engineering software architect presented
tectural prototyping based upon the aforementioned paper. Next, a ‘‘frontier run” (Danish: ‘‘Frontløb”) which is the company’s term
the companies presented the instances of using architectural pro- for executables that explore technological or architectural issues.
totypes and questions and clarifications were asked by researchers The application explored how to add a hand-held personal digital
as well as the attending architects. The seminar ended by an anal- assistant (PDA) to the company’s Columna product which is an
ysis of the primary cases of architectural prototypes. This analysis electronic patient record (EPR) infrastructure. One functionality
was lead by the authors. The analysis went through each primary of the PDA was scanning medical bar codes.
case study from the companies and clarified whether the aspects The purpose for the prototype was:
and characteristics set forth in Bardram et al. (2004) were applica-
ble or not. – exploration of technical challenges of WiFi communication with
Below the main case study of each company is presented. PDAs using a proprietary Remote Method Invocation (RMI) sys-
tem with large data objects,
4.1. Bang and Olufsen – exploration of the Windows CE programming model,
– analysis of how to make a SOA architecture on Windows CE,
The Bang and Olufsen software architect described a ‘‘vertical – exploration of how to make web services on the Columna server.
demo” for a media library browser for a new line of audio-visual
products. This new line is based upon a product-line architecture The process actually started as two disjoint prototypes, one
that is presently being developed. The device must enable users experimenting with Windows CE and the other experimenting
to have a high quality browsing experience of a centrally stored li- with SOA. As they evolved and architectural decisions matured
brary of available audio and video streams including images and and stabilized, the two prototypes grew into a single one. The
text. architecture prototype code was after the process thrown away
Several architectural aspects were planned to be explored in the but the architectural learning lead into adopting the architecture
prototype: as the reference model for SOA for Columna.
Several prototypes were crafted in an exploration phase for: (i) ‘‘Architectural prototypes are important at my current
work”.
– risk analysis as it was not obvious whether to take on the project (ii) ‘‘Architectural prototypes are used frequently at my current
at all as the existing legacy application ran on 10 year old frame- work”.
works and hardware,
– assessment of whether the developed technologies/components We did not seek quantitative data on frequency (or importance)
as well as the learning outcome would enrich the company’s but rather an insight into these areas, so for both questions we
portfolio of products as the application was somewhat outside used a five-point Likert scale (with 1 being ‘‘highly disagree”, 2
the current set, being ‘‘disagree”, 3 being ‘‘neutral”, 4 being ‘‘agree”, and 5 being
– exploring Microsoft WPF (Windows Presentation Foundation) ‘‘highly agree”). The results are summarized in Fig. 3.
technologies to replace the rendering engine, In summary, three quarters of the participants (15) ‘‘agreed” or
– explore performance and optimization issues with respect to ‘‘highly agreed” to that architectural prototypes are important at
rendering speed to support usability. their current work and more than half of the participants (11)
either ‘‘agreed” or ‘‘highly agreed” to that architectural prototypes
The process included prototypes for learning and experiment- are used frequently at their current work. Conversely, only one par-
ing with reading and rendering a new vector-based map data for- ticipant ‘‘disagreed” (and none ‘‘highly disagreed”) with that are
mat and next a whole series of disjoint prototypes to assess important at their current work whereas four ‘‘disagreed” that
rendering performance using various WPF techniques. Next several architectural prototypes are used frequently (and none ‘‘highly dis-
prototypes were constructed as bit mapped maps were included agreed”). Looking at the data, we see that the scoring for frequency
and a rewrite of the rendering engine as WPF could not handle of use was consistently equal to or lower than the scoring for
the performance requirements. importance (with one exception). A tentative conclusion to this,
The four cases of architectural prototyping will be analyzed in based on the sample of 20 developers/architects, is that architec-
Section 6 together with the survey study. tural prototypes are frequently used and considered important,
but that the frequency of use does not completely match
5. A survey study of architectural prototyping importance.
Fig. 3. Summary of responses to questions on importance and frequency of architectural prototyping. Answers were reported as a five-point Likert scale.
138 H.B. Christensen, K.M. Hansen / The Journal of Systems and Software 83 (2010) 133–142
Fig. 4. Summary of responses to questions on characteristics of architectural prototyping. Answers were reported as a five-point Likert item.
familiar with it (thus hopefully leading to more precise classifica- focused on is performance (in 17 cases) followed by modifiability
tion from their side). (in 8 cases). It is no surprise that performance is the most fre-
The examples of prototypes varied widely, ranging from Web quently studied quality attribute given its general importance
service integration over an object-oriented persistence layer to and its amenability to experimental analysis. However, it is some-
experiments with online replication. The majority of the reported what more surprising that modifiability also plays a large role since
architectural prototypes were experimental (13), whereas only a it is arguably harder to experiment with.
few (3 and 4) were categorized as ‘‘exploratory” or ‘‘other”.
Summaries of responses to statements 1–5 are shown in Fig. 4 6. Analysis
where characteristics are sorted by the degree to which the partic-
ipants agreed with them. As can be seen, apart from statement (iii) An important but easily overlooked conclusion of our empirical
(‘‘Architectural prototypes do not provide functionality per se”), study is:
more than half of the participants agreed with the statements
(and with those more than three quarters of the participants Architectural prototypes are seen as important in industrial prac-
agreed except with statement (v) (‘‘Architectural prototypes ad- tice. The most prevalent type of architectural prototypes seems to
dress the problem of knowledge transfer and architectural confor- be experimental prototypes.
mance”)). Almost half of the participants (9) actually ‘‘disagreed”
or ‘‘highly disagreed” with statement (iii). We will discuss this Sec- Thus our study lends credibility to the conclusions made by Bar-
tion 6. dram et al. (2004).
Looking at the quality attributes addressed in the architectural At a more detailed level, our studies evaluated how the charac-
prototypes (Fig. 5), it is clear that the quality attribute most often teristics of architectural prototypes (see Section 1) were matched
Fig. 5. Summary of classification of the main quality attribute foci of architectural prototypes.
H.B. Christensen, K.M. Hansen / The Journal of Systems and Software 83 (2010) 133–142 139
used by developers to ensure conformance with the intended tives. However, they were all rejected as they did not match the
architecture. performance requirements, thus being of an experimental nature.
Systematic Software Engineering’s PDA prototype code was The present architectural prototype will now be part of an evolu-
trashed after the process and thus not used as conformance tech- tionary prototyping process to explore database issues in the
nique—however the key point of the exercise was the knowledge system.
gained for the architect and the development team. Another observation where architectural prototype usage dif-
Bang and Olufsen stressed this property less but found that the fers from the postulates in Bardram et al. (2004) is with respect
architectural prototyping process worked to increase knowledge to using architectural prototypes to explore alternatives. In sev-
transfer in the team. eral of the cases outlined by the industrial software architects,
The VERDI prototype set from DSE did not squarely fit this char- reasonably thorough but purely theoretical (in the sense outlined
acteristics. On one hand a lot of knowledge had been gained in the in Section 1) analyses where made first until a single candidate
division regarding WPF with respect to programming model and architecture was identified that stakeholders were sufficiently
performance issues but on the other hand it is less a matter of confident would match functional and architectural require-
transferring architectural knowledge from the architect to the ments. It was not until then prototyping was initiated. This is
developers. Also the final ‘‘prototype” did match the performance more in line with the concept of architectural skeletal systems as
requirements and is therefore close to a product quality finished described by Bass et al. (2003) or the usage of executable architec-
component. tural prototypes in Rational Unified Process. The data from the
survey study agrees on this since 65% of the prototype instances
6.6. Discussion were experimental.
We speculate that there is a relation between these two obser-
We conclude that four out of the five postulated characteris- vations: several of the prototypes are actually demonstrators and
tics are supported by the empirical data while data does not sup- the same prototypes are also more akin to skeletal systems than
port the fifth characteristics, no functionality per se. In the survey early explorations (Bang and Olufsen and Jyske Bank). The higher
study, less than half of the architects and developers agree to this cost of making a demonstrator requires a stronger belief that this
characteristic. In the cases presented in the focus group work- is the right architecture to reduce risks of wasted effort. Perhaps
shop, almost all had either domain or end-user functionality as this experience even lessens the architect’s tendency to architec-
part of the prototype. An extreme case was the Bang and Olufsen tural prototype purely architectural concerns.
content browser prototype that included a working user inter- One interesting issue when comparing architectural prototyp-
face having real cover and album data delivered in the system. ing to other architectural exploration and evaluation techniques
One might argue that from a purely performance assessment is cost. We did not probe the question of invested effort into the fo-
perspective this is a waste of implementation resources as per- cus group case studies nor ask for data about this in the survey
formance conclusions could be made by just transmitting realis- study. Nevertheless the discussions in the focus group workshops
tically sized byte arrays with nonsense data over the connectors as well as the perceived robustness and provided functionality of
and simply measure at what pace they arrived. This would lower the presented cases point to the fact that ‘‘substantial” effort is in-
the implementation burden as no real data should be put into the vested. This concurs with the observation that theoretical analyses
system and no GUI implemented and thereby reduce costs.3 precede the prototyping phase and only solutions that are consid-
However, one property not stressed in our previous work but ered feasible but still with some risk elements are subjected to
stressed by several architects is the importance of demonstration architectural prototyping. Moreover, it is also in line with observa-
to stakeholders, typically business decision makers. As one archi- tions by survey study participants that the actual collection and
tect stated: ‘‘‘Have a look’ is the best argument.” If decision mak- analysis of architectural prototype data may in itself be costly. Still,
ers have conflicting or impossible demands, sometimes it would be interesting to investigate this issue further to get quan-
prototypes are simply made to make it evident that they require titative data.
the impossible. Thus additional investments in implementation In the survey study, we also asked participants to outline other
effort are made to make them into working demonstrators. The characteristics of architectural prototypes than the ones that we
answers from the survey study point in the same direction and postulated. While no clear pattern emerged, the participants
add the additional point that persuasion was a characteristic of pointed to interesting problems or challenges when applying
several prototypes in that functionality was built in with the architectural prototyping. This complements our characteristics
deliberate intent of persuading stakeholders to make a specific that primarily points to positive aspects of architectural
architectural decision. prototypes.
Another classification of architectural prototypes as either A common problem in prototyping was that the organization
explorative, experimental, or evolutionary is concerned with the might decide to use the prototype as a basis for development even
architects’ focus on quality attributes (cf. Section 1). While this though it was only intended, e.g., to be used for experimentation
distinction makes sense from a theoretical stand point, the dis- with a specific quality attribute. Thus it is important to clearly state
tinction appeared blurred in industrial practice. Most of the proto- up front and agree on what the purpose of the prototype is. This
types selected by the software architects exhibited both also pertains to measurements on prototypes: if quantitative mea-
explorative as well as experimental traits and most were evolu- surements are made and goals are not set before measuring, the
tionary. The architects found the distinction less interesting from value of prototyping may be dubious.
a practical point of view as they failed to see the operational as- That only part of architectural analysis/design/evaluation is
pects. Some of the prototypes exhibited all three characteristics, considered when building an architectural prototype should also
like for instance in the DSE VERDI project in which several disjoint be taken into account. For example, if focus is on modifiability
prototypes were crafted, each exploring a particular WPF render- when building prototypes and performance is ignored, then a
ing technique, and thus of an explorative nature, testing alterna- ‘‘wrong” architectural decision may be made based on an architec-
tural prototype from the perspective of performance. And, as par-
ticipants pointed out, clearly architectural prototyping is only
3
A risk is obviously still that real-world characteristics of the scenario could be one part of architecture analysis/design/evaluation and must be
missed. Arguably such an uncertainty could also be part of architectural prototyping. complemented by other techniques.
H.B. Christensen, K.M. Hansen / The Journal of Systems and Software 83 (2010) 133–142 141
8. Conclusion References
Kazman, R., Klein, M., Clements, P., 2000. ATAM: Method for Architecture Sjøberg, D., Dyba, T., Jørgensen, M., 2007. The future of empirical methods in
Evaluation. Carnegie Mellon University, Software Engineering Institute. software engineering research, in: International Conference on Software
Kruchten, P., 1995. The 4 + 1 view model of architecture. IEEE Software 12 (6), 42– Engineering, pp. 358–378.
50.
Kruchten, P., 2003. The Rational Unified Process: An Introduction. Addison-Wesley
Professional. Henrik B. Christensen is an Associate Professor in the Department of Computer
Larman, C., Basili, V., 2003. Iterative and incremental development. A brief history. Science at the University of Aarhus. His research interests include Computer Science
IEEE Computer 36 (6), 47–56. education research and software architecture with a special interest in methods,
Mårtensson, F., Grahn, H., Mattsson, M., 2003. An approach for performance tools, and techniques to ensure reliable and flexible architectures. He received his
evaluation of software architectures using prototyping, in: Proceedings of the PhD in Computer Science from the University of Aarhus.
International Conference on Software Engineering and Applications (SEA 2003),
pp. 605–612.
Miluk, G., 2006. Results of a field study of cmmi for small settings using rapid Klaus Marius Hansen is a Professor of Software Engineering at University of Iceland
applied ethnography, Tech. Rep. CMU/SEI-2006-SR-001, Software Engineering (and on leave as Associate Professor at Aarhus University, Department of Computer
Institute, Carnegie Mellon, 2006. Science). His research interests are within experimental software engineering, in
Paulish, D., Gorton, I., Tyree, J., Soni, D. (Eds.), 2007. Proceedings of Working IEEE/ particular software architecture, pervasive computing, and self-managing systems.
IFIP Conference on Software Architecture (WICSA) 2007. IEEE. Klaus has a PhD in Computer Science from Aarhus University.
Shaw, M., Garlan, D., 1996. Software Architecture: Perspectives on An Emerging
Discipline. Prentice-Hall, Inc., Upper Saddle River, NJ, USA.