[ieee 2012 ieee first international workshop on the twin peaks of requirements and architecture...

5
What do Software Architects Expect from Requirements Specifications? Results of Initial Explorative Studies Anne Gross, Joerg Doerr Fraunhofer IESE Kaiserslautern, Germany {Anne.Gross, Joerg.Doerr}@iese.fraunhofer.de Abstract—Software requirements specifications (SRS) serve as an important source of information for software architects with regard to deriving suitable architectural design decisions. However, from a software architect’s viewpoint, using these documents efficiently and effectively is often difficult. One could attribute these observations to the fact that SRS also have to address and satisfy the information needs of other document consumers involved in downstream activities like interaction design, user interface design or testing – which is, indeed, very challenging for requirements engineers. In this position paper, we present goals and initial results of explorative studies aimed at investigating information needs that should be fulfilled in SRS from the viewpoint of software architects. In these studies, we gained first insights into the relevance of certain artifact types (like descriptions of interactions or system functionalities) and their suitable representation in terms of notations. Furthermore, the analysis of these initial results revealed variances within the group of software architects regarding information needs. This has motivated the planning and conduction of further studies in the near future that will investigate factors such as expertise or individual motivation, which might influence the information needs from software architects’ viewpoints. Keywords-requirements specification; information needs; empirical studies; software architects; view-based requirements specifications I. INTRODUCTION Software requirements specifications (SRS) play an important role in software development projects as these documents contain all relevant and “official” information that is required to implement a software system [1]. In fact, SRS can probably be considered as one of the main sources of information for software architects. Based on the information documented in these documents, architectural decisions have to be made, including decisions about the system’s structure, i.e., its components, their relations, characteristics, and attributes. These decisions are very crucial, especially regarding the fulfillment of quality requirements (e.g., maintainability, reliability, security). Furthermore, these decisions, which are documented, for instance, in software architecture specifications, again form the baseline for subsequent development activities like component design and coding. This means that inappropriate architectural decisions have a tremendous effect on the final system. However, not only software architects base their decisions on information documented in SRS; other engineers such as usability experts or testers also rely on the knowledge and information documented in these documents. This situation poses a challenge to a requirements engineer who is responsible for creating SRS: Different information needs and expectations have to be addressed in one specification even though they are strongly dependent on the particular role that the document stakeholders have within a project. But even from the isolated viewpoint of a software architect as a consumer of an SRS, this situation leads to several problems [2]: Often they are provided with SRS that contain much more information than actually required to make architectural decisions. This includes information that is important to the architect being spread over different sections, or even the different documents that the SRS comprises. This again makes it hard for the software architect to find and analyze the information. Or the representation of the information in terms of the notations used or the level of detail is inappropriate. Finally, it can also be observed that important information is even missing completely in the SRS. All these observations have a negative impact on the efficient and effective usage of SRS from the viewpoint of their consumers [3]. In the worst case, this could result in document consumers neglecting or ignoring the SRS which finally ends in implementations of software systems that fail to meet the requirements actually documented in the SRS [4]. To tackle this problem, we are currently doing research on “view-based requirements specifications” [2] [3] [4]. The vision underlying this research is to generate views on SRS that address and fulfill role-specific information needs. Hence, the consumers of the SRS are only provided with information that they actually require for their particular role-specific tasks specified on the right level of detail and with suitable notations. However, before such solutions can be realized, it is essential to first gain empirically valid knowledge about the particular information needs from the viewpoint of the various consumers of the SRS. In this position paper, we share initial results that have been obtained when investigating such information needs from the viewpoint of software architects. In Section II, we first present some background information on best-practice artifact types documenting requirements in the context of 978-1-4673-4486-9/12/$31.00 c 2012 IEEE TwinPeaks 2012, Chicago, Illinois, USA 41

Upload: joerg

Post on 09-Feb-2017

213 views

Category:

Documents


1 download

TRANSCRIPT

What do Software Architects Expect from Requirements Specifications?

Results of Initial Explorative Studies

Anne Gross, Joerg Doerr

Fraunhofer IESE

Kaiserslautern, Germany

{Anne.Gross, Joerg.Doerr}@iese.fraunhofer.de

Abstract—Software requirements specifications (SRS) serve as

an important source of information for software architects

with regard to deriving suitable architectural design decisions.

However, from a software architect’s viewpoint, using these

documents efficiently and effectively is often difficult. One

could attribute these observations to the fact that SRS also

have to address and satisfy the information needs of other

document consumers involved in downstream activities like

interaction design, user interface design or testing – which is,

indeed, very challenging for requirements engineers. In this

position paper, we present goals and initial results of

explorative studies aimed at investigating information needs

that should be fulfilled in SRS from the viewpoint of software

architects. In these studies, we gained first insights into the

relevance of certain artifact types (like descriptions of

interactions or system functionalities) and their suitable

representation in terms of notations. Furthermore, the analysis

of these initial results revealed variances within the group of

software architects regarding information needs. This has

motivated the planning and conduction of further studies in

the near future that will investigate factors such as expertise or

individual motivation, which might influence the information

needs from software architects’ viewpoints.

Keywords-requirements specification; information needs;

empirical studies; software architects; view-based requirements

specifications

I. INTRODUCTION

Software requirements specifications (SRS) play an important role in software development projects as these documents contain all relevant and “official” information that is required to implement a software system [1]. In fact, SRS can probably be considered as one of the main sources of information for software architects. Based on the information documented in these documents, architectural decisions have to be made, including decisions about the system’s structure, i.e., its components, their relations, characteristics, and attributes. These decisions are very crucial, especially regarding the fulfillment of quality requirements (e.g., maintainability, reliability, security). Furthermore, these decisions, which are documented, for instance, in software architecture specifications, again form the baseline for subsequent development activities like component design and coding. This means that inappropriate architectural decisions have a tremendous effect on the final system.

However, not only software architects base their decisions on information documented in SRS; other engineers such as usability experts or testers also rely on the knowledge and information documented in these documents. This situation poses a challenge to a requirements engineer who is responsible for creating SRS: Different information needs and expectations have to be addressed in one specification even though they are strongly dependent on the particular role that the document stakeholders have within a project.

But even from the isolated viewpoint of a software architect as a consumer of an SRS, this situation leads to several problems [2]: Often they are provided with SRS that contain much more information than actually required to make architectural decisions. This includes information that is important to the architect being spread over different sections, or even the different documents that the SRS comprises. This again makes it hard for the software architect to find and analyze the information. Or the representation of the information in terms of the notations used or the level of detail is inappropriate. Finally, it can also be observed that important information is even missing completely in the SRS. All these observations have a negative impact on the efficient and effective usage of SRS from the viewpoint of their consumers [3]. In the worst case, this could result in document consumers neglecting or ignoring the SRS which finally ends in implementations of software systems that fail to meet the requirements actually documented in the SRS [4].

To tackle this problem, we are currently doing research on “view-based requirements specifications” [2] [3] [4]. The vision underlying this research is to generate views on SRS that address and fulfill role-specific information needs. Hence, the consumers of the SRS are only provided with information that they actually require for their particular role-specific tasks specified on the right level of detail and with suitable notations.

However, before such solutions can be realized, it is essential to first gain empirically valid knowledge about the particular information needs from the viewpoint of the various consumers of the SRS.

In this position paper, we share initial results that have been obtained when investigating such information needs from the viewpoint of software architects. In Section II, we first present some background information on best-practice artifact types documenting requirements in the context of

978-1-4673-4486-9/12/$31.00 c© 2012 IEEE TwinPeaks 2012, Chicago, Illinois, USA41

information systems. These artifact types have been the subject of studies investigating information needs from software architects’ viewpoints. The goals and results of these studies are presented in Section III. The paper concludes with a summary and outlook on future work in Section IV.

II. ARTIFACT TYPES (BACKGROUND)

According to [8] the term “information need” is characterized as “information seeking towards the satisfaction of needs”. Transferring this to the context of requirements engineering means that we have to investigate information that document consumers (like software architects) seek in an SRS to satisfy their needs. Typically, information is specified in an SRS by creating artifacts such as persona descriptions of supported stakeholders or UML activity diagrams visualizing a certain business process. These artifacts documenting the requirements can basically be categorized into artifact types, such as descriptions of stakeholders, descriptions of business processes, descriptions of goals, etc.

In the following, we briefly introduce several best-practice artifact types that have been the subject of the studies presented in this paper. These artifact types are based on applying the Task-Oriented Requirements Engineering

Framework (short: TORE) a well-proven approach when eliciting and specifying requirements in the context of information systems development [5]. Following this approach, system functionalities are derived systematically from the goals and tasks of the stakeholders who are to be supported by the system to be developed. To achieve this, requirements are refined by making and documenting decisions across different levels of abstraction. Figure 1 illustrates the various decision points and abstraction levels underlying this framework.

Figure 1: TORE Framework

A. Artifacts on Goal and Task Level

On this first level of abstraction, decisions are made regarding (1) stakeholders to be supported by the system, (2) goals that these stakeholders have and that should be fulfilled by the system, and (3) stakeholder tasks that operationalize these goals. Elicited information related to these decisions is specified in the form of artifacts by using appropriate notations. For instance, to document all relevant stakeholder information like role, work context, age, gender, language, educational background, etc., role descriptions and personas [6] can be used. The elicited goals and their relationships as well as possible conflicts can be documented in artifacts such as goal descriptions or goal graphs [7]. Finally, information

regarding stakeholder tasks is typically documented in the form of textual task descriptions (see Figure 2).

Figure 2: Task description (example)

B. Artifacts on Domain Level

The second abstraction level according to TORE is dedicated to further analyzing and refining the tasks identified before. This includes making decisions related to

activities currently being performed to execute the tasks (“as-is activities” / “as-is workflows”)

how the task execution will change with the introduction of the system (“to-be activities” / “to-be workflows”)

responsibilities of the system within the future task execution (i.e., identification of activities that are either automatically executed by the system or require interaction between the system and an actor)

domain data relevant for the execution of the tasks

To document all elicited information related to these decisions, various artifacts are created, comprising textual scenario descriptions, semi-formal / graphical process descriptions, e.g., in the form of UML activity diagrams [9], BPMN [10], or EPC models [11]. The specification of domain data often results in data models using UML class diagrams or entity-relationship diagrams. Finally, system responsibilities are typically visualized in the form of UML use case diagrams.

C. Artifacts on Interaction Level

On this last level of abstraction, all activities supported by the system (as identified in the decision point “System Responsibilities”) are further refined and specified. Decisions on the Interaction Level are related to

system functionalities that the system offers

how an actor (either human or external system) interacts with the system

data that is exchanged during interaction

logical grouping of system functionalities into workspaces

To document all information related to these decisions,

artifacts are created that comprise system function descriptions, (see Figure 3) interaction descriptions (e.g., in the form of use case descriptions), and descriptions of interaction data in the form of data models. UI structures are used to logically group common functionalities (i.e., system functions, use cases, and data) into workspaces.

42

All artifact types that have been introduced in this section have been the subject of studies that aimed to investigate the usefulness of these artifact types for architectural tasks.

Figure 3: System function description (example)

III. STUDIES

In this section we introduce goals, setting and results of three explorative studies. The overall research goal that has been addressed in these studies can be stated as:

This research goal has been refined into further sub-goals

following the GQM paradigm [12] (see Table 1).

Table 1: Refined research goals

A. Eye-tracking Study

In the following, we present setting and results of an eye-tracking study that has been planned and conducted with two experienced software architects to investigate the research goals stated above (G1_1 and G1_2).

1) Setting: The study object of this study was a given

