软件工程基础教程

出版时间:2012-1  出版社:电子工业出版社  作者:田文洪 主编  页数:256  

内容概要

  为了得到好的软件产品,软件开发必须遵循一定的规范和流程。
  《软件工程基础教程(英文版)》由浅入深、循序渐进地介绍了规范化的软件开发方法所涉及的概念和方法。内容包括过程模型、软件需求、设计工程、生产率和工作量度量、软件测试、软件维护、质量管理、项目管理和风险管理等内容,最后介绍了一些常用的软件开发工具,并给出编码风格上的建议。
  本书内容注重理论与实践结合,参考了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 Software
Engineering
  一个经济学家对软件和软件工程的看法
  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 Ethical
Responsibility
  软件工程的专业和道德责任
 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 Requirement
Specification
  例:网上招聘系统的需求规格说明书
  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 Effort
Estimation
  简介
 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 Software
Projects
 软件项目的一般风格和编码标准
 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 Literal
Values
  用常量和宏代替硬编码
  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, and
Subroutines)
  标识符(变量、常量和子程序)的命名约定
  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 Differentiate
Subroutines, 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 the
Scope 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 More
Portable
  整型变量和浮点型变量的转换使编码更容易
  A.10.8 Compiler Dependent Code Should Include Tests
  依赖编译器的代码应该包含测试
  A.10.9 Use ASCII Files for Runtime or Machine Dependent Constants
and 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
  最小化变量范围
    

章节摘录

版权页:插图:The rise of the Internet led to very rapid growth in the demand for international informationdisplay/e-mail systems on the World Wide Web. Programmers were required to handle illustrations,maps, photographs, and other images, plus simple animation, at a rate never seen before, with fewwell-known methods to optimize image display/storage (such as the use of thumbnail images).The growth of browser usage, running on the HTML language, changed the way in whichinformation-display and retrieval was organized. The widespread network connections led to thegrowth and prevention of international computer viruses on MS Windows computers, and the vastproliferation of spam e-mail became a major design issue in e-mail systems, floodingcommunication channels and requiring semi-automated pre-screening. Keyword-search systemsevolved into web-based search engines, and many software systems had to be re-designed, forinternational searching, depending on Search Engine Optimization (SEO) techniques. Humannatural-language translation systems were needed t attempt to translate the information flow inmultiple foreign languages, with many sofiware systems being designed for multi-language usage,based on design concepts from human translators. Typical computer-user bases went from hundreds, or thousands of users, to, ofien, many-millions of international users.

图书封面

评论、评分、阅读与下载


    软件工程基础教程 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7