On Modeling Software Architecture Recovery as Graph Matching

Size: px
Start display at page:

Download "On Modeling Software Architecture Recovery as Graph Matching"

Transcription

1 O Modelig Software Architecture Recovery as Graph Matchig Kamra Sartipi Kostas Kotogiais Uiversity of Waterloo School of Computer Sciece ad, Dept. of Electrical & Computer Egieerig Waterloo, ON. NL 3G, Caada ksartipi, Abstract This paper presets a graph matchig model for the software architecture recovery problem. Because of their expressiveess, the graphs have bee widely used for represetig both the software system ad its high-level view, kow as the coceptual architecture. Modelig the recovery process as graph matchig is a attempt to idetify a sub-optimal trasformatio from a patter graph, represetig the high-level view of the system, oto a subgraph of the software system graph. A successful match yields a restructured system that coforms with the give patter graph. A failed match idicates the poits where the system violates specific costraits. The patter graph geeratio ad the icremetality of the recovery process are the importat issues to be addressed. The approach is evaluated through case studies usig a prototype toolkit that implemets the proposed iteractive recovery eviromet. Itroductio Most approaches to software architecture recovery view the recovery process as: i) a patter matchig problem that models the recovery by idetifyig groups of system etities whose properties closely match with the user-defied queries [0, 6]; ii) a clusterig problem that models the recovery by groupig the related parts of a software system ito cohesive compoets [8, ]; iii) a costrait satisfactio problem that models the recovery by idetifyig groups of etities that meet the coditios defied i a repository of plas [6]; iv) a lattice partitioig problem that models the recovery by classifyig maximally related groups of This work was fuded by IBM Caada Ltd. Laboratory - Ceter for AdvacedStudies (Toroto) ad the Natioal Research Coucil of Caada. etities that are arraged i a lattice []; or v) a compositio ad visualizatio problem that models the recovery by aggregatig system etities ito cotaimet-hierarchy of compoets [4]. The reverse egieerig commuity has also paid particular attetio to the patter matchig approaches sice they allow the use of domai kowledge ad system documetatio i composig the patter, hece provide a user/tool cooperative eviromet for architectural recovery. Moreover, the software systems are ituitively represeted as graphs ad the reverse egieerig commuity is o the verge of adoptig a graph stadard for iformatio exchage amog the existig reverse egieerig tools []. This paper presets a approach to software architecture recovery that cosiders the high-level desig of a system as a patter graph, ad models the recovery process as a graph patter matchig problem that matches such a highlevel patter graph of the system with a etity-relatioship graph represetatio of the source-code system etities. The motivatio for this research stems from the lack of a reflective ad uiform model for patter-based software architectural recovery, whereby the software system, architectural patter, ad patter matchig process, are all uiformly represeted usig a graph formalism, ad the recovered architecture coforms with detailed costraits of the architectural patter. The remaiig sectios of this paper are orgaized as follows. The related work is discussed i Sectio. Sectio 3 presets the proposed eviromet for architectural recovery. Sectios 4 ad represet the software system ad its architectural patter. Sectios 6 ad discuss the graph matchig process ad modelig. Sectio 8 presets the tractability of the matchig process. Sectio provides the steps for patter geeratio, ad Sectio 0 presets the architectural recovery case studies.

2 Off lie O lie pre process aalysis Software System C / Pascal /... System aalysis Domai & Documet Decisio makig Module Itercoectio patter AQL query RSF Parsig AST Query geeratio User assisted Data miig Software as graph Architecture & Metrics Graph geeratio Automatic Software graph regios & Similarity matrix Graph matchig egie (search & evaluatio) Patter graph Figure. The iteractive eviromet for the proposed patter-based software architecture recovery. Related work The related approaches to this work iclude the followigs. I Dali [] a patter cosists of a collectio of SQL queries that collect the architectural compoets ad their derived relatios, whereas the approach i this paper presets a modular patter of the software system usig the AQL queries. I [6], the user defies a architectural patter or style as a graph of compoets ad coectors represetig sigle elemets ad uses approximate matchig to idetify the patter i the software system. I cotrast our approach defies a macroscopic patter o the groups of system etities ad the iteractio amog the groups of etities. I [0], a software reflexio model is proposed to assist the user i testig his/her metal model of the system usig textual declarative forms. I cotrast, our approach uses a structured query as patter ad architectural costraits to be satisfied i the recovered architecture, as opposed to checkig the validatio of the facts i the patter. The approach i this paper also relates to our previous work o a graph patter matchig approach to software architecture recovery [4]. Specifically, the cotributios of this paper iclude: i) providig represetatio models for the software system beig aalyzed ad the high-level patter of compoets ad costraits; ii) modelig the graph matchig process by a set of recursive graph equatios; ad iii) steps for geeratig the architectural patter graph. 3 Proposed eviromet for recovery process Despite several attempts for automatig the architectural recovery process (i.e., clusterig) it is geerally accepted that a fully-automated techique is ot feasible. It is rather difficult to extract the architecture of a large system at oce, hece, the architectural recovery should be a icremetal process. Software systems usually cosist of patters i their desig which form the basis for the recovery process. Most recovery processes focus o the structural properties of a system, igorig the high-level behavior of the system. Fially, the role of the user is icreasigly importat i icorporatig the domai kowledge ad system documets ito the recovery process. Based o the above discussio, this paper defies the software architectural recovery problem as: devisig a tractable methodology ad the supportig tools for iteractively ad icremetally extractig a system s structure usig domai ad system kowledge. We propose a iteractive reverse egieerig eviromet for icremetal recovery ad evaluatio of the architecture of a software system i the form of cohesive modules (or subsystems) that comply with the costraits of a user-defied patter. Figure illustrates the differet parts of the proposed iteractive architectural recovery eviromet where the thick arrows sigify the automatic or user-assisted processes i the eviromet; boxes represet the differet forms of iformatio i the eviromet; the thi arrows idicate the iputs ad output of the graph matchig egie; ad the user is the high-level decisio maker that produces a metal model of the architecture ad verifies the result of recovery. The eviromet cosists of a off-lie pre-process phase ad a o-lie aalysis phase. Durig the off-lie iformatio extractio phase, the software system, writte i a procedural laguage such as C, is parsed ad preseted as a attributed relatioal graph

3 whose odes ad edges coform with a domai model that is suitable for architectural recovery. Such a domai model provides programmig laguage idepedece for the recovery process. The graph represetatio of the software system is further processed ad is divided ito a collectio of subgraphs, where the appropriate subgraphs are selected by the graph matchig process as the subspaces for recovery of the system compoets. Also, a similarity matrix is geerated that cotais the associatio-based similarity values betwee every two system etities to be used for recovery of cohesive compoets. Durig the o-lie aalysis phase, the user defies a graph-based architectural patter of the system modules (subsystems) ad their iteractios based o: domai kowledge, system documets, or tool-provided system aalysis iformatio. I a iterative recovery process, the user costraits the architectural patter ad the tool provides a decompositio of the system etities ito modules or subsystems that satisfy the costraits. I this approach, the architectural patter is viewed as a graph of modules (or subsystems) ad itercoectios, where each module (oe ode of graph) represets a group of placeholders for the system etities (i.e., fuctios, types, variables) to be istatiated, ad each budle of itercoectios (oe edge of graph) betwee two modules represets data-/cotroldepedecies betwee two groups of placeholders i two modules. The miimum/maximum sizes ad the types of both placeholders ad the itercoectios are cosidered as free parameters to be decided by the user (respectig the allowed relatio betwee two etities). This yet u-istatiated module-itercoectio represetatio (ca be referred to as coceptual architecture) is directly defied for the tool, usig a proprietary laguage that we call Architecture Query Laguage (AQL) ad is discussed i [4]. Patter-graph: the AQL query is icremetally expaded to geerate a patter-graph that represets a macroscopic view ad structural costraits for a part or the whole of the system architecture to be recovered. The task of the tool is the to search through the software system (agai represeted as a graph of system etities ad relatioships) to fid a sub-optimal match betwee the patter-graph ad the graph of the system. The architectural recovery is performed at two levels of abstractio. At the file-level, the software system is decomposed ito a umber of subsystems of files, ad at the fuctio-level each recovered subsystem ca be decomposed ito a umber of modules of fuctios, datatypes, ad variables. 4 Software system represetatio I this approach the software system ad the architectural patter are preseted usig the attributed relatioal graph otio defied i [3]. Source-graph: the software system is represeted by the source-graph, where the odes ( ) represet files, fuctios, datatypes, ad variables ad the edges ( ) represet cotai ad use relatioships. The odes ad edges comply with the specific domai model, amely abstract domai model, illustrated i Figure (b). I this model differet types of etities, i.e., File-abs, Fuctioabs, Type-abs, Variable-abs, are a subset of the types of etities i the software system s source-code. Where, Fuctio-abs deotes fuctios, Type-abs deotes aggregate/array types, ad Variable-abs deotes global variables i the software system. Also, fuctios, datatypes, ad variables are called simple etities, ad files are called composite etities such that a file may cotai zero or more simple etities. Each relatio i the abstract domai model, i.e., use- F, use-t, use-v, cot-r, use-r, imp-r, exp-r, is a aggregatio of oe or more relatios i the software system s source-code. The relatios use-f, use-t, use-v are defied such that the implemetatio of a fuctio-abstractio (i.e., a fuctio i the source-code) calls aother fuctio; updates/reads a variable whose type is a aggregate/array type; or updates/reads a global variable, respectively. The relatio cot-r (i.e., cotaied resource) is defied such that, each simple etity ca be cotaied i oly oe file; the simple etities i the library files are cotaied i the file abstractios based o the maximum frequecy of usig the simple etities by the files. I this cotext, the exterally defied library files ad their cotaied simple etities are ot cosidered. The relatio use-r (i.e., use resource) is defied such that a file cotais a fuctio ad that fuctio uses a simple etity as described above. The relatio imp-r (i.e., import resource) is defied such that a simple etity is cotaied i aother file but is used by the subject file (ad vice versa for exp-r). Based o the above abstract domai model the software system is parsed ad represeted as a attribute relatioal graph whose abstractio-level is suitable for architectural aalysis, as it is illustrated i Figure (c). Two labelig fuctios ad i Figure (c) are used to retur the importat attribute values of the odes ad edges of the source-graph i the form of a list of attribute, attributevalue pairs. I Figure (b), the class Etity-abs (Relatio-abs) presets the commo attributes that are iherited by every etity (relatio) i the abstract domai model. These attributes idetify a source-code costruct (e.g., defiitio, declaratio, statemet, fuctio-call, assigmet) that implemet a specific etity or relatio. Each relatio i the abstract domai model is a object of a associatio class ad cotais the attributes from ad to deotig the source ad destiatio etity for that relatio.

