软件工程基础教程(英文版)

软件工程基础教程(英文版)
作 者: 田文洪
出版社: 电子工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 软件工程/开发项目管理
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《软件工程基础教程(英文版)》作者简介

内容简介

为了得到好的软件产品,软件开发必须遵循一定的规范和流程。《软件工程基础教程(英文版)》由浅入深、循序渐进地介绍了规范化的软件开发方法所涉及的概念和方法。内容包括过程模型、软件需求、设计工程、生产率和工作量度量、软件测试、软件维护、质量管理、项目管理和风险管理等内容,最后介绍了一些常用的软件开发工具,并给出编码风格上的建议。本书内容注重理论与实践结合,参考了IEEE和ACM关于软件工程的10个知识体系内容。针对中国学生英文水平,做了针对性的编写,并对重点难点内容进行了中文解释。本书配有在线习题、电子课件、案例分析、实验指导等教学资源,可登录电子工业出版社华信教育资源网(www.hxedu.com.cn),免费注册、下载。通过本书的学习,可使学生了解软件工程的基本知识和方法,熟悉软件工程的主要环节,掌握软件工程传统经典和现代高级的理论、方法,并能应用到实际的软件项目开发中。

图书目录

Unit 1 Introduction to Software Engineering

 软件工程介绍

 Learning Objectives

 学习目标

 1.1 A Brief Introduction to Software Engineering

  软件工程简介

  1.1.1 The Pioneering Era

  开创时期

  1.1.2 1945 to 1965: The Origins

  1945到1965: 发起

  1.1.3 1965 to 1985: The Software Crisis

  1965到1985:软件危机

  1.1.4 1985 to 1989: No Silver Bullet

  1985到1989:没有银弹

  1.1.5 1990 to 1999: Prominence of the Internet

  1990到1999:Internet盛行

  1.1.6 2000 to Present: Lightweight Methodologies

  2000年至今:轻量级方法

  1.1.7 Current Trends in Software Engineering

  软件工程的发展趋势

  1.1.8 Software Engineering Today

  今天的软件工程

 1.2 Software

  软件

  1.2.1 A Formal Definition of Software

  软件的正式定义

  1.2.2 Characteristics of Software

  软件的特征

  1.2.3 The Dual Roles of Software

  软件的双重角色

  1.2.4 Classification of Software

  软件分类

  1.2.5 Why does Software Change Very Fast?

  为什么软件变化快?

 1.3 Why Do We Need Software Engineering?

  为什么需要软件工程?

  1.3.1 Software Crisis

  软件危机

  1.3.2 An Economist's View of Software and SoftwareEngineering

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

  1.3.3 The Formal Definition of Software Engineering

  软件工程的正式定义

 1.4 Major Concerns and Objectives of Software Engineering

  软件工程的目标和担忧

 1.5 Seven Principles for Software Engineering

  软件工程的七个原则

  1.5.1 Manage Using a Phased Lifecycle Plan

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

  1.5.2 Perform Continuous Validation

  进行持续验证

  1.5.3 Maintain Disciplined Product Control

  维持有效的产品控制

  1.5.4 Use Modern Programming/Engineering Practices

  运用现代编程/工程实践

  1.5.5 Maintain Clear Accountability for Results

  维护清晰的问责机制

  1.5.6 Use Better and Fewer People

  用更好更少的人

  1.5.7 Maintain a Commitment to Improve the Process

  保持过程改进

 1.6 Major Topics in Software Engineering

  软件工程中的主要课题

 1.7 Relationship to Other Disciplines

  其他相关学科

 1.8 Some Misunderstandings about Software Engineering

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

 1.9 Software Engineering Code of Professional and EthicalResponsibility

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

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 2 Process Models

 过程模型

 Learning Objectives

 学习目标

 2.1 Introduction

  简介

 2.2 What is Software Process?

  什么是软件过程?

 2.3 Maturity Models

  成熟度模型

 2.4 Software Process Models

  软件过程模型

  2.4.1 The Waterfall Model

  瀑布模型

  2.4.2 The Evolutionary Model

  演化模型

  2.4.3 Component-based Model

  基于组件的模型

  2.4.4 Incremental Process Models

  增量模型

  2.4.5 Some New Process

  一些新模型

 2.5 How to Choose Process Models?

  如何选择过程模型?

 2.6 The Relationship between Process and Product

  过程和产品的关系

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 3 Software Requirements

 软件需求

 Learning Objectives

 学习目标

 3.1 Software Requirements Fundamentals

  软件需求基础

  3.1.1 Definition of a Software Requirement

  软件需求定义

  3.1.2 Product and Process Requirements

  产品和过程需求

  3.1.3 Functional and Non-functional Requirements

  功能和非功能需求

  3.1.4 Quantifiable Requirements

  可量化的需求

  3.1.5 System and Software Requirements

  系统需求和软件需求

 3.2 Requirements Process

  需求过程

  3.2.1 Process Models

  过程模型

  3.2.2 Process Actors

  过程角色

 3.3 Requirements Elicitation

  需求获取

  3.3.1 Requirements Sources

  需求来源

  3.3.2 Elicitation Techniques

  需求获取方法

 3.4 Requirements Analysis

  需求分析

  3.4.1 Requirements Classification

  需求分类

  3.4.2 Conceptual Modeling

  概念建模

  3.4.3 Architectural Design and Requirements Allocation

  结构设计和需求配置

  3.4.4 Requirements Negotiation

  需求谈判

 3.5 Requirements Specification

  需求规格

  3.5.1 The System Definition Document

  系统定义文档

  3.5.2 The Software Requirements Specification

  需求规格说明书

 3.6 Requirements Validation

  需求验证

  3.6.1 Requirements Reviews

  需求审查

  3.6.2 Prototyping

  原型

  3.6.3 Model Validation

  模型验证

  3.6.4 Acceptance Tests

  验收测试

 3.7 Practical Considerations

  实际考虑因素

  3.7.1 Iterative Nature of the Requirements Process

  需求过程的迭代

  3.7.2 Change Management

  变更管理

 3.8 Example: Online Recruiting System RequirementSpecification

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

  3.8.1 Introduction

  导言

  3.8.2 System Definitions

  系统定义

  3.8.3 Running Environment

  应用环境

  3.8.4 Function Specifications

  功能规格

  3.8.5 Performance Requirements

  性能需求

  3.8.6 Products Submitting

  产品提交

  3.8.7 Implementation Constrains

  实现约束

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 4 Software Design Engineering

 软件设计工程

 Learning Objectives

 学习目标

 4.1 Introduction to Design Engineering

  设计工程简介

 4.2 Design Process and Quality

  设计过程和质量

 4.3 Design Technologies

  设计技术

  4.3.1 Abstraction

  抽象

  4.3.2 Design Patterns

  设计模式

  4.3.3 Modularization

  模块化

  4.3.4 Information Hiding

  信息隐藏

  4.3.5 Function Independence

  功能独立

  4.3.6 Refinement

  改进

  4.3.7 Refactoring

  重构

 4.4 Design Models

  设计模型

  4.4.1 Data Design

  数据结构设计

  4.4.2 Architecture Design

  架构设计

  4.4.3 Interface Design

  接口设计

  4.4.4 Component Design

  组件设计

  4.4.5 Deploy Design

  部署设计

 4.5 Design Case Study

  设计实例

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 5 Software Productivity and Effort Metrics

 软件生产率和工作量度量

 Learning Objectives

 学习目标

 5.1 Introduction to Software Productivity and Project EffortEstimation

  简介

 5.2 Software Productivity Estimation

  软件生产率估计

  5.2.1 Size-based Metrics-Direct Measurement

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

  5.2.2 Function-points Metrics-Indirect Measurement

  功能点度量——间接度量

  5.2.3 The Relationship Between LOC and FP Based Metrics

  LOC和FP度量的关系

  5.2.4 How to Use These Metrics for Productivity Estimation?

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

 5.3 Estimation for Project Effort

  项目工作量估计

  5.3.1 Algorithmic Cost Modeling -Empirical Measurement

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

  5.3.2 The COCOMO Model

  COCOMO模型

  5.3.3 Estimation of Effort in Project Planning

  项目计划中的工作量度量

  5.3.4 Estimation of Effort by Tasks Breakdown

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

  5.3.5 Estimation of Effort by Current Available Resources

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

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 6 Software Quality Management

 软件质量管理

 Learning Objectives

 学习目标

 6.1 An Introduction to Software Quality Management

  简介

 6.2 Software Quality

  软件质量

  6.2.1 Definition of Software Quality

  软件质量定义

  6.2.2 Quality Control

  质量控制

  6.2.3 Quality Assurance

  质量保证

  6.2.4 Quality Costs

  质量成本

 6.3 Software Quality Assurance

  软件质量保证

  6.3.1 Background Introduction

  背景介绍

  6.3.2 SQA Activities

  SQA活动

 6.4 Software Review

  软件审查

  6.4.1 Impact of Software Bug Costs

  软件错误的代价

  6.4.2 Software Defect Indicator and Removal

  软件缺陷的发现和消除

 6.5 Formal Technique Review

  正式技术审查

  6.5.1 Review Report

  审查报告

  6.5.2 Review Tutorial

  审查指南

 6.6 Software Reliability

  软件可靠性

  6.6.1 Measurement of Reliability and Availability

  可靠性和可用性度量

  6.6.2 Software Security

  软件安全

 6.7 ISO 9000 Family of Standards

  ISO 9000标准

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 7 Testing Techniques

 测试方法

 Learning Objectives

 学习目标

 7.1 Testing Introduction

  测试简介

 7.2 Testing Objective

  测试目标

 7.3 Testing Evaluation

  测试评估

  7.3.1 Coverage/Thoroughness Measures

  覆盖性/彻底性度量

  7.3.2 Fault Seeding

  故障植入

 7.4 Testing Techniques

  测试方法

  7.4.1 White-box Testing

  白盒测试

  7.4.2 Black-box Testing

  黑盒测试

 7.5 Example: Testing Design of Online Recruiting System

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

  7.5.1 Introduction

  简介

  7.5.2 Testing Design

  测试设计

  7.5.3 Testing Cases

  测试用例

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 8 Testing Strategies

 测试策略

 Learning Objectives

 学习目标

 8.1 Testing Strategies Introduction

  测试策略简介

 8.2 Unit Testing

  单元测试

  8.2.1 Unit Testing Considerations

  单元测试考虑因素

  8.2.2 Unit Testing Procedures

  单元测试过程

 8.3 Integration Testing

  集成测试

  8.3.1 Top-down Integration

  自顶向下集成

  8.3.2 Bottom-up Integration

  自底向上集成

  8.3.3 Regression Testing

  回归测试

  8.3.4 Smoke Testing

  冒烟测试

 8.4 Validation Testing

  验证测试

  8.4.1 Validation Testing Criteria

  验证测试标准

  8.4.2 Configuration Review

  配置评审

  8.4.3 Alpha and Beta Testing

  Alpha和Beta测试

 8.5 System Testing

  系统测试

  8.5.1 Recovery Testing

  恢复测试

  8.5.2 Security Testing

  安全性测试

  8.5.3 Stress Testing

  压力测试

  8.5.4 Performance Testing

  性能测试

 8.6 Example: Testing Report of Online Recruiting System

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

  8.6.1 Introduction

  简介

  8.6.2 Testing Time, Place, and People

  测试时间、地点和人员

  8.6.3 Testing Environment

  测试环境

  8.6.4 Testing Execution

  测试执行

  8.6.5 Testing Result Analysis

  测试结果分析

  8.6.6 Testing Evaluation

  测试评估

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 9 Software Maintenance

 软件维护

 Learning Objectives

 学习目标

 9.1 Software Maintenance Fundamentals

  软件维护基础

  9.1.1 Definitions and Terminology

  定义和术语

  9.1.2 Need for Maintenance

  维护的必要性

  9.1.3 Majority of Maintenance Costs

  维护成本

 9.2 Key Issues in Software Maintenance

  软件维护的关键问题

  9.2.1 Technical Issues

  技术问题

  9.2.2 Management Issues

  管理问题

  9.2.3 Maintenance Cost Estimation

  维护成本估计

 9.3 Maintenance Process

  维护过程

  9.3.1 Maintenance Processes

  维护过程

  9.3.2 Maintenance Activities

  维护活动

 9.4 Techniques for Maintenance

  维护技术

  9.4.1 Program Comprehension

  程序理解

  9.4.2 Reengineering

  再工程

  9.4.3 Reverse Engineering

  逆向工程

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 10 Software Project Management

 软件项目管理

 Learning Objectives

 学习目标

 10.1 Introduction to Project Management

  项目管理简介

 10.2 Four Elements of Project Management

  项目管理四要素

 10.3 The People

  人员

  10.3.1 People Management Capability Maturity Model

  人员管理能力成熟度模型

  10.3.2 Team Building

  团队建设

  10.3.3 Team Organization

  团队组织

  10.3.4 Virtual Teams

  虚拟团队

 10.4 The Product

  产品

  10.4.1 Software Scope

  软件范围

  10.4.2 Problem Decomposition

  问题分解

 10.5 The Process

  过程

 10.6 The Project

  项目

  10.6.1 Project Estimation

  项目估算

  10.6.2 Project Planning

  项目规划

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 11 Software Risk Analysis and Management

 软件风险分析和管理

 Learning Objectives

 学习目标

 11.1 An Introduction to Software Risk Management

  软件风险管理简介

 11.2 Software Risk Management Strategy

  软件风险管理策略

 11.3 Software Risk Identification

  软件风险识别

  11.3.1 Evaluate the Whole Project

  评价整个项目

  11.3.2 Risk Classification

  风险分类

 11.4 Software Risk Assessment

  软件风险评估

  11.4.1 Building Risk List

  制定风险清单

  11.4.2 Assessing Risk Influence Factors

  评估风险影响因素

  11.4.3 Dynamic Ranking

  动态排名

 11.5 Software Risk Refinement

  软件风险改进

 11.6 Software Risk Aversion, Monitoring and Management

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

 Summary

 总结

 Notes

 重点注释

 Glossary of this unit

 术语

 Quiz

 习题

 References

 参考文献

 Further Reading

 扩展阅读

