软件工程:用Java语言描述(英文)

软件工程:用Java语言描述(英文)
作 者: 斯查
出版社: 机械工业出版社
丛编项: 计算机科学丛书
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 面向对象
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《软件工程:用Java语言描述(英文)》作者简介

内容简介

本书介绍经典的和面向对象的软件工程,强调理论、抽象和设计相结合,重视对软件工程学有指导作用的重要概念。本书分两部分,共14章及8个附录。第一部分包括第1-6章,向读者介绍软件工程的概念,给出了本书的框架。顺序讨论了软件工程的范围,软件过程及其问题,软件生命周期模型,逐步求精,CASE工具,测试原理,详细解释了类和对象,并且说明为什么面向对象的范型比结构化范型更成功。本书第二部分包括第7-14章,详细介绍软件过程的各个阶段,如需求,规格说明,计划,设计,实现与集成,维护,最终退役。还包括用于开发和维护软件的工具和技术,并对各阶段中有关的CASE工具、度量和测试技术加以说明。本书为英文版本。

图书目录

BRlEF CONTENTS

Prologue 1

PART 1

Introduction to the

Software Process

CNAPTER l

Scope of Soflware Engineering

CNAPTER 2

The Software Process and

Its Problems

CNAPTER 3

Software Life-Cycle Models

CMAPTER 4

Stepwise Retinement, CASE, and

Other Tools of the Trade

CNAPTER 5

Testing Principles

CHAPTER 6

Introduction to Objects

PART 2

The Phases of the Software Process

CNAPTER l

Requirements Phase

CNAPTER 8

Specification Phase

CMAPTER

Object-Oriented

Analysis Phase

CMAPTER lO

Planning Phase

CMAPTER ll

Design Phase

CNAPTER 12

implementation Phase

CMAPTER 13

Implementation and

Integration Phase

CMAPTER

Maintenance Phase

Epilogue

Appendices

APPENDlX A

Osbert Oglesby, Art Dealer

APPENDlX B

Software

Engineering Resources

APPEHDlX C

MSG Case Study:

Rapid Prototype

APPENDlX D

MSG Case Study: Structured

Systems Analysis

BRIEFCONTENTS

APPENDIX E

MSG Case Study:

Object-Oriented Analysis

APPBNDIX F

MSG Case Study: Software Project

Management Plan

APPENDIX O

MSG Case Study: Design

APPENDIX H

MSG Case Study: Black-Box

Test Cases

APPENDIX I

MSG Case Study: Source

Code

Bibliography

Author Inde

Subject Inde

CONTENTS

Prologue

PART 1

Introduction to the

Software Process

CHAPTIR 1

Scope of Software Engineering

1.1 Historical Aspects

1.2 Economic Aspects

1.3 Maintenance Aspects

1.4 Specification and Design Aspects

1.5 Team Programming Aspects

1.6 The Object-Oriented Paradignr.

1.7 Tenninology

Chapter Review

For Further Reading

Problems

References

CHAPTIR 2

The Software Process and

Its Problems

2.1 Client, Developer, and User

2.2 Requirements Phase

2.2.1Requirements Phase Testing

2.3 Specification Phase

2.3.1Specification Phase Tesring

2.4 Planning Phase

2.4.1Planning Phase Testing

2.5 Design Phase

2.5.1Design Phase Testing

2.6 Implementation Phase

2.6.1Implementation Phase Testing

2.7 Integration Phase

2.7.1Integration Phase Testing

2.8 Maintenance Phase

2.8.1Maintenance Phase Testing

2.9 Retirement

2.10Problems with Software Production:

Essence and Accidents

2.10.1Complexity

2.10.2Confonnity

2.10.3Changeability

2.10.4Invisibility

2.10.5No Silver Bullet?

Chapter Review

For Further Reading

Problems

References

CHAPTIR 3

Software Life-Cycle Models

3.1 Build-and-Fix Model

3.2 Waterfall Model

3.2.1 Analysis of the Waterfall Model

3.3 Rapid Prototyping Model

3.3.1Integrating the Waterfall and Rapid

