What’s Ahead for Embedded Software? 2006.10.25(Wed) Gilsoo Kim

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Embedded System, A Brief Introduction
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Ontologies: Dynamic Networks of Formally Represented Meaning Dieter Fensel: Ontologies: Dynamic Networks of Formally Represented Meaning, 2001 SW Portal.
Verification and Validation
Programming Languages for End-User Personalization of Cyber-Physical Systems Presented by, Swathi Krishna Kilari.
Architecture Representation
Towards a Practical Composition Language Oscar Nierstrasz Software Composition Group University of Bern.
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Software Engineering for Real- Time: A Roadmap H. Kopetz. Technische Universitat Wien, Austria Presented by Wing Kit Hor.
Software Testing and Quality Assurance
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Type System, March 12, Data Types and Behavioral Types Yuhong Xiong Edward A. Lee Department of Electrical Engineering and Computer Sciences University.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
Unified Modeling (Part I) Overview of UML & Modeling
SEC PI Meeting Annapolis, May 8-9, 2001 Component-Based Design of Embedded Control Systems Edward A. Lee & Jie Liu UC Berkeley with thanks to the entire.
Department of Electrical Engineering and Computer Sciences University of California at Berkeley System-Level Types for Component-Based Design Edward A.
Strategic Directions in Real- Time & Embedded Systems Aatash Patel 18 th September, 2001.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
Panel: What Comes After C++ in System-Level Specification Edward Lee UC Berkeley Forum on Design Languages Workshop on System Specification & Design Languages.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1  Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997  Gajski, Vahid, Narayan and Gong, “Specification,
What’s Ahead for Embedded Software? - Edward A. Lee (2000) Wednesday November 10, 2010 Hokeun Kim.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
ArchiMate Authors : eSchoolink Group - ITNLU. Contents 1. What’s ArchiMate ? 2. Why ArchiMate ? 3. Main Benefits of ArchiMate 4. Layers of ArchiMate 5.
Types for Programs and Proofs Lecture 1. What are types? int, float, char, …, arrays types of procedures, functions, references, records, objects,...
Computer Science Open Research Questions Adversary models –Define/Formalize adversary models Need to incorporate characteristics of new technologies and.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
CS212: Object Oriented Analysis and Design GRASP Design Principles.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
CHAPTER 6 - MODELING ANH AU. BACKGROUND Architectural model – an artifact that captures some or all of the design decisions that comprise a system’s architecture.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
A Context Model based on Ontological Languages: a Proposal for Information Visualization School of Informatics Castilla-La Mancha University Ramón Hervás.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Handling Mixed-Criticality in SoC- based Real-Time Embedded Systems Rodolfo Pellizzoni, Patrick Meredith, Min-Young Nam, Mu Sun, Marco Caccamo, Lui Sha.
Design Languages in 2010 Chess: Center for Hybrid and Embedded Software Systems Edward A. Lee Professor UC Berkeley Panel Position Statement Forum on Design.
16/11/ Semantic Web Services Language Requirements Presenter: Emilia Cimpian
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
Programming Sensor Networks Andrew Chien CSE291 Spring 2003 May 6, 2003.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Choosing a Formal Method Mike Weissert COSC 481. Outline Introduction Reasons For Choosing Formality Application Characteristics Criteria For A Successful.
Software Design and Architecture
UML (Unified Modeling Language)
A Generic Model for Software Architecture Yun Sang-hyun Rossak. W. / Kirova. V. / Jolian. L. / Lawson. H. / Zemel. T. Software, IEEE Jul/Aug.
Chapter 1: Introduction to Systems Analysis and Design
Types for Programs and Proofs
Object-Oriented Analysis and Design
Component Based Software Engineering
Input Space Partition Testing CS 4501 / 6501 Software Testing
OO Methodology OO Architecture.
Multiple Aspect Modeling of the Synchronous Language Signal
Architecture Description Languages
Software Verification and Validation
Software Verification and Validation
Software Verification and Validation
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

