新闻资讯
看你所看,想你所想

软件工程基础教程

《软件工程基判续述础教程》内容循序渐进、深入浅出、概念清晰、结构条理,将软件工程的理论知识与软件工程的应用实践相结合,并配有适量的习题,帮助读者从不同的角度理解和掌握所学的知识,构建完整的软件工程知识体系。

  • 书名 软件工程基础教程
  • 出版社 国防工业出版社
  • 页数 283页
  • 开本 16
  • 作者 潘广贞 杨剑

图书信息

  作 译 者:田文洪

  出版时间:2012-01

  千 字 数:533

作者简介

  作者姓名:田文洪

田文洪

  学位:博士

  任职:教授、博导

  研究方向:云计算、大数据资源调度来自;高性能并行处理;NP难问题近似算法

  其他职业:电子科技大学客座脱口秀表演艺术家

内容简介

  本书由浅入深、循序渐进地介绍了规范化的软件开发方法所涉及的概念和方法。内容包括过程模型、软件需求、设计工程、生产率和工作量度量、软件测试、软件维护、质量管理、项目管理和风险管理等内容,最后介绍了一些常用的软件开发工具,并给出编码风格上的来自建议。

目 录

  U求放nit 1 Introduction to Software Engineeri客绿阻评企必ng 1

  软件工程介绍

  Learning Objectives 1

  学习目标

  1.1 A Brief Int360百科roduction to Software Engineering 1

  软件工程简介

  1.1.1 The Pioneering Era 2

  开创时期

  1.1.2 1945 to 1965: The Origins 2

  1945到1965: 发起

  1.1.3 1965 to 1985: The Softw海诉玉策斤味米候况形旧are Crisis 犯规甲曾脚2

  1965到1985:软件危机

  1.1.4 1985 t校京o 1989: No Silver Bullet 3

  1985到1989:没有银弹

  1.1.5 1990 to 1999: Prominence of the Internet 4

  1990到1999:Internet盛行

  1.1.6 帝运刚的吸湖呢2000 to Present: Lightweight Methodologies 4

  2000年至今:轻量级方法

  1.1.7 Current Trends in Software Engineering 4

  软件工程的发展趋势

  1.1.8 Software Engineering Today 5

  今天的软件工程

  1.2 Software 5

  软件

  1.2.1 A Formal Definition of Software 5