4 Comp placeholders groupid: $ CL / CF / CT / CV micot: Iteger maxcot: Iteger etities: set (Etity abs) imports: set (Co placeholders) exports: set (Co placeholders) 3 etity: Etity abs type: Relatio abs idex: Iteger from: Compoet to: Compoet.. Co etity Co placeholders groupid:? R / F / T / V Iteger type: Relatio abs mietities: Iteger maxetities: Iteger etities: set (Co etity) from: Compoet to: Compoet AQL query text Module M Module M. Module M4 Subsystem ame: Strig maiseeds: set (Etity abs) part: Comp placehoders High level view Low level view Compoet AQL query ame: Strig cotais: seq (Compoet) Module ame: Strig maiseeds: set (Etity abs) parts: seq (Comp placehoders) Etity abs Relatio abs Abstract domai model (a) Architectural domai model Mai seed Fuctio abs?f(..) Parse Query graph F: (..4) M?V(0..4)?F(..6)?F3(4..8) M M4?T(..4) F: (4..6) F: (..8) Graph matchig Architectrual domai model F: (..3) M3?T(..3) Etity abs ame: Strig file #: Iteger lie #: Iteger implemet id: Char Iteger s ( ) = ((type, Fuctio abs), (ame, "/u/../foo"), (id, F6), (lie#, 3), (file#, )) µ 4 3 SimpEt abs ε s (r 8) = ((from, ), (to, 8), (type, use F), (lie#, ), (file#, )) File abs Variable abs Type abs Fuctio abs id: L Iteger id: V Iteger id: T Iteger id: F Iteger imports: set (SimpEt abs) usefucs: set (Fuctio abs) exports: set (SimpEt abs) usetypes: set (Type abs) cotais: set (SimpEt abs) usevars: set (Variable abs) uses: set (SimpEt abs) 3 8 Source graph Parse Abstract domai model cot R from: File abs to: SimpEt abs use R from: File abs to: SimpEt abs Aggregatio Geeralizatio imp R from: File abs to: SimpEt abs Associatio class exp R from: File abs to: SimpEt abs Relatio abs use V from: Fuctio abs to: Variable abs file #: Iteger lie #: Iteger implemet id: Char Iteger use T from: Fuctio abs to: Type abs use F from: Fuctio abs to: Fuctio abs (b) Abstract domai model Software system (c) Matchig the high level graph of the system with the source graph of the system Figure. Represetig the architectural patter ad the software system as two graphs usig the architectural domai model ad abstract domai model, respectively.

5 ! : N 0 : N Reducig the search space: the source-graph provides a search-space for the matchig process. However, sice eve i a medium-size software system the umber of etities ad relatioships that are geerated are prohibitively high, ay matchig algorithm will be itractable. Matchig phase: to address the tractability of the matchig process, the whole process is divided ito icremetal phases (as partial-matchigs) where is the umber of compoets to be recovered ad the curret matchig phase is idetified by ( [.. No. of compoets]). Therefore, the recovery process performs a multiphase matchig. Source-regio: the search space for the matchig process is divided ito a collectio of sub-spaces usig data miig associatio relatio defied i [4], where each sub-space is a subgraph of the source-graph, amely a source-regio. All the odes i a source-regio are associated with a distiguished ode i that regio which is called the mai-seed of the regio. The group of source-regios s i the source-graph are stored i a database ad at the matchig phase the user selects a source-regio from the database to be matched with the icremetal part of the patter. Therefore, the source-regio is show as where is a fuctio that maps the curret matchig phase (i.e., ) to the id-umber of the selected source-regio (i.e., ). At file-level aalysis the source-regio odes are files fuctios, datatypes, variables, ad at fuctio-level aalysis the source-regio odes are fuctios, datatypes, ad variables. Architectural patter represetatio The architectural patter is represeted by a AQL query that defies a macroscopic patter graph for the software system to be matched agaist the source-graph. Query-graph: the sytactic costructs of a AQL query coform with the architectural domai model of Figure (a) that defie a query-graph. I this domai model, a AQL query, or equivaletly a query-graph, cosists of a umber of abstract compoets. Each abstract compoet (or simply a compoet) ca be either a subsystem or a module. A abstract compoet is specified as a collectio of placeholders. The itercoectios amog the abstract compoets are established by the meas of abstract coectors, where a abstract coector is also specified by a umber of placeholders. A placeholder is a ode that ca be matched with a system etity i the abstract domai model durig the matchig process. The user ca costrai the miimum ad maximum umbers of the matched placeholders ad their types i the recovered compoets ad coectors by formulatig the AQL query. Each abstract compoet cotais oe or more fixed etities, amely mai-seed(s), that appear i the result of the recovery. The mai-seed(s) for a abstract compoet determie the source-regio(s) to be searched for recovery of that compoet. I Figure (c), a AQL query with four modules is parsed ad represeted as a query-graph with four odes that is iterpreted as follows. The module M with mai-seed ode will be matched with miimum 4 ad maximum 6 fuctios i the source-graph (preseted as : ), will import betwee $#%& to fuctios from module M (preseted as "! ), ad will export betwee ) to 4 datatypes to module M4 (preseted as '(! ). The iteractio of M with other modules is ot restricted. Patter graph geeratio: the query-graph ( is used to derive a patter-graph ad a iput-graph that are required for the icremetal graph matchig process. At matchig phase the query-graph icremetally geerates the patter-graph +* as follows. Patter-regio: the,$- ode of the query-graph (as the abstract-compoet. ) is expaded ito a patterregio /* through: i) geeratig the maximum umber of placeholder odes (or simply odes) defied by. ; ad ii) coectig every ode i the patter-regio to every other ode i the patter-regio that are allowed based o the types of the odes. Edge-budle: each edge "3 of the query-graph (, e.g., ad of type use-f is ex- edge with label (0 paded ito 43 0 umber of edge-budles of the same type. Each edge-budle coects every ode from a already recovered compoet to oe ode (i.e, the commo sik or source ode) i the patter-regio * with respect to the directio of the query-graph edge. Iitially, the first max odes of the patter-regio are selected as the commo sik/source odes of the idividual edge-budles. However durig the matchig process the commo sik/source ode of a edge-budle which is ot matched yet ca be redirected to aother ode of the patter-regio. Each edgebudle correspods to oe ode of the ivolvig compoets to be imported or exported. The group of edgebudles betwee the already recovered compoets (modules or subsystems) ad the curret patter-regio * is * ;: represeted by 68. The ratioale for geeratig the edge-budles is to al- A group of coector-edges is deoted by <=?>A@B=C ad represet a group of edges that coect two graphs DFE ad DHG. The coectoredges represet the iteractio betwee two graphs i ui-directioal (usig I or J ) or bidirectioal (usig K ) mode. The coector-edges betwee a matched-graph DMLNPO E (discussed later) ad the source-regio DRQS T;UN)V at phase W are deoted by < QS, ad the edge-budles betwee a matched-graph D LNO E ad the patter-regio DX S at phase W are deoted by < X S N.

