Journal of Software Engineering and Applications, 2011, 4, 244-252
doi:10.4236/jsea.2011.44027 Published Online April 2011 (http://www.SciRP.org/journal/jsea)
Copyright © 2011 SciRes. JSEA
Assessing Internal Software Quality Attributes
of the Object-Oriented and Service-Oriented
Software Development Paradigms: A
Comparative Study
Yaser I. Mansour, Suleiman H. Mustafa
Department of Computer Information Systems, Yarmouk University, Irbid, Jordan.
Email: yamansour@li ve.com, smustafa@yu.edu.jo
Received March 16th, 2011; revised April 3rd, 2011; accepted April 6th, 2011.
ABSTRACT
Service-Oriented Architecture (SOA) is becoming the dominant approach for developing and organizing distributed
enterprise-wide applications. Although the concepts of SOA have been extensively described in the literature and in-
dustry, the effects of adopting SOA on softwar e quality are still unclear. The aim of the pap er is to analyze how adopt-
ing SOA can affect software quality as opposed to the Object-Oriented (OO) paradigm and expose the differential im-
plications of ad opting both parad igms on software qu ality. The pap er provides a brief in troduction of the ar chitectural
differences between the Service-Oriented (SO) and OO paradigms and a descriptio n of internal software quality metrics
used for the comparison. The effects and differences are exposed by providing a case study architected for both para-
digms. The quantitative measure concluded in the paper showed that a software system developed using SOA approach
provides higher reusability and lower coupling among software modules, but at the same time higher complexity than
those of the OO approach. It was also found that some of the existing OO software quality metrics are inapplicab le to
SOA software systems. As a consequence, new metrics need to be developed specifically to SOA software systems.
Keywords: Ser vice-Oriente d Architecture, Object-Orient ation, Internal Software Quality Attributes, Software Quality
Metrics
1. Introduction
The large explosion of business demands and enterprise-
wide applications has created the need for different ap-
proaches to software development in order to facilitate
business collaboration and growth. This has led to the
adoption of Service-Oriented Architecture (SOA) for
building high ly distributed an d in teg rated en terp rise-wid e
software systems that use web services as its building
blocks. A web service can be thought of as an autonom-
ous software component that implements specific busi-
ness rules and logic to perform a particular functionality.
The ability to encapsulate business rules and logic into
web services that can be accessed by applications or oth-
er web services provides a high level of separation of
concerns and greater opportunities of reusability.
SOA has been widely described in research and indus-
try, but little work has been done so far to analyze the
impacts associated with adopting the service-oriented
approach as a paradigm to software systems development.
Hence, the purpose of the study is to provide an empiri-
cal comparison and evaluation of how encapsulating bu-
siness logic and rules into web services can affect inter-
nal software quality attributes. Such attributes involve
size, complexity, coupling, and cohesion. Consequently,
the study addresses the following three basic research
questions:
1) Does a software system developed using the SOA
approach requires new software quality metrics?
2) Based on the conceptual similarities of Object-
Oriented and Service-Oriented approaches, how applica-
ble are the OO metrics to SOA software systems?
3) How do Object-Oriented and Service-Orientated ap-
proaches affect internal software quality attributes of a
software system?
Given above questions, a case study was developed
using the Object-Oriented and Service-Oriented approa-
Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented
Software Development Paradigms: A Comparative Study
Copyright © 2011 SciRes. JSEA
245
ches. Then the effects of these approaches on the internal
software attributes of size, complexity, coupling, and co-
hesion were quantitatively measured and compared using
a set of eleven mature and well-established software en-
gineering metrics. The results of the quantitative study
were mapped against three informal hypotheses that were
formulated prior to the measurement process to allow for
rich and objective discussion. The first section of this
paper introduces the SOA and the differences compared
to the Object-Oriented Architecture (OOA). The second
section addresses the case study by describing the inter-
nal software quality attributes and metrics used as well as
the preparatio n of the implementatio n and data collection
methods. In the third section, an analysis and evaluation
of the measurements collected is provided. The paper
concludes with a conclusion and remarks.
2. Service-Oriented Architecture and the
Object-Oriented Architecture
Service-Orientated Architecture is an architectural para-
digm for developing software systems based on software
services. It describes how services should be defined,
constructed, and orchestrated. A conceptual model of
SOA consists of three main components [1,2]: a service
provider component (representing the component re-
sponsible for implementing the service functionality and
publishing the service description for discovery in a ser-
vice registry); a service consumer component (represen-
ting the client that requests and discovers the service from
the service registry and binds and invokes the service);
and a service registry component, also known as Service
Broker [3] (representing the component which maintains
service descriptions published by service providers for
discovery by service consumers).
In SOA, a collection of interacting services exists ei-
ther internally or externally in a complete autonomy. A
service, as depicted in Figure 1, encapsulates its business
functionality independently of other services within the
architecture and thus provides a high level of separation
of concerns among services. This leads to the develop-
ment of loosely coupled software systems [1,4].
For the purpose of this study, Service-Oriented Archi-
tecture is defined as an architectural paradigm for de-
veloping distributed software systems based on auto-
nomous, reusable, interoperable, loosely coupled web
services that encapsulate business logic independently
and communicate via messages through standard com-
municatio n protocols.
The object-oriented paradigm realizes a software sys-
tem as a set of classes and object instances that share
common structure and behavior and cooperate with each
other to achieve a specific function or behavior. The OO
paradigm has proven to be a very powerful approach to
address and conquer complex software systems through
Figure 1. High-level architecture of a service within Service-Oriented architecture.
Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented
Software Development Paradigms: A Comparative Study
Copyright © 2011 SciRes. JSEA
246
built-in mechanisms and techniques such as encapsula-
tion, modularization, and separation of concerns. Since
the service-oriented architecture reinforces the use of such
mechanisms, applying OO mechanisms and techniques is
a valid start to any SOA effort [5].
In an interview held by Info World in 2004, Grady
Booch stated that “you start with web services and you
start with good solid object-oriented architectures”. He
justified this by stating that “the fundamentals of engi-
neering like good abstractions, good separation of con-
cerns never go out of style”, but “there are real opportun-
ities to raise the level of abstraction again” [6].
Thus, the level of abstraction of services should be
raised up to the busin ess level for which the services have
been developed for and not only focusing at the object’s
interface that describes the behavior of that object (class
level). In fact, web services represent th e next step in ob-
ject-oriented programming, rather than developing soft-
ware from a small number of class libraries provided at
one location, programmers can access web service class
libraries distributed worldwide [7]. Table 1 shows the
main concepts shared between the two paradigms and
their key similarities and differences.
3. Related Work
The development process of any software system is dri-
ven by the architecture adopted for developing that sys-
tem. However, the final goal of the software development
process is to produce high quality software systems no
matter which software architecture is adop ted.
Barbacci [8] has examined several quality attributes and
sub-factors (including efficiency, functionality, maintai-
nability, portability, reliability , dependability, p erforman-
ce, and usability) and potential tradeoffs and fitness in
the context of the adopted software architecture. He con-
cluded that achieving such quality attributes does not only
depend on the quality of the implementation (code-level)
of the software system, but also depends on the adopted
software architecture.
Likewise, Losavio, Chirinos, Levy and Ramadane-
Cherif [9] have emphasized the importance of selecting
the appropriate software architecture to fulfill quality
requirements and attributes. The authors presented a com-
parison between the repository and publisher/subscriber
(client/server) architectures. Their results have showed
that publisher/subscriber is better than the repository ap-
proach with respect to security and efficiency in time be-
havior. However, the repository approach is superior for
maturity and for efficiency in time.
Many research studies have investigated the effects of
adopting the Object-Oriented approach on software qual-
ity and showed that object-oriented paradigm has a pro-
found impact on software quality attributes.
For instance, Abreu and Melo [10] conducted an eval-
uation on the impact of object-oriented design on soft-
ware quality characteristics by means of experimental
validation. The authors used the MOOD (Metrics for
Object Oriented Design) metrics suite to measure the OO
mechanisms (including inheritance, coupling, informa-
tion hiding, and polymorphism) and to assess how these
mechanisms affect OO system’s reliability (defect densi-
ty) and maintainability (normalized rework).
The results obtained by their experiment showed that
increased method encapsulation decreases defect density
and the effort spent to fix defects, while attribute encap-
sulation did not show any effects on the quality. Also,
increased method inheritance decreases defect densityand
effort, whereas attribute inheritance has weak correlation
Table 1. Key similarities and differenc e between Service-Oriented and Object-Oriented paradigms.
Concept OO Paradigm SO Paradigm
Building Block Objects are the key building blocks Services are the key building blocks
Abstraction A class hides the state and behavior of objects and
provides an interface that separates the object’s beha-
vior from its implementation
A service hides the underlying implementation and logic
through service interface (contract). This interface describes
the business needs that the s e r v i c e i s going to satisfy
Statelessness Objects encapsulate data and behavior. The state of an
object may be altered by the behavior of other objec ts Services encapsulate business logic. Services are stateless;
they do not depend on the state or c ontext of other services
Loose Coupling Although objects can be loosely coupled, the use of
inheritance in the OO paradigm tends to create more
tightly coupled objects
The use of service interfaces tends to create a loosely coupled
environment which decouples ser vices from consumers
Reusability Objects modularity through the use of abstraction and
encapsulation allows wide reusability of objects and
classes
Separation of concerns between service interfaces and busi-
ness logic allows modifying interfaces or business logic
without affecting the service
Granularity Level Within a distributed environment, objects have many
dependencies with other objects resulting in fine
grained objects
Services tend to be coarser-grained. Generally a service en-
capsulates a single business process independently that can be
invoked through a ser vice in terface
Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented
Software Development Paradigms: A Comparative Study
Copyright © 2011 SciRes. JSEA
247
with defect density and effort. The authors claimed that
increased polymorphism would reduce defect density and
rework; however, they noted that high values of Poly-
morphism Factor (POF) reduce these benefits. Finally, as
coupling increases, defect density and rework also in-
crease because coupling increases complexity, encapsu-
lation, understandability, and maintainability.
A research conducted by IBM [11] to assess the direct
and indirect effects of the object-oriented approach on
software quality. The study involved three object-oriented
projects developed by IBM. The study was based on
measuring the quality attrib utes (code quality, correctness,
usability, adaptive maintainability, perfective maintaina-
bility, and performance) of the three projects in the con-
text of several object-oriented aspects (namely: O.O. user
interface, O.O. design, O.O. programming, and iterative
development) versus their corresponding traditional as-
pects (namely: action-oriented user interface, structured
design, procedural programming, and waterfall develop-
ment). The stud y showed that object-orien ted technology
produces immediate benefits in many aspects of software
quality and productivity.
Briand, Wust and Lounis [12] provide an empirical
study on the relationship of object-oriented design meas-
ures (cohesion, coupling, inheritance, an d size in terms of
methods and method parameters) and the fault-proneness
of OO systems. The results obtained showed that classes
with higher coupling, cohesion, and size are more likely
to be fault-prone and classes that are located deeper in
the inheritance hierarchy are less fault-pro ne.
Special attention has been given to the development of
SOA to ensure the maturity of the field. Also, several
standards have emerged (e.g.: WS-Security, WS-Reliable
Messaging) to ensure the quality and interoperability of
SOA among different vendors and organizations. How-
ever, little work has been done so far on how SOA im-
pacts the quality of software and is still an open issue that
needs to be empirically evaluated.
For instance, Haines [13] conduc ted a set if interviews
with software developers and IT managers from different
organizations to address the factors that affect the soft-
ware development process by adopting SOA. The find-
ings of this study points out that developing information
systems based on web services and SOA is different from
how information systems were developed in several areas.
As a consequence, the development process of SOA re-
quires changes in order to meet the requirements of web
services and SOA. Interestingly, the author pointed that a
key issue is that maintaining services once they have
been published as well as the design of service interfaces
in terms of granularity and reuse are significantly impor-
tant for SOA software systems.
Perepletchikov et al. [14] provided a comparative stu-
dy on the impact of object orientation and service orien-
tation on the struct ural at t ri but es of size (i n terms of LOC),
complexity (in terms of cyclomatic complexity (CC),
weighted method per class (WMC), and number of chil-
dren (NOC)), coupling between objects (CBO), response
for a class (RFC)), and cohesion (in terms of lack of co-
hesion of methods (LCOM)) of software. The authors de-
veloped a system with two approaches. The first approa-
ch was built using coarse-grained services developed us-
ing the object-oriented principles, and the second approa-
ch consisted of fine-grained services developed using
Business Process Execution Language (BPEL) scripts.
Both systems were developed using Java. The results in-
dicate that the SOA approach exhibits lower coupling
and allows easier propagation of changes than the OO
approach. On the other hand, the OO approach exhibits
lower complexity than th e SOA.
Another study by Perepletchikov [15] investigated the
impact of several development strategies; top-down, bot-
tom-up and meet-in-the middle of SOA on the project
(Capital Cost and Development Effort) and structural
software attributes involving Complexity, Coupling, and
Cohesion. The authors provide guidelines for each deve-
lopment strategy when building SOA software systems.
The authors stated that services built from scratch
(top-down development) should be coarser-grained so
that the developed services would be highly reusable.
When services are built us ing bottom-up strategy, the fo-
cus is on service granularity where services should be
fine-grained in order to increase cohesion and decrease
complexity and coup ling. Finally, the authors poin ted out
several conflicting factors, most importantly is the ser-
vice granularity. They stated that developing coarse-
grained service introduces increased coupling and de-
creased cohesion resulting in lower system quality in
terms of maintainability, reliability, and efficiency.
4. Design of the Empirical Study
4.1. Internal Software Quality Attributes and
Metrics
An attribute is a “measurable physical or abstract prop-
erty of an entity” [16]. A software quality attribute of a
software system is a characteristic, feature or property
that describes part of the software system. Internal soft-
ware quality attributes reflect structural properties of a
software system (e.g.: software size in terms of Lines of
Code).
Such attributes can be quantitatively measured and di-
rectly applied to object-oriented systems. The attributes
used in this study refer to the internal software attributes
Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented
Software Development Paradigms: A Comparative Study
Copyright © 2011 SciRes. JSEA
248
of size, complexity, coupling, and cohesion, which are
explained bell o w.
After a thorough study and analysis of the metrics
mentioned in the literature a set of eleven metrics was
chosen based on their importance and applicab ility to the
object-oriented approach. The metrics used are mapped
to the internal software attributes to be measured are dis-
cussed in below sections.
1) Size: is defined as the size of the software system in
terms of Lines of Code (LOC) [17] that constitute the
system. LOC is treated as follows:
In the OO approach, all C# (pronounced c sharp)
source files (classes) excluding comments and
whites spaces were counted as code;
In the SO approach, C# source files associated with
each layer (Service Interface Layer, Business Layer,
and Data Access Layer) were counted as code.
2) Complexity: is defined as the internal logic carried
out in a software module or program unit. The measures
used in this regard are as follows.
a) Traditional Cyclomatic Complexity (CC) and Ex-
tended Cyclomatic Complexity (ECC):
In the OO approach, all conditional statements and
loops within method bodies were counted in order
to derive CC according to [18], in addition, com-
pound conditional statements were counted to de-
rive ECC according to [17].
In the SO approach, all conditional statements and
loops of each service and within the hosting appli-
cation including the references of each service were
counted in order to derive CC again according to
[18] as well as compound conditional statements
were counted to derive ECC again according to
[17].
b) Halstead’s Complexity (HC):
In the OO approach, all operators and operands of
each C# source file were counted and HC formulas
were applied to derive HC according to [17,19].
In the SO approach, all operators and operands of
the source files of each service and the hosting ap-
plication including the references of each service
were counted to derive HC again according to [19,
20].
c) Maintainability Index (MI): the MI was computed
for the entire system of both approaches since it is not
computed on the method or class level [17]. The MI was
derived according to [19, 20] for both systems.
d) Weighted Method per Class (WMC): the WMC can
be measured by either counting the number of methods
within a class or computing the total CC of the methods
[14,17]. Since the CC was already computed, the total
number of methods was calculated to indicate WMC in
the OO approach, and the total number of operations in
each service indicates WMC in the SO approach.
e) Depth of Inheritance Tree (DIT) and Number of
Children (NO C ) :
In the OO approach, the values of DIT and NOC
were computed according to [21].
In the SO approach, the concept of inheritance does
not exist; that is, a service does not inherit from
another service.
3) Coupling: is defined as a measure or indication of
the strength of interdependencies and interconnections
among software modules. The measures used in this re-
gard are as follows.
a) Coupling between Objects (CBO):
In the OO approach, CBO was measured according
to [21].
In the SO approach, CBO was measured as the
coupling between services, where a service is said
to be coupled to another service if one of them
sends a message to the other.
b) Response for Class (RFC):
In the OO approach, all local methods within a
class and methods directly invoked within that
class were counted to derive RFC according to [21];
in other words, all accessible methods within the
class hierarchy were measured;
In the SO approach, all methods within service
layers as well as methods within the hosting appli-
cation from which messages are sent to services
were counted.
4) Cohesion: is defined as the extent to which each
operation of a software module implements and performs
a single task or functionality. In this context, cohesion
has been measured in terms of the lack of cohesion of
methods (LCOM) as follows.
Lack of Cohesion of Methods (LCOM):
In the OO approach, LCOM was measured by
counting the nu mber of disjoint sets produ ced from
the intersection of the sets of attributes used by the
methods implemented [21].
In the SO approach, LCOM was measured by
counting the nu mber of disjoint sets produ ced from
the intersection of the sets of attributes used by the
operations implemented within each service and
among service layers, again according to [21].
The Chidamber and Kemerer metrics suite, known by
CK metrics suite, was chosen since it is well-established
and intensively discussed in the literature [21-23]. It ad-
dresses the following metrics: Weighted Method per
Class (WMC), Depth of Inheritance Tree (DIT), Number
of Children (NOC), Coupling between Objects (CBO),
Response for Class (RFC), and Lack of Cohesion of Me-
Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented
Software Development Paradigms: A Comparative Study
Copyright © 2011 SciRes. JSEA
249
thods (LCOM)
4.2. Building the Testing Case
For the purpose of this study, a bank Automated Teller
Machine (ATM) was selected as a case study [7]. The de-
cision to consider the ATM as a case study was based on
the fact that it presents a typical distributed system since
it communicates with services from other banks and
branches, and thus, suitable for SOA deployment. The
ATM system has three main functions:
1) Balance inquiry which tells how much balance is
available in an account, 2) Withdraw money for with-
drawing money from a balance by subtracting the with-
drawal amount from the available balance and 3) Deposit
money for depositing the entered amount of money to the
balance.
The system validates the user by card and PIN num-
bers. When the user withdraws an amount of money, the
system checks if the available balance satisfies the
amount to be withdrawn and if not, the transaction is can-
celed.
Although the ATM is considered to be a small case
study, its design makes appropriate usage of the object-
oriented structures and mechanisms such as association,
inheritance, and aggregation. The case study was devel-
oped using C#.NET. In order to reflect the actual re-
quirements of the ATM, the system was modified to re-
trieve and store accounts information from a database.
The development of the service-oriented version of the
ATM system was carried out in two phases. In the first
phase the ATM case study was thoroughly analyzed in
order to identify the top-level use-cases and generate the
Use-Case Priority Matrix [24,25]. In the second phase,
five use-cases were considered as candidate services for
the service-oriented system based on the use-case priority
matrix.
The identified service candidates are: Authenticate
User, Inquiry Balance, Withdraw Mone y, De posit Money,
and Invalid Account Number/PIN. The service-oriented
system was developed as a set of fine-grained services
(in which each service embeds its own business rules and
logics, i.e. : withdraw service will contain the business
rules and logic for withdrawing money from a customer
account, etc,) as follows: the Authenticate User and Inva-
lid Account Number/PIN use-cases (service candidate)
were designed and implemented first based on the use-
case priority matrix rankings, and thu s conforming to the
Rational Unified Process (RUP) methodology [26].
The remaining use-cases (Inquiry Balance, Withdraw
Money, and Deposit Money) were designed, implemen-
ted separately and then integrated into the existing sys-
tem. After that, a set of software metrics (i.e. those de-
scribed in the previous subsection) was applied to the
final resulting system implemented in both approaches
(OO and SO) to evaluate their impacts on the internal
software attributes of size, complexity, coupling, and co-
hesion.
The SO version of the ATM case study was developed
using the C#.NET programming language and the Web
Service Software Factory, also known as the Service
Factory [27] (which includes best practices for develop-
ing service-oriented appl i cat i ons).
4.3. Software Quality Metrics Usage
Figure 2 illustrates the usage of the metrics used in this
study and is described as follows:
1) The LOC metric was used to compare the size;
2) The CC, EC, HC, MI, WMC, DIT, and NOC metri-
cs were used to compare the degree of co mplexity;
3) The CBO, and RFC metrics were used to compare
the level of coupling between classes in th e OO approach,
and the coupling between service components in the SOA
approach;
4) The LCOM metric was used to compare cohesion of
classes in the OO approach, and the degree of cohesion
between service components in the SOA approach.
4.4. Data Collection and Measurement Tools
The process of collecting metrics data from the source
code of both systems was conducted as follows:
1) Automated Data Collection: this process involved
using software metrics tools for collecting metrics data
from C# code programs. Due to the limitations of the
tools available for collecting metrics data of C# only the
following tools were used:
C# Code Metrics for calculating the LOC, CC,
ECC, WMC, CBO, and LCOM.
Reflector Code Metrics and NDepend for calculat-
ing DIT and NOC.
C# Analyze for calculating HC.
The decision to use these tools was based on the fact
that these tools provide most of the relevant metrics to
this study.
2) Manual Data Collection: due to the lack and limita-
tions of automated software tools, the data for RFC was
collected manually.
5. Results and Discussion
In order to allow for an objective comparison and discus-
sion, three informal hypotheses were formulated prior to
the process of collecting metrics data based on intensive
analysis of the related literature [2-4,6 ,13,28] concerning
service orientation. These hypotheses were evaluated
against the metrics data collected which include:
Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented
Software Development Paradigms: A Comparative Study
Copyright © 2011 SciRes. JSEA
250
Figure 2. Taxonomy of metrics usage.
HYPOTHESIS 1: Implementations developed us-
ing the SO approach exhibit higher cohesion within
methods compared to those of the OO approach
since the business rules and logic are encapsulated
within business components which are mapped
against service operations rather than embedding
the logic within the application code.
HYPOTHESIS 2: Implementations developed us-
ing the SO approach exhibit lower coupling than
those developed using the OO approach since ser-
vices are autonomous and each operating on its
own business components.
HYPOTHESIS 3: Implementations developed us-
ing the SO approach exhibit higher size and com-
plexity compared to those developed using the OO
approach due to the structures and mechanisms re-
quired to implement and consume services as well
as the fact that the OO approach is more mature
and have been extensively experienced.
The measurement values collected from the OO and
SO versions of the ATM system are shown in Table 2.
Figures 3 and 4 depict these values for the two versions.
6. Conclusions
The purpose of this study was to investigate the applica-
bility of Object-Oriented software metrics to the Service-
Oriented approach and how service orientation affects in-
ternal software attributes of size, complexity, coupling,
and cohesion using a case study developed with the two
contrasted approaches. The resulting implementations
were measured using a set of eleven well-established and
mature software engineering measures.
The quantitative comparison resulted in the following
suggestions: 1) The SO approach tends to promote higher
reusability of modules compared to those of the OO ap-
Table 2. Measurement values as collected from the Object-
Oriented and Service-Oriented of the ATM testing case.
Attributes Metrics OO SO
Size LOC 432 601.
Complexity
CC 64 135
ECC 65 141.0
HC 14427.394 26867.799
MI 108.63 63.01
WMC 36 26.0
DIT 15 1
NOC 3 1
Coupling CBO 27 10
RFC 72 40
Cohesion LCOM 5.65 4.96
Figure 3. Software quality metrics results of both Object-
Oriented and Service-Oriented implementations.
Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented
Software Development Paradigms: A Comparative Study
Copyright © 2011 SciRes. JSEA
251
Figure 4. Total program volume (Halstead Complexity) of
Object-Oriented and Service-Oriented implementations.
proach, 2) The SO approach provides a lower degree of
coupling between modules than those of the OO approa-
ch, 3) The OO approach exhibits lower complexity than
the SO approach, and 4) Not all OO metrics are applica-
ble to the SO approach.
From this we conclude that there should be a compro-
mise among internal software attributes in order to main-
tain a high degree of reusability wh ile keeping the degree
of complexity and coupling as low as possible. Another
conclusion that can be made is that there is a need for
developing a set of software metrics specifically toward
SO approaches in order to measure the internal software
attributes of SOA software systems since not all OO me-
trics are applicable to the SO approach.
There are a number of limitations associated with this
study. Firstly, there are many different ways of designing
and implementing the ATM case study using both OO
and SO approaches. As a consequence, different designs
and implementations might not exhibit the values pre-
sented in this study. Secondly, non-functional require-
ments, such as performance and security were not taken
into account in the original OO case study. As a result,
the effects of non-functional requirements on the internal
software attributes are not clear.
REFERENCES
[1] T. Erl, “Services-Oriented Architecture: Concepts, Tech-
nology, and Design,” Prentice Hall, Upper Saddle River,
2005.
[2] Z. Stojanovic and A. Dahanayake, “Service-Oriented
Software System Engineering: Challenges and Practices,”
Idea Group Publishing, Hershey, 2005.
[3] A. Arsanjani, “Service-Oriented Modeling and Architec-
ture: How to Identify, Specify, and Realize your SOA,”
Whitepaper, IBM Corporation, November 2004.
http://www.ibm.com/developerworks/libraary/ws-soa-des
ign1/
[4] T. Erl, “Service-Oriented Architecture: A Field Guide to
Integrating XML and Web Services,” Prentice Hall, Up-
per Saddle River, 2004.
[5] O. Zimmermann, P. Krogdahl and C. Gee, “Elements of
Service-Oriented Analysis and Design,” Developer
Works, IBM Corporation, 2004.
[6] G. Booch, “IBM’s Grady Booch on Solving Software
Complexity,” InfoWorld Interview, 2004.
http://www.infoworld.com/article/04/02/02/HNboochint_
1.html
[7] Deitel & Deitel, “Visual C# 2005: How to Program,” 2nd
Edition, Deitel & Associates, Pearson Education, Upper
Saddle River, 2006.
[8] M. Barbacci, “Software Quality Attributes and Architec-
ture Tradeoffs,” Software Engineering Institute, Carnegie
Mellon University, Pittsburgh, 2003.
[9] F. Losavio, L. Chirinos, N. Levy and A. Ramadane-Che-
rif, “Quality Characteristics for Software Architecture,”
Journal of Object Technology, Vol. 2, No. 2, March-April
2003, pp. 133-150. doi:10.5381/jot.2003.2.2.a2
[10] F. B. Abreu and W. Me lo, “Evaluati ng the Impact of Ob-
ject-Oriented Design on Software Quality,” Proceedings
of the 3rd International Software Metrics Symposium,
Berlin, March 1996, pp. 90-99.
doi:10.1109/METRIC.1996.492446
[11] N. P. Capper, R. J. Colgate, J. C. Hunter and M. F. James,
“The Impact of Object-Oriented Technology on Software
Quality: Three Case Histories,” IBM Systems Journal,
IBM, Vol. 33, No. 1, 1996, pp. 131-157.
[12] L. Briand, J. Wust and H. Lounis, “Investigating Quality
Factors in Object-Oriented Designs: An Industrial Case
Study,” ICSE’99 Proceedings of the 21st international
conference on Software enginee r i n g, New York, 1999.
[13] M. Haines, “The Impact of Service-Oriented Application
Development on Software Development Methodology,”
Proceeding of the 40th Hawaii International Conference
on System Sciences, Hawaii, January 2007, pp.172b.
[14] M. Perepletchikov, C. Ryan and K. Frampton, “Compar-
ing the Impact of Service-Oriented and Object-Oriented
Paradigms on the Structural Properties of Software,”
Second International Workshop on Modeling Inter-Or-
ganizational Systems, Cyprus, Vol. 3762, 2005, pp. 431-
441.
[15] M. Perepletchikov, C. Ryan and Z. Tari, “The Impact of
Software Development Strategies on Project and Struc-
tural Software Attributes in SOA,” Proceedings of the
2nd INTEROP Network of Excellence Dissemination
Workshop, Cyprus, 31 October -4 November 2005.
[16] C. Kaner and W. Pond, “Software Engineering Metrics:
What Do They Measure and How Do We Know?” 10th
International Software Metrics Symposium METRICS,
Chicago, 11-17 September 2004.
[17] L. Laird and C. Brennan, “Software Measurement and
Estimation: A Practical Approach,” IEEE Computer So-
ciety, John Wiley & Sons, Hoboken, 2006.
[18] T. McCabe and A. Watson, “Software Complexity,”
Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented
Software Development Paradigms: A Comparative Study
Copyright © 2011 SciRes. JSEA
252
Journal of Defense Software Engineering, 1994.
http://www.stsc.hill.af.mil/crosstalk/1994/12/xt94d12b.as
p
[19] M. Halstead, “Elements of Software Science,” Elsevier
North-Holland, Inc., New York, 1977.
[20] K. Welker and P. Oman, “Software Maintainability Me-
trics Models in Practice,” Journal of Defense Software
Engineering, 1995.
http://www.stsc.hill.af.mil/crosstalk/1995/11/maintain.asp
[21] S. Chidamber and C. Kemerer, “A Metrics Suite for Ob-
ject Oriented Design,” IEEE Transactions on Software
Engineering, Vol. 20, No. 6, June 1994.
[22] V. Basili, L. Briand and W. Melo, “A Validation of Ob-
ject-Oriented Design Metrics as Quality Indicators,”
IEEE Transactions on Software Engineering, Vol. 22, No.
10, October 1996.
[23] L. Briand, J. Daly, V. Porter and J. Wust, “A Compre-
hensive Empirical Validation of Product Measures for
Object-Oriented Systems,” Fraunhofer Institute of Expe-
rimental Software Engineering, Kaiserslautern, 1998.
[24] Ariadne Training, “UML Applied-Object Oriented Anal-
ysis and Design,” 2nd Edition, Ariadne Training Limited,
UK, 2005.
[25] W. Bentley, “System Analysis & Design Methods,” 7th
Edition, McGraw-Hill, New York, 2007.
[26] P. Kruchten, “The Rational Unified Process: An Intro-
duction,” 3rd Edition, Addison-Wesley, Boston, 2003.
[27] Microsoft, “Introducing the Web Service Software Fac-
tory,” Microsoft Corporation, 2006.
http://www.msdn2.microsoft.com/en-us/library/aa480534.
aspx
[28] M. Endrei, J. Ang, A. Arsanjani, S. Chua, P. Comte, P.
Krogdahl, M. Luo and T. Newling, “Patterns: Service-
Oriented Architecture and Web Services,” IBM Redbooks,
IBM Corporation, 2004.