SRS created within a real software project. The

specification comprised two documents (about 280 pages in

total). These documents were created by applying the TORE

framework and hence included a lot of artifacts types

specifying information related to the decision points

introduced in the background section of this paper. To

document these artifact types, several notations were used –

often also in combination (e.g., semi-formal descriptions

(UML activity diagrams) supplemented with unstructured

textual descriptions in case of “to-be workflows”). The task of the participants was to analyze the SRS (see

Figure 4). That is, while “thinking aloud”, the participants had to read the documents and judge the relevance of the documented artifact types and notations used to specify the artifact types. For this purpose, they had to imagine the situation of designing an architecture based on the information provided in the specification. In addition to the thinking aloud comments, the analysis of the data collected via an eye-tracking device allowed us to observe how the participants browsed through the documents and which sections got their attention.

Figure 4: Participant in eye-tracking study

Finally, in order to also collect quantifiable data for the purpose of statistical analysis, a questionnaire was prepared [13]. This questionnaire was filled out by the participants after the completion of the document analysis. In this questionnaire, they were asked to evaluate the usefulness of artifact types such as stakeholder descriptions, task descriptions, interaction descriptions, etc. on a scale from 1 = “very important” to 4 = “unimportant”. In addition, the questionnaire also captured information about whether the notations used to document the artifact types were considered to be useful for analyzing and understanding the information documented in the SRS – or whether they preferred other notations. The questionnaire also explicitly asked for any information that was missing in the SRS. The participants were not restricted by any time limitations.

