Design Principles & Prac4ces

Size: px
Start display at page:

Download "Design Principles & Prac4ces"

Transcription

1 Design Principles & Prac4ces Robert France Robert B. France 1 Understanding complexity Accidental versus Essen4al complexity Essen%al complexity: Complexity that is inherent in the problem or the solu4on Example: Wri4ng sojware that controls a plane while in flight Accidental complexity: Complexity that is introduced as a result of lack of adequate tools, languages and development environments Example: Hand crajing large sojware systems Similar to ancient Egyp4an building the great pyramids; or ancient Chinese building the Great Wall it can be done, but requires significant effort and resources. Challenge: How do we manage essen4al complexity and minimize accidental complexity during design? Robert B. France 2 1

2 Design Principles Design principles capture experience related to tackling complexity Principles are the basis for sojware design methods and techniques Methods and techniques are ojen packaged in a methodology (e.g., Fusion OO methodology developed by HP) Methodologies can be enforced by tools Major design principles Separa4on of concerns, Design for change, Reusability, Generality, Incrementality Robert B. France 3 Separa4on of Concerns Principle Allows one to solve problems by solving sub- problems. Can result in separa4on of responsibili4es Basis for dividing work into work assignments that can be carried out in a rela4vely independent manner. Robert B. France 4 2

3 Types of Concerns Separa&on in Time: eliminates overhead arising from ac4vity switching Separa&on by Quali&es: focus on a par4cular quality at any given 4me, e.g., focus on geeng system correct before improving performance Separa&on by Views: allows different views to be analyzed separately, e.g., class model and use case views. Robert B. France 5 Modularity Separa4on of parts: 2 aspects Decomposi4on: decomposing a complex system/ problem Composi4on/Synthesis: synthesizing a system from exis4ng modules Proper modularity helps: Confine search for errors Limit the impact of change A design is described in terms of modular units and the rela4onships between the units Modular units are referred to as modules Robert B. France 6 3

4 Types of modules Examples of modular units (modules): Design- level modular units Subsystems Components Design classes Code- level modular units PL classes (e.g., Java classes, C++ classes) Func4onal modules (e.g., C func4ons, Pascal procedures, Modula 2 modules) A design is a graph of modular units. Modules: func4onal abstrac4on, object, data pool. Rela4onships: uses, is a part of, message passing, procedure call Robert B. France 7 Abstrac4on Process of focusing on important aspects while ignoring irrelevant detail. In SE design models are abstrac4ons of code Func&onal abstrac&on: Implementa4on of func4onal concept is hidden from user Given a sine func4on we know the number and types of inputs to provide and the type of output produced Data abstrac&on: Details of data implementa4on hidden from user Abstract Data Type: type defined solely in terms of opera4ons that manipulate instances of type Robert B. France 8 4

5 Design for Change Principle An4cipate how systems will evolve and design to accommodate change. Lack of aken4on to this principle can result in changes that make system unstructured and difficult to understand and maintain. Plan for changes in the technology or environment so the sojware will con4nue to run or can be easily changed Avoid using early releases of technology, sojware libraries that are specific to par4cular environments, undocumented features or li=le- used features of so?ware libraries, sojware or special hardware from companies that are less likely to provide long- term support Use standard languages and technologies that are supported by mul4ple vendors Robert B. France 9 Design For Change - 2 What can change? algorithms, data representa4ons, hardware planorm, social environment Techniques Informa%on hiding: a module reveals only what is needed from it by other modules. Encapsula%on: informa4on about a single concept is localized in one module. Robert B. France 10 5

6 Reuse Principle Design the various aspects of your system so that they can be used again in other contexts Generalize your design as much as possible Follow the preceding three design principles Design your system to contain hooks Simplify your design as much as possible Robert B. France 11 Generality Principle Concerns iden4fying a general problem from a specific problem. General problem may be less complex. Solving general problem increases poten4al for reuse. Success of tools such as word- processors, spreadsheets akributed to their generality Increased likelihood that problem may be solved by an exis4ng package Robert B. France 12 6

7 Incrementality Principle Concerned with incremental development of sojware. Desired goal is reached by successively closer approxima4ons. Each approxima4on (version) is reached by an increment of the previous approxima4on. Robert B. France 13 More on modularity - Building designs with good modular structure A good design should have modules with high cohesion, and low coupling between modules Cohesion: The degree of interac4on within a module Coupling: The degree of interac4on between two modules Reflects the degree to which a module s behavior is dependent on another module s behavior. Robert B. France 14 7

8 Module Cohesion Degree of cohesion can range from coincidental cohesion (worst case) to Func4onal or Informa4onal cohesion (best case). Coincidental cohesion: Module performs mul4ple, unrelated ac4ons. Example module: Read in average rainfall, calculate average, read in temperatures, output temperatures, Problems: Difficult to maintain, cannot reuse, difficult to understand Logical cohesion: Module performs a set of related ac4ons, one of which is selected by the client. Example: Module that performs all I/O; code for all I/O; code for input only; code for output only; code for disk I/O; code for tape I/O; code for keyboard input; Problems: Difficult to understand interface, difficult to maintain, difficult to reuse Robert B. France 15 Cohesion - 2 Temporal cohesion: Module performs a series of ac4ons that are related in 4me Example module: Open master file, open transac4on file, print file, ini4alize sales table, read transac4on record, Problems: Impact of change not likely to be localized, difficult to reuse Procedural cohesion: Module performs a series of ac4ons related by the sequence of steps to be carried out. Example module: Read part number from database, update repair record, write updated record to database, Problems: Difficult to reuse, Parts are weakly related Communica%onal cohesion: Module performs a series of ac4ons related by the sequence of steps to be carried out and all ac4ons are performed on the same data. Example module: read record, update record, write record Problem: Difficult to reuse Robert B. France 16 8