Unit 12 Software Engineering Development Tools

 软件工程开发工具

 Learning Objectives

 学习目标

 12.1 Software Requirements Tools

  软件需求工具

 12.2 Software Design Tools

  软件设计工具

  12.2.1 IBM Rational Software Architect

  IBM 软件开发

  12.2.2 PowerDesigner

  PowerDesigner工具

 12.3 Software Architecture Tools

  软件架构工具

  12.3.1 Visual Studio.NET

  Visual Studio .NET工具

  12.3.2 Visual Borland JBuilder

  Visual Borland JBuilder工具

  12.3.3 Eclipse

  Eclipse工具

 12.4 Software Maintenance Tools

  软件维护工具

  12.4.1 CASE Tool

  CASE工具

  12.4.2 Information Repository of CASE Environment

  CASE环境的信息库

  12.4.3 CASE Environment Structure

  CASE环境结构

 12.5 Software Testing Tools

  软件测试工具

  12.5.1 WinRunner

  WinRunner工具

  12.5.2 LoadRunner

  LoadRunner工具

 12.6 Software Configuration Management Tools

  软件配置管理工具

  12.6.1 Software Configuration Manager

  软件配置管理

  12.6.2 Source Code Management

  软件代码管理

  12.6.3 Version Management

  版本管理

  12.6.4 Operation Command

  操作命令

 12.7 Software Engineering Tools

  软件工程工具

