新書推薦:

《
风湿免疫科医师效率手册(第3版)
》
售價:HK$
64.9

《
未来已来:2025人文社会科学智能发展蓝皮书
》
售價:HK$
132.0

《
养猫是一件正经事!——我的猫咪养育全攻略
》
售價:HK$
74.8

《
PCB封装与原理图库工程设计
》
售價:HK$
86.9

《
长棍格斗
》
售價:HK$
118.8

《
梵高·笔记(方尖碑)精选梵高传中的金句 以及部分较为少见的梵高素描作品 带有笔记风格 兼具记事本 盖章本 素描本等多种功能
》
售價:HK$
42.9

《
生命 生存 生活:道家人生哲学智慧
》
售價:HK$
130.9

《
货币的社会生命(社会学新知)
》
售價:HK$
162.8
|
內容簡介: |
本书主要围绕软件的系统工程化开发过程,介绍相关的理论、方法、技术和工具。本书以面向对象的分析和设计为主线,以基本理论为出发点,遵循UML 2标准,介绍软件工程概念和软件开发过程;重点针对软件开发的具体活动,讨论需求分析、软件架构的构建、类的分析与设计、代码生成、类的详细设计、设计优化、实现技术、交互设计、软件测试等内容;介绍软件开发环境,包括软件项目级管理、软件过程管理与改进。 本书内容丰富、循序渐进,注重软件工程理论与实践的结合,适合作为高等院校计算机相关专业本科生和研究生的教材,也可作为从事软件开发的理论研究人员及工程技术人员的参考用书。
|
關於作者: |
朴勇,工学博士,大连理工大学软件学院副教授。毕业于大连理工大学计算机系,2004年3月至今就职于大连理工大学软件学院(国家示范性软件学院)。目前主讲”软件工程”、”软件测试与质量保证”两门本科课程,均为专业必修课,其中\软件测试与质量保证”获辽宁省精品课程。曾获大连市IT优秀教师二等奖。曾出版教材《软件工程实用教程》《软件做工程》
|
目錄:
|
目 录 第1章 软件工程概述1 1.1 软件危机与软件工程1 1.1.1 软件危机1 1.1.2 软件工程2 1.2 系统工程与UML4 1.2.1 系统工程4 1.2.2 统一建模语言UML5 1.3 系统开发的解空间7 1.4 软件工程开发方法9 1.4.1 传统开发方法9 1.4.2 面向对象方法9 1.4.3 理解两种开发方法10 1.5 软件工程发展11 1.6 习题12 第2章 软件开发过程13 2.1 软件生命周期模型与软件过程13 2.2 传统生命周期模型15 2.2.1 瀑布模型15 2.2.2 快速原型模型16 2.2.3 增量模型18 2.2.4 螺旋模型18 2.2.5 喷泉模型20 2.3 敏捷生命周期模型20 2.3.1 增量交付与迭代开发21 2.3.2 敏捷生命周期模型的优势22 2.3.3 极限编程23 2.3.4 Scrum24 2.3.5 持续集成与持续交付25 2.3.6 DevOps过程26 2.4 习题28 第3章 需求分析29 3.1 需求分析活动29 3.1.1 需求准备29 3.1.2 系统涉众30 3.1.3 系统目标32 3.2 用例与系统功能33 3.2.1 用例及其表示33 3.2.2 识别用例34 3.2.3 用例规约36 3.2.4 用例提炼38 3.3 过程建模与事件流40 3.3.1 过程建模40 3.3.2 事件流43 3.4 功能性需求45 3.5 非功能性需求49 3.6 需求跟踪51 3.7 习题52 第4章 软件架构的构建54 4.1 软件架构及其定义54 4.1.1 软件架构的理解54 4.1.2 软件架构的定义55 4.1.3 软件架构的“4+1”视图模型55 4.2 软件架构模型57 4.3 软件架构风格57 4.3.1 管道与过滤器58 4.3.2 层次结构58 4.3.3 仓库/黑板系统59 4.3.4 正交软件结构60 4.3.5 客户机/服务器结构61 4.3.6 浏览器/服务器结构61 4.3.7 MVC架构62 4.4 软件架构设计64 4.4.1 包及其结构64 4.4.2 包结构设计65 4.5 习题67
第5章 类的分析与设计68 5.1 基本类的确定68 5.1.1 类的识别69 5.1.2 初始类图71 5.1.3 类的方法72 5.1.4 类的关系72 5.1.5 类与对象74 5.2 类的细化75 5.2.1 管理类和控制类75 5.2.2 设计优化78 5.3 补充和确认79 5.3.1 顺序图79 5.3.2 场景模拟81 5.4 完善设计85 5.5 习题87 第6章 代码生成88 6.1 正逆向工程与CASE环境88 6.2 单个类的实现90 6.3 关联关系的实现93 6.4 对象归属关系的实现96 6.4.1 聚合关系96 6.4.2 组合关系99 6.4.3 依赖关系100 6.5 软件架构的实现100 6.6 其他物理实现105 6.7 习题107 第7章 类的详细设计109 7.1 详细设计的主要活动109 7.2 类方法的详细设计110 7.2.1 图形工具110 7.2.2 表格工具112 7.2.3 语言工具114 7.3 类的行为设计114 7.3.1 状态图的结构115 7.3.2 状态图的扩展117 7.3.3 状态图的应用119 7.4 对象约束语言121 7.5 习题125 第8章 设计优化127 8.1 小即是美127 8.2 设计优化思想128 8.2.1 运行时的多态128 8.2.2 耦合的消息链130 8.2.3 狎昵关系131 8.2.4 被拒绝的遗赠132 8.2.5 循环依赖132 8.3 设计原则133 8.3.1 接口隔离原则133 8.3.2 依赖倒置原则134 8.3.3 开放封闭原则134 8.3.4 Liskov替换原则136 8.3.5 单一职责原则137 8.3.6 合成/聚合复用原则138 8.4 设计模式139 8.4.1 抽象工厂模式140 8.4.2 单例模式142 8.4.3 适配器模式144 8.4.4 桥模式145 8.4.5 装饰模式146 8.4.6 门面模式147 8.4.7 代理模式148 8.4.8 观察者模式149 8.4.9 策略模式150 8.4.10 状态模式150 8.5 习题153 第9章 实现技术155 9.1 非功能性需求的实现155 9.2 数据表示与交换格式157 9.3 程序轮子158 9.3.1 组件160 9.3.2 框架162 9.4 数据的持久化166 9.4.1 文件持久化166 9.4.2 数据库持久化168 9.5 领域特定语言169 9.6 模型驱动架构171 9.6.1 原理及过程171 9.6.2 MDA的应用173 9.7 重构174 9.8 习题177 第10章 交互设计179 10.1 交互设计概述179 10.2 可用性181 10.2.1 任务适合性182 10.2.2 自我描述性183 10.2.3 可控性183 10.2.4 与用户期望一致性184 10.2.5 容错性185 10.2.6 可定制性185 10.2.7 易学性186 10.3 交互设计过程186 10.4 可用性的验证187 10.5 习题189 第11章 软件测试190 11.1 形式化验证190 11.2 测试技术192 11.2.1 测试分类193 11.2.2 测试策略194 11.2.3 非功能性测试196 11.3 软件度量197 11.3.1 控制流图与环形复杂度198 11.3.2 方法内聚缺乏度201 11.4 等价类202 11.4.1 等价类分析203 11.4.2 等价类与边界204 11.4.3 等价类组合205 11.4.4 面向对象中的等价类207 11.5 基于控制流的测试209 11.6 断言机制213 11.7 测试框架215 11.7.1 测试环境215 11.7.2 单元测试框架216 11.8 可测试性223 11.8.1 可测试性基础223 11.8.2 可测试性原则226 11.9 人工测试228 11.10 习题230 第12章 软件项目级管理232 12.1 软件配置管理232 12.1.1 版本管理233 12.1.2 构建管理238 12.2 项目管理240 12.2.1 项目计划与工作分解240 12.2.2 软件规模估算241 12.2.3 开发成本估算244 12.2.4 任务安排与工程网络图247 12.2.5 项目组织与甘特图249 12.3 项目计划跟踪控制251 12.3.1 项目计划跟踪251 12.3.2 挣值分析252 12.4 软件质量保证254 12.4.1 质量管理254 12.4.2 软件质量保证的内容256 12.4.3 软件质量保证的任务256 12.4.4 软件质量保证计划257 12.5 风险管理257 12.6 项目人员构成与沟通259 12.6.1 项目人员构成260 12.6.2 项目人员沟通262 12.7 习题264 第13章 软件过程管理与改进265 13.1 软件过程管理265 13.1.1 过程改进265 13.1.2 能力成熟度模型266 13.1.3 CMMI过程域269 13.2 个体软件过程275 13.3 团队软件过程276 13.4 习题278
|
|