A Summary of Out of the Tar Pit

Size: px
Start display at page:

Download "A Summary of Out of the Tar Pit"

Transcription

1 A Summary of Out of the Tar Pit Introduction This document summarises some points from the paper Out of the Tar Pit (written by Ben Moseley and Peter Marks, dated 6 th February 2006) which are relevant to the development of the RAQUEL DBMS. The paper is split into 2 parts. The first considers the problem of Complexity, the single major difficulty in the successful development of large-scale software systems (quote), its common causes and a general approach to eliminating the causes. The second part considers the relational model (not SQL) as an example of the successful application of their general approach. Since the intention is to build a DBMS that implements the relational model, this summary considers only the first part. A DBMS is a large-scale software system. Therefore it is helpful to summarise the common causes of complexity and how to eliminate complexity with a view to applying this understanding to the building of the RAQUEL DBMS. Essence and Accident Out of the Tar Pit distinguishes between essential difficulty and accidental difficulty as defined in Frederick P. Brooks paper No Silver Bullet Essence and Accident in Software Engineering. Brooks definitions are : Essential Difficulties Those inherent in the nature of software, the fashioning of the complex conceptual structures that compose the abstract software entity. Accidental Difficulties Those that today attend its production but are not inherent, the representation of those abstract entities in programming languages, and the mapping of these onto machine languages within space and speed constraints. Complexity Complexity is considered to be the root cause of the vast majority of problems with software today. The relevance of complexity is widely recognised. Complexity is caused by : State Quoting Brooks : From the complexity comes the difficulty of enumerating, much less understanding, all the possible states of the program. However Moseley and Marks believe it is the presence of many possible states which give rise to the complexity; i.e. the large number of states is the causal factor. Control Control is about the order in which things happen (and includes concurrency). Programming languages force a far more detailed concern Page 1 of 6

2 about the order than is usually desirable or necessary. Only the relative order needs to be correct, but usually a precise detailed order must be specified. The relative order may be defined as follows. For a sequence of items, s, containing items x and y, x s, y s ( x Precede y ) ( Pos(x) < Pos(y) ) where Precede and Pos(ition) are functions with the obvious semantics. Code Volume This is considered to be caused by the state and control problems. Complexity Breeds Complexity In other words, complex systems generate more complexity in the attempt to manage the initial complexity. Simplicity is Hard This is now increasingly acknowledged 1. Classical Approaches to Managing Complexity Object-Orientation OO is treated as essentially an Abstract Data Type approach to imperative programming, with integrity constraints over an object s states being applied by access methods. The following problems arising with integrity constraints. Firstly, if several object procedures access the same part of the object s state, then they are all need to enforce the integrity constraints. Secondly, it is awkward to enforce multi-object integrity constraints (as opposed to single-entity constraints). OO has both intensional identity (i.e. its object identity) and extensional identity (determined by the values of its attributes). This complicates the states to be considered. OO uses traditional control flow mechanisms. Therefore OO suffers from state-derived and control-derived complexity. Functional Programming The primary strength of functional programming, in its pure form, is that it avoids state and side effects, and provides referential transparency. This means that a given set of input values to a function always results in the same set of output values from the function. By avoiding state, functional programming avoids all the weaknesses that stem from it. However functions can pass parameters through themselves, thereby undermining their statelessness. The order in which functions appear in expressions applies control sequencing. However this can be ameliorated by the use of high level functions (e.g. fold, map) to apply control. 1 In passing, it is the author s opinion that not only is simplicity hard to achieve, it is hard to understand simplicity and what simplicity is to be achieved; also when the resulting simplicity is obvious with hindsight, the hard work is not appreciated by one s peers. Page 2 of 6

