Design Principles & Prac4ces
|
|
- Wilfrid Barnett
- 5 years ago
- Views:
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 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 informationRDD 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 informationDesign 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 informationA 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 informationPrinciples 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 informationSQLite 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 informationDesign 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 informationL6: 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 informationArchitectural 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 informationUNIT 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 informationFrom 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 informationCMPSC 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 informationSo#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 informationComponent 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 informationWhat 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 information10/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 informationVulnerability 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 informationA 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 informationAn 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 informationRTP 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 informationChunking: 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 informationMapReduce, 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 informationFounda'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 informationques4ons? 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 informationCISC327 - So*ware Quality Assurance
CISC327 - So*ware Quality Assurance Lecture 8 Introduc
More informationTrust 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 informationClinical 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 informationEncapsula)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 informationCrea?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 informationLethbridge/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 informationRecap 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 informationRAD, 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 informationMapReduce, 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 informationDatabase 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 informationINFO/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 informationVHDL: 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 informationObject 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 informationCORPORATE 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 informationCMPS 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 informationProject: 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 informationJUnit 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 informationPreliminary 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 informationUNIT 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 informationCOSC 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 informationSecure 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 informationCyber 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 informationVirtualization. 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 informationChris9an 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 informationCSE 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 informationMastering 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 informationDesign 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 informationEncapsula)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 informationMo#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 informationThe 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 informationSystem Modeling Environment
System Modeling Environment Requirements, Architecture and Implementa
More informationApproach 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 informationChapter 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 informationArchitecture of So-ware Systems RMI and Distributed Components. Mar<n Rehák
Architecture of So-ware Systems RMI and Distributed Components Mar
More informationNet.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 informationLearning objec<ves. Classes, Objects, and Methods. Problem Decomposi<on. Problem Decomposi<on (cont d)
Learning objec
More informationOntology 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 informationVirtual 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 informationStructure 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 informationCharlie 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 informationHomework 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 informationCS101: 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 informationState- 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 informationPrinciples 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 informationIntroduc)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 informationF.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 informationCISC327 - 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 informationCISC327 - 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 informationBuilding 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 informationCloud 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 informationLibraries 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 informationRethinking 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 informationLanguage 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 informationJosh 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 informationCSE373: Data Structures and Algorithms Lecture 1: Introduc<on; ADTs; Stacks/Queues
CSE373: Data Structures and Algorithms Lecture 1: Introduc
More informationSoftware 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 informationLecture 4: Build Systems, Tar, Character Strings
CIS 330:! / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 4:
More informationThrough 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 informationJosh 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 informationSo#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 informationRV: 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 informationGenericity. 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 informationW1005 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 informationCS 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 informationSetting 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 informationmore 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 informationAlgorithms 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 informationCSc 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 informationOpen 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 informationDesign 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 informationAr#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 informationThe 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 informationComputer 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 informationDocument 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 informationCharlie 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 informationObjec0ves. 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