How To Understand The Dependency Inversion Principle (Dip)
|
|
- Jacob Holt
- 3 years ago
- Views:
Transcription
1 Embedded Real-Time Systems (TI-IRTS) General Design Principles 1 DIP The Dependency Inversion Principle Version:
2 Dependency Inversion principle (DIP) DIP: A. High level modules should not depend upon low level modules. Both should depend upon abstractions. B. Abstractions should not depend upon details. Details should depend upon abstractions. Ref. The Dependency Inversion Principle, article by Robert C. Martin Slide 2
3 The Copy program (1) copy read Keyboard Structure chart write Printer void copy() // a C function { int c; while ( (c=readkeyboard())!= EOF) writeprinter(c); } Slide 3
4 The Enhanced Copy program (2) Changed requirement: The output should be either to a printer or to a disk enum OutputDevice {printer, disk}; void copy(outputdevice dev) { int c; while ( (c=readkeyboard())!= EOF) if (dev== printer) writeprinter(c); else writedisk(c); } The problem is that the high level policy i.e. the Copy module is dependent upon the low level detailed modules it controls. Slide 4
5 The OO Copy program (3) Copy Reader Notice: abstract classes Writer Keyboard Reader Printer Writer The dependency has been inverted! The copy class depends upon abstractions, and the detailed reader and writer depends upon the same abstractions Slide 5
6 The OO Copy program (4) class Reader { public: virtual int read() = 0; // pure virtual operation }; class Writer { public: virtual void write(char ch) = 0; // pure virtual operation }; void Copy(Reader& r, Writer& w) { int c; while ( (c=r.read())!= EOF) w.write(c); } Slide 6
7 Layering Simple Layers Policy Layer Mechanism Layer Utility Layer NB! The dependency is transitive Slide 7
8 Layering Abstract Layers Policy Layer Mechanism Interface Mechanism Layer Utility Interface NB! no transitive or direct dependency between layers Utility Layer Slide 8
9 An Inversion of Ownership Notice: inversion is also an inversion of ownership We often think of utility libraries as owning their own interfaces With DIP: The clients own the abstract interfaces The servers derives from them Known as the Hollywood principle: Don t call us, we ll call you Slide 9
10 Inverted Layers Policy Policy Layer «interface» Mechanism Interface Mechanism Mechanism Layer «interface» Utility Interface Utility Utility Layer Slide 10
11 A Simple Example (DIP) Dependency inversion can be applied where ever one object sends a message to another Button +Button(Lamp& l) +Detect() itslamp Lamp +TurnOn() +TurnOff() void Button::Detect() { bool buttonon= GetPhysicalState(); if (buttonon) itslamp->turnon(); else itslamp->turnoff(); } Slide 11
12 Example: Inverted Button Model Button +Detect(): void +GetState(): bool ButtonClient +TurnOn(): void +TurnOff(): void Reusable Button Implementation Button Imp.2 Lamp Motor +Detect(): void +GetState(): bool +TurnOn(): void +TurnOff(): void +TurnOn(): void +TurnOff(): void Slide 12
13 Template Method (GoF Pattern) The GoF Template method is a good example of DIP In this pattern a high level algorithm is encoded in an abstract base class and makes use of pure virtual functions to implements its details Derived classes implements those detailed virtual functions Thus, the class containing the details depends upon the class containing the abstraction Slide 13
14 Template Method - GoF Structure AbstractClass TemplateMethod() PrimitiveOperation1() PrimitiveOperation(2) // Common code PrimitiveOperation1() // more common code // PrimitiveOperation2() // ConcreteClass PrimitiveOperation1() PrimitiveOperation2() Notice: The Template Method is concrete Ref. GoF Design Patterns, Gamma et. al Slide 14
15 DIP - conclusion The principle of dependency inversion is at the root of many of the benefits claimed for object-oriented technology. Its proper application is necessary for the creation of reusable frameworks It is also critically important for the construction of code that is resilient to change Slide 15
The Dependency Inversion Principle
The Dependency Inversion Principle This is the third of my Engineering Notebook columns for The C++ Report. The articles that will appear in this column will focus on the use of C++ and OOD, and will address
More informationOO Design Quality Metrics
OO Design Quality Metrics An Analysis of Dependencies By Robert Martin October 28,1994 2080 Cranbrook Road Green Oaks, IL 60048 Phone: 708.918.1004 Fax: 708.918.1023 Email: rmartin@oma.com Abstract This
More informationButton, Button, Whose got the Button?
,, Whose got the?,, Whose got the? (Patterns for breaking client/server relationships) By Robert C. Martin Introduction How many design patterns does it take to turn on a table lamp? This question was
More informationHow To Use The Command Pattern In Java.Com (Programming) To Create A Program That Is Atomic And Is Not A Command Pattern (Programmer)
CS 342: Object-Oriented Software Development Lab Command Pattern and Combinations David L. Levine Christopher D. Gill Department of Computer Science Washington University, St. Louis levine,cdgill@cs.wustl.edu
More informationEmbedded Real-Time Systems (TI-IRTS) State Machine Implementation
Embedded Real-Time Systems (TI-IRTS) State Machine Implementation Version: 5-2-2010 Agenda STM notation and example Five state machine implementation techniques: 1. Switch based 2. Table driven implementation
More informationProject Development & Software Design
Project Development & Software Design Lecturer: Sri Parameswaran Notes by Annie Guo. S1, 2006 COMP9032 Week12 1 Lecture Overview Basic project development steps Some software design techniques S1, 2006
More informationPatterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
More informationObject Oriented Software Design - I
Object Oriented Software Design - I Object Oriented Design Principles Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 28, 2011 G. Lipari (Scuola Superiore Sant Anna)
More informationDesign with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1
Design with Reuse Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Objectives To explain the benefits of software reuse and some reuse
More informationGRANTED BY: ProspectSoft Ltd (the Licensor), Dovetail House, Wycombe Road, Stokenchurch, HP14 3RQ, England.
SOFTWARE DESCRIPTION: ProspectSoft CRM (Version 6.03.000) SOFTWARE SERIAL No.: Once the security key has been made available to you, the serial number of your software is held electronically in the security
More informationAdapter, Bridge, and Façade
CHAPTER 5 Adapter, Bridge, and Façade Objectives The objectives of this chapter are to identify the following: Complete the exercise in class design. Introduce the adapter, bridge, and façade patterns.
More informationReport on the Train Ticketing System
Report on the Train Ticketing System Author: Zaobo He, Bing Jiang, Zhuojun Duan 1.Introduction... 2 1.1 Intentions... 2 1.2 Background... 2 2. Overview of the Tasks... 3 2.1 Modules of the system... 3
More information1992-2010 by Pearson Education, Inc. All Rights Reserved.
Key benefit of object-oriented programming is that the software is more understandable better organized and easier to maintain, modify and debug Significant because perhaps as much as 80 percent of software
More information2. Advance Certificate Course in Information Technology
Introduction: 2. Advance Certificate Course in Information Technology In the modern world, information is power. Acquiring information, storing, updating, processing, sharing, distributing etc. are essentials
More informationTutorial on Writing Modular Programs in Scala
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 13 September 2006 Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 1 of 45 Welcome to the
More informationServer Virtualization with Windows Server Hyper-V and System Center
Course 20409B: Server Virtualization with Windows Server Hyper-V and System Center Course Details Course Outline Module 1: Evaluating the Environment for Virtualization This module provides an overview
More informationShort Introduction to Design Patterns
Short Introduction to Design Patterns Lecture 7 Software Engineering CUGS Slides by David Broman and Kristian Sandahl Department of Computer and Information Science Linköping University, Sweden kristian.sandahl@ida.liu.se
More informationIntroduction. General Course Information. Perspectives of the Computer. General Course Information (cont.)
Introduction CS 256/456 Dept. of Computer Science, University of Rochester General Course Information Course Web page: www.cs.rochester.edu/~kshen/csc256 Course-related announcement/correspondence: Broadcast
More informationForeverSOA: Towards the Maintenance of Service-Oriented Architecture (SOA) Software
ForeverSOA: Towards the Maintenance of Service-Oriented Architecture (SOA) Software Dionysis Athanasopoulos, PhD student In collaboration with A. Zarras, V. Issarny SQM 2009 Dept. of Computer Science,
More information1. What are Data Structures? Introduction to Data Structures. 2. What will we Study? CITS2200 Data Structures and Algorithms
1 What are ata Structures? ata Structures and lgorithms ata structures are software artifacts that allow data to be stored, organized and accessed Topic 1 They are more high-level than computer memory
More informationKonzepte objektorientierter Programmierung
Konzepte objektorientierter Programmierung Prof. Dr. Peter Müller Werner Dietl Software Component Technology Exercises 3: Some More OO Languages Wintersemester 04/05 Agenda for Today 2 Homework Finish
More informationEmbedded Component Based Programming with DAVE 3
Embedded Component Based Programming with DAVE 3 By Mike Copeland, Infineon Technologies Introduction Infineon recently introduced the XMC4000 family of ARM Cortex -M4F processor-based MCUs for industrial
More informationIntroduction. General Course Information. Perspectives of the Computer. General Course Information (cont.) Operating Systems 1/12/2005
Introduction CS 256/456 Dept. of Computer Science, University of Rochester General Course Information Instructor: Kai Shen (kshen@cs.rochester.edu) TA: Kirk Kelsey (kelsey@cs.rochester.edu) TA: Christopher
More informationHow to Write a Checker in 24 Hours
How to Write a Checker in 24 Hours Clang Static Analyzer Anna Zaks and Jordan Rose Apple Inc. What is this talk about? The Clang Static Analyzer is a bug finding tool It can be extended with custom checkers
More informationCS 101 Computer Programming and Utilization
CS 101 Computer Programming and Utilization Lecture 14 Functions, Procedures and Classes. primitive and objects. Files. Mar 4, 2011 Prof. R K Joshi Computer Science and Engineering IIT Bombay Email: rkj@cse.iitb.ac.in
More informationArchitecture & Design of Embedded Real-Time Systems (TI-AREM)
Architecture & Design of Embedded Real-Time Systems (TI-AREM) Architectural Design Patterns 2. Components & Connectors and Component Architecture Patterns and UML 2.0 Ports (BPD. Chapter 4. p. 184-201)
More informationChapter 1 Fundamentals of Java Programming
Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The
More informationTopics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
More informationEncapsulating Crosscutting Concerns in System Software
Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com
More informationSoftware Life Cycle. Management of what to do in what order
Software Life Cycle Management of what to do in what order Software Life Cycle (Definition) The sequence of activities that take place during software development. Examples: code development quality assurance
More informationMetastorm BPM Interwoven Integration. Process Mapping solutions. Metastorm BPM Interwoven Integration. Introduction. The solution
Metastorm BPM Interwoven Integration Introduction A proven and cost effective solution for companies that need to create and maintain high volumes of Interwoven WorkSpaces and their associated documents
More informationLesson 06: Basics of Software Development (W02D2
Lesson 06: Basics of Software Development (W02D2) Balboa High School Michael Ferraro Lesson 06: Basics of Software Development (W02D2 Do Now 1. What is the main reason why flash
More informationBasics Series-4006 Email Basics Version 9.0
Basics Series-4006 Email Basics Version 9.0 Information in this document is subject to change without notice and does not represent a commitment on the part of Technical Difference, Inc. The software product
More informationApplication of UML in Real-Time Embedded Systems
Application of UML in Real-Time Embedded Systems Aman Kaur King s College London, London, UK Email: aman.kaur@kcl.ac.uk Rajeev Arora Mechanical Engineering Department, Invertis University, Invertis Village,
More informationPrinciples of Software Construction: Objects, Design, and Concurrency. Course Introduction. toad. toad 15-214. Fall 2012. School of Computer Science
Principles of Software Construction: Objects, Design, and Concurrency Course Introduction Fall 2012 Charlie Garrod Christian Kästner School of Computer Science and J Aldrich 2012 W Scherlis 1 Construction
More informationBrown County Information Technology Aberdeen, SD. Request for Proposals For Document Management Solution. Proposals Deadline: Submit proposals to:
Brown County Information Technology Aberdeen, SD Request for Proposals For Document Management Solution Proposals Deadline: 9:10am, January 12, 2016 Submit proposals to: Brown County Auditor 25 Market
More informationProgramming a Robot Using C++ Philipp Schrader & Tom Brown October 27, 2012
Programming a Robot Using C++ Philipp Schrader & Tom Brown October 27, 2012 The robot has mechanical systems and electrical hardware, but needs a program to tell it what to do The program collects inputs
More informationMerchant Warehouse Credit Card Integration Gym Assistant 2.0 www.gymassistant.com August 2009
Merchant Warehouse Credit Card Integration Gym Assistant 2.0 www.gymassistant.com August 2009 System Requirements This implementation requires Gym Assistant v2.0.1 build 230 or higher. To download the
More informationCS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A
More informationChapter 1 - Forzip at a Glance
Chapter 1 - Forzip at a Glance Forzip is the software designed to enhance card production quality and volumes, adding constantly evolving technologies demanded by production bureaus and providing management
More informationGeneric classes : Construction, speciæcation, veriæcation, and static analysis Baudouin Le Charlier University of Namur Belgium Venise march 2000 Plan of the lectures 1. Prerequisites about OO and Java
More informationGalaxy Software Addendum
Galaxy Software Addendum for Importing Users from Active Directory Includes Encryption of Connection Strings Page 1 of 9 System Galaxy Version 10.3 How to Guide For Importing users from Active Directory
More informationNOVA COLLEGE-WIDE COURSE CONTENT SUMMARY ITE 115 - INTRODUCTION TO COMPUTER APPLICATIONS & CONCEPTS (3 CR.)
Revised 5/2010 NOVA COLLEGE-WIDE COURSE CONTENT SUMMARY ITE 115 - INTRODUCTION TO COMPUTER APPLICATIONS & CONCEPTS (3 CR.) Course Description Covers computer concepts and Internet skills and uses a software
More informationCombining Mifare Card and agsxmpp to Construct a Secure Instant Messaging Software
Combining Mifare Card and agsxmpp to Construct a Secure Instant Messaging Software Ya Ling Huang, Chung Huang Yang Graduate Institute of Information & Computer Education, National Kaohsiung Normal University
More informationDesigning Event-Controlled Continuous Processing Systems Class 325
Designing Event-Controlled Continuous Processing Systems Class 325 by Hans Peter Jepsen, Danfoss Drives and Finn Overgaard Hansen, Engineering College of Aarhus hans_peter_jepsen@danfoss.com foh@e.iha.dk
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles
Ingegneria del Software Corso di Laurea in Informatica per il Management Object Oriented Principles Davide Rossi Dipartimento di Informatica Università di Bologna Design goal The goal of design-related
More informationChain of Responsibility
Chain of Responsibility Comp-303 : Programming Techniques Lecture 21 Alexandre Denault Computer Science McGill University Winter 2004 April 1, 2004 Lecture 21 Comp 303 : Chain of Responsibility Page 1
More informationCOSC 111: Computer Programming I. Dr. Bowen Hui University of Bri>sh Columbia Okanagan
COSC 111: Computer Programming I Dr. Bowen Hui University of Bri>sh Columbia Okanagan 1 Today Review slides from week 2 Review another example with classes and objects Review classes in A1 2 Discussion
More informationQUICK START GUIDE. Draft twice the documents in half the time starting now.
QUICK START GUIDE Draft twice the documents in half the time starting now. WELCOME TO PRODOC Thank you for choosing ProDoc, your forms solution to save time and money, reduce errors, and better serve your
More informationHow To Draw A Cell Phone Into A Cellphone In Unminimal Diagram (Uml)
UML Tutorial: Collaboration Diagrams Robert C. Martin Engineering Notebook Column Nov/Dec, 97 In this column we will explore UML collaboration diagrams. We will investigate how they are drawn, how they
More informationSysAidTM Freeware Installation Guide
SysAidTM Freeware Installation Guide Document Updated: 10 November 2009 Introduction SysAid free edition is built for organizations with fewer than 100 computers and users. This document will help you
More informationBTEC First Diploma for IT. Scheme of Work for Computer Systems unit 3 (10 credit unit)
BTEC First Diploma for IT Scheme of Work for Computer Systems unit 3 (10 credit unit) Overview On completion of this unit a learner should: 1 Know the of 4 Be able to. Num of hours Teaching topic Delivery
More informationProcedure to Install Printer to the LifeWindow 6000 Rev 3.
Procedure to Install Printer to the LifeWindow 6000 Rev 3. The LifeWindow OS is Windows XP embedded. Printers with driver to XPe are supported. Some printers with driver to XP can also be installed. Please
More informationAutomated Software Evolution via Design Pattern Transformations
Automated Software Evolution via Design Pattern Transformations Lance Tokuda and Don Batory Department of Computer Sciences University of Texas at Austin Austin, Texas 78712-1188 {unicron, batory@cs.utexas.edu
More informationFreescale Semiconductor, I
nc. Application Note 6/2002 8-Bit Software Development Kit By Jiri Ryba Introduction 8-Bit SDK Overview This application note describes the features and advantages of the 8-bit SDK (software development
More informationBinary storage of graphs and related data
EÖTVÖS LORÁND UNIVERSITY Faculty of Informatics Department of Algorithms and their Applications Binary storage of graphs and related data BSc thesis Author: Frantisek Csajka full-time student Informatics
More informationCOURSE OUTLINE COMPUTER INFORMATION SYSTEMS 1A. PREREQUISITE: None. Concurrent enrollment in CIS-96 or CIS-97 is recommended.
Degree Credit _X Non Credit Nondegree Credit Comm Service COURSE OUTLINE COMPUTER INFORMATION SYSTEMS 1A COURSE DESCRIPTION 3 Units 1A Introduction to Computer Information Systems PREREQUISITE: None. Concurrent
More informationIntroduction Object-Oriented Network Programming CORBA addresses two challenges of developing distributed systems: 1. Making distributed application development no more dicult than developing centralized
More informationHow to Create a Resume Using Microsoft Word
Microsoft Word Welcome to the resume-building process! A lot of job postings that you find online today are asking for an electronic resume. There are lots of different ways that you can go about creating
More informationDiscover Live Network
Discover Live Network NetBrain s discovery engine uses a complex algorithm to walk through the network hop-by-hop, starting from the seed router. To achieve the best accuracy and speed, make sure: All
More informationPROXIMITY CARD READERS C-10, C-20, C60, C70
Installation Manual PROXIMITY CARD READERS C-10, C-20, C60, C70 VERSION 1.0 CONTENTS 1. General information................................. 3 2. Technical data......................... 4 3. Connection
More informationSingletons. The Singleton Design Pattern using Rhapsody in,c
Singletons Techletter Nr 3 Content What are Design Patterns? What is a Singleton? Singletons in Rhapsody in,c Singleton Classes Singleton Objects Class Functions Class Variables Extra Functions More Information
More informationQint Software - Technical White Paper
Qint Software - Technical White Paper Improved Reporting and Document Generation via Object-Oriented Data Access and Enterprise Information Integration Objects do not only change the way in which we develop
More informationBuilding native mobile apps for Digital Factory
DIGITAL FACTORY 7.0 Building native mobile apps for Digital Factory Rooted in Open Source CMS, Jahia s Digital Industrialization paradigm is about streamlining Enterprise digital projects across channels
More informationLinux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
More informationCMSC 132: Object-Oriented Programming II. Design Patterns I. Department of Computer Science University of Maryland, College Park
CMSC 132: Object-Oriented Programming II Design Patterns I Department of Computer Science University of Maryland, College Park Design Patterns Descriptions of reusable solutions to common software design
More informationTutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator Written by: Chris Jaun (cmjaun@us.ibm.com) Sudha Piddaparti (sudhap@us.ibm.com) Objective In this
More informationService Oriented Architecture for Agricultural Vehicles
Service Oriented Architecture for Agricultural Vehicles Leipzig, 30.9.2010 8. Workshop Automotive Software Engineering Dr. G. Kormann, M. Hoeh, H.J. Nissen THE END of Embedded Software? www.electronics-ktn.com/
More informationUser Manual Network connection and Mobics Dashboard (MIS) software for Dryer Controller M720
User Manual Network connection and Mobics Dashboard (MIS) software for Dryer Controller Manual version : v1.00 Networking and MIS Manual Dryer controller Page 1 of 16 Document history Preliminary version
More informationDocument Management Solutions
Document Management Solutions Label Printing Software LabelsAnywhere.com is Colorflex s cost-effective, web based, demand print solution. Print high quality labels from anywhere and at anytime with a simple
More informationASCII Encoding. The char Type. Manipulating Characters. Manipulating Characters
The char Type ASCII Encoding The C char type stores small integers. It is usually 8 bits. char variables guaranteed to be able to hold integers 0.. +127. char variables mostly used to store characters
More informationCompact Contact Center (CCC)
Compact Contact Center (CCC) IP Office Call Center View Real Time Screens General Screens Alarm Handling BLF (Busy Lamp Field) Details Extension Activity Callback Request Agent Based Screens Group Monitor
More informationNintex Workflow 2013 & InfoPath Form Design workshop
Nintex Workflow 2013 & InfoPath Form Design workshop Duration: 30 Hrs. Course Outline: Module 1: Creating a SharePoint Form with InfoPath Designer Design a SharePoint Form Using the Blank Form Template
More informationTheodor Borangiu UVHC, ENSIAME 2013
Theodor Borangiu UVHC, ENSIAME 2013 Introduction Manufacturing Systems Performance Monitoring Monitoring Solution for Holonic Manufacturing Systems Conclusions June 19, 2013 2 Three inter-related vectors
More informationPHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.
PHP Code Design PHP is a server-side, open-source, HTML-embedded scripting language used to drive many of the world s most popular web sites. All major web servers support PHP enabling normal HMTL pages
More informationEcgSoft. Software Developer s Guide to RestEcg. Innovative ECG Software. www.ecg-soft.com - e-mail: info@ecg-soft.com
EcgSoft Software Developer s Guide to RestEcg Innovative ECG Software www.ecg-soft.com - e-mail: info@ecg-soft.com Open Interface This page is intentionally left blank Copyright EcgSoft, October 2012 Page
More informationLink-Time Static Analysis for Efficient Separate Compilation of Object-Oriented Languages
Link-Time Static Analysis for Efficient Separate Compilation of Object-Oriented Languages Jean Privat Roland Ducournau LIRMM CNRS/Université Montpellier II France Program Analysis for Software Tools and
More informationConstruction Principles and Design Patterns. Flyweight, Bridge, Builder
Construction Principles and Design Patterns Flyweight, Bridge, Builder 1 The Flyweight Design Pattern: Structure Use: To avoid employing a large number of objects with similar state When objects with intrinsic
More informationWhat do you think? Definitions of Quality
What do you think? What is your definition of Quality? Would you recognise good quality bad quality Does quality simple apply to a products or does it apply to services as well? Does any company epitomise
More informationTutorial: Getting Started
9 Tutorial: Getting Started INFRASTRUCTURE A MAKEFILE PLAIN HELLO WORLD APERIODIC HELLO WORLD PERIODIC HELLO WORLD WATCH THOSE REAL-TIME PRIORITIES THEY ARE SERIOUS SUMMARY Getting started with a new platform
More informationClient Overview. Engagement Situation. Key Requirements
Client Overview Our client is one of the leading providers of business intelligence systems for customers especially in BFSI space that needs intensive data analysis of huge amounts of data for their decision
More informationApplication Architectures
Software Engineering Application Architectures Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain the organization of two fundamental models of business systems - batch
More informationManagement Information Systems 260 Web Programming Fall 2006 (CRN: 42459)
Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459) Class Time: 6:00 8:05 p.m. (T,Th) Venue: WSL 5 Web Site: www.pbvusd.net/mis260 Instructor Name: Terrell Tucker Office: BDC 127
More informationSysAid Freeware Installation Guide
SysAidTM Freeware Installation Guide August 2006 Page 1 Introduction SysAid s free version is built for organizations with fewer than 100 computers and users. This document will help you install the software.
More informationUI software architectures & Modeling interaction
UI software architectures & Modeling interaction (part of this content is based on previous classes from A. Bezerianos, S. Huot, M. Beaudouin-Lafon, N.Roussel, O.Chapuis) Assignment 1 Design and implement
More informationDesign Patterns. Advanced Software Paradigms (A. Bellaachia) 1
Design Patterns 1. Objectives... 2 2. Definitions... 3 2.1. What is a Pattern?... 3 2.2. Categories of Patterns... 4 3. Pattern Characteristics [Buschmann]:... 5 4. Essential Elements of a Design Pattern
More informationELFRING FONTS INC. MICR FONTS FOR WINDOWS
ELFRING FONTS INC. MICR FONTS FOR WINDOWS This package contains ten MICR fonts (also known as E-13B) used to print the magnetic encoding lines on checks, and eight Secure Fonts for use in printing check
More informationPoint-of-Sale Updates Training Guide. Product Name: Point-of-Sale Release Version: 6.0
Guide Product Name: Point-of-Sale Release Version: 6.0 Copyright 2005 2006. All rights reserved. This documentation is an unpublished work of, which may be used only in accordance with a license agreement
More informationCLAS12 Offline Software Tools. G.Gavalian (Jlab)
CLAS12 Offline Software Tools G.Gavalian (Jlab) Overview Data formats I/O gemc data reader raw data reader detector hit decoder ET ring data reader Geometry Package implementation of all baseline detectors
More information6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang
6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang Today s topics Why objects? Object-oriented programming (OOP) in C++ classes fields & methods objects representation
More informationLinux Kernel Architecture
Linux Kernel Architecture Amir Hossein Payberah payberah@yahoo.com Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management
More informationUsing the CoreSight ITM for debug and testing in RTX applications
Using the CoreSight ITM for debug and testing in RTX applications Outline This document outlines a basic scheme for detecting runtime errors during development of an RTX application and an approach to
More informationAUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev
International Journal "Information Technologies & Knowledge" Vol.5 / 2011 319 AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev Abstract: This paper presents a new approach
More informationInstalling, Configuring and Administering Microsoft Windows
Unit 21: Installing, Configuring and Administering Microsoft Windows Learning Outcomes A candidate following a programme of learning leading to this unit will be able to: Perform and troubleshoot an attended
More informationAN INTELLIGENT TUTORING SYSTEM FOR LEARNING DESIGN PATTERNS
AN INTELLIGENT TUTORING SYSTEM FOR LEARNING DESIGN PATTERNS ZORAN JEREMIĆ, VLADAN DEVEDŽIĆ, DRAGAN GAŠEVIĆ FON School of Business Administration, University of Belgrade Jove Ilića 154, POB 52, 11000 Belgrade,
More informationSyllabus for CS 134 Java Programming
- Java Programming Syllabus Page 1 Syllabus for CS 134 Java Programming Computer Science Course Catalog 2000-2001: This course is an introduction to objectoriented programming using the Java language.
More informationSoftware Engineering: Analysis and Design - CSE3308
CSE3308/DMS/2004/25 Monash University - School of Computer Science and Software Engineering Software Engineering: Analysis and Design - CSE3308 Software Quality CSE3308 - Software Engineering: Analysis
More informationChapter 6: Project Planning & Production
AIM Your Project with Flash: Chapter 6 - Project Planning and Production 105 Chapter 6: Project Planning & Production After completing this module, you ll be able to: plan a Flash project. consider design
More informationThe How Do Guide to AxioVision. Author: Brian Svedberg Image Analysis Specialist Carl Zeiss MicroImaging, Inc.
The How Do Guide to AxioVision Author: Brian Svedberg Image Analysis Specialist Carl Zeiss MicroImaging, Inc. How do I grab a single image? How do I grab a single image? Click on the Camera icon to switch
More information