3 The weakness of functional programming stems from its strength, because some systems include state as part of their very nature, and so this must be permitted in the system s program code. Logic Programming Pure logic programming specifies what needs to be done (as a set of axioms which describe the problem, and the attributes of the solution), and leaves the infrastructure to derive the solution (by using the axioms to prove the solution value). As a result, pure logic programming avoids states. Unfortunately, a lot of control features are built in. These are the implicit ordering of sub-goals in statements, and the implicit of ordering of clause application via the statement sequence. Often in practice, this needs to be supplemented by extra-logical features (e.g. Prolog s cut facility) to prevent non-termination of the proofs. The logic programming paradigm does not lend itself to the development of many computer systems. Accidents and Essence Moseley and Marks use these terms in a similar way to Brooks, but start with the complexity of the user s problem. Thus their terms are defined as follows : Essential Complexity That which is inherent to the logic of the user s problem, even in an ideal world. Anything of which the user is unaware cannot be essential complexity. Accidental Complexity All the other complexity, which would not exist in an ideal world. In practice it arises from performance problems, sub-optimal programming languages and infrastructure, etc, which the software developers have to deal with to produce a user-acceptable working system. The complexity concerned is that with which software developers have to contend. Brooks and others suggest that the complexity of software is an essential property, not an accidental one. Moseley and Marks contend that complexity is not necessarily an inherent, essential property of software, and that much of today s complexity is accidental. Moseley and Marks suggest that systems contain both essential and accidental complexity, and that the goal of software engineering is to eliminate as much accidental complexity as possible and to assist with essential complexity. Determining Essential and Accidental Complexity In the ideal world, developments start with a formally specified version of the user s requirements for their system. These are essential requirements. No accidental aspects can be allowed in the formal specification. As a Page 3 of 6

4 consequence, no aspects of the specification can include any aspect of its execution; i.e. no performance requirements, no ease-of-use requirements, no infrastructure requirements, etc 2. Ideally one should just be able to execute the user s (functional) specification. It is hoped that most system state in the ideal world is accidental and can be got rid of. Data that is part of the user s requirements is essential. Not all of that data may give rise to essential state. All data in the system is either input or derived from input. Derived data is either immutable or mutable (because the users can update that data). Input Data User-required input data is essential. It falls into 2 cases : 1. Data which the system may need to refer to in future. This gives rise to essential state. 2. Data which is never referenced in future. Such data need not be kept. Essential Derived Data Immutable This can always be re-derived from essential state data that has been input. Ideally it need not be kept. If kept in practice, it gives rise to accidental state. Essential Derived Data Mutable This can always be re-derived from essential state data that has been input if the function carrying out the mutation has an inverse function. If the mutating function has no inverse, then changes to the data have to be considered as input. If needed in future, this gives rise to essential state. Accidental Derived Data State which is derived but not in the user s requirements is accidental state. Data Classifications :- Data Essentiality Data Type Data Mutability Classification Essential Input - Essential State Essential Derived Immutable Accidental State Essential Derived Mutable Accidental State Accidental Derived - Accidental State The classification Accidental State means that in the ideal world the corresponding data can be excluded from the system. The implication of the above is that there are large amounts of accidental state in typical systems, which ideally would be removed. 2 Traditionally the essential requirements were called Functional Requirements, and any other requirements (performance, ease-of-use, infrastructure, etc) were called Non-Functional Requirements. Page 4 of 6

5 Ideally the only system state is that which is visible to the user and part of their specification. Control in the Ideal World Control can generally be completely omitted from the ideal world, and hence is entirely accidental. This is because it rarely appears in the user s formal specification of their requirements. Summary Most complexity is accidental. Therefore it may be possible to significantly reduce the complexity of real large systems. How close is it possible to get to the ideal? Theoretical and Practical Limitations There may in practice be a fuzzy boundary between what is essential and what is accidental, but the distinction is still viable and worthwhile. Systems limited to essentiality may be too inefficient to be practical. Therefore accidental components may be need to be included for efficiency. Situations can arise where derived data is dependent on both initial input values and a later series of user input values. (This is normally true of the value of a DB). To achieve ease of expression and usage (of say the DB) for the user, it is preferable to maintain the current accidental state and treat it as if it were essential state, even in the ideal world. Thus some accidental complexity may need to be added to provide acceptable performance and ease of use/expression. The recommended strategy for dealing with complexity is : 1. Avoid. Accept only essential complexity. 2. Separate. Where accidental complexity is required for performance or ease of use, separate it out in order to better manage it. These recommendations are not new, but not typically applied to the development of today s software. It is recommended that the accidental complexity required for performance reasons is put into a completely separate infrastructure that handles performance and is separate from the essential complexity. It is recommended that the accidental complexity required for ease of use is treated as essential complexity and separated as discussed below. Separation takes 2 forms : 1. Separate all complexity of any kind from the pure logic of the system. (Logic is not considered to have anything to do with either state or control, and therefore not part of the complexity). This may be called the Logic/State split. 2. Divide the retained complexity into the essential and accidental. This may be called the Essential/Accidental split. Page 5 of 6

