Use of the Concept of Transparency in the Design of Hierarchically Structured Systems Paper by: D.L. Parnas and D.P. Siewiorek Presentation by: Josh Wetzel.

Slides:



Advertisements
Similar presentations
A Procedure for Designing Abstract Interfaces for Device Interface Modules Presented By: Andy Mroczkowski Dan Talaber Tracy Xie Joshua Wetzel David Parnas.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
A Procedure for Designing Abstract Interfaces for Device Interface Modules Presented By: Andy Mroczkowski Dan Talaber Tracy Xie Joshua Wetzel David Parnas.
MIS 2000 Class 20 System Development Process Updated 2014.
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 2: Dealing with Objects I.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Notion of a Project Notes from OOSE Slides - modified.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
The Modular Structure of Complex Systems D.L. Parnas, P.C. Clement, and D.M. Weiss Published in IEEE Transactions on Software Engineering, March 1985 Presented.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Database System Development Lifecycle Transparencies
Distributed Systems: Client/Server Computing
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
What are the functions of an operating system? The operating system is the core software component of your computer. It performs many functions and is,
H-1 Network Management Network management is the process of controlling a complex data network to maximize its efficiency and productivity The overall.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Database Planning, Design, and Administration Transparencies
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
An Integration Framework for Sensor Networks and Data Stream Management Systems.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
ERP. What is ERP?  ERP stands for: Enterprise Resource Planning systems  This is what it does: attempts to integrate all data and processes of an organization.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Database System Development Lifecycle 1.  Main components of the Infn System  What is Database System Development Life Cycle (DSDLC)  Phases of the.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
CENTRALISED AND CLIENT / SERVER DBMS. Topics To Be Discussed………………………. (A) Centralized DBMS (i) IntroductionIntroduction (ii) AdvantagesAdvantages (ii)
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
1 CMPT 275 High Level Design Phase Modularization.
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Designing Abstract Interfaces for Device Independency Designing Abstract Interfaces for Device Independency Review of A Procedure for Designing Abstract.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
 Programming methodology: ◦ is a process of developing programs that involves strategically dividing important tasks into functions to be utilized by.
Introduction to Computing Systems
CompSci 280 S Introduction to Software Development
Chapter 2 Database System Concepts and Architecture
Object-Oriented Analysis and Design
On the Criteria to Be Used in Decomposing Systems into Modules
Operating System Structure
Part 3 Design What does design mean in different fields?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software System Integration
Chapter 8: Memory management
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Outline Chapter 2 (cont) OS Design OS structure
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
Tools for the Automation of large distributed control systems
From Use Cases to Implementation
Operating System Design Options
Presentation transcript:

Use of the Concept of Transparency in the Design of Hierarchically Structured Systems Paper by: D.L. Parnas and D.P. Siewiorek Presentation by: Josh Wetzel Andy Mroczkowski Tracy Xie Dan Talaber

Presentation Overview Top Down Design / Bottom Up Design Transparency in Bottom Up Design Examples of Transparency Conclusion Discussion Reference

Top Down Design Also called “Outside In” Design Describes and creates a system from the highest hierarchical level where the full specifications of a design must be known Solve a large problem by breaking down the problem into a smaller problem Continue until further decomposition can no longer be achieved

Problems with Top Down Difficult or infeasible to obtain full specification Can result in software that is unnecessarily inflexible Can specify unrealistic internal structures Portions of internal structure could already be fixed For these reasons, pure Top Down is rarely used

Bottom Up Design Create the system “Inside Out” from a set of lower level components (i.e. “start at the bottom”) Work upwards, solving entire project Reuse components from other projects More practical to implement internal structures first, creating separate modules and joining them together Bottom Up is more flexible. Hard to design “general purpose” system / library using top- down

Bottom Up Design ( cont. ) As you move up the system hierarchy, you create structural levels Base Machine  the lower level of a hierarchy, maybe hardware or an intermediate software level Virtual Machine  a level above the base machine, it hides the complexity of the base machine to make interaction with the system easier

Transparency in Bottom Up Design Transparency  describes the implementation completeness of the virtual machine with respect to the base machine’s functionality Complete transparency  the virtual machine has ALL of the functionality of the base machine Loss of transparency  a lack of functionality with respect to the base machine exists in the virtual machine

Examples of Transparency Hardware Search Engine Access Levels in Experion PKS Controller Execution Environment

HW Example – Graphics Card Transparency Hierarchical LevelDescription 0Graphics Card – silicon 1Driver 2API – DirectX,OpenGL 3 Application – Game, CAD

Graphics Card Example (cont.) Positive results of transparency  Much easier to program with API than directly with driver. Using an API lets an application run on different hardware Negative results of transparency  Depending on implementation, an application might not run as fast on a particular piece of hardware. I.e., it won’t fully utilize certain hardware features

Nvidia’s Unified Driver Architecture A way of dealing with a changing base machine. Image courtesy of AnandTech 1

Nvidia’s Unified Driver Architecture All drivers communicate with a hardware abstraction level (HAL) that resides on silicon “temporary degree of transparency”  Basic functionality exists with older drivers  Higher performance arrives with newer drivers

Search Engine Example Simple user interface which interacts with a complex database User can only run simple queries User cannot modify data through the interface

Search Engine Example Large loss of transparency yields mainly positive effects Maintains data integrity Loss of transparency does not hinder usability from the user’s perspective There were no significant negative effects identified

Access Levels in Experion PKS Data Transfer Component (Through Control Data Access and RsLinx) User Interface (Control Builder with Engineer Access, Station with Operator Access) Both of them sitting on different client nodes Controller (Strategy created and loaded)

Access Levels in Experion PKS Operator:  Monitoring the running time data transfer  Monitoring the running time Alarm Events  Emergency System Shutdown Engineer:  Extends the tasks of the operator  Modify the running time Configuration  Modify the running time data value

Controller Execution Environment Multi-user access Node 1Node 2 ControllerSystem

Controller Execution Environment Single user access Node 1Node 2 ControllerSystem

Suggestive and Misleading Transparency Suggestive: Sometimes the virtual machine should give “suggestions” to the base machine.  Zombie Processes Misleading: Sometimes the virtual machine implementation is inefficient because of a lack of information at a lower level

Conclusion “… a fundamental ‘tradeoff’ which exists between transparency and flexibility of a design.” Determining the right level of transparency for the higher level structure is crucial in order to obtain its goals

Discussion How do you determine the right level of transparency for a hierarchically structured system? When there exists too much of a loss of transparency, should there exist a way of accessing the base machine? What if you cannot know all the types of programs to be created from the base machine?

Reference 1 - Anand Lal Shimpi, “NVIDIA's Detonator3 Drivers - Teaching an ‘old’ dog new tricks”, August 14, 2000,