9 Cohesion - 3 Informa%onal cohesion: Module performs a set of ac4ons related to a data structure Example module: A Stack ADT Benefits: Localizes informa4on around data structure; Facilitates reuse of data structures Func%onal cohesion: Module performs only one ac4on or has a single func4onal task. Robert B. France 17 Cohesion Examples Examples of modules with their degree of cohesion indicated Compute average daily temperatures at various sites (functional) Initialize sums and open files (coincidental) Create new Temperature record (functional) Store temperature record (functional) Close Files and print average temperatures (coincidental) read in site, time, temperature (functional) store record for specific site (functional) edit site, time or temperature field (logical) Robert B. France 18 9

10 Coupling Range from content coupling (worst case) to data coupling (best case) Content coupling: When a module M1 directly references the contents of module M2, content coupling exists. Examples: M1 branches to a sec4on of code in M2; M3 modifies a statement in M4 Problem: Changes to M2 requires that M1 be examined for possible changes. Common coupling: When modules M1 and M2 have access to the same global data then common coupling occurs. Example: func4ons/procedures accessing global variables Problems: Difficult to reuse modules (global variables will have to be supplied when reused); Side effects occur; Change to global data requires change to all modules that access the data; A module may be exposed to more data than it needs Robert B. France 19 Common Coupling (Problems) Code not easy to read Module M while (global_data == 0) { } if (x > 25) module3(); else module4(); What is global_data??? Robert B. France 20 10

11 Control Coupling Control coupling: When a module M1 passes a control element to module M2 control coupling occurs. Control element tells M2 what ac4on to take; M1 controls behavior of M2 Module M1 sends a control message to M2 that means I am unable to complete task b; generate the error code p Note that control passing is different than data passing; if the message means I am unable to complete task b then this is data passing because the signal does not mandate the ac4on M2 must take when it receives the message. Problems: Modules are not independent; a module controls the behavior of another module; if M1 sends a control message to M2 then module M1 must be aware of M2 s internal structure and logic Robert B. France 21 Stamp & Data Coupling Stamp coupling: When a module M1 passes a data structure to M2, but M2 uses only part of the data in the structure, stamp coupling occurs. Example: Passing a pointer to a record structure that contains more data than is required Problem: Module M2 is exposed to more data than it needs. Data coupling: When a module M1 sends only the data needed by module M2, data coupling occurs Desired form of coupling Robert B. France 22 11

12 Design Strategies Func4onal Decomposi4on Develop solu4on in a top- down manner Focus is on defining system services Object Composi4on Develop solu4on by composing objects Focus is on defining objects and their opera4ons Robert B. France 23 Func4onal Decomposi4on Process Architectural Design: Decompose solu4on into subsystems that are func4onal abstrac4ons and define their interfaces. Abstract Specifica4on: Specify the services provided in each interface. Specified in terms of pre- and post- condi4ons Detailed Design: Decompose subsystems into func4onal modules Specify algorithms, data structures for leaf modules Robert B. France 24 12

13 Object- Oriented Design Process Architectural Design: Group objects into subsystems and define interfaces between subsystems. Sta4c view: Define rela4onships between subsystems Behavioral view: Define services in interfaces and interac4ons between subsystems Robert B. France 25 Object- Oriented Design Process - 2 Detailed Design: Define how services defined in subsystem interfaces are carried out by objects in subsystems Develop class diagrams Develop behavioral models Define methods Robert B. France 26 13

14 What s next? Describing behavior using sequence diagrams Valida4on & Verifica4on Design pakerns Robert B. France 27 14

Object Oriented Design (OOD): The Concept

Object Oriented Design (OOD): The Concept Object Oriented Design (OOD): The Concept Objec,ves To explain how a so8ware design may be represented as a set of interac;ng objects that manage their own state and opera;ons 1 Topics covered Object Oriented

More information

RDD and Strategy Pa.ern

RDD and Strategy Pa.ern RDD and Strategy Pa.ern CSCI 3132 Summer 2011 1 OO So1ware Design The tradi7onal view of objects is that they are data with methods. Smart Data. But, it is be.er to think of them as en##es that have responsibili#es.

More information

Design pa*erns. Based on slides by Glenn D. Blank

Design pa*erns. Based on slides by Glenn D. Blank Design pa*erns Based on slides by Glenn D. Blank Defini6ons A pa#ern is a recurring solu6on to a standard problem, in a context. Christopher Alexander, a professor of architecture Why would what a prof

More information

A formal design process, part 2

A formal design process, part 2 Principles of So3ware Construc9on: Objects, Design, and Concurrency Designing (sub-) systems A formal design process, part 2 Josh Bloch Charlie Garrod School of Computer Science 1 Administrivia Midterm

More information