2) Results: The analysis of the questionnaire regarding

RQ1 revealed that artifact types documenting information

about system responsibilities, data, system

functionalities, interactions, technical constraints as well

as stakeholder goals are very important for the

architecture experts who participated in this study (see

Table 2, column “Eye-Tracking”). Tasks and related

workflow descriptions as well as stakeholder descriptions

were also considered to be helpful but not strongly required. Regarding the notations (G1_2), the participants preferred

either structured text (e.g., in the form of bullet lists) where

Research Goal G1: Investigate information needs regarding SRS from the viewpoint of software architects

G1_1: Investigate best-practice artifacts types (see Section II) with respect to their usefulness from the viewpoint of software architects G1_2: Investigate representations of best-practice artifact types (i.e., notations) with respect to their usefulness from the viewpoint of software architects

43

important information is highlighted or semi-formal / graphical representations as these types of notations support the efficient analysis and mental processing of the information. Based on the “thinking aloud” comments, we understood that this is indeed very important for software architects as they have to detect functionalities that share common characteristics (such as data requirements or qualities).

Table 2: Relevance of artifact types (average ratings)

B. Studies in Practical Course

In the following, we present setting and results of two studies conducted in a practical software engineering course to investigate the research goal G1_1 (see Table 1).

1) Goals and Tasks: The participants of the first study

