SE-II-软件工程与计算II重点整理(第1-5章)

软件工程与计算II重点整理(第1-5章) 1.软件工程定义 (1)应用系统的、规范的、可量化的方法,来开发、运行和维护软件,即将工程应用到软件。 (2)对(1)中各种方法的研究。 2.从1950s—2000s之间的特点(简答) 1950s:科学计算;以机器为中心进行编程;像生产硬件一样生产软件。 1960s:业务应用(批量数据处理和事物计算);软件不同于硬件;用软件工艺的方式生产软件。...

阅读全文

SE-II-软件工程与计算II重点整理(第16-19章)

软件工程与计算II重点整理(第16-19章) | Blog of Samperson 1.如何实现可修改性、可扩展性、灵活性 教材263页需要进行接口和实现的分离: 通过接口和实现该接口的类;通过子类继承父类 注意:继承关系(A+B)可能使得灵活性下降,因为父类接口的变化会影响子类,这时可以通过组合关系来解决。...

阅读全文

SE-II-软件工程与计算II重点整理(第6-7章)

软件工程与计算II重点整理(第6-7章) 1.建立用例图 四要素:用例(椭圆)、参与者(小人)、关系(连线)、边界(方框) /image-20230616145545772.png) 参与者是与开发的系统进行交互的用户或其他系统等角色。 用例图中一个单一的参与者可以代表多个用户(或系统),一个单一的用户(或系统)可能扮演多种角色。...

阅读全文

SE-II-软件工程与计算II重点整理(第8-11章)

软件工程与计算II重点整理(第8-11章) 第八章 软件设计 1.软件设计的定义 a)为使一软件系统满足规定的需求而定义系统或部件的体系结构、部件、接口和其他特征的过程; b)设计过程的结果。 2.软件设计的核心思想 复杂度控制 分解、抽象、层次性 3.软件工程设计有哪三个层次?各层的主要思想是什么? 低层设计、中层设计、高层设计。 低层:将基本的语言单位组织起来,建立高质量的数据结构+算法...

阅读全文

SE-II-ch11-人机交互设计

11-人机交互设计 --- 1. 不良的界面会导致用户感到不适 - 1. 用户和不好的设计 - 2. 什么是人机交互设计(HCI) - 2.1. 什么是好的人机交互 - 2.2. HCI的重要组成:可用性 重要 - 2.2.1. 不同的用户的学习曲线 - 2.2.2. 记忆 - 3. 人机交互的三个因素 - 3.1. 人 - 3.1.1. 人的特性 -...

阅读全文

SE-II-ch12-详细设计

12-详细设计 --- - 1. 详细设计基础 - 1.1. 什么是详细设计 - 1.2. 详细设计的输入 - 1.3. 从需求、体系结构设计到详细设计 - 1.4. 详细设计是从哪里开始的 - 1.4.1. 详细设计的上下文 - 1.4.2. 软件体系结构:构件之间的接口 - 1.4.3. 详细设计的输出 - 2. 结构化详细设计 - 2.1....

阅读全文

SE-II-ch13-详细设计中的模块化与信息隐藏

13-详细设计中的模块化与信息隐藏 --- - 1. 内聚和耦合 概念重要 - 2. 模块化与信息隐藏思想 - 2.1. 设计好的软件 - 2.1.1. Parnas 1972 - 2.1.2. Stevens 1974 - 2.1.3. Beohm 1976 - 2.2. 动机 - 2.3. 模块化与信息隐藏思想的发展 - 2.3.1. 背景 ...

阅读全文

SE-II-ch14-面向对象的模块化

14-面向对象的模块化 --- - 1. 模块化的原则(总结) - 2. 面向对象中的模块与耦合 - 2.1. 类 - 2.2. 模块 - 2.3. 耦合中的结构方法与OO方法 - 2.4. 降低耦合的设计原则 - 3. 访问耦合 - 3.1. 隐式耦合:Cascading Message 级联调用问题 - 3.1.1. 解决方案 — 引入局部变量 -...

阅读全文

SE-II-ch15-面向对象的信息隐藏

15-面向对象的信息隐藏 --- - 1. 课前测试 - 2. 封装类的职责 - 2.1. 结构化设计中的信息隐藏 - 2.1.1. 信息隐藏 - 2.1.2. 设计细节应当被隐藏 - 2.2. 类的职责 - 2.2.1. 什么是职责? - 2.2.2. 职责来源于需求 - 2.2.3. 职责的体现 - 3. 类的封装 - 3.1....