Principles of So3ware Construc9on. A formal design process, part 2

Principles of So3ware Construc9on. A formal design process, part 2 Principles of So3ware Construc9on Design (sub- )systems A formal design process, part 2 Josh Bloch Charlie Garrod School of Computer Science 1 Administrivia Midterm exam Thursday Review session Wednesday,

More information

SQLite with a Fine-Toothed Comb. John Regehr Trust-in-So1 / University of Utah

SQLite with a Fine-Toothed Comb. John Regehr Trust-in-So1 / University of Utah SQLite with a Fine-Toothed Comb John Regehr Trust-in-So1 / University of Utah Feasible states for a system we care about No execu

More information

Design Pa*erns. Philippe Collet. Master 1 IFI Interna3onal h8p://dep3nfo.unice.fr/twiki/bin/view/minfo/soeeng1213. P.

Design Pa*erns. Philippe Collet. Master 1 IFI Interna3onal h8p://dep3nfo.unice.fr/twiki/bin/view/minfo/soeeng1213. P. Design Pa*erns Philippe Collet Master 1 IFI Interna3onal 2012-2013 h8p://dep3nfo.unice.fr/twiki/bin/view/minfo/soeeng1213 P. Collet 1 Agenda Introduc3on First example Principles and classifica3on Presenta3on

More information

L6: System design: behavior models

L6: System design: behavior models L6: System design: behavior models Limita6ons of func6onal decomposi6on Behavior models State diagrams Flow charts Data flow diagrams En6ty rela6onship diagrams Unified Modeling Language Capstone design

More information

Architectural Requirements Phase. See Sommerville Chapters 11, 12, 13, 14, 18.2

Architectural Requirements Phase. See Sommerville Chapters 11, 12, 13, 14, 18.2 Architectural Requirements Phase See Sommerville Chapters 11, 12, 13, 14, 18.2 1 Architectural Requirements Phase So7ware requirements concerned construc>on of a logical model Architectural requirements

More information

UNIT II Requirements Analysis and Specification & Software Design

UNIT II Requirements Analysis and Specification & Software Design UNIT II Requirements Analysis and Specification & Software Design Requirements Analysis and Specification Many projects fail: because they start implementing the system: without determining whether they

More information

From Module To Objects

From Module To Objects From Module To Objects It is very difficult to maintain a large monolithic block of code The solution is to divide the code into smaller pieces, called modules What is a Module? A small and manageable

More information

CMPSC 24: Lecture 1 So4ware Development Process

CMPSC 24: Lecture 1 So4ware Development Process CMPSC 24: Lecture 1 So4ware Development Process Divyakant Agrawal Department of Computer Science UC Santa Barbara Syllabus and other course informaion hjp://www.cs.ucsb.edu/~agrawal/spring2010/ cmpsc24.html

More information

So#ware Engineering I. Based on materials by Ken Birman, Cornell

So#ware Engineering I. Based on materials by Ken Birman, Cornell So#ware Engineering I Based on materials by Ken Birman, Cornell 1 So#ware Engineering The art by which we start with a problem statement and gradually evolve a solu@on There are whole books on this topic

More information

Component diagrams. Components Components are model elements that represent independent, interchangeable parts of a system.

Component diagrams. Components Components are model elements that represent independent, interchangeable parts of a system. Component diagrams Components Components are model elements that represent independent, interchangeable parts of a system. Components are more abstract than classes and can be considered to be stand- alone

More information

What were his cri+cisms? Classical Methodologies:

What were his cri+cisms? Classical Methodologies: 1 2 Classifica+on In this scheme there are several methodologies, such as Process- oriented, Blended, Object Oriented, Rapid development, People oriented and Organisa+onal oriented. According to David

More information

10/7/15. MediaItem tostring Method. Objec,ves. Using booleans in if statements. Review. Javadoc Guidelines