(Practical Course 1) were 13 students (9 computer science

students and 4 business administration students with

specialization in computer science) enrolled in a practical

software engineering course at the University of

Kaiserslautern. Prior to this practical course, the students

had been taught the principles of software engineering in a

separate semester course. In the subsequent practical course,

they basically had to develop an account management

system for a real customer. The practical course took about

three months, during which the students (divided into

groups of 4 -5 students) had to run through a complete SE

process, comprising activities like requirements engineering,

architecture design, UI design, implementation, and testing. After the students had completed the architecture design

phase, we captured the importance and usefulness of previously specified artifact types for architecture design by means of a questionnaire [13]. This questionnaire was basically designed in accordance with the questionnaire used in the eye-tracking study. That is, the importance of typical TORE-related artifact types (see Section II) for architecture design was rated on a scale from 1 (“very important”) to 4 (“unimportant”). In addition, we explicitly asked for any missing information and explanations about why certain artifact types are important. The SRS created by the students was also done by applying TORE, which had been taught in the previous software engineering course. In the practical course, the students also followed a set of specification guidelines, which included suitable templates supplemented with examples for specifying information related to the various artifact types. A first study run took place during the summer semester 2011. The study was recently repeated

within the scope of the same practical course currently being offered at the Computer Science department (Practical Course 2). All conditions are the same as in last year’s study, except for the development tasks. This year the students are asked to develop an information system to support the planning and organization of a social event. As of now, we have received the evaluation from five students.

2) Results: At first glance, the analysis of the data

collected with the questionnaire (see Table 2, columns

“Practical Course 1” and “Practical Course 2”) shows an

interesting observation: Comparing the average values

reveals only little consensus between the participants of

the eye-tracking study and the students of the two

practical courses. When we compare the results of two practical courses,

we can basically detect an agreement related to the relevance of the artifact types. With the only exception of the as-is activities, the average values of the collected data between the two groups can be considered quite homogenous.

A final and interesting observation we made regarding the data collected in the two groups of students were variances in the ratings given by the students. That is, in some cases it could be observed that some students rated the relevance of certain artifacts as being very important, whereas others rated these artifacts as rather unimportant. This is interesting, as all the participants had the same expertise, previous knowledge, and tasks within the project.

IV. CONCLUSION

In this paper, we presented the goals, settings, and results of three explorative studies. These studies were conducted to get an initial understanding of the information needs to be addressed in SRS from the viewpoint of software architects. For this purpose, we investigated research goals aimed at investigating the relevance (G1_1) and suitable representation (G1_2) of best-practices artifact types typically created in the context of requirements engineering activities for information systems. Our main findings related to these research goals can be summarizes as:

Descriptions of system functions and interactions have been identified as being very important artifact types in all three studies (refers to G1_1).

Artifacts types documenting information about system responsibilities, data, system functionalities, interactions, technical constraints, as well as stakeholder goals are very important for the software architecture experts who participated in the eye-tracking study (refers to G1_1)

There was only little consensus between the participants of the eye-tracking study (i.e., software architecture experts) and the participants of the studies in the two practical courses (i.e., students). A comparison of the results between the studies in the two practical courses (i.e., between students) revealed quite homogenous results (refers to G1_1)