Appendix A General Style and Coding Standards for SoftwareProjects

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

 A.1 Introduction

  简介

  A.1.1 Purpose

  目的

  A.1.2 Scope

  范围

  A.1.3 Coding Standard Documents

  编码标准文档

  A.1.4 Other Related Project Documents

  其他相关文档

  A.1.5 Terms Used in This Document

  文档中的术语

  A.1.6 References

  参考文献

  A.1.7 Our Limited Lifetime Warranty

  有限的使用期限保证

  A.1.8 The Emotional Topic of Coding Standards

  编码标准的情绪问题

 A.2 Project Dependent Standards

  项目依赖标准

 A.3 File And Module Guidelines

  文件和模块指南

  A.3.1 Module Design Guidelines

  模块设计指南

  A.3.2 Header (Include) Files

  Header (Include) 文件

  A.3.3 Source File Layout Guideline

  源文件布局指南

  A.3.4 File Naming Guideline

  文件命名指南

  A.3.5 File Informational Headers

  文件头

  A.3.6 Subroutine Header

  子程序头

 A.4 Constants and Macros

  常量和宏

  A.4.1 Use Constants and Macros Instead of Hard Coded LiteralValues

  用常量和宏代替硬编码

  A.4.2 Only Define Constants and Macros Once

  常量和宏只定义一次

  A.4.3 Place Parenthesis around Each Macro Parameters

  为每个宏参数加小括号

  A.4.4 Notes about Style

  记录风格

 A.5 Global Data Guidelines

  全局数据指南

 A.6 Subroutines

  子程序

  A.6.1 Subroutine Scope Guidelines

  子程序范围指南

  A.6.2 Subroutine Declaration Guidelines

  子程序声明指南

  A.6.3 Subroutine Layout Guidelines

  子程序布局指南

  A.6.4 Subroutine Size Guidelines

  子程序规模指南

  A.6.5 Parameter List Guidelines

  参数列表指南

  A.6.6 Variable Declaration Guidelines

  变量声明指南

 A.7 Comments

  注释

  A.7.1 Distributed Code Description

  分布式代码描述

  A.7.2 Comment Block Standard

  注释标准

  A.7.3 In line Comments

  行内注释

  A.7.4 Commenting Control Constructs

  注释控制结构

 A.8 Code Layout

  代码布局

  A.8.1 One Statement per Line

  每行一个语句

  A.8.2 Indentation Guidelines

  缩进指南

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

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

  A.8.4 Error Handling

  错误处理

 A.9 Naming Convention for Identifiers (Variables, Constants, andSubroutines)

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

  A.9.1 Select Clear and Meaningful Names

  选择清晰和有意义的名字

  A.9.2 Naming Subroutines (verb and object)

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

  A.9.3 Naming Constants, Variables (noun)

  命名常量和变量(名词)

  A.9.4 Naming Boolean Identifiers

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

  A.9.5 Naming Types

  命名类型

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

  and Constants

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

  A.9.7 Subroutines and Program Units

  子程序和程序单元

  A.9.8 Variables

  变量

  A.9.9 Macros and Constants

  宏和常量

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

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

  A.9.11 Abbreviations

  缩写

  A.9.12 Summary Table for Naming Convention:

  命名约定的总结

 A.10 Misc. Rules for Coding

  编码规范

  A.10.1 Conditionals and Comparisons

  条件和比较

  A.10.2 Program Flow

  程序流

  A.10.3 Binding Time of Variables and Values

  变量和值的绑定时间

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

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

  A.10.5 Strive to Develop Clear Code

  开发清晰的代码

  A.10.6 Use Libraries When Available

  使用库

  A.10.7 Type Casting Integer and Float Variables Makes Code MorePortable

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

  A.10.8 Compiler Dependent Code Should Include Tests

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

  A.10.9 Use ASCII Files for Runtime or Machine Dependent Constantsand Macros

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

  A.10.10 Error Handling

  错误处理

  A.10.11 Debugging

  调试

  A.10.12 Using Structures and Enumerators is Recommended

  推荐使用结构和枚举

 A.11 Modularization and Information Hiding

  模块化和信息隐藏

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

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

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

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

  A.11.3 Cohesion

  内聚

  A.11.4 Coupling

  耦合

  A.11.5 Clean Interface

  清晰的接口

  A.11.6 Minimize Scope of Variables

  最小化变量范围