1 Structural Manipulations of Software Architecture Using Tarski Relational Algebra Ric Holt University of Waterloo, Canada Paper at.

Slides:



Advertisements
Similar presentations
Sorting in Linear Time Introduction to Algorithms Sorting in Linear Time CSE 680 Prof. Roger Crawfis.
Advertisements

Data Structures.
O(N 1.5 ) divide-and-conquer technique for Minimum Spanning Tree problem Step 1: Divide the graph into  N sub-graph by clustering. Step 2: Solve each.
SSA.
Divide and Conquer. Subject Series-Parallel Digraphs Planarity testing.
ECE 250 Algorithms and Data Structures Douglas Wilhelm Harder, M.Math. LEL Department of Electrical and Computer Engineering University of Waterloo Waterloo,
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
CSI5112 Software Engineering Team: Andrei Anisenia Margi Fumtiwala.
Implementation of Graph Decomposition and Recursive Closures Graph Decomposition and Recursive Closures was published in 2003 by Professor Chen. The project.
Query processing and optimization. Advanced DatabasesQuery processing and optimization2 Definitions Query processing –translation of query into low-level.
Google’s Map Reduce. Commodity Clusters Web data sets can be very large – Tens to hundreds of terabytes Cannot mine on a single server Standard architecture.
Interconnection Network PRAM Model is too simple Physically, PEs communicate through the network (either buses or switching networks) Cost depends on network.
A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999.
NFA- to NFA conversion. Purpose This presentation presents an example execution of the algorithm which takes as input an NFA with -transitions and produces.
CAD Algorithms and Tools. Overview Introduction Multi-level logic synthesis SIS as a representative CAD tool Boolean networks Transformations of Boolean.
Process Modeling and Data Flow Diagrams
Unit 1. Sorting and Divide and Conquer. Lecture 1 Introduction to Algorithm and Sorting.
Chapter 9 1. Chapter Summary Relations and Their Properties n-ary Relations and Their Applications (not currently included in overheads) Representing.
C o n f i d e n t i a l Developed By Nitendra NextHome Subject Name: Data Structure Using C Title: Overview of Data Structure.
Lecture 6 Data Flow Modeling
Identifying Reversible Functions From an ROBDD Adam MacDonald.
CS746 Software Architecture Organizational Meeting Instructor: Prof. Richard C. Holt TA: Jingwei Wu.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
SOFTWARE DESIGN.
Querying Structured Text in an XML Database By Xuemei Luo.
Querying Large Databases Rukmini Kaushik. Purpose Research for efficient algorithms and software architectures of query engines.
COMP20010: Algorithms and Imperative Programming Lecture 2 Data structures for binary trees Priority queues.
Software Clustering Based on Information Loss Minimization Periklis Andritsos University of Toronto Vassilios Tzerpos York University The 10th Working.
Quadtrees, Octrees and their Applications in Digital Image Processing.
Memory Management during Run Generation in External Sorting – Larson & Graefe.
Dr.Basem Alkazemi
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
1 Grokking Software Architecture Richard C. Holt Software Architecture Group (SWAG) School of Computer Science, University of Waterloo, Canada 2008 Working.
1 BIM304: Algorithm Design Time: Friday 9-12am Location: B4 Instructor: Cuneyt Akinlar Grading –2 Midterms – 20% and 30% respectively –Final – 30% –Projects.
Gordana Rakić, Zoran Budimac
LECTURE 2-3. Course: “Design of Systems: Structural Approach” Dept. “Communication Networks &Systems”, Faculty of Radioengineering & Cybernetics Moscow.
CSER / CASCON 1999 Exchange formats: Some problems, a few results, and a cool name Michael Godfrey Ivan Bowman and others … University of Waterloo.
Minimum- Spanning Trees
1Computer Sciences. 2 HEAP SORT TUTORIAL 4 Objective O(n lg n) worst case like merge sort. Sorts in place like insertion sort. A heap can be stored as.
Answers to Assignment #2
Parallel tree search: An algorithmic approach for multi- field packet classification Authors: Derek Pao and Cutson Liu. Publisher: Computer communications.
Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May.
1 Part 5. Permission Rules for Two-Level Systems Controlling access (visibility or scope) of static references. Analogous to “private” in C/C++/Java.
Hierarchical Modeling.  Explain the 3 different types of model for which computer graphics is used for.  Differentiate the 2 different types of entity.
More Trees. Outline Tree B-Tree 2-3 Tree Tree Red-Black Tree.
DATA STRUCURES II CSC QUIZ 1. What is Data Structure ? 2. Mention the classifications of data structure giving example of each. 3. Briefly explain.
Voronoi Graph Voronoi region Vor(p) (p in set S) Voronoi Graph VOR(S)
Data Structures and Design in Java © Rick Mercer
Lecture 1 (UNIT -4) TREE SUNIL KUMAR CIT-UPES.
Partial Orders.
Learn about relations and their basic properties
Software Design.
Activity Diagram.
Datastructure.
Software Design Mr. Manoj Kumar Kar.
Welcome to my presentation
B+ Trees Similar to B trees, with a few slight differences
Chapter 15 QUERY EXECUTION.
Unit IV Code Generation
B+ Trees Similar to B trees, with a few slight differences
كلية المجتمع الخرج البرمجة - المستوى الثاني
Information Systems Development MIS331
Direction of refinement – Ideas MEI Honghui 2017/7/1
Control Flow Analysis (Chapter 7)
Software Visualization
Interval Partitioning of a Flow Graph
Secrets from the Monster: Extracting Mozilla’s Software Architecture
Lecture 16: Register Allocation
Assignment #2 (Assignment due: Nov. 06, 2018) v1 v2 v3 v4 v5
External Sorting Dina Said
Presentation transcript:

1 Structural Manipulations of Software Architecture Using Tarski Relational Algebra Ric Holt University of Waterloo, Canada Paper at WCRE '98: Working Conference on Reverse Engineering, Honolulu, Oct 1998.

2 Top view of concrete software architecture of 250KLOC system

3 Client-server view of one subsystem of the 250KLOC system

4 Process of view creation Parser Grok: Fact manipulator Layouter Browser Clustering Source code Facts extracted from code Hierarchic decomposition Architectural diagram

5 Example typed graph r ab C C vwxyz CCCECC I UU v w xy z ab r U U I E  C = { (r,a), (r,b), (a,v), (a,w) (a,x), (b,y), (b,z) }  I = { (a,b) }  E = { (b,y) }  U = { (v,w), (x,y) }

6 Algebraic Operators UnionI + E = {(a,b), (b,y)} IntersectionE ^ C = {(b,y)} DifferenceC - E = {(r,a), (r,b), (a,v), (a,w), (a,x), (b,z)} Inverseinv E = {(y,b)} CompositionI o E = {(a,y)} Identityid = {(r,r), (a, a), (b,b), (w,w) … } Transitive Cl.C+ = {(r,a), (r, b), (r,v), (r,w), (r,x), (r,y), (r,z), (a,v), (a,w), (a,x), (b,y), (b,z)} Reflex. T.C.C* = id + C+

7 External Representation of Graphs RSF call P Q include F G store Q X contain Main P P Q X call Main contain store F G include

8 Hide transformations a b c d e f g h T V S b a T V Graph G Graph H = hide(hide(G,T),V) d e f Graph I = hideExt(G, S)

9 Hide transformation The hide transformation takes a graph G that includes a hierarchical (tree) containment relation C and another relation R and a particular node S, and eliminates all descendent nodes of S, while replacing each edge from outside S to inside S by an edge to S, and each edge from inside S to outside S by an edge from S. Similarly for hideExt.

10 When use hide transformation? Use hide when relation R is “optimistically transitive”. a b c f g h T V S e d

11 Edged induced by hiding a b c d e f g h T V S Edges induced by edge (f,g) = all edges that hide/hideExt may cause to be drawn = all subpaths from f to g.

12 Family relations Given containment (child) relation C: ParentP = inv C SiblingS = P o C - id DescendentD = C+ Inclusive descendentDo = C* AncestorA = P+ Inclusive ancestorAo = P* Super cousinK = P* o S o C*

13 Induced cousins Given relation U (for “use”), what “higher level” relations are induced by U? Divide U into Uk (cousin edges) Ud (descendent/export/public edges) Ua (ancestor/buy edges) Induced cousin usage: Uk’ = (Do o Uk o Ao) ^ K DoAo Uk Uk’

14 Induced descendent edges (export/public edges) Ud’ = (Ao o Ud o Ao) ^ D + (K o Uk o Ao) ^ D Ud Ao Ud’ Ud Ao Not Ud’ K Uk Uk’ Ao K Uk Ao Not Uk’

15 Grok: a relational calculator Program: getdb call.rsf tcall := call+ putdb both.rsf Input from call.rsf: call P Q call Q R Output to both.rsf: call P Q call Q R tcall P Q tcall Q R tcall P R P Q R call

16 Inducing calls up to file level “call” is a procedure call “fcall” is a file level call fcall := funcdef o call o inv funcdcl main.c startup start.h main call funcdef funcdcl Procedure bodyProcedure header File fcall

17 Algorithms for composition and other operators Implement T := R o S Naïve implementation, O(e**2) = O(n**4) for i : 1.. e if type(i) = “R” then for j : 1.. e if type(j) = “ S” & trg(i) = src (j) then create T(src(i), trg(j)) end if end for end if end for Remove duplicates Original a R b b S c c R x y R d x S b Result a T c c T b a b x c d y R S R S T R T

18 Algorithms for composition and other operators Algorithm: Isolate R edges, sort these by trg Isolate S edges, sort these by src Effectively merge these 2 lists Assuming linear sort (radix sort), time is O(e). Sorted edges a R b b S c y R d x S b c R x …... Result a T c c T b a b x c d y R S R S T R T