A Summary of Out of the Tar Pit
|
|
- Brittney Oliver
- 5 years ago
- Views:
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? Objectives - explain how complexity impacts software - distinguish between necessary and accidental complexity - identify ways
More informationFunctional 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 informationRAQUEL 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 informationThe 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 informationThe 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 informationMemory 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 informationAddressing 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 informationLecture 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 informationConcepts 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 informationThe 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 informationIntroduction 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 informationIncompatibility 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 informationChapter 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 informationStored 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 informationDeep 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 informationIllustrative 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 informationIs 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"
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 informationOut 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 informationChapter 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 informationLecture 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 informationMULTIMEDIA 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 informationTaxonomies 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 informationadministrivia 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 informationDatabase 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 informationOn 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 informationIllustrative 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 informationSafety 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 informationChapter 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 informationCryptography 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 informationHigh 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 informationThe 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 informationGoals 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 informationArjuna 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 informationFunctional 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 informationKnowledge 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 informationPropositional 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 informationiserver 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 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 informationDatabase 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 informationA 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 informationBCS 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 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 informationCHAPTER 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 informationSoftware 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 informationIMAGE/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 informationEvaluation 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 informationCHAPTER 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 informationRelational 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 informationCS252 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 informationLecture2: 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 informationSide 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 informationFifth 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 informationDistributed 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 informationSide 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 informationFlash 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 information6. 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 informationCOMP 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 informationSide 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 informationLecturer 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 informationAXIOMS 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 informationThe 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 informationCMPT 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 informationSeveral 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 informationDistribution 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 informationCompilers 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 informationCreating 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 informationDatabase 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 informationMessage-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 informationLecture 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 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 information0. 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 informationDatabase 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 informationEssay 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 informationCSE373: 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 information2. 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 information1. 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 informationRefinement 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 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 informationIntroducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence
Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Ratko Orlandic Department of Computer Science and Applied Math Illinois Institute of Technology
More informationThe 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 informationDesign 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 informationPart 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 informationDatabase 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 information6.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 informationDatabase 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 informationArchitectural 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 informationARiSA 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 informationDatabase 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 informationAOSA - 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 informationIncompatibility 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 informationPrinciples 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 informationObject-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 information6.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 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 informationData 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 informationIntegrating 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 information6.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 informationApproximating 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 informationCSc 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