软件工程A
第五学期必修课,2.5学分,计入保研绩点。
谁说大三就没有思政课的?软院马原来喽!
猫娘在该课程上仅得到86.4分,本仓库内容请谨慎参考。
课程本身
- 奇怪的排课。每周2次,一次4节连排,5周上完。
- 您可能会听到/看到:
- 比你年龄都大的PPT
- Win95时代的举例
- 突发纸质签到
考核
- 平时分30,期末考试70
- 题型:
- 名词解释(含英文) 10分 5*2
- 选择 20 20*1
- 判断 10 10*1
- 简答 30 6*5
- 设计(含英文) 30 15*2
相关资源下载
感谢【米饭不是配菜】整理到的网络资源!包含背诵资料、回忆版真题等。
备考建议
- 名词解释重点关注有英文标注的(可能会出英文题),或者PPT上画了星星的,自己总结下来手抄一遍。
- 4和12两章不考。“形式化英语”“形式化需求”这种字眼别看了,不考。
- 设计题一般是一个数据流图,一个UML。这两道题一般是软考题改编的,但区别是软考题是填空题,有逐步引导。
- 比如:给你一个智能农业害虫监测的情景,给出一个挖空的用例图。第一问根据题干填写用例图里面的空白部分,第二问给出一个没连线的类图需要填充。
- 但是期末考试是只给题干,完全没有提示的,全程需要你自己设计。可以做几道软考真题,仿照一下他们的流程。
- 怎样获取软考真题?直接搜就行了,搜不到可以拼多多花几块钱买一套软考资料,注意科目应该是【中级 软件设计师】,不然可能对不上号。找到里面真题带有【下午题目】【应用技术】【非选择题】字样的文件夹,一般每套真题是6道大题,其中有一个数据流和一个UML就是你要找的题。剩下三个大题,分别是算法、数据库ER图、【Java编程】【C++编程】二选一。
- 22级英文设计题是UML,设计一个牙科诊所管理系统。英文题本身不难懂,四级过了的基本都能看懂。UML图考题,一般是先画用例图,然后画参与类图(VOPC),可能还需要画类图,看起来像那么回事就行了,这部分似乎不是主要失分点。
- 对于数据流图,一定要记住自顶向下。先画第0级(你的整个软件画一个方框,外面的输入输出数据流用xx信息这样的形式),例如:log然后画第1级,就是对上一级数据流图的细化。假如根据题目你发现整个考试系统可以拆分为【基本信息】【试题信息】【答卷信息】【教师信息】【阅卷信息】五个子系统,那么就分别把0层数据流图中,笼统、抽象的“xx信息”拆分为更具体的输入输出,就好像你设计一个函数一样,要知道它的输入输出返回值是什么。每个子系统应该单独编号单独绘图。注意存储到文件、数据库,要画成双线中间夹着文字的形式。
_____________ 学生信息-->|学生考试系统|-->成绩报表 -------------
- 简答常考题:黑盒白盒测试,测试路径,工程网络图【几乎必考,可参考数据结构AOE网络】,架构风格,MTTF、MTTR相关计算,McCabe复杂度计算,数据流图映射(也就是Ca,Ct,Cb)。不排除考其他题,这些只是最经典的
- 为什么说它是软院马原?因为它和思政课很像,甚至复习策略也差不多,课本上需要背的东西也是一样的。每段第一句的含金量这一块
- 两千多页PPT里面,英文页面就别管了,看不懂也背不会。
知识点总结
- 软件工程概述
- 软件的定义;程序、数据、文档
- 软件的特点
- 软件危机
- 软件工程的定义、特性、原理
- 软件工程方法学:方法、工具、过程;传统方法学和面向对象方法学
- 软件生命周期:软件定义、软件开发、软件维护
- 软件过程(加粗的考的多):瀑布模型(需求明确),V模型,快速原型模型,阶段式开发,增量模型,螺旋模型(控制风险),喷泉模型(面向对象),RUP,敏捷开发,微软过程,极限编程
- 可行性研究
- 目的、实质、路线、任务
- 系统流程图(虽然标星了,还是作图知识点,但考的不多)
- 数据流图(必考)
- 数据字典
- 成本效益分析(考的不多)
- 需求分析
- 任务
- 需求的分类:功能需求、性能需求、可靠性需求……
- 获取需求:访谈,面向数据流自顶向下,简易的规格说明技术,快速建立软件原型,最终得到需求规格说明书
- ER图、数据范式(数据库考过了,软件工程不怎么考)
- 状态转换图
- 不怎么考的图:状态迁移图、层次方框图、Warnier图、IPO图、时序图(不是UML那个)、Petri网络
- 验证软件需求(一致完整现实有效),后面的形式化xx没见过考
- 总体设计
- 详细设计与概要设计
- 总体设计分为系统设计和结构设计
- 软件设计原理:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立性
- 内聚与耦合(7种内聚7种耦合必须知道)
- 启发规则:深度宽度、扇入扇出、作用域控制域
- 不怎么考:层次图,HIPO图
- 结构图
- 面向数据流的设计方法:变换流、事务流,变换分析Ca Ct Cb,事务分析
- 体系结构:软件体系结构风格
- 详细设计
- 结构化程序设计
- 人机界面设计
- 过程设计技术和工具(流程图,盒图(或者叫NS图),PAD图),判定表判定树
- Jackson图和Jackson方法不怎么考
- 复杂度度量:McCabe方法(几乎必考),后两个不怎么考
- 实现
- 编码风格
- 软件测试基础:黑盒测试白盒测试,测试步骤(单元,集成,系统,……)
- 单元测试:测试重点、计算机测试(驱动程序、存根程序)
- 集成测试:三明治集成测试,一次性集成,自顶向下集成,自底向上集成,回归测试
- 确认测试:Validation 和 Verification 辨析,Alpha Beta测试
- 白盒测试(必考):语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 点覆盖 边覆盖 路径覆盖 基本路径测试 条件测试 循环测试
- 黑盒测试(必考):等价类划分 边界值分析 错误分析
- 调试
- 软件可靠性:MTTF MTTR计算 可靠性可用性 植入错误法 分别测试法
- 维护
- 维护的定义 维护的分类
- 维护过程
- 软件的可维护性
- 用户文档、系统文档、可维护性复审
- 预防性维护
- 软件再工程
- 面向对象方法学
- 面向对象=对象+类+继承+通过消息进行通信
- 面向对象的优点
- 相关概念:对象、类、消息、封装、继承、多态、重载……
- 面向对象建模(UML)(必考):4种关系:依赖、关联、泛化、实现;9种图,重点掌握用例图、类图、时序图,其他几个图我没有见到考察,软考真题也很少涉及;5个视图
- 面向对象分析
- 用例规约(就是根据用例图制作的那个表格,用例名称、Actor、入口条件、事件流……)
- 分析类的提取:实体类、边界类、控制类;参与类图(VOPC)的绘制
- 面向对象设计
- 与《设计模式》内容重合,也没怎么考
- 软件项目管理
- 基本概念,了解即可
- 软件项目进度计划:工作分解结构(WBS),Gantt图,工程网络图、关键路径、机动时间(必考)
- 人员组织:民主制、主程序员组、大型
- 成本估算:代码行,功能点,专家经验,COCOMO……没怎么见到考过计算,了解一下概念应付小题就行
- 风险管理
- 软件配置管理、配置项、基线
- 质量保证,走查、审查
- CMM能力成熟度模型
后记
总结这玩意是真赤石。以上知识点总结比较笼统,标注粗体是考的比较多的。标注必考的就是字面意思,而且会出大题的那种。没加粗的部分,大题没见过考察,但是小题谁也没法保证,毕竟两千页PPT,鬼知道出题人会在什么边边角角的地方抠出来一个小点。
翻阅该课程PPT的时候能感受到充足的考古气息,设备里面甚至有“磁鼓”,软件界面甚至是win95时代的,我也是非常的无语。整理这玩意花了一个下午,我已经无力吐槽了,就不多说废话了,祝你满绩通关。