6 3. Split the state and control components of the Useful Accidental Complexity system component. The following table summarises the recommendations :- Complexity Type Recommendation Essential Complexity State Separate Essential Logic - Separate Useful Accidental Complexity State Separate Useful Accidental Complexity Control Separate Not-Useful Accidental Complexity State / Control Avoid The differing nature of the 4 components to be retained but kept separate from each other leads to the following relationships between them : Essential State This is the foundation of the system and is self-contained. It makes no reference to other parts of the system. Changes here may require changes to other parts of the system, but changes to other parts of the system never require changes here. This component drives the entire system. Essential Logic This is the heart of the system. It expresses in terms of state what must be true. It makes no reference to the accidental components of the system. Changes to the Essential State may require changes here. Changes here may require changes to the accidental components of the system, but changes to the accidental components of the system never require changes here. Accidental State and Control These components support the essential components. Changes here never affect the essential components. Changes to the essential components may affect these components. Summary A system should be split into the 4 non-avoidable components described above. The goals of avoid and separate must be at the top of the design agenda for a system, not merely desirable constraints. There should be no premature optimisation or designing for performance ; i.e. the design should be as simple as possible and only made more complicated when hot-spot analysis of performance reveals what optimisation is actually needed. Improving the performance of a simple, slow system is far easier than removing complexity from a complex system, which probably is not as fast as intended anyway. Page 6 of 6

State, Concurrency & Complexity. Does programming really need to be so hard?

State, Concurrency & Complexity. Does programming really need to be so hard? State, Concurrency & Complexity Does programming really need to be so hard? Objectives - explain how complexity impacts software - distinguish between necessary and accidental complexity - identify ways

More information

Functional Programming in Java. CSE 219 Department of Computer Science, Stony Brook University

Functional Programming in Java. CSE 219 Department of Computer Science, Stony Brook University Functional Programming in Java CSE 219, Stony Brook University What is functional programming? There is no single precise definition of functional programming (FP) We should think of it as a programming

More information

RAQUEL s Relational Operators

RAQUEL s Relational Operators Contents RAQUEL s Relational Operators Introduction 2 General Principles 2 Operator Parameters 3 Ordinary & High-Level Operators 3 Operator Valency 4 Default Tuples 5 The Relational Algebra Operators in

More information

The goal of the Pangaea project, as we stated it in the introduction, was to show that

The goal of the Pangaea project, as we stated it in the introduction, was to show that Chapter 5 Conclusions This chapter serves two purposes. We will summarize and critically evaluate the achievements of the Pangaea project in section 5.1. Based on this, we will then open up our perspective

More information

The Logical Design of the Tokeniser

The Logical Design of the Tokeniser Page 1 of 21 The Logical Design of the Tokeniser Purpose 1. To split up a character string holding a RAQUEL statement expressed in linear text, into a sequence of character strings (called word tokens),

More information

Memory model for multithreaded C++: August 2005 status update

Memory model for multithreaded C++: August 2005 status update Document Number: WG21/N1876=J16/05-0136 Date: 2005-08-26 Reply to: Hans Boehm Hans.Boehm@hp.com 1501 Page Mill Rd., MS 1138 Palo Alto CA 94304 USA Memory model for multithreaded C++: August 2005 status

More information

Addressing Verification Bottlenecks of Fully Synthesized Processor Cores using Equivalence Checkers

Addressing Verification Bottlenecks of Fully Synthesized Processor Cores using Equivalence Checkers Addressing Verification Bottlenecks of Fully Synthesized Processor Cores using Equivalence Checkers Subash Chandar G (g-chandar1@ti.com), Vaideeswaran S (vaidee@ti.com) DSP Design, Texas Instruments India

More information

Lecture 10: Introduction to Correctness

Lecture 10: Introduction to Correctness Lecture 10: Introduction to Correctness Aims: To look at the different types of errors that programs can contain; To look at how we might detect each of these errors; To look at the difficulty of detecting

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014

More information

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER The Bizarre Truth! Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER By Kimmo Nupponen 1 TABLE OF CONTENTS 1. The context Introduction 2. The approach Know the difference

More information

Introduction to the UML

Introduction to the UML c02.qxd p039-048 11/15/01 5:37 PM Page 39 CHAPTER 2 Introduction to the UML Why should I use the UML? What can it contribute to my software development effort? To effectively utilize any technology, we

More information

Incompatibility Dimensions and Integration of Atomic Commit Protocols

Incompatibility Dimensions and Integration of Atomic Commit Protocols The International Arab Journal of Information Technology, Vol. 5, No. 4, October 2008 381 Incompatibility Dimensions and Integration of Atomic Commit Protocols Yousef Al-Houmaily Department of Computer

More information

Chapter 3: Dynamic Testing Techniques

