Deliverable: List of Signifiers

advertisement
Rick Barneveld
Introduction
The title of the paper being discussed is: On the Perception of Software Quality Requirements during
the Project Lifecycle. The goal of this paper is 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. 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. In the section Appendix – Template Deliverable: List of Signifiers, a template is shown of the
List of Signifiers.
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).
Process Deliverable Diagram
To create a clear overview of the method this section shows a Process Deliverable Diagram (PDD). A
PDD is in fact a diagram that consists of two diagrams, one that focuses on the activities used in a
method, and one that focuses on the deliverables that are created in the method(Van de Weerd &
Brinkkemper, 2008). The PDD merges these two diagrams and shows the activities on the left side,
and the deliverables on the right side. The section Process Deliverable Diagram shows the actual
PDD, while in the next two sections the Activities and Concepts are elaborated and explained. All the
processes in the PDD are executed by the same actor. This actor can be a single researcher, or it can
be a team of researchers. In this last case, the processes are executed by several people at the same
time.
Process Deliverable Diagram
0..*
MAIL LIST
0..*
1
CORPUS
BUG REPORT
1
Consists of
Determine Corpora
Select data sources
0..*
COMMIT LOG
1..*
Structure data sources
SINGLE MESSAGE
1..*
Create List of Signifiers
Select Quality Attributes
LIST OF QUALITY
ATTRIBUTES
Find related words and
concepts
CATALOGUE OF SIGNIFIERS
1
1
1
TEST DATA
1
Results in
Analyze data
NUMBER OF OCCURENCES
1..*
Evaluate results
Calculate number of false
positives/negatives
FALSE POSITIVE/NEGATIVE
RATIO
1
Calculate recall
RECALL VALUE
1
Gather results
1
RESULT
Figure 1 - PDD
1..*
Activity Table
Table 1 shows the Activity table that belongs to the Process Deliverable Diagram shown in Figure 1.
An activity table elaborates the activities that are in the PDD. All activities and its sub-activities are
explained and connected to concepts. Those concepts are explained in the next section: Concept
Table.
Activity
Sub-activity
Description
Determine Corpora
Select data sources
Select from all available data sources
of a project, the ones that contain
useful information, like COMMIT
LOGS, BUG REPORTS and the
EMAIL LIST.
Separate all data sources into
SINGLE MESSAGE’s
Define a LIST OF QUALITY
ATTRIBUTES to be researched. An
example can be the ISO/IEC 9126
standard F-R-U-E-M-P(International
Standards Organization, 2001)
Make
a
CATALOGUE
OF
SIGNIFIERS that are somehow
related to the quality attributes
(synonyms, meronyms, etc.).
Check for signifier occurrences. This
means see how many times the
signifiers occur in the data sources
Check how many times a signifier
was falsely linked to a quality
attribute.
Divide the number of correctly
classified occurrences by the total
number of occurrences.
Put together all the data and finalize
the research.
Structure data sources
Create list of Signifiers
Select Quality Attributes
Find related words and concepts
Analyze data
N/A
Evaluate results
Calculate number of false
positives/negatives
Calculate recall
Gather results
Table 1 – Activity table
Concept Table
Table 2 shows the Concept table that belongs to the PDD in Figure 1.
Concept
CORPUS
MAIL LIST
BUG REPORT
COMMIT LOG
SINGLE MESSAGE
LIST OF QUALITY
ATTRIBUTES
CATALOGUE OF
SIGNIFIERS
TEST DATA
NUMBER OF
OCCURRENCES
FALSE
POSITIVE/NEGATIVE
RATIO
RECALL VALUE
RESULT
Table 2 – Concept table
Description
Body of data about the project that is the subject of research.
Examples are MAIL LISTS, BUG REPORTS and COMMIT LOGS
(A Ernst & Mylopoulos, 2010)
Email list that the developers used to communicate with each other
about the project. Messages might include sentences like: “I am going
to work on the UI, to make it easier to use”.(A Ernst & Mylopoulos,
2010)
The list of bugs reported by user and testers of the project. This might
show sentences like: “The program was slow.”(A Ernst &
Mylopoulos, 2010)
The messages that developers submitted with the newly written
source code. Sentences that are in these logs might be: “I drastically
improved the performance speed of component X”.(A Ernst &
Mylopoulos, 2010)
The messages of each of the corpora split up. This is to make sure
reply emails do not result in the same mentioning of the quality
attribute occurs multiple times.(A Ernst & Mylopoulos, 2010)
The Quality Attributes that are being investigated. These usually are
based on an ISO/IEC standard. (International Standards Organization,
2001)
The list of signifiers that are used to see how many times a certain
quality attribute is mentioned in one of the SINGLE MESSAGES of
the CORPORA(A Ernst & Mylopoulos, 2010)
All the data that is needed to do the research, i.e. the LIST OF
QUALITY ATTRIBUTES, CATALOGUE OF SIGNIFIERS and the
SINGLE MESSAGES (A Ernst & Mylopoulos, 2010)
The number of times a certain quality attribute is mentioned in one of
the SINGLE MESSAGE. This number is calculated for each of the
quality attributes that are being researched.(A Ernst & Mylopoulos,
2010)
The number falsely classified occurrences. For instance, if a person’s
job is “usability engineer” and puts that in his email signature, it
should not be classified as an occurrence of the usability attribute.(A
Ernst & Mylopoulos, 2010)
The number of correctly classified occurrences by the total number of
occurrences.(A Ernst & Mylopoulos, 2010)
The results of the study, which shows the degree of change in how
many times a quality attribute is mentioned during the projects
lifecycle.(A Ernst & Mylopoulos, 2010)
References
A Ernst, N., & Mylopoulos, J. (2010). On the Perception of Software Quality Requirements during the
Project Lifecycle. Requirements Engineering Foundation for Software Quality 16th International
Working Conference REFSQ 2010 30 June2 July 2010, 143–157. Retrieved from
http://www.mendeley.com/research/perception-software-quality-requirements-during-projectlifecycle/
Chung, L., & Leite, J. do P. (2009). On non-functional requirements in software engineering. Conceptual
modeling: Foundations and …, 363–379. Retrieved from
http://link.springer.com/chapter/10.1007/978-3-642-02463-4_19
Cleland-Huang, J., Settimi, R., Zou, X. Z. X., & Solc, P. (2006). The Detection and Classification of NonFunctional Requirements with Application to Early Aspects. 14th IEEE International Requirements
Engineering Conference (RE’06) (pp. 39–48). Ieee. doi:10.1109/RE.2006.65
Ernst, N. (2012). Software Evolution: a Requirements Engineering Approach. Retrieved from
https://tspace.library.utoronto.ca/handle/1807/32707
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.
Van de Weerd, I., & Brinkkemper, S. (2008). Handbook of Research on Modern Systems Analysis and Design
Technologies and Applications. (M. R. Syed & S. N. Syed, Eds.). IGI Global. doi:10.4018/978-1-59904887-1
Appendix – Template Deliverable: List of Signifiers
List of Quality Attributes
Here should be a list of (preferably) standardized Quality Attributes of which the occurrence in the
data will be checked. An example might be the ISO-IEC standard F-R-U-E-M-P (Functionality,
Reliability, Usability, Efficiency, Maintainability and Portability).




Quality Attribute 1
Quality Attribute 2
Quality Attribute 3
Etc.
List of Signifiers
A signifier is a word that is connected to one of the quality attributes mentioned before. It might be a
synonym, a meronym or any other way two words can be related. For instance: “slow” might be a
signifier for “Performance”, while it is not a synonym or meronym. Eventually you will get a list of
words related to each of the quality attributes. Each list should be separate and there is no need for
each list to be of equal length.
Quality Attribute 1




Related word 1
Related word 2
Related word 3
Etc.
Quality Attribute 2





Related word 1
Related word 2
Related word 3
Related word 4
Etc.
Quality Attribute 3



Related word 1
Related word 2
Etc.
Quality Attribute 4




Related word 1
Related word 2
Related word 3
Etc.
Download