Software Data Analytics Part 2: Formal Concept Analysis. Oscar Nierstrasz Luca Liechti
|
|
- Stephen Roberts
- 6 years ago
- Views:
Transcription
1 Software Data Analytics Part 2: Formal Concept Analysis Oscar Nierstrasz Luca Liechti
2 Roadmap > Basics of Formal Concept Analysis > Applications of FCA to Software > Computing the concept lattice > FCA tools (demo) 2
3 Selected literature The Art and Science of Analyzing Software Data, Christian Bird, Tim Menzies, Thomas Zimmermann 3
4 This book contains a good introduction to FCA in chapter 2: Mining Patterns and Violations using Concept Analysis. A preprint is available online:
5 Roadmap > Basics of Formal Concept Analysis > Applications of FCA to Software > Computing the concept lattice > FCA tools (demo) 4
6 What patterns do you see? What outliers? fourlegged haircovered intelligent marine thumbed Cats x x Dogs x x Dolphins x x Gibbons x x x Humans x x Whales x x 5
7 Here we see six objects, each with a selection of five properties or attributes. Clearly there is a pattern present in that only cats and dogs are both four-legged and hair-covered, but are there other patterns present? How can we identify them reliably? Example adapted from Siff & Thomas Reps. Identifying Modules via Concept Analysis. IEEE-TSE 25(6), Nov
8 Rearranging rows and columns fourlegged haircovered thumbed intelligent marine Cats x x Dogs x x Gibbons x x x Humans x x Dolphins x x Whales x x 6
9 By rearranging the rows and columns we can more easily identify maximal blocks of objects and properties that belong together. We find five such blocks, several of which overlap.
10 Formal Concept Analysis > FCA organizes a collection of objects, each with a set of properties, into a lattice of nodes, where all objects in a given node have the same properties Objects of a child node have all the properties of its parent nodes The top node holds objects sharing no properties Objects in the bottom node have all properties 7
11 Formal Concept Analysis refers to a set of methods to analyze a collection of objects and properties to form a concept hierarchy. The hierarchy forms a complete lattice, that is, each pair of nodes has a common join (least upper bound) and meet (greatest lower bound). Each node (representing a concept ) consists of a maximal set of objects and a maximal set of properties such that all those objects (and no more) share all the properties (and no more). The join of two nodes takes the union of their objects and the intersection of their properties (vice versa for meet). The appendix to Arévalo s PhD thesis contains a concise introduction to FCA:
12 A concept lattice 8
13 Here we see the concept lattice of our example. Note that the top node contains all objects but no properties. The bottom node contains all properties, and all objects with all those properties (i.e., none). Note that every node is maximal, in that we cannot add any more objects or properties to it. Also note that absent combinations do not form concepts, for example: ({Humans}, {thumbed}), since we can add Gibbons to the objects and intelligent to the properties. In the diagram we have highlighted in bold the where properties are first introduced (top-down) or objects (bottom-up).
14 A concept lattice (v2) 9
15 Here is a more compact way to represent the same lattice. Bottom-up we indicate where objects are introduced. Objects propagate up to all the nodes above. Conversely properties are introduced top-down and propagate downward, so the node labeled thumbed and Humans also includes the property intelligent and the object Gibbons.
16 A concept is a maximal block of objects and features > Let R O F relate objects O O with features F F Let O = { f F (o,f) R o O } i.e., all the features shared by all objects in O Let F = { o O (o,f) R f F } i.e., all the objects sharing all the features in F Then (O,F) is a concept iff O = F and F = O i.e., O contains all the objects with features in F and vice versa O is the extent and F is the intent of the concept (O,F) 10
17 The triple (O, F, R) is known as the context. To define concepts formally, we need the closure operator that generates all the properties shared by a set of objects, and conversely, all the objects sharing a set of properties. Starting, for example, with Cats and Gibbons: {Cats, Gibbons} = {hair-covered} {hair-covered} = {Cats, Dogs, Gibbons} Repeated applications can yield no further objects or properties, so we have identified the concept: ({Cats, Dogs, Gibbons}, {hair-covered})
18 What is FCA good for? > Identify important concepts from objects and properties > Recognize patterns in objects and relationships NB: need to map relationships to properties > Identify outliers i.e., objects that violate recognized patterns 11
19 Roadmap > Basics of Formal Concept Analysis > Applications of FCA to Software > Computing the concept lattice > FCA tools (demo) 12
20 Mining Ruby calling patterns Call relation for Ruby The pattern {va_start, va_end} becomes visible as a block. It is violated by the function vafuncall. This violation becomes visible as an imperfect block. Mining Patterns and Violations using Concept Analysis, Ch 2., The Art and Science of Analyzing Software Data 13
21 FCA can be applied to analyze software in a great variety of ways. It suffices to determine the objects and properties of interest. One natural way is to map them respectively to the callers and callees in a software system. The patterns that emerge indicate which callers tend to call the same group of callees. In this example, we see that callers in Ruby tend to call both va_start and va_end, suggesting that this may be a best practice. Callers that violate this pattern may be in error. FCA therefore not only can identify interesting patterns, but also outliers that may be violating a desirable pattern. This example is from Mining Patterns and Violations using Concept Analysis.
22 Detecting structural patterns in code > Objects : tuples of classes > Properties: relationships between (or over) classes subclasses accesses is abstract Detecting Software Patterns using Formal Concept Analysis, Buchli
23 In this example, we attempt to discover recurring structural patterns in code (analogous to structural design patterns). The objects are tuples of two or more classes, and the properties are relationships over one or more of those classes, such as is abstract (1 class), subclasses (2 classes), accesses (2 classes). Post filtering is required to deal with (1) disconnected patterns (all objects must be related for a pattern to be meaningful, else it can be decomposed into smaller patterns), and (2) equivalent patterns (permutations of tuples will appear as different patterns, and must be merged). Buchli. Detecting Software Patterns using Formal Concept Analysis. Diploma Thesis, Arévalo, Buchli, & Nierstrasz. Detecting Implicit Collaboration Patterns. WCRE
24 Some detected patterns
25 Note that some known design design patterns are clearly recognized by FCA as concepts, such as Facade, Composite, Adapter, and Bridge.
26 Detecting coding patterns in class hierarchies > Objects : invocations (C,m) and accesses (C,a) > Properties: C accesses a via accessors C accesses a directly C defines a C invokes m via self C invokes m via super C delegates m via super m m is abstract in C m is concrete in C m in cancelled in C Generating a Catalog of Unanticipated Schemas in Class Hierarchies using Formal Concept Analysis, Arévalo et al
27 In this study, the objects invocations and accesses (similar to the first study of callers and callees), while the properties are not callers but attributes describing the invocation or accessing relationship. The goal is to uncover common practices or schemas implicit in class hierarchies. Arévalo, et al. Generating a catalog of unanticipated schemas in class hierarchies using Formal Concept Analysis. IST,
28 Sample class hierarchy lattice 17
29 Some patterns (good and bad) Template and Hook Redefined Concrete Behavior invoked via self, is abstract locally, is concrete in descendant Cn. invoked via self, is concrete locally, is concrete in ancestor Cm, (2) invoked via self, is concrete in descendant Cn, is concrete in ancestor Cm. Abstracting Concrete Methods Broken super send Chain (1) invoked via self, is cancelled locally, is concrete in ancestor Cn, (2) invoked via self, is concrete locally, is cancelled in descendant Cn delegated via super, is concrete locally, is concrete in ancestor Cn. 18
30 The patterns detected sometimes reflect best practices and some design patterns, such as template and hook methods, but also some anti-patterns emerged.
31 Lessons Learned > Modeling software entities as FCA components is an iterative process deciding what should be modeled as objects and properties is nontrivial > Performance can be a bottleneck not only computing the lattice may be expensive but also computing the properties > Post-filtering is essential not all concepts and properties are useful; the resulting lattice may need to be post-processed to remove noise > Interpretation is non-obvious what do concepts mean in practice? how should the lattice hierarchy be interpreted? Lessons Learned in Applying Formal Concept Analysis to Reverse Engineering, Arévalo et al
32 These lessons emerged from early experience with FCA in the course of Arévalo s PhD research. The first point is that it may require some experimentation to discover what precisely should be modeled as objects and properties. FCA is completely neutral in this regard. Performance can be an issue if there are large numbers of objects or properties to analyze. Computing the properties may be expensive, but as well the way in which the analysis is carried out may be critical as computing the lattice can be expensive. Once the concepts and the concept lattice have been computed, some filtering may be needed to remove noise (recall the permutations of structural patterns). Interpretation of the results can also be tricky as concepts may represent either good or bad practice (or neither). Arevalo et al. Lessons Learned in Applying Formal Concept Analysis to Reverse Engineering. ICFCA
33 Roadmap > Basics of Formal Concept Analysis > Applications of FCA to Software > Computing the concept lattice > FCA tools (demo) 20
34 Naive algorithm (1) 1. collect all the atomic concepts (e.g., take closures over maximal property sets) ({Cats, Dogs}, {four-legged, hair-covered}) ({Dolphins, Whales}, {intelligent, marine}) ({Gibbons}, {hair-covered, intelligent, thumbed}) ({Gibbons, Humans}, {intelligent, thumbed}) 21
35 There are good and bad ways to compute a concept lattice. The most natural (but inefficient) way is to start by identifying the atomic concepts in the context. These are easily identified, for example, by identifying the maximal property sets held by some objects, and then taking their closures to obtain all the objects with those properties. The diagram shows this for the running example. Unfortunately this is not a complete lattice, as meets and joins are missing for selected pairs of nodes. For example, the join (lub) of the node for Cats and Dogs and the node for Gibbons should not be Top.
36 Naive algorithm (2) 2. Take joins over all possible pairs of concepts to generate missing concepts 22
37 The next step is to generate the missing meets and joins. (Going bottom-up, it is sufficient to take all possible joins.) Now we have the complete lattice. Note that we do not generate nodes where just four-legged, thumbed, or marine as properties are introduced, as these will not form concepts. Unfortunately this approach will be very inefficient in general, as it requires us to (iteratively) take joins of all possible pairs of nodes.
38 Ganter s algorithm Ganter avoids exponential computation by imposing a lectic order on sets of properties, and generating closures in linear order. 23
39 A key insight by Ganter is that it is not actually necessary to compute the joins of all atomic concepts, but instead one can iterate linearly through sets of properties in a particular ( lectic ) order, and compute closures to generate all concepts. The details are beyond the scope of this short lecture, but for a nice introduction, see the following slides: B. Ganter. Finger Exercises in Formal Concept Analysis. Dresden Summer School For a comparison of algorithms, see: Kuznetsov & Obiedkov. Comparing performance of algorithms for generating concept lattices. J. Experimental & Theoretical AI
40 Sets as Bit Strings Aside: An efficient way to compare sets is to encode them as Bit Vectors. 24
41 Comparing sets can be very expensive. Checking whether the properties of one object are the same as, or a subset of, those of another object can be inefficient using typical representations of sets. Instead one can use a bit vector. This requires that all sets use the same bits to encode the same properties (a dictionary can keep track of the mapping). Bit vectors can be encoding as integers, or Big Numbers, in case more than 32 properties are needed. Equality, intersection or union are trivial to compute, as are subset and superset tests.
42 Roadmap > Basics of Formal Concept Analysis > Applications of FCA to Software > Computing the concept lattice > FCA tools (demo) 25
43 Free and Open-Source FCA Tools > ConExp > Concept Explorer FX (a "partial reimplementation" of ConExp) > Moose (Pharo-based data analysis platform) Instructions: 26
44 What you should know! > In what sense is a concept a maximal set of of objects and properties? > What is the closure of a set of objects or properties? > What is an atomic concept? > What do concepts mined from callers as objects and callees as properties reveal? > How can the Composite design pattern be viewed as a concept? 27
45 Can you answer these questions? > Why don t certain combinations of objects and properties qualify as concepts? > What does it mean if a concept is a parent or a child of another one in a concept lattice? > Methods that use super to call another method are a known code smell. How could you use concept analysis to detect such smells? > Suppose you modeled classes as objects and authors who contributed changes to those classes as properties. How would you interpret the resulting concept lattice? 28
46 Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) You are free to: Share copy and redistribute the material in any medium or format Adapt remix, transform, and build upon the material for any purpose, even commercially. The licensor cannot revoke these freedoms as long as you follow the license terms. Under the following terms: Attribution You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. ShareAlike If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. No additional restrictions You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
5. Introduction to the Lambda Calculus. Oscar Nierstrasz
5. Introduction to the Lambda Calculus Oscar Nierstrasz Roadmap > What is Computability? Church s Thesis > Lambda Calculus operational semantics > The Church-Rosser Property > Modelling basic programming
More information7. Introduction to Denotational Semantics. Oscar Nierstrasz
7. Introduction to Denotational Semantics Oscar Nierstrasz Roadmap > Syntax and Semantics > Semantics of Expressions > Semantics of Assignment > Other Issues References > D. A. Schmidt, Denotational Semantics,
More information6. Intermediate Representation
6. Intermediate Representation Oscar Nierstrasz Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes. http://www.cs.ucla.edu/~palsberg/
More informationEnumerating Pseudo-Intents in a Partial Order
Enumerating Pseudo-Intents in a Partial Order Alexandre Bazin and Jean-Gabriel Ganascia Université Pierre et Marie Curie, Laboratoire d Informatique de Paris 6 Paris, France Alexandre.Bazin@lip6.fr Jean-Gabriel@Ganascia.name
More informationIntroduction to Software Engineering. 6. Modeling Behaviour
Introduction to Software Engineering 6. Modeling Behaviour Roadmap > Use Case Diagrams > Sequence Diagrams > Collaboration (Communication) Diagrams > Activity Diagrams > Statechart Diagrams Nested statecharts
More informationThe Basics of Graphical Models
The Basics of Graphical Models David M. Blei Columbia University September 30, 2016 1 Introduction (These notes follow Chapter 2 of An Introduction to Probabilistic Graphical Models by Michael Jordan.
More information3. Parsing. Oscar Nierstrasz
3. Parsing Oscar Nierstrasz Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes. http://www.cs.ucla.edu/~palsberg/ http://www.cs.purdue.edu/homes/hosking/
More informationPrinciples of Program Analysis. Lecture 1 Harry Xu Spring 2013
Principles of Program Analysis Lecture 1 Harry Xu Spring 2013 An Imperfect World Software has bugs The northeast blackout of 2003, affected 10 million people in Ontario and 45 million in eight U.S. states
More information/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17
01.433/33 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/2/1.1 Introduction In this lecture we ll talk about a useful abstraction, priority queues, which are
More informationCompiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore
Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No. # 10 Lecture No. # 16 Machine-Independent Optimizations Welcome to the
More informationGraphical Models. David M. Blei Columbia University. September 17, 2014
Graphical Models David M. Blei Columbia University September 17, 2014 These lecture notes follow the ideas in Chapter 2 of An Introduction to Probabilistic Graphical Models by Michael Jordan. In addition,
More informationSoftware Metrics and Problem Detection
Software Metrics and Problem Detection Oscar Nierstrasz Yuriy Tymchuk Selected material by Mircea Lungu Roadmap > Software Metrics Size / Complexity Metrics Quality Metrics > Metric-Based Problem Detection
More information10. PEGs, Packrats and Parser Combinators
10. PEGs, Packrats and Parser Combinators Oscar Nierstrasz Thanks to Bryan Ford for his kind permission to reuse and adapt the slides of his POPL 2004 presentation on PEGs. http://www.brynosaurus.com/
More informationXRay Views: Understanding the Internals of Classes
XRay Views: Understanding the Internals of Classes Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz Software Composition Group University of Bern (Switzerland) {arevalo, ducasse, oscar}@iam.unibe.ch
More informationLecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1
CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanford.edu) January 11, 2018 Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 In this lecture
More informationChapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,
Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Classes, Class Diagrams Values and Attributes Operations
More informationNORMAL FORMS. CS121: Relational Databases Fall 2017 Lecture 18
NORMAL FORMS CS121: Relational Databases Fall 2017 Lecture 18 Equivalent Schemas 2 Many different schemas can represent a set of data Which one is best? What does best even mean? Main goals: Representation
More informationComputer Science II (20073) Week 1: Review and Inheritance
Computer Science II 4003-232-01 (20073) Week 1: Review and Inheritance Richard Zanibbi Rochester Institute of Technology Review of CS-I Hardware and Software Hardware Physical devices in a computer system
More informationCatalan Numbers. Table 1: Balanced Parentheses
Catalan Numbers Tom Davis tomrdavis@earthlink.net http://www.geometer.org/mathcircles November, 00 We begin with a set of problems that will be shown to be completely equivalent. The solution to each problem
More informationMarket baskets Frequent itemsets FP growth. Data mining. Frequent itemset Association&decision rule mining. University of Szeged.
Frequent itemset Association&decision rule mining University of Szeged What frequent itemsets could be used for? Features/observations frequently co-occurring in some database can gain us useful insights
More informationNOTES ON OBJECT-ORIENTED MODELING AND DESIGN
NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented
More informationConcurrency Control. Chapter 17. Comp 521 Files and Databases Spring
Concurrency Control Chapter 17 Comp 521 Files and Databases Spring 2010 1 Conflict Serializable Schedules Recall conflicts (WW, RW, WW) were the cause of sequential inconsistency Two schedules are conflict
More informationChapter 8: Relational Database Design
Chapter 8: Relational Database Design Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 8: Relational Database Design Features of Good Relational Design Atomic Domains
More informationConcurrency Control. Chapter 17. Comp 521 Files and Databases Fall
Concurrency Control Chapter 17 Comp 521 Files and Databases Fall 2012 1 Conflict Serializable Schedules Recall conflicts (WR, RW, WW) were the cause of sequential inconsistency Two schedules are conflict
More information2. Smalltalk a reflective language. Oscar Nierstrasz
2. Smalltalk a reflective language Oscar Nierstrasz Birds-eye view Smalltalk is still today one of the few fully reflective, fully dynamic, objectoriented development environments. We will see how a simple,
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More information5. Semantic Analysis. Mircea Lungu Oscar Nierstrasz
5. Semantic Analysis Mircea Lungu Oscar Nierstrasz Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes. http://www.cs.ucla.edu/~palsberg/
More informationA few important patterns and their connections
A few important patterns and their connections Perdita Stevens School of Informatics University of Edinburgh Plan Singleton Factory method Facade and how they are connected. You should understand how to
More informationPlan. A few important patterns and their connections. Singleton. Singleton: class diagram. Singleton Factory method Facade
Plan A few important patterns and their connections Perdita Stevens School of Informatics University of Edinburgh Singleton Factory method Facade and how they are connected. You should understand how to
More informationEDAA40 At home exercises 1
EDAA40 At home exercises 1 1. Given, with as always the natural numbers starting at 1, let us define the following sets (with iff ): Give the number of elements in these sets as follows: 1. 23 2. 6 3.
More informationIntroduction to Software Engineering. 5. Modeling Objects and Classes
Introduction to Software Engineering 5. Modeling Objects and Classes Roadmap > UML Overview > Classes, attributes and operations > UML Lines and Arrows > Parameterized Classes, Interfaces and Utilities
More informationTHE RELATIONAL DATABASE MODEL
THE RELATIONAL DATABASE MODEL Introduction to relational DB Basic Objects of relational model Properties of relation Representation of ER model to relation Keys Relational Integrity Rules Functional Dependencies
More informationLecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson
Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson January 13, 2005 January 18, 2005 1 of 38 Lecture Goals Introduce the basic concepts of object-oriented analysis/design/programming
More informationDebugging Temporal Specifications with Concept Analysis
Debugging Temporal Specifications with Concept Analysis Glenn Ammons ammons@us.ibm.com David Mandelin Rastislav Bodík {mandelin,bodik}@cs.berkeley.edu James R. Larus larus@microsoft.com ABSTRACT Program
More informationThe Software Design Process. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed
The Software Design Process CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed Outline Challenges in Design Design Concepts Heuristics Practices Challenges in Design A problem that can only be defined
More information5. Semantic Analysis. Mircea Lungu Oscar Nierstrasz
5. Semantic Analysis Mircea Lungu Oscar Nierstrasz Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes. http://www.cs.ucla.edu/~palsberg/
More informationLecture 28 Intro to Tracking
Lecture 28 Intro to Tracking Some overlap with T&V Section 8.4.2 and Appendix A.8 Recall: Blob Merge/Split merge occlusion occlusion split When two objects pass close to each other, they are detected as
More informationRecall: Blob Merge/Split Lecture 28
Recall: Blob Merge/Split Lecture 28 merge occlusion Intro to Tracking Some overlap with T&V Section 8.4.2 and Appendix A.8 occlusion split When two objects pass close to each other, they are detected as
More informationDetecting Software Patterns using Formal Concept Analysis
Detecting Software Patterns using Formal Concept Analysis Diplomarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Frank Buchli September 2003 Leiter der Arbeit:
More information2. Lexical Analysis! Prof. O. Nierstrasz!
2. Lexical Analysis! Prof. O. Nierstrasz! Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes.! http://www.cs.ucla.edu/~palsberg/! http://www.cs.purdue.edu/homes/hosking/!
More informationPatterns in Software Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 14 Reengineering Patterns Part 2 1 Reengineering Patterns: Detecting Duplicated Code 2 Detecting Duplicated Code: Compare Code Mechanically
More informationIntermediate Algebra. Gregg Waterman Oregon Institute of Technology
Intermediate Algebra Gregg Waterman Oregon Institute of Technology c 2017 Gregg Waterman This work is licensed under the Creative Commons Attribution 4.0 International license. The essence of the license
More informationCS558 Programming Languages Winter 2013 Lecture 8
OBJECT-ORIENTED PROGRAMMING CS558 Programming Languages Winter 2013 Lecture 8 Object-oriented programs are structured in terms of objects: collections of variables ( fields ) and functions ( methods ).
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 informationDatabase Management System Prof. Partha Pratim Das Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur
Database Management System Prof. Partha Pratim Das Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture - 19 Relational Database Design (Contd.) Welcome to module
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 informationComputer Science Applications to Cultural Heritage. Relational Databases
Computer Science Applications to Cultural Heritage Relational Databases Filippo Bergamasco (filippo.bergamasco@unive.it) http://www.dais.unive.it/~bergamasco DAIS, Ca Foscari University of Venice Academic
More informationRelational Design: Characteristics of Well-designed DB
1. Minimal duplication Relational Design: Characteristics of Well-designed DB Consider table newfaculty (Result of F aculty T each Course) Id Lname Off Bldg Phone Salary Numb Dept Lvl MaxSz 20000 Cotts
More informationFundamentals of Database Systems
Fundamentals of Database Systems Assignment: 3 Due Date: 23st August, 2017 Instructions This question paper contains 15 questions in 6 pages. Q1: Consider the following relation and its functional dependencies,
More informationConcurrency Control CHAPTER 17 SINA MERAJI
Concurrency Control CHAPTER 17 SINA MERAJI Announcement Sign up for final project presentations here: https://docs.google.com/spreadsheets/d/1gspkvcdn4an3j3jgtvduaqm _x4yzsh_jxhegk38-n3k/edit#gid=0 Deadline
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 informationCSCI 403: Databases 13 - Functional Dependencies and Normalization
CSCI 403: Databases 13 - Functional Dependencies and Normalization Introduction The point of this lecture material is to discuss some objective measures of the goodness of a database schema. The method
More informationObject-Oriented Software Engineering Practical Software Development using UML and Java
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical
More information6. Intermediate Representation!
6. Intermediate Representation! Prof. O. Nierstrasz! Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes.! http://www.cs.ucla.edu/~palsberg/!
More informationMatching Algorithms. Proof. If a bipartite graph has a perfect matching, then it is easy to see that the right hand side is a necessary condition.
18.433 Combinatorial Optimization Matching Algorithms September 9,14,16 Lecturer: Santosh Vempala Given a graph G = (V, E), a matching M is a set of edges with the property that no two of the edges have
More informationTopics in Object-Oriented Design Patterns
Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;
More informationFMA901F: Machine Learning Lecture 6: Graphical Models. Cristian Sminchisescu
FMA901F: Machine Learning Lecture 6: Graphical Models Cristian Sminchisescu Graphical Models Provide a simple way to visualize the structure of a probabilistic model and can be used to design and motivate
More information/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Approximation algorithms Date: 11/27/18
601.433/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Approximation algorithms Date: 11/27/18 22.1 Introduction We spent the last two lectures proving that for certain problems, we can
More informationLecture 7: Efficient Collections via Hashing
Lecture 7: Efficient Collections via Hashing These slides include material originally prepared by Dr. Ron Cytron, Dr. Jeremy Buhler, and Dr. Steve Cole. 1 Announcements Lab 6 due Friday Lab 7 out tomorrow
More informationInheritance and Polymorphism
Inheritance and Polymorphism Inheritance (Continued) Polymorphism Polymorphism by inheritance Polymorphism by interfaces Reading for this lecture: L&L 10.1 10.3 1 Interface Hierarchies Inheritance can
More informationDesign Theory for Relational Databases
Design Theory for Relational Databases csc343, fall 2014 Diane Horton University of Toronto Originally based on slides by Jeff Ullman 1 Introduction There are always many different schemas for a given
More informationChapter 3B Objectives. Relational Set Operators. Relational Set Operators. Relational Algebra Operations
Chapter 3B Objectives Relational Set Operators Learn About relational database operators SELECT & DIFFERENCE PROJECT & JOIN UNION PRODUCT INTERSECT DIVIDE The Database Meta Objects the data dictionary
More informationCpt S 122 Data Structures. Course Review Midterm Exam # 2
Cpt S 122 Data Structures Course Review Midterm Exam # 2 Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Midterm Exam 2 When: Monday (11/05) 12:10 pm -1pm
More informationM301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism
Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze
More informationFlow Graph Theory. Depth-First Ordering Efficiency of Iterative Algorithms Reducible Flow Graphs
Flow Graph Theory Depth-First Ordering Efficiency of Iterative Algorithms Reducible Flow Graphs 1 Roadmap Proper ordering of nodes of a flow graph speeds up the iterative algorithms: depth-first ordering.
More informationyqgm_std_rules documentation (Version 1)
yqgm_std_rules documentation (Version 1) Feng Shao Warren Wong Tony Novak Computer Science Department Cornell University Copyright (C) 2003-2005 Cornell University. All Rights Reserved. 1. Introduction
More informationLecture Notes on Contracts
Lecture Notes on Contracts 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 30, 2012 1 Introduction For an overview the course goals and the mechanics and schedule of the course,
More informationUse of Model Driven Engineering in Building Generic FCA/RCA Tools
Use of Model Driven Engineering in Building Generic FCA/RCA Tools J.-R. Falleri 1, G. Arévalo 2, M. Huchard 1, and C. Nebut 1 1 LIRMM, CNRS and Université de Montpellier 2, 161, rue Ada, 34392 Montpellier
More informationThe Object Model Overview. Contents. Section Title
The Object Model 1 This chapter describes the concrete object model that underlies the CORBA architecture. The model is derived from the abstract Core Object Model defined by the Object Management Group
More informationLecture 11 - Chapter 8 Relational Database Design Part 1
CMSC 461, Database Management Systems Spring 2018 Lecture 11 - Chapter 8 Relational Database Design Part 1 These slides are based on Database System Concepts 6th edition book and are a modified version
More informationIs Power State Table Golden?
Is Power State Table Golden? Harsha Vardhan #1, Ankush Bagotra #2, Neha Bajaj #3 # Synopsys India Pvt. Ltd Bangalore, India 1 dhv@synopsys.com 2 ankushb@synopsys.com 3 nehab@synopsys.com Abstract: Independent
More informationBeyond Counting. Owen Kaser. September 17, 2014
Beyond Counting Owen Kaser September 17, 2014 1 Introduction Combinatorial objects such as permutations and combinations are frequently studied from a counting perspective. For instance, How many distinct
More informationQuery Processing & Optimization
Query Processing & Optimization 1 Roadmap of This Lecture Overview of query processing Measures of Query Cost Selection Operation Sorting Join Operation Other Operations Evaluation of Expressions Introduction
More informationSemantic Analysis. Lecture 9. February 7, 2018
Semantic Analysis Lecture 9 February 7, 2018 Midterm 1 Compiler Stages 12 / 14 COOL Programming 10 / 12 Regular Languages 26 / 30 Context-free Languages 17 / 21 Parsing 20 / 23 Extra Credit 4 / 6 Average
More information/ Approximation Algorithms Lecturer: Michael Dinitz Topic: Linear Programming Date: 2/24/15 Scribe: Runze Tang
600.469 / 600.669 Approximation Algorithms Lecturer: Michael Dinitz Topic: Linear Programming Date: 2/24/15 Scribe: Runze Tang 9.1 Linear Programming Suppose we are trying to approximate a minimization
More informationRelational design algorithms
lecture 9: Relational design algorithms course: Database Systems (NDBI025) doc. RNDr. Tomáš Skopal, Ph.D. SS2011/12 Department of Software Engineering, Faculty of Mathematics and Physics, Charles University
More informationTHREE LECTURES ON BASIC TOPOLOGY. 1. Basic notions.
THREE LECTURES ON BASIC TOPOLOGY PHILIP FOTH 1. Basic notions. Let X be a set. To make a topological space out of X, one must specify a collection T of subsets of X, which are said to be open subsets of
More informationCS211 Lecture: Database Querying and Updating
CS211 Lecture: Database Querying and Updating last revised 9/30/2004 Objectives: 1. To introduce the relational algebra. 2. To introduce the SQL select statement 3. To introduce the SQL insert, update,
More informationCompiler Structure. Data Flow Analysis. Control-Flow Graph. Available Expressions. Data Flow Facts
Compiler Structure Source Code Abstract Syntax Tree Control Flow Graph Object Code CMSC 631 Program Analysis and Understanding Fall 2003 Data Flow Analysis Source code parsed to produce AST AST transformed
More informationLecture 3 Local Optimizations, Intro to SSA
Lecture 3 Local Optimizations, Intro to SSA I. Basic blocks & Flow graphs II. Abstraction 1: DAG III. Abstraction 2: Value numbering IV. Intro to SSA ALSU 8.4-8.5, 6.2.4 Phillip B. Gibbons 15-745: Local
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 informationDatabase Technology Introduction. Heiko Paulheim
Database Technology Introduction Outline The Need for Databases Data Models Relational Databases Database Design Storage Manager Query Processing Transaction Manager Introduction to the Relational Model
More informationRelational Database Design (II)
Relational Database Design (II) 1 Roadmap of This Lecture Algorithms for Functional Dependencies (cont d) Decomposition Using Multi-valued Dependencies More Normal Form Database-Design Process Modeling
More informationSoftware Architectures. Lecture 6 (part 1)
Software Architectures Lecture 6 (part 1) 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements
More information2.2 Syntax Definition
42 CHAPTER 2. A SIMPLE SYNTAX-DIRECTED TRANSLATOR sequence of "three-address" instructions; a more complete example appears in Fig. 2.2. This form of intermediate code takes its name from instructions
More informationAcknowledgement: The slides were kindly lent by Doc. RNDr. Tomas Skopal, Ph.D., Department of Software Engineering, Charles University in Prague
course: Database Systems (A7B36DBS) Doc. RNDr. Irena Holubova, Ph.D. Acknowledgement: The slides were kindly lent by Doc. RNDr. Tomas Skopal, Ph.D., Department of Software Engineering, Charles University
More informationDesign Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1
What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns
More informationlooking ahead to see the optimum
! Make choice based on immediate rewards rather than looking ahead to see the optimum! In many cases this is effective as the look ahead variation can require exponential time as the number of possible
More informationAppendix 1. Description Logic Terminology
Appendix 1 Description Logic Terminology Franz Baader Abstract The purpose of this appendix is to introduce (in a compact manner) the syntax and semantics of the most prominent DLs occurring in this handbook.
More informationWorking with recursion. From definition to template. Readings: HtDP, sections 11, 12, 13 (Intermezzo 2).
Working with recursion Readings: HtDP, sections 11, 12, 13 (Intermezzo 2). We can extend the idea of a self-referential definition to defining the natural numbers, which leads to the use of recursion in
More informationToday s topic CS347. Results list clustering example. Why cluster documents. Clustering documents. Lecture 8 May 7, 2001 Prabhakar Raghavan
Today s topic CS347 Clustering documents Lecture 8 May 7, 2001 Prabhakar Raghavan Why cluster documents Given a corpus, partition it into groups of related docs Recursively, can induce a tree of topics
More informationAdvanced Programming - JAVA Lecture 4 OOP Concepts in JAVA PART II
Advanced Programming - JAVA Lecture 4 OOP Concepts in JAVA PART II Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Ad hoc-polymorphism Outline Method overloading Sub-type Polymorphism Method overriding Dynamic
More informationChapter 3 Complexity of Classical Planning
Lecture slides for Automated Planning: Theory and Practice Chapter 3 Complexity of Classical Planning Dana S. Nau CMSC 722, AI Planning University of Maryland, Spring 2008 Licensed under the Creative Commons
More informationWorking with recursion
Working with recursion Readings: HtDP, sections 11, 12, 13 (Intermezzo 2). We can extend the idea of a self-referential definition to defining the natural numbers, which leads to the use of recursion in
More informationLecture Notes for Chapter 2: Getting Started
Instant download and all chapters Instructor's Manual Introduction To Algorithms 2nd Edition Thomas H. Cormen, Clara Lee, Erica Lin https://testbankdata.com/download/instructors-manual-introduction-algorithms-2ndedition-thomas-h-cormen-clara-lee-erica-lin/
More informationWelcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas
Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas What is this class about? While this class is called Design Patterns, there are many other items of critical
More informationAppendix 1. Description Logic Terminology
Appendix 1 Description Logic Terminology Franz Baader Abstract The purpose of this appendix is to introduce (in a compact manner) the syntax and semantics of the most prominent DLs occurring in this handbook.
More informationDisjoint Sets. The obvious data structure for disjoint sets looks like this.
CS61B Summer 2006 Instructor: Erin Korber Lecture 30: 15 Aug. Disjoint Sets Given a set of elements, it is often useful to break them up or partition them into a number of separate, nonoverlapping groups.
More informationUnit 4 Relational Algebra (Using SQL DML Syntax): Data Manipulation Language For Relations Zvi M. Kedem 1
Unit 4 Relational Algebra (Using SQL DML Syntax): Data Manipulation Language For Relations 2016 Zvi M. Kedem 1 Relational Algebra in Context User Level (View Level) Community Level (Base Level) Physical
More information