10/7/15. MediaItem tostring Method. Objec,ves. Using booleans in if statements. Review. Javadoc Guidelines Objec,ves Excep,ons Ø Wrap up Files Streams MediaItem tostring Method public String tostring() { String classname = getclass().tostring(); StringBuilder rep = new StringBuilder(classname); return rep.tostring();

More information

Vulnerability Analysis (III): Sta8c Analysis

Vulnerability Analysis (III): Sta8c Analysis Computer Security Course. Vulnerability Analysis (III): Sta8c Analysis Slide credit: Vijay D Silva 1 Efficiency of Symbolic Execu8on 2 A Sta8c Analysis Analogy 3 Syntac8c Analysis 4 Seman8cs- Based Analysis

More information

A PSyclone perspec.ve of the big picture. Rupert Ford STFC Hartree Centre

A PSyclone perspec.ve of the big picture. Rupert Ford STFC Hartree Centre A PSyclone perspec.ve of the big picture Rupert Ford STFC Hartree Centre Requirement I Maintainable so,ware maintain codes in a way that subject ma7er experts can s:ll modify the code Leslie Hart from

More information

An ontology of resources for Linked Data

An ontology of resources for Linked Data An ontology of resources for Linked Data Harry Halpin and Valen8na Presu: LDOW @ WWW2009 Madrid, April 20th Outline Premises and background Proposal overview Some details of IRW ontology Simple applica8on

More information

RTP Taxonomy & Rela.onships

RTP Taxonomy & Rela.onships RTP Taxonomy & Rela.onships dra%- lennox- raiarea- rtp- grouping- taxonomy- 03 IETF 88 @Authors 1 Changes Since - 02 Major re- write Sec.on 2, Concepts, re- structured to a conceptual media chain with

More information

Chunking: An Empirical Evalua3on of So7ware Architecture (?)

Chunking: An Empirical Evalua3on of So7ware Architecture (?) Chunking: An Empirical Evalua3on of So7ware Architecture (?) Rachana Koneru David M. Weiss Iowa State University weiss@iastate.edu rachana.koneru@gmail.com With participation by Audris Mockus, Jeff St.

More information

MapReduce, Apache Hadoop

MapReduce, Apache Hadoop NDBI040: Big Data Management and NoSQL Databases hp://www.ksi.mff.cuni.cz/ svoboda/courses/2016-1-ndbi040/ Lecture 2 MapReduce, Apache Hadoop Marn Svoboda svoboda@ksi.mff.cuni.cz 11. 10. 2016 Charles University

More information

Founda'ons of So,ware Engineering. Lecture 11 Intro to QA, Tes2ng Claire Le Goues

Founda'ons of So,ware Engineering. Lecture 11 Intro to QA, Tes2ng Claire Le Goues Founda'ons of So,ware Engineering Lecture 11 Intro to QA, Tes2ng Claire Le Goues 1 Learning goals Define so;ware analysis. Reason about QA ac2vi2es with respect to coverage and coverage/adequacy criteria,

More information

ques4ons? Midterm Projects, etc. Path- Based Sta4c Analysis Sta4c analysis we know Example 11/20/12

ques4ons? Midterm Projects, etc. Path- Based Sta4c Analysis Sta4c analysis we know Example 11/20/12 Midterm Grades and solu4ons are (and have been) on Moodle The midterm was hard[er than I thought] grades will be scaled I gave everyone a 10 bonus point (already included in your total) max: 98 mean: 71

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 8 Introduc

More information

Trust Eleva,on Architecture v03

Trust Eleva,on Architecture v03 Trust Eleva,on Architecture v03 DISCUSSION DRAFT 2015-01- 27 Andrew Hughes 1 Purpose of this presenta,on To alempt to explain the Trust Eleva,on mechanism as a form of ALribute Based Access Control To

More information

Clinical Metadata A complete metadata and project management solu6on. October 2017 Andrew Ndikom and Liang Wang

Clinical Metadata A complete metadata and project management solu6on. October 2017 Andrew Ndikom and Liang Wang A complete metadata and project management solu6on. October 2017 Andrew Ndikom and Liang Wang 1 Agenda How is metadata currently managed within the industry? Five key problems with current approaches.

More information

Encapsula)on CMSC 202

Encapsula)on CMSC 202 Encapsula)on CMSC 202 Types of Programmers Class creators Those developing new classes Want to build classes that expose the minimum interface necessary for the client program and hide everything else

More information

Crea?ng Cloud Apps with Oracle Applica?on Builder Cloud Service

Crea?ng Cloud Apps with Oracle Applica?on Builder Cloud Service Crea?ng Cloud Apps with Oracle Applica?on Builder Cloud Service Shay Shmeltzer Director of Product Management Oracle Development Tools and Frameworks @JDevShay hpp://blogs.oracle.com/shay This App you

More information

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6 Trying to deal with something big all at once is normally much harder than dealing with a series of smaller things Separate people can work on each part. An individual software engineer can specialize.

More information

Recap on SDLC Phases & Artefacts

Recap on SDLC Phases & Artefacts Prepared by Shahliza Abd Halim Recap on SDLC Phases & Artefacts Domain Analysis @ Business Process Domain Model (Class Diagram) Requirement Analysis 1) Functional & Non-Functional requirement 2) Use Case

More information

RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0

RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0 software development simplified RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0 Eric Westfall - Indiana University JASIG 2011 For those who don t know Kuali Rice consists of mul8ple sub-

More information

MapReduce, Apache Hadoop

MapReduce, Apache Hadoop Czech Technical University in Prague, Faculty of Informaon Technology MIE-PDB: Advanced Database Systems hp://www.ksi.mff.cuni.cz/~svoboda/courses/2016-2-mie-pdb/ Lecture 12 MapReduce, Apache Hadoop Marn

More information

Database design and implementation CMPSCI 645. Lectures 18: Transactions and Concurrency

Database design and implementation CMPSCI 645. Lectures 18: Transactions and Concurrency Database design and implementation CMPSCI 645 Lectures 18: Transactions and Concurrency 1 DBMS architecture Query Parser Query Rewriter Query Op=mizer Query Executor Lock Manager Concurrency Control Access

More information

INFO/CS 4302 Web Informa6on Systems

INFO/CS 4302 Web Informa6on Systems INFO/CS 4302 Web Informa6on Systems FT 2012 Week 7: RESTful Webservice APIs - Bernhard Haslhofer - 2 3 4 Source: hmp://www.blogperfume.com/new- 27- circular- social- media- icons- in- 3- sizes/ 5 Plan

More information

VHDL: Concurrent Coding vs. Sequen7al Coding. 1

