Designing Abstract Interfaces for Device Independency Designing Abstract Interfaces for Device Independency Review of A Procedure for Designing Abstract.

Slides:



Advertisements
Similar presentations
Automotive Embedded System Development in AUTOSAR
Advertisements

CIS 376 Bruce R. Maxim UM-Dearborn
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Software Architecture Design Instructor: Dr. Jerry Gao.
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
Requirements Analysis Concepts & Principles
Software Requirements
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
Purpose of Requirements Analysis Process of discover, refinement, modeling, and specification o Bridge gap between system level SW allocation and design.
Software engineering Olli Alm Lecture 2: requirements, modelling & representation.
Course Instructor: Aisha Azeem
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
8/5/2015\course\cpeg323-08F\Topic1.ppt1 Topic I Introduction to Computer Architecture and Organization.
Introduction to Software Testing
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
November 2011 At A Glance GREAT is a flexible & highly portable set of mission operations analysis tools that increases the operational value of ground.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Lesson 7 Guide for Software Design Description (SDD)
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Requirements Analysis
1 The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools Yi Liu, H. Conrad Cunningham and Hui Xiong Computer & Information Science.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
Practice Patterns to improve the Quality of Design Model in Embedded SoftWare Development Doo-Hwan Kim*, Jong-Phil Kim* and Jang-Eui Hong* *Chungbuk National.
An Introduction to Software Architecture
Software System Engineering: A tutorial
CSE 303 – Software Design and Architecture
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.
RTS Meeting 8th July 2009 Introduction Middleware AUTOSAR Conclusion.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
David Weiss Software Product-Line Engineering: A Family-Based Software Development Process: Designing The Family David Weiss
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Chapter 6 Architectural Design.
1 The Modular Structure of Complex Systems Presented by: SeyedMasoud Sadjadi and Wei Zhu David L. Parnas, Paul C. Clement, and David M. Weiss ICSE 1984.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
On the design and development of program families Presented by: M. Deng and J. Zhang 4/15/2002 CSE870 Advanced Software Engineering, Spring 2002.
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.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Smart Home Technologies
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
Virtual Machines Mr. Monil Adhikari. Agenda Introduction Classes of Virtual Machines System Virtual Machines Process Virtual Machines.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
1 Software Requirements Descriptions and specifications of a system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
MANAGEMENT INFORMATION SYSTEM
7. Modular and structured design
The Development Process of Web Applications
System Design.
Lecture 9- Design Concepts and Principles
Hierarchical Architecture
Designing Software for Ease of Extension and Contraction
Introduction to Software Testing
Lecture 9- Design Concepts and Principles
An Introduction to Software Architecture
Software Requirements Specification (SRS) Template.
Requirements Document
Presentation transcript:

Designing Abstract Interfaces for Device Independency Designing Abstract Interfaces for Device Independency Review of A Procedure for Designing Abstract Interfaces for Device Interface Modules by D. L. Parnas et al. Jianjun Hu Yakub Sailanawala CSE870 MSU 2002

Naval Research Lab's redesign of the flight SW for A-7 aircraft A Procedure for Designing Abstract Interfaces for Device Interface Modules A Procedure for Designing Abstract Interfaces for Device Interface Modules Heninger, K. Parker, R. Parnas, D.L. IEEE Fifth International Conference on Software Engineering  PROBLEM  SOLUTION  GOAL  Changes in hardware device interfaces often lead to widespread changes in the whole system  The device interface module [DIM] containing the device dependent code  The remaining software components that should be independent of device specific details.  design good abstract interfaces for DIM

Designing Abstract Interfaces … is to obtain its dual description  Assumption List  Assumption List: List of all the assumptions about the characteristics of the hardware devices the user programs are allowed to make  Functional Description:  Functional Description: API & Events Specification Assumption List explicitly states the assumptions about the characteristics that are implicit in the Functional description These descriptions must be reviewed by the users, hardware engineers and experienced programmers

Some Problems and Tradeoffs'  Characteristics that change independently should be contained in sub-modules  Certain variable parameters can be specified either at system generation time or at run time based on the cost of change and probability of change  Predictable changes or enhancements in the hardware device should be mentioned in assumptions even if not implemented

Commonality Analysis: A Systematic Process for Defining Families Commonality Analysis: A Systematic Process for Defining Families David M. Weiss Proceedings of IEEE Second International Workshop on Development and Evolution of Software Architectures for Product Families 1998 Analytical technique for defining families  Structured format for all the elements that go into designing and defining families  Process Description  Commonality Analysis refers to both, the end product of this analysis in the form of a document as well as the process Cited Paper 1

