Download presentation
Presentation is loading. Please wait.
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’
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.