Prototyping Models

3.4 Incremental Model

3.4.1Analysis of the Incremcntal Model

3.5 SpiralModel

3.5.1 Analysis of the Spiral Model

3.6 Comparison of Life-Cycle Models

3.7 Capability Maturity Model

3.8 ISO 9000

Chapter Review

For Further Reading

Problems

References

CHAPTIR 4

Stepwise Refinement, CASE, and

Other Tools of the Trade

4.1 Stepwise Refinement

4.1.1Stepwise Refinemcnt Example

4.2 Cost-Benefit Analysis

4.3 CASE (Computer-Aided Software

Engineering)

4.3.1Taxonomy of CASE

4.4 Scope of CASE

4.5 Software Versions

4.5.1Revisions

4.5.2Variations

4.6 Configuration Control

4.6.1Configuration Control during Product

Maintenance

4.6.2Baselines

4.6.3Configuration Control during Product

Development

4.7Build Tools

4.8 Productivity Gains with CASE Technology

4.9 Software Metrics

Chapter Review

For Further Reading

Problems

References

CHAPTIR 5

Testing Principles

5.1 Quality Issues

5.1.1 Software Quality Assurance

5.1.2Managerial Independence

5.2 Nonexecution-Based Testing

5.2.1Walkthroughs

5.2.2Managing Walkthroughs

5.2.3Inspections

5.2.4Comparison of Inspections and Walkthroughs

5.2.5Metrics for Inspections

5.3 Execution-Based Testing

5.4 What Should Be Tested?

5.4.1Utility

5.4.2Reliability

5.4.3Robustness

5.4.4Perfonnance

5.4.5Correctness

5.5Testing versus Correctness Proofs

5.5.1Example of a Correctness Proof

5.5.2Correctness Proof Case Study

5.5.3Correctness Proofs and Software

Engineering 129

5.6 Who Should Perform Execution-Based

Testing?

5.7 When Testing Stops

Chapter Review

For Further Reading

Problems

References

CHAPTIR 6

Introduction to Objects

6.1 What Is a Module?

6.2 Cohesion

6.2.1Coincidental Cohesion

6.2.2Logical Cohesion

6.2.3Temporal Cohesion

6.2.4Procedural Cohesion

6.2.5Conununicational Cohesion

6.2.6Informational Cohesion

6.2.7Functional Cohesion

6.2.8Cohesion Example

6.3 Coupling

6.3.1Content Coupling

6.3.2Common Coupling

6.3.3Control Coupling

6.3.4Stamp Coupling

6.3.5Data Coupling

6.3.6Coupling Example

6.4 Data Encapsulation

6.4.1Data Encapsulation and Product

Development

6.4.2Data Encapsulation and Product

Maintenance

6.5Abstract Data Types

6.6Information Hiding

6.7Objects

6.8Polymorphism and Dynamic Binding

6.9Cohesion and Coupling of Objects

6.10Reuse

6.10.1Impediments to Reuse

6.11 Reuse Case Studies

6.11.1Raytheon Missile Systems

Division

6.11.2Toshiba Software Factory

6.11.3NASASoftware

6.11.4GTE Data Services

6.11.5HcwIett-Packard

6.12 Reuse and Maintenance

6.13 Objects and Productivity

Chapter Review

For Further Reading

Problems

References

PART

The Phases of the

Software Process

CHAPTIR 7

Requirements Phase

7.1 Requirements Analysis Techniques

7.2 Rapid Prototyping

7.3 Human Factors

7.4 Rapid Prototyping as a Specification

Technique

7.5 Reusing the Rapid Prototype

7.6 Other Uses of Rapid Prototyping

7.7 Management Implications of the Rapid

Prototyping Model

7.8 Experiences with Rapid Prototyping

7.9 Joint Application Design

7.10 Comparison of Requirements Analysis

Techniques

7.11 Testing during the Requirements Phase

7.12 CASE Tools for the Requirements

Phase 212

7.13 Metrics for the Requirements Phase

7.14 MSG Case Study: Requirements Phase