VHDL: Concurrent Coding vs. Sequen7al Coding. 1 VHDL: Concurrent Coding vs. Sequen7al Coding talarico@gonzaga.edu 1 Concurrent Coding Concurrent = parallel VHDL code is inherently concurrent Concurrent statements are adequate only to code at a very

More information

Object Oriented Programming. Feb 2015

Object Oriented Programming. Feb 2015 Object Oriented Programming Feb 2015 Tradi7onally, a program has been seen as a recipe a set of instruc7ons that you follow from start to finish in order to complete a task. That approach is some7mes known

More information

CORPORATE PRESENTATION

CORPORATE PRESENTATION CORPORATE PRESENTATION Background on device detec/on (1/2) Identifying the capabilities of a device accessing web contents has been an extensively explored issue in the past years, in particular in the

More information

CMPS 20 Game Design Experience

CMPS 20 Game Design Experience CMPS 20 Game Design Experience Winter 2013 Week 4/5: Design Patterns Computational Cinematics Studio // Center for Games and Playable Media http://games.soe.ucsc.edu/ccs // http://games.soe.ucsc.edu Arnav

More information

Project: Embedded SMC

Project: Embedded SMC Project: Embedded SMC What is Secure Computa1on [SMC] A Compute f(a, B) Without revealing A to Bob and B to Alice B 2 Using a Trusted Third Party A B f(a, B) f(a, B) A Compute f(a, B) Without revealing

More information

JUnit tes)ng. Elisa Turrini

JUnit tes)ng. Elisa Turrini JUnit tes)ng Elisa Turrini Automated Tes)ng Code that isn t tested doesn t work Code that isn t regression tested suffers from code rot (breaks eventually) If it is not automated it is not done! Boring

More information

Preliminary ACTL-SLOW Design in the ACS and OPC-UA context. G. Tos? (19/04/2016)

Preliminary ACTL-SLOW Design in the ACS and OPC-UA context. G. Tos? (19/04/2016) Preliminary ACTL-SLOW Design in the ACS and OPC-UA context G. Tos? (19/04/2016) Summary General Introduc?on to ACS Preliminary ACTL-SLOW proposed design Hardware device integra?on in ACS and ACTL- SLOW

More information

UNIT V: CENTRAL PROCESSING UNIT

UNIT V: CENTRAL PROCESSING UNIT UNIT V: CENTRAL PROCESSING UNIT Agenda Basic Instruc1on Cycle & Sets Addressing Instruc1on Format Processor Organiza1on Register Organiza1on Pipeline Processors Instruc1on Pipelining Co-Processors RISC

More information

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan COSC 310: So*ware Engineering Dr. Bowen Hui University of Bri>sh Columbia Okanagan 1 Admin A2 is up Don t forget to keep doing peer evalua>ons Deadline can be extended but shortens A3 >meframe Labs This

More information

Secure Server Project. Xen Project Developer Summit 2013 Adven9um Labs Jason Sonnek

Secure Server Project. Xen Project Developer Summit 2013 Adven9um Labs Jason Sonnek Secure Server Project Xen Project Developer Summit 2013 Adven9um Labs Jason Sonnek 1 Outline I. Mo9va9on, Objec9ves II. Threat Landscape III. Design IV. Status V. Roadmap 2 Mo9va9on In a nutshell: Secure

More information

Cyber Security and Power System Communica4ons Essen4al Parts of a Smart Grid Infrastructure. Talal El Awar

Cyber Security and Power System Communica4ons Essen4al Parts of a Smart Grid Infrastructure. Talal El Awar Cyber Security and Power System Communica4ons Essen4al Parts of a Smart Grid Infrastructure Author: Goran N. Ericsson, Senior Member, IEEE Talal El Awar Submi.ed in Par3al Fulfillment of the Course Requirements

More information

Virtualization. Introduction. Why we interested? 11/28/15. Virtualiza5on provide an abstract environment to run applica5ons.

Virtualization. Introduction. Why we interested? 11/28/15. Virtualiza5on provide an abstract environment to run applica5ons. Virtualization Yifu Rong Introduction Virtualiza5on provide an abstract environment to run applica5ons. Virtualiza5on technologies have a long trail in the history of computer science. Why we interested?

More information

Chris9an Kästner Charlie Garrod

Chris9an Kästner Charlie Garrod Principles of So3ware Construc9on: Objects, Design, and Concurrency (Part 3: Design Case Studies) Introduc3on to GUIs Chris9an Kästner Charlie Garrod School of Computer Science 1 Administrivia Homework

More information

CSE Lecture 10: Modules and separate compila5on 18 Feb Nate Nystrom University of Texas at Arlington

CSE Lecture 10: Modules and separate compila5on 18 Feb Nate Nystrom University of Texas at Arlington CSE 5317 Lecture 10: Modules and separate compila5on 18 Feb 2010 Nate Nystrom University of Texas at Arlington Modules Key to building large sodware systems is ability to organize the program into modules

More information

Mastering Enterprise Metadata with Seman2c Modeling

Mastering Enterprise Metadata with Seman2c Modeling Unlocking the Power of Seman4c Knowledge Mastering Enterprise Metadata with Seman2c Modeling 1 Enterprise Metadata: The descrip4on of the organiza4onal context processes, roles, policies, products and

More information

Design Pa*erns. + Anima/on Undo/Redo Graphics and Hints

