The Relationship between Slices and Module Cohesion
|
|
- Opal George
- 5 years ago
- Views:
Transcription
1 The Relationship between Slices and Module Cohesion Linda M. Ott Jeffrey J. Thusst Department of Computer Science Michigan Technological University Houghton, M Abstract High module cohesion is often suggested as a desirable property of program modularity. The subjective nature of the definition of cohesion, however, can make it difficult to use in practice. n this paper, we examine the relationship between the data flow in a module and its level of cohesion using aprocessing element jow graph (PFG). Based on these PFG's, we regroup the original seven levels of cohesion into four classifications. Slice profiles are then defined by generating slices for all output iables of a module. A relationship is then shown between these slice profiles and the PFG used to indicate levels of cohesion. t is suggested that these slice profiles can be used to determine more easily the cohesiveness of a module.. ntroduction The psychological coniplexity of software is a measure of how difficult it is for programmers to interact with the software []. t is inted to reflect how well the software is written in terms of understandability, testability, and maintainability. These concepts have been identified by Boehm [l] as essential in the development of high quality software. The decomposition of a system into modules can significantly reduce psychological complexity. Myers [ 0 states that "modularity is the single attribute of software that allows a program to be intellectually manageable." Studies have been completed which indicate that size is a major factor in software complexity [,,8]. Modularity offers a rational solution by breaking up large problems into several smaller, more manageable pieces. Constantine and Yourdon have identified two qualitative properties of effective modularization, one of which is cohesion. Cohesion is often referred to as "module strength," "binding," or "functionality." The highest degree of cohesion is obtained in a module which performs exactly one task. Cohesion, as defined, is a subjective measure requiring an interpretation of the informal definitions provided by Constantine and Yourdon. Several attempts have been made to make this subjective concept more precise. These include the suggested use of a decision tree as proposed by Page Jones [ll] and attempts to find quantitative cohesion metrics [7,]. t Current address: Autotrol Technology, 00 Washington St., Denver, CO 80 Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specfic permission. The aim of this paper is to show that the degree of cohesiveness of a module can be seen by examining slices [. generated from the output iables of the module. n section, we will discuss cohesion and provide a simplification of the metric based on examining the relationships among the processing elements of the module using aprocessing elementflow graph (PFG). Section contains a brief description of slicing and presents a slice profile. n section, example slice profiles are examined to show how they can indicate the relationship among the processing elements of the module and, hence, the cohesiveness of the module. Finally, in section, we discuss further implications of this relationship.. Cohesion Constantine and Yourdon [] have identified seven levels of modular cohesion. t is proposed as a subjective measure of the "intramodular functional relatedness" of a software module. A module is viewed as a collection of processing elements which act together to compute the outputs of the module. Cohesion reflects the functionality of a module by measuring the degree of relatedness among the processing elements within the module. Modules with low cohesion consist of two or more unrelated processing elements. High cohesion modules consist of a single processing element or a collection of highly related elements. The seven levels of cohesion as originally defined are functional, sequential, communicational, procedural, temporal, logical and coincidental. n practice, this degree of discrimination is not necessary. For the purposes of this study, we regrouped the seven categories into four levels of cohesion based on similarities seen when using processing element flow graphs []. (Others, e.g., Emerson [7] and Card [] have used three levels of discrimination in their work.) Nodes in a processing element Jlow graph (PFG) represent the processing elements within a module. Solid edges indicate data flow relationships among the processing elements. Control relationships among the elements are not indicated, but they can have an effect on how the graphs are constructed. An example of this effect is discussed in Section.. Two special nodes, labeled nputs and Outputs, represent the set of input iables used by the module and the set of output iables computed by the module, respectively. These graphs are used to identify processing element relationships typcal of modules with the four cohesion classes described below... Low : Coincidental and Temporal The low cohesion class consists of modules exhibiting two of the lowest cohesion levels defined by Constantine and Yourdon. Coincidental and temporal modules are associated with PFGs which have two or more distinct processing elements as in Figure. Each node in the graph corresponds to the processing elements computing the module's outputs. The edges in the graph indicate that there are no data relationships among the processing elements within the module other than the possibility of a common depence on a subset of the input iables. L8 0 8 ACM 0707/8/000/08$00.7 Recommed by: Priscilla Fowler
2 case, the common data relationship is in the computation for H, which binds the data flow patterns together and increases the cohesiveness of the module. Figure. PFG for a module with low cohesion. Nodes F, G, and H, represent three distinct unrelated processing elements indicating separate data paths through the module. The elements in modules with coincidental cohesion t to operate on different data yielding separate data flows for each element. Modules with temporal cohesion are not discernible from modules with coincidental cohesion since the time relationship cannot be determined by examining data and control flow. Temporal modules t to exhibit data flow patterns similar to coincidental modules... Control Cohesion: Logical and Procedural The second cohesion discrimination level is called control cohesion. t is associated with Constantine and Yourdon s logical and procedural cohesion levels. PFGs for these modules t to be highly diversified and difficult to represent with a simple picture. The PFG in Figure serves as an example. The graph represents alternate definitions of two iables under the control of a common ifthenelse structure. The symbols F and F are used to represent the processing elements corresponding to the alternate definitions for the iable F. Similarly, G and G represent processing elements for the iable G. The if and else blocks are of a low cohesion level since they each contain two unrelated processing elements computing F and G. The effect of %e control structure is shown in the graph by the presence of four processing element nodes instead of two. w outputs Figure. PFG for a module with inputsided communicational data flow among its processing elements. The nodes labeled F and G correspond to processing elements which compute values to be used by the element labeled H. Similarly, the processing elements for modules exhibiting outputsided communicational data flow are bound together by a common element that is produced by the inputs. The result of this common element is then used to generate two or more outputs. The PFG of Figure is typical of a module with outputsided communicational data flow. W Figure. PFG for a module with control cohesion. Fl and G correspond to processing elements contained within the if block of an enclosing ifthenelse structure. F and G correspond to elements contained within the else block. Control cohesion is assumed to be present when the only processing element relationship is a result of common enclosing control structures. Control bindings among processing elements are considered to be much weaker than data bindings. n modules with higher cohesion levels, however, the control and data bindings become interrelated... Data Cohesion: Communicational The third discrimination level is called data cohesion. Communicationally cohesive modules are typified as having a common data relationship among several processing elements in the module. For example, consider the PFG for a module with inputsided communicational data flow in Figure. This PFG contains two processing elements computing values F and G that are related by the fact that they are required to generate another value H. n this Figure. PFG for a module with outputsided communicational data flow among its elements. Node F corresponds to a processing element which computes a value required by the elements labeled G and H. Modules with both types of communicational data flow have a similar amount of cohesiveness among their processing elements. The inputsided PFG contains two distinct data paths consisting of the elements FH and GH. The outputsided graph has similar paths consisting of elements FG and FH. This similarity in data relationships suggests classifying modules with both of these communicational flow types as having data cohesion... High Cohesion: Sequential and Functional The high cohesion discrimination level consists of the sequential and functional levels of Constantine and Yourdon. Modules exhibiting sequential cohesion also have sequential data flow graphs. Figure shows a PFG for a module with sequential cohesion. Each processing element in the PFG computes an output that is then used by the next processing element in the chain. Modules with high cohesion t to be very indepent. Processing elements in sequential modules are highly interrelated due to their strong data depencies. Functional modules typically
3 compute a single output represented by a single processing element. Q nputs h 0 Y outputs Figure. PFG for a module with high cohesion. Nodes F and G represent a chain of processing elements typical in a module with sequential data flow.. Program Sticing Slicing is a method of program reduction introduced by Weiser [. Starting from a subset of a program's behavior, called a slicing criterion, the slicing process results in a minimal form program that reflects the same subset of the program's behavior. Slices have been proposed as potential debugging tools and program understanding aids... The Definition of a Slice Weiser's formal definition of a slice as presented in [] is based on a program flow graph and state trajectories defined by the slicing criterion. The definitions below restrict slices to a single module and are based on definitions given in Longworth's thesis []. The symbol M is used to indicate an arbitrary module, e.g., a procedure, function, or main program. Definition. A slicing criterion is a tuple c i, V>, where i denotes a specific statement number in a module M and V is a subset of the iables in M. Deftnition. An intruprocedurul slice S of a module M on a slicing criterion C is any executable module with the following properties. i. S can be obtained from M by deleting zero or more statements from M. ii. For any given input, the execution behavior at all points in the slice S is the same as would be observed in the module M with respect to the iables in V at statement i. As an example, consider the module in Figure. There are two distinct tasks performed by the module (the computations for the sum and for the product of the first N integers.) The only relationships between the two tasks are the common input value for N and the control structure used to compute the sum and product. This module clearly falls into the category of control cohesion as described in the previous section L procedure SumAndProduct( N : integer: SU" : integer: Prom : integer ): : integer; SU" := 0; Prom := ; for := to N do SU" := SU" + ; Prom := Prom * ; Figure, A module that computes two functions, the sum and the product of the first N integers. The module in Figure 7 was obtained with slicing criterion C = c, {SumN)>. s 8 and have been deleted since they have no effect on the value computed for SumN. Note that the slice obtained is a module that computes a single function, the sum of the first N integers. A similar slice for the product function can be obtained using the criterion C = c, {Pro&}>. 7 0 procedure SumAndProduct( N : integer: Sum?? : integer: Prom : integer ); : integer: SU" := 0; for := to N do SumN := SumN + ; ; Figure 7. Slice of SumAndProduct obtained with slicing criterion c = <, {SU"}>... Slice Profiles A slice proje is a convenient representation for revealing slice patterns within a module. They are based on figures used by Longworth [] to identify the relationship between slices and data flow. As an example, the slice profile for procedure SumAndProduct is given in Figure 8. The "" column contains the line number of each statement in the module. Each column with a iable name as the heading in the slice profile corresponds to the slice associated with that iable. All rows in the profile marked with a vertical bar "" are statements included in a slice for a particular iable, otherwise the row is blank. The "" column contains the source statement. For example, the column with heading SumN in Figure 8 corresponds to the slice for the iable SumN. The slice for SumN consists of all statements containing a vertical bar in the column for SumN, i.e., statements,,,,,, 7, 8,, 0,, and. 00
4 8 0 ProdN procedure SumAndProduct( N : integer; SumN : integer; ProdN : integer ); : integer; sum := 0; ProdN := ; for := to N do SU" := SU" t ; ProdN := ProdN * Figure 8. Slice profile for SumAndProduct. s included in the slice for C = <, {SumN}> are indicated with a "" in the column labeled SumN of the profile. The slice for C = ~, {ProdN}> is indicated in the column labeled ProdN... Slicing Criteria The selection of suitable slicing criteria is necessary in obtaining an appropriate set of slices for examining the cohesiveness of a module. The following definition is for the sets of slices which will be considered in this paper. Definition. SLoutpm is the set of all slices obtained with the criterion C = c., {v)>, where v is any iable defined by M such that one of the following holds for V. i. v is a reference parameter (or any iable which retains its assigned value after the module has completed execution). ii. f M is the main program module, v is any data object passed to the module by the operating system, e.g., the standard output file. The definition of SLourpuu is based on the assumption that the purpose of any module is to compute one or more outputs. The slice of any output iable will consist of statements contained in processing elements involved in the computation of that output. f slices are obtained for all of the module's outputs, their union will completely encompass the module (unless it contains unused or "dead" code). This union of slices should also encompass all of the processing elements in the module... nclusion Criteria Another factor to consider is the types of statements to include in a slice. Weiser's slices include in addition to executable statements both declaration statements and the begids of compound statements. This is desirable if the slices are to be used for debugging or for obtaining executable slices. Eliminating these statements can simplify the problem when using slices to identify cohesiveness. Type definition and declaration statements have no apparent effect on processing element relationships. Begins and s do not constitute separate statements, but serve as grouping symbols for the statements contained within a compound statement. nclusion of these statements can significantly increase the size of the slice intersection when no real overlap exists between the slices. We, therefore, consider the following definition. Defrnition. Variablereferent executable statements (VRES) include all executable statements which reference a iable. VRES were defined by Emerson [7], and his cohesion metric is based on the use of these statements. Since we are concerned with using slices to identify the processing elements within a module, VRES will be used in the remainder of this paper. Figure contains a profile for the SumAndProduct module using only VRES in the slices. SumN ProdN procedure SumAndProduct( N : inteqer; SumN : integer; ProdN : integer ); : integer; sum := 0; ProdN := ; for := to N do sum := sum t ; ProdN := ProdN * : Figure. Slice profile for SumAndF'roduct. Only VRES are included in the slices. 0
5 procedure SumAndProductl ( N : integer; su" : integer; SumSqrN : integer; Prom : integer ; : integer; SU" := 0; for := to N do SLl" := SU" + ; SumSqrN := 0; for := to N do SumSqrN := SumSqrN + *; ProdN := ; for := to N do ProdN := Pro& * Figure 0. Slice profile for SumAndProductl.. Slice Patterns and Processing Element Relationship n this section, we will examine several examples of slice profiles and show how they indicate the relationships among the processing elements in the module. As the first example, the module in Figure 0 exhibits low cohesion since it consists of three distinct processing elements which correspond to the three module outputs, SumN, SumSqrN, and ProdN. There is no relationship among the elements. The slices of the output iables partition the module into three disjoint subsets of the set of all the module's VRES statements as shown in the figure. n this case, it is clear that the partition imposed by the slices has isolated the three processing elements. There are no control or data relationships among the processing elements. This lack of processing element relationship is reflected by the three nonintersecting slices in the profile for the module. Figure contains a iation of the module in Figure 0. n SumAndProduct, the computation of the outputs is enclosed in a forloop structure. The common control structure is the only binding force that has been gained among the processing elements in this version of the module. Since this is the only relationship among the processing elements, the module exhibits control cohesion. This is reflected in the slice profile by determining the intersection of all of the slices which results in the for statement at line. f this statement is removed from each slice, the resulting set of slices again partitions the module into its three unrelated processing elements. A slice profile for procedure ProcessAnay is shown in Figure. This module consists of three processing elements computing 7 SumN SumSqrN ProdN the output iables X, SumX, and SumSqrX. The module first computes values for the array X. The array values are then used by the processing elements computing SumX and SumSqrX. This implies a data depency for these processing elements on the element computing the X array, There is no other relationship between the elements computing SumX and SumSqrX. The module, therefore, falls into the data cohesion category. The data depency is indicated in the slice profile by the intersection of all the slices at statements through. The intersection contains data definitions (statements and ) which are required by the processing elements computing SumX and SumSqrX. A separation of the elements computing SumX and SumSqrX is indicated in the profile by the disjoint subsets of the slices at statements through 7 and 8 through 0. Note that the module exhibits outputsided communicational data flow. The common "input" is the array X, which is used to compute both of the outputs, SumX and SumSqrX. The PFG shown in Figure is identical to the PFG for ProcessArray, where F, G, and H, in the figure, correspond to processing elements computing the iables X, SumX, and SumSqrX, respectively. Modules exhibiting communicational data flow are classified as having data cohesion. A profile for module FindLargest is shown in Figure. This module consists of two processing elements computing the positions of the largest (Max) and second largest (NextMax) elements in the anay X. The processing elements are highly interrelated due to the strong depency of NextMax on the value of Max. The depency is sequential in nature since any assignments of NextMax are made after Max has been determined. This places FindLargest in the high cohesion level. The high processing element procedure SumAndProduct( N : integer; SumN : integer; SumSqrN : integer; ProdN : integer ); : integer; sum := 0: SumSqrN := 0; Prom := ; for := to N do SumN := SumN + ; SumSqrN := SumSqrN + *; ProdN := ProdN * ; Figure. Slice profile for SumAndProduct. 0
6 _. 8 0 X SumX SumSqrX procedure ProcessArray( N : integer; X : ntvector; SumX : integer ; SumSqrX : integer );, J : integer; for := to N do X[] = 0; for J := to do X[l := X[ t J : SumX := 0; for := to N do SumX := SumX + X[]; SumSqrX := 0: for := to N do SumSqrX := SumSqrX t X[l*X[l Figure. Slice profile for ProcessArray. relationship is indicated in the profile by the amount of overlap between the slices. n particular, the slice for Max is entirely contained within the slice for NextMax.. Conclusion The observations made in the previous section on the relationship between slice patterns and processing element relationships, are summarized below. Observation. The partition of a module induced by the slice of an output iable consists of the union of the statements from all the processing elements in the module which can affect the final value computed for the sliced iable. Observation. The intersection of two or more slices is a subset of the module's processing elements. l a 0 Max NextMax Observation. Slice intersections indicate processing element relationships. f the intersection of slices contains primarily control statements and definitions for the control iables, the processing elements t to exhibit control cohesion. f the intersection of slices contains noncontrol iable data definitions, the processing elements t to exhibit data cohesion. SumAndProductl serves as an example of the first observation. n this case, the slices clearly partition the module into its three distinct processing elements. SumAndF'roductZ is an example of the third observation since the slice intersection contains only a control statement. The third observation can also be seen in the ProcessArray module since the slice intersection contains data definitions for the X array. This intersection is common to the slices for SumX and SumSqrX indicating a data depency in the processing elements for SumX and SumSqrX on the element procedure FindLargest( A : Realvector; N : integer: Max : integer; NextMax : integer va r : integer; if (A[ >= A[) then Max := ; NextMax := else Max := : NextMax := : := ; while ( <= N) do if (AL >= A[Max]) then NextMax := Max: Max := else if (AL > ALNextMaxl) then NextMax := ; :=+l : Figure. Slice profile for FindLargest. 0
7 computing X. Finally, the second observation can be seen in Processhay since the slice for X is completely contained within the intersection of all the slices. Therefore, the slice for X is the processing element which computes X. n this paper, we attempted to show that a relationship exists between the slice profile of a module and the cohesion of the module. Slice profiles can be automatically generated easily (see []) and therefore could be used as a tool for detecting modules with inappropriately low cohesion levels. This could be useful during both the implementation of a system as well as during system maintenance. These slice profiles are also being examined as the basis for cohesion metrics. t is hoped that in future work, we will be able to present quantitative metrics for cohesion based on measuring the properties of the slice profiles References B. W. Boehm, J. R. Brown, H. Kaspar, M. Lipow, G. J. MacLeod and M. J. Merritt, Characteristics of software quality, TRW and NorthHolland Publishing Co., 78. D. N. Card, V. E. Church and W. W. Agresti, An empirical study of software design practices, EEE Trans. on Software Eng. SE, (February 8), 7. L. L. Constantine and E. Yourdon, Structured design, Englewood Cliffs, PrenticeHall, New Jersey, 7. S. D. Conte, H. E. Dunsmore and V. Y. Shen, in Software engineering metrics and models, BenjamidCummings Publishing Company, nc., 8. B. Curtis, S. B. Sheppard and P. Milliman, Third time charm: stronger replication of the ability of software complexity metrics to predict programmer performance, Proceedings of the th international conference on software engineering, Munich, Germany, 7,0. B. Curtis, Measurement and experimentation in software engineering, Proceedings of the BEE 8, (September 80), 7. T. J. Emerson, A discriminant metric for module cohesion, Proceedings of the 7th international conference on software engineering, Chicago, l., 8,0. T. Gilb, Software Metrics, Winthrop Publishers, nc., 77. H. Longworth, Slice based program metrics, Master s Thesis, Michigan Technological University, 8. G. Myers, Composite structured design, Van Nostrand, 78. M. PageJones, in The practical guide to structured systems design, New York, NY, 80, Yourdon Press. J. J. Thuss, An nvestigation into Sliced Based Cohesion Metrics, Master s Thesis, Michigan Technological University, 88. M. D. Weiser, Program slicing, Proceedings of the th international conference on software engineering, San Diego, CA., 8,. M. D. Weiser, Programmers use slices when debugging, Comm. ACM,7 (July 8),. M. D. Weiser, Program slicing, EEE Trans. on Software Eng. SE0, (July 8), 7. 0
The Relationship between Slices and Module Cohesion
The Relationship between Slices and Module Cohesion Linda M. Ott Jeffrey J. Thuss Department of Computer Science Michigan Technological University Houghton, MI 49931 Abstract High module cohesion is often
More informationIntroduction to Extended Common Coupling with an Application Study on Linux
Introduction to Extended Common Coupling with an Application Study on Linux Liguo Yu Computer Science and Informatics Indiana University South Bend 1700 Mishawaka Ave. P.O. Box 7111 South Bend, IN 46634,
More informationAn Efficient Algorithm for Computing all Program Static Slices
An Efficient Algorithm for Computing all Program Static Slices JEHAD AL DALLAL Department of Information Sciences Kuwait University P.O. Box 5969, Safat 13060 KUWAIT Abstract: - Program slicing is the
More informationEfficient Program Slicing Algorithms for Measuring Functional Cohesion and Parallelism
Efficient Program Slicing Algorithms for Measuring Functional Cohesion and Parallelism Jehad Al Dallal Abstract Program slicing is the task of finding all statements in a program that directly or indirectly
More informationSoftware Metrics and Design Principles. What is Design?
Software Metrics and Design Principles Chapters 5,8 What is Design? Design is the process of creating a plan or blueprint to follow during actual construction Design is a problem-solving activity that
More informationImproving the Applicability of Object-Oriented Class Cohesion Metrics
Improving the Applicability of Object-Oriented Class Cohesion Metrics Jehad Al Dallal Department of Information Science Kuwait University P.O. Box 5969, Safat 13060, Kuwait jehad@ku.edu.kw Abstract Context:
More informationInheritance Metrics: What do they Measure?
Inheritance Metrics: What do they Measure? G. Sri Krishna and Rushikesh K. Joshi Department of Computer Science and Engineering Indian Institute of Technology Bombay Mumbai, 400 076, India Email:{srikrishna,rkj}@cse.iitb.ac.in
More informationFast Fuzzy Clustering of Infrared Images. 2. brfcm
Fast Fuzzy Clustering of Infrared Images Steven Eschrich, Jingwei Ke, Lawrence O. Hall and Dmitry B. Goldgof Department of Computer Science and Engineering, ENB 118 University of South Florida 4202 E.
More informationCore Membership Computation for Succinct Representations of Coalitional Games
Core Membership Computation for Succinct Representations of Coalitional Games Xi Alice Gao May 11, 2009 Abstract In this paper, I compare and contrast two formal results on the computational complexity
More informationIntersection of sets *
OpenStax-CNX module: m15196 1 Intersection of sets * Sunil Kumar Singh This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 2.0 We have pointed out that a set
More informationAPPLICATION OF THE FUZZY MIN-MAX NEURAL NETWORK CLASSIFIER TO PROBLEMS WITH CONTINUOUS AND DISCRETE ATTRIBUTES
APPLICATION OF THE FUZZY MIN-MAX NEURAL NETWORK CLASSIFIER TO PROBLEMS WITH CONTINUOUS AND DISCRETE ATTRIBUTES A. Likas, K. Blekas and A. Stafylopatis National Technical University of Athens Department
More informationTaxonomy Dimensions of Complexity Metrics
96 Int'l Conf. Software Eng. Research and Practice SERP'15 Taxonomy Dimensions of Complexity Metrics Bouchaib Falah 1, Kenneth Magel 2 1 Al Akhawayn University, Ifrane, Morocco, 2 North Dakota State University,
More informationFrom Module To Objects
From Module To Objects It is very difficult to maintain a large monolithic block of code The solution is to divide the code into smaller pieces, called modules What is a Module? A small and manageable
More informationProgram Slicing in the Presence of Pointers (Extended Abstract)
Program Slicing in the Presence of Pointers (Extended Abstract) James R. Lyle National Institute of Standards and Technology jimmy@swe.ncsl.nist.gov David Binkley Loyola College in Maryland National Institute
More informationFOUR EDGE-INDEPENDENT SPANNING TREES 1
FOUR EDGE-INDEPENDENT SPANNING TREES 1 Alexander Hoyer and Robin Thomas School of Mathematics Georgia Institute of Technology Atlanta, Georgia 30332-0160, USA ABSTRACT We prove an ear-decomposition theorem
More informationCHAPTER 8. Copyright Cengage Learning. All rights reserved.
CHAPTER 8 RELATIONS Copyright Cengage Learning. All rights reserved. SECTION 8.3 Equivalence Relations Copyright Cengage Learning. All rights reserved. The Relation Induced by a Partition 3 The Relation
More informationISSN: [Keswani* et al., 7(1): January, 2018] Impact Factor: 4.116
IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY AUTOMATIC TEST CASE GENERATION FOR PERFORMANCE ENHANCEMENT OF SOFTWARE THROUGH GENETIC ALGORITHM AND RANDOM TESTING Bright Keswani,
More informationSOFTWARE COMPLEXITY MEASUREMENT USING MULTIPLE CRITERIA ABSTRACT
SOFTWARE COMPLEXITY MEASUREMENT USING MULTIPLE CRITERIA Bhaskar Raj Sinha, Pradip Peter Dey, Mohammad Amin and Hassan Badkoobehi National University, School of Engineering, Technology, and Media 3678 Aero
More informationHigh-level Variable Selection for Partial-Scan Implementation
High-level Variable Selection for Partial-Scan Implementation FrankF.Hsu JanakH.Patel Center for Reliable & High-Performance Computing University of Illinois, Urbana, IL Abstract In this paper, we propose
More informationThe Bounded Edge Coloring Problem and Offline Crossbar Scheduling
The Bounded Edge Coloring Problem and Offline Crossbar Scheduling Jonathan Turner WUCSE-05-07 Abstract This paper introduces a variant of the classical edge coloring problem in graphs that can be applied
More informationDesigning Views to Answer Queries under Set, Bag,and BagSet Semantics
Designing Views to Answer Queries under Set, Bag,and BagSet Semantics Rada Chirkova Department of Computer Science, North Carolina State University Raleigh, NC 27695-7535 chirkova@csc.ncsu.edu Foto Afrati
More information9.5 Equivalence Relations
9.5 Equivalence Relations You know from your early study of fractions that each fraction has many equivalent forms. For example, 2, 2 4, 3 6, 2, 3 6, 5 30,... are all different ways to represent the same
More informationByzantine Consensus in Directed Graphs
Byzantine Consensus in Directed Graphs Lewis Tseng 1,3, and Nitin Vaidya 2,3 1 Department of Computer Science, 2 Department of Electrical and Computer Engineering, and 3 Coordinated Science Laboratory
More informationReusability Metrics for Object-Oriented System: An Alternative Approach
Reusability Metrics for Object-Oriented System: An Alternative Approach Parul Gandhi Department of Computer Science & Business Administration Manav Rachna International University Faridabad, 121001, India
More informationProperties of Constraint Systems of Property Models
Properties of Constraint Systems of Property Models John Freeman jfreeman@cse.tamu.edu Jaakko Järvi jarvi@cse.tamu.edu Jacob Smith jnsmith@cse.tamu.edu Mat Marcus mmarcus@emarcus.org Sean Parent Adobe
More informationUsing design abstractions to visualize, quantify, and restructure software 1
The Journal of Systems and Software 42 (1998) 175±187 Using design abstractions to visualize, quantify, and restructure software 1 Byung-Kyoo Kang a, James M. Bieman b, * a Electronics and Telecommunications
More informationON THE STRONGLY REGULAR GRAPH OF PARAMETERS
ON THE STRONGLY REGULAR GRAPH OF PARAMETERS (99, 14, 1, 2) SUZY LOU AND MAX MURIN Abstract. In an attempt to find a strongly regular graph of parameters (99, 14, 1, 2) or to disprove its existence, we
More informationUnit-3 Software Design (Lecture Notes)
Unit-3 Software Design (Lecture Notes) Prepared by Jay Nanavati, Assistant Professor, SEMCOM Topics Software Design - Introduction Design Principles Module Level concepts Overview of Structured design
More informationAn Object Oriented Runtime Complexity Metric based on Iterative Decision Points
An Object Oriented Runtime Complexity Metric based on Iterative Amr F. Desouky 1, Letha H. Etzkorn 2 1 Computer Science Department, University of Alabama in Huntsville, Huntsville, AL, USA 2 Computer Science
More informationTowards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components
2009 International Symposium on Computing, Communication, and Control (ISCCC 2009) Proc.of CSIT vol.1 (2011) (2011) IACSIT Press, Singapore Towards Cohesion-based Metrics as Early Quality Indicators of
More informationTDWI strives to provide course books that are contentrich and that serve as useful reference documents after a class has ended.
Previews of TDWI course books offer an opportunity to see the quality of our material and help you to select the courses that best fit your needs. The previews cannot be printed. TDWI strives to provide
More informationIntroduction to System Design
Introduction to System Design Software Requirements and Design CITS 4401 Lecture 8 System Design is a creative process no cook book solutions goal driven we create a design for solving some problem constraint
More informationCost Models for Query Processing Strategies in the Active Data Repository
Cost Models for Query rocessing Strategies in the Active Data Repository Chialin Chang Institute for Advanced Computer Studies and Department of Computer Science University of Maryland, College ark 272
More informationAN ALGORITHM WHICH GENERATES THE HAMILTONIAN CIRCUITS OF A CUBIC PLANAR MAP
AN ALGORITHM WHICH GENERATES THE HAMILTONIAN CIRCUITS OF A CUBIC PLANAR MAP W. L. PRICE ABSTRACT The paper describes an algorithm which generates those Hamiltonian circuits of a given cubic planar map
More informationMorphological Image Processing
Morphological Image Processing Morphology Identification, analysis, and description of the structure of the smallest unit of words Theory and technique for the analysis and processing of geometric structures
More informationA taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA
A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA
More information6. Relational Algebra (Part II)
6. Relational Algebra (Part II) 6.1. Introduction In the previous chapter, we introduced relational algebra as a fundamental model of relational database manipulation. In particular, we defined and discussed
More informationMorphological Image Processing
Morphological Image Processing Binary image processing In binary images, we conventionally take background as black (0) and foreground objects as white (1 or 255) Morphology Figure 4.1 objects on a conveyor
More informationD-Optimal Designs. Chapter 888. Introduction. D-Optimal Design Overview
Chapter 888 Introduction This procedure generates D-optimal designs for multi-factor experiments with both quantitative and qualitative factors. The factors can have a mixed number of levels. For example,
More informationProcedia Computer Science
Procedia Computer Science 00 (2009) 000 000 Procedia Computer Science www.elsevier.com/locate/procedia INSODE 2011 Theoretical Analysis for the Impact of Including Special Methods in Lack-of-Cohesion Computation
More informationThese notes present some properties of chordal graphs, a set of undirected graphs that are important for undirected graphical models.
Undirected Graphical Models: Chordal Graphs, Decomposable Graphs, Junction Trees, and Factorizations Peter Bartlett. October 2003. These notes present some properties of chordal graphs, a set of undirected
More informationLecture 10 September 19, 2007
CS 6604: Data Mining Fall 2007 Lecture 10 September 19, 2007 Lecture: Naren Ramakrishnan Scribe: Seungwon Yang 1 Overview In the previous lecture we examined the decision tree classifier and choices for
More informationExcerpt from "Art of Problem Solving Volume 1: the Basics" 2014 AoPS Inc.
Chapter 5 Using the Integers In spite of their being a rather restricted class of numbers, the integers have a lot of interesting properties and uses. Math which involves the properties of integers is
More informationprocess variable x,y,a,b,c: integer begin x := b; -- d2 -- while (x < c) loop end loop; end process; d: a := b + c
ControlData-æow Analysis for VHDL Semantic Extraction æ Yee-Wing Hsieh Steven P. Levitan Department of Electrical Engineering University of Pittsburgh Abstract Model abstraction reduces the number of states
More informationInterleaving Schemes on Circulant Graphs with Two Offsets
Interleaving Schemes on Circulant raphs with Two Offsets Aleksandrs Slivkins Department of Computer Science Cornell University Ithaca, NY 14853 slivkins@cs.cornell.edu Jehoshua Bruck Department of Electrical
More informationTopology Homework 3. Section Section 3.3. Samuel Otten
Topology Homework 3 Section 3.1 - Section 3.3 Samuel Otten 3.1 (1) Proposition. The intersection of finitely many open sets is open and the union of finitely many closed sets is closed. Proof. Note that
More informationREDUCING GRAPH COLORING TO CLIQUE SEARCH
Asia Pacific Journal of Mathematics, Vol. 3, No. 1 (2016), 64-85 ISSN 2357-2205 REDUCING GRAPH COLORING TO CLIQUE SEARCH SÁNDOR SZABÓ AND BOGDÁN ZAVÁLNIJ Institute of Mathematics and Informatics, University
More informationIEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3
LANGUAGE REFERENCE MANUAL Std P1076a-1999 2000/D3 Clause 10 Scope and visibility The rules defining the scope of declarations and the rules defining which identifiers are visible at various points in the
More information3 No-Wait Job Shops with Variable Processing Times
3 No-Wait Job Shops with Variable Processing Times In this chapter we assume that, on top of the classical no-wait job shop setting, we are given a set of processing times for each operation. We may select
More informationHandling Missing Values via Decomposition of the Conditioned Set
Handling Missing Values via Decomposition of the Conditioned Set Mei-Ling Shyu, Indika Priyantha Kuruppu-Appuhamilage Department of Electrical and Computer Engineering, University of Miami Coral Gables,
More informationTransactions on Information and Communications Technologies vol 4, 1993 WIT Press, ISSN
Use of quality characteristics graphs for a knowledge-based assistance in software quality management H. Basson, M.C. Haton, J.C. Derniame Centre de Recherche en Informatique de Nancy, BP 239, 54506 Vandoeuvre-les-Nancy,
More informationIntroducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence
Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Ratko Orlandic Department of Computer Science and Applied Math Illinois Institute of Technology
More information[11] L. M. Ott and J. M. Bieman. Eects of software changes on module cohesion. In IEEE Conference on
[11] L. M. Ott and J. M. Bieman. Eects of software changes on module cohesion. In IEEE Conference on Software Maintenance, pages 345{353, November 1992. [12] L. M. Ott and J. J. Thuss. The relationship
More informationRigidity, connectivity and graph decompositions
First Prev Next Last Rigidity, connectivity and graph decompositions Brigitte Servatius Herman Servatius Worcester Polytechnic Institute Page 1 of 100 First Prev Next Last Page 2 of 100 We say that a framework
More informationClassification. Vladimir Curic. Centre for Image Analysis Swedish University of Agricultural Sciences Uppsala University
Classification Vladimir Curic Centre for Image Analysis Swedish University of Agricultural Sciences Uppsala University Outline An overview on classification Basics of classification How to choose appropriate
More informationCOUNTING AND PROBABILITY
CHAPTER 9 COUNTING AND PROBABILITY Copyright Cengage Learning. All rights reserved. SECTION 9.3 Counting Elements of Disjoint Sets: The Addition Rule Copyright Cengage Learning. All rights reserved. Counting
More informationConstrained Types and their Expressiveness
Constrained Types and their Expressiveness JENS PALSBERG Massachusetts Institute of Technology and SCOTT SMITH Johns Hopkins University A constrained type consists of both a standard type and a constraint
More informationSOFTWARE LAYERS AND MEASUREMENT
SOFTWARE LAYERS AND MEASUREMENT Jean-Marc Desharnais, Software Engineering Laboratory in Applied Metrics Denis St-Pierre, DSA Consulting Inc. Serge Oligny, Laboratoire de recherche en gestion des logiciels
More informationA Connection between Network Coding and. Convolutional Codes
A Connection between Network Coding and 1 Convolutional Codes Christina Fragouli, Emina Soljanin christina.fragouli@epfl.ch, emina@lucent.com Abstract The min-cut, max-flow theorem states that a source
More informationThe Encoding Complexity of Network Coding
The Encoding Complexity of Network Coding Michael Langberg Alexander Sprintson Jehoshua Bruck California Institute of Technology Email: mikel,spalex,bruck @caltech.edu Abstract In the multicast network
More informationAN ONTOLOGICAL EVALUATION OF JACKSON'S SYSTEM DEVELOPMENT MODEL. Fiona Rohde. Department of Commerce The University of Queensland, 4072.
AN ONTOLOGICAL EVALUATION OF JACKSON'S SYSTEM DEVELOPMENT MODEL Fiona Rohde Department of Commerce The University of Queensland, 4072. Australia ABSTRACT Within the discipline of information systems, numerous
More informationTesting Process and Methods. CS 490MT/5555, Spring 2017, Yongjie Zheng
Testing Process and Methods CS 490MT/5555, Spring 2017, Yongjie Zheng Context of Software Testing Verification & Validation Verification: checking that the software conforms to its specification. Validation:
More informationCHAPTER 6 MODIFIED FUZZY TECHNIQUES BASED IMAGE SEGMENTATION
CHAPTER 6 MODIFIED FUZZY TECHNIQUES BASED IMAGE SEGMENTATION 6.1 INTRODUCTION Fuzzy logic based computational techniques are becoming increasingly important in the medical image analysis arena. The significant
More informationPebble Sets in Convex Polygons
2 1 Pebble Sets in Convex Polygons Kevin Iga, Randall Maddox June 15, 2005 Abstract Lukács and András posed the problem of showing the existence of a set of n 2 points in the interior of a convex n-gon
More informationProgram Slicing in the Presence of Pointers
Program Slicing in the Presence of Pointers James R. Lyle David Binkley jimmy@sst.ncsl.nist.gov binkley@sst.ncsl.nist.gov U.S. Depar tment of Commerce Technology Administration National Institute of Standards
More informationThe Structure of Bull-Free Perfect Graphs
The Structure of Bull-Free Perfect Graphs Maria Chudnovsky and Irena Penev Columbia University, New York, NY 10027 USA May 18, 2012 Abstract The bull is a graph consisting of a triangle and two vertex-disjoint
More informationResPubliQA 2010
SZTAKI @ ResPubliQA 2010 David Mark Nemeskey Computer and Automation Research Institute, Hungarian Academy of Sciences, Budapest, Hungary (SZTAKI) Abstract. This paper summarizes the results of our first
More informationSoftware Design. Software design is a blueprint or a plan for a computerbased solution for system
Software Design Software Design Software design is a blueprint or a plan for a computerbased solution for system Software design deals with transforming the customer requirements, as described by the SRS
More informationThe Geometry of Carpentry and Joinery
The Geometry of Carpentry and Joinery Pat Morin and Jason Morrison School of Computer Science, Carleton University, 115 Colonel By Drive Ottawa, Ontario, CANADA K1S 5B6 Abstract In this paper we propose
More informationApproximation Algorithms for Wavelength Assignment
Approximation Algorithms for Wavelength Assignment Vijay Kumar Atri Rudra Abstract Winkler and Zhang introduced the FIBER MINIMIZATION problem in [3]. They showed that the problem is NP-complete but left
More informationPrinciples of Parallel Algorithm Design: Concurrency and Decomposition
Principles of Parallel Algorithm Design: Concurrency and Decomposition John Mellor-Crummey Department of Computer Science Rice University johnmc@rice.edu COMP 422/534 Lecture 2 12 January 2017 Parallel
More informationExtension, Abbreviation and Refinement -Identifying High-Level Dependence Structures Using Slice-Based Dependence Analysis
Extension, Abbreviation and Refinement -Identifying High-Level Dependence Structures Using Slice-Based Dependence Analysis Zheng Li CREST, King s College London, UK Overview Motivation Three combination
More informationOn Algebraic Expressions of Generalized Fibonacci Graphs
On Algebraic Expressions of Generalized Fibonacci Graphs MARK KORENBLIT and VADIM E LEVIT Department of Computer Science Holon Academic Institute of Technology 5 Golomb Str, PO Box 305, Holon 580 ISRAEL
More information3. Cluster analysis Overview
Université Laval Multivariate analysis - February 2006 1 3.1. Overview 3. Cluster analysis Clustering requires the recognition of discontinuous subsets in an environment that is sometimes discrete (as
More informationPrecise Executable Interprocedural Slices
Precise Executable Interprocedural Slices DAVID BINKLEY Loyola College in Maryland The notion of a program slice, originally introduced by Mark Weiser, is useful in program debugging, automatic parallelization,
More informationHW Graph Theory SOLUTIONS (hbovik) - Q
1, Diestel 9.3: An arithmetic progression is an increasing sequence of numbers of the form a, a+d, a+ d, a + 3d.... Van der Waerden s theorem says that no matter how we partition the natural numbers into
More informationA Mechanism for Sequential Consistency in a Distributed Objects System
A Mechanism for Sequential Consistency in a Distributed Objects System Cristian Ţăpuş, Aleksey Nogin, Jason Hickey, and Jerome White California Institute of Technology Computer Science Department MC 256-80,
More informationOn Universal Cycles of Labeled Graphs
On Universal Cycles of Labeled Graphs Greg Brockman Harvard University Cambridge, MA 02138 United States brockman@hcs.harvard.edu Bill Kay University of South Carolina Columbia, SC 29208 United States
More informationEliminating False Loops Caused by Sharing in Control Path
Eliminating False Loops Caused by Sharing in Control Path ALAN SU and YU-CHIN HSU University of California Riverside and TA-YUNG LIU and MIKE TIEN-CHIEN LEE Avant! Corporation In high-level synthesis,
More informationCS 307: Software Engineering. Lecture 9: Software Design (Coupling), Modeling Interactions and Behavior
CS 307: Software Engineering Lecture 9: Software Design (Coupling), Modeling Interactions and Behavior Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person
More informationARELAY network consists of a pair of source and destination
158 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL 55, NO 1, JANUARY 2009 Parity Forwarding for Multiple-Relay Networks Peyman Razaghi, Student Member, IEEE, Wei Yu, Senior Member, IEEE Abstract This paper
More informationAlgorithm must complete after a finite number of instructions have been executed. Each step must be clearly defined, having only one interpretation.
Algorithms 1 algorithm: a finite set of instructions that specify a sequence of operations to be carried out in order to solve a specific problem or class of problems An algorithm must possess the following
More informationCOMPILER DESIGN. For COMPUTER SCIENCE
COMPILER DESIGN For COMPUTER SCIENCE . COMPILER DESIGN SYLLABUS Lexical analysis, parsing, syntax-directed translation. Runtime environments. Intermediate code generation. ANALYSIS OF GATE PAPERS Exam
More informationBEBR FACULTY WORKING PAPER NO On Structured Modeling: A Model Management Perspective. Ting-peng Liang
BEBR FACULTY WORKING PAPER NO. 1385 On Structured Modeling: A Model Management Perspective Ting-peng Liang College of Commerce and Business Administration Bureau of Economic and Business Research University
More informationFuzzy Partitioning with FID3.1
Fuzzy Partitioning with FID3.1 Cezary Z. Janikow Dept. of Mathematics and Computer Science University of Missouri St. Louis St. Louis, Missouri 63121 janikow@umsl.edu Maciej Fajfer Institute of Computing
More informationInput Space Partitioning
Input Space Partitioning Instructor : Ali Sharifara CSE 5321/4321 Summer 2017 CSE 5321/4321, Ali Sharifara, UTA 1 Input Space Partitioning Introduction Equivalence Partitioning Boundary-Value Analysis
More information1. Suppose you are given a magic black box that somehow answers the following decision problem in polynomial time:
1. Suppose you are given a magic black box that somehow answers the following decision problem in polynomial time: Input: A CNF formula ϕ with n variables x 1, x 2,..., x n. Output: True if there is an
More informationMATHEMATICS 191, FALL 2004 MATHEMATICAL PROBABILITY Outline #1 (Countability and Uncountability)
MATHEMATICS 191, FALL 2004 MATHEMATICAL PROBABILITY Outline #1 (Countability and Uncountability) Last modified: September 16, 2004 Reference: Apostol, Calculus, Vol. 2, section 13.19 (attached). The aim
More informationOPTIMIZING CHEMICAL SENSOR ARRAY SIZES
OPTIMIZING CHEMICAL SENSOR ARRAY SIZES G. C. Osbourn, R. F. Martinez, J. W. Bartholomew, W. G. Yelton, A. J. Ricco* Sandia National Laboratories, Albuquerque, NM 87 185-1423, "ACLARA Biosciences, Inc.,
More informationCS560: Formal Modelling and Implementation of Systems (Term II)
CS560: Formal Modelling and Implementation of Systems (Term II) Software Design A.P.O Riordan, 2009 Email: a.oriordan@cs.ucc.ie Course Webpage: http://www.cs.ucc.ie/~adrian/cs560.html CS560 1 Design Design
More informationParameterized graph separation problems
Parameterized graph separation problems Dániel Marx Department of Computer Science and Information Theory, Budapest University of Technology and Economics Budapest, H-1521, Hungary, dmarx@cs.bme.hu Abstract.
More informationFlexible Coloring. Xiaozhou Li a, Atri Rudra b, Ram Swaminathan a. Abstract
Flexible Coloring Xiaozhou Li a, Atri Rudra b, Ram Swaminathan a a firstname.lastname@hp.com, HP Labs, 1501 Page Mill Road, Palo Alto, CA 94304 b atri@buffalo.edu, Computer Sc. & Engg. dept., SUNY Buffalo,
More information(IVl -1) messages. In [3], both the time and com-
AN OPTIMAL DISTRIBUTED DEPTH-FIRST-SEARCH ALGORITHM Mohan B. Sharma 38, Sitharama S. Iyengar 38 $ Department of Computer Science Louisiana 6tate University Baton Rouge, LA 70803. Narasimha K. Mandyam t
More informationOn the Max Coloring Problem
On the Max Coloring Problem Leah Epstein Asaf Levin May 22, 2010 Abstract We consider max coloring on hereditary graph classes. The problem is defined as follows. Given a graph G = (V, E) and positive
More informationCLASSIFICATION WITH RADIAL BASIS AND PROBABILISTIC NEURAL NETWORKS
CLASSIFICATION WITH RADIAL BASIS AND PROBABILISTIC NEURAL NETWORKS CHAPTER 4 CLASSIFICATION WITH RADIAL BASIS AND PROBABILISTIC NEURAL NETWORKS 4.1 Introduction Optical character recognition is one of
More informationTEST CASE EFFECTIVENESS OF HIGHER ORDER MUTATION TESTING
TEST CASE EFFECTIVENESS OF HIGHER ORDER MUTATION TESTING Shalini Kapoor CSE Deptt, GNI, Mullana get_shalini@rediffmail.com Abstract--- Effectiveness means how good a test case is in finding faults. Traditional
More informationIntroduction to Sets and Logic (MATH 1190)
Introduction to Sets and Logic () Instructor: Email: shenlili@yorku.ca Department of Mathematics and Statistics York University Dec 4, 2014 Outline 1 2 3 4 Definition A relation R from a set A to a set
More informationI How does the formulation (5) serve the purpose of the composite parameterization
Supplemental Material to Identifying Alzheimer s Disease-Related Brain Regions from Multi-Modality Neuroimaging Data using Sparse Composite Linear Discrimination Analysis I How does the formulation (5)
More informationIntroduction to Software Testing Chapter 4 Input Space Partition Testing
Introduction to Software Testing Chapter 4 Input Space Partition Testing Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/ softwaretest/ Ch. 4 : Input Space Coverage Four Structures for Modeling
More informationNumber System. Introduction. Natural Numbers (N) Whole Numbers (W) Integers (Z) Prime Numbers (P) Face Value. Place Value
1 Number System Introduction In this chapter, we will study about the number system and number line. We will also learn about the four fundamental operations on whole numbers and their properties. Natural
More information