APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Architecture Representation
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN Speaker: Prof. Vytautas ŠTUIKYS, Speaker: Prof. Vytautas ŠTUIKYS, Software Engineering Department, Kaunas.
1 Developing Reliable Systems with SDL Design Patterns and Design Components Christian Webel, Ingmar Fliege, Alexander Geraldy, Reinhard Gotzhein University.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Copyright  1999 Daniel D. Gajski IP – Based Design Methodology Daniel D. Gajski University of California
Spring 2010CS 2251 Design Patterns. Spring 2010CS 2252 What is a Design Pattern? "a general reusable solution to a commonly occurring problem in software.
Improving UML Class Diagrams using Design Patterns Semantics Shahar Maoz Work in Progress.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
Chapter 8 Object Design Reuse and Patterns. Finding Objects The hardest problems in object-oriented system development are: –Identifying objects –Decomposing.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
Course Instructor: Aisha Azeem
Domain-Specific Software Engineering Alex Adamec.
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Creational Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
A language to describe software texture in abstract design models and implementation.
Enterprise Systems Architectures EGN 5621 Enterprise Systems Collaboration (Professional MSEM) Fall, 2012.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Understanding and using patterns in software development EEL 6883 Software Engineering Vol. 1 Chapter 4 pp Presenter: Sorosh Olamaei.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
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.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Structured Component Composition Frameworks for Embedded System Design Sandeep Shukla, Virginia Tech. Frederic Doucet, Rajesh Gupta University of California,
1 Here are some quotations to get an overview of the kinds of issues of interest.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Design Patterns: MORE Examples
A Hierarchical Model for Object-Oriented Design Quality Assessment
System-on-Chip Design Homework Solutions
Software Engineering Lecture 4 System Modeling The Analysis Stage.
The Development Process of Web Applications
Chapter 10 Design Patterns.
Chapter 5:Design Patterns
Software Design Patterns
Introduction to Design Patterns
The Object-Oriented Thought Process Chapter 1
OO Methodology OO Architecture.
For University Use Only
Abstract descriptions of systems whose requirements are being analysed
Designing Software for Ease of Extension and Contraction
IP – Based Design Methodology
Chapter 6: Using Design Patterns
Advanced Database Models
CIS 375 Bruce R. Maxim UM-Dearborn
Frameworks And Patterns
Object-Oriented Design
Introduction to the Unified Modeling Language
Chapter 5 Architectural Design.
Design Tips.
Reference This talk is loosely based on the following
Automated Analysis and Code Generation for Domain-Specific Models
Software Analysis.
Chapter 8, Design Patterns Introduction
System architecture, Def.
Software Architecture & Design
Presentation transcript:

APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN Authors: R. Damaševičius, G. Majauskas, V. Štuikys Speaker: Prof. Vytautas ŠTUIKYS, Software Engineering Department, Kaunas University of Technology, Kaunas, Lithuania E-mail: vystu@if.ktu.lt Phone: 370-37-300399

Content Reuse Context & Motivation Domain Analysis: Framework and Findings Soft IP-Based System-Level Design Processes & Design Patterns (DP): Their Relationship Implementation Using Metaprogramming (MPG) MPG and DP-Based Design Framework Experiments Evaluation and Problems Conclusions

Reuse Context & Aim of the Presentation Reuse equations: (1) Promises = Quality + Productivity + Time-To-Market (2) Reuse = Domain content + Technology + ... (3) Technology = Component-based reuse + Generative reuse (4) Activities = Design Domain Analysis (DDA) + ... Our aim: To bridge DDA with automatic tools

Domain Analysis: A General Framework

Domain Analysis: A Summary of Findings Trends: Shift towards Integration-based Design Blurring boundaries between HW & SW design Well-understood sub-domains: Communication-based design using well-proven communication models (Handshake, FIFO, etc.) Fault-tolerant design using well-proven redundancy models (TRM, etc.) Solutions for common design problems (System-Level Design Processes and Design Patterns) Explicit separation of variant and invariant parts Multi-language approach

HW Design Processes Based on Soft IP Register Transfer-Level Design Processes System-Level Design Processes

