Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 1 Software engineering for real-time systems Section."— Presentation transcript:

1 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

2 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

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

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

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

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

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

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

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

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

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

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

13 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?

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

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

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

17 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

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

19 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

20 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

21 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

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

23 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’


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

Similar presentations


Ads by Google