1.软件是1)指令的集合;2)数据结构;3)软件描述信息。
2.计算机软件七大类:1)系统软件;2)应用软件;3)工程/科学软件;4)嵌入式软件;5)产品线软件;6)Web/移动app;7)人工智能软件。
3.遗留软件:在几十年前诞生,不断被修改以满足商业需要和计算机平台的变化。其特点:生命周期长、业务关键性、质量差。
4.软件工程是:1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化的方法应用于软件;2)对1)中的所述方法的研究。
5.软件工程层次由低到高:质量关注点、过程、方法、工具。
6.软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。
7.过程框架:沟通、策划、建模、构建、部署。
8.普适性活动:补充实现。(了解。)
9.软件开发神话:关于软件及其开发过程的一些被人盲目相信的说法。实际上误导了管理者和从业人员对软件开发的态度。(看书p16\17\18以应对判断题)
10.过程流:过程流描述了在执行顺序和执行时间上如何组织框架中的活动、动作和任务。分为线性过程流、迭代过程流、演化过程流、并行过程流。
11.过程模式:一种在软件过程的背景下统一描述问题解决方案的方法。
12.瀑布模型:又称经典生命周期,它提出了一个系统的、顺序的软件开发方法。
13.增量模型综合了线性过程流和并行过程流的特征。随着时间的推移,增量模型在每个阶段都运用线性序列。每个线性序列生产出软件的可交付增量。
14.演化模型是迭代的过程模型,这种模型使得软件开发人员能够逐步开发出更完整的软件版本。
15.螺旋模型:是一种演进式软件过程模型。它结合了原型的迭代性质和瀑布模型的可控性和系统性特点。它具有快速开发越来越完善的软件版本的潜力。
16.统一过程:“用例驱动,以架构为核心,迭代并且增量”。
17.统一过程UP的阶段:起始阶段、细化阶段、构建阶段、转换阶段、生产阶段。
18.极限编程XP:XP使用面向对象方法作为推荐的开发范型,它包含了策划、设计、编码和测试4个框架活动的规则和实践。
19.重构是以不改变代码的外部行为而改进其内部结构的方式来修改软件系统的过程。
20.结对编程:两个人面对同一台计算机共同为一个故事开发代码。
21.需求工程包括七项明确的任务:起始,获取,细化,协商,规格说明,确认和管理。其中获取的三个问题:范围问题、理解问题、易变问题。
22.利益相关者:直接或间接地从正在开发的系统中获益的人。
23.在QFD(质量功能部署)语境中,三需求:常规需求、期望需求、兴奋需求。
24.场景是用例的实例,用例是场景的抽象。
25.需求模型必须实现的三个主要目标:1)描述客户需要什么;2)为软件设计奠定基础;3)定义在软件完成后可以被确认的一组需求。
26.需求建模的方法:结构化分析和面向对象的分析。
27.需求模型的元素:基于场景的模型、类模型、行为模型、流模型。
28.CRC(类-职责-协作者)(看p113理解);
29.(软件)设计的目标是创作出坚固、适用和令人愉悦的模型或表示。
30.FURPS质量属性的各字母:功能性、易用性、可靠性、性能及可支持性。
31.信息隐蔽:每个模块对其他所有模块都隐蔽自己的设计决策。
32.五种不同类型的设计类:1)用户接口类;2)业务域类;3)过程类;4)持久类;5)系统类。
33.设计类组织良好的四个特征:1)完整性与充分性;2)原始性;3)高内聚性;4)低耦合性。
34.体系结构模型从以下三个来源导出1)关于将要构建的软件的应用域信息;2)特定的需求模型元素;3)可获得的体系结构风格和模式。
35.接口设计的三个重要元素:1)用户界面;2)外部接口;3)内部接口。
36.软件体系结构是指系统的一个或者多个结构,它包括软件构件、构件的外部可见属性以及它们之间的相互关系。
37.体系结构类型(genre)。
38.体系结构风格的简单分类:1)以数据为中心的体系结构;2)数据流体系结构;3)调用和返回体系结构;4)面向对象体系结构;5)层次体系结构。
39.构件是计算机软件中的一个模块化的构造块。系统中模块化的、可部署的和可替换的部件,该部件封装了实现并对外提供一组接口。
40.在面向对象软件工程环境中,构件包括一个协作类集合。
41.在传统软件工程环境中,一个构件就是程序的一个功能要素。传统构件也称为模块。它扮演如下三个重要角色之一:1)控制构件;2)问题域构件;3)基础设施构件。
42.基本设计原则:开闭原则、Liskov替换原则、依赖倒置原则、接口分离原则、发布复用等价性原则、共同封装原则、共同复用原则。
43.内聚性被描述为构件的“专一性”。面向对象构件级设计中,内聚性意味着构件或者类只封装那些相互关联密切,以及与构件或类自身有密切关系的属性和操作。
44.耦合是类之间彼此联系程度的一种定性度量。
45.基于构件的软件工程(CBSE)是一种强调使用可复用的软件构件来设计与构造计算机系统的过程。
46.软件构件标准:1)CCM;2)Microsoft COM和.NET;3)JavaBeans。
47.界面设计三黄金规则:1)把控制权交给用户;2)减轻用户的记忆负担;3)保持界面一致。
48.(考过)保持界面一致:允许用户将当前任务放入有意义的环境中;在完整的产品线内保持一致性;如果过去的交互模型已经建立起了用户期望,除非有不得已的理由,否则不要改变它。
49.用户界面四种模型:用户模型、设计模型、心理模型、实现模型。
50.用户界面的设计过程是迭代的。包括四个不同的框架活动:1)界面分析和建模;2)界面设计;3)界面构建;4)界面确认
51.软件质量:在一定程度上应用有效的软件过程,创造有用的产品,为生产者和使用者提供明显的价值。
52.McCall的软件质量因素:产品修改、产品转移、产品运行。
53.软件质量困境:一方面,产品要足够好,不会立即被抛弃;另一方面,又不是那么完美,不需要花费太长时间和太多成本。
54.质量成本可分为预防成本、评估成本和失效成本。
55.四大管理和实践活动是:软件工程方法、项目管理技术、质量控制活动、软件质量保证。
56.软件测试的目的是为了发现软件设计和实现过程中因疏忽所造成的错误。
57.测试策略:(由小到大)单元测试、集成测试、确认测试、系统测试。
58.采用外部视角也称黑盒测试,采用内部视角,也称白盒测试。(p270理解)
59.4P,人员、产品、过程、项目。
60.软件工程团队4种“组织范型”:1)封闭式范型;2)随机式范型;3)开放式范型;4)同步式范型。
61.五个培育潜在含毒团队环境:1)狂乱的工作氛围;2)引起团队成员间产生摩擦的重大挫折;3)“碎片式的或协调性很差”的软件过程;4)在软件团队中没有清晰的角色定义;5)“接连不断地重蹈覆辙”。
62.关键实践包括:基于度量的项目管理、成本及进度的经验估算、获得价值跟踪、根据质量目标跟踪缺陷、人员计划管理。