02333 软件工程 框架+知识点
选择题:2'*15=30
填空题:2'*15=30
简答题:5'*8=40
共八章
一、绪论
软件开发的本质及其涉及到的问题 (2024-04JD 5')
(1)将软件开发的本质概括为:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”。(2’)
(2)它涉及到两方面的问题:
①一是如何实现这样的映射,这是技术层面上的问题。(1’)
②二是如何管理这样的映射,以保障映射的有效性和正确性。这是管理层面上的问题。(2’)计算机软件=程序+文档
二、软件需求与规约
三、结构化方法
在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用情况。
按照结构化设计方法,一个应用程序是由多个功能相对独立的模块所组成。
扇入:是指直接调用该模块的上级模块的个数。扇入大表示模块的复用程序高。
扇出:是指该模块直接调用的下级模块的个数。扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的模块。扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。
设计良好的软件结构,通常顶层扇出比较大,中间扇出小,底层模块则有大扇入。(大小大)(2024-04XZ 2')结构化方法总体设计的三个阶段 (2024-04JD 5')
(1)第一阶段为初始设计。对给定的数据流图进行复审和精化的基础上,将其转化为初始的模块结构图。(1分)
(2)第二阶段为精化设计。依据模块“高内聚低耦合”的原则,精化初始的模块结构图,并设计其中的全局数据结构和每一模块的接口。(2分)
(3)第三阶段为复审阶段。对前两个阶段所得到的高层软件结构进行复审,必要时还可能需要对该软件结构做一些精化工作。(2分)结构精细化设计的原则:高内聚低耦合(2024-04XZ 2') ;逐步细化;清晰第一,效率第二;遵循结构化控制结构……
在结构化设计中,执行一个特殊任务的一个过程以及相关的数据结构,称之为模块。 (2024-04TK 2')
模块(Module)是结构化设计的核心概念之一,它将程序分解为可管理的、功能单一的代码单元,每个模块完成一个特定的任务,并通过明确的接口与其他模块交互。
四、面向对象方法UML
UML表达客观事物之间关系的术语及定义 (2024-04JD 5')
(1)为了表达各类客观事物之间的关系,UML给出了表达关系的基本术语:关联、泛化、细化、依赖;(1分)
(2)关联是类目之间的一种结构关系,是对一组具有相同结构、相同链的描述。(1分)泛化是一般性类目和它的较为特殊性类目之间的一种关系。(1分)细化是类目之间的语义关系,其中一个类目规约了保证另一个类目执行的契约。(1分)依赖是一种使用关系,用于描述一个类目使用另一类目的信息和服务。(1分)为了进一步表达泛化的语义,UML给出了4个约束,分别为完整、不完整、互斥、重叠。 (2024-04TK 2')
四个主要阶段:
(一)初始阶段
(二)细化阶段
使用类图来定义分析类(边界类、实体类、控制类)(2024-04XZ 2')
(三)构建阶段
(四)交付阶段
五、面向对象方法RUP
定义:Rational Unified Process,统一软件开发过程。
- RUP中部署模型 (2024-04TK 2') 的主要内容:节点,节点之间的通信关系,主动类到节点的映射 (2024-04TK 2') ,软件组件到节点的映射,部署配置,部署视图,部署计划
四个主要阶段:
(一)初始阶段
(二)细化阶段
(三)构建阶段
(四)交付阶段
六、软件测试
描述系统或软件问题时常用的术语:
错误:由于开发人员的疏忽、误解或其他原因导致的不符合预期的行为或状态。错误通常发生在开发阶段,例如需求分析、设计或编码过程中。
故障:系统或组件的内部状态不正常。能是偶然的(如硬件故障)或系统的(如软件设计缺陷)。
失效:系统或组件未能按照预期执行其功能,是用户可观察到的错误行为或结果。(2024-04XZ 2')人类对软件测试目的的认识经历了 5 个阶段 (2024-04XZ 2')
(1)错误检测阶段
(2)验证阶段
(3)质量保证阶段
(4)风险控制阶段
(5)用户体验和价值交付阶段
七、软件生命周期
螺旋模型概念及其特点 (2024-04JD 5')
(1)螺旋模型是瀑布模型与演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。(2’)
(2)螺旋模型关注解决问题的基本步骤,即标识问题,标识一些可选方案,选择一个最佳方案,遵循动作步骤并实施后续工作。其一个突出特征是,在开发的迭代中实际上只有一个迭代过程真正开发了可交付的软件。(3’)- 瀑布模型适用于需求明确、稳定且对安全性和可靠性要求高的项目,例如企业内部管理信息系统、航空航天和医疗设备领域的软件开发。(2024-04XZ 2')
五个主要阶段:
(一)需求分析
(二)设计阶段
(二/1)概要设计
概要设计规约的主要内容 (2024-04JD 5')
系统架构设计:包括系统的物理硬件架构、软件架构、技术平台选择等。
功能模块设计:根据需求将功能划分到子系统或模块中,包括主要数据结构。
接口设计:定义系统内部模块间或与外部系统的交互接口,以及必要的注释。
数据库设计:设计核心数据的逻辑结构。概要设计规约的作用
是系统设计阶段的重要文档,用于指导详细设计和后续的开发工作。
是系统架构和功能模块设计的正式文档,为开发团队提供整体设计思路。
(二/2)详细设计
(三)编码阶段
(四)测试阶段
(五)维护阶段
八、集成化能力成熟度模型CMMI
定义:是一种用于评估和改进组织在软件开发、系统集成、项目管理等方面过程能力的框架。
CMMI的成熟度等级:初始级,已管理级,已定义级,已量化管理级,持续优化级。共 5 个等级,每个等级要记英文,可能会考某个等级的名字;最高等级为第5级,优化级。(2024-04XZ 2')
能力等级和成熟度等级之间的区别和联系 (2024-04JD 5')
(1)区别:能力等级是一种过程改善路径,该路径可使组织针对单一过程域不断改善该过程域。(1分)成熟度等级也是一种过程改善路径,该路径可使组织通过关注一组过程域不断改善一组相关的过程域;(1分)
(2)联系:能力等级和成熟度等级都是CMMI提供的两种过程改善路径,侧重不同:它们都是按共用目标从弱到强。(1分)当某一过程域逐步完成了所有等级的“最佳实践”,它才可能满足成熟度等级对单一过程域的要求。(1分)当一组过程域及相关共用目标的一个成熟度等级完成后,软件过程才能实现高一级别的“成熟”,从而实现对软件过程有效管理的“最佳实践”。(1分)CMMI模型根据核心能力领域对过程域进行分类,这些能力领域包括:
治理:提供高级管理在过程治理中的角色指导。
实施基础设施:确保组织的重要过程和资产被持续使用和改进。
过程管理:包括组织过程焦点、过程定义等。
项目管理:包括项目规划、监控、风险管理等。
工程:涉及需求开发、技术方案、验证等。(2024-04XZ 2')
支持:包括配置管理、度量分析、质量保证等。CMMI的模型部件中,实践部件的图形是菱形 (2024-04XZ 2')