1. Trang chủ
  2. » Công Nghệ Thông Tin

Seventh Edition - Chương 13 ppsx

61 313 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Object-Oriented and Classical Software Engineering
Tác giả Stephen R.. Schach
Trường học Vanderbilt University
Chuyên ngành Software Engineering
Thể loại Textbook
Năm xuất bản 2007
Định dạng
Số trang 61
Dung lượng 4,66 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Slide 13.4Overview contd  The design workflow  The test workflow: Design  Formal techniques for detailed design  Real-time design techniques  CASE tools for design  Metrics for des

Trang 2

Slide 13.2

CHAPTER 13

DESIGN

Trang 3

Object-oriented design: The MSG

Foundation case study

Trang 4

Slide 13.4

Overview (contd)

The design workflow

The test workflow: Design

Formal techniques for detailed design

Real-time design techniques

CASE tools for design

Metrics for design

Challenges of the design workflow

Trang 5

Slide 13.5

© The McGraw-Hill Companies, 2007

Data and Actions

Two aspects of a product

 Actions that operate on data

 Data on which actions operate

The two basic ways of designing a product

Trang 6

Slide 13.6

13.1 Design and Abstraction

Classical design activities

 Each module is designed

 Specific algorithms, data structures

Trang 7

Slide 13.7

© The McGraw-Hill Companies, 2007

13.2 Operation-Oriented Design

 Use it with most specification methods

(Structured Systems Analysis here)

information from the DFD

Figure 13.1

Trang 8

Slide 13.8

Data Flow Analysis

Every product transforms input into output

Determine

 “Point of highest abstraction of input”

 “Point of highest abstract of output”

Figure 13.2

Trang 9

Slide 13.9

© The McGraw-Hill Companies, 2007

Data Flow Analysis (contd)

modules

has high cohesion

 Minor modifications may be needed

to lower the coupling

Trang 11

Slide 13.11

© The McGraw-Hill Companies, 2007

Mini Case Study: Word Counting (contd)

First refinement

Now refine the two modules of

communicational cohesion

Figure 13.4

Trang 12

Slide 13.12

Second refinement

All eight modules now have functional cohesion

Mini Case Study: Word Counting (contd)

Figure 13.5

Trang 13

Slide 13.13

© The McGraw-Hill Companies, 2007

Word Counting: Detailed Design

complete

 So proceed to the detailed design

detailed design:

 Tabular

 Pseudocode (PDL — program

design language)

Trang 14

Slide 13.14

Detailed Design: Tabular Format

Figure 13.6(a)

Trang 15

Slide 13.15

© The McGraw-Hill Companies, 2007

Detailed Design: Tabular Format (contd)

Figure 13.6(b)

Trang 16

Slide 13.16

Detailed Design: Tabular Format (contd)

Figure 13.6(c)

Trang 17

Slide 13.17

© The McGraw-Hill Companies, 2007

Detailed Design: Tabular Format (contd)

Figure 13.6(d)

Trang 18

Slide 13.18

Detailed Design: PDL Format

Figure 13.7

Trang 19

Slide 13.19

© The McGraw-Hill Companies, 2007

13.3.2 Data Flow Analysis Extensions

 More than one input stream, and

 More than one output stream

Trang 20

Slide 13.20

Data Flow Analysis Extensions (contd)

stream

 Adjust the coupling if needed

Figure 13.8

Trang 22

Slide 13.22

Transaction Analysis (contd)

 There is logical cohesion and control coupling

Trang 23

Slide 13.23

© The McGraw-Hill Companies, 2007

Corrected Design Using Transaction Analysis

Trang 24

Slide 13.24

13.5 Data-Oriented Design

Basic principle

structure of its data

Three very similar methods

Data-oriented design

design

largely fallen out of fashion

Trang 25

Slide 13.25

© The McGraw-Hill Companies, 2007

13.6 Object-Oriented Design (OOD)

Aim

 Design the product in terms of the classes extracted during OOA

If we are using a language without

inheritance (e.g., C, Ada 83)

 Use abstract data type design