44

The analysis of the data within the group of students revealed strong variances in some cases (refers to G1_1)

Regarding the notations, the software architects who participated in the eye-tracking study preferred either structured text (e.g., in the form of bullet lists) where important information is highlighted or graphical representations (refers to G1_2).

The results we have obtained so far basically prove that

the problem of different information needs really exists and that empirical investigations and derived solutions like “view-based requirements specification” might have the potential to contribute to this problem.

Especially the differences between the eye-tracking study and the studies conducted in the practical courses as well as the variances detected within the group of students motivated us to plan and conduct further empirical studies in the near future. These studies will especially be intended to investigate and control possible factors influencing information needs.

The results achieved in our initial explorative studies presented in this paper indicate that factors such as expertise, the complexity of the system to be developed, or even individual factors like personal motivation might influence the relevance of artifacts and hence the information needs.

That is, research goal (G) and related hypotheses (H) that we aim to investigate in the future include:

Table 3: Future research goal and hypotheses

Based on such knowledge, we will be able to interpret the information needs more reliably and thus enhance solutions like “view-based requirements specifications”.

Furthermore, we will collect further statistical data related to the research questions stated in Table 1 in order to draw empirically sound and valid conclusions about the information needs. Besides the viewpoint of software architects presented in this paper, we will also investigate information needs from the viewpoints of other consumers of SRS, like usability experts and testers. As of now, we have conducted initial studies with usability experts and the initial results have already revealed differences between the different roles [2].

REFERENCES

[1] I. Somerville, “Software Engineering”, 7th Edition, Pearson Educational Limited, 2004, pages 136-140

[2] A. Gross and J. Doerr: “What you need is what you get! – the Vision of View-based Requirements Specifications”, 20th IEEE International Requirements Engineering Conference, 2012, to appear

[3] Adam, S.; Riegel, N.; Gross, A.: “Focusing on the “Right” Requirements by Considering Information Needs, Priorities, and Constraints”, REEW’12, 2012

[4] Gross A.: “Perspective-based Specification of Efficiently and Effectively Usable Requirements Documents”. In: Proceedings of Doctoral Symposium RE’10, Sydney 2010

[5] S. Adam, J. Doerr, M. Eisenbarth, A. Gross, “Using Task-oriented Requirements Engineering in Different Domains – Experiences with Application in Research and Industry”, 17th IEEE International Requirements Engineering Conference, RE '09, 267-272, 2009

[6] A. Cooper, “The Inmates Are Running the Asylum: Why High-Tech Products Drive Us Crazy and How to Restore the Sanity”. Indianapolis, USA, 1999

[7] E. Letier and A. van Lamsweerde, “Deriving operational software specifications from system goals” SIGSOFT Softw. Eng. Notes 27, 6 119-128, 2002

[8] T.D. Wilson “On user studies and information needs”, Journal of Documentation, Vol. 37 Iss: 1, pp.3 – 15, 1981

[9] D. Marlon and A. ter Hofstede, “UML Activity Diagrams as a Workflow Specification Language” in UML» 2001 — The Unified Modeling Language. Modeling Languages, Concepts, and Tools”, pp. 76-90, 2001

[10] S.A. White and D. Miers, “BPMN Modeling and Reference Guide - Understanding and Using BPMN”, Future Strategies Inc., Lighthouse Pt, FL, ISBN-13: 978-0977752720, 2008

[11] G. Keller, M. Nüttgens, and A.W. Scheer, “Semantische Prozeßmodellierung auf der Grundlage Ereignisgesteuerter Prozeßketten (EPK)”, Universität des Saarlandes , 1992

[12] V.R. Basili, G. Caldiera, and H. D. Rombach, “Goal Question Metric Paradigm”, in: Encyclopedia of Software Engineering, Volume 1, pp. 528-532, John Wiley & Sons, 1994.

[13] Gross A.; Doerr J.: Investigating Information Needs - Elicitation Guidelines, Fraunhofer IESE Report 033.12/E, 2012

G2: Investigate factors with respect to their influence on information needs related to SRS from the viewpoint of different software architects. H2_1: The experience level related to architecture engineering has an influence on information needs. H2_2: The familiarity with the domain and scope of a system to be developed has an influence on information needs. H2_3: The individual modes of operation and personal motivation have an influence on information needs. H2_4: The software engineering process that is followed within a software engineering project has an influence on information needs.

45