河南大学软件工程课程期末重点
1..软件的特点:软件是一种逻辑实体,具有抽象性。
2.软件危机表现:成本高、计算机软件和硬件费用比上升、软件质量得不到保证、由于软件质量问题导致失败的软件项目非常多、进度难以控制、维护非常困难
3.产生软件危机的原因: 1.与软件本身的特点有关(难于维护,逻辑复杂)
2.与软件开发与维护的方法不正确有关:软件≠程序;急于成=
拔苗助长;各自为阵无方法/学
4.软件工程的定义:软件开发、运行、维护和引退的系统方法
5.软件工程三要素:方法、工具和过程。
6.方法:面向对象、面向过程、面向数据,为软件开发提供如何做的技术
7.生命周期的定义:从功能确定、设计到开发成功投入使用,并在使用中不断地修改、增补
和完善,直到被新的需要所代替而停止使用该软件的全过程。
8. 软件制造的八个阶段:可行性分、需求分析、概要设计、详细设计、编码、测试、交付
9. 需求分析阶段要明确做什么
10.过程模型
(1)瀑布模型:特点:时间上具有顺序性和依赖性;推迟实现的观点;质量保证的观点
优点:适合于用户需求明确、完整、无重大变化的软件项目开发。
缺点:实际项目很少按照该模型给出的顺序进行;
用户常常难以清楚地给出所有需求;
用户必须有耐心,等到系统开发完成
(2)原型模型—快速原型模型:在用户不能给出完整、准确的需求说明,或者开发者不能确定算法的有效性、操作系统的适应性或人机交互的形式等许多情况下,可以根据用户的
一组基本需求,快速建造一个原型(可运行的软件)
(3)增量模型:是一种渐进地开发逐步完善的软件版本的模型
(4)螺旋模型:螺旋模型的基本思想是降低风险
(5)喷泉模型:是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。
(6)演化模型:是一种全局的软件(或产品)生存周期模型。属于迭代开发方法
(7)智能模型:智能模型也称为基于知识的软件开发模型,它综合了上述若干模型,并把专家系统结合在一起。该模型应用基于规则的系统,采用归纳和推理机制,帮助软件人员完成开发工作。
11.面向对象三要素:方法、属性、标识符。
12.RUP:统一软件开发工程,RUP重复一系列周期,每个周期由一个交付给用户的产品结束。每个周期划分为初始、细化、构造和移交四个阶段,每个阶段围绕着五个核心工作流
(需求、分析、设计、实现、测试)分别迭代。
13.UML定义:适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。
14.OOA:面向对象的分析。OOD:面向对象的设计。
15.UML由以下5类图来定义:第1类:用例图
第2类:静态图(包括类图、对象图和包图)
第3类:行为图(包括状态图和活动图)
第4类:交互图(包括时序图和协作图)
第5类:实现图(包括组件图和配置图)
16.需求分析定义:确定系统必须完成哪些工作,明确做什么。
17.获取需求的5W1H方法:why 定律:为什么要引入系统
What 定律:明确系统要做什么,
Who 定律、When 定律、Where定律:需求细化阶段,用来产生系统需求的用例图
How 定律:如何实现这个系统
18.面向对象设计原则:模块化、封装、抽象、信息传递局部化、模块独立化
19.模块化:不是越多越好
20.模块独立性:耦合度与内聚度,最好的情况是高内聚、低耦合。
耦合度最高是内容耦合,最低是非直接耦合。
内聚最高是偶然内聚,最低是功能内聚
21.数据库:表来源于类图。
22.界面的设计原则最重要在功能。
例如:用于很多功能,每个功能拥有一个界面,这样的功能应该保持一致,因为功能都是类似的。
23.编码:依照详细设计来进行。
风格:(1)注释分为:序言性注释;功能性注释;
(2)数据说明:数据说明的次序应该标准化;当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。如果设计时使用了一个复杂的数据结构,则应该用注解说明用程序设计语言实现这个数据结构的方法和特点。
(3)注意视觉组织
24.软件测试的定义:为了发现错误而执行程序的过程。测试只能出程序中的错误,但在未发现错误时,并不能证明程序中没有错误。
25.软件测试的目标:尽可能多的发现软件中潜藏的错误,一个成功的测试是发现了至今未发现的错误的测试
26.测试的分类:静态测试、动态测试。动态测试又分为黑盒测试(主要是软件的功能)和白盒测试(主要是软件的结构)。
27.基于不同阶段的测试:单元测试、集成测试、系统测试、验收测试
28.Alpha测试:在开发环境中、Beta测试:在真实环境中
29.维护定义:就是在软件已经交付使用之后,为了保证软件在相当长的时期能够征程运作所进行的软件活动
30:维护时开发过程中耗时最长的。
31.维护类型:改正性维护(因开发时测试不完成,遗留下来的错误);
适应性维护(环境改变时进行的维护);
扩充与完善性维护(用户提出新要求)(这种维护占比最大);
预防性维护(提高软件的可靠性)(占比最小);
32.错误发现越早越好,因为这样花费的代价小。
33.软件系统的文档分为用户文档和系统文档。软件工程学什么
34.调试:发现错误并改正的过程。
35.维护软件最重要的就是文档。