7.15 MSG Case Study: Rapid Prototype

Chapter Review

For Further Reading

Problems

References

CHAPTIR 8

Specification Phase

8.1 The Specification Document

8.2 Informal Specifications

8.2.1Case Study: Text Processing

8.3 Structured Systems Analysis

8.3.1Sally's Software Shop

8.4Other Semiformal Techniques

8.5Entity-Relationship Modeling

8.6Finite State Machines

8.6.1Elevator Problem: Finite State

Machines

8.7 Petri Nets

8.7.1Elevator Problem: Petri Nets

8.8 Z 250

8.8.1Elevator Problem: Z

8.8.2Analysis of Z

8.9 Other Formal Techniques

8.10 Comparison of Specification

Techniques

8.11 Testing during the Specification Phase

8.12 CASE Tools for the Specification Phase

8.13 Metrics for the Specification Phase

8.14 MSG Case Study: Structured Systems

Analysis

Chapter Review

For Further Readine

Problems

References

CHAPTIR 9

Object-Oriented

Analysis Phase

9.1 Object-Oriented versus Structured Paradigm

9.2 Object-Oriented Analysis

9.3 Elevator Problem Object-Oriented Analysis

9.3.1Class Modeling

9.3.2Dynamic Modeling

9.3.3Functional Modeling

9.4 Object-Oriented Life-Cycle Models

9.5 CASE Tools for the Object-Oriented

Analysis Phase

9.6 MSG Case Study: Object-Oriented

Analysis

Chapter Review

For Further Reading

Problems

References

CHAPTlR lO

Planning Phase

l0.l Estimating Duration and Cost

l0.l.lMetrics for the Size of . Product

l0.1.2Techniques of Cost Estimation

l0.l.3 Intennediate COCOMO

l0.l.4Tracking Duration and Cost

Estimates

10.2 Components of a Software Project

Management Plan

l0.3 Software Project Management Plan

Framework

10.4 IEEE Software Project Management

Plan

l0.5 Planning of Testing

l0.6 Planning of Object-Oriented Projects

l0.7 Training Requirements

l0.8 Documentation Standards

l0.9 CASE Tools for the Planning Phase

l0.l0 Testing during the Planning Phase

l0.l1 MSG Case Study: Planning Phase

Chapter Review

For Further Reaamg

Problems

References

CHAPTlR ll

Design Phase

ll.l Design and Abstraction

11.2 Action-Oriented Design

ll .3 Data Flow Analysis

ll .3.l Data Flow Analysis Example

ll.3.2 Extensions

ll.4 Transaction Analysis

ll.5 Data-Oriented Design

ll.6 Jackson System Development

ll.6.lOverview of Jackson System

Development

ll.6.2 Why Jackson System Development

is Presented in This Chapter

l1.6.3Elevator Problcm: Jackson System

Dcvelopment

ll.6.4Analysis of Jackson System

Development

l1.7 Techniques of Jackson, Wamier, and

On-

ll.8 Object-Oriented Design

ll.8.l Elevator Problem: Object-Oriented

Design

ll.9 Detailed Oesign

ll.l0 Comparison of Action-, Data-, and

Object-Oriented Design

ll.ll Difficulties Associated with Real-Time

Systems 353

ll.l2 Real-Time Design Techniques

ll.13 Testing during the Design Phase

ll.14 CASE Tools for the Design Phase

11.15 Metrics for the Design Phase

ll.16 MSG Case Study: Object-Oriented

Design

Chapter Review

For Further Reading

Problems

References

CHAPTlR

Implementation Phase

12.1 Choice of Programming Language

12.2 Fourth Generation Languages

12.3 Structured Programming

l2.3.lHistory of Structured

Programming

l2.3.2Why the goto Statement Is

Considered Harmful

l2.4 Good Programming Practice

12.5 Coding Standards

l2.6 Team Organization

12.7 Democratic Team Approach

12.7.1Analysis of the Democratic Team

Approach

l2.8Classical Chief Programmer Team

Approach 388

12.8.1 The New York Times Project

12.8.2Impracticality of the Qassical Chief