Design Pa*erns. + Anima/on Undo/Redo Graphics and Hints Design Pa*erns + Anima/on Undo/Redo Graphics and Hints Design Pa*erns Design: the planning that lays the basis for the making of every object or system Pa*ern: a type of theme of recurring events or objects

More information

Encapsula)on, cont d. Polymorphism, Inheritance part 1. COMP 401, Spring 2015 Lecture 7 1/29/2015

Encapsula)on, cont d. Polymorphism, Inheritance part 1. COMP 401, Spring 2015 Lecture 7 1/29/2015 Encapsula)on, cont d. Polymorphism, Inheritance part 1 COMP 401, Spring 2015 Lecture 7 1/29/2015 Encapsula)on In Prac)ce Part 2: Separate Exposed Behavior Define an interface for all exposed behavior In

More information

Mo#va#ng the OO Way. COMP 401, Fall 2017 Lecture 05

Mo#va#ng the OO Way. COMP 401, Fall 2017 Lecture 05 Mo#va#ng the OO Way COMP 401, Fall 2017 Lecture 05 Arrays Finishing up from last #me Mul#dimensional Arrays Mul#dimensional array is simply an array of arrays Fill out dimensions lef to right. int[][]

More information

The Meter-ON project. Marco Baron Enel Distribuzione. Steering the implementation of smart metering solutions throughout Europe

The Meter-ON project. Marco Baron Enel Distribuzione. Steering the implementation of smart metering solutions throughout Europe Steering the implementa.on of smart metering solu.ons throughout Europe The Meter-ON project Steering the implementation of smart metering solutions throughout Europe Session 47: Operational challenges

More information

System Modeling Environment

System Modeling Environment System Modeling Environment Requirements, Architecture and Implementa

More information

Approach starts with GEN and KILL sets

Approach starts with GEN and KILL sets b -Advanced-DFA Review of Data Flow Analysis State Propaga+on Computer Science 5-6 Fall Prof. L. J. Osterweil Material adapted from slides originally prepared by Prof. L. A. Clarke A technique for determining

More information

Chapter 4: Memory. Taylor & Francis Adair Dingle All Rights Reserved

Chapter 4: Memory. Taylor & Francis Adair Dingle All Rights Reserved Chapter 4: Memory Program Memory Overview Analysis of the impact of design on memory use Memory Abstrac9on Heap Memory Memory Overhead Memory Management Programmer s Perspec9ve Standard Views of Memory

More information

Architecture of So-ware Systems RMI and Distributed Components. Mar<n Rehák

Architecture of So-ware Systems RMI and Distributed Components. Mar<n Rehák Architecture of So-ware Systems RMI and Distributed Components Mar

More information

Net.info. A proposal for making network service informa6on easily available. Steven Bauer Slides from 2010 MIT

Net.info. A proposal for making network service informa6on easily available. Steven Bauer Slides from 2010 MIT Net.info A proposal for making network service informa6on easily available Steven Bauer Slides from 2010 MIT Problem No easy way to iden6fy network service informa6on Ini6al mo6va6on is to make very basic

More information

Ontology engineering. Valen.na Tamma. Based on slides by A. Gomez Perez, N. Noy, D. McGuinness, E. Kendal, A. Rector and O. Corcho

Ontology engineering. Valen.na Tamma. Based on slides by A. Gomez Perez, N. Noy, D. McGuinness, E. Kendal, A. Rector and O. Corcho Ontology engineering Valen.na Tamma Based on slides by A. Gomez Perez, N. Noy, D. McGuinness, E. Kendal, A. Rector and O. Corcho Summary Background on ontology; Ontology and ontological commitment; Logic

More information

Virtual Memory B: Objec5ves

Virtual Memory B: Objec5ves Virtual Memory B: Objec5ves Benefits of a virtual memory system" Demand paging, page-replacement algorithms, and allocation of page frames" The working-set model" Relationship between shared memory and

More information

Structure Patters: Bridge and Flyweight. CSCI 3132 Summer

Structure Patters: Bridge and Flyweight. CSCI 3132 Summer Structure Patters: Bridge and Flyweight CSCI 3132 Summer 2011 1 Introducing the Bridge Pa1ern Intent To decouple an abstrac7on from its implementa7on so that the two can vary independently. What does it

More information

Charlie Garrod Bogdan Vasilescu

Charlie Garrod Bogdan Vasilescu Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 3: Concurrency Introduc9on to concurrency, part 2 Concurrency primi9ves and challenges, con9nued Charlie Garrod Bogdan Vasilescu

More information

Homework 1 Simple code genera/on. Luca Della Toffola Compiler Design HS15

Homework 1 Simple code genera/on. Luca Della Toffola Compiler Design HS15 Homework 1 Simple code genera/on Luca Della Toffola Compiler Design HS15 1 Administra1ve issues Has everyone found a team- mate? Mailing- list: cd1@lists.inf.ethz.ch Please subscribe if we forgot you 2

More information

CS101: Fundamentals of Computer Programming. Dr. Tejada www-bcf.usc.edu/~stejada Week 8: Abstract Data Types

CS101: Fundamentals of Computer Programming. Dr. Tejada www-bcf.usc.edu/~stejada Week 8: Abstract Data Types CS101: Fundamentals of Computer Programming Dr. Tejada stejada@usc.edu www-bcf.usc.edu/~stejada Week 8: Abstract Data Types Object- Oriented Programming Model the applica6on/so9ware as a set of objects