织急局  软件的正式定义

  1.2.2 Characteristics of Software 5

  软件的特征

  1.2.3 The Dual Roles of Software 7

  软件的双重角色

  1.2.4 Class汽执解ification of Software 7

  软件分类

  1.2.5 皇务识地房轮级黑记Why does Software Change Very Fast? 7

  为什么软河香却植坏年率采空件变化快?

  1.3 Why Do We Need Software Engi移须neering? 8

  为什么需要软件工程?

  1富换队危等文算宜.3.1 Softwa树获备开重re Crisis 般良间限号镇查散境8

  软件危机

  1.3.2 An Economist's View of Software and Softwa交心践置陈劳便轴re Engineerin欢液期测g 8

  一个经济学家对软件和软件工程的看法

  1.3.3 The Formal Definition of Software Engineering 9

  软件工程的正式定义

  1.4 Major Concerns and Objectives of Software Engineering 9

  软件工程的目标和担忧

  1.5 Seven Principles for Software Engineering 9

  软件工程的七个原则

  1.5.1 Manage Using a Phased Lifecycle Plan 9

  使用阶段性的生命周期管理计划

  1.5.2 Perform Continuous Validation 10

  进行持续验证

  1.5.3 Maintain Disciplined Product Control 10

  维持有效的产品控制

  1.5.4 Use Modern Programming/Engineering Practices 10

  运用现代编程/工程实践

  1.5.5 Maintain Clear Accountability for Results 10

  维护清晰的问责机制

  1.5.6 Use Better and Fewer People 10

  用更好更少的人

  1.5.7 Maintain a Commitment to Improve the Process 11

  保持过程改进

  1.6 Major Topics in Software Engineering 11

  软件工程中的主要课题

  1.7 Relationship to Other Disciplines 13

  其他相关学科

  1.8 Some Misunderstandings about Software Engineering 14

  一些对软件工程的错误认识

  1.9 Software Engineering Code of Professional and Ethical Responsibility 15

  软件工程的专业和道德责任

  Summary 16

  总结

  Notes 16

  重点注释

  Glossary of this unit 17

  术语

  Quiz 17

  习题

  References 18

  参考文献

  Further Reading 18

  扩展阅读

  Unit 2 Process Models 21

  过程模型

  Learning Objectives 21

  学习目标

  2.1 Introduction 21

  简介

  2.2 What is Software Process? 22

  什么是软件过程?

  2.3 Maturity Models 23

  成熟度模型

  2.4 Software Process Models 24

  软件过程模型

  2.4.1 The Waterfall Model 24

  瀑布模型

  2.4.2 The Evolutionary Model 26

  演化模型

  2.4.3 Component-based Model 28

  基于组件的模型

  2.4.4 Incremental Process Models 29

  增量模型

  2.4.5 Some New Process 33

  一些新模型

  2.5 How to Choose Process Models? 33

  如何选择过程模型?

  2.6 The Relationship between Process and Product 33

  过程和产品的关系

  Summary 34

  总结

  Notes 34

  重点注释

  Glossary of this unit 35

  术语

  Quiz 35

  习题

  References 36

  参考文献

  Unit 3 Software Requirements 37

  软件需求

  Learning Objectives 37

  学习目标

  3.1 Software Requirements Fundamentals 37

  软件需求基础

  3.1.1 Definition of a Software Requirement 38

  软件需求定义

  3.1.2 Product and Process Requirements 38

  产品和过程需求

  3.1.3 Functional and Non-functional Requirements 39

  功能和非功能需求

  3.1.4 Quantifiable Requirements 39

  可量化的需求

  3.1.5 System and Software Requirements 39

  系统需求和软件需求

  3.2 Requirements Process 40

  需求过程

  3.2.1 Process Models 40

  过程模型

  3.2.2 Process Actors 41

  过程角色

  3.3 Requirements Elicitation 41

  需求获取

  3.3.1 Requirements Sources 42

  需求来源

  3.3.2 Elicitation Techniques 42

  需求获取方法

  3.4 Requirements Analysis 43

  需求分析

  3.4.1 Requirements Classification 44

  需求分类

  3.4.2 Conceptual Modeling 45

  概念建模

  3.4.3 Architectural Design and Requirements Allocation 46

  结构设计和需求配置

  3.4.4 Requirements Negotiation 46

  需求谈判

  3.5 Requirements Specification 47

  需求规格

  3.5.1 The System Definition Document 47

  系统定义文档

  3.5.2 The Software Requirements Specification 48

  需求规格说明书

  3.6 Requirements Validation 52

  需求验证

  3.6.1 Requirements Reviews 52

  需求审查

  3.6.2 Prototyping 53

  原型

  3.6.3 Model Validation 53

  模型验证

  3.6.4 Acceptance Tests 54

  验收测试

  3.7 Practical Considerations 54

  实际考虑因素

  3.7.1 Iterative Nature of the Requirements Process 54

  需求过程的迭代

  3.7.2 Change Management 55

  变更管理

  3.8 Example: Online Recruiting System Requirement Specification 55

  例:网上招聘系统的需求规格说明书

  3.8.1 Introduction 55

  导言

  3.8.2 System Definitions 55

  系统定义

  3.8.3 Running Environment 56

  应用环境

  3.8.4 Function Specifications 57

  功能规格

  3.8.5 Performance Requirements 59

  性能需求

  3.8.6 Products Submitting 59

  产品提交

  3.8.7 Implementation Constrains 59

  实现约束

  Summary 59

  总结

  Notes 59

  重点注释

  Glossary of this unit 60

  术语

  Quiz 60

  习题

  References 60

  参考文献

  Unit 4 Software Design Engineering 62

  软件设计工程

  Learning Objectives 62

  学习目标

  4.1 Introduction to Design Engineering 62

  设计工程简介

  4.2 Design Process and Quality 63

  设计过程和质量

  4.3 Design Technologies 64

  设计技术

  4.3.1 Abstraction 64

  抽象

  4.3.2 Design Patterns 65

  设计模式

  4.3.3 Modularization 65

  模块化

  4.3.4 Information Hiding 67

  信息隐藏

  4.3.5 Function Independence 67

  功能独立

  4.3.6 Refinement 68

  改进

  4.3.7 Refactoring 68

  重构

  4.4 Design Models 68

  设计模型

  4.4.1 Data Design 70

  数据结构设计

  4.4.2 Architecture Design 72

  架构设计

  4.4.3 Interface Design 76

  接口设计

  4.4.4 Component Design 76

  组件设计

  4.4.5 Deploy Design 77

  部署设计

  4.5 Design Case Study 80

  设计实例

  Summary 82

  总结

  Notes 83

  重点注释

  Glossary of this unit 84

  术语

  Quiz 84

  习题

  References 84

  参考文献

  Unit 5 Software Productivity and Effort Metrics 86

  软件生产率和工作量度量

  Learning Objectives 86

  学习目标

  5.1 Introduction to Software Productivity and Project Effort Estimation 86

  简介

  5.2 Software Productivity Estimation 88

  软件生产率估计

  5.2.1 Size-based Metrics-Direct Measurement 89

  基于规模的度量--直接度量

  5.2.2 Function-points Metrics-Indirect Measurement 90

  功能点度量--间接度量

  5.2.3 The Relationship Between LOC and FP Based Metrics 92

  LOC和FP度量的关系

  5.2.4 How to Use These Metrics for Productivity Estimation? 92

  如何运用这些度量进行生产率估计?

  5.3 Estimation for Project Effort 93

  项目工作量估计

  5.3.1 Algorithmic Cost Modeling -Empirical Measurement 93

  算法成本模型--基于经验的度量

  5.3.2 The COCOMO Model 94

  COCOMO模型

  5.3.3 Estimation of Effort in Project Planning 95

  项目计划中的工作量度量

  5.3.4 Estimation of Effort by Tasks Breakdown 95

  通过任务分解来估算工作量

  5.3.5 Estimation of Effort by Current Available Resources 96

  通过目前可用的资源来估算工作量

  Summary 96

  总结

  Notes 96

  重点注释

  Glossary of this unit 98

  术语

  Quiz 98

  习题

  References 98

  参考文献

  Unit 6 Software Quality Management 99

  软件质量管理

  Learning Objectives 99

  学习目标

  6.1 An Introduction to Software Quality Management 99

  简介

  6.2 Software Quality 100

  软件质量

  6.2.1 Definition of Software Quality 100

  软件质量定义

  6.2.2 Quality Control 101

  质量控制

  6.2.3 Quality Assurance 101

  质量保证

  6.2.4 Quality Costs 102

  质量成本

  6.3 Software Quality Assurance 102

  软件质量保证

  6.3.1 Background Introduction 103

  背景介绍

  6.3.2 SQA Activities 104

  SQA活动

  6.4 Software Review 106

  软件审查

  6.4.1 Impact of Software Bug Costs 106

  软件错误的代价

  6.4.2 Software Defect Indicator and Removal 107

  软件缺陷的发现和消除

  6.5 Formal Technique Review 107

  正式技术审查

  6.5.1 Review Report 107

  审查报告

  6.5.2 Review Tutorial 108

  审查指南

  6.6 Software Reliability 109

  软件可靠性

  6.6.1 Measurement of Reliability and Availability 109

  可靠性和可用性度量

  6.6.2 Software Security 109

  软件安全

  6.7 ISO 9000 Family of Standards 109

  ISO 9000标准

  Summary 113

  总结

  Notes 113

  重点注释

  Glossary of this unit 114

  术语

  Quiz 114

  习题

  References 114

  参考文献

  Unit 7 Testing Techniques 116

  测试方法

  Learning Objectives 116

  学习目标

  7.1 Testing Introduction 116

  测试简介

  7.2 Testing Objective 117

  测试目标

  7.3 Testing Evaluation 117

  测试评估

  7.3.1 Coverage/Thoroughness Measures 117

  覆盖性/彻底性度量

  7.3.2 Fault Seeding 117

  故障植入

  7.4 Testing Techniques 117

  测试方法

  7.4.1 White-box Testing 117

  白盒测试

  7.4.2 Black-box Testing 122

  黑盒测试

  7.5 Example: Testing Design of Online Recruiting System 123

  例:网上招聘系统的测试设计

  7.5.1 Introduction 123

  简介

  7.5.2 Testing Design 124

  测试设计

  7.5.3 Testing Cases 124

  测试用例

  Summary 124

  总结

  Notes 125

  重点注释

  Glossary of this unit 125

  术语

  Quiz 126

  习题

  References 126

  参考文献

  Unit 8 Testing Strategies 127

  测试策略

  Learning Objectives 127

  学习目标

  8.1 Testing Strategies Introduction 127

  测试策略简介

  8.2 Unit Testing 127

  单元测试

  8.2.1 Unit Testing Considerations 128

  单元测试考虑因素

  8.2.2 Unit Testing Procedures 129

  单元测试过程

  8.3 Integration Testing 130

  集成测试

  8.3.1 Top-down Integration 130

  自顶向下集成

  8.3.2 Bottom-up Integration 131

  自底向上集成

  8.3.3 Regression Testing 132

  回归测试

  8.3.4 Smoke Testing 132

  冒烟测试

  8.4 Validation Testing 132

  验证测试

  8.4.1 Validation Testing Criteria 133

  验证测试标准

  8.4.2 Configuration Review 133

  配置评审

  8.4.3 Alpha and Beta Testing 133

  Alpha和Beta测试

  8.5 System Testing 134

  系统测试

  8.5.1 Recovery Testing 134

  恢复测试

  8.5.2 Security Testing 134

  安全性测试

  8.5.3 Stress Testing 134

  压力测试

  8.5.4 Performance Testing 135

  性能测试

  8.6 Example: Testing Report of Online Recruiting System 135

  例:网上招聘系统测试报告

  8.6.1 Introduction 135

  简介

  8.6.2 Testing Time, Place, and People 136

  测试时间、地点和人员

  8.6.3 Testing Environment 136

  测试环境

  8.6.4 Testing Execution 136

  测试执行

  8.6.5 Testing Result Analysis 137

  测试结果分析

  8.6.6 Testing Evaluation 138

  测试评估

  Summary 138

  总结

  Notes 138

  重点注释

  Glossary of this unit 139

  术语

  Quiz 139

  习题

  References 139

  参考文献

  Unit 9 Software Maintenance 141

  软件维护

  Learning Objectives 141

  学习目标

  9.1 Software Maintenance Fundamentals 141

  软件维护基础

  9.1.1 Definitions and Terminology 142

  定义和术语

  9.1.2 Need for Maintenance 142

  维护的必要性

  9.1.3 Majority of Maintenance Costs 142

  维护成本

  9.2 Key Issues in Software Maintenance 143

  软件维护的关键问题

  9.2.1 Technical Issues 143

  技术问题

  9.2.2 Management Issues 145

  管理问题

  9.2.3 Maintenance Cost Estimation 146

  维护成本估计

  9.3 Maintenance Process 146

  维护过程

  9.3.1 Maintenance Processes 146

  维护过程

  9.3.2 Maintenance Activities 148

  维护活动

  9.4 Techniques for Maintenance 150

  维护技术

  9.4.1 Program Comprehension 150

  程序理解

  9.4.2 Reengineering 150

  再工程

  9.4.3 Reverse Engineering 150

  逆向工程

  Summary 151

  总结

  Notes 151

  重点注释

  Glossary of this unit 151

  术语

  Quiz 151

  习题

  References 151

  参考文献

  Unit 10 Software Project Management 153

  软件项目管理

  Learning Objectives 153

  学习目标

  10.1 Introduction to Project Management 153

  项目管理简介

  10.2 Four Elements of Project Management 156

  项目管理四要素

  10.3 The People 157

  人员

  10.3.1 People Management Capability Maturity Model 158

  人员管理能力成熟度模型

  10.3.2 Team Building 160

  团队建设

  10.3.3 Team Organization 161

  团队组织

  10.3.4 Virtual Teams 162

  虚拟团队

  10.4 The Product 163

  产品

  10.4.1 Software Scope 163

  软件范围

  10.4.2 Problem Decomposition 164

  问题分解

  10.5 The Process 164

  过程

  10.6 The Project 167

  项目

  10.6.1 Project Estimation 168

  项目估算

  10.6.2 Project Planning 169

  项目规划

  Summary 170

  总结

  Notes 170

  重点注释

  Glossary of this unit 172

  术语

  Quiz 172

  习题

  References 172

  参考文献

  Unit 11 Software Risk Analysis and Management 174

  软件风险分析和管理

  Learning Objectives 174

  学习目标

  11.1 An Introduction to Software Risk Management 174

  软件风险管理简介

  11.2 Software Risk Management Strategy 175

  软件风险管理策略

  11.3 Software Risk Identification 176

  软件风险识别

  11.3.1 Evaluate the Whole Project 176

  评价整个项目

  11.3.2 Risk Classification 177

  风险分类

  11.4 Software Risk Assessment 178

  软件风险评估

  11.4.1 Building Risk List 178

  制定风险清单

  11.4.2 Assessing Risk Influence Factors 179

  评估风险影响因素

  11.4.3 Dynamic Ranking 183

  动态排名

  11.5 Software Risk Refinement 183

  软件风险改进

  11.6 Software Risk Aversion, Monitoring and Management 184

  软件风险规避、监控和管理

  Summary 187

  总结

  Notes 188

  重点注释

  Glossary of this unit 188

  术语

  Quiz 189

  习题

  References 189

  参考文献

  Unit 12 Software Engineering Development Tools 190

  软件工程开发工具

  Learning Objectives 190

  学习目标

  12.1 Software Requirements Tools 190

  软件需求工具

  12.2 Software Design Tools 191

  软件设计工具

  12.2.1 IBM Rational Software Architect 191

  IBM 软件开发

  12.2.2 PowerDesigner 191

  PowerDesigner工具

  12.3 Software Architecture Tools 192

  软件架构工具

  12.3.1 Visual Studio.NET 192

  Visual Studio .NET工具

  12.3.2 Visual Borland JBuilder 193

  Visual Borland JBuilder工具

  12.3.3 Eclipse 194

  Eclipse工具

  12.4 Software Maintenance Tools 196

  软件维护工具

  12.4.1 CASE Tool 196

  CASE工具

  12.4.2 Information Repository of CASE Environment 197

  CASE环境的信息库

  12.4.3 CASE Environment Structure 197

  CASE环境结构

  12.5 Software Testing Tools 198

  软件测试工具

  12.5.1 WinRunner 198

  WinRunner工具

  12.5.2 LoadRunner 199

  LoadRunner工具

  12.6 Software Configuration Management Tools 201

  软件配置管理工具

  12.6.1 Software Configuration Manager 202

  软件配置管理

  12.6.2 Source Code Management 203

  软件代码管理

  12.6.3 Version Management 204

  版本管理

  12.6.4 Operation Command 205

  操作命令

  12.7 Software Engineering Tools 211

  软件工程工具

  Appendix A General Style and Coding Standards for Software Projects 214

  软件项目的一般风格和编码标准

  A.1 Introduction 214

  简介

  A.1.1 Purpose 214

  目的

  A.1.2 Scope 215

  范围

  A.1.3 Coding Standard Documents 215

  编码标准文档

  A.1.4 Other Related Project Documents 215

  其他相关文档

  A.1.5 Terms Used in This Document 215

  文档中的术语

  A.1.6 References 216

  参考文献

  A.1.7 Our Limited Lifetime Warranty 216

  有限的使用期限保证

  A.1.8 The Emotional Topic of Coding Standards 216

  编码标准的情绪问题

  A.2 Project Dependent Standards 217

  项目依赖标准

  A.3 File And Module Guidelines 217

  文件和模块指南

  A.3.1 Module Design Guidelines 217

  模块设计指南

  A.3.2 Header (Include) Files 218

  Header (Include) 文件

  A.3.3 Source File Layout Guideline 218

  源文件布局指南

  A.3.4 File Naming Guideline 219

  文件命名指南

  A.3.5 File Informational Headers 219

  文件头

  A.3.6 Subroutine Header 220

  子程序头

  A.4 Constants and Macros 221

  常量和宏

  A.4.1 Use Constants and Macros Instead of Hard Coded Literal Values 221

  用常量和宏代替硬编码

  A.4.2 Only Define Constants and Macros Once 221

  常量和宏只定义一次

  A.4.3 Place Parenthesis around Each Macro Parameters 221

  为每个宏参数加小括号

  A.4.4 Notes about Style 221

  记录风格

  A.5 Global Data Guidelines 222

  全局数据指南

  A.6 Subroutines 222

  子程序

  A.6.1 Subroutine Scope Guidelines 222

  子程序范围指南

  A.6.2 Subroutine Declaration Guidelines 222

  子程序声明指南

  A.6.3 Subroutine Layout Guidelines 222

  子程序布局指南

  A.6.4 Subroutine Size Guidelines 222

  子程序规模指南

  A.6.5 Parameter List Guidelines 223

  参数列表指南

  A.6.6 Variable Declaration Guidelines 223

  变量声明指南

  A.7 Comments 223

  注释

  A.7.1 Distributed Code Description 223

  分布式代码描述

  A.7.2 Comment Block Standard 224

  注释标准

  A.7.3 In line Comments 224

  行内注释

  A.7.4 Commenting Control Constructs 224

  注释控制结构

  A.8 Code Layout 224

  代码布局

  A.8.1 One Statement per Line 224

  每行一个语句

  A.8.2 Indentation Guidelines 225

  缩进指南

  A.8.3 Brackets, Begin...End, and Delimiting Control Blocks 225

  括号、Begin...End和边界控制块

  A.8.4 Error Handling 225

  错误处理

  A.9 Naming Convention for Identifiers (Variables, Constants, and Subroutines) 226

  标识符(变量、常量和子程序)的命名约定

  A.9.1 Select Clear and Meaningful Names 226

  选择清晰和有意义的名字

  A.9.2 Naming Subroutines (verb and object) 226

  命名子程序(动词和对象)

  A.9.3 Naming Constants, Variables (noun) 226

  命名常量和变量(名词)

  A.9.4 Naming Boolean Identifiers 226

  命名Boolean标志符(动词、对象或形容词)

  A.9.5 Naming Types 226

  命名类型

  A.9.6 Use of Upper/lower Case and Underscores to Differentiate Subroutines, Variables,

  and Constants 227

  用大小写来区别子程序、变量和常量

  A.9.7 Subroutines and Program Units 227

  子程序和程序单元

  A.9.8 Variables 227

  变量

  A.9.9 Macros and Constants 227

  宏和常量

  A.9.10 Use of Prefix (Hungarian) Notations to Differentiate the Scope and Type of a Data Variable 227

  用前缀来区别变量的范围和类型

  A.9.11 Abbreviations 230

  缩写

  A.9.12 Summary Table for Naming Convention: 230

  命名约定的总结

  A.10 Misc. Rules for Coding 231

  编码规范

  A.10.1 Conditionals and Comparisons 231

  条件和比较

  A.10.2 Program Flow 231

  程序流

  A.10.3 Binding Time of Variables and Values 231

  变量和值的绑定时间

  A.10.4 Go-tos, Pointers, and Issues of Clarity 232

  Go-to语句、指针和二义性问题

  A.10.5 Strive to Develop Clear Code 232

  开发清晰的代码

  A.10.6 Use Libraries When Available 232

  使用库

  A.10.7 Type Casting Integer and Float Variables Makes Code More Portable 232

  整型变量和浮点型变量的转换使编码更容易

  A.10.8 Compiler Dependent Code Should Include Tests 232

  依赖编译器的代码应该包含测试

  A.10.9 Use ASCII Files for Runtime or Machine Dependent Constants and Macros 233

  使用执行时ASCII文件或依赖机器的常量和宏

  A.10.10 Error Handling 233

  错误处理

  A.10.11 Debugging 233

  调试

  A.10.12 Using Structures and Enumerators is Recommended 233

  推荐使用结构和枚举

  A.11 Modularization and Information Hiding 233

  模块化和信息隐藏

  A.11.1 Information Hiding, Domain, and Scope of Variables 233

  信息隐藏、域、变量的范围

  A.11.2 Low Coupling, High Cohesion, and Clean Interfaces 233

  低耦合,高内聚,清晰的接口

  A.11.3 Cohesion 233

  内聚

  A.11.4 Coupling 233

  耦合

  A.11.5 Clean Interface 234

  清晰的接口

  A.11.6 Minimize Scope of Variables 234

  最小化变量范围

转载请注明出处累积网 » 软件工程基础教程

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com