Programmer Team Approach

12.9 Beyond Chief Programmer and

Democratic Teams

12.10 Portability

12.10.1 Hardware Incompatibilities

12.10.2 Operating System Incompatibilities

12.10.3 Numerical Software Incompatibilities

12.10.4 Compiler Incompatibilities

12.11 Why Portability?

12.12 Techniques for Achieving Portability

12.12.1 Portable System Software

12.12.2 Portable Application Software

12.12.3 PortableData

12.13 ModuleReuse

12.14 Module Test Case Selection

12.14.1 Testing to Specifications versus

Testing to Code

12.14.2 Feasibility of Testing to

Specifications

12.14.3 Fcasibility of Testing to Code

12.15 Black-Box Module-Testing

Techniques

12.15.1 Equivalence Testing and Boundary

Value Analysis

12.15.2 Functional Testing

12.16 Glass-Box Module-Testing

Techniques

12.16.1 Structural Testing: Statement,

Branch, and Path Coverage

12.16.2 Complexity Metrics

12.17 Code Walkthroughs and Inspections

12.18 Comparison of Module-Testing

Techniques

12.19 Cleanroom

12.20 Testing Objects

12.21 Management Aspects of Module-

Testing

12.21.1 When to Rewrite Rather Than

Debug a Module

12.22 Testing Distributed Software

12.23 Testing Real-Time Software

12.24 CASE Tools for the Implementation Phase

12.25 MSG Case Study: Black-Box Test Cases

Chapter Review

For Further Reading

Problems

References

CHAPTIR 13

Implementation and

Integration Phase

13.1Implementation and Integration

13.1.1Top-Down Implementation and

Integration

13.1.2Bottom-Up Implementation and

Integration

13.1.3Sandwich Implementation and

Integration

13.1.4Implementation and Integration of

Object-Orientcd Products

13.1.5 Management Issues during the

Implementation and Integration Phase

13.2 Testing during the Implementation and

Integration Phase

13.3Integration Testing of Graphical User

Interfaces

13.4Product Testing

13.5Acceptance Testing

13.6 CASE Tools for the Implementation and

Integration Phase

13.7 CASE Tools for the Complete Software

Process

13.8 Language-Centered Environments

13.9 Structure-Oriented Environments

13.10 Toolkit Environments

13.11 Integrated Environments

13.11.1 Process Integration

13.11.2 Tool Integration

13.11.3 Other Fonns of Integration

13.12 Environments for Business

Applications

13.13 Public Tool Infrastructures

13.14 Comparison of Environment Types

13.15 Metrics for the Implementation and

Integration Phase

13.16 MSG Case Study: Implementation and

Integration Phase

Chapter Review

For Further Reading

Problems

References

CHAPTIR 14

Maintenance Phase

14.1 Why Maintenance Is Necessary

14.2 What Is Required of Maintenance

Progranuners

14.3 Maintenance Case Study

14.4 Management of Maintenance

14.4.1Fault Reports

14.4.2Authorizing Changes to the

Product

14.4.3 Ensuring Maintainability

14.4.4Problem of Repeated Maintenance

14.5 Maintenance of Object-Oriented

Software

14.6 Maintenance Skills versus Development

Skills

14.7 Reverse Engineering

14.8 Testing during the Maintenance

Phase

14.9 CASE Tools for the Maintenance

Phase

14.10 Metrics for the Maintenance Phase

Chapter Review

For Further Reading

Problems

References

Epilogue

Appendices

APPIMDIX A

Osbert Oglesby--Art Dealer

APPINDIX ?B

Software

Engineering Resources

APPINDIX c

MSG Case Study:

Rapid Prototype

APPINDIX D

MSG Case Study: Structured

Systems Analysis

APPINDIX E

MSG Case Study:

Object-Oriented Analysis

APPINDIX F

MSG Case Study: Software Project

Management Plan

APPINDIX O

MSG Case Study: Design

APPINDIX H

MSG Case Study: Black-Box

TestCases 539

APPINDIX 1

MSG Case Study: Source

Code

Bibliography

Author Index