6 AQL query Phase matched Phase beig matched Module M Module M 6 4 matched graph co edges 0 3 source regio (c) Iput graph 4 (d) Matched graph 6 3 F: (..4) M 6 Mai seed?f : (..) F:(..3) M (a) Represetig a AQL query as a Query graph. The Query graph geerates patter graph ad iput graph i parts (b) ad (c). m G m G matched graph m sr R ( m R ( pr edge budle + + sr G g() pr G patter regio, I G p G Match 4 (b) Patter graph, ) ) = =,3 matched graph m G = G m m mr + ( R + +, co edges + Graph summatios Mai seed matched regio G mr ) Source graph edge U matched edge Figure 3. The graph patter matchig process iteratively matches a patter-graph with a iput-graph ad yields a matched-graph as the recovered architecture for the curret matchig phase. low every subset of the odes i a source compoet to be coected to every subset of the odes i the destiatio compoet, accordig to the costraits defied i the query-graph. Figure 3(a) illustrates a query-graph with two odes that represet two abstract-compoets M ad M as modules, ad a edge that represets a abstract-coector?f:(..). This query-graph has the required iformatio to geerate the icremetal parts of both the patter-graph * ad iput-graph at phase of the matchig process. The ode M with ode costrait F:(..3) geerates a patterregio /* with maximum of three placeholder-odes ( to ) of types Fuctio-abs ad the edge?f:(..) geerates two edge-budles represeted by 6 C i Fig- * ure 3(b). Also, the ode M idetifies the selected sourceregio with mai-seed ode i Figure 3(c), correspodig to. 6 Graph matchig process A patter-graph +* by its defiitio is composed of a umber /* of smaller patters (i.e., idividual patter-regios at differet matchig phases ). This compositio property allows to maage the complexity of the matchig process of a large source-graph by applyig it o a regio-byregio basis. Matched-graph: at matchig phase, the matchig process computes a sub-optimal match, amely the matchedgraph betwee a patter-graph +* that origiates from a query-graph ad a iput-graph that origiates C from the from the source-graph. The obtaied result must coform with the costraits of the query-graph with respect to the ode ad edge size-rages. I Figures 3(b),(c),(d) a example of matchig process at phase is illustrated, where the patter-regio +* * ad its edge-budles 6 C from the patter-graph * are matched agaist the sourceregio ad its coector-edges 6 C from the iput-graph. The result of matchig is the matchedregio ad its coector-edges 6 matched-graph. At the ext iteratio, the matchedgraph is used to build the patter-graph * ad iputgraph to be matched at phase 3 (ot applicable i this example). Graph model of the matchig process The graph summatio otatios plus for coectig two graphs, ad oplus for coectig a graph to a group of coector-edges are used to model the whole icremetal patter matchig process i terms of the recursive graph algebraic equatios. Figure 4 illustrates the proposed graph matchig model where is the matchig phase ad is the umber of odes i the query-graph (. I this cotext, the matched-graph at phase zero is defied as a graph with zero umber of odes ad edges, ad whe the /* *,, ad the matchig process termiates. The approximate matchig process (equatio 4) aims to compute a match betwee the patter-graph +* ad the iput-graph by comparig differet subgraphs of the iput-graph agaist a

7 .!. : 6 /* * ;: /* 3. 6 "3 /* 4. +* /*. +*. : "!$# "!# "! &% ')(, ')(, % :+*,,0/ -!,- %43,.- : /* * Figure 4. The recursive equatios for the proposed multi-phase, icremetal, ad approximate graph matchig process. trasformed versio of the patter-graph *. A subgraph with miimum graph distace to the patter-graph * (a graph distace is computed as the total cost of a umber of trasformatios o the patter-graph * such as ode or edge deletio/isertio) is the solutio of the matchig process which is called the matched-graph.. Cost evaluatio for graph matchig The equatio i Figure 4 defies the distace betwee the patter-graph +* ad a subgraph of the iput-graph, as the sum of the graph trasformatio costs for matchig all the placeholder-odes iside the patter-regio +* with odes from the subgraph. I this distace, the costs for deletig the edges from iside the patter-regio ( 6!$# &% ), the cost for deletig the edges from the edge-budles ( 6!$# '(, ), ad the cost for isertig the coector-edges ( 6! '(, ) are computed. We ote that, oly the icremetal parts of the patter-graph * ad the iput-graph at matchig phase are beig matched ad the matched-graph at phase 8! is fixed, as show i Figure 3(b) ad (c). I the followig, these costs are defied. 6!$# Iside-edge deletio cost, &% : this cost is defied i Figure (a) with the objective of recoverig cohesive compoets as the matched-regios s at differet matchig phases. This cost has two sub-costs. The first sub-cost is deoted as the default dissimilarity value betwee the cadidate-ode ;: ad each matched ode i /* where is the similarity value betwee two odes accordig to a similarity metric such as the associatio similarity metric defied i [3]. The secod sub-cost =< # depeds o the umber of deleted edges betwee two odes. The coefficiet 0. idicates the sigificace of each missig edge compared to the dissimilarity value betwee two odes. Hece, each missig edge adds a value of =< to the default cost value, ad at worst case (two edges deletio) the dissimilarity # & value doubles. Therefore, icreasig the coefficiet > causes that the missig edge to become more importat tha the dissimilarity value, ad vice versa. The costs for differet cases of iside-edge deletio are show i Figure (a).?!# Coector-edge deletio cost, '(, : this cost is defied i Figure (b) based o the umber of remaiig edge-budles durig the matchig process at phase where the placeholder-ode is to be matched with cadidate-ode : from the selected source-regio P. At this time, the placeholder-odes i patter-regio +* ad their coector-edges (to previously matched-regios ) have already bee matched. Iitially, for each ode to be imported or exported betwee the ivolvig compoets oe edge-budle has bee geerated. As a example, for a abstract-coector with miimum cardiality ad maximal cardiality 3, three edge-budles are iitially geerated. Therefore, durig the matchig process, for each ode to be imported/exported oe edge-budle must be deleted. The umber of remaiig edge-budles idicates the umber of odes that ca still be imported/exported to reach to the maximum umber of allowed coector-edges. To perform cost evaluatio, the coector-edges are further classified ito two groups imported ad exported. Because of the space limitatio, we oly discuss the cost for imported coector-edge deletio i this paper. Imported coector-edge deletio: for importig each ode (which is equivalet to matchig a imported coector-edge whose source ode has ot bee imported earlier) a whole imported edge-budle must be deleted with o-cost. However, withi the edge-budle that is coected to the curret placeholder ode, for each edge deletio a cost is applied. The cost evaluatio steps alog with a example are illustrated i Figure (b). I this cost, is the umber of remaiig edge-budles icludig the curret edge-budle, i.e., is equal to the differece betwee maximum umber of allowed edges to be matched ad the umber of curretly matched edges. The value of this cost depeds o the success of the cadidate-ode : i augmetig the umber of matched imported edges to reach to its maximum umber. Therefore, matchig more imported edges by the curret ode meas less cost. This cost is calculated based o the eligibility of the ode to produce a cohesive module, by takig ito accout the iside-edge deletio cost "!$# &%. The coefficiet 0. has bee empirically determied to give more weight for collectig a group

8 d = 0 ed s 0. d s C = + k i m m d = d = = Maximum similarity betwee two etities i the curret source regio. s = similarity value betwee k ad x m = umber of already matched odes d = umber of deleted edges x ed C = i s ed 0. s ed 0. s C = C = m i m i m (a) Cost for iside edge deletio Cost evaluatio steps "r" = umber of remaiig edge budles icludig the curret edge budle Keep "r" edges from the curret edge budle (icludig edges that will be matched) ad delete the rest with cost "zero". 3 Match the edges from "r" edges i edge budle. 4 From "r" edges, each edge that is ot matched, is deleted with cost: x 0. x C ed r i Example: r = 3 ad edges are matched deleted: cost Curret ed edge budle x 0. C 3 i r matched edge matched edge deleted: cost zero matched ode deleted: cost zero = i,j k (c) to (e) Examples for part (b), 8,,... =, 8,,... (b) Cost for imported coector edge deletio mr G u bi bi i, pr G i i,3 (c) A portio of the patter graph p G i at phase i. 8 i, 8 first matched ode = 4 i, i, i,3 (d) Two edges matched from edge budle bi : i) edge budle bi is deleted with o cost; ii) third edge of bi is deleted with o cost. edge budle 8 = i, i, = 3 i,3 secod matched ode (e) Secod matched ode causes o edge match, (or the matched edges already imported): i) redirect edge budle to ext ode with cost. Figure. The cost evaluatio for deletig edges that are located: a) iside the patter-regio, ad b) withi the edge-budles betwee a recovered module ad the patter-regio. of related odes as opposed to satisfyig the max umber of imported coector-edges. However, this cost evaluatio is applied oly if the miimum (maximum) umber of imported coectoredges for patter-regio +* still ca be reached (ot exceeded) by the umber of matched coector-edges for the curret ode-matchig with :. Otherwise, the cost is maxcost ad this ode-matchig will be discarded. 6! Coector-edge isertio cost, ')(, : If there exist edge-budles betwee the patter-regio * ad the matched-regio ( (@ A ) i the patter-graph +* the the cost of isertig a coector-edge * : (i the same directio as the edge-budles) i 6 is maxcost. Otherwise the cost is zero, which meas the iserted coector-edge is ot part of the costraied itercoectio patter specified i the patter-graph, hece isertig oe or more ew coector-edges does ot violate the itercoectio patter. Figures (c) to (e) illustrate a example with two cases of matchig imported coector-edges where the maximum cardiality is. 8 BQ- search algorithm We use the search algorithm that is modified by a bouded path-queue heuristic to compute a sub-optimal matchig cost betwee the patter-graph * ad iputgraph while the AQL query costraits are ot violated. The search algorithm geerates a search-tree that correspods to the recovery of each abstract-compoet. i the query-graph (. At each ode of a search-tree the cost of graph trasformatios for matchig a ode : ad its edges from the source-regio with a placeholder-ode ad its edges from the patter-regio are evaluated ad the search-tree is expaded from a tree-ode that has the miimum cost. The cost evaluatio was discussed earlier.

9 Each search-tree has a maximal depth equal to the umber of placeholder-odes i the patter-regio (or equivaletly to the maximum umber of placeholders i the abstractcompoet. ). 8. Tractability of the matchig process The proposed eviromet for architectural recovery i Figure icorporates several techiques i order to tackle the iheret complexity of a architectural recovery processes ad to provide a tractable ad iteractive recovery process. These techiques are discussed below. Sub-optimality to achieve performace. A major drawback of the optimal search algorithms such as is the requiremet to maitai all icomplete tree-paths (partially-matched graphs) i a sorted queue that allows to select the cheapest tree-path to expad ext. This queue grows very fast ad i the worst case ca have a expoetial size, which makes the process of storig ad sortig the paths i the queue as a bottleeck for the algorithm. Sice the path queue is sorted, all of the eligible paths to be expaded (i.e., low cost paths) are located toward the head of the queue. Therefore, most of the paths with high cost at the ed of a large path-queue will ever get a chace to be expaded, ad remai at the tail of the path-queue util the ed of a successful search. This property allows us to restrict the size of the path queue withi a reasoable rage (e.g., multiple hudreds of paths) at the expese of obtaiig possibly a suboptimal solutio. We call this algorithm Bouded Queue (BQ- ). Search space reductio. The whole search process is divided ito a multi-phase search process, where at each phase the modified search (BQ- ) recovers a idividual module usig a reduced search space kow as a source-regio. Therefore, the whole search space, i.e., all odes of the source-graph with the cardiality is reduced ito odes, which greatly cotributes i relaxig the search complexity. Hierarchical architecture recovery. The proposed architectural eviromet i Figure allows to perform architectural recovery at two levels of graularity for the system etities, such that: i) at file-level a system of files is decomposed ito a umber of subsystems of files, ad ii) at fuctio-level each geerated subsystem ca be decomposed ito a umber of modules cosists of fuctios, datatypes, ad variables. Implemetatio cosideratios. The implemetatio of the coector-edges is crucial i reducig the complexity of the proposed matchig process. The mai ideas are as follows: i) prevetig highly repeated operatios o the source/sik odes of the coector-edges by cachig the source/sik odes; ii) simplifyig the edge-budle implemetatio by represetig it as a positive iteger. Therefore, deletig a whole edge-budle or matchig a part of edges i a edge-budle simply meas decremetig the iteger by oe; ad redirectig a edge-budle meas o chage o this value. Icremetal patter geeratio & recovery The architectural patter that is defied i the AQL query ad represeted by the query-graph ( is geerated through a icremetal ad iteractive process, as described i the followig steps. Step. Decide o a method of mai-seeds selectio for the AQL abstract modules/subsystems. The proposed methods iclude: i) utilize kowledge about the related domai such as a referece architecture with well-defied compoets, desig documetatio, iformal iformatio embedded i the source-code, amig covetios, or directory structures; ad ii) cosider system aalysis ad metrics such as associatio structure of the system files ad differet methods of clusterig []. The adopted method(s) should be able to suggest importat ad rather distict mai-seeds as the cores of fuctioality for the abstract module/subsystems i the AQL query. Geerate a AQL query with zero modules/subsystems. Step. Select the mai-seed for the ext module/subsystem ad assig the umber of placeholders, e.g., 0 for subsystem recovery ad 0 for module recovery. Recover the ew module/subsystem where o lik costraits are defied for the ew module/subsystem. Step 3. Ivestigate the quality of the ew recovered module/subsystem ad its iteractio with the already recovered modules/subsystems. If the recovery is satisfactory go to Step. Otherwise, defie (or adjust) the miimum/maximum lik costraits betwee the ew module/subsystem ad oe or more previous modules/subsystems, cosiderig: i) icreasig the maximum rage causes the matchig process to allocate higher scores to the group of etities that ca augmet the umber of iteractios to this maximum rage; ad ii) the miimum rage is used to restrict the umber of iteractio to a miimum threshold, however it does ot affect the scorig mechaism. The user s kowledge about the fuctioality of the modules/subsystems is required i order to impose meaigful costraits o the modules/subsystems iteractio.

10 mai-seeds u_elastic u_drag e_edit No. of Placeholders Recovered files + Distributed files Phs?R(0..0) S-S4?R(40..00)?R3(40..00) S?R4(0..0) 0 Phs Patter matchig files 8 fucs R(30) S-S4 R(00) R3(66) S R4(0) + 6 files 668 fucs 3 Phs S3 S 0 Phs e_scale f_readtif (a) Architectural patter usig AQL query 3 + files 3 fucs + files S3 S 4 fucs (b) Recovered architecture S- S4 S Recovered subsystems No. of files Xfig subsystems No. of files Precisio Recall editig & 63% S-S4 3 utility & 4 8% 4% drawig 00% u_drag u_elastic e_edit S S3 3 0 X-widowig editig & utility & 8 3 8% 6% 64% 3% 3% S 0 file maipulatio 6 0% 44% S3 S rest-of-sys 8 zero size files rest-of-system e_scale f_readtif Xfig subsystems: ) editig: files ) utility: 8 files 3) drawig: 0 files 4) file maipulatio: 6 files ) X-widowig: 8 files (c) Xfig recovered subsystems: liks are strog associatios amog files (d) Arcitectural recovery evalutio usig "Precisio" ad "Recall" Figure 6. (a) Architectural patter of the Xfig system where the subsystems S ad S4 have bee merged. (b) Recovered architecture where the lik costraits have bee satisfied. (c) Graph visualizatio of the recovered subsystems usig the file associatio graph. (d) Architectural evaluatio. Step 4. Repeat the recovery process for the ew module/subsystem with the costraied liks. If the process is very legthy due to backtrackig, the iterrupt the process ad observe the tool-provided ru-time iformatio about the critical costraied liks. Go to Step 3. Step. If the umber of the recovered modules/subsystems is ot sufficiet accordig to the user s prefereces go to Step. Otherwise stop the recovery process ad succeed. If the umber of remaiig etities i the rest-of-system is high, a extra step, amely costraied distributio ca be performed. I this step a part of the remaiig etities i the rest-of-system are allocated to the recovered modules/subsystems based o the highest average closeess of each etity to oe of the recovered modules/subsystems, provided that this allocatio does ot violate the lik costraits. If a lik costrait is violated the ext highest module/subsystem is tried util the allocatio to ay of them violates the lik costraits, where the etity is retured to the rest-of-system. 0 Case studies I this Sectio, the experimetal results by applyig the proposed approach are preseted. A comprehesive set of experimets related to the time/space complexity, accuracy, stability, ad quality of the architecture recovery techique has bee preseted i []. The proposed techique has bee implemeted i Alborz [], a prototype toolkit that aims to recover the architecture of the medium size systems implemeted i a procedural laguage such as C. The iput to the Alborz tool is a iformatio base that correspods to the etities ad relatioships of the software system i the form of a AST or RSF file. The tool provides the result of the architectural recovery ito two forms: i) HTML pages for the recovered compoets, tool geerated metrics, ad source code, to be visualized by a Web browser such as Netscape; ad ii) graphs of boxes ad arrows to be visualized by the Rigi tool [], where the boxes are the system files or the aalyzed compoets ad the arrows are either the resource iteractio (i.e., import/export) betwee the compoets or their associatio stregths. The associatio values amog the system files are distributed over a wide rage of values, hece they ca be classified ito several sub-rages, amely stregths of associatio cosist-

11 ig of four sub-rages of strog, medium, loose, ad weak. This classificatio of values allows to simplify the visualizatio of the associatio graph of the system files or compoets (i.e., modules or subsystems). The experimets are performed o six middle-size idustrial systems, amely: i) Xfig.3..3 drawig editor with 4 KLOC, ii) Clips.4.0 expert system builder with 40 KLOC, iii) Apache...4 http server with 38 KLOC; iv) Bash..03 Uix shell with 44 KLOC; v) Elm...6 Uix mail system with 3 KLOC; ad vi) Ghostview.3..8 postscript file viewer ad avigator with 3 KLOC. However, because of space limitatio oly oe case is preseted here. Architecture recovery of Xfig. The Xfig system [] lacks ay documetatio o its structure ad oly the user maual exists. However, a cosistet amig covetio is used throughout the system files which ca be used as a aid for iferrig its structure. Figure 6(a) illustrates the geerated architectural patter of the Xfig system with four abstract subsystems ad correspodig lik costraits accordig to the steps i Sectio. Durig the icremetal ad iterative recovery process this patter yields the recovered architecture i Figure 6(b) where the size costraits for both the subsystems ad liks have bee satisfied. Figure 6(c) illustrates the file associatio graph feature of the proposed eviromet for viewig the Xfig recovered architecture, where oly the strog ad medium associatio liks are show. The highly associated files are grouped ito subsystem S-S4 ad the associatio amog the subsystems are limited. The subsystem S-S4 has high associatio with subsystem S3 but low associatio with subsystems S ad S as it was aimed for. Figure 6(d) presets the accuracy of the Xfig recovery process i terms of the Precisio ad Recall metrics. The subsystem S-S4 recovers all the drawig files ad together with S3 recover almost all the editig ad utility files. S is allocated to widowig files ad S recovers file-maipulatio files. The obtaied Precisio ad Recall values idicate the accuracy for the proposed patter matchig techique. Coclusio This paper cotributes to the reverse egieerig research area by providig a iteractive eviromet for architectural recovery, a icremetal graph patter matchig model of the recovery process, ad a prototype toolkit to support the proposed methodology. The proposed eviromet is based o techiques from the areas of data miig, approximate graph matchig, clusterig, ad programmig laguage desig. Refereces [] Rigi, URL = [] Xfig, URL = [3] M. A. Eshera ad K. S. Fu. A similarity measure betwee attributed relatioal graphs for image aalysis. I Seveth Iteratioal Coferece o Patter Recogitio, pages, 84. [4] P. Fiiga, R. Holt, I. Kalas, S. Kerr, K. Kotogiais, et al. The software bookshelf. IBM Systems Joural, 36(4):64 3, November. [] R. Holt, A. Witer, ad A. Schurr. Gxl: Toward a stadard exchage format. I Proceedigs of the WCRE 00, pages 6, 000. [6] R. Kazma ad M. Burth. Assessig architectural complexity. I Proceedigs of the CSMR, pages 04, 8. [] R. Kazma ad S. J. Carriere. Playig detective: Recostructio software architecture from available evidece. Techical Report CMU/SEI--TR-00, Caregie Mello Uiversity,. [8] A. Lakhotia. A uified framework for expressig software subsystem classificatio techiques. Joural of Systems ad Software, 36(3): 3,. [] S. Macoridis, et. al. Usig automatic clusterig to produce high-level system orgaizatios of source code. I Proceedigs of the IWPC, pages 4 3, 8. [0] G. C. Murphy, D. Notki, ad K. Sulliva. Software reflexio model: Bridgig the gap betwee source ad higher-level models. I I proceedigs of the 3rd ACM SIGSOFT SFSE, pages 8 8,. [] K. Sartipi. Alborz: A query-based tool for software architecture recovery. I Proceedigs of the IWPC 0, pages 6, 00. [] K. Sartipi. Software Architecture Recovery based o Patter Matchig. PhD thesis, School of Computer Sciece, Uiversity of Waterloo, Waterloo, ON, Caada, 003. [3] K. Sartipi ad K. Kotogiais. Compoet clusterig based o maximal associatio. I Proceedigs of the IEEE WCRE 0, pages 03 4, 00. [4] K. Sartipi ad K. Kotogiais. A graph patter matchig approach to software architecture recovery. I Proceedigs of the IEEE ICSM 0, pages 408 4, Italy, 00. [] M. Siff ad T. Reps. Idetifyig modules via cocept aalysis. IEEE Trasactios o Software Egieerig, (6):4 68, Nov./Dec.. [6] S. G. Woods, A. Quilici, ad Q. Yag. Costrait-Based Desig recovery for Software Reegieerig: Theory ad Experimets. Kluwer Academic Publishers, 8.

On Modeling Software Architecture Recovery as Graph Matching

On Modeling Software Architecture Recovery as Graph Matching O Modelig Software Architecture Recovery as Graph Matchig Kamra Sartipi Kostas Kotogiais Uiversity of Waterloo School of Computer Sciece ad, Dept. of Electrical & Computer Egieerig Waterloo, ON. NL 3G,

More information

Outline. Research Definition. Motivation. Foundation of Reverse Engineering. Dynamic Analysis and Design Pattern Detection in Java Programs

Outline. Research Definition. Motivation. Foundation of Reverse Engineering. Dynamic Analysis and Design Pattern Detection in Java Programs Dyamic Aalysis ad Desig Patter Detectio i Java Programs Outlie Lei Hu Kamra Sartipi {hul4, sartipi}@mcmasterca Departmet of Computig ad Software McMaster Uiversity Caada Motivatio Research Problem Defiitio

More information

Task scenarios Outline. Scenarios in Knowledge Extraction. Proposed Framework for Scenario to Design Diagram Transformation

Task scenarios Outline. Scenarios in Knowledge Extraction. Proposed Framework for Scenario to Design Diagram Transformation 6-0-0 Kowledge Trasformatio from Task Scearios to View-based Desig Diagrams Nima Dezhkam Kamra Sartipi {dezhka, sartipi}@mcmaster.ca Departmet of Computig ad Software McMaster Uiversity CANADA SEKE 08

More information

Software Architecture Recovery based on Pattern Matching

Software Architecture Recovery based on Pattern Matching Software Architecture Recovery based on Pattern Matching PhD Dissertation Synopsis Kamran Sartipi School of Computer Science, University of Waterloo Waterloo, ON. NL 3G, Canada ksartipi@math.uwaterloo.ca

More information

A New Morphological 3D Shape Decomposition: Grayscale Interframe Interpolation Method

A New Morphological 3D Shape Decomposition: Grayscale Interframe Interpolation Method A ew Morphological 3D Shape Decompositio: Grayscale Iterframe Iterpolatio Method D.. Vizireau Politehica Uiversity Bucharest, Romaia ae@comm.pub.ro R. M. Udrea Politehica Uiversity Bucharest, Romaia mihea@comm.pub.ro

More information

Ones Assignment Method for Solving Traveling Salesman Problem

Ones Assignment Method for Solving Traveling Salesman Problem Joural of mathematics ad computer sciece 0 (0), 58-65 Oes Assigmet Method for Solvig Travelig Salesma Problem Hadi Basirzadeh Departmet of Mathematics, Shahid Chamra Uiversity, Ahvaz, Ira Article history:

More information

A SOFTWARE MODEL FOR THE MULTILAYER PERCEPTRON

A SOFTWARE MODEL FOR THE MULTILAYER PERCEPTRON A SOFTWARE MODEL FOR THE MULTILAYER PERCEPTRON Roberto Lopez ad Eugeio Oñate Iteratioal Ceter for Numerical Methods i Egieerig (CIMNE) Edificio C1, Gra Capitá s/, 08034 Barceloa, Spai ABSTRACT I this work

More information

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τεχνολογία Λογισμικού, 7ο/9ο εξάμηνο 2018-2019 Τεχνολογία Λογισμικού Ν.Παπασπύρου, Αν.Καθ. ΣΗΜΜΥ, ickie@softlab.tua,gr

More information

Image Segmentation EEE 508

Image Segmentation EEE 508 Image Segmetatio Objective: to determie (etract) object boudaries. It is a process of partitioig a image ito distict regios by groupig together eighborig piels based o some predefied similarity criterio.

More information

3D Model Retrieval Method Based on Sample Prediction

3D Model Retrieval Method Based on Sample Prediction 20 Iteratioal Coferece o Computer Commuicatio ad Maagemet Proc.of CSIT vol.5 (20) (20) IACSIT Press, Sigapore 3D Model Retrieval Method Based o Sample Predictio Qigche Zhag, Ya Tag* School of Computer

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe CHAPTER 19 Query Optimizatio Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe Itroductio Query optimizatio Coducted by a query optimizer i a DBMS Goal:

More information

How do we evaluate algorithms?

How do we evaluate algorithms? F2 Readig referece: chapter 2 + slides Algorithm complexity Big O ad big Ω To calculate ruig time Aalysis of recursive Algorithms Next time: Litterature: slides mostly The first Algorithm desig methods:

More information

Improving Template Based Spike Detection

Improving Template Based Spike Detection Improvig Template Based Spike Detectio Kirk Smith, Member - IEEE Portlad State Uiversity petra@ee.pdx.edu Abstract Template matchig algorithms like SSE, Covolutio ad Maximum Likelihood are well kow for

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe CHAPTER 26 Ehaced Data Models: Itroductio to Active, Temporal, Spatial, Multimedia, ad Deductive Databases Copyright 2016 Ramez Elmasri ad Shamkat B.

More information

n n B. How many subsets of C are there of cardinality n. We are selecting elements for such a

n n B. How many subsets of C are there of cardinality n. We are selecting elements for such a 4. [10] Usig a combiatorial argumet, prove that for 1: = 0 = Let A ad B be disjoit sets of cardiality each ad C = A B. How may subsets of C are there of cardiality. We are selectig elemets for such a subset

More information

Pseudocode ( 1.1) Analysis of Algorithms. Primitive Operations. Pseudocode Details. Running Time ( 1.1) Estimating performance

Pseudocode ( 1.1) Analysis of Algorithms. Primitive Operations. Pseudocode Details. Running Time ( 1.1) Estimating performance Aalysis of Algorithms Iput Algorithm Output A algorithm is a step-by-step procedure for solvig a problem i a fiite amout of time. Pseudocode ( 1.1) High-level descriptio of a algorithm More structured

More information

1 Enterprise Modeler

1 Enterprise Modeler 1 Eterprise Modeler Itroductio I BaaERP, a Busiess Cotrol Model ad a Eterprise Structure Model for multi-site cofiguratios are itroduced. Eterprise Structure Model Busiess Cotrol Models Busiess Fuctio

More information

Outline and Reading. Analysis of Algorithms. Running Time. Experimental Studies. Limitations of Experiments. Theoretical Analysis

Outline and Reading. Analysis of Algorithms. Running Time. Experimental Studies. Limitations of Experiments. Theoretical Analysis Outlie ad Readig Aalysis of Algorithms Iput Algorithm Output Ruig time ( 3.) Pseudo-code ( 3.2) Coutig primitive operatios ( 3.3-3.) Asymptotic otatio ( 3.6) Asymptotic aalysis ( 3.7) Case study Aalysis

More information

Elementary Educational Computer

Elementary Educational Computer Chapter 5 Elemetary Educatioal Computer. Geeral structure of the Elemetary Educatioal Computer (EEC) The EEC coforms to the 5 uits structure defied by vo Neuma's model (.) All uits are preseted i a simplified

More information

Python Programming: An Introduction to Computer Science

Python Programming: An Introduction to Computer Science Pytho Programmig: A Itroductio to Computer Sciece Chapter 1 Computers ad Programs 1 Objectives To uderstad the respective roles of hardware ad software i a computig system. To lear what computer scietists

More information

Exact Minimum Lower Bound Algorithm for Traveling Salesman Problem

Exact Minimum Lower Bound Algorithm for Traveling Salesman Problem Exact Miimum Lower Boud Algorithm for Travelig Salesma Problem Mohamed Eleiche GeoTiba Systems mohamed.eleiche@gmail.com Abstract The miimum-travel-cost algorithm is a dyamic programmig algorithm to compute

More information

CIS 121 Data Structures and Algorithms with Java Spring Stacks and Queues Monday, February 12 / Tuesday, February 13

CIS 121 Data Structures and Algorithms with Java Spring Stacks and Queues Monday, February 12 / Tuesday, February 13 CIS Data Structures ad Algorithms with Java Sprig 08 Stacks ad Queues Moday, February / Tuesday, February Learig Goals Durig this lab, you will: Review stacks ad queues. Lear amortized ruig time aalysis

More information

Analysis of Server Resource Consumption of Meteorological Satellite Application System Based on Contour Curve

Analysis of Server Resource Consumption of Meteorological Satellite Application System Based on Contour Curve Advaces i Computer, Sigals ad Systems (2018) 2: 19-25 Clausius Scietific Press, Caada Aalysis of Server Resource Cosumptio of Meteorological Satellite Applicatio System Based o Cotour Curve Xiagag Zhao

More information

Goals of this Lecture Activity Diagram Example

Goals of this Lecture Activity Diagram Example Goals of this Lecture Activity Diagram Example Object-Orieted Aalysis ad Desig - Fall 998 Preset a example activity diagram Ð Relate to requiremets, use cases, ad class diagrams Also, respod to a questio

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe CHAPTER 18 Strategies for Query Processig Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe Itroductio DBMS techiques to process a query Scaer idetifies

More information

Chapter 1. Introduction to Computers and C++ Programming. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Chapter 1. Introduction to Computers and C++ Programming. Copyright 2015 Pearson Education, Ltd.. All rights reserved. Chapter 1 Itroductio to Computers ad C++ Programmig Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 1.1 Computer Systems 1.2 Programmig ad Problem Solvig 1.3 Itroductio to C++ 1.4 Testig

More information

A Generalized Set Theoretic Approach for Time and Space Complexity Analysis of Algorithms and Functions

A Generalized Set Theoretic Approach for Time and Space Complexity Analysis of Algorithms and Functions Proceedigs of the 10th WSEAS Iteratioal Coferece o APPLIED MATHEMATICS, Dallas, Texas, USA, November 1-3, 2006 316 A Geeralized Set Theoretic Approach for Time ad Space Complexity Aalysis of Algorithms

More information

IMP: Superposer Integrated Morphometrics Package Superposition Tool

IMP: Superposer Integrated Morphometrics Package Superposition Tool IMP: Superposer Itegrated Morphometrics Package Superpositio Tool Programmig by: David Lieber ( 03) Caisius College 200 Mai St. Buffalo, NY 4208 Cocept by: H. David Sheets, Dept. of Physics, Caisius College

More information

Solving Fuzzy Assignment Problem Using Fourier Elimination Method

Solving Fuzzy Assignment Problem Using Fourier Elimination Method Global Joural of Pure ad Applied Mathematics. ISSN 0973-768 Volume 3, Number 2 (207), pp. 453-462 Research Idia Publicatios http://www.ripublicatio.com Solvig Fuzzy Assigmet Problem Usig Fourier Elimiatio

More information

Data Structures and Algorithms. Analysis of Algorithms

Data Structures and Algorithms. Analysis of Algorithms Data Structures ad Algorithms Aalysis of Algorithms Outlie Ruig time Pseudo-code Big-oh otatio Big-theta otatio Big-omega otatio Asymptotic algorithm aalysis Aalysis of Algorithms Iput Algorithm Output

More information

Heaps. Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015

Heaps. Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 Presetatio for use with the textbook Algorithm Desig ad Applicatios, by M. T. Goodrich ad R. Tamassia, Wiley, 201 Heaps 201 Goodrich ad Tamassia xkcd. http://xkcd.com/83/. Tree. Used with permissio uder

More information

arxiv: v2 [cs.ds] 24 Mar 2018

arxiv: v2 [cs.ds] 24 Mar 2018 Similar Elemets ad Metric Labelig o Complete Graphs arxiv:1803.08037v [cs.ds] 4 Mar 018 Pedro F. Felzeszwalb Brow Uiversity Providece, RI, USA pff@brow.edu March 8, 018 We cosider a problem that ivolves

More information

Running Time. Analysis of Algorithms. Experimental Studies. Limitations of Experiments

Running Time. Analysis of Algorithms. Experimental Studies. Limitations of Experiments Ruig Time Aalysis of Algorithms Iput Algorithm Output A algorithm is a step-by-step procedure for solvig a problem i a fiite amout of time. Most algorithms trasform iput objects ito output objects. The

More information

Dynamic Programming and Curve Fitting Based Road Boundary Detection

Dynamic Programming and Curve Fitting Based Road Boundary Detection Dyamic Programmig ad Curve Fittig Based Road Boudary Detectio SHYAM PRASAD ADHIKARI, HYONGSUK KIM, Divisio of Electroics ad Iformatio Egieerig Chobuk Natioal Uiversity 664-4 Ga Deokji-Dog Jeoju-City Jeobuk

More information

Analysis Metrics. Intro to Algorithm Analysis. Slides. 12. Alg Analysis. 12. Alg Analysis

Analysis Metrics. Intro to Algorithm Analysis. Slides. 12. Alg Analysis. 12. Alg Analysis Itro to Algorithm Aalysis Aalysis Metrics Slides. Table of Cotets. Aalysis Metrics 3. Exact Aalysis Rules 4. Simple Summatio 5. Summatio Formulas 6. Order of Magitude 7. Big-O otatio 8. Big-O Theorems

More information

6.854J / J Advanced Algorithms Fall 2008

6.854J / J Advanced Algorithms Fall 2008 MIT OpeCourseWare http://ocw.mit.edu 6.854J / 18.415J Advaced Algorithms Fall 2008 For iformatio about citig these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. 18.415/6.854 Advaced Algorithms

More information

The Magma Database file formats

The Magma Database file formats The Magma Database file formats Adrew Gaylard, Bret Pikey, ad Mart-Mari Breedt Johaesburg, South Africa 15th May 2006 1 Summary Magma is a ope-source object database created by Chris Muller, of Kasas City,

More information

Avid Interplay Bundle

Avid Interplay Bundle Avid Iterplay Budle Versio 2.5 Cofigurator ReadMe Overview This documet provides a overview of Iterplay Budle v2.5 ad describes how to ru the Iterplay Budle cofiguratio tool. Iterplay Budle v2.5 refers

More information

Running Time ( 3.1) Analysis of Algorithms. Experimental Studies. Limitations of Experiments

Running Time ( 3.1) Analysis of Algorithms. Experimental Studies. Limitations of Experiments Ruig Time ( 3.1) Aalysis of Algorithms Iput Algorithm Output A algorithm is a step- by- step procedure for solvig a problem i a fiite amout of time. Most algorithms trasform iput objects ito output objects.

More information

Analysis of Algorithms

Analysis of Algorithms Aalysis of Algorithms Iput Algorithm Output A algorithm is a step-by-step procedure for solvig a problem i a fiite amout of time. Ruig Time Most algorithms trasform iput objects ito output objects. The

More information

Python Programming: An Introduction to Computer Science

Python Programming: An Introduction to Computer Science Pytho Programmig: A Itroductio to Computer Sciece Chapter 6 Defiig Fuctios Pytho Programmig, 2/e 1 Objectives To uderstad why programmers divide programs up ito sets of cooperatig fuctios. To be able to

More information

Chapter 10. Defining Classes. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Chapter 10. Defining Classes. Copyright 2015 Pearson Education, Ltd.. All rights reserved. Chapter 10 Defiig Classes Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 10.1 Structures 10.2 Classes 10.3 Abstract Data Types 10.4 Itroductio to Iheritace Copyright 2015 Pearso Educatio,

More information

FREQUENCY ESTIMATION OF INTERNET PACKET STREAMS WITH LIMITED SPACE: UPPER AND LOWER BOUNDS

FREQUENCY ESTIMATION OF INTERNET PACKET STREAMS WITH LIMITED SPACE: UPPER AND LOWER BOUNDS FREQUENCY ESTIMATION OF INTERNET PACKET STREAMS WITH LIMITED SPACE: UPPER AND LOWER BOUNDS Prosejit Bose Evagelos Kraakis Pat Mori Yihui Tag School of Computer Sciece, Carleto Uiversity {jit,kraakis,mori,y

More information

A Case Study of Clustering the Source Code

A Case Study of Clustering the Source Code A Case Study of Clusterig the Source Code NADIM ASIF, FAISAL SHAHZAD, NAJIA SAHER, WASEEM NAZAR Dept. of Computer Sciece The Islamia Uiversity of Bahawalpur Baghdad campus, Bahawalpur, PAKISTAN asif@softresearch.org,

More information

The isoperimetric problem on the hypercube

The isoperimetric problem on the hypercube The isoperimetric problem o the hypercube Prepared by: Steve Butler November 2, 2005 1 The isoperimetric problem We will cosider the -dimesioal hypercube Q Recall that the hypercube Q is a graph whose

More information

CIS 121 Data Structures and Algorithms with Java Spring Stacks, Queues, and Heaps Monday, February 18 / Tuesday, February 19

CIS 121 Data Structures and Algorithms with Java Spring Stacks, Queues, and Heaps Monday, February 18 / Tuesday, February 19 CIS Data Structures ad Algorithms with Java Sprig 09 Stacks, Queues, ad Heaps Moday, February 8 / Tuesday, February 9 Stacks ad Queues Recall the stack ad queue ADTs (abstract data types from lecture.

More information

Computers and Scientific Thinking

Computers and Scientific Thinking Computers ad Scietific Thikig David Reed, Creighto Uiversity Chapter 15 JavaScript Strigs 1 Strigs as Objects so far, your iteractive Web pages have maipulated strigs i simple ways use text box to iput

More information

Counting the Number of Minimum Roman Dominating Functions of a Graph

Counting the Number of Minimum Roman Dominating Functions of a Graph Coutig the Number of Miimum Roma Domiatig Fuctios of a Graph SHI ZHENG ad KOH KHEE MENG, Natioal Uiversity of Sigapore We provide two algorithms coutig the umber of miimum Roma domiatig fuctios of a graph

More information

Adaptive Resource Allocation for Electric Environmental Pollution through the Control Network

Adaptive Resource Allocation for Electric Environmental Pollution through the Control Network Available olie at www.sciecedirect.com Eergy Procedia 6 (202) 60 64 202 Iteratioal Coferece o Future Eergy, Eviromet, ad Materials Adaptive Resource Allocatio for Electric Evirometal Pollutio through the

More information

Data Structures Week #9. Sorting

Data Structures Week #9. Sorting Data Structures Week #9 Sortig Outlie Motivatio Types of Sortig Elemetary (O( 2 )) Sortig Techiques Other (O(*log())) Sortig Techiques 21.Aralık.2010 Boraha Tümer, Ph.D. 2 Sortig 21.Aralık.2010 Boraha

More information

CIS 121 Data Structures and Algorithms with Java Fall Big-Oh Notation Tuesday, September 5 (Make-up Friday, September 8)

CIS 121 Data Structures and Algorithms with Java Fall Big-Oh Notation Tuesday, September 5 (Make-up Friday, September 8) CIS 11 Data Structures ad Algorithms with Java Fall 017 Big-Oh Notatio Tuesday, September 5 (Make-up Friday, September 8) Learig Goals Review Big-Oh ad lear big/small omega/theta otatios Practice solvig

More information

Data diverse software fault tolerance techniques

Data diverse software fault tolerance techniques Data diverse software fault tolerace techiques Complemets desig diversity by compesatig for desig diversity s s limitatios Ivolves obtaiig a related set of poits i the program data space, executig the

More information

Goals of the Lecture UML Implementation Diagrams

Goals of the Lecture UML Implementation Diagrams Goals of the Lecture UML Implemetatio Diagrams Object-Orieted Aalysis ad Desig - Fall 1998 Preset UML Diagrams useful for implemetatio Provide examples Next Lecture Ð A variety of topics o mappig from

More information

COP4020 Programming Languages. Compilers and Interpreters Prof. Robert van Engelen

COP4020 Programming Languages. Compilers and Interpreters Prof. Robert van Engelen COP4020 mig Laguages Compilers ad Iterpreters Prof. Robert va Egele Overview Commo compiler ad iterpreter cofiguratios Virtual machies Itegrated developmet eviromets Compiler phases Lexical aalysis Sytax

More information

Improving Information Retrieval System Security via an Optimal Maximal Coding Scheme

Improving Information Retrieval System Security via an Optimal Maximal Coding Scheme Improvig Iformatio Retrieval System Security via a Optimal Maximal Codig Scheme Dogyag Log Departmet of Computer Sciece, City Uiversity of Hog Kog, 8 Tat Chee Aveue Kowloo, Hog Kog SAR, PRC dylog@cs.cityu.edu.hk

More information

Octahedral Graph Scaling

Octahedral Graph Scaling Octahedral Graph Scalig Peter Russell Jauary 1, 2015 Abstract There is presetly o strog iterpretatio for the otio of -vertex graph scalig. This paper presets a ew defiitio for the term i the cotext of

More information

Graphs. Minimum Spanning Trees. Slides by Rose Hoberman (CMU)

Graphs. Minimum Spanning Trees. Slides by Rose Hoberman (CMU) Graphs Miimum Spaig Trees Slides by Rose Hoberma (CMU) Problem: Layig Telephoe Wire Cetral office 2 Wirig: Naïve Approach Cetral office Expesive! 3 Wirig: Better Approach Cetral office Miimize the total

More information

Sorting in Linear Time. Data Structures and Algorithms Andrei Bulatov

Sorting in Linear Time. Data Structures and Algorithms Andrei Bulatov Sortig i Liear Time Data Structures ad Algorithms Adrei Bulatov Algorithms Sortig i Liear Time 7-2 Compariso Sorts The oly test that all the algorithms we have cosidered so far is compariso The oly iformatio

More information

Algorithms for Disk Covering Problems with the Most Points

Algorithms for Disk Covering Problems with the Most Points Algorithms for Disk Coverig Problems with the Most Poits Bi Xiao Departmet of Computig Hog Kog Polytechic Uiversity Hug Hom, Kowloo, Hog Kog csbxiao@comp.polyu.edu.hk Qigfeg Zhuge, Yi He, Zili Shao, Edwi

More information

HADOOP: A NEW APPROACH FOR DOCUMENT CLUSTERING

HADOOP: A NEW APPROACH FOR DOCUMENT CLUSTERING Y.K. Patil* Iteratioal Joural of Advaced Research i ISSN: 2278-6244 IT ad Egieerig Impact Factor: 4.54 HADOOP: A NEW APPROACH FOR DOCUMENT CLUSTERING Prof. V.S. Nadedkar** Abstract: Documet clusterig is

More information

. Written in factored form it is easy to see that the roots are 2, 2, i,

. Written in factored form it is easy to see that the roots are 2, 2, i, CMPS A Itroductio to Programmig Programmig Assigmet 4 I this assigmet you will write a java program that determies the real roots of a polyomial that lie withi a specified rage. Recall that the roots (or

More information

Chapter 5. Functions for All Subtasks. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Chapter 5. Functions for All Subtasks. Copyright 2015 Pearson Education, Ltd.. All rights reserved. Chapter 5 Fuctios for All Subtasks Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 5.1 void Fuctios 5.2 Call-By-Referece Parameters 5.3 Usig Procedural Abstractio 5.4 Testig ad Debuggig

More information

Analysis of Algorithms

Analysis of Algorithms Presetatio for use with the textbook, Algorithm Desig ad Applicatios, by M. T. Goodrich ad R. Tamassia, Wiley, 2015 Aalysis of Algorithms Iput 2015 Goodrich ad Tamassia Algorithm Aalysis of Algorithms

More information

A Boolean Query Processing with a Result Cache in Mediator Systems

A Boolean Query Processing with a Result Cache in Mediator Systems A Boolea Query Processig with a Result Cache i Mediator Systems Jae-heo Cheog ad Sag-goo Lee * Departmet of Computer Sciece Seoul Natioal Uiversity Sa 56-1 Shillim-dog Kwaak-gu, Seoul Korea {cjh, sglee}cygus.su.ac.kr

More information

COP4020 Programming Languages. Functional Programming Prof. Robert van Engelen

COP4020 Programming Languages. Functional Programming Prof. Robert van Engelen COP4020 Programmig Laguages Fuctioal Programmig Prof. Robert va Egele Overview What is fuctioal programmig? Historical origis of fuctioal programmig Fuctioal programmig today Cocepts of fuctioal programmig

More information

New HSL Distance Based Colour Clustering Algorithm

New HSL Distance Based Colour Clustering Algorithm The 4th Midwest Artificial Itelligece ad Cogitive Scieces Coferece (MAICS 03 pp 85-9 New Albay Idiaa USA April 3-4 03 New HSL Distace Based Colour Clusterig Algorithm Vasile Patrascu Departemet of Iformatics

More information

Minimum Spanning Trees

Minimum Spanning Trees Miimum Spaig Trees Miimum Spaig Trees Spaig subgraph Subgraph of a graph G cotaiig all the vertices of G Spaig tree Spaig subgraph that is itself a (free) tree Miimum spaig tree (MST) Spaig tree of a weighted

More information

An Improved Shuffled Frog-Leaping Algorithm for Knapsack Problem

An Improved Shuffled Frog-Leaping Algorithm for Knapsack Problem A Improved Shuffled Frog-Leapig Algorithm for Kapsack Problem Zhoufag Li, Ya Zhou, ad Peg Cheg School of Iformatio Sciece ad Egieerig Hea Uiversity of Techology ZhegZhou, Chia lzhf1978@126.com Abstract.

More information

CS 683: Advanced Design and Analysis of Algorithms

CS 683: Advanced Design and Analysis of Algorithms CS 683: Advaced Desig ad Aalysis of Algorithms Lecture 6, February 1, 2008 Lecturer: Joh Hopcroft Scribes: Shaomei Wu, Etha Feldma February 7, 2008 1 Threshold for k CNF Satisfiability I the previous lecture,

More information

New Fuzzy Color Clustering Algorithm Based on hsl Similarity

New Fuzzy Color Clustering Algorithm Based on hsl Similarity IFSA-EUSFLAT 009 New Fuzzy Color Clusterig Algorithm Based o hsl Similarity Vasile Ptracu Departmet of Iformatics Techology Tarom Compay Bucharest Romaia Email: patrascu.v@gmail.com Abstract I this paper

More information

( n+1 2 ) , position=(7+1)/2 =4,(median is observation #4) Median=10lb

( n+1 2 ) , position=(7+1)/2 =4,(median is observation #4) Median=10lb Chapter 3 Descriptive Measures Measures of Ceter (Cetral Tedecy) These measures will tell us where is the ceter of our data or where most typical value of a data set lies Mode the value that occurs most

More information

Structuring Redundancy for Fault Tolerance. CSE 598D: Fault Tolerant Software

Structuring Redundancy for Fault Tolerance. CSE 598D: Fault Tolerant Software Structurig Redudacy for Fault Tolerace CSE 598D: Fault Tolerat Software What do we wat to achieve? Versios Damage Assessmet Versio 1 Error Detectio Iputs Versio 2 Voter Outputs State Restoratio Cotiued

More information

What are we going to learn? CSC Data Structures Analysis of Algorithms. Overview. Algorithm, and Inputs

What are we going to learn? CSC Data Structures Analysis of Algorithms. Overview. Algorithm, and Inputs What are we goig to lear? CSC316-003 Data Structures Aalysis of Algorithms Computer Sciece North Carolia State Uiversity Need to say that some algorithms are better tha others Criteria for evaluatio Structure

More information

Math 10C Long Range Plans

Math 10C Long Range Plans Math 10C Log Rage Plas Uits: Evaluatio: Homework, projects ad assigmets 10% Uit Tests. 70% Fial Examiatio.. 20% Ay Uit Test may be rewritte for a higher mark. If the retest mark is higher, that mark will

More information

Pruning and Summarizing the Discovered Time Series Association Rules from Mechanical Sensor Data Qing YANG1,a,*, Shao-Yu WANG1,b, Ting-Ting ZHANG2,c

Pruning and Summarizing the Discovered Time Series Association Rules from Mechanical Sensor Data Qing YANG1,a,*, Shao-Yu WANG1,b, Ting-Ting ZHANG2,c Advaces i Egieerig Research (AER), volume 131 3rd Aual Iteratioal Coferece o Electroics, Electrical Egieerig ad Iformatio Sciece (EEEIS 2017) Pruig ad Summarizig the Discovered Time Series Associatio Rules

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe CHAPTER 22 Database Recovery Techiques Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe Itroductio Recovery algorithms Recovery cocepts Write-ahead

More information

Lecture 5. Counting Sort / Radix Sort

Lecture 5. Counting Sort / Radix Sort Lecture 5. Coutig Sort / Radix Sort T. H. Corme, C. E. Leiserso ad R. L. Rivest Itroductio to Algorithms, 3rd Editio, MIT Press, 2009 Sugkyukwa Uiversity Hyuseug Choo choo@skku.edu Copyright 2000-2018

More information

BOOLEAN MATHEMATICS: GENERAL THEORY

BOOLEAN MATHEMATICS: GENERAL THEORY CHAPTER 3 BOOLEAN MATHEMATICS: GENERAL THEORY 3.1 ISOMORPHIC PROPERTIES The ame Boolea Arithmetic was chose because it was discovered that literal Boolea Algebra could have a isomorphic umerical aspect.

More information

Chapter 11. Friends, Overloaded Operators, and Arrays in Classes. Copyright 2014 Pearson Addison-Wesley. All rights reserved.

Chapter 11. Friends, Overloaded Operators, and Arrays in Classes. Copyright 2014 Pearson Addison-Wesley. All rights reserved. Chapter 11 Frieds, Overloaded Operators, ad Arrays i Classes Copyright 2014 Pearso Addiso-Wesley. All rights reserved. Overview 11.1 Fried Fuctios 11.2 Overloadig Operators 11.3 Arrays ad Classes 11.4

More information

An Algorithm to Solve Multi-Objective Assignment. Problem Using Interactive Fuzzy. Goal Programming Approach

An Algorithm to Solve Multi-Objective Assignment. Problem Using Interactive Fuzzy. Goal Programming Approach It. J. Cotemp. Math. Scieces, Vol. 6, 0, o. 34, 65-66 A Algorm to Solve Multi-Objective Assigmet Problem Usig Iteractive Fuzzy Goal Programmig Approach P. K. De ad Bharti Yadav Departmet of Mathematics

More information

Administrative UNSUPERVISED LEARNING. Unsupervised learning. Supervised learning 11/25/13. Final project. No office hours today

Administrative UNSUPERVISED LEARNING. Unsupervised learning. Supervised learning 11/25/13. Final project. No office hours today Admiistrative Fial project No office hours today UNSUPERVISED LEARNING David Kauchak CS 451 Fall 2013 Supervised learig Usupervised learig label label 1 label 3 model/ predictor label 4 label 5 Supervised

More information

APPLICATION NOTE PACE1750AE BUILT-IN FUNCTIONS

APPLICATION NOTE PACE1750AE BUILT-IN FUNCTIONS APPLICATION NOTE PACE175AE BUILT-IN UNCTIONS About This Note This applicatio brief is iteded to explai ad demostrate the use of the special fuctios that are built ito the PACE175AE processor. These powerful

More information

Fundamentals of Media Processing. Shin'ichi Satoh Kazuya Kodama Hiroshi Mo Duy-Dinh Le

Fundamentals of Media Processing. Shin'ichi Satoh Kazuya Kodama Hiroshi Mo Duy-Dinh Le Fudametals of Media Processig Shi'ichi Satoh Kazuya Kodama Hiroshi Mo Duy-Dih Le Today's topics Noparametric Methods Parze Widow k-nearest Neighbor Estimatio Clusterig Techiques k-meas Agglomerative Hierarchical

More information

Analysis of Class Design Coupling Based on Information Entropy Di Jiang 1,2, a, Hua Zhou 1,2,b and Xingping Sun 1,2,c

Analysis of Class Design Coupling Based on Information Entropy Di Jiang 1,2, a, Hua Zhou 1,2,b and Xingping Sun 1,2,c Advaced Materials Research Olie: 2013-01-25 IN: 1662-8985, Vol. 659, pp 196-201 doi:10.4028/www.scietific.et/amr.659.196 2013 Tras Tech Publicatios, witzerlad Aalysis of Class Desig Couplig Based o Iformatio

More information

DATA MINING II - 1DL460

DATA MINING II - 1DL460 DATA MINING II - 1DL460 Sprig 2017 A secod course i data miig http://www.it.uu.se/edu/course/homepage/ifoutv2/vt17/ Kjell Orsbor Uppsala Database Laboratory Departmet of Iformatio Techology, Uppsala Uiversity,

More information

Evaluation scheme for Tracking in AMI

Evaluation scheme for Tracking in AMI A M I C o m m u i c a t i o A U G M E N T E D M U L T I - P A R T Y I N T E R A C T I O N http://www.amiproject.org/ Evaluatio scheme for Trackig i AMI S. Schreiber a D. Gatica-Perez b AMI WP4 Trackig:

More information

Pattern Recognition Systems Lab 1 Least Mean Squares

Pattern Recognition Systems Lab 1 Least Mean Squares Patter Recogitio Systems Lab 1 Least Mea Squares 1. Objectives This laboratory work itroduces the OpeCV-based framework used throughout the course. I this assigmet a lie is fitted to a set of poits usig

More information

Introduction. Nature-Inspired Computing. Terminology. Problem Types. Constraint Satisfaction Problems - CSP. Free Optimization Problem - FOP

Introduction. Nature-Inspired Computing. Terminology. Problem Types. Constraint Satisfaction Problems - CSP. Free Optimization Problem - FOP Nature-Ispired Computig Hadlig Costraits Dr. Şima Uyar September 2006 Itroductio may practical problems are costraied ot all combiatios of variable values represet valid solutios feasible solutios ifeasible

More information

Load balanced Parallel Prime Number Generator with Sieve of Eratosthenes on Cluster Computers *

Load balanced Parallel Prime Number Generator with Sieve of Eratosthenes on Cluster Computers * Load balaced Parallel Prime umber Geerator with Sieve of Eratosthees o luster omputers * Soowook Hwag*, Kyusik hug**, ad Dogseug Kim* *Departmet of Electrical Egieerig Korea Uiversity Seoul, -, Rep. of

More information

Chapter 4. Procedural Abstraction and Functions That Return a Value. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Chapter 4. Procedural Abstraction and Functions That Return a Value. Copyright 2015 Pearson Education, Ltd.. All rights reserved. Chapter 4 Procedural Abstractio ad Fuctios That Retur a Value Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 4.1 Top-Dow Desig 4.2 Predefied Fuctios 4.3 Programmer-Defied Fuctios 4.4

More information

ISSN (Print) Research Article. *Corresponding author Nengfa Hu

ISSN (Print) Research Article. *Corresponding author Nengfa Hu Scholars Joural of Egieerig ad Techology (SJET) Sch. J. Eg. Tech., 2016; 4(5):249-253 Scholars Academic ad Scietific Publisher (A Iteratioal Publisher for Academic ad Scietific Resources) www.saspublisher.com

More information

CSC 220: Computer Organization Unit 11 Basic Computer Organization and Design

CSC 220: Computer Organization Unit 11 Basic Computer Organization and Design College of Computer ad Iformatio Scieces Departmet of Computer Sciece CSC 220: Computer Orgaizatio Uit 11 Basic Computer Orgaizatio ad Desig 1 For the rest of the semester, we ll focus o computer architecture:

More information

Keywords Software Architecture, Object-oriented metrics, Reliability, Reusability, Coupling evaluator, Cohesion, efficiency

Keywords Software Architecture, Object-oriented metrics, Reliability, Reusability, Coupling evaluator, Cohesion, efficiency Volume 3, Issue 9, September 2013 ISSN: 2277 128X Iteratioal Joural of Advaced Research i Computer Sciece ad Software Egieerig Research Paper Available olie at: www.ijarcsse.com Couplig Evaluator to Ehace

More information

Primitive polynomials selection method for pseudo-random number generator

Primitive polynomials selection method for pseudo-random number generator Joural of hysics: Coferece Series AER OEN ACCESS rimitive polyomials selectio method for pseudo-radom umber geerator To cite this article: I V Aiki ad Kh Alajjar 08 J. hys.: Cof. Ser. 944 0003 View the

More information

Creating Exact Bezier Representations of CST Shapes. David D. Marshall. California Polytechnic State University, San Luis Obispo, CA , USA

Creating Exact Bezier Representations of CST Shapes. David D. Marshall. California Polytechnic State University, San Luis Obispo, CA , USA Creatig Exact Bezier Represetatios of CST Shapes David D. Marshall Califoria Polytechic State Uiversity, Sa Luis Obispo, CA 93407-035, USA The paper presets a method of expressig CST shapes pioeered by

More information

Big-O Analysis. Asymptotics

Big-O Analysis. Asymptotics Big-O Aalysis 1 Defiitio: Suppose that f() ad g() are oegative fuctios of. The we say that f() is O(g()) provided that there are costats C > 0 ad N > 0 such that for all > N, f() Cg(). Big-O expresses

More information

Euclidean Distance Based Feature Selection for Fault Detection Prediction Model in Semiconductor Manufacturing Process

Euclidean Distance Based Feature Selection for Fault Detection Prediction Model in Semiconductor Manufacturing Process Vol.133 (Iformatio Techology ad Computer Sciece 016), pp.85-89 http://dx.doi.org/10.1457/astl.016. Euclidea Distace Based Feature Selectio for Fault Detectio Predictio Model i Semicoductor Maufacturig

More information

An Estimation of Distribution Algorithm for solving the Knapsack problem

An Estimation of Distribution Algorithm for solving the Knapsack problem Vol.4,No.5, 214 Published olie: May 25, 214 DOI: 1.7321/jscse.v4.5.1 A Estimatio of Distributio Algorithm for solvig the Kapsack problem 1 Ricardo Pérez, 2 S. Jös, 3 Arturo Herádez, 4 Carlos A. Ochoa *1,

More information

Data Analysis. Concepts and Techniques. Chapter 2. Chapter 2: Getting to Know Your Data. Data Objects and Attribute Types

Data Analysis. Concepts and Techniques. Chapter 2. Chapter 2: Getting to Know Your Data. Data Objects and Attribute Types Data Aalysis Cocepts ad Techiques Chapter 2 1 Chapter 2: Gettig to Kow Your Data Data Objects ad Attribute Types Basic Statistical Descriptios of Data Data Visualizatio Measurig Data Similarity ad Dissimilarity

More information

Hash Tables. Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015.

Hash Tables. Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015. Presetatio for use with the textbook Algorithm Desig ad Applicatios, by M. T. Goodrich ad R. Tamassia, Wiley, 2015 Hash Tables xkcd. http://xkcd.com/221/. Radom Number. Used with permissio uder Creative

More information