More information

State- space search algorithm

State- space search algorithm Graph Search These are slides I usually use for teaching AI, but they offer another perspec;ve on BFS, DFS, and Dijkstra s algorithm. Ignore men;ons of a problem and simply consider that the search starts

More information

Principles of Programming Languages

Principles of Programming Languages Principles of Programming Languages h"p://www.di.unipi.it/~andrea/dida2ca/plp- 14/ Prof. Andrea Corradini Department of Computer Science, Pisa Lesson 18! Bootstrapping Names in programming languages Binding

More information

Introduc)on to So,ware Technology So#ware Quality

Introduc)on to So,ware Technology So#ware Quality Introduc)on to So,ware Technology So#ware Quality Klaus Ostermann Some slides on refactoring adapted from CS246 course at U Waterloo 1 So,ware Quality How can we maintain or improve the quality of so,ware?

More information

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422 The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements...no

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 12 Black Box Tes?ng CISC327-2003 2017 J.R. Cordy, S. Grant, J.S. Bradbury, J. Dunfield Black Box Tes?ng Outline Last?me we con?nued with black box tes?ng and

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 12 Black Box Tes?ng CISC327-2003 2017 J.R. Cordy, S. Grant, J.S. Bradbury, J. Dunfield Black Box Tes?ng Outline Last?me we con?nued with black box tes?ng and

More information

Building Control Algorithm for State Space Search

Building Control Algorithm for State Space Search Building Control Algorithm for State Space Search SCJ3553 Ar9ficial Intelligence Faculty of Computer Science and Informa9on Systems Universi9 Teknologi Malaysia Outline Recursion- based system Produc9on

More information

Cloud Data Management System (CDMS)

Cloud Data Management System (CDMS) Cloud Management System (CMS) Wiqar Chaudry Solu9ons Engineer Senior Advisor CMS Overview he OpenStack cloud data management system features a canonical data modeling framework designed to broker context

More information

Libraries are wri4en in C/C++ and compiled for the par>cular hardware.

Libraries are wri4en in C/C++ and compiled for the par>cular hardware. marakana.com 1 marakana.com 2 marakana.com 3 marakana.com 4 Libraries are wri4en in C/C++ and compiled for the par>cular hardware. marakana.com 5 The Dalvik virtual machine is a major piece of Google's

More information

Rethinking Path Valida/on. Russ White

Rethinking Path Valida/on. Russ White Rethinking Path Valida/on Russ White Reality Check Right now there is no US Government mandate to do anything A mandate in the origin authen9ca9on area is probably immanent A mandate in the path valida9on

More information

Language Shapes (Architectural) Thought Markus Völter

Language Shapes (Architectural) Thought Markus Völter Language Shapes (Architectural) Thought Markus Völter voelter@acm.org www.voelter.de @markusvoelter Language Shapes (Architectural) Thought Sapir Whorf hypothesis aka Whorfianism The principle of linguis;c

More information

Josh Bloch Charlie Garrod Darya Melicher

Josh Bloch Charlie Garrod Darya Melicher Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 1: Introduc9on Course overview and introduc9on to so3ware design Josh Bloch Charlie Garrod Darya Melicher 1 So3ware is everywhere

More information

Software Design. Software design is a blueprint or a plan for a computerbased solution for system

Software Design. Software design is a blueprint or a plan for a computerbased solution for system Software Design Software Design Software design is a blueprint or a plan for a computerbased solution for system Software design deals with transforming the customer requirements, as described by the SRS

More information

Lecture 4: Build Systems, Tar, Character Strings

Lecture 4: Build Systems, Tar, Character Strings CIS 330:! / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 4:

More information

Through Python. "Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura..." Dante Alighieri

Through Python. Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura... Dante Alighieri Through Python "Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura..." Dante Alighieri Syllabus Variables vs object Float representa2on The importance of syntax operator overloading built-in

More information

Josh Bloch Charlie Garrod Darya Melicher

Josh Bloch Charlie Garrod Darya Melicher Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 2: Class-level design Design paderns for reuse, part 2 Josh Bloch Charlie Garrod Darya Melicher 1 Administrivia Reading due today:

More information

So#ware Test and Analysis

So#ware Test and Analysis So#ware Test and Analysis Luciano Baresi Politecnico di Milano Leonardo Mariani (University of Milano Bicocca) Mo=va=ons So#ware systems permeate (almost) every aspect of our life So#ware is buggy In 2002

More information

RV: A Run'me Verifica'on Framework for Monitoring, Predic'on and Mining