If we are using a language without a type statement (e.g., FORTRAN, COBOL)

 Use data encapsulation

Trang 26

Slide 13.26

Object-Oriented Design Steps

OOD consists of two steps:

Step 1 Complete the class diagram

 Determine the formats of the attributes

 Assign each method, either to a class or to a client that sends a message to an object of that class

Step 2 Perform the detailed design

Trang 27

Slide 13.27

© The McGraw-Hill Companies, 2007

Object-Oriented Design Steps (contd)

Step 1 Complete the class diagram

 The formats of the attributes can be directly

deduced from the analysis artifacts

Example: Dates

 U.S format (mm/dd/yyyy)

 European format (dd/mm/yyyy)

 In both instances, 10 characters are needed

The formats could be added during analysis

To minimize rework, never add an item to a UML

diagram until strictly necessary

Trang 28

Slide 13.28

Object-Oriented Design Steps (contd)

 Assign each method, either to a class or to a

client that sends a message to an object of that class

clients of an object, assign the method to the object, not the clients

Trang 29

Slide 13.29

© The McGraw-Hill Companies, 2007

13.7 Object-Oriented Design: The Elevator Problem Case Study

CRC card for the elevator controller

Trang 30

Slide 13.30

OOD: Elevator Problem Case Study (contd)

Figure 12.9 (again)

Trang 31

Slide 13.31

© The McGraw-Hill Companies, 2007

OOD: Elevator Problem Case Study (contd)

 8 Start timer

 10 Check requests, and

 11 Update requests

are assigned to the elevator controller

elevator controller

Trang 32

Slide 13.32

OOD: Elevator Problem Case Study (contd)

The remaining eight responsibilities have the form

something”

These should be assigned to that other class

Methods open doors, clos e doors are assigned to class

Elevator Doors Class

Methods turn off bu tton, turn on button are assigned to

classes Floor Button Class and Elevator Problem Class

Trang 33

Slide 13.33

© The McGraw-Hill Companies, 2007

Figure 13.11 Detailed Class Diagram: Elevator Problem

Trang 35

Slide 13.35

© The McGraw-Hill Companies, 2007

13.8 Object-Oriented Design: The MSG Foundation Case Study

the next slide

 Java has built-it functions for handling dates

Trang 36

Slide 13.36

Final Class Diagram: MSG Foundation

Figure 13.13

Trang 37

Slide 13.37

© The McGraw-Hill Companies, 2007

Class Diagram with Attributes: MSG Foundation

Figure 13.14

Trang 38

Slide 13.38

Assigning Methods to Classes: MSG Foundation

 From the inheritance tree, these accessor/mutator methods should be

assigned to Asset Class

 So that they can be inherited by

both subclasses of Asset Class

(Investment Class and Mortgage Class)

Figure 13.15

Trang 39

Slide 13.39

© The McGraw-Hill Companies, 2007

Assigning Methods to Classes: MSG Foundation (contd)

equally straightforward

 See Appendix G

Trang 40

Slide 13.40

Detailed Design: MSG Foundation

appropriate format

 PDL (pseudocode) here

Trang 41

Slide 13.41

© The McGraw-Hill Companies, 2007

Method EstimateFundsForWeek::computeEstimatedFunds

Figure 13.16

Trang 42

Slide 13.42

Method Mortgage::totalWeeklyNetPayments

Figure 13.17

Trang 43

Slide 13.43

© The McGraw-Hill Companies, 2007

13.9 The Design Workflow

 The analysis workflow artifacts are iterated and integrated until the

programmers can utilize them

 Implementation language

 Reuse

 Portability

Trang 44

Slide 13.44

The Design Workflow (contd)

The idea of decomposing a large workflow into

independent smaller workflows (packages) is

carried forward to the design workflow

The objective is to break up the upcoming

implementation workflow into manageable

pieces

Subsystems

It does not make sense to break up the MSG

Foundation case study into subsystems — it is too small

Trang 45

Slide 13.45

© The McGraw-Hill Companies, 2007

The Design Workflow (contd)

Why the product is broken into

subsystems:

 It is easier to implement a number of

smaller subsystems than one large

