现代软件工程复习指导

第一章:软件工程概述
1.理解什么是软件工程,软件工程包含那些领域,以及为何要搞软件工程?

将系统的,有序的,可量化的方法应用到软件的开发,应用和维护方面
软件需求分析,设计,构建,测试,维护
需求复杂 系统复杂 人的生命和财产与软件有关
2.理解软件的特性
复杂性 不可见性 易变性 服从性 非连续性 没有银弹

第二章:个人技术
1.掌握基本的单元测试技术,能够根据给定的程序写出相应的测试案例

行覆盖 判定覆盖 判定覆盖 路径覆盖
2.了解什么是回归测试
重新测试之前的功能,防止修改了这个bug导致原来的功能也出现问题

第三章:个人软件流程
1.PSP2.1里的各项指标的含义

提前准备(需求获取,其他要求时间和成本的依赖关系)
需求分析 设计文档 复审设计文档 代码规范 具体设计 具体编码 代码复审@ 测试
记录时间 测试报告@ 记录工作量 时候总结@ 能否改进?
2.PSP优缺点
不限制于具体的语言和工作 不依赖于考试@工程师自己记录
记录复杂 好的需求分析很难拿到 工作量难以计算 难以评价(没用户)
3.理解软件工程师的四个误区
分析麻痹 依赖链条过长 过早优化 过早泛化

第四章:两人合作
1.了解代码复审的三种形式

自己复审 同伴复审 团队复审@
2.掌握“代码复审核查表”的“概要部分”
符合需求和编码规范吗 是否设计周全@ 可读性如何@ 测试过吗 利于维护吗
3.理解好的复审者的“更高要求”
别的功能会不会影响@ 有没有类似的bug 对将来的维护@和其他人报告了吗 为什么会产生bug今后如何避免
4.理解结对编程,其优缺点,以及合适和不合适的场景
优点;效率高 避免低级bug 降低人员离开风险 增强信心 提高士气工作被认可@ 知识分享@
缺点: 需要花时间培训 工作形式不一样 最个人影响 让人感觉威胁@
合适 老老 新新 探索新领域
不合适 需要深入思考 后期技术含量不高的维护@ 长时间等待的测试 小组要轮流工作荒废时间

第五章:团体软件流程
1.了解瀑布模型及其变体的优缺点

瀑布模型 每一步可验证@ 减少风险@ 流程精密联系 难以割裂 流程不结束无法发布@ 只要需求不对重构代价极大
生鱼片 一个结束下一个 不好定义生命时候结束下一个
瀑布模型+分治变体 不可见 相互依赖@ 合并的代价@
螺旋模型 降低风险 难以找到界碑
2.了解RUP的大致内涵
重计划@,重事先分析@,重文档@
建模@ 需求分析 设计 编码 测试@ 部署@

第六章:敏捷流程
1.了解敏捷流程产生的背景

互联网速度加快 技术更迭速度up 客户需求速度up
2.理解敏捷流程和传统做法的区别
流程和工具 个人和交流@
完备的文档 可用的软件@
为合同谈判 与客户合作@
执行原计划 响应变化@
3.理解敏捷流程的原则
尽早持续交付@ 经常发布可用@ 欢迎多变需求 保证持续的合作@
每天工作@ 以进取的人为项目核心@ 面对面交流@ 可用的软件是衡量标准@
不断关注技术@ 保持简明@ 时时刻刻提高团队效率@ 自我管理的团队@
4.理解SCRUM的角色以及流程
分析 拆分冲刺 选择任务冲刺 增量迭代
5.敏捷和计划驱动的适用范围
产品可靠性不高 高@
多变的 传统的
人数不多资深带队 人数不少中层技术为主@

第七章:软件需求
1.知道需求的分类

产品 开发过程@ 服务质量 综合需求
2.能够知道利益相关者分别有哪些对应的需求
客户 用户 软件设计师 软件公司 产品创始人 监管部门@ 市场分析者@
3.了解焦点小组和问卷调查方法的优缺点
容易自己骗自己 大家各自骗
多做努力 选择太小 定义不明确@ 过于开发@ 带有引导@
4.能够把功能合理的分在四像限中
杀手功能 外围功能@ 必要需求 辅助需求

第八章:典型用户和场景
1.能够对一个产品选取合理的典型用户并能描述典型场景

第九章:项目管理
1.知道风险的分类

人 技术 流程 环境@
2.能够合理的列出项目的风险
等级
3.能够知道如何合理的处理风险
研究@ 接受 规避@ 转移@ 降低@ 指定紧急预案@

第十章:软件设计(只参考UML附件和UML相关书籍)
1.根据系统的基本描述,能够画出适当的用例图、类图、活动图和顺序图。

用例图 小人 系统边界 include exclude 泛化
类图 类继承关系 类成员画法 关联 依赖 泛化(继承) 组合 聚合
活动图 泳道 开始 结束 判定 分支 合并 分岔(并发) 汇合(并发)
顺序图 生命线 对象 同步 返回 异步 普通 激活区 循环 时间建模

第十一章:软件测试
1.能够理解测试和质量保障的定义

测试 给出输入 对比输出和预期
提高软件的质量的活动总和
2.能够知道客观质量和主观质量分别是什么
稳定没bug 符合规范@
满足客户需求 让客户爽 让客户需求更多
3.知道白箱测试和黑箱测试的定义
白箱就是知道内部结构 细致的分析测试
黑箱就是面向软件行为 给出所有可能的行为
4.掌握三种测试用例设计方法
等价类划分
边界值分析
正交实验

第十二章:软件质量
1.软件工程的质量体现在哪些方面

可见性 风险管理能力 成本控制 内膜模块交互质量@ 内部质量指标@
2.根据燃尽图(或类似的图)能够说明软件过程中出现的问题
3.了解用户代替测试的问题
不一定能测到 时间不固定 没人复现 bug修复慢 没有责任没有质量

第十三章:软件发布
1.了解软件发布的那些名词

alpha beta zbb rc rtm rtw(rto)
2.了解从代码完成到软件发布之间的步骤
集成测试 alpha dcr(文档修改请求) beta 外部测试 RTM/RTO
3.了解会诊小组有哪些决策
修复 就是这样 不修复 转移到下一代

posted @ 2022-05-04 20:32  一道白虹掠出阁  阅读(109)  评论(0)    收藏  举报