What’s Ahead for Embedded Software? (Wed) Gilsoo Kim

Contents Introduction Frameworks Hardware-Software Partnership Real-time Scheduling Interfaces and types Meta framework Conclusion

Introduction Embedded software  Main task is to engage the physical world  Interact with sensors and actuator Research for embedded software  Past days: too small and retro area  Nowadays: complex and pervasive enough Most pressing problem How to adapt existing software techniques to meet the challenges of the physical world

Frameworks Framework  Defines models which governs the interaction  Supports component interaction mechanism Ex) OS, Programming language, etc. Component  Any kind of building block (broader view) Ex) Program, process, language primitive, etc Framework and component in embedded software community must be seen  To get useful model

Frameworks Four service categories  Ontology: what it means to be a component  Epistemology: states of knowledge  Protocols: how components interact  Lexicon: vocabulary of component interaction More constraints → More specificity Properties of aggregate of components  Difficult to characterize The key challenge is to invent framework that batter match the application domain

Frameworks Concurrency Concurrency is useful in designing embedded systems Von Neumann framework  Universally accepted model of sequential computation  Total ordering ($$↑) In practice → Partially ordered at best Thus, practical designs will almost certainly have to combine techniques  ‘actors’ and ‘interaction patterns’

Frameworks Sample frameworks So far, most designers are exposed to only one or two frameworks But, design practices are changed  Level of abstraction and domain-specificity rise Rich variety of frameworks  Myriad views being offered  Designers will need some way to reconcile those Example: different view of ‘Time’  Explicit vs. abstract

Frameworks (1/2) Mixing frameworks A grand unified approach to modeling  Seek a framework that serves all purpose Possible approaches  Union of all the frameworks Complex and hard to use Designing would be difficult  Choose one concurrent frameworks and shows that all the others are special cases of that Feasible way relatively easy to use Sufficiently expressive to subsume others Doesn't acknowledge each model’s strength and weakness

Frameworks (2/2) Mixing frameworks Another approaches  Architecture Description Language (ADL) Describe the component interactions Provide a way to get good insight into the design Poor match could be appear  Mix heterogeneously, but preserve their distinct identity Finite time machines + continuous time model

Hardware-Software Partnership Software vs. hardware  S/W: sequential execution  H/W: parallel execution Most embedded system involve both design  Designer should balance b/w sequential and parallel execution styles  Rethink multitasking Component interface definitions need to declare temporal properties Composition of components must have consistent and non- conflicting temporal properties

Real-time Scheduling Real-time scheduler provides some assurances of time performance given certain component properties Priority inversion  There is no systematic way to provide assurance for the aggregate  Possible way can make deeper failure Need for a entirely different scheduling mechanism

Interface and types Type system  Ensure software’s correctness  Provides a vocabulary for talking about larger structure Type systems talk only about static structure for embedded software  Syntax of procedural programs  Nothing about concurrency or dynamics Work with active object and actors moves a bit in the right direction  Not enough about interface to safety, liveness, consistency, or real-time behavior

Interface and types Type system techniques Type system typically defined by a subtyping relation or by lossless convertibility How a type system works  Data-level system type  System-level type Depend on partial order

Interface and types The case for strong typing Many errors are not within the type system’s scope  Accessing an array out of bound..  Several researchers have shown how to augment type system Strong typing vs. without strong typing  Modularity and reuse / safety One solution  Polymorphism, reflection, and runtime type inference and type checking

Meta framework Stronger benefits come at the expense of stronger constraints Mix frameworks heterogeneously  Through specialization (analogous to subtyping)  Mix frameworks hierarchically Domain polymorphism  Avoids pairwise design  Can operate in multiple domains  Still have clear semantic in other domain

Conclusion There are more problems  Human-computer interaction  Configurable hardware  Networking problem (QoS) The focus must move beyond a program’s functional correctness The key problem then becomes identifying the appropriate abstractions for representing the design

Q & A Thank you