五、软件工程基础知识
章节梳理
- 软件生存周期:可行性分析、需求分析、概要设计、详细设计、程序编码、软件测试、维护
-
- 瀑布模型:
- 原型化方法:主要应对需求不明确。
- 敏捷方法:总体目标是通过“尽可能早地,持续地对有价值的软件的交付”使客服满意,敏捷过程的典型方法很多,主要有极限编程、水晶法、并列争球法、自适应软件开发几种。
- 需求分析:
- 概要设计的基本任务:设计软件系统总体结构、数据结构及数据库设计、编写概要设计文档、评审
- 详细设计的基本任务:对每个模块进行详细的算法设计,用某种图形、表格和语言等工具将每个模块处理过程的详细算法描述出来、对模块内的数据结构进行设计、对数据库进行物理设计,即确定数据库的物理结构、其他设计,根据软件系统的类型,还可能要进行进行(代码,输入/输出格式,用户界面,编写详细设计说明书,评审)设计、编写详细设计说明书。评审。
- 黑盒与白盒测试
- McCabe复杂=边-点+2
- Gantt图:清晰地表达描述描述每个任务从何时开始,以及实际进展与计划要求做对比,到何时结束以及各个任务之间的并行性,但是它不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。
- PERT图:不仅给出了每个任务的开始时间,结束时间和完成该任务所需的时间,还给出了任务之间的关系,即哪些任务完成后才能开始另外一些任务,以及如期完成整个工程关键路径。松弛时间则反映了完成某些任务时可以推迟其开始时间或延长其所需的完成时间。但是PERT图不能反映任务之间的并行关系。
错题整合
- 功能性:适合性,准确性,互用性,依从性,安全性。
- 可靠性:成熟性,容错性,易恢复性。
- 易使用性:易理解性,易学性,易操作性。
- 效率:时间特性,资源特性
- 可维护性:易分析性,易改变性,稳定性,易测试性。
- 可移植性:适应性,易安装性,易替换性,一致性。
- 巧合内聚就是偶然内聚,会使得模块间的耦合度增加。
- 方法重载,就是在类中可以创建多个方法,他们具有相同的名字,但具有不同参数和不同的定义。调用方法时通过传递给他们不同的参数个数和参数类型来决定具体使用那个方法,这就是多态性
- 方法重写,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数
- .聚合对象是指一个对象包含其他对象
- 功能需求:考虑系统要做什么,在何时做,在何时以及如何修改或升级
- 性能需求:考虑软件开发的技术性指标,例如:存储容量限制,执行速度,响应时间以及吞吐量。
- 非功能性需求:如采用某种开发模式,确定质量控制标准,里程碑和评审,验收标准,各种质量要求的优先级等,以及可维护性方面的要求。
- 顺序内聚:处理元素相关,而且必须顺序执行。
- 通信内聚:所有处理元素集中在一个数据结构的区域上。
- 过程内聚:处理元素相关,而且必须按特定的次序执行。
- 适应性维护:技术,需求发生了变化而引起的维护
- 在面向对象方法中,多态指的是客户类无需知道所调用的方法的特定子类的实现。
面象对象开发方法有Booch,Coad,OMT方法。