您好,欢迎来到聚文网。 登录 免费注册
软件工程 第5版

软件工程 第5版

  • 字数: 503000
  • 装帧: 平装
  • 出版社: 清华大学出版社
  • 出版日期: 2022-08-01
  • 商品条码: 9787302609865
  • 版次: 5
  • 开本: 16开
  • 页数: 320
  • 出版年份: 2022
定价:¥69 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
编辑推荐
"1. 配套教学大纲、PPT课件、习题解答和课程设计等丰富资源。 2. 内容丰富,包括软件工程的基本理论、可行性研究、软件需求分析、总体设计、详细设计、面向对象分析与设计、接口设计、软件实现、软件质量、软件测试、软件维护、软件项目管理与计划等各方面知识。"
内容简介
本书是在《软件工程》(第4版)的基础上,根据使用该书的教师等读者的意见,做了很多调整和修改,如补充了应用实例,加强了对方法论的讲解。本书针对软件工程的基本理论、可行性研究、软件需求分析、总体设计、软件详细设计、面向对象分析与设计、用户界面设计、数据库及其接口设计、软件实现、软件测试、软件项目管理与计划等进行了严谨的论述,通过各章实例来讲解概念。同时各章都配有丰富的习题。本书还有配套的《软件工程习题解答》(第4版)(ISBN 978-7-302-47333-6)和《软件工程实践与课程设计》(ISBN 978-7-302-47867-6)。 本书可作为高等学校计算机、软件工程及相关专业本科生的教材,也可作为IT领域的科研人员、开发人员的参考用书。
目录
第一部分基础理论
第1章绪论
1.1软件概述
1.1.1什么是计算机软件
1.1.2软件的特点
1.1.3软件的分类
1.1.4软件的发展
1.1.5软件危机
1.2软件工程概述
1.2.1软件工程与方法学
1.2.2软件工程的基本原理
1.2.3软件工程的目标
1.2.4软件工程的内容
1.2.5软件工程原则
1.2.6软件工程面临的问题
小结
综合练习1
第2章基本理论
2.1软件工程过程
2.2软件生命周期
2.2.1软件分析时期
2.2.2软件设计时期
2.2.3编码与测试时期
2.2.4运行与维护时期
2.3软件生命周期模型
2.3.1软件生命周期模型的概念
2.3.2瀑布模型
2.3.3原型模型
2.3.4增量模型
2.3.5螺旋模型
2.3.6喷泉模型
2.3.7基于知识的模型
2.3.8变换模型
2.4软件开发方法
2.4.1结构化方法
2.4.2Jackson方法
2.4.3维也纳开发方法
2.4.4面向对象的开发方法
2.5软件工具与开发
2.5.1软件工具箱
2.5.2软件开发环境
2.5.3计算机辅助软件工程
2.6软件工程应用实例
小结
综合练习2
第3章可行性研究
3.1可行性研究任务与步骤
3.1.1研究任务
3.1.2研究步骤
3.2系统分析
3.2.1系统分析员
3.2.2面临的问题域
3.2.3通信技术
3.3分析原理
3.3.1信息域
3.3.2建立模型
3.3.3分解
3.4系统模型与模拟
3.4.1系统模型
3.4.2系统建模和模拟
3.5成本效益分析
3.6可行性研究的文档
3.7项目开发计划
3.7.1方案选择
3.7.2制订项目开发计划
3.8应用案例——成绩管理系统可行性研究
3.8.1引言
3.8.2对现行系统的分析
3.8.3建议的新系统
3.8.4可行性研究
3.8.5可行性分析
3.8.6系统工程性能分析
3.8.7风险分析
3.8.8可选择的其他系统方案
3.8.9结论
小结
综合练习3
第二部分结构化方法
第4章软件需求分析
4.1需求分析
4.1.1需求分析的特点
4.1.2需求分析的原则
4.1.3需求分析的任务
4.1.4需求分析的方法
4.2结构化分析
4.2.1自顶向下逐层分解
4.2.2结构化分析步骤
4.3系统流程图
4.4数据流图
4.4.1基本图形符号
4.4.2画数据流图
4.5数据字典
4.5.1内容及格式
4.5.2数据字典的实现
4.6应用案例——成绩管理系统结构化需求分析
4.6.1引言
4.6.2业务需求
4.6.3需求分析
4.6.4总结
小结
综合练习4
第5章总体设计
5.1软件设计的重要性
5.2设计过程
5.3软件总体设计
5.4设计基本原理
5.4.1抽象
5.4.2细化
5.4.3模块化
5.4.4软件体系结构
5.4.5程序结构
5.4.6数据结构
5.4.7软件过程
5.5体系结构设计
5.5.1软件结构图
5.5.2模块的大小
5.5.3扇出和扇入与深度和宽度
5.5.4模块的耦合
5.5.5模块的内聚
5.5.6结构设计的一般准则
5.5.7模块的作用域与控制域
5.6结构化设计
5.6.1数据流的类型
5.6.2过程步骤
5.6.3变换分析设计
5.6.4事务分析设计
5.6.5混合流设计
5.6.6结构化设计方法应用示例
5.6.7设计的后期处理
5.7应用案例——成绩管理系统总体设计
5.7.1总体设计
5.7.2接口设计
5.7.3运行设计
5.7.4系统论结构设计
5.7.5故障检测与处理机制
小结
综合练习5
第6章软件详细设计
6.1详细设计的任务与方法
6.1.1详细设计的基本任务
6.1.2详细设计方法
6.2设计表示法
6.2.1结构化语言
6.2.2判定表
6.2.3判定树
6.3结构化程序设计
6.3.1程序流程图
6.3.2三种基本控制结构
6.3.3常用符号
6.3.4常见错误
6.4应用案例——成绩管理系统结构化详细设计
6.4.1引言
6.4.2模块结构设计
6.4.3数据结构设计
6.4.4算法设计
小结
综合练习6
第三部分面向对象方法与实现
第7章面向对象分析
7.1面向对象的相关概念
7.1.1对象
7.1.2类
7.1.3属性
7.1.4服务(操作或方法)
7.1.5封装
7.1.6继承
7.1.7消息
7.1.8结构与连接
7.2UML的基本图标
7.3对象分析
7.3.1用户需求与研究问题域
7.3.2发现对象方法
7.3.3定义属性
7.3.4定义服务
7.4一般特殊结构
7.5整体部分结构
7.6实例连接
7.6.1简单的实例连接
7.6.2复杂的实例连接及其表示
7.7消息连接
7.8应用案例——成绩管理系统面向对象分析
7.8.1引言
7.8.2系统说明
7.8.3需求分析
小结
综合练习7
第8章面向对象设计
8.1系统总体方案
8.2软件体系结构
8.3环境设计
8.3.1为适应编程环境的调整
8.3.2对象设计的步骤
8.4完善对象的细节
8.5算法设计
8.5.1选择算法
8.5.2选择数据结构
8.6关联设计
8.6.1单向关联
8.6.2双向关联
8.7设计优化
8.8应用案例——成绩管理系统面向对象设计
8.8.1系统结构设计
8.8.2对象设计
小结
综合练习8
第9章用户界面设计
9.1界面设计风格
9.1.1菜单的选择
9.1.2对话框
9.1.3窗口
9.2人机界面的设计准则
9.3人机界面设计过程
9.3.1用户界面模型
9.3.2界面支持系统
9.3.3界面元素
9.3.4设计的形式
小结
综合练习9
第10章数据库及其接口设计
10.1数据管理系统及其选择
10.2技术整合
10.3数据接口
10.3.1针对文件系统的设计
10.3.2针对RDBMS的设计
小结
综合练习10
第11章软件实现
11.1程序设计语言的特性及选择
11.1.1程序设计语言的特性
11.1.2程序设计语言的选择
11.2程序设计风格
11.3程序设计效率
11.3.1代码效率
11.3.2内存效率
11.3.3I/O效率
11.4冗余编程
11.5软件容错技术
11.5.1容错软件
11.5.2容错的一般方法
11.5.3容错软件的设计过程
11.5.4软件的容错系统结构
小结
综合练习11
第四部分测试与工程管理
第12章软件测试
12.1软件测试概述
12.1.1软件测试的目的
12.1.2软件测试的原则
12.2测试方法
12.2.1静态测试
12.2.2动态测试
12.3测试用例的设计
12.3.1白盒技术
12.3.2黑盒技术
12.4测试过程
12.4.1软件测试过程中的信息
12.4.2软件测试的步骤与各开发阶段的关系
12.4.3单元测试
12.4.4集成测试
12.4.5确认测试
12.5调试
小结
综合练习12
第13章软件项目管理与计划
13.1软件项目管理概述
13.1.1软件管理的对象
13.1.2软件开发中的资源
13.1.3分解技术
13.2项目管理过程
13.3软件开发成本估算
13.3.1软件开发成本估算方法
13.3.2软件开发成本估算的经验模型
13.4风险分析
13.4.1风险识别
13.4.2风险估算
13.4.3风险评价
13.4.4风险驾驭和监控
13.5进度安排
13.5.1软件开发小组人数与软件生产率
13.5.2任务的确定与并行性
13.5.3制订开发进度计划
13.5.4进度安排的图形方法
13.5.5项目的追踪和控制
13.6软件项目的组织
13.6.1软件项目管理的特点
13.6.2软件项目组织的建立
13.6.3人员配备
小结
综合练习13
参考答案
参考文献
摘要
     第3章可行性研究 在客观世界中,并不是所有的问题都可以有明显的解决方法。在进行任何一项较大的工程时,首先要进行可行性分析和研究。实际上,有许多问题不可能在设定系统的规模内有解,还有一些问题在当时的技术条件下是无解的。因为这些工程中的问题并不都有明显的解决办法,所以就不可能在预定的时间、费用之内解决这些问题。 如果这些问题没有行得通的解决办法,那么贸然开发这些项目就会造成时间、人力、资源和经费的巨大浪费。同样,对软件的项目开发也存在这一问题。所以,必须对开发项目进行可行性研究。 3.1可行性研究任务与步骤 可行性研究与其他的研究不同,这个阶段不是去开发一个软件项目,也不是解决问题,而是研究这个软件项目是否值得去开发、其中的关键和技术难点是什么、问题能否得到解决、怎样达到目的等。一般情况下,软件可行性研究的目的是在尽可能短的时间内用最小的代价确定该软件项目是否值得去开发。 要解决这样的问题不是依靠主观猜想确定的,而只能依靠客观的分析。一定要分析几种主要可能解的利弊,判断原定的目标是否现实,系统完成后所带来的经济效益是否值得投资。可行性研究实质上是要进行一次简化、压缩了的需求分析和设计过程,是要在较高层次上以较抽象的方式进行的需求分析和设计过程。 可行性研究的主要内容是对问题的定义,要初步确定问题的规模和目标,问题定义后,要导出系统的逻辑模型。然后从系统的逻辑模型出发,选择若干供选择的主要系统方案。一般应从四方面研究系统方案的可行性。 (1) 技术可行性研究。根据客户提出的系统功能、性能及实现系统的各项约束条件,从技术的角度研究实现系统的可行性。技术可行性研究往往是系统开发过程中难度优选的工作。由于系统分析和定义过程与系统技术可行性评估过程同时进行,这时,系统目标、功能和性能的不确定性会给技术可行性论证带来许多困难。技术可行性研究包括风险分析、资源分析和技术分析。风险分析的任务: 在给定的约束条件下,判断能否设计并实现系统所需功能和性能。资源分析的任务: 论证是否具备系统开发所需的各类人员(管理人员和各类专业技术人员)、软硬件资源和工作环境等。技术分析的任务: 当前的科学技术是否支持系统要求的全过程。 (2) 经济可行性研究。进行成本效益分析,评估项目的开发成本,估算开发成本是否会超过项目预期的全部利润。分析系统开发对其他产品或利润的影响。 (3) 法律可行性研究。研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。 (4) 开发方案的选择性研究。提出并评价实现系统的各种开发方案,从中选出一种用于软件项目开发。 技术可行性评估是系统可行性研究工作的关键。这一阶段决策的失误将会给开发工作带来灾难性的影响。可行性研究能保证系统开发一定有明显的经济效益和较低的技术风险、一定没有各种法律问题以及其他合理的系统开发方案。如果上述四个方面中的任何一个存在问题,都应该做进一步的研究。 此外,还要为每一个可行的系统方案制定一个粗略的实现进度。可行性的根本任务是对项目的方针提出建议。可行性研究的时间依项目的规模而定,可行性研究的成本应占项目预算总成本的5%~10%。 3.1.1研究任务 在进行项目可行性研究中,首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和,把它们清楚地列举出来。要研究目前正在使用的系统。如果目前有一个系统正在使用,那么这个系统一定能完成某些有用的工作。所以新系统的目标也必须能完成这些基本功能。如果现有的系统是完美的,那么用户就不会提出开发新系统。 因此,现行系统必然存在问题,这也是新系统必然要解决的问题。现行系统的运行费用是一个重要的经济指标,如果新系统相对于旧系统不能增加收入或减少开销,那么新系统就不如旧系统。研究中要阅读现行系统的资料,要实地考察。要从相关人员中了解这个系统可以做什么,为什么这样做。 一般情况下,了解到的是问题的表现,而不是实际的问题。如果要分析所得到的信息,就要从现行系统出发,该系统一定是在实际中运行的,与其他系统都有一定的联系。了解这个系统与其他系统的接口是设计新系统的重要约束条件。 可行性分析中错误的做法之一是花大量的时间去分析旧系统,了解旧系统做什么,而不是了解怎么做。第二种错误做法是不认真搜集资料,凭空想象。 从现有的物理系统出发,对物理系统进行简要的需求分析,抽象出该项目的逻辑结构,参考物理系统建立逻辑模型。 新系统的逻辑模型实质上表明系统分析员对新系统的看法。但用户是否认同了?因此系统分析员应该与用户一起对新系统复查问题的定义、工程的规模、目标。讨论中应该将数据流图和数据字典作为讨论的载体。如果存在系统分析员对于问题的误解或用户对于问题的遗漏,此时就可以改正。可行性研

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网