Contents of a Commonality Analysis document  Introduction  Overview  Dictionary of Terms  Dictionary of Terms - Standard set of terms used for the description of the family  Commonality Assumption List  Commonality – Parnas et al. referred to this section as the Assumption List  Variability  Variability – Documents the possible variations  Parameters of variation  Parameters of variation – Quantifies the variabilities  Issues  Appendices

Stages in the Analysis process PLAN Define purpose and scope of the familyANALYZE Define Terms Identify Commonalities Identify Variabilities QUANTIFY Define parameters of variation EXTERNAL REVIEW

Structuring formal control systems specifications for reuse: Surviving hardware changes Structuring formal control systems specifications for reuse: Surviving hardware changes J. Thompson, M. Heimdahl and D. Erickson In Proc. 5th NASA Langley Formal Methods Workshop  Problem To design software control system for members of a family that displays the same high level behavior and survives changes in replaceable hardware devices  Proposed Solution Obtain a high-level software specification of the requirements Cited Paper 2

General View of Software Controlled Systems and 4 Variable Model Process SensorsActuators Controller Monitored variables Software Input Software Output Controlled Variables MON CON INPUT OUTPUT REQ IN SOFT OUT

4 Variables Model was proposed by D. Parnas and Jan Madey 4 Variables Model for Control Systems & Module Decomposition MON CON INPUT OUTPUT REQ IN SOFT OUT Monitored variables Controlled Variables Software Input Software Output

Conclusion  The proposed decomposition of the software system results in a module ( ) that represents the system requirements reusable over control systems exhibiting same high level behavior  The sensors related information is confined to the module representing  The actuators related information is confined to the module representing

Device Independent Navigation and Interaction in Virtual Environments Device Independent Navigation and Interaction in Virtual Environments C. Faisstnauer, D. Schmalstieg, Z. Szalavari Proceedings of the 1998 VRST Adjunct Workshop on Computer Graphics, Taipei, Taiwan  Objective: – Achieving independence of virtual environment applications from particular available input devices  Mapper vs.DIM of Parnas’ paper  Major extensions – Integrate Different set of input devices – Layered interfaces – Automatic configuration (selection of input devices) Uncited Paper 1

Device Independent Navigation and Interaction in Virtual Environments (Cont’) Device independence by Mapper Structure of Mapper Uncited Paper 1

Device Independent Navigation and Interaction in Virtual Environments (Cont’)  Why it should cite Parna’s paper? – Mapper is similar to DIM for separating device independent components from device dependent components – Also discussed the issues of data transformation and emulation – Parna’s Procedure and principles can be suitably applied here – Natural extension of DIM Uncited Paper 1

An Abstract-Device Interface for Implementing Portable Parallel –I/O Interfaces An Abstract-Device Interface for Implementing Portable Parallel –I/O Interfaces R. Thakur, W. Gropp, and E. Lusk Proc. of the 6th Symposium on the Frontiers of Massively Parallel Computation, October 1996  Objective: – Portable and efficient Parallel-I/O Interface – Facilitate implementation of any parallel I/O API on any file systems Many File systems: Unix, PFS, PIOFS, NFS…. Many Parallel I/O API systems: IBM PIOFS, IntelPFS, RIO…  Approach: – ADIO: Abstract –device interface for parallel I/O – Similar to DIM, Mapper  Difference – Not used directly by application programs but by higher layer API Uncited Paper 2

An Abstract-Device Interface for Implementing Portable Parallel –I/O Interfaces (Cont’)  Limitations – this paper doesn’t provide some guidelines and procedure for how to design interfaces. – doesn’t discuss the trade-off of the levels of exposing the details of underlying file systems  Why should cite Parnas’ paper? – ADIO similar to DIM – Similar issues concerned – Parnas’ procedure can be applied to support the design of ADIO ADIO concept

Hints for computer system design Hints for computer system design B. W. Lampson, ACM Operating Systems Rev. 15, 5, Reprinted in IEEE Software 1,  Problem: Computer system design – Functionality – Speed – Faulty tolerance  Functionality design & Interface Design Interfaces are agreements on the functionalities that system should provide. Cited Paper 3

Hints for computer system design (Cont’)  Interface Design in Computer System – Simplicity, not generality Predictable cost. – Completeness – Don’t hide power ×Sacrifice power to generality Concept of Transparency of Hierarchical System [Parnas. 1975] – Flexibility by procedure parameter