《软件工程》复习大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1.软件:是能够完成预定功能和性能的可执行的计算机程序。包括使程序正常执行所需的
数据,以及有关描述程序操作和使用的文档。即:软件= 程序+ 文档
2.软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。
3.软件危机出现的原因:软件维护费用的急剧上升,直接威胁计算机应用的扩大;
4.软件生产技术进步缓慢,是家居软件危机的重要原因。
5.软件工程学的范畴:软件开发技术(软件开发方法学、软件工具、软件工程环境)、软
件工程管理(软件管理学、软件经济学、度量学)。
6.软件工程:是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术
和方法来开发与维护软件,目的是为了实现按照预期的进度和经费完成软件生产计划,同时提高软件的生产率和可靠性。
7.软件的发展:大体经历了程序、软件、软件产品3个阶段。
8.工具和方法是软件开发技术的两大支柱。
9.三种编程范型:过程式编程范型、面向对象编程范型、基于构件技术的编程范型。
10.三代软件工程:①传统软件工程②面向对象软件工程③基于构件的软件工程。
第二章
1.软件生存周期:计划、开发、运行3个时期。
2.软件生存周期的主要活动:需求分析—》软件分析—》软件设计—》编码测试—》软件
测试—》运行维护
注:需求分析(用户视角):功能需求、性能需求、环境约束、外部接口描述。
软件分析(开发人员视角):建立与需求模型一致的,与实现无关的软件分析模型。
软件设计:总体设计/概要设计、详细设计(确定软件的数据结构和操作)。
单元测试通常与编码同时进行。软件测试:单元测试、集成测试、系统测试。
3.软件过程:围绕软件开发所进行的一系列活动。
4.瀑布模型是一种基于软件生存周期的线性开发模型。
5.瀑布模型特点:阶段间的顺序性和依赖性、推迟实现的观点、保证质量的观点。
6.瀑布模型存在的问题:只有在需求分析准确的前提下,才能得到预期的结果。
7.常见的演化模型(渐增式、迭代式):增量模型、螺旋模型。
8.增量模型:结合瀑布模型的顺序特征与快速原型法的迭代特征。增量:小而可用的软件
9.一般情况下,第一个增量是软件的核心部分。如(增量一:需求-设计-实现和集成-交付
客户)
10.螺旋模型(目前最常用):当项目按照顺时针方向沿螺旋线移动时,每轮螺旋包含:计
划、风险分析、建立原型、用户评审4种活动。(高风险的大型软件采用此方法)
第三章
1.结构化设计SD ;结构化分析SA ;软件需求规格说明书SAS ;结构图SC ;数
据字典DD ;状态转换图STD ;数据流图DFD
2.SA需求分析的两项基本任务:建立系统分析模型、编写软件需求规格说明书。
3.分析模型组成:功能模型、数据模型、行为模型3种。
4.抽象和分解是结构化分析的主要指导思想,细化的实质是分解。分解和细化是软件设计
的策略。
5.需求分析的步骤:需求获取、需求提炼、需求描述、需求验证。
6.SA模型的组成:如下图
7.SA模型的描述:
a)DFD、DD、PSPEC。(它们是早期SA模型的基本组成部分)
b)CFD、CSPEC和STD。(它们是早期SA模型的扩展部分)
c)E-R图(适用于描述具有复杂数据结构的软件数据模型)
8.画分层数据流图:★例题3-8
9.模块设计(详细设计)的主要任务是编写软件的模块设计说明书。目的是确定模块采用的算法和块内数据结构。
10.模块设计的原则:清晰第一的设计风格、结构化的控制结构、逐步细化的实现方法11.“结构化”保证程序的清晰、易读,“逐步细化”实现程序的正确、可靠。
结构化程序设计原理和逐步细化的实现方法是完成模块设计的基础。
第四章
1.面向对象是以问题空间中出现的物体为中心进行模型化的一种技术。面向对象技术通过抽象化现实世界中的物体,来描述一个系统。
2.对象是客观世界的实体或概念在计算机中的表示。一个对象是具有唯一对象名和固定对外接口的一组属性和操作集合,用来模拟组成或影响现实世界的一个或一组因素。
3.面向对象的基本特征:抽象、封装、集成、多态。
4.面向对象开发的优点:提高软件系统的可复用性、可扩展性、可维护性。
5.类与对象的关系:可看成是抽象与具体的关系。组成类的每个对象都是该类的实例,实例是类的具体事务,类是各个实例的综合抽象。通过类还可以生成许多同类型的对象。6.UML的组成:UML的模型元素、UML的元模型结构、图和视图。
7.UML的4个抽象层次:用户模型、模型、元模型、元元模型。
8.UML的2类图:
静态图(用例图、类图、对象图、构件图、部署图);
动态图(状态图、时序图、协作图、活动图)
5种视图:用例视图、逻辑视图、进程视图、构件视图、部署视图。
9.UML的特点:同意标准、面向对象、表达能力强,可视化。
10.用例图就是由主角、用例以及它们之间的关系构成的图。该图说明了用例模型中的关系。用例模型由一组用例图组成,其基本组成部件是用例、参与者和系统。
11.类图:是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图最基本的元素是类或者接口。
12.对象图是显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等的实例的静态快照。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。
13.状态图是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。
14.时序图用来描述对象之间的动态交互,着重体现对象间消息传递的时间顺序。
15.协作图用来描述相互协作的对象间的交互和链接。
16.构件图显示软件构件之间的依赖关系。
17.部署图描述系统硬件的物理拓扑结构以及在此结构上执行的软件。
第五章
1.软件需求主要指一个软件系统必须遵循的条件或具备的能力。
2.软件需求的3个层次:业务需求、用户需求、功能需求。软件项目中40%~60%的问题
源自软件需求阶段。
3.软件需求的6个特性:功能性、可用性、可靠性、性能、可支持性、设计约束。
4.需求工程与需求分析之间的区别:
需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。它通过合适的工具和
记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不
断变化的需求演进给予支持。
所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
5.需求分析的步骤:需求获取、需求建模、需求描述(编写SRS)、需求验证。
6.需求分析的主要任务:建立需求模型。需求分析是迭代过程。
第六章
1.面向对象分析的任务是:将需求阶段产生的需求模型转换为软件分析模型。
面向对象设计的任务是:将分析阶段建立的分析模型转换为软件设计模型。
2.面向对象分析OOA的建模步骤:需求理解、定义类和对象、标识对象的属性和操作、
标识类的结构和层次、建立对象-关系模型、建立对象-行为模型、评审OOA模型。
3.OOA的优点:同时加强了对问题空间和软件系统的理解;改进包括用户在内的软件分
析有关的各类人员之间的交流;对需求的变化具有较强的适应性;很好的支持软件复用;
确保从需求模型到设计模型的一致性。
4.分析模型(是一种概念模型)的特点:全面覆盖软件的功能需求;分析模型与软件的实现
无关;分析模型的表述方法与所采用的分析技术有关。
5.典型的五层次模型:建立类/对象层(抽象出类和对象)、建立属性层(设计静态属性和
关系)、建立服务层(定义动态属性和消息通信)、建立结构层(定义层次结构关系)、