Chapter 3: Dynamic Testing Techniques Chapter 3: Dynamic Testing Techniques " The system was not fully tested to a satisfactory level of quality and resilience before full implementation on 26 October 1992." Extract from the main conclusions

More information

Stored Relvars 18 th April 2013 (30 th March 2001) David Livingstone. Stored Relvars

Stored Relvars 18 th April 2013 (30 th March 2001) David Livingstone. Stored Relvars Stored Relvars Introduction The purpose of a Stored Relvar (= Stored Relational Variable) is to provide a mechanism by which the value of a real (or base) relvar may be partitioned into fragments and/or

More information

Deep Integration of Scripting Languages and Semantic Web Technologies

Deep Integration of Scripting Languages and Semantic Web Technologies Deep Integration of Scripting Languages and Semantic Web Technologies Denny Vrandečić Institute AIFB, University of Karlsruhe, Germany denny@aifb.uni-karlsruhe.de Abstract. Python reached out to a wide

More information

Illustrative Example of Logical Database Creation

Illustrative Example of Logical Database Creation Illustrative Example of Logical Database Creation A small RAQUEL DB is created to illustrate what is involved as regards the logical schemas of a RAQUEL DB. Create a Database or ExampleDB

More information

Is Functional Programming (FP) for me? ACCU Conference 2008 Hubert Matthews

Is Functional Programming (FP) for me? ACCU Conference 2008 Hubert Matthews Is Functional Programming (FP) for me? ACCU Conference 2008 Hubert Matthews hubert@oxyware.com Overview of talk History of computing Types of problem, developers, solution, environments, managers Pros

More information

"Relations for Relationships"

Relations for Relationships M359 An explanation from Hugh Darwen "Relations for Relationships" This note might help those who have struggled with M359's so-called "relation for relationship" method of representing, in a relational

More information

Out of the Tar Pit. 1 Introduction. Peter Marks Ben Moseley February 6, 2006

Out of the Tar Pit. 1 Introduction. Peter Marks Ben Moseley February 6, 2006 Out of the Tar Pit Ben Moseley ben@moseley.name Peter Marks public@indigomail.net February 6, 2006 Abstract Complexity is the single major di culty in the successful development of large-scale software

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Lecture 02. Fall 2017 Borough of Manhattan Community College

Lecture 02. Fall 2017 Borough of Manhattan Community College Lecture 02 Fall 2017 Borough of Manhattan Community College 1 2 Introduction A major aim of a database system is to provide users with an abstract view of data, hiding certain details of how data is stored

More information

MULTIMEDIA TECHNOLOGIES FOR THE USE OF INTERPRETERS AND TRANSLATORS. By Angela Carabelli SSLMIT, Trieste

MULTIMEDIA TECHNOLOGIES FOR THE USE OF INTERPRETERS AND TRANSLATORS. By Angela Carabelli SSLMIT, Trieste MULTIMEDIA TECHNOLOGIES FOR THE USE OF INTERPRETERS AND TRANSLATORS By SSLMIT, Trieste The availability of teaching materials for training interpreters and translators has always been an issue of unquestionable

More information

Taxonomies and controlled vocabularies best practices for metadata

Taxonomies and controlled vocabularies best practices for metadata Original Article Taxonomies and controlled vocabularies best practices for metadata Heather Hedden is the taxonomy manager at First Wind Energy LLC. Previously, she was a taxonomy consultant with Earley

More information

administrivia today UML start design patterns Tuesday, September 28, 2010

administrivia today UML start design patterns Tuesday, September 28, 2010 administrivia Assignment 2? promise to get past assignment 1 back soon exam on monday review slides are posted your responsibility to review covers through last week today UML start design patterns 1 Unified

More information

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 20 Concurrency Control Part -1 Foundations for concurrency

More information

On Constraint Problems with Incomplete or Erroneous Data

On Constraint Problems with Incomplete or Erroneous Data On Constraint Problems with Incomplete or Erroneous Data Neil Yorke-Smith and Carmen Gervet IC Parc, Imperial College, London, SW7 2AZ, U.K. nys,cg6 @icparc.ic.ac.uk Abstract. Real-world constraint problems

More information

Illustrative Example of Logical Database Creation

Illustrative Example of Logical Database Creation Illustrative Example of Logical Database Creation A small RAQUEL DB is created to illustrate what is involved as regards the logical schemas of a RAQUEL DB. Create a Database or ExampleDB

More information

Safety Case Composition Using Contracts - Refinements based on Feedback from an Industrial Case Study