Layers of System-Level Design Processes Specification layer: domain analysis and specification of design problems inheritance, encapsulation, etc. Generalization layer: analysis and specification of generic design solutions separation of concerns composition Implementation layer: solutions of design problems using reuse technology wrapping, etc.

Design Pattern: Definitions The design pattern is ... … “descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context” [E. Gamma et al., 1995] … “both a description of a thing which is alive, and a description of the process which will generate that thing” [C. Alexander, 1979]

System-Level Design Processes and Design Patterns: Relationship Our definition: A System-level HW design process is a common well-defined HW design activity aimed at designing a system from soft IPs at a high level of abstraction A HW Design Pattern is the UML-based specification of a System-Level HW Design Process based on a well-proven design model

Design Patterns in Hardware Design Pattern-like solutions proposed by others models of computation/control: Finite State Machine communication models: protocol, bus, communication co-processor wrappers: reliability, bus, protocol, memory wrappers Design patterns adapted from SW design: Abstract Factory, State [Yoshida] Resource Manager [Vanmeerbeeck et al.] Composite, Object Adaptor, Abstract Factory and Decorator [Åström et al.] Singleton [Charest and Aboulhamid] New HW design patterns: Bus-Protocol, DLX Processor Architecture [Doucet and Gupta]

Application of the OO Concepts for VHDL Abstract class (interface) - VHDL entity A class that implements an abstract class - VHDL architecture The composition relationship - VHDL port map statement Class attributes - VHDL ports and signals Class methods –VHDL processes or procedures

Wrapper Design Pattern Allows adapting an interface and behavior of the IP component to the context of a given application

Specification of Design Patterns Using Metaprogramming Metaprogramming (MPG): provides a means for manipulating with other programs as data at a higher level of abstraction uses two different languages in the same generic specification Metaprogram: a program generator for a narrow domain of application Domain language (DL) (e.g., VHDL): describes domain functionality Metalanguage (ML) (e.g., Java): describes generalization and domain program modifications at a higher level of abstraction

Summary of Metaprogramming Principles CI – Component Instance R – Requirements for modification/generalization S – Separation of concerns P – Parameterization I – Integration of concerns MP – Metaprogram

Framework of Our Approach: Implementation (0) Design Domain Analysis (DDA): SL Design Process/ Design Pattern, Requirements and soft IP (1) Metaprogramming: describe the domain program modifications depending upon the values of the generic parameters (2) Parsing: use the soft IP interface as values of generic parameters for metaprograms (3) ML processing: generate the soft IP wrapper

Experiments Based on Well-proven Models Communication interface synthesis Handshake Wrapper [see paper DAC 03] FIFO Wrapper - next slide [for details INFORMATICA, see Ref. in DAC03] Fault-tolerant design [submitted, not presented here] Space Redundancy Wrapper Time Redundancy Wrapper Data Redundancy Wrapper

FIFO Wrapper Generator: Implementation FIFO protocol is used in the producer-consumer communication model to smoothen bursts in the requests for a service

Evaluation of Design Specification Advantages of using HW Design Patterns: raise the level of abstraction capture the design content immediately and intuitively using UML diagrams enable the automated design validation and code generation Shortcomings: do not provide with a full HW design specification for its implementation

Evaluation of MPG-based Implementation Metaprogramming (MPG): bridges the Design Domain Analysis with Domain Generators allows to adapt soft IPs to the context of application using well-proven domain models increases the reusability and productivity when customizing third-party soft IPs

Problems yet to be solved How the System-Level (SL) Design Processes described as the UML-based HW Design Patterns (DPs) could be (semi-) automatically transformed into metaprograms? How the physical constraints (e.g., the timing ones) should be reflected in an OO model (DP)? How the entire DP could be directly synthesized to RTL? What is a more precise model for describing correspondence between soft IP-based SL Design Processes and DPs? What is the best way for implementing DPs: MPG-based, OO-based or other?

Conclusions The well-proven dimension of a SL Design Process (e.g. wrapping) is a Design Pattern The Design Pattern brings the design content Both soft IP and metaprogramming bring technology Our methodology puts together the design content and technology, thus enabling better reuse, higher quality and productivity Future work will focus on the discovery of other HW design patterns and the development of the HDL code generators for their implementation

APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN Thank You for Your attention ! http://soften.ktu.lt/~stuik/dac03/