阅读全文

SE-II-ch16-设计模式

16-设计模式 --- - 1. 可修改性及其基本实现机制 - 1.1. 如何实现可修改性? 重要 - 1.2. 如何将接口与实现的分离 -- Java视角 - 1.3. 实现接口(interface) - 1.4. 类图中的标志物的含义 - 1.5. 类图与依赖关系 - 1.6. 继承 - 1.7. 类图与依赖关系 - 1.8. 实现的可修改性 -...

阅读全文

SE-II-ch17-软件构造

软件构造 --- - 1. 部分名词解释 - 2. 什么是软件构造? - 2.1. SWEBOK2004 - 2.2. McConnell2004 - 2.3. Reeves 1992:软件构造是设计的延续 - 3. 软件构造活动 重要 - 3.1. 详细设计 - 3.2. 编程 - 3.2.1. 程序代码的典型质量 - 3.2.2. 编程的主要技术 -...

阅读全文

SE-II-ch18-代码设计

代码设计 --- - 1. 设计易读的代码 - 1.1. 代码规范 - 1.1.1. 布局格式 - 1.1.2. 命名 - 1.1.3. 注释 - 2. 设计易维护的代码 - 2.1. 小型任务 - 2.2. 复杂决策 - 2.3. 数据使用 - 2.4. 明确依赖关系 - 3. 设计可靠的代码 重要 - 3.1. 契约式设计 -...

阅读全文

SE-II-ch19-软件测试

19-软件测试 --- - 1. 考试题 - 2. Bug起源 - 2.1. 第一个Bug - 2.2. 千年虫病毒 - 2.3. 辐射机问题 - 2.4. 爱国者导弹防御1991 - 2.5. 奔腾处理器的浮点数bug - 2.6. 迪士尼的《狮子王动画故事书》 1994 - 3. 什么是对的软件? - 3.1. 你是否正确的构造了软件 - 3.2....

阅读全文

SE-II-ch20-软件交付

20-软件交付 --- - 1. 什么是软件交付 - 2. 安装与部署 - 2.1. 安装 - 2.2. 创建安装包的步骤 - 2.2.1. 确定安装环境 - 2.2.2. 列举安装清单 - 2.2.3. 设计和建立安装包 - 2.2.4. 测试安装包 - 2.3. 部署 - 2.4. 部署的步骤 - 2.4.1. 确定部署环境 -...

阅读全文

SE-II-ch21-软件的维护与演化