system

 If the subsystems are independent, they can be implemented by programming

teams working in parallel

 The software product as a whole can then be delivered sooner

Trang 46

Slide 13.46

The Design Workflow (contd)

The architecture of a software product

includes

 The various components

 How they fit together

 The allocation of components to

Trang 47

Slide 13.47

© The McGraw-Hill Companies, 2007

The Design Workflow (contd)

The architect needs to make trade-offs

 Every software product must satisfy its functional requirements (the use cases)

 It also must satisfy its nonfunctional

requirements, including

 Portability, reliability, robustness, maintainability, and security

 It must do all these things within budget and time constraints

The architect must assist the client by laying out the trade-offs

Trang 48

Slide 13.48

The Design Workflow (contd)

requirements, functional and

nonfunctional, within the cost and time constraints

 Some sort of compromises have to be

made

 Relax some of the requirements;

 Increase the budget; and/or

 Move the delivery deadline

Trang 49

Slide 13.49

© The McGraw-Hill Companies, 2007

The Design Workflow (contd)

The architecture of a software product is critical

 The requirements workflow can be fixed during the analysis workflow

 The analysis workflow can be fixed during the

Trang 50

Slide 13.50

13.10 The Test Workflow: Design

 The design must correctly reflect the

specifications

 The design itself must be correct

 Essential for transaction-oriented products

 However, they are insufficient —

specification-driven inspections are also needed

Trang 51

Slide 13.51

© The McGraw-Hill Companies, 2007

13.11 The Test Workflow: The MSG Foundation Case Study

performed

 All aspects of the design must be checked

design may be changed during the implementation workflow

Trang 52

Slide 13.52

13.12 Formal Techniques for Detailed Design

Implementing a complete product and then proving it correct is hard

However, use of formal techniques during

detailed design can help

 Correctness proving can be applied to sized pieces

module- The design should have fewer faults if it is

developed in parallel with a correctness proof

 If the same programmer does the detailed

design and implementation

 The programmer will have a positive attitude to the detailed design

 This should lead to fewer faults

Trang 53

Slide 13.53

© The McGraw-Hill Companies, 2007

13.13 Real-Time Design Techniques

 Inputs come from the real world

 Software has no control over the timing of the inputs

 Frequently implemented on distributed software

Trang 54

Slide 13.54

Real-Time Design Techniques (contd)

real-time systems

 Determining whether the timing

constraints are met by the design

Trang 55

Slide 13.55

© The McGraw-Hill Companies, 2007

Real-Time Design Techniques (contd)

extensions of non-real-time methods

to real-time

use of any real-time methods

would like it to be

Trang 56

Slide 13.56

13.14 CASE Tools for Design

It is critical to check that the design artifacts incorporate all aspects of the analysis

 To handle analysis and design artifacts we

therefore need upperCASE tools

 Are built around a data dictionary

 They incorporate a consistency checker, and

 Screen and report generators

 Management tools are sometimes included, for

 Estimating

 Planning

Trang 57

Slide 13.57

© The McGraw-Hill Companies, 2007

CASE Tools for Design (contd)

object-oriented design

 Commercial tools

 Software through Pictures

 IBM Rational Rose

 Together

 Open-source tool

 ArgoUML

Trang 58

Slide 13.58

13.15 Metrics for Design

object-oriented paradigm

Trang 59

Slide 13.59

© The McGraw-Hill Companies, 2007

Metrics for Design (contd)

the object-oriented paradigm

 They have been challenged on both theoretical and experimental grounds

Trang 60

Slide 13.60

13.16 Challenges of the Design Phase

The design team should not do too much

 The detailed design should not become code

The design team should not do too little

 It is essential for the design team to produce

a complete detailed design

Trang 61

Slide 13.61

© The McGraw-Hill Companies, 2007

Challenges of the Design Phase (contd)

 Identified,

 Provided with a formal education,

 Apprenticed to great designers, and

 Allowed to interact with other designers

these designers, with appropriate rewards

Ngày đăng: 01/08/2014, 14:20

TỪ KHÓA LIÊN QUAN