Safety Case Composition Using Contracts - Refinements based on Feedback from an Industrial Case Study Safety Case Composition Using Contracts - Refinements based on Feedback from an Industrial Case Study Jane Fenn and Richard Hawkins BAE SYSTEMS, Brough, UK Phil Williams General Dynamics (United Kingdom)

More information

Chapter 3. Describing Syntax and Semantics

Chapter 3. Describing Syntax and Semantics Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:

More information

Cryptography and Network Security. Prof. D. Mukhopadhyay. Department of Computer Science and Engineering. Indian Institute of Technology, Kharagpur

Cryptography and Network Security. Prof. D. Mukhopadhyay. Department of Computer Science and Engineering. Indian Institute of Technology, Kharagpur Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Module No. # 01 Lecture No. # 38 A Tutorial on Network Protocols

More information

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No # 09 Lecture No # 40 This is lecture forty of the course on

More information

The Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets

The Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets Paper AD-08 The Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets Marcus Bloom, Amgen Inc, Thousand Oaks, CA David Edwards, Amgen Inc, Thousand Oaks, CA ABSTRACT From

More information

Goals of the BPEL4WS Specification

Goals of the BPEL4WS Specification Goals of the BPEL4WS Specification Frank Leymann, Dieter Roller, and Satish Thatte This note aims to set forward the goals and principals that formed the basis for the work of the original authors of the

More information

Arjuna Technologies Ltd is a world leading innovator in distributed computing and has an international reputation for delivering missioncritical products to global software vendors. Products developed

More information

Functional Programming. Ionut G. Stan - OpenAgile 2010

Functional Programming. Ionut G. Stan - OpenAgile 2010 Functional Programming Ionut G. Stan - OpenAgile 2010 Functional Programming what why how Functional Programming what why how What is FP a programming style What is FP a programming style conceptually

More information

Knowledge enrichment through dynamic annotation

Knowledge enrichment through dynamic annotation Knowledge enrichment through dynamic annotation Abstract This paper describes a technique for interceding between users and the information that they browse. This facility, that we term dynamic annotation,

More information

Propositional Logic. Part I

Propositional Logic. Part I Part I Propositional Logic 1 Classical Logic and the Material Conditional 1.1 Introduction 1.1.1 The first purpose of this chapter is to review classical propositional logic, including semantic tableaux.

More information

iserver Free Archimate ArchiMate 1.0 Template Stencil: Getting from Started Orbus Guide Software Thanks for Downloading the Free ArchiMate Template! Orbus Software have created a set of Visio ArchiMate

More information

THE RELATIONAL DATABASE MODEL

THE 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 information

Database Management System 2

Database Management System 2 Data Database Management System 2 Data Data Data Basic Building Hierarchical Network Relational Semi-structured School of Computer Engineering, KIIT University 2.1 Data Data Data Data Basic Building Data

More information

A Generalized Method to Solve Text-Based CAPTCHAs

A Generalized Method to Solve Text-Based CAPTCHAs A Generalized Method to Solve Text-Based CAPTCHAs Jason Ma, Bilal Badaoui, Emile Chamoun December 11, 2009 1 Abstract We present work in progress on the automated solving of text-based CAPTCHAs. Our method

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT EXAMINERS' REPORT

BCS THE CHARTERED INSTITUTE FOR IT. BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT EXAMINERS' REPORT BCS THE CHARTERED INSTITUTE FOR IT BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT March 2016 EXAMINERS' REPORT Programming Paradigms General comments on candidates'

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES 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 information

CHAPTER 2: DATA MODELS

CHAPTER 2: DATA MODELS CHAPTER 2: DATA MODELS 1. A data model is usually graphical. PTS: 1 DIF: Difficulty: Easy REF: p.36 2. An implementation-ready data model needn't necessarily contain enforceable rules to guarantee the

More information

Software Testing CS 408

Software Testing CS 408 Software Testing CS 408 1/09/18 Course Webpage: http://www.cs.purdue.edu/homes/suresh/408-spring2018 1 The Course Understand testing in the context of an Agile software development methodology - Detail

More information

IMAGE/SQL: Part 3 of N

IMAGE/SQL: Part 3 of N IMAGE/SQL: Part 3 of N Fred White Adager Corporation Sun Valley, Idaho 83353-3000 USA http://www.adager.com In Part 2 of N, I discussed global defects in the program IMAG- ESQL.PUB.SYS (IMAGESQL) which

More information

Evaluation of Visual Fabrique (VF)