RV: A Run'me Verifica'on Framework for Monitoring, Predic'on and Mining RV: A Run'me Verifica'on Framework for Monitoring, Predic'on and Mining Patrick Meredith Grigore Rosu University of Illinois at Urbana Champaign (UIUC) Run'me Verifica'on, Inc. (joint work with Dongyun

More information

Genericity. Philippe Collet. Master 1 IFI Interna3onal h9p://dep3nfo.unice.fr/twiki/bin/view/minfo/sofeng1314. P.

Genericity. Philippe Collet. Master 1 IFI Interna3onal h9p://dep3nfo.unice.fr/twiki/bin/view/minfo/sofeng1314. P. Genericity Philippe Collet Master 1 IFI Interna3onal 2013-2014 h9p://dep3nfo.unice.fr/twiki/bin/view/minfo/sofeng1314 P. Collet 1 Agenda Introduc3on Principles of parameteriza3on Principles of genericity

More information

W1005 Intro to CS and Programming in MATLAB. Brief History of Compu?ng. Fall 2014 Instructor: Ilia Vovsha. hip://www.cs.columbia.

W1005 Intro to CS and Programming in MATLAB. Brief History of Compu?ng. Fall 2014 Instructor: Ilia Vovsha. hip://www.cs.columbia. W1005 Intro to CS and Programming in MATLAB Brief History of Compu?ng Fall 2014 Instructor: Ilia Vovsha hip://www.cs.columbia.edu/~vovsha/w1005 Computer Philosophy Computer is a (electronic digital) device

More information

CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 32: Pipeline Parallelism 3

CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 32: Pipeline Parallelism 3 CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 32: Pipeline Parallelism 3 Instructor: Dan Garcia inst.eecs.berkeley.edu/~cs61c! Compu@ng in the News At a laboratory in São Paulo,

More information

Setting the stage... Key Design Issues. Main purpose - Manage software system complexity by improving software quality factors

Setting the stage... Key Design Issues. Main purpose - Manage software system complexity by improving software quality factors Setting the stage... Dr. Radu Marinescu 1 1946 Key Design Issues Main purpose - Manage software system complexity by...... improving software quality factors... facilitating systematic reuse Dr. Radu Marinescu

More information

more uml: sequence & use case diagrams

more uml: sequence & use case diagrams more uml: sequence & use case diagrams uses of uml as a sketch: very selec)ve informal and dynamic forward engineering: describe some concept you need to implement reverse engineering: explain how some

More information

Algorithms Lecture 11. UC Davis, ECS20, Winter Discrete Mathematics for Computer Science

Algorithms Lecture 11. UC Davis, ECS20, Winter Discrete Mathematics for Computer Science UC Davis, ECS20, Winter 2017 Discrete Mathematics for Computer Science Prof. Raissa D Souza (slides adopted from Michael Frank and Haluk Bingöl) Lecture 11 Algorithms 3.1-3.2 Algorithms Member of the House

More information

CSc 120. Introduc/on to Computer Programming II. 02: Problem Decomposi1on and Program Development. Adapted from slides by Dr.

CSc 120. Introduc/on to Computer Programming II. 02: Problem Decomposi1on and Program Development. Adapted from slides by Dr. CSc 120 Introduc/on to Computer Programming II Adapted from slides by Dr. Saumya Debray 02: Problem Decomposi1on and Program Development A common student lament "I have this big programming assignment.

More information

Open Mee'ng of the Security & Stability Advisory Commi=ee. 26 October 2009

Open Mee'ng of the Security & Stability Advisory Commi=ee. 26 October 2009 Open Mee'ng of the Security & Stability Advisory Commi=ee 26 Agenda Introduc'on Steve Crocker, Chair, SSAC SSAC Retreat Ram Mohan DNS Redirec'on Ram Mohan Root Scaling Study Ram Mohan Orphaned Name Servers

More information

Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7

Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Ziad Matni Dept. of Computer Science, UCSB Announcements We are grading your midterms this week!

More information

Ar#ficial Intelligence

Ar#ficial Intelligence Ar#ficial Intelligence Advanced Searching Prof Alexiei Dingli Gene#c Algorithms Charles Darwin Genetic Algorithms are good at taking large, potentially huge search spaces and navigating them, looking for

More information

The New Mul*- screen World: Understanding Cross- pla1orm Consumer Behaviour AUSTRALIA. March 2013

The New Mul*- screen World: Understanding Cross- pla1orm Consumer Behaviour AUSTRALIA. March 2013 The New Mul*- screen World: Understanding Cross- pla1orm Consumer Behaviour AUSTRALIA March 2013 We are a na>on of mul*- screeners. Most of consumers media >me today is spent in front of a screen computer,

More information

Computer Programming-I. Developed by: Strawberry

Computer Programming-I. Developed by: Strawberry Computer Programming-I Objec=ve of CP-I The course will enable the students to understand the basic concepts of structured programming. What is programming? Wri=ng a set of instruc=ons that computer use

More information

Document Databases: MongoDB

Document Databases: MongoDB NDBI040: Big Data Management and NoSQL Databases hp://www.ksi.mff.cuni.cz/~svoboda/courses/171-ndbi040/ Lecture 9 Document Databases: MongoDB Marn Svoboda svoboda@ksi.mff.cuni.cz 28. 11. 2017 Charles University

More information

Charlie Garrod Michael Hilton

Charlie Garrod Michael Hilton Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 5: Concurrency Introduc9on to concurrency, part 2 Concurrency primi9ves, con9nued Charlie Garrod Michael Hilton School of Computer

More information

Objec0ves. Gain understanding of what IDA Pro is and what it can do. Expose students to the tool GUI

Objec0ves. Gain understanding of what IDA Pro is and what it can do. Expose students to the tool GUI Intro to IDA Pro 31/15 Objec0ves Gain understanding of what IDA Pro is and what it can do Expose students to the tool GUI Discuss some of the important func

More information