网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 软件工程导论(方法工具和案例题库微课视频版)/科技大讲堂丛书
分类
作者
出版社 清华大学出版社
下载
简介
内容推荐
本书全面讲述了软件工程的基本概念、原理、方法和工具,分析了每个环节对应的实例和项目案例。全书以理论够用、实用,实践环节相呼应为原则,使读者能够快速、轻松地掌握软件工程理论和实践过程。
全书共10章。第1章讲述软件工程概述,包括软件工程的概念、软件生存期模型等;第2~4章讲述结构化的软件工程方法,其内容包括结构化分析、结构化设计、结构化编码和测试;第5~7章讲述面向对象的软件工程方法,其内容包括面向对象的分析、面向对象的设计、面向对象的实现和测试;第8章简单介绍软件的运行和维护;第9章介绍当今比较流行的6种软件设计模式;第10章介绍软件项目管理。
本书理论和实践相结合,内容翔实,图文并茂,体系完整,通俗易懂,有助于读者理解软件工程的基本概念、掌握要点和攻克难点。为便于学习,本书每章都有配套的教学课件和微课教学视频,还配有丰富的习题。
本书可作为高等院校“软件工程”相关课程的教学用书,也可作为软件工程师的培训教材,还可作为软件项目开发人员的参考用书。
目录
第1章 软件工程概述
1.1 软件危机和软件工程
1.1.1 软件危机爆发的原因
1.1.2 软件工程的概念
1.2 软件生存期
1.3 软件工程方法学
1.3.1 结构化方法
1.3.2 面向对象方法
1.4 软件工程工具
1.4.1 需求分析工具
1.4.2 设计工具
1.4.3 编码工具与调试工具
1.4.4 测试工具
1.5 软件生存期模型
1.5.1 瀑布模型
1.5.2 增量模型
1.5.3 快速原型模型
1.5.4 喷泉模型
1.5.5 螺旋模型
1.5.6 统一过程模型
1.5.7 敏捷开发模型
1.6 小结
习题
第2章 结构化分析
2.1 问题定义
2.1.1 问题定义的规范化要求
2.1.2 问题定义实例
2.2 可行性研究
2.2.1 可行性研究的内容
2.2.2 可行性研究实例
2.3 需求分析
2.3.1 需求分析阶段的任务
2.3.2 需求获取
2.4 结构化需求分析
2.4.1 功能建模
2.4.2 数据建模
2.4.3 行为建模
2.4.4 数据字典
2.5 机票预订系统结构化分析项目实践
2.5.1 机票预订系统问题定义
2.5.2 机票预订系统可行性研究
2.5.3 机票预订系统结构化需求分析
2.6 小结
习题
第3章 结构化设计
3.1 结构化设计概述
3.1.1 结构化设计的任务
3.1.2 结构化设计的原则
3.1.3 模块独立性
3.1.4 结构化设计的步骤
3.2 体系结构设计
3.2.1 体系结构的启发式设计原则
3.2.2 面向数据流的设计方法
3.2.3 事务型体系结构设计实例
3.3 接口设计
3.3.1 软件与人之间的交互界面设计
3.3.2 软件与硬件及其他软件系统之间的接口设计
3.3.3 模块之间的接口设计
3.3.4 接口设计实例
3.4 数据设计
3.4.1 文件设计
3.4.2 数据库设计
3.4.3 数据设计实例
3.5 过程设计
3.5.1 过程设计的任务和原则
3.5.2 过程设计的工具
3.5.3 数据结构细节和数据操作的设计
3.6 机票预订系统的结构化设计项目实践
3.6.1 机票预订系统体系结构设计
3.6.2 机票预订系统接口设计
3.6.3 机票预订系统数据设计
3.6.4 机票预订系统过程设计
3.7 小结
习题
第4章 结构化编码和测试
4.1 软件编码
4.1.1 程序设计语言
4.1.2 程序设计风格
4.1.3 程序效率分析
4.2 软件测试概述
4.2.1 测试的目的和原则
4.2.2 测试的方法和步骤
4.3 黑盒测试
4.3.1 等价类划分法
4.3.2 边界值分析法
4.3.3 错误推测法
4.3.4 因果图法
4.3.5 黑盒测试实例
4.4 白盒测试
4.4.1 静态白盒测试
4.4.2 动态白盒测试
4.4.3 白盒测试实例
4.5 单元测试
4.5.1 单元测试内容
4.5.2 单元测试步骤
4.6 集成测试
4.6.1 集成测试目标和过程
4.6.2 集成方式
4.6.3 集成测试的实施
4.7 系统测试
4.8 验收测试
4.8.1 正式验收测试
4.8.2 Alpha测试
4.8.3 Beta测试
4.9 机票预订系统编码和测试项目实践
4.9.1 机票预订系统编码
4.9.2 机票预订系统测试
4.10 小结
习题
第5章 面向对象分析
5.1 面向对象方法介绍
5.1.1 面向对象的基本概念
5.1.2 统一建模语言
5.2 面向对象分析概述
5.3 建立用例模型
5.3.1 建立用例模型的过程
5.3.2 建立用例模型的实例
5.4 建立对象模型
5.4.1 建立对象模型的过程
5.4.2 建立对象模型的实例
5.5 建立交互模型
5.5.1 顺序图
5.5.2 状态图
5.5.3 活动图
5.6 机票预订系统面向对象分析项目实践
5.6.1 建立机票预订系统的用例模型
5.6.2 建立机票预订系统的对象模型
5.6.3 建立机票预订系统的交互模型
5.7 小结
习题
第6章 面向对象的设计
6.1 面向对象的设计方法
6.1.1 面向对象的设计准则
6.1.2 面向对象的设计步骤
6.2 设计系统的环境模型
6.2.1 环境模型设计方法和内容
6.2.2 环境模型设计实例
6.3 设计系统的体系结构
6.3.1 体系结构的概念
6.3.2 几种典型的体系结构
6.3.3 体系结构设计实例
6.4 设计问题域子系统
6.5 设计人机交互子系统
6.5.1 面向对象的用户界面设计步骤
6.5.2 WWW的界面设计
6.6 设计任务管理子系统
6.7 设计数据管理子系统
6.7.1 选择数据存储管理模式
6.7.2 设计数据管理子系统
6.7.3 数据管理子系统设计实例
6.8 机票预订系统面向对象设计项目实践
6.8.1 机票预订系统环境模型设计
6.8.2 机票预订系统体系结构设计
6.8.3 机票预订系统任务管理子系统设计
6.8.4 机票预订系统
序言
前言在现代社会中,软件应用于多方面。典
型的软件有电子邮件软件、嵌入式系统软件、人
机界面软件、办公套件软件、操作系统软件、编
译器软件、数据库软件、游戏软件等。同时,各
个行业几乎都有计算机软件的应用,如工业、农
业、银行、航空、政府部门等。这些应用促进了
经济和社会的发展,也提高了工作效率和生活效
率。软件产业具有智力投入高、成长性高、成本
投入低、服务性强、应用范围广、与国民经济关
系密切等特点。一个高质量的软件会给企业和社
会带来很大的便利,所以软件行业是一个发展前
景很好的第三产业,软件行业将成为21世纪拥有
最大产业规模和最广阔前景的新兴产业之一。
软件工程是研究和应用如何以系统性的、规
范化的、可定量的过程化方法去开发和维护软件
的一门工程学科,它把经过时间考验而证明正确
的管理技术与当前能够得到的最好的技术方法结
合起来,从而经济地开发出高质量的软件并有效
地维护软件。
软件工程是应用计算机科学、数学、逻辑学
、工程科学和管理科学等原理开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质
量、降低成本和改进算法。其中,计算机科学、
数学和逻辑学用于构建模型与算法,工程科学用
于制定规范、设计范型、评估成本和确定权衡,
管理科学用于计划、资源、质量、成本等管理。
本书系统地介绍软件工程的基本理论,全面介绍
结构化和面向对象的软件工程方法中需求分析、
设计、实现、测试及维护阶段的技术和方法,并
给出完整的软件开发实例和项目实践案例。全书
共10章。第1章全面介绍软件工程的基本概念,
包括软件生存期、软件工程方法学、软件工程工
具及软件生存期模型; 第2~4章系统讲述结构化
的软件开发方法,其内容包括结构化分析的问题
定义、可行性研究和需求分析,结构化软件设计
的总体设计和详细设计,结构化的编码以及软件
测试的方法和步骤,每个阶段都包含“高校图书
借阅系统”和“航空公司机票预订系统”项目案
例; 第5~7章系统讲述面向对象的软件开发方法
,其内容包括面向对象需求分析的用例模型、对
象模型和交互模型的创建方法,面向对象设计的
环境模型设计、体系结构设计、问题域子系统设
计、人机交互子系统设计、任务管理子系统设计
、数据管理子系统设计的方法和内容,面向对象
实现阶段的程序设计语言选择方法,程序设计风
格确定准则及各种测试技术,第5、6章也包含了
“高校图书借阅系统”和“航空公司机票预订系
统”项目案例; 第8章分析软件维护的过程及软
件可维护性的提高方法,介绍软件逆向工程和再
工程技术; 第9章简单介绍软件设计模式的概念
和常见的23种设计模式,重点介绍抽象工厂模式
、单例模式、适配器模式、外观模式、责任链模
式和观察者模式; 第10章从人员的组织与管理
、软件度量、软件项目计划、风险管理、软件质
量保证、软件过程能力评估、软件配置管理7个
方面介绍软件项目管理。本书作者长期从事本科
计算机类专业的教学工作,不仅具有丰富的教学
经验,同时还具有多年的软件开发经验。依据长
期的教学经验,作者深知软件工程的主要知识点
、重点和难点,什么样的教材适合教学使用,学
生及各类读者对软件工程的学习方式和兴趣所在
,以及如何组织书本的内容更利于教学和自学,
从而形成本书的结构体系。本书内容翔实、体系
完整、图文并茂、案例丰富,并包含完整的实践
项目,具有较强的系统性、实用性和实践性。本
书章节安排合理,理论与实践紧密结合,每章后
面都配有丰富的习题,有助于读者理解概念、巩
固知识、掌握重点、攻克难点。
本书可作为高等院校计算机应用专业、计算
机信息管理专业及相关专业的教材和参考用书,
也可供软件项目开发人员参考,还可作为计算机
爱好者的自学参考书。本书第1章和第5章由郭晴
编写,第2~4章由尹志宇编写,第6、7章由解春
燕编写,第8、9章由李青茹编写,第10章由刘静
和姜兴华编写。全书由尹志宇统稿。为便于教学
,本书提供丰富的配套资源,包括教学大纲、教
学课件、电子教案、习题答案、在线作业和微课
视频。
资源下载提示课件等资源: 扫描封底的“
课件下载”二维码,在公众号“书圈”下载。在
线作业: 扫描封底的作业系统二维码,登录网
站在线做题及查看答案。视频等资源: 扫描封
底的文泉云盘防盗码,再扫描书中相应章节中的
二维码,可以在线学习。
由于编者水平有限,书中难免有疏漏与错误
之处,衷心希望广大读者批评、指正。编者
2022年8月
精彩页
第3章结构化设计
在软件需求分析阶段,开发人员已经搞清楚了软件“做什么”的问题,并把用户需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。在软件系统设计阶段,开发人员要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中。
结构化设计属于软件工程的系统设计阶段,通常划分成两个步骤: 结构化总体设计和结构化详细设计。
软件设计的一条基本原理是程序模块化,即一个大程序应该由许多规模适中的模块按合理的层次结构组织而成。总体设计阶段的主要任务是设计软件的结构,即确定程序的组成模块及模块间的关系。通常用层次图、结构图、HIPO图等描绘软件的结构。
详细设计阶段的主要任务是设计出程序的详细规格说明,其作用类似于其他工程领域中工程师经常使用的工程蓝图,详细规格说明应该包含必要的细节,程序员可以根据详细规格说明写出实际的程序代码。通常用流程图、表格、PDL语言等描述详细设计的结果。
本章首先介绍结构化总体设计阶段的体系结构设计、接口设计和数据设计,然后介绍结构化详细设计,同时给出与每一步骤相对应的“高校图书借阅系统”的设计实例,最后用“航空公司机票预订系统”项目案例完整地实现结构化设计的全过程。
课程思政
3.1结构化设计概述
结构化设计方法是一种面向数据流的传统软件设计方法,以数据流为中心构建软件分析模型和软件设计模型。它以结构化需求分析的结果作为设计依据,设计出满足用户需求的软件模型。总体设计阶段的软件设计模型包括软件体系结构模型、软件接口模型和软件数据模型。
视频讲解
3.1.1结构化设计的任务
软件设计的主要任务是解决如何做的问题,要在需求分析的基础上,建立各种设计模型,并通过对设计模型的分析和评估,来确定这些模型是否能够满足需求。软件设计是将用户需求准确地转化成为最终的软件产品的唯一途径,在需求到构造之间起到了桥梁作用。
在软件设计阶段往往存在多种设计方案,通常需要在多种设计方案之中进行决策和折中,并使用选定的方案进行后续的开发活动。软件设计阶段在整个软件生存期起着非常重要的作用,其方案的选择影响着软件的开发质量、维护的难易程度、甚至最终软件实现的成败。
结构化总体设计也称为软件的概要设计,该阶段的任务包括软件的体系结构设计、接口设计和数据模型设计。
(1) 体系结构设计: 体系结构设计也称为模块设计,定义软件模块及模块之间的关系。其设计依据为结构化需求分析阶段的数据流图。
(2) 接口设计: 接口设计包括外部接口设计和内部接口设计。外部接口描述用户界面、软件和硬件设备及其他软件系统的接口,其设计依据为结构化需求分析阶段的顶层数据流图; 内部接口为软件各模块之间的接口,其设计依据为结构化需求分析阶段的数据流图。
(3) 数据模型设计: 主要是根据结构化需求分析阶段所建立的ER图和数据字典来确定软件涉及的文件系统的结构及数据库的表结构。
结构化详细设计阶段的任务为软件的过程设计。过程设计的主要工作是确定软件各个模块内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法,其设计依据为结构化需求分析阶段的数据流图、状态转换图及数据字典。
视频讲解
3.1.2结构化设计的原则
经过几十年的发展和经验总结,人们已经归纳出以下5条软件结构化设计的原则。
1) 模块化
人们解决大型复杂问题时通常采用分解的方式,即将大型复杂的问题分解为许多容易解决的小问题,原来的问题也就容易解决了,软件设计的模块化方法就是采用分解的方式进行软件设计。
2) 高内聚、低耦合
耦合是程序结构中各个模块之间相互关联的度量,它取决于各个模块之间接口的复杂程度、调用模块的方式和通过接口的信息类型。低耦合就是各模块间联系要尽量简单,这样在详细设计、编码、测试和维护某模块时,就不需要对其他模块有很多的了解,从而简化了开发人员的工作。
内聚是一个模块内部各个元素彼此结合的紧密程度的度量。理想情况下,一个内聚性高的模块应当只做一件事,即一个模块各部分都是完成某一具体功能必不可少的部分,这样的模块是内聚性最高的,叫作功能内聚。如果一个模块完成多个功能,但各个功能都在同一数据结构上操作,基于同一数据结构达到了信息隐蔽,这种模块内聚性较高,叫作信息内聚。如果达不到这两种高内聚,内聚性也应该尽可能地高,否则软件设计以后的各个阶段的工作效率会大大降低,甚至可能出现错误。操作模块可构造成公用模块供多个事务共享。操作模块设计如
图38中“操作1”~“操作6”所示,其中“操作5”为“事务3”和“事务4”共享的操作模块。最后设计各操作模块的若干个操作细节,即细节模块,当然也可能有很多公用的细节模块。细节模块设计如图38中“
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/2/22 23:39:01