Evaluation of Visual Fabrique (VF) Evaluation of Visual Fabrique (VF) Dr Peter Lappo www.smr.co.uk Scope and Method This is a review of Visual Fabrique (VF) V1.0.371 EAP Release. In order to conduct this evaluation I followed the tutorial

More information

CHAPTER 2: DATA MODELS

CHAPTER 2: DATA MODELS Database Systems Design Implementation and Management 12th Edition Coronel TEST BANK Full download at: https://testbankreal.com/download/database-systems-design-implementation-andmanagement-12th-edition-coronel-test-bank/

More information

Relational Theory and Data Independence: Unfinished Business. Logical Data Independence and the CREATE VIEW Statement.

Relational Theory and Data Independence: Unfinished Business. Logical Data Independence and the CREATE VIEW Statement. Relational Theory and Data Independence: Unfinished Business. Dr. Tom Johnston Much has been made of the data independence that relational technology is said to provide. And indeed, much has been accomplished

More information

CS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013

CS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013 CS252 Advanced Programming Language Principles Prof. Tom Austin San José State University Fall 2013 What are some programming languages? Why are there so many? Different domains Mobile devices (Objective

More information

Lecture2: Database Environment

Lecture2: Database Environment College of Computer and Information Sciences - Information Systems Dept. Lecture2: Database Environment 1 IS220 : D a t a b a s e F u n d a m e n t a l s Topics Covered Data abstraction Schemas and Instances

More information

Side Effects (3B) Young Won Lim 11/20/17

Side Effects (3B) Young Won Lim 11/20/17 Side Effects (3B) Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later

More information

Fifth Generation CS 4100 LISP. What do we need? Example LISP Program 11/13/13. Chapter 9: List Processing: LISP. Central Idea: Function Application

Fifth Generation CS 4100 LISP. What do we need? Example LISP Program 11/13/13. Chapter 9: List Processing: LISP. Central Idea: Function Application Fifth Generation CS 4100 LISP From Principles of Programming Languages: Design, Evaluation, and Implementation (Third Edition, by Bruce J. MacLennan, Chapters 9, 10, 11, and based on slides by Istvan Jonyer

More information

Distributed Consensus Protocols

Distributed Consensus Protocols Distributed Consensus Protocols ABSTRACT In this paper, I compare Paxos, the most popular and influential of distributed consensus protocols, and Raft, a fairly new protocol that is considered to be a

More information

Side Effects (3B) Young Won Lim 11/23/17

Side Effects (3B) Young Won Lim 11/23/17 Side Effects (3B) Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later

More information

Flash Drive Emulation

Flash Drive Emulation Flash Drive Emulation Eric Aderhold & Blayne Field aderhold@cs.wisc.edu & bfield@cs.wisc.edu Computer Sciences Department University of Wisconsin, Madison Abstract Flash drives are becoming increasingly

More information

6. The Document Engineering Approach

6. The Document Engineering Approach 6. The Document Engineering Approach DE + IA (INFO 243) - 11 February 2008 Bob Glushko 1 of 40 Plan for Today's Class Modeling Methodologies The Document Engineering Approach 2 of 40 What Modeling Methodologies

More information

COMP 410 Lecture 1. Kyle Dewey

COMP 410 Lecture 1. Kyle Dewey COMP 410 Lecture 1 Kyle Dewey About Me I research automated testing techniques and their intersection with CS education My dissertation used logic programming extensively This is my second semester at

More information

Side Effects (3B) Young Won Lim 11/27/17

Side Effects (3B) Young Won Lim 11/27/17 Side Effects (3B) Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later

More information

Lecturer 4: File Handling

Lecturer 4: File Handling Lecturer 4: File Handling File Handling The logical and physical organisation of files. Serial and sequential file handling methods. Direct and index sequential files. Creating, reading, writing and deleting

More information

AXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop

AXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop AXIOMS OF AN IMPERATIVE LANGUAGE We will use the same language, with the same abstract syntax that we used for operational semantics. However, we will only be concerned with the commands, since the language

More information

The Potential for Blockchain to Transform Electronic Health Records ARTICLE TECHNOLOGY. by John D. Halamka, MD, Andrew Lippman and Ariel Ekblaw

The Potential for Blockchain to Transform Electronic Health Records ARTICLE TECHNOLOGY. by John D. Halamka, MD, Andrew Lippman and Ariel Ekblaw REPRINT H03I15 PUBLISHED ON HBR.ORG MARCH 03, 2017 ARTICLE TECHNOLOGY The Potential for Blockchain to Transform Electronic Health Records by John D. Halamka, MD, Andrew Lippman and Ariel Ekblaw This article

More information

CMPT 354 Database Systems I

CMPT 354 Database Systems I CMPT 354 Database Systems I Chapter 2 Entity Relationship Data Modeling Data models A data model is the specifications for designing data organization in a system. Specify database schema using a data

More information

Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their

Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their products. These companies are promoting a new, extended version

More information

Distribution From: J. A. Weeldreyer Date: April 5, 1978 Subject: Enhancements to the Multics Data Base Manager

Distribution From: J. A. Weeldreyer Date: April 5, 1978 Subject: Enhancements to the Multics Data Base Manager Multics Technical Bulletin To: Distribution From: J. A. Weeldreyer Date: April 5, 1978 Subject: Enhancements to the Multics Data Base Manager Introduction With the advent of MR6.0, the Multics Data Base

More information

Compilers Project Proposals

Compilers Project Proposals Compilers Project Proposals Dr. D.M. Akbar Hussain These proposals can serve just as a guide line text, it gives you a clear idea about what sort of work you will be doing in your projects. Still need

More information

Creating SQL Tables and using Data Types

Creating SQL Tables and using Data Types Creating SQL Tables and using Data Types Aims: To learn how to create tables in Oracle SQL, and how to use Oracle SQL data types in the creation of these tables. Outline of Session: Given a simple database

More information

Database Management Systems MIT Introduction By S. Sabraz Nawaz

Database Management Systems MIT Introduction By S. Sabraz Nawaz Database Management Systems MIT 22033 Introduction By S. Sabraz Nawaz Recommended Reading Database Management Systems 3 rd Edition, Ramakrishnan, Gehrke Murach s SQL Server 2008 for Developers Any book

More information

Message-Passing and MPI Programming

Message-Passing and MPI Programming Message-Passing and MPI Programming More on Point-to-Point 6.1 Introduction N.M. Maclaren nmm1@cam.ac.uk July 2010 These facilities are the most complicated so far, but you may well want to use them. There

More information

Lecture 2: Software Engineering (a review)

Lecture 2: Software Engineering (a review) Lecture 2: Software Engineering (a review) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture is

More information

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism

M301: 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 information

0. Database Systems 1.1 Introduction to DBMS Information is one of the most valuable resources in this information age! How do we effectively and efficiently manage this information? - How does Wal-Mart

More information

Database Fundamentals Chapter 1

Database Fundamentals Chapter 1 Database Fundamentals Chapter 1 Class 01: Database Fundamentals 1 What is a Database? The ISO/ANSI SQL Standard does not contain a definition of the term database. In fact, the term is never mentioned

More information

Essay Question: Explain 4 different means by which constrains are represented in the Conceptual Data Model (CDM).

Essay Question: Explain 4 different means by which constrains are represented in the Conceptual Data Model (CDM). Question 1 Essay Question: Explain 4 different means by which constrains are represented in the Conceptual Data Model (CDM). By specifying participation conditions By specifying the degree of relationship

More information

CSE373: Data Structure & Algorithms Lecture 23: Programming Languages. Aaron Bauer Winter 2014

CSE373: Data Structure & Algorithms Lecture 23: Programming Languages. Aaron Bauer Winter 2014 CSE373: Data Structure & Algorithms Lecture 23: Programming Languages Aaron Bauer Winter 2014 Choosing a Programming Language Most of the time you won t have a choice about what programming language to

More information

2. An implementation-ready data model needn't necessarily contain enforceable rules to guarantee the integrity of the data.

2. An implementation-ready data model needn't necessarily contain enforceable rules to guarantee the integrity of the data. Test bank for Database Systems Design Implementation and Management 11th Edition by Carlos Coronel,Steven Morris Link full download test bank: http://testbankcollection.com/download/test-bank-for-database-systemsdesign-implementation-and-management-11th-edition-by-coronelmorris/

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

Refinement and Optimization of Streaming Architectures. Don Batory and Taylor Riché Department of Computer Science University of Texas at Austin

Refinement and Optimization of Streaming Architectures. Don Batory and Taylor Riché Department of Computer Science University of Texas at Austin Refinement and Optimization of Streaming Architectures Don Batory and Taylor Riché Department of Computer Science University of Texas at Austin 1 Introduction Model Driven Engineering (MDE) is paradigm

More information

Chapter 3B Objectives. Relational Set Operators. Relational Set Operators. Relational Algebra Operations

Chapter 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 information

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Ratko Orlandic Department of Computer Science and Applied Math Illinois Institute of Technology

More information

The Design Patterns Matrix From Analysis to Implementation

The Design Patterns Matrix From Analysis to Implementation The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley

More information

Design Patterns

Design Patterns The Joel Test (Joel On Software) Do you use source control? SVN Can you make a build in one step? make or IDE Do you make daily builds? N/A Do you have a bug database? N/A or is it? Do you fix bugs before

More information

Part I Logic programming paradigm

Part I Logic programming paradigm Part I Logic programming paradigm 1 Logic programming and pure Prolog 1.1 Introduction 3 1.2 Syntax 4 1.3 The meaning of a program 7 1.4 Computing with equations 9 1.5 Prolog: the first steps 15 1.6 Two

More information

Database Design. IIO30100 Tietokantojen suunnittelu. Michal Zabovsky. Presentation overview

Database Design. IIO30100 Tietokantojen suunnittelu. Michal Zabovsky. Presentation overview Database Design IIO30100 Tietokantojen suunnittelu Michal Zabovsky Department of Informatics Faculty of Management Science and Informatics University of Zilina Slovak Republic Presentation overview Software

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 5 Structured Query Language Hello and greetings. In the ongoing

More information

Architectural Styles I

Architectural Styles I Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts

More information

ARiSA First Contact Analysis

ARiSA First Contact Analysis ARiSA First Contact Analysis Applied Research In System Analysis - ARiSA You cannot control what you cannot measure Tom DeMarco Software Grail Version 1.3 Programming Language Java 1.4 Date 2 nd of December,

More information

Database Management System (15ECSC208) UNIT I: Chapter 1: Introduction to DBMS and ER-Model

Database Management System (15ECSC208) UNIT I: Chapter 1: Introduction to DBMS and ER-Model Database Management System (15ECSC208) UNIT I: Chapter 1: Introduction to DBMS and ER-Model Introduction to Databases Introduction Database: collection of related data. Data: know facts that can be recorded

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

Incompatibility Dimensions and Integration of Atomic Commit Protocols

Incompatibility Dimensions and Integration of Atomic Commit Protocols Preprint Incompatibility Dimensions and Integration of Atomic Protocols, Yousef J. Al-Houmaily, International Arab Journal of Information Technology, Vol. 5, No. 4, pp. 381-392, October 2008. Incompatibility

More information

Principles of Programming Languages

Principles of Programming Languages Principles of Programming Languages www.cs.bgu.ac.il/~ppl172 Collaboration and Management Dana Fisman Lesson 5 - Data Types and Operations on Data 1 Types - what we already know Types define sets of values

More information

Object-Oriented Introduction

Object-Oriented Introduction Object-Oriented Introduction Or: Your Honor, I Object... Jonathan Sprinkle 1 University of Arizona Department of Electrical and Computer Engineering PO Box 210104, Tucson, AZ 85721, USA August 22, 2012

More information

6.001 Notes: Section 6.1

6.001 Notes: Section 6.1 6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of

More information

Concurrency Control. Chapter 17. Comp 521 Files and Databases Fall

Concurrency 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 information

Data about data is database Select correct option: True False Partially True None of the Above

Data about data is database Select correct option: True False Partially True None of the Above Within a table, each primary key value. is a minimal super key is always the first field in each table must be numeric must be unique Foreign Key is A field in a table that matches a key field in another

More information

Integrating Systems with Event Driven Architecture. Eoin Woods

Integrating Systems with Event Driven Architecture. Eoin Woods Integrating Systems with Event Driven Architecture Eoin Woods www.eoinwoods.info About Me Software architect at UBS Investment Bank responsible for synthetic equity platform Software architect for ~10

More information

6.001 Notes: Section 31.1

6.001 Notes: Section 31.1 6.001 Notes: Section 31.1 Slide 31.1.1 In previous lectures we have seen a number of important themes, which relate to designing code for complex systems. One was the idea of proof by induction, meaning

More information

Approximating Square Roots

Approximating Square Roots Math 560 Fall 04 Approximating Square Roots Dallas Foster University of Utah u0809485 December 04 The history of approximating square roots is one of the oldest examples of numerical approximations found.

More information

CSc 372. Comparative Programming Languages. 2 : Functional Programming. Department of Computer Science University of Arizona

CSc 372. Comparative Programming Languages. 2 : Functional Programming. Department of Computer Science University of Arizona 1/37 CSc 372 Comparative Programming Languages 2 : Functional Programming Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2013 Christian Collberg 2/37 Programming Paradigms

More information