收藏 分销(赏)

2023年软件工程自考02333重点难点汇集.doc

上传人:二*** 文档编号:4512190 上传时间:2024-09-26 格式:DOC 页数:71 大小:2.90MB
下载 相关 举报
2023年软件工程自考02333重点难点汇集.doc_第1页
第1页 / 共71页
本文档共71页,全文阅读请下载到手机保存,查看更方便
资源描述
《软件工程》串讲讲义 应考指导 一、课程介绍 1、课程性质 《软件工程》是全国高等教育自学考试计算机及应用(独立本科段)的一门专业课。 软件工程是研究软件开发的一门课程,其重要内容涉及:软件开发所需要的过程、活动和任务,以及这些活动和任务的组织、实行和管理。 2、指定教材 本课程指定教材为《软件工程》,全国高等教育自学考试指导委员会组编,王立福主编,机械工业出版社出版,2023年版。 新版教材与2023年版相比,无论是内容还是内容的组织,都有了很大的变化。整个知识体系、章节安排、内容选取都不同样,这是考生一定要注意的。新版教材的内容组织特点重要体现在: 基于对软件开发本质的结识,讲解软件工程的两大技术问题:一是开发逻辑,二是开发途径。 开发逻辑涉及软件生存周期过程、软件生存周期模型(有关过程、活动和任务的组织框架)以及项目软件生存周期的规划与监控。 开发途径涉及结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等。 3、章节体系 本课程共有8章: 第1章:回答什么是软件开发的本质 第2章:软件需求与软件需求规约 第3章:结构化方法 第4章:面向对象方法-UML 第5章:面向对象方法-RUP 第6章:软件测试。 第7章:软件生存周期过程及管理 第8章:集成化能力成熟度模型CMMI 二、考情分析 1. 历年真题的分布情况 由于教材刚刚通过改版,新教材刚通过2023年10月、2023年01月、2023年10月三次考试。 通过对2023年10月、2023年01月这两次真题的分析,各章所占分值的分布情况如下表所示: 年 份 章名、题型 2023-10 2023-01 一、绪论(单项、填空题) 3分 3分 二、软件需求与软件需求规约 9 11 三、结构化方法(单、填、简答、综合) 25分 25分 四、面向对象方法-UML(单、填、简答) 11分 11分 五、面向对象方法-RUP(单、填、简答) 12分 12分 六、软件测试(单、填、简答、综合) 25分 23分 七、软件生存周期过程及管理(单、填、简) 10分 10分 八、集成化能力成熟度模型CMMI 5 5 从上面的记录数据可以看出:重要的分值分布在第3章和第6章,分别占到总分的25%左右。第1章和第8章的考核知识点相对较少。 2. 题型分析 本课程的考试题型分为: (1) 单项选择题,共15小题,每小题2分,共30分 (2) 填空题,共20个空,每空1分,共20分 (3) 简答题,共6小题,每小题5分,共30分 (4) 综合应用题,共2题,每题10分,共20分 3. 复习方法 (1)以教学大纲为准绳。自学考试的原则是:考试范围既不超过大纲又不超过教材范围。所以考生一定根据教学大纲规定的考试内容和考核规定,认真学习教材,要全面、系统了解教材中的基本概念、基本知识。 (2)有的放矢。在学习的过程中,为了达成“事半功倍”,要学会“舍”。要用有限的时间去抓重点,对重点内容要进行进一步细致的学习。 (3)注意学习方法,理论联系实际,注重理解 重视理论联系实际,训练并逐渐提高运用所学理论分析和解决实际案例的能力。考生应当注旨在全面系统学习教材的基础上,尽也许多地了解和分析实际案例,以便更深刻地领略教材的内容,提高分析和解决实际问题的能力。 (4)合理安排时间,抓住学习重点 根据实际情况自己安排,运用平时空余时间观看网络课件,形成基本的了解。接下来认真地做一些练习题,不清楚的地方再回过头去看看书,并注意对不同的知识点进行比较,加深印象。 第一章 绪论 复习建议: 本章内容较少,重要是让大家了解软件工程的提出的背景-软件危机以及软件工程研究的内容。 考试题目类型重要是单项选择题、填空题,题量在3%~5%之间。 第一节 软件工程概念的提出与发展 1. 软件危机 (1) 速度:软件的发展水平远远滞后于硬件的发展水平,生产率低下,软件制造仍然是一种人工集约生产方式 (2) 质量:软件的质量低下,不能满足用户的需求、适应性差 (3) 成本:软件开发成本居高不下 软件开发的速度、软件制品的质量、软件开发成本是软件工程的三个核心问题。 2. 软件工程的发展 (1)20世纪60~80年代 瀑布模型;过程化语言;支持工具 (2)20世纪80年代~今 软件复用技术;软件生产管理;面向对象语言 (3)近几年 软件复用技术:构件技术、平台技术、需求工程技术、领域分析技术、应用集成技术等。 第二节 软件开发的本质 1. 软件 软件=程序+文档 2. 软件开发的本质:“映射”,即实现问题空间的概念和解决逻辑到解空间的概念和解决逻辑之间的映射。 3. 系统建模 运用所掌握的知识,通过抽象,给出系统的一个结构。 4. 模型 模型是一个抽象。模型是在特定意图下所拟定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述。 5. 系统模型的类型 (1) 概念模型:描述软件是什么 (2) 软件模型:实现概念模型的软件解决方案。涉及设计模型、实现模型和部署模型。 第二章 需求获取 复习建议: 对的定义问题,是解决问题的基础。 需求获取是软件开发的第一步,它的工作质量决定了整个软件开发工作的成败,因此本章的内容是考核的重点内容。 考核的题目类型重要有:单项选择题、填空题、简答题,分值在10%左右。 内容以基本概念、基本原理为主。 第一节 需求与需求获取 1. 需求的定义 一个需求是有关一个“要予构造”的陈述,描述了待开发产品/系统功能能力、性能参数或其它性质。 2. 需求的基本性质 (1) 必要的 (2) 无歧义的 (3) 可测的 (4) 可跟踪的 (5) 可测量的 3. 需求的分类 ★ (1) 功能需求,是整个需求的主体。 (2) 非功能需求:性能需求、外部接口需求、设计约束和质量属性需求。 可以区分哪些是功能需求,哪些是性能需求。 4. 接口需求的类别 (1) 用户接口 (2) 硬件接口 (3) 软件接口 (4) 通信接口 (5) 内存约束 (6) 运营 (7) 地点需求 5. 设计约束需求 (1) 法规政策 (2) 硬件限制 (3) 与其它应用的接口 (4) 并发操作 (5) 审计能力 (6) 控制功能 (7) 高级语言规定 (8) 握手协议 (9) 应用的关键限度 (10) 安全和保密 6. 质量属性 (1) 可靠性 (2) 存活性 (3) 可维护性 (4) 用户和谐性 7. 需求发现的技术 (1) 自悟 (2) 交谈 (3) 观测 (4) 小组会 (5) 提炼 第二节 需求规约(SRS) 1. 需求规约的定义 ★ 是一个软件/产品/系统所有需求陈述的正式文档,它表达了一个软件/产品/系统的概念模型。 2. 需求规约的基本性质 ★ (1) 重要性和稳定性限度:对需求进行分级 (2) 可修改的 (3) 完整的:没有被漏掉的需求 (4) 一致的:不存在互斥的需求 3. 需求规约的格式 IEEE标准830-1998(IEEE 1998)描述的需求规格说明书模板。 4. 需求规约(规格说明书)的表达 (1) 非形式化的需求规约 (2) 半形式化的需求规约 (3) 形式化的需求规约 5. 需求规约的作用 ★ (1) 需求规约是软件开发组织和用户之间一份事实上的技术协议书,是产品功能及其环境的体现 (2) 需求规约是一个管理控制点 (3) 对于产品/系统的而设计,需求规约是一个正式的、受控的起始点 (4) 需求规约是创建产品验收计划和用户指南的基础 第三章 结构化方法 复习建议: 自顶向下,逐步求精。 本章是整个课程的重点内容,其基本思想、基本原理和基本方法是软件工程理论体系中最经典的内容,考核题型涉及单项选择题、填空题、简答题、综合应用题所有题目类型,占分值25%左右。 建议考生在牢记基本概念、基本原理的基础上,对综合应用题多下工夫,多做练习。 第一节 结构化需求分析 1. 需求分析面临的挑战 (1) 问题空间理解 (2) 人与人之间的通信,“有效沟通” (3) 需求的变化性 2. 结构化分析中的基本术语及表达方法 (1) 数据流 (2) 加工 (3) 数据存储 (4) 数据源和数据潭 3. 数据流图DFD图 ★ 用于建立系统功能模型。 是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。 4. 建模过程(绘制流程图的过程) 自顶向下、功能分解 (1) 建立系统环境图 (2) 0层图:从0层图开始对流程图中的要素编号 (3) 1层图 (4) …… 【例题】绘制数据流程图(2023年10月真题) 41.某个学生成绩管理系统的部分功能如下: (1)基本信息管理:教务管理人员输入或修改学期教学执行计划、学生名单和教师名单; (2)学生选课:学生根据教学执行计划进行选课; (3)分派任课教师:教务管理人员为符合开课条件的课程分派教师,并打印任课告知单给教师; (4)成绩管理:每门课程的教师在考试评分结束后将考试成绩交给教务管理人员,教务管理人员输入、维护成绩,系统可生成成绩单(发给学生)、成绩记录分析表(发给教务管理人员)。 请根据规定画出该问题的分层数据流图(规定画出顶层和0层数据流图)。 【解析】 顶层图:只包含数据源/数据潭以及相关的数据流和一个解决。 成绩单 学生成绩 成绩管理系统 学生 教师 选课信息 任课告知单 成绩单 顶层图 任课告知单 教师 学生 成绩单 成绩录入 选课信息 任课安排 学生选课 基本信息解决 学期教学执行计划 学生名单 学生选课结果 教师信息 0层图 要注意的问题: ① 黑洞(black hole),即只有输入而没有输出。 ②只有输出而没有输入。 ③灰洞(gray hole),即输入局限性以产生输出。灰洞是经常也是不易被察觉的错误。 ④加工解决只用来表达数据的解决和变化,避免将计算机命令作为解决。 ⑤数据流必须起于且/或止于解决,即每一个数据流必须有一个解决与之有关,数据流不能起于数据存贮且止于一个数据源/数据潭或另一个数据存贮;也不能起于某个实体且止于另一个数据源/数据潭或数据存贮。 5. 数据字典 定义数据流程图中所有数据流和数据存储的数据结构。 顺序结构:+ 选择结构:| 反复结构:{ } 子界:m..n 6. 加工的描述 ★ (1) 鉴定表 判断表(Decision Table)也称为决策表,是一个二维表,它说明了每一种条件组合所产生的结果。 该表分为四个象限(quadrants)。 a) 左上限代表所有的条件 b) 左下限代表也许的结果 c) 右上限代表每一种条件的取值(用Y和N来表达) d) 右下限用X表达所相应的条件组合所产生的结果 【例题】画出顾客购货的折扣政策的决策表。 销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予5%的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予3%的折扣;当交易额低于¥5,000时,没有折扣。若付款日期超过10天,则无论交易额多少,均不给任何折扣。 【解析】 (2) 鉴定树 判断树 (Decision Tree)也称为决策树,是用来描述在一组不同的条件下,决策的行动是根据不同条件及其取值来选择的解决过程。业务规则的描述通常可以使用判断树这一过程描述工具。 【例题】画出顾客购货的折扣政策的决策树。 销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予5%的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予3%的折扣;当交易额低于¥5,000时,没有折扣。若付款日期超过10天,则无论交易额多少,均不给任何折扣。 解析: (3) 结构化语言 【例题】用结构化语言表达:顾客购货的折扣政策。 销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予3%的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予2%的折扣;当交易额低于¥5,000时,没有折扣。若付款日期超过10天,则无论交易额多少,均不给任何折扣。 IF 付款日期在10日以上 折扣=0 ELSE IF 交易额>=10000 折扣=3% ELSE IF交易额>=5000 折扣=2% ELSE 折扣=0 7. 需求验证 (1) 验证每一个需求满足5个性质 (2) 验证需求规格说明书满足4个性质 第二节 结构化设计 分为总体设计和具体设计 1. 总体设计的任务 把系统的功能需求分派到一个特定的软件体系结构中。 2. 表达软件体系结构的工具 (1)模块结构图 (2)层次图 (3)HIPO图 3. 模块结构图 ★ 结构图(Structure Chart)是对软件总体结构的一种图形描述,它显示了软件的层次结构、组织和通讯。也就是说,在结构图中,显示了软件是由哪些模块组成的,这些模块按照什么样的层次结构组织在一起以及模块之间通过什么接口联系在一起。 结构图也称之为控制结构图、模块结构图或系统结构图。 (1) 模块符号 (2) 模块调用关系 (3) 模块间的数据传递 (4) 模块间的控制信息传递 (5) 循环调用结构 (6) 选择调用结构 (7) 数据存储 4. 层次图 层次图中一个矩形框代表一个模块,框间的连线表达调用关系(位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块)。 5. HIPO图 HIPO图是美国IBM公司发明的“层次图加输入/解决/输出图”的英文缩写。为了使HIPO图具有可追踪性,在H图(即层次图)里除了顶层的方框之外,每个方框都加了编号。 H图+IPO图 6. 总体设计环节 将DFD图映射为设计层面的模块及模块调用。 (1) 变换流(Transform Flow)。基于变换流的数据流程图是一个线性的顺序结构,由输入臂、输出臂和变换中心三部分组成。其中变换中心使系统数据发生本质的变化,输入臂将物理输入变换成逻辑输入,而输出臂则将逻辑输出变换成物理输出。 (2) 事务流(Transaction Flow)。事务流的数据流程图中有一个事务解决中心,它将输入分为许多互相平行的加工途径,然后根据输入的属性,选择某一加工途径。如下图所示。 业务中心完毕以下任务: Ø ⑴接受事务(即输入数据); Ø ⑵分析每个事务并拟定它的类型; Ø ⑶根据事务的类型选取一条活动通路。 【例题】控制结构图的绘制 根据数据计算的数据流图: 输入数据 数据求解 打印输出 画出以转换为中心的控制结构图。 【解析】这是一个典型的以“转换为中心”结构的分解,可以转化为: 数据计算 打印输出 数据求解 输入数据 总结:任何解决都可以划分为两种转换类型之一:以转换为中心的分解和以业务为中心结构的分解。 【例题】产生固定资产资料数据流程图如下,做出以业务为中心的模块控制结构图。 【解析】 这是以业务为中心的解决,根据模板,可以转化为: 报表制作 报表调度 报表类型 固定资产卡片 资产变动表 折旧汇总表 固定资产明细表 7. 模块 执行一个特殊任务的一个过程以及相关的数据结构。模块通常由两部分组成:模块接口和模块体。 8. 模块化 “分而治之”和“抽象”。 把一个待开发的软件分解成若干个简朴的、具有高内聚低耦合的模块,这一过程称为模块化。 模块化是系统设计基本原理/原则之一。 9. 内聚(Cohesion) 是指一个模块内部个成分之间互相关联限度的度量。也就是说,凝聚是对模块内各解决动作组合强度的一种度量。很显然,一个模块的内聚越大越好。 (1)偶尔凝聚 可维护性最差 (2)逻辑凝聚 (3) 时间凝聚 (4)过程内聚 (5)通信内聚 (6)顺序凝聚 (7)功能凝聚 可维护性最佳 10. 模块耦合 耦合(coupling)是对两个模块之间联接限度的一种度量。模块间的依赖限度越大,则其耦合限度也就越大;反之,模块间的依赖限度越小,则其耦合限度也就越小。 很显然,为了使软件具有较好的可维护性和可修改性,模块间的关联限度即耦合限度应越小越好。由于耦合限度越小,表白模块间的独立限度越大,这样在修改一个模块时,对其它模块的影响限度就越小,从而使模块的修改工作局限于一个最小范围之内。 (1) 内容耦合 (2) 公共耦合 (3) 数据耦合 (4) 控制耦合 (5) 标记耦合 原则是:尽量用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。 11. 启发式规则 高内聚、低耦合。 (1) 改善软件结构,提高软件独立性。模块分解 (2) 模块规模适中 (3) 力求深度、宽度、扇出、扇入适中。 深度:表达其控制的层数。 宽度:同一层次上模块总数的最大值。 扇出:一个模块直接控制的下级模块的数目。 扇入:有多少个上级模块直接调用它。 原则:顶层模块扇出比较大,中间层模块扇出较小,底层模块具有较大的扇入。 (4) 尽量使模块的作用域在其控制域内。 模块的控制域:这个模块自身以及所有直接或间接从属它的模块的集合。 模块的作用域:受该模块内一个判断所影响的所有模块的集合。 (5) 尽力减少模块接口的复杂度 (6) 力求模块功能可以预测 12. 具体设计 具体描述模块结构图中的每一模块,即给出实现模块功能的实行机制,涉及一组例程和数据结构。 13. 结构化程序设计方法 一种基于结构的编程方法,即采用顺序结构、选择结构和反复结构进行编程,其中每一结构只允许一个入口和一个出口。 三种基本的控制结构: (a) 顺序结构,先执行A再执行B; (b) IF-THEN-ELSE型选择(分支)结构; (c)DO-WHILE型循环结构 14. 具体设计工具 (1) 程序流程图 程序流程图:程序流程图又称为程序框图,它是历史最悠久使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。 (2) 盒图(N-S图) 出于要有一种不允许违反结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。 (a) 顺序;(b) IF-THEN-ELSE型分支;(c) CASE型多分支; (d) 循环;(e) 调用子程序A (3) PAD图 PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1973年由日本日立公司发明以后,已得到一定限度的推广。它用二维树形结构的图来表达程序的控制流,将这种图翻译成程序代码比较容易。下图给出PAD图的基本符号。 (4) 类程序设计语言PDL PDL也称为伪码,它是用正文形式表达数据和解决过程的设计工具。 PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表达实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。因此,一般说来PDL是一种“混杂”语言,它使用一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。 可以作为注释工具直接插在源程序中间。 15. 设计规约 完整准确地描述满足需求规约所规定的所有功能模块,以及随着功能模块而出现的非功能机制。 设计规约涉及概要设计规约和具体设计规约。 (1) 概要设计规约 指明高层软件体系结构。 Ø 系统环境 Ø 软件模块的结构 Ø 模块描述 Ø 文献结构和全局数据文献的逻辑结构 Ø 测试需求 (2) 具体设计规约 Ø 各解决过程的算法 Ø 算法所涉及的所有数据结构的描述 【例题】根据下列变换型的数据流图,设计出初始软件结构图。 题40图 【答案】 主控模块 F9 f5 F9 f5 输出模块G 变换模块 输入模块 输入 A 输入B 变换C 变换D 变换 E 变换F 【解析】这是一个典型的变换型数据流程图,将其转换为模块控制图时,第一层可以分解为三个模块:输入模块、变换模块、输出模块。每一模块还可以继续分解。 第四章 面向对象方法UML 复习建议: 以不变应万变。 统一建模语言(Unified Modeling Language,UML) UML是目前流行的建模语言,特别是在网站开发中广泛应用。 UML涉及很多的图,每一种图都有不同的图形符号、作用,在什么情况下用何种图来描述是本章的重点内容。 考核题目类型涉及单项选择题、填空题、简答题,分值在10%~15%之间。需要考生掌握各种UML图的作用。 面向对象建模过程的环节: (1) 需求获取 a) 建立用况(use case)模型和用况场景 (2) 需求分析 a) 建立活动图和状态图 b) 类图(建立域模型) c) 顺序图(实现用况) (3) 编写需求规格说明书 (4) 需求验证 第一节 UML术语表 1. 对象(object) 对象(object)是系统中用来描述客观事物的一个实体。一个对象由一组属性和对这组属性进行操作的一组方法组成。 对象只描述客观事物本质的与系统目的有关的特性。 对象之间通过消息通信,一个对象通过向另一个对象发送消息激活某一个功能。 2. 类 类(Class)是具有相同属性、操作、关系和语义的一组对象的集合,它为属于该类的所有对象提供了同一的抽象描述,其内部涉及属性和服务两个重要部分。 类有超类(Superclass)和子类(Subclass)之分。 (相对而言)对象与类的关系如同程序设计语言中变量和类型的关系。对象是类的实例(Instance)。 类在类图上使用包含三个部分的矩形来描述,如下图4-1所示。最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的操作(或者说"方法")。 图4-1:类图中的示例类对象 3. 属性 对象或类的属性(attributes)描述了对象的具体特性。属性有属性名和属性值(或称属性状态)。 每条属性可以涉及属性的可见性、属性名称、类型、缺省值和约束特性。 UML规定类的属性的语法为: 可见性 属性名 : 类型 = 缺省值 {性质串} 可见性:public(+) 、protected(#)、private(-)、包内的(~) 4. 类的操作 通常也被称为功能,但是它们被约束在类的内部,只能作用到该类的对象上。操作名、返回类型和参数表组成操作界面。 UML规定操作的语法为: 可见性 操作名 (参数表) : 返回类型 {性质串} 例如:+取客户地址(客户名:字符串):字符串 5. 接口 接口是操作的一个集合,其中每个操作描述了类、构件或子系统的一个服务。 (1) 采用品有分栏和关键字<interface>的矩形符号来表达 (2) 采用小圆圈和半圆圈来表达 6. 协作 协作是一个交互,涉及交互的三要素:交互各方、交互方式以及交互内容。 7. 用况(use case)/用况 对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可观测的结果。 8. 积极类 至少具有一个进程或线程的类。可以启动系统的控制活动,并且其对象的行为通常与其它元素行为并发的。 表达方法:两条竖线。 9. 构件 系统设计中的一种模块化部件,通过外部接口隐藏了它的内部实现。 10. 制品 系统中包含物理信息的、可替代的物理部件。 11. 节点 节点是在运营时存在的物理元素,通常表达一种具有记忆能力和解决能力的计算机资源。 12. 关联(Association) 关联反映了类和类之间的静态关系。关联在模型中,特别是在永久业务对象模型中是最基本的关系。 链(link)是对象之间具有特定语义关系的抽象。 (1) 关联名 (2) 导航 (3) 角色 (4) 可见性 (5) 多重性:多重性(Multiplicity)定义了与一个对象/类相联系的对象/类出现一次,该对象/类也许出现的最小和最大的数目。 (6) 限定符 (7) 聚合:一个类是另一类的一部分。 (8) 组合:是聚合的一种特殊形式 (9) 关联类 (10) 约束 13. 泛化/继承 继承:特殊类(子类)的对象拥有其一般类(超类)的所有属性与服务,称作特殊类对一般类的继承(Inheritance) 。运用继承(inheritance),子类可以继承父类的属性和方法。子类/父类也可分别叫做特殊类/一般类、子类/超类、派生类/基类等。 继承反映了类之间的一种联系或结构:一般-特殊结构,也称分类结构(Classification Structure),是由一组具有继承关系的类所组成的结构。仅由一些单继承关系的类形成的结构又称作层次结构(Hierarchy Structure);由一些存在多继承关系的类形成的结构又称作网格结构(Lattice Structure)。 14. 多态性(Polymorphism) 是指一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一属性或服务名在一般类及其各个特殊类中具有不同的语义。 多态是指用同一界面形式表达不同对象类中的不同实现的能力。 多态性的实现基于两个基本原理:封装和泛化。 多态性实现的方法: (1)泛化 (2)定义一个抽象类——接口类 15. 细化 细化是类目之间的语义关系,其中一个类目规约了保证另一类目执行的契约。 用空心三角形的虚线表达。 16. 依赖 依赖是一种使用关系,用于描述一个类目使用另一类目的信息和服务。 用有向虚线段表达。 17. 包 包是模型元素的一个分组,一个包自身可以被嵌套在其它包中,并且可以具有子包和其它类型的模型元素。 第二节 UML的模型表达格式 图形化工具。 图的类别: (一)结构图 (1)对象结构建模—类图和对象图 (2)应用结构建模—包图、构件图、部署图、组合结构图 (二)行为图 对象交互建模—顺序图、协作图(通信图、交互综述图、定期图)、状态图(状态机) 对象行为建模—用况图、活动图 1. 类图 任何系统都需要从两方面进行描述:结构信息和行为信息。系统的组成表达了系统各组成要素之间的联系,称为结构;这些组成要素的执行逻辑称为行为。在面向对象方法中,系统的结构信息是通过类图(class diagram)来描述的;而系统行为信息则通过用况图、交互图(涉及顺序图和协作图)和状态图来描述的。也就是说,前者说明了系统的组成部分是什么,而后者则说明了系统做什么。 类图(class diagram)表达了系统的静态结构信息,即系统是由哪些类组成的,这些类之间的关系是什么。 类图显示系统各个部分以及如何将它们组装起来;但却不能模拟组装后系统的工作情况。 构造类图的三个关键问题是: (1) 系统中有哪些需要关心的类? (2) 这些类是如何描述的? (3) 这些类之间的联系是什么? 创建一个系统的类图,要涉及4方面的工作: (1) 模型化待建系统中的概念,形成类图中基本元素 (2)模型化待建系统中的各种关系,形成该系统的初始关系。 (3)模型化系统中的协作,给出该系统的最终类图。 (4)模型化逻辑数据库模式 2. 用况图(use case 图) 用况是对一个参与者(actor)使用系统的一项功能时所进行的交互过程的一个文字描述序列。 用况是系统、子系统或类 与 外部的参与者(actor)交互的动作序列的说明,涉及可选的动作序列和会出现异常的动作序列。 用况图(Use Case Diagram)是指反映活动者,系统边界所封闭的用况,及活动者与用况之间,用况与用况之间关系的一种图。 6个模型元素: (1) 主题 (2) 用况 (3) 参与者: Ø 系统用户: 是最常见的一种角色。是直接使用系统的人。 Ø 另一个系统:如DSS可作为MIS的一个活动者。补货系统可作为定单解决系统的活动者。 Ø 时间:当通过一定期间触发系统中的某个事件时,时间就成了角色。例如定期的某些业务解决工作。 (4) 关联 (5) 泛化 (6) 依赖 3. 状态图 对象或者类的整体行为的某些规则所能适应的对象或类的状况、情况、条件、形式或生存周期。仅当对象的行为规则不同时,才称对象处在不同的状态。 在由对象的所有属性的属性值集合所构成的笛卡儿乘积中的每一个等价集合(即,使对象的服务呈现相同行为规则的属性值的集合)称之为对象的一种状态。 例如,对象发票(invoice)可以根据其付款的情况分为三个状态:未付款(unpaid)、部分付款(partly paid)以及付清款(fully paid)。 状态图(state chart diagram)使用状态、事件和转换来记录对象在其生命周期中所历经的状态序列。 ① 对象的初始状态是图中任何事件都未对该对象起作用时的状态。 ② 状态代表对象生命周期中的某一瞬间。 ③ 转换表白作为对事件的响应结果,对象将从一种状态转换到另一种状态并执行某个动作。 ④ 触发状态转换的事件在状态转换字符串中命名。双击一个状态转换,除事件署名以外,还可用字符串为其加注临界条件、动作表达式等标签。 4. 顺序图 顺序图(sequence diagram)表达了对象之间传送消息的时间顺序,也就是对象之间的交互顺序,这些交互是指在场景或用况的事件流中发生的。每一个对象(类)用一条生命线来表达——即用垂直线代表整个交互过程中对象的生命期。生命线之间的箭头连线代表消息。 顺序图中的基本元素涉及: ① 活动者,指用况中的活动者。 ② 对象,指在用况中的内部对象。 ③ 生命线:在顺序图中的一个对象下面的竖线,用以显示这个对象的生命期。时间从上到下流过。生命线事实上显示了消息的顺序,在生命线之上的消息比在它之下的消息先发生。在生命线中的棒形方框表达的是活动生命线,用以强调一个对象只有在一个场景的部分中处在活动状态。 ④ 消息,指场景内由事件流定义的内部事件成为在对象和活动者或其他对象之间的消息。 • 同步消息——返回消息。同步消息假定有一个返回消息。同步消息用有实心的箭头表达;返回消息用虚线、箭头也不是实心来表达。 • 反身消息——消息的发送方和接受方是同一个对象。 • 异步消息——没有返回值的消息。用非实心箭头表达。 • 定期消息——对消息附加时间约束条件,涉及:发送时间、接受时间、已用时间等。 第五章 面向对象方法-RUP 复习建议: RUP(Rational Unified Process,统一软件开发过程)。 掌握RUP在解决下列三个问题的基本方法。 (1) 表达基本信息的术语 (2) 用于组织基本信息的表达格式 (3) 在不同抽象层之间进行“映射”的过程指导。 本章考核题目类型涉及单项选择题、填空题、简答题,分值在10%~15%之间。 重点要掌握基本概念、基本原理。 1.迭代式开发 在软件开发的初期阶段就想完全、准确的捕获用户的需求几乎是不也许的。事实上,我们经常碰到的问题是需求在整个软件开发工程中经常会改变。迭代式开发允许在每次迭代过程中需求也许有变化,通过不断细化来加深对问题的理解。迭代式开发不仅可以减少项目的风险,并且每个迭代过程都可以执行版本结束,可以鼓舞开发人员。 2.管理需求 拟定系统的需求是一个连续的过程,开发人员在开发系统之前不也许完全具体的说明一个系统的真正需求。RUP描述了如何提取、组织系统的功能和约束条件并将其文档化,用况和脚本的使用已被证明是捕获功能性需求的有效方法。 3.体系结构 组件使重用成为也许,系统可以由组件组成。基于独立的、可替换的、模块化组件的体系结构有助于减少管理复杂性,提高重用率。RUP描述了如何设计一个有弹性的、能适应变化的、易于理解的、有助于重用的软件体系结构。 4.可视化建模 RUP往往和UML联系在一起,对软件系统建立可视化模型帮助人们提供管理软件复杂性的能力。RUP告诉我们如何可视化的对软件系统建模,获取有关体系结构于组件的结构和行为信息。 5.验证软件质量 在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于过程中的所有活动,这样可以及早发现软件中的缺陷。 6.控制软件变更 迭代式开发中假如没有严格的控制和协调,整个软件开发过程不久就陷入混乱之中,RUP描述了如何控制、跟踪、监控、修改以保证成功的迭代开发。RUP通过软件开发过程中的制品,隔离来自其他工作空间的变更,以此为每个开发人员建立安全的工作空间。 第一节 RUP的特点 以用况驱动的、以体系结构为中心的迭代、增量式开发。 1. 用况驱动 (1) 用况是可以向用户提供有价值结果的系统中的一种功能 (2) 用况获取的是功能需求 在系统的生存周期中,以用况作为基础,驱动系统有关人员对所要建立系统的功能需求进行交流,驱动系统分析、设计、实现和测试等活动,涉及制定计划、分派任务、监控执行和进行测试等,并将它们有机地组织在一起,使各个阶段中都可以回溯到用户的实际需求。 2. 以体系结构为中心 系统体系结构:是对系统语义的概括描述,对所有项目有关人员都是可以理解的。 3. 迭代与增量 (1) 迭代是反复的部分 (2) 增量是增长的部分 一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。 图5-1 RUP迭代模型 二维开发模型: RUP软件开发生命周期是一个二维的软件开发模型。横轴通过时间组织,是过程展开的生命周期特性,体现开发过程的动态结构,用来描述它的术语重要涉及周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone);纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语重要涉及活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow)。如图1: RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段(Inception)、细化阶段(Ela
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 考试专区 > 自考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服