SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 1 Software engineering for real-time systems Section.

Slides:



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

Design Concepts and Principles
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
An Introduction to Programming and Object Oriented Design using Java 2 nd Edition. May 2004 Jaime Niño Frederick Hosch Chapter 0 : Introduction to Object.
Introduction To System Analysis and Design
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
© Copyright 2011 John Wiley & Sons, Inc.
Software engineering for real-time systems
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 1 Software engineering for real-time systems Section 5.
CS 425/625 Software Engineering System Models
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Ch3: Software Engineering Principles 1 What is a principle?  Definition:  Goals of accounting principles:  Goals of software engineering principles?
SWE Introduction to Software Engineering
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Dependable software - slide 1 Software engineering for real-time systems Section 2 Dependable.
CO320 Introduction to Object- Oriented Programming Michael Kölling 3.0.
Design Patterns and Responsibility Assignment CMPT 371 Fall 2004 J.W. Benham.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 1.
An Introduction to Rational Rose Real-Time
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Information Systems in Organisations System Development: The Environment.
Object-Oriented Analysis and Design OVERVIEW. Objectives  Describe Information Systems  Explain the role of a systems analyst  Introduce object-oriented.
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class.
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Requirements - slide 1 Software engineering for real-time systems Section 3 Requirements.
Introduction To System Analysis and Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
Sommerville, Mejia-Alvarez, 2009Software Engineering, Slide 1 Software Design u Deriving a solution which satisfies software requirements.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Identifying system components and their interfaces.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
1 CMPT 275 High Level Design Phase Modularization.
Understanding SharePoint Content Module 1. Overview  Defining Content in SharePoint  Defining Management of SharePoint Content.
© 2005 Prentice Hall1-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
1 Introduction to Design. 2 Outline Basics of design Design approaches.
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Software Engineering 2007/2008 Chapter 5 Designing the System.
Design Concepts ch-8
Software Design.
7. Modular and structured design
Coupling and Cohesion Rajni Bhalla.
Extending the Core® to YOUR Court Operations Management
Lecture 9- Design Concepts and Principles
Objects First with Java A Practical Introduction using BlueJ
Object-Oriented Design
Software Engineering Lecture #8.
CS223: Software Engineering
Lecture 9- Design Concepts and Principles
Chapter 0 : Introduction to Object Oriented Design
INFORMATION SYSTEMS PLAN
CS 8532: Advanced Software Engineering
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Presentation transcript:

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 1 Software engineering for real-time systems Section 4 Software design - core concepts

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 2 Objectives To:  Outline fundamental software design strategies.  Describe how and why modular design is essential for the production of good software. Introduction

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 3 Part 1 Design fundamentals

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 4 Overview of the design and development process

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 5 Specification translation - high-level description

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 6 Translation to the general design level

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 7 Detailed design level

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 8 A design problem

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 9 Control system software design - a functional approach

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 10 Control system software design - an object-based approach

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 11 Control system software design - a data-flow approach

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 12 Part 2 Modular design

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 13 Introducing modularization Modularization - the process of forming a complete software system from a set of individual units or modules. Module? A standardized part or independent unit in the construction of software. But how should a system be modularized? Example system: How should this be modularized?

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 14 Modularization – design solution 1

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 15 Modularization – design solution 2

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 16 Modules - design decisions

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 17 Methods to evaluate modularization (1) - coupling. - The amount of interaction between modules. Check points: - number of module interconnections. - complexity of module interconnections. Desirable features - few interconnections having low complexity. Evaluating modularization 1: coupling - the outside view

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 18 Coupling methods - overview

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 19 Content coupling Common coupling (common resource sharing) Coupling methods 1

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 20 Stamp coupling (data structure coupling) Data coupling by valueData coupling by reference Coupling methods 2

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 21 Methods to evaluate modularization (2) - cohesion. Look into the modules. How well do the component parts (the internal software machines) relate to each other? Strong relationships indicate a good cohesion or “glue” factor. This example has high cohesion - remove any part and the machine won’t work. High cohesion = “Good” Cohesion - ‘the inside view’ Evaluating modularization 2: cohesion - the inside view

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 22 The seven level cohesion model

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 23 END OF SECTION ‘Software design - core concepts’ Review of ‘Software design - core concepts’