Method Engineering Assignment 1 * Method Description

advertisement
Method Engineering
Assignment 1 –
Method Description
Rick Barneveld - 3344754
This is a description of the paper: On the Perception of
Software QualityRequirements during the Project
Lifecycle, by Neil A Ernst and John Mylopoulos. It is the
first assignment for the Method Engineering course at
Utrecht University.
2/15/2013
Table of Contents
Introduction............................................................................................................................................. 2
Authors ................................................................................................................................................ 2
Method ................................................................................................................................................ 2
Example ................................................................................................................................................... 3
Deliverable: List of Signifiers ................................................................................................................... 3
Related literature .................................................................................................................................... 4
References ............................................................................................................................................... 5
Introduction
The title of the paper is: On the Perception of Software Quality Requirements during the Project
Lifecycle. In this paper, the authors try to find the answer to two questions, namely:
•
•
Is there an increase of discussion about quality requirements as the project evolves?
Whether different software projects have similar levels of interest about quality
requirements.
The paper is based on a Ph. D dissertation by one of the authors (N. A. Ernst, 2012). From this
dissertation several conference proceedings are distilled.
Authors
The authors of the paper are Neil A Ernst and John Mylopoulos. Both the authors have an academic
background. They have written several publications together, and this is not their first one. Ernst
currently is doing post-doc research at the University of British Columbia in software engineering.
However, the cooperation between the authors began at the University of Toronto, where Ernst did
his Ph. D study, which was about Software Evolution. Mylopoulos is currently still involved at the
University of Toronto, where he is leading research projects. Mylopoulos actually supervised Ernst
during his Ph.D. research.
Method
The research is based on the use of quality attributes as defined in ISO/IEC 9126, so called F-R-U-E-MP (International Standards Organization, 2001). These stand for: Functionality, Reliability, Usability,
Efficiency, Maintainability and Portability. The paper uses eight different parts from an open source
software project for its research, namely Gnome. Gnome is extensively discussed by German (2003).
The steps undertaken to determine how often a certain quality attribute is discussed by developers
and users of a product during the project lifecycles is described in the beginning of the paper. First, a
number of sources where the discussions should be captured from were determined. These were the
developers email conversation of a project, the bug list of the project, etc. All the messages were
handled separately (so email threads were divided into distinct messages). Then, a catalogue of
words associated with each of the six quality attributes was made, to be used in an analysis of all the
messages. Two catalogues were made, “WN” and “ext”. One based on Wordnet, and another list that
extended the first one. WordNet is an online lexical database designed for use under program control
(Miller, 1995). It contains synonyms, meronyms and word relations. The “ext list” extended the “WN
list” with several terms specific to software engineering. After the lists were constructed, the
messages were analyzed with the word catalogues to see how often a certain quality attribute was
mentioned over the project lifetime. The last step of the process was to check how precise the
analysis was, and eliminate errors.
Example
Say a company wants to know if the perspectives of several development teams that work on a
project differ in terms of quality attributes. To do this, the company can use the method described in
the introduction. They can use either an external consultant, or use one of their own employees to
do the research. In this case, we will assume consultant is hired to do the job. The consultant first
needs to gather data to do the research on. He decides to use the commit logs of the project, as well
as the email conversation (from all teams) about the development. The next step is to make a list of
signifiers for the quality attributes. For this, he uses a Wordnet, to discover synonyms and
meronyms. In addition, he interviews some of the developers of every team, to see what terms and
words they associate with the quality attributes. After this, the third step can begin, which is to
analyze the gathered data with help of the list of signifiers. The next step is to figure out how the
false positive ratio is. When this is done, a comparison between the teams can be made. The
consultant can present the results to the board.
Deliverable: List of Signifiers
One of the deliverables of the case described above is a well-defined set of signifiers. This is one of
the most important deliverables, because when the list is incomplete, not every occurrence of a
quality attribute gets noticed, which impairs the research. Of course, the data which contains
occurrences of the quality attributes is also very important. A good starting point for the list of
signifiers is to choose standardized quality attributes, like the before mentioned ISO/IEC standard FR-U-E-M-P. The next thing to do is to get synonyms for all of these quality attributes. The researcher
should also try to find meronyms. These are words or concepts that are a part of some bigger
concept (i.e. room is a meronym for house). The last set of words that needs to be added to the list is
the set of words that are related to the quality attributes (e.g. speed for Efficiency). These relations
can be found via a website like Wordnet, but also by doing interviews with the developers of the
product that is the subject of the research. This last way will probably result in a better list of
signifiers, because now the signifiers that the developers associate with the quality attributes are
added.
Related literature
The paper is more or less an extension of another paper written by the authors (N. a. Ernst &
Mylopoulos, 2007), where they describe the past and the future of requirements for designing
software. To get a better view on how quality requirements may change during the project lifecycle,
another research was conducted. The method in the paper discussed in this description borders on
the field of requirements engineering, as is a method that investigates how the requirements of a
project may change over time. Requirements engineering is an important field in software
development, as there needs to be a good set of requirements in order to develop a good software
product (Sommerville & Sawyer, 1997).The results of the research however, are not conclusive.
Therefore they cannot be used in mainstream Requirement Engineering practice. That this is a
common problem is described by Kaindl et al. (2002).
Other methods to gather data about non-functional requirements are described by (Cleland-huang,
Settimi, Zou, & Solc, 2006). However, this method is more an automated algorithm applied to
sources of data (like unspecified requirements documents and unstructured notes, memos and
meeting minutes). A more in-depth explanation about non-functional requirements is given by
Chung, Cesar, & Leite (2009). As requirements in an open source project like Gnome are not
generated by small team, but by all people that are collaborating in the project, they might be hard
to determine (Scacchi, 2001).
References
Chung, L., Cesar, J., & Leite, P. (2009). On Non-Functional Requirements in Software Engineering, 363–379.
Cleland-huang, J., Settimi, R., Zou, X., & Solc, P. (2006). The Detection and Classification of Non-Functional
Requirements with Application to Early Aspects 2 . Existing NFR classification methods.
Ernst, N. A. (2012). Software Evolution: a Requirements Engineering Approach.
Ernst, N. a., & Mylopoulos, J. (2007). Tracing software evolution history with design goals. Third
International IEEE Workshop on Software Evolvability 2007, 36–41. doi:10.1109/SE.2007.10
German, D. M. (2003). The GNOME project: a case study of open source, global software development.
Software Process: Improvement and Practice, 8(4), 201–215. doi:10.1002/spip.189
International Standards Organization. (2001). ISO/IEC 9126-1:2001 - Software engineering -- Product
quality -- Part 1: Quality model. Retrieved from
http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=22749
Kaindl, H., Brinkkemper, S., Bubenko Jr, J. a., Farbey, B., Greenspan, S. J., Heitmeyer*, C. L., Leite†, J. C. S. D.
P., et al. (2002). Requirements Engineering and Technology Transfer: Obstacles, Incentives and
Improvement Agenda. Requirements Engineering, 7(3), 113–123. doi:10.1007/s007660200008
Miller, G. a. (1995). WordNet: a lexical database for English. Communications of the ACM, 38(11), 39–41.
doi:10.1145/219717.219748
Scacchi, W. (2001). Understanding Requirements for Developing Open Source Software Systems, (July).
Sommerville, I., & Sawyer, P. (1997). Requirements engineering: a good practice guide. John Wiley & Sons,
Inc.
Download