Beruflich Dokumente
Kultur Dokumente
By
SUBHAJIT DATTA
Degree Awarded:
Summer Semester, 2006
The members of the Committee approve the Thesis of Subhajit Datta defended on June
30, 2006.
Lois Hawkes
Committee Member
Alec Yasinsac
Committee Member
Approved:
The Office of Graduate Studies has verified and approved the above named committee members.
ii
To Reshmi,
New and Renewing...
iii
ACKNOWLEDGEMENTS
I take this opportunity to acknowledge the help and support of the members of my thesis
committee.
I thank my Advisor/Major Professor Dr Robert van Engelen for initiating me into
the culture of academic research. I am grateful for his encouragement and assistance
in disseminating research results to the broader academic community through conference
presentations and publications. I appreciate the independence Dr van Engelen gave me in
exploring my research interests, and his valued guidance once this thesis topic was chosen.
Dr Lois Hawkes has been the source of continuous counsel regarding the great opportu-
nities at our department’s graduate program. I thank her for taking interest in my research
and for her suggestions in improving this thesis.
I consider myself fortunate to have taken Dr Alec Yasinsac’s Software Engineering class
in my first term at the Department of Computer Science. It offered an especially insightful
view of the subject. I thank Dr Yasinsac for his valuable inputs in my research.
I also thank Mr Jeff Bauer, Mr Rajiv Kaushik, and Mr Somnath Chatterjee of FSU’s
University Computing Services (UCS) for allowing me to apply the metrics on one of UCS’s
projects as a case study.
This is also the time to remember the small band of family - my mother, brother, and
wife - and friends, Anirban, Saunak, and Arunanshu (alas, in memoriam) who were always
convinced I should return to graduate school, at times more than I was. Their conviction
won.
iv
TABLE OF CONTENTS
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
1. PREAMBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 The Research in Context . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Thesis Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Research Roadmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Research Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. RELATED WORK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.1 General Idea of Software Metrics . . . . . . . . . . . . . . . . . . . . . . 8
4.2 Metrics for Software Design and Development . . . . . . . . . . . . . . . 9
4.3 Metrics for Managing Requirements . . . . . . . . . . . . . . . . . . . . . 9
4.4 Our Perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
v
8.2 Scope for applying the metrics . . . . . . . . . . . . . . . . . . . . . . . . 27
8.3 Iteration 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.4 Iteration 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8.5 Insights and Recommendations . . . . . . . . . . . . . . . . . . . . . . . 31
8.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9. FUTURE WORK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
9.1 The General Idea of an Automated Tool . . . . . . . . . . . . . . . . . . 34
9.2 Design Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9.3 Implementation Perspective . . . . . . . . . . . . . . . . . . . . . . . . . 36
10.CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
APPENDIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
BIOGRAPHICAL SKETCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
vi
LIST OF TABLES
7.1 M utation V alue, M utation Index and Dependency Index for requirements
of I1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
7.2 M utation V alue, M utation Index and Dependency Index for requirements
of I2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.3 M utation V alue, M utation Index for requirements of I3 . . . . . . . . . . . 24
vii
LIST OF FIGURES
viii
ABSTRACT
Managing the effects of changing requirements remains one of the greatest challenges of
enterprise software development. The iterative and incremental model provides an expedient
framework for addressing such concerns. This thesis proposes a set of metrics – M utation
Index, Component Set, Dependency Index – and a methodology to measure the effects
of requirement changes from one iteration to another. To evaluate the effectiveness of the
proposed metrics, sample calculations and results from a real life case study are included.
Future directions of our work based on this mechanism are also discussed.
ix
CHAPTER 1
PREAMBLE
In this chapter we outline the broad context of this thesis. The background of the research
problem is discussed; we then present the thesis statement, a research roadmap, and list
related publications generated from this research.
1
have one or more of the following features : support large scale business processes, need
to respond to changing user needs, bound by business and technological constraints, and
whose soundness of design and implementation is of material interest to different groups of
stakeholders.
The aim of this thesis is to demonstrate the mechanism and benefits of using metrics to
introduce a degree of objectivity in software design and development. Such objectivity facil-
itates the replication of expedient design decisions across different teams and development
projects. It also encourages the automation of certain facets of the design process, thereby
aiding the propagation of effective design idioms.
1.3.1 Conception
Genesis of the metrics-oriented idea involved understanding its scope and relevance in the
software development life cycle, along with reviewing existing literature in the area.
1.3.2 Formulation
Specifying the metrics through mathematical constructs, ascribing semantics to the metric
values, and specifying the boundary conditions constituted the formulation of our ideas. We
have also suggested a process for metrics application and interpretation, and delineated the
workings of this process through sample calculations.
2
1.3.3 Verification
Verification has been done using a real life case study - a development project of Florida
State University’s (FSU) University Computing Services (UCS). Results from the case study
illustrate the use of the metrics and underscore their benefits.
This paper discusses the central theme of the thesis, deriving the metrics and illustrat-
ing their use [1].
In this paper a metric is proposed to help decide which component is best modeled as
an aspect vis-a-vis a class in enterprise software design [2].
3. Subhajit Datta. Agility Measurement Index A Metric for the Crossroads of Software
Development Methodologies. Proceedings of the 44th ACM Southeast Conference
(ACMSE 2006), Melbourne, FL, March 10–12, 2006, pp. 271-273.
4. Subhajit Datta. Integrating the FURPS+ Model with Use Cases - A Metrics Driven
Approach. Supplementary Proceedings of the 16th IEEE Symposium on Software
Reliability Engineering (ISSRE 2005), Chicago, IL, November 7–11, 2005, pp. 4.51-
4.52.
3
This paper proposes the Fidelity Register, a metric to combine use cases with the
FURPS+ model [4].
4
CHAPTER 2
INTRODUCTION
The iterative and incremental model is widely used for enterprise software development. The
essence of this approach involves :
• recognizing that requirement changes – even while a software system is being designed
and built – are inevitable,
• developing software through a controlled and coordinated sequence of steps going back
and forth over the development stages of requirement specification, analysis, design,
implementation and test.
Each set of such stages constitutes an iteration while the additive realization of the system’s
functionality results in its incremental development. Unlike the traditional Waterfall Model
which insists on a chimerical freezing of requirements before any subsequent activity can
start, (a condition almost never satisfied in non-trivial systems), the iterative and incremental
paradigm seeks to successfully accommodate shifting stakeholder needs. Thus the focus
revolves around efficient tracking of the changing requirements and understanding effects of
such change on the system’s design. In this thesis we present a mechanism for quantitative
evaluation of the effects of changing requirements. The following metrics are derived:
• Mutation Index
• Component Set
• Dependency Index
We also suggest a methodology for applying and interpreting the metrics. Following the
introduction, we discus the context of the metrics and review related work. We next
5
underscore the assumptions and derive the metrics. The subsequent chapter proposes a
methodology - a process wrapper around the metrics and gives sample calculations to outline
our approach. Next, results from a case study are presented to illustrate the use of metrics
in a real life software development project. Finally, we present the idea of an automated tool
based on the metrics, followed by concluding remarks.
6
CHAPTER 3
Analysis and design are vital activities in the software development life cycle (SDLC). This
is when the description of the system in the user’s language - captured in requirement
specifications and illustrated through use cases - is first sought to be interpreted in the
developer’s idiom by introducing the essential formalism that helps clarify the internal
workings of the system. “An analysis model can be viewed as a first cut at a design model
(although it is a model of its own), and thus an essential input when the system is shaped
in design and implementation” [5].
During requirement specification and use case modeling, the focus is principally on
understanding how the user derives value from the behavior of the system; each usage
scenario is deliberately viewed as atomic and independent of others. Analysis discovers the
significant perspective of interaction; how the components must collaborate to deliver not
just separate slices of functionality but one cohesive system that facilitates understanding,
implementation and maintenance. Design focusses on the nature, level, causes, and
consequences of this interactive collaboration to reach an optimal resolution of the various
demands and constraints.
The set of metrics Mutation Index, Component Set and Dependency Index, collectively
isolate the effects of changing requirements on the collaborating system components from
one iteration to another. The metrics clarify the consequences of requirement changes to the
stakeholders, adjusting project schedule and budget based on such change and discerning
the drivers of overall architecture early in the life cycle.
Metrics, requirements and their relation to system architecture have been issues of
enduring interest in the software engineering community. We briefly review some existing
work in the next chapter.
7
CHAPTER 4
RELATED WORK
Software metrics have been the focus of research attention ever since software engineering
began addressing deepening complexity. We give below a brief overview of work that relates
to our research.
8
4.2 Metrics for Software Design and Development
Cohesion and Coupling are key themes in understanding software design, their measurements
have been the focus of several studies [15], [16]. Chidamber and Kemerer present a
widely referenced set of object oriented software metrics in [17], [18]. Harrison, Counsell
and Nithi have evaluated a group of metrics for calibrating object-oriented design [19].
Object oriented analysis and design (OOAD) offer significant benefits in reducing complexity
through expedient modeling of the problem domain and efficient delegation of responsibility.
COCOMO and COCOMO II [20] are primary among several models for estimating cost,
effort, and schedule of software development activity. These are useful in the planning and
execution of large software projects.
9
In view of the related work mentioned in this chapter, our research addresses the
unexplored questions, how do changing requirements affect existing design, and how can
the design be modified to mitigate the impact ?
10
CHAPTER 5
During analysis and design, each requirement is scrutinized to ascertain the broad layers
of the software system that will be required for its fulfillment. (Fulfillment is intuitively
understood to be satisfying any user defined criteria to judge whether a requirement has been
implemented to her satisfaction.) At this level the software system may be segregated into
the layers of Display, P rocessing and Storage. Analysis reveals how these three categories
can combine in a feasible design to relate to a particular requirement.
We make the following assumptions:
• The Display, P rocessing and Storage aspects may be associated with the three
basic stereotypes of analysis classes; Boundary, Control and Entity in object oriented
11
Figure 5.1: Abstraction of software system into layers
analysis [5]. The following derivation is based on this mapping; for non object oriented
systems, corresponding components/modules may be substituted. The derived metrics
are independent of Object Oriented Analysis and Design (OOAD) principles.
• System refers to the software under development along with its interfaces. Component
refers to logical/physical entities whose interaction is necessary for the working of the
system.
12
CHAPTER 6
Our objective is to devise metrics that can monitor the extent of change a requirement
undergoes across iterations, and the level of interaction between components fulfilling a
requirement. Thus we will be able to isolate the effects changing requirement on system
design and suggest strategies to manage such impact.
We treat a software system as a collection of discrete components and their collaborations.
Analysis helps in identifying the components, and design governs their interaction. By way
of illustration, the classes of an object oriented system are the components, whereas their
collaboration is given by the method calls issued by the instances of classes (i.e. objects) on
one another.
The metrics we now derive are meant to be heuristics for understanding and resolving
the issues related to the evolution of a software system driven by customer needs. Analysis
and design involve frequent decision making - choosing one option over another based on a
gamut of (often conflicting) inputs. These metrics introduce an element of objectivity into the
process such that the rationale behind the decisions can be clearly justified, communicated
and documented. When automated, the mechanism can also expedite the analysis and
design of complex systems with closely related requirements by reducing the manual labor
of calculating and interpreting the metrics.
For a system, let every requirement identified in the requirement workflow be uniquely
named as R1 , R2 , R3 , ..., Rn . Between iterations In−1 and In each requirement is annotated
with its M utation V alue; a combination of the symbols D, P and S. The symbols stand
for:
D ≡ Display(1)
P ≡ P rocessing(3)
13
S ≡ Storage(2)
The parenthesized numbers denote the W eights attached to each symbol. The combi-
nation of more than one symbol signifies the addition of their respective W eights, thus:
P D ≡ DP ≡ 1 + 3 = 4
SD ≡ DS ≡ 1 + 2 = 3
SP ≡ P S ≡ 3 + 2 = 5
SP D ≡ ... ≡ DP S ≡ 1 + 3 + 2 = 6
The Weight assigned to each category of components – Display, P rocessing and Storage
– is a relative measure of their complexities. (Complexity here refers to how intense
the design, implementation, and maintenance of a component are in terms of developer
effort.) P rocessing components usually embody application logic and are most design
and implementation intensive. Storage components encapsulate the access and updating of
application data stores; their level of complexity is usually lower than that of the P rocessing
components but higher than Display ones. Accordingly, Display, P rocessing and Storage
have been assigned the W eights 1, 3 and 2 respectively. Exact values of W eights may
be varied from one project to another; the essential idea is to introduce a quantitative
differentiation between the types of components.
We recognize the assignment of weights has an element of subjectivity. With the
application of these metrics to large number of projects, it is expected common strategies
will emerge for giving a particular weight to a component. However, the following derivation
of the metrics is independent of the actual values of the weights. We have chosen the 1-3
scale based on complexity, any other scale will serve just as well if it is consistently followed
for a particular system.
14
Thus, if at iteration In , Requirement Rm has been assigned a M utation V alue M V (m)
= DS with reference to iteration In−1 , M I(m) is calculated as :
DS
M I(m) =
DP S
3
M I(m) =
6
M I(m) = 0.5
Intuitively, if change in Rm can only affect the Display aspects of the system, the
corresponding M I(m) = D/DP S = 1/6 = 0.17, which is less significant than the changes
affecting only P rocessing, i.e. M I(m) = P/DP S = 3/6 = 0.5 or only Storage, i.e. M I(m)
= S/DP S = 2/6 = 0.33.
At the boundary conditions, if a requirement has not changed from one iteration to
another, the M utation V alue is 0 and M I(m) = 0/6 = 0. And, if all of Display, P rocessing
and Storage aspects will be affected by changes in the requirement, the M I(m) = 6/6 = 1.
M I(m) for a requirement Rm can vary between these extreme values.
CS(n) = CB ∪ CC ∪ CE ∪ CX (6.2)
15
6.3 Dependency Index
The Dependency Index DI(m) for a requirement Rm is a relative measure of the level of
dependency between the components fulfilling Rm and those fulfilling other requirements of
the same system.
For a set of requirements R1 ,R2 ,...,Rm ,...,Rn−1 ,Rn , let us define,
Y = CS(1) ∪ CS(2) ∪ ... ∪ CS(n − 1) ∪ CS(n)
Thus Z(m) denotes the set of components that are not only relevant to Rm but also to
some other requirement, say Rj .
Expressed as a ratio, the DI(m) for requirement Rm :
|Z(m)|
DI(m) = (6.3)
|Y |
where for a set S, |S| is taken to denote the number of elements of S. We next present
a process for applying and interpreting the metrics defined in this section.
Figure 6.1 summarizes the idea of metrics discussed in the preceding sections.
16
Figure 6.1: A summary of the metrics
17
CHAPTER 7
In the last chapter, we derived the formulas for the metrics. Although the steps of derivation
brought to light certain aspects of their applicability, it is important to suggest a process for
applying and interpreting them. In this chapter, we propose a methodology for the metrics.
18
2. Annotate each requirement with its M utation V alue.
4. By reviewing the analysis and design artifacts, identify the high level components (CB ,
CC , CE , CX etc.) required to fulfill each requirement.
7. From the M utation Index and Dependency Index values, estimate the potential
impact of change for each requirement.
8. Refine the components to minimize the extent of such impact. If the change of a
particular requirement may have serious budget/schedule impacts, intimate the project
management/customer on the possibilities before proceeding further with development.
19
Figure 7.1: Putting it all together : Metrics and the methodology
As a part of its expansion plan, BII decided to webify their business, launching an internet
store and fulfilling electronic orders. An online presence for BII is expected to result in
increased revenue from its standard as well as niche market of autographed books.
A software development organization, which we will call Next Gen Tech (NGT) has been
contracted to develop the online BII store. NGT decided to use an iterative and incremental
model for developing the system.
7.3.2 Results
We give the requirements for each iteration (In ) and calculate the corresponding values for
M I(n), CS(n) and DI(n) as per the relations derived earlier, and then interpret the results.
It is implied that the requirements are being forwarded by the stakeholders from BII; the
analysts and designers from NGT evaluate them using the metrics to gauge their effects.
Requirements for I1 :
R1 - The system will provide an online home page of BII, including a masthead with BII’s
20
logo, a static welcome message, and a hyperlink to a catalog page.
R2 - The catalog page will contain alphabetical listing of BII’s books. Initially BII will provide
a list of up to 2000 different titles on its online store. The system will allow a user to select
one/more listing(s) for purchase.
R3 - The system will record the Name, Mailing Address, Credit Card Number, Expiration
Date and Credit Card Billing Address of the user wishing to purchase book(s).
R4 - The system will verify the credit card information and provide confirmation to the user
along with total cost of the purchase (base price plus shipping and handling charges - BII will
only offer standard shipping).
In the very first iteration the requirements have not had a chance to mutate, hence the
M V (n) = 0 and M I(n) = 0 for all Rn .
A list of components identified at this time with a brief description of their functionality is
given below. These are at a very high level of abstraction, and will likely undergo refinements
in subsequent workflows. The respective component type as defined earlier is noted in
parenthesis beside the component’s name. (Here, we do not seek to justify analysis and
design decisions; focus is on the metrics values.)
List of components for I1 :
Page generator(CB ) : To generate web pages with dynamic content.
User input verifier(CB ) : To validate form inputs from user.
User info recorder(CC ) : To process user information before persisting.
Credit card verifier(CC ) : To verify credit card details.
Catalog store(CE ) : To persist book catalog information.
User info store(CE ) : To persist user information.
Total price calculator(CX ) : To calculate total price of purchase.
Based on the above, the following is derived :
Component Sets CS(n) for I1 :
CS(1) - {Page generator}
CS(2) - {Page generator,User input verifier,Catalog store}
CS(3) - {Page generator,User input verifier,User info recorder,User info store}
CS(4) - {Page generator,User input verifier,Total price calculator,Catalog store,Credit
card verifier}
The DI(n) values in Table 7.1 signifies, at a later stage, changes to R1 will have the least
21
Table 7.1: M utation V alue, M utation Index and Dependency Index for requirements of
I1
impact on the overall current design while changing R2 and R4 will affect the system most.
For the next iteration I2 , the following versions of the requirements were addressed.
Requirements for I2 :
R1 - In addition to earlier requirement, the home page will present a list of authors whose
autographed editions are currently available through BII. The list will be updated by BII’s
management once a month.
R2 - In addition to earlier requirement, the catalog will provide a facility to search all of BII’s
books by author’s name and/or book title.
R3 - In addition to earlier requirement, the system will present a disclaimer that none of the
personal information of the user recorded by BII will be shared with any third party other
than credit card agencies.
R4 - Remains unchanged
As a marketing drive, all pages will have a list of five new arrivals at the top, under the
heading,“BookWorm Recommends”.
In the light of the changes, Table 7.2 shows the M utation V alue assigned to each
requirement and the corresponding M utation Index. It is worth noting, even as R4 is
declared to remain unchanged, it has a non zero M utation V alue since all pages now need
to display a list of new books.
It is apparent R2 has changed most and R3 least. The corresponding DI(n) values from
I1 suggests, absorbing the effect of R3 ’s change will be relatively easier than that of R2 ’s .
With this insight, the revised set of components required to fulfill the current requirements
are listed below.
List of components for I2 :
Page generator(CB ) : To generate web pages with dynamic content.
22
Table 7.2: M utation V alue, M utation Index and Dependency Index for requirements of
I2
23
Table 7.3: M utation V alue, M utation Index for requirements of I3
Rn M V (n) M I(n)
R1 0 0
R2 D,S 0.5
R3 P,S 0.83
R4 D,P,S 1
Requirements for I3 :
R1 - Remains unchanged.
R2 - Remains unchanged.
R3 - Remains unchanged.
R4 - In addition to earlier requirement, BII will also accept checks or BookWorm Coupons
as payment for purchases. BookWorm Coupons are valid only for specific purchases. Items
that can be bought with coupons will be marked in the online listing.
This was put forward as a “minor addition” by BII’s management; after all, R4 is the
only one requirement that changes.
NGT’s analysts were quick to detect, R4 ’s change also affects R3 and has the potential
to impact the existing design as newer business rules (What qualifies a product for purchase
against coupons ? Can coupon purchases be combined with card/check purchases ? etc.) need
to be addressed and interfaces (What other user information need to be recorded for check
payments ? Which agency would verify such payments ? etc.) built. Table 7.3 quantifies
their qualms.
The M I(n) values, coupled with corresponding DI(n) values from the previous iteration
indicate that far reaching changes have to be introduced to fulfill the latest requirements.
The Technical Lead of NGT’s development team reviewed the situation with her Project
Manager, recommending the customer be notified of these implications.
We take leave of the case study now, when NGT is persuading BII for cost and timeline
revisions before further development can proceed.
24
1.2
0.8
I_1
0.6 I_2
I_3
0.4
0.2
0
MI(1) MI(2) MI(3) MI(4)
uum. M utation Index is calculated with reference to the previous iteration, Component Set
summarizes the design for the current iteration and Dependency Index reflects the potential
effects in the next iteration.
The metrics are essentially indicators, they are meant to facilitate better understanding
and judgment in the inherently subjective exercises of analysis and design.
Overall, the mechanism presented complements existing canons of software engineering.
For example, calculation of Dependency Index is based upon Component Set, which is
populated by component choices backed by common design considerations of cohesion,
coupling etc.
Ideally, a requirement’s low M I(n) value reflects it has not undergone significant change;
an unusually high value may indicate a need to spawn a new requirement or segregate
the original requirement into two or more parts. Similarly, low DI(n) values suggest low
interdependencies; in the limiting case we may have independent components with zero
interaction, an undesirable situation for interactive systems.
On the other hand, a high M I(n) for a requirement may not necessarily be alarming if
the corresponding DI(n) is moderate. Likewise, a high DI(n) for a requirement with a low
M I(n) does not necessitate involved redesign.
The metrics thus signify general directions in the architecture as a system is iteratively
understood, built and refined.
25
0.5
0.4
0.3
I_1
I_2
0.2
0.1
0
DI(1) DI(2) DI(3) DI(4)
Figures 7.2 and 7.3 show the M I(n) and DI(n) variations across the iterations of the
case study.
26
CHAPTER 8
We are now prepared to test our strategy on a real world situation; this chapter describes a
case study.
FSU’s University Computing Services (UCS) ”works in conjunction with colleges and
departments at FSU to provide services to help meet the University’s computing and
networking goals.” As a recent development project, existing paper based Financial Aid
Application for students was migrated to an online system.
• The project followed an iterative and incremental development life cycle. As described
earlier our suite of metrics is aligned to such a methodology.
27
• The project’s context - shifting an application’s functionality from a manual (paper
based) to an online (internet based) approach - introduces tendencies of repeated
requirement changes. This may happen due to the time and effort required by the users
to readjust to the new medium, as well as gradually crystallizing business directions to
fully harness the new medium’s potential. We will see such instances in the subsequent
discussion.
8.3 Iteration 1
8.3.1 Requirements
The following are the outlines of the requirements addressed in the first iteration :
• R2 – Allow users to enter enrollment period and record the information and record the
information after validation.
• R3 – Allow users to enter FSU sessions and record the information after validation.
• R4 – Allow users to enter expected summer resources and record the information after
validation.
28
8.3.3 Calculating the Metrics
We now present the calculation of the metrics based on the techniques derived earlier.
The CS(n)s are calculated as :
We observe Y to be :
29
Table 8.1: The metrics for Iteration 1 of the UCS Case Study
Table 8.1 summarizes the metrics calculated for iteration 1. We observe R3 and R4 have
the highest Dependency Index values (0.545 each) and R1 , the lowest of 0.181.
8.4 Iteration 2
8.4.1 Changed Requirements
The incremental release at the end of iteration 1 provided an opportunity for the users and
business partners to work with the new application and give their feedback. Expectedly,
some requirements were changed; we give below the changed version of requirements.
• R1 – Remains unchanged.
• R2 – Remains unchanged.
• R2 – Remains unchanged.
• R5 – Remains unchanged.
30
• Changes in R3 involve changes in Display(D) and Storage(S) aspects. Thus, M V (3) =
DS, leading to M I(3) = DS/DP S = 3/6 = 0.5.
• At the end of Iteration 1, R3 and R4 had the highest Dependency Index values. This
suggests components fulfilling R3 and R4 had the maximum interaction with other
components of the system.
• Based on the Dependency Index values from Iteration 1 and the M utation Index
values from Iteration 2, for R3 and R4 its is apparent changes in R3 has the maximum
impact on existing system design.
• For a frequently changing requirement, it is best to have its Dependency Index value
as low as possible, such that its changes do not affect components fulfilling other
requirements. Thus, if R3 is vulnerable to more future changes, the overall design
should be modified to reduce the DI(3) value, through reassigning responsibilities
among components.
• This reorganization of design is best done during Iteration 2, to contain the effects
of changing requirements, from “rippling” across the system’s subsequent stages of
evolution.
8.6 Summary
8.6.1 Benefits of Applying the Metrics
Evidently, applying the metrics in the above scenario has helped us reach a quantitative
perspective on the interdependence of components in a system’s functionality. Such
31
understanding encourages modification of design to best address the demands of changing
requirements. It also helps estimate the degree of modification needed to existing design
and implementation to fulfill a new or revised requirement. At the core of this approach
lies the idea that a synergy among components is necessary to design and deliver a system
satisfying user needs : the metrics introduce an objective technique to monitor and improve
such synergy.
• As with any process improvement endeavor, it is important to ensure all the stake-
holders clearly understand the vision, objectives, as well as the tools and techniques of
the mechanism upfront. Once, the developers, management, and the business partners
were at a consensus on the utility of our study, the execution became significantly
smoother.
• As everyone who has worked on a deadline driven project will appreciate, often the
immediacy of a deliverable reduces the priority of activities such as data collection for
the metrics. This is discouraging at times, but nonetheless a “fact of life” for enterprise
systems. To work around these situations, one option is to make the task of gathering,
calculating, and interpreting the metrics as seamless and transparent as possible. We
will discuss this angle further in the following section on automation.
• The approach outlined in the thesis assumes a sound process substratum; adherence
to healthy established, industry practices for traversing the software development life
cycle is the least projects can do to succeed. If requirements are not specified, designs
not documented, change requests not tracked - in short the project execution is just
“ad-hoc”, counting on individual heroics and heavy doses of optimism for deliverance,
it is unlikely there will be a scope for the kind of tracking mechanism we are proposing.
Fortunately, the project we monitored was using sound project management practices;
this lends further dependability to the results of the case study.
32
8.6.3 The Case for Automation
By far, the most important learning from our case study has been appreciation of the need
for automating our tracking mechanism for its wider currency.
We acknowledge the inherent subjectivity and dynamism of the software design process;
the element of a designer’s ingenuity in solving a particular problem is unlikely to be replaced
by an automated tool. The automation we envisage is an apparatus to reduce the labor of
collecting data, calculating the metrics, discovering trends, and suggesting interpretations.
These tasks are far form trivial when we consider a typical enterprise system with hundreds
of requirements. The output of the automated tool will offer the designer a discernment that
may be used to resolve deeper issues of the overall design.
In the next chapter, we present an idea of automating our mechanism.
33
CHAPTER 9
FUTURE WORK
Towards the end of the last chapter we had highlighted how automating the collection,
calculation, and interpretation of the metrics will facilitate their wider application. We now
present the overview of such an automated tool. This is the primary direction of future work
we plan for extending the ideas presented earlier.
• Users : Represent individuals who directly work with the software system whose design
the tool will monitor/modify. For the UCS case study, Users are the students who will
use the system to apply for Summer application online. The tool will have its primary
input, i.e. instances of changing requirements from Users’ feedback. Depending on the
enterprise policy, Users may also be privy to the effects their suggested changes will
have on the systems design.
34
Users
UI Calculator
Designers
Request Rules
UI Broker Engine Database
Interpreter
Managers UI
J2EE infrastrcuture
Eclipse platform
• Managers : Represent individuals in charge of the assuring the system meets the desired
business needs within constraints of time, budget, and other political parameters. The
tool will offer them quantified notions – “numbers” in managerial parlance – of the level
of impact that changing requirements may have on existing and envisaged execution
of the system. This is a vital aspect in the long term health of an enterprise software
system, often the chasm between technical and managerial understanding of the same
situation causes much difficulty for all stakeholders.
Initially, the above three stakeholder groups have been identified along with their demands
from the tool; other groups may be accommodated if the need arises.
35
holders - Users, Designers, and Managers. The Request Broker component accepts requests
from these different groups, interacts with the Calculator and Interpreter components, and
delivers the response back. The Calculator and the Interpreter calculate the metrics, and
interpret their semantics in a given context through interaction with the Rules Engine. The
Rules Engine, specifies the “intelligence” of the tool, based on predefined (and modifiable)
design canons for the specific domain of interest, and interacts with a database to access
persisted data.
36
CHAPTER 10
CONCLUSION
The objective of this thesis was to examine the effectiveness of metrics in the analysis
and design of enterprise software systems. Over the preceding chapters we derived the
metrics, M utation Index, Component Set, and Dependency Index and illustrated their
utility through sample calculations. A real life case study of a UCS software development
project elucidated the benefits gained from applying the metrics and using the results to
suggest design improvements. In addition, we have also outlined the notion of a software
tool to automate some aspects of the metrics’ workings.
This discussion consummately establishes the key idea of the thesis : expedient conception
and systematic application of metrics can greatly assist the genesis of sound design paradigms
for enterprise software systems, especially in the event of changing requirements.
We expect to carry forward our work in future studies.
37
APPENDIX A
Figures A.1 and A.2 depict the paper forms that were converted to the online application
in the UCS project. Figure A.3, A.4, A.5, and A.6 are screen images from the converted
web-based application.
38
Figure A.1: Paper based form 1
39
Figure A.2: Paper based form 2
40
Figure A.3: Screen image 1
41
Figure A.4: Screen image 2
42
Figure A.5: Screen image 3
43
Figure A.6: Screen image 4
44
REFERENCES
[1] Subhajit Datta and Robert van Engelen. Effects of Changing Requirements: A Tracking
Mechanism for the Analysis Workflow. Proceedings of the 21st Annual ACM Symposium
on Applied Computing (SAC-SE-06), vol. 2, Dijon, France, April 23–27, 2006, pp. 1739-
1744. 1
[2] Subhajit Datta. Crosscutting Score An Indicator Metric for Aspect Orientation.
Proceedings of the 44th ACM Southeast Conference (ACMSE 2006), Melbourne, FL,
March 10–12, 2006, pp. 204-208. 2
[3] Subhajit Datta. Agility Measurement Index A Metric for the Crossroads of Software De-
velopment Methodologies. Proceedings of the 44th ACM Southeast Conference (ACMSE
2006), Melbourne, FL, March 10–12, 2006, pp. 271-273. 3
[4] Subhajit Datta. Integrating the FURPS+ Model with Use Cases - A Metrics Driven
Approach. Supplementary Proceedings of the 16th IEEE Symposium on Software
Reliability Engineering (ISSRE 2005), Chicago, IL, November 7–11, 2005, pp. 4.51-4.52.
4, 5
[5] I. Jacobson, G. Booch, and J. Rumbaugh. The Unified Software Development Process.
Addison-Wesley, 1999. 3, 5
45
[13] .N. Card and R.L. Glass. Measuring Software Design Quality. Prentice-Hall, 1990. 4.1
[14] T.J. McCabe and A.H. Watson. Software Complexity. Crosstalk, vol. 7, no. 12,
December 1994. 4.1
[15] J.M. Bieman and L.M. Ott. Measuring Functional Cohesion. IEEE Transactions on
Software Engineering, vol. 20, no. 8, August 1994. 4.2
[16] H. Dhama. Quantitative Models of Cohesion and Coupling in Software. The Journal of
Systems and Software, vol. 29, no. 4, April 1995. 4.2
[17] S.R. Chidamber and C.F. Kemerer. Towards A Metrics Suite for Object Oriented
Design. OOPSLA ’91, 1991. 4.2
[18] S.R. Chidamber and C.F. Kemerer. A Metrics Suite for Object Oriented Design. IEEE
Transactions on Software Engineering, vol. 20, no. 6, June 1994. 4.2
[19] R. Harrison, S.J. Counsell and R.V. Nithi. An Evaluation of the MOOD Set of Object-
Oriented Metrics. IEEE Transactions on Software Engineering, vol. 24, no. 6, June 1998.
4.2
[21] J. Karlsson and K. Ryan. A Cost-Value Approach for Prioritizing Requirements. IEEE
Software, September/October 1997. 4.3
46
BIOGRAPHICAL SKETCH
Subhajit Datta
Subhajit Datta joined graduate studies at the Department of Computer Science (CS), Florida
State University (FSU) in Spring 2005. He has worked as a software engineer with IBM
Global Services in roles of Release Manager, Technical Lead, Business Systems Analyst, and
Application Programmer. One of Subhajit’s papers was published as an Intellectual Capital
in the IT Process Model knowledge network of IBM’s ICM AssetWeb and recommended for
patent filing evaluation.
Subhajit has a Bachelor of Electrical Engineering degree from Jadavpur University,
Calcutta (Kolkata), India. He is a IBM Certified Specialist for Rational Unified Process,
and has additional certification in Object-Oriented Analysis and Design with UML.
Subhajit’s research interests include requirements/specifications, design tools and tech-
niques, metrics, and software architecture. Since joining CS, FSU, Subhajit has presented
and published four papers in IEEE or ACM organized conferences.
Reading, writing, and travel are among Subhajit’s interests.
47