21-软件的维护与演化 --- - 1. 维护 - 1.1. 软件维护的主要工作是"修改" - 1.1.1. 维护是什么 - 1.1.2. 软件维护 - 1.2. 软件变更的常见情景 - [1.2.1. 软件维护类型划分[Lientz1980]](#121-软件维护类型划分lientz1980) - 1.2.2. 软件维护 - 1.3....

阅读全文

SE-II-ch22-软件开发过程模型

22-软件开发过程模型 --- - 各类别模型很重要 - 1. 软件开发各典型阶段 - 1.1. 第4-21章开发活动总结 - 2. 软件生命周期模型 - 3. 软件过程模型 重要 - 3.1. 构建-修复模型 - 3.1.1. 缺点 - 3.1.2. 适用范围 - 3.2. 瀑布模型 - 3.2.1. 优点 - 3.2.2. 缺点 -...

阅读全文

SE-II-ch23-软件工程职业基础

23-软件工程职业基础 --- - 1. 软件工程职业的出现 - [1.1. 美国软件开发与维护人员分布 [Jones2006]](#11-美国软件开发与维护人员分布-jones2006) - 1.2. 二十世纪五十年代 - 1.3. 二十世纪六十年代 - 1.4. 二十世纪七十年代 - 1.5. 二十世纪八十年代 - 1.6. 二十世纪九十年代 - 1.7....

阅读全文

SE-II-ch06-需求分析方法

06-需求分析方法 --- 重要:注意完成课本习题 - 1. 用例文档的格式情况 - 2. 需求分析基础 - 2.1. 为什么要需求分析 - 2.2. 需求分析的任务 - 2.3. 需求分析的模型与建模 - 2.3.1. 模型 - 2.3.2. 建模 - 2.3.3. 需求分析模型的特点及常见的需求分析模型 - 3. 结构化分析 - 3.1....

阅读全文

SE-II-ch07-需求文档化与验证

07-需求文档化与验证 --- - 1. 为什么文档化需求 - 2. 为什么建立需求规格说明?结合试验说明 重要 - 3. 需求文档基础 - 3.1. 需求文档的交流对象 - 3.2. 用例文档 - 3.3. 软件需求规格说明文档(SRS,software Requirements Specification) - 3.3.1. 实例 - 3.4. SRS模板 - 4....

阅读全文

SE-II-ch08-软件设计基础

08-软件设计基础 --- - 1. 什么是软件设计 - 1.1. 软件设计 重要 - 1.2. 软件设计的核心思想 - 1.3. 软件设计思想的发展 - 1.4. 软件设计的核心思想 - 1.4.1. 为什么要设计 - 1.4.2. 为什么软件是复杂的? - 1.4.3. 设计的复杂度 - 1.4.4. 如何去控制复杂度? - 1.5....

阅读全文

SE-II-ch09-软件体系结构基础

9-软件体系结构基础 --- - 1. 软件体系结构 - 1.1. Until the late 1980 直到1980年底 - 1.2. 下一阶段:1992 - 1.3. Importance 重要性 - 1.4. 软件体系结构的十年 -- Philippe Kruchten - 1.5. IEEE 1471-2000 - 1.6. Books - 1.7....

阅读全文

SE-II-ch10-软件体系结构设计与构建

10-软件体系结构设计与构建 --- 1. 体系结构之间的接口: 1. 重点还有根据分配的需求确定模块的对外接口 2. 初步设计关键类 3. 编写接口规范(提供服务和需要服务) 2. 根据体系结构开发继承测试用例(Stub和Driver) - 1. 体系结构设计过程(简略步骤) 重要 - 2. 第一步:分析关键需求和项目约束 - 2.1. 系统结构需求 - 2.2....

阅读全文

SE-II-ch00-题目

- 1. 说明以下需求属于哪种类型 - 2. 判断需求的正确性或者问题 - 3. 考试情况 1. 说明以下需求属于哪种类型 | 需求描述 | 需求类别 | 备注 ...

阅读全文

SE-II-ch01-软件工程基础

01-软件工程基础 --- - 1. Software 软件 - 1.1. 数字计算历史 - 1.1.1. Foundation of Digital Computing - 30s - 1.1.2. Digital Computers - 40s - 1.1.3. Software is one part of Hardware -50s - 1.1.4....

阅读全文

SE-II-ch02-软件工程的发展

02-软件工程的发展 --- - 1. 软件工程的三个环境因素 - 1.1. 现实 - 1.2. 抽象软件 - 1.3. 虚拟机 - 2. 软件发展历程 - 3. Before 1950s 软件是硬件一部分 - 4. 年代:1950s - 4.1. 软件工程和硬件工程是一样的 - 4.2. 发展过程 - 4.3. 机器为中心 - 4.4. 软件发展方法 -...

阅读全文

SE-II-ch03-实例项目描述

03-实例项目描述 --- 1. 对应课本中的第三章 - 1. 背景 - 2. 目标 - 3. 系统用户 - 4. 用户访谈要点 - 5. 项目时间过程 1. 背景 2. 目标 1. 数值化的硬性要求 3. 系统用户 | 用户类别 | 描述 | | -------- | ---- | | - | - | 1. 简单描述各个用户的行为和系统期望。 2. 往往要有系统管理员 4....

阅读全文

SE-II-ch04-项目启动

04-项目启动 --- - 1. 项目和项目管理 - 1.1. 项目 - 2. 团队组织与管理 - 2.1. 团队 - 2.2. 团队的特征 - 2.3. 团队结构 - 2.4. 团队建设(高凝聚力的团队被称为胶冻团队) 重要 - 3. 软件质量保障 - 3.1. 软件质量 - 3.2. 质量模型 - 3.3. 质量保障 - 3.4. 评审 -...

阅读全文

SE-II-ch05-需求基础

05-需求基础 --- 1. 软件需求是一个连接现实世界与计算机世界的活动:它需要从问题出发,分析问题域,研究解决问题所需要的互动效应。 - 1. 一个产品的开发过程 - 2. 需求工程的内容 - 2.1. 软件建立的依据 - 2.2. 需求工程 - 2.3. 需求工程的具体活动 - 2.4. 需求开发过程模型 - 2.5. 需求获取 - 2.5.1. 目标分析 ...

阅读全文