软件工程第二版知识点
计算机二级【公共基础知识】软件工程基础课件

需求优先级排序
根据项目目标和资源情况,对需 求进行优先级排序,确定哪些需 求是关键的、紧急的。
建立需求模型
使用合适的工具和技术,如原型 、流程图等,建立需求模型,帮 助团队更好地理解和管理需求。
需求规格说明
编写需求规格说明书
根据需求分析结果,编写详细的需求规格说明书,明 确各项需求的详细描述、功能要求和验收标准。
评审与确认
组织相关人员对需求规格说明书进行评审和确认,确 保其准确性和完整性。
发布与更新
将需求规格说明书发布给相关人员,并建立更新和维 护机制,确保其始终与项目实际情况保持一致。
需求验证与管理
验证需求
通过原型、测试用例等方式验证需求的正确 性和可行性,确保开发出来的软件能够满足 用户需求。
变更控制
02
需求获取
01
确定需求来源
识别并确定需求来源,包括用户、利益相关者和其他关 键干系人。
02
制定需求获取计划
制定详细的需求获取计划,包括时间、地点、人员和资 源等。
03
采集需求信息
通过访谈、问卷调查、原型演示等方式采集需求信息, 确保信息的准确性和完整性。
需求分析
需求分类
对获取的需求进行分类,明确哪 些是功能性需求,哪些是非功能 性需求。
需求分析
对软件需求进行重新审查和确认,确 保软件需求满足新的要求或变化。
设计修改
根据需求分析的结果,对软件的体系 结构、数据结构、接口等进行修改和 优化。
编码和测试
根据修改后的设计,进行代码编写和 测试,确保软件功能和性能的正确性 和稳定性。
软件可维护性
01
02
03
04
05
软件可维护性包 括四个方面
软件工程与开发技术(第二版)章 (1)

第1章 软件工程引论 表1.1 根据规模进行软件分类
软件规模类别 微型 小型 中型 大型 甚大型 极大型
参加人员数 1 1
2~5 5~20 100~1000 2000~5000
开发期限 1~4周 1~6月 1~2年 2~3年 4~5年 5~10年
产品规模(源代码行数) 0.5 k 1~2 k
5~50 k 50~100 k
第1章 软件工程引论
对于软件的一种公认的解释是:软件是计算机系统中与硬 件相互依存的另一部分,它是包括程序、数据及其相关文档的 完整集合。其中,程序是为实现设计的功能和性能要求而编写 的指令序列;数据是使指令能够正常操纵信息的数据结构;文 档是与程序开发、维护和使用有关的图文资料。
根据用途划分,软件可以大致划分成如下类别:
第1章 软件工程引论
第1章 软件工程引论
1.1 软件产品的概念与特征 1.2 软件危机 1.3 软件工程的产生及其发展 1.4 软件工程的技术基础 1.5 软件工程过程的概念 1.6 几种软件过程模型 1.7 过程技术 1.8 软件重用技术 1.9 计算机辅助软件工程工具 1.10 小结
第1章 软件工程引论
第1章 软件工程引论
(6) 人工智能软件:利用非数值算法去解决复杂问题的软 件。各类专家系统、模式识别软件、人工神经网络软件都属于 人工智能软件。
(7) 个人计算机软件:文字处理系统、电子表格、游戏娱 乐软件等等。
此外,还可以根据软件的规模(代码行及开发工作量,如表 1.1)、软件的工作方式、使用频度、失效后造成的影响等对软 件产品进行分类。
第1章 软件工程引论
(3) 软件产品不会“磨损”。和硬件产品类似,软件产品 也会出现故障。所不同的是,硬件产品的故障多来自外在条件 导致的“磨损”或“老化”,而软件产品如果发生故障,无一 例外的是在设计开发过程中留有隐患。因此,硬件的故障可以 通过简单的更换部件解决,而软件的故障必须通过全面的软件 维护活动才有望克服。同时,不完善的维护活动又可能在软件 中注入新的故障,导致软件质量的“退化”。也就是说,软件 故障的修复要比硬件故障的修复复杂得多。因此,衡量软件产 品质量的一个重要指标就是它的“可维护性”。图1.1是软、硬 件产品的失效率曲线。
计算机二级【公共基础知识】软件工程基础【2024版】

(2)数据字典是结构化分析方法的核心,定义
了数据流图中每一个图形元素,使得用户和系 统分析员对于输入、输出、存储成分和中间结 果有共同的理解。
5.软件需求规格说明书
是需求分析的最后结果,是软件开发中重要的文档之一。 软件需求规格说明书的特点: (1)正确性; (2)无岐义性(最重要) ; (3)完整性; (4)可验证性; (5)一致性; (6)可理解性; (7)可追踪性。
软件生命周期是指软件产品从提出、实现、使
用维护到停止使用退役的过程。
3.软件生命周期:软件产品从提出、实现、使用
维护到停止使用退役的过程。包括软件定义、 软件开发、运行维护,主要活动阶段是:
(1)可行性研究与计划制定; (2)需求分析; (3)软件设计; (4)软件实现; (5)软件测试; (6)运行和维护。
答案:D
例题:
软件工程的出现是由于 A)程序设计方法学的影响 B)软件产业化的需要 C)软件危机的出现 D)计算机的发展
答案:C
例题:
软件设计中,有利于提高模块独立性的一个准 则是
A)低内聚低耦合 B)低内聚高耦合 C)高内聚低耦合 D)高内聚高耦合
答案:C
例题:
下列不属于结构化分析的常用工具的是 A)数据流图 B)数据字典 C)判定树 D)PAD图
3.4软件测试
软件测试的指用人工或自动手段来运行或测定
某个系统的过程,其目的在于检验它是否满足 规定的需求或是弄清预期结果与实际结果之间
的差别。简单地说,软件测试的目的是尽可能 多地发现程序中的错误。
考点2:软件测试方法
按是否要执行被测试软件的角度分为:静态测 试和动态测试。
静态测试包括代码检查、静态结构分析、代码 质量度量。不实际运行软件,主要通过人工进 行。
实用软件工程(第二版)1、2章

1.3 软件工程
• 1.3.1 软件工程的概念
– IEEE对软件工程的定义为:
• 1)将系统化、严格约束的、可量化的方法应用于软件的开发、运行 和维护,即将工程化应用于软件
• 2)对1)中所述方法的研究
– 具体说来,软件工程是以借鉴传统工程的原则、方法, 以提高质量,降低成本为目的指导计算机软件开发和维 护的工程学科。它是一种层次化的技术
特点: 1)具有抽象性 2)无明显的制造过程 3)存在退化问题 4)对计算机系统有着不同程度的依赖性 5)尚未完全摆脱人工的开发方式 6)软件本身是复杂的 7)成本相当昂贵 8)相当多的软件工作涉及社会因素
1.1 软件
• 1.1.2 软件的分类
1.2 软件危机
• 1.2.1 软件危机的表现与原因
• 过程定义了运用方法的顺序,应该交付的文档资料,为保证软件质量和协调 变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。 通常,使用生命周期模型简洁地描述软件过程。生命周期模型规定了把生命 周期划分为哪些阶段及各个阶段的执行顺序,因此也称为过程模型
2.2 软件生命周期
• 2.2.1 软件生命周期的概念
1.3 软件工程
• 1.3.4 软件工程知识体系
– IEEE在2014年发布的《软件工程知识体系指南》中将 软件工程知识体系划分为以下15个知识领域。
1.软件需求 2.软件设计 3.软件构建 4.软件测试 5.软件维护 6.软件配置管理 7.软件工程管理 8.软件工程过程
9.软件工程模型和方法 10.软件质量 11.软件工程职业实践 12.软件工程经济学 13.计算基础 14.数学基础 15.工程基础
– 软件工程要达到的基本目标包括:
计算机二级【公共基础知识】软件工程基础课件

包括自顶向下设计和逐步细化设计两 个步骤,通过逐步分解系统,将复杂 问题分解为简单问题,便于开发人员 理解和实现。
面向对象设计方法
面向对象设计方法的概念
面向对象设计方法是一种基于对象的设计技术,将数据和操 作封装在对象中,通过对象之间的交互实现系统的功能。
面向对象设计方法的步骤
需求分析
需求分类
对获取的需求进行分类,明确哪些是功能性需求,哪些是非功能性 需求。
需求优先级排序
根据项目目标和利益相关者的关注点,对需求进行优先级排序,确 定哪些需求是必须满足的,哪些是可协商的。
建立需求模型
通过建立数据流图、实体关系图等模型,对需求进行详细分析和描 述。
需求规格说明书
编写需求规格说明书
测试执行是按照测试计划和测试用例执行测试的过程,而测试报告是记录测试结果和提供决策依据的重要文档。
在测试执行过程中,应按照测试计划和测试用例的要求,对软件系统进行逐项测试,并记录测试结果和发现的问题。测试报 告应详细记录测试过程、方法、结果和结论,并提供决策依据和建议。同时,测试报告还应包括问题跟踪和管理,以确保所 有发现的问题得到及时解决和验证。
迭代模型
在开发过程中不断迭代,逐步完善软件功能,逐步进行测试 和维护。
螺旋模型
强调风险分析,将瀑布模型和迭代模型相结合,逐步完善软 件功能。
敏捷开发方法
概念
敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法,强调团队合作和灵活性。
常见方法
Scrum、极限编程等。
特点
快速响应变化,快速交付价值,持续改进和团队成员的高度协作。
软件工程的重要性
提高软件质量
通过采用工程化的方法和技术, 可以减少软件缺陷和漏洞,提高
软件工程(冶金工业出版社)第二版 李代平 答案

参考答案第1章一、填空题1. 程序设计时代程序系统时代软件工程时代2. 软件开发方法软件开发过程软件开发工具和环境软件管理学软件经济学软件心理学二、选择题1. B2. C3. C三、简答题略。
第2章一、填空题1. 获取过程供应过程开发过程操作过程维护过程管理过程支持过程2. 用户需求对象面向对象迭代性无间隙性3. 制定计划风险分析开发实施用户评估二、选择题1. C2. A 3 A三、简答题略。
第3章一、填空题1. 技术经济社会操作2. 合同责任侵权3. 对于现行系统进行分析研究导出新系统的逻辑模型二、选择题1. D2. D3. D三、简答题略。
第4章一、填空题1. 数据流加工(又称为数据处理)数据存储数据的源点或终点2. 数据流图数据字典描述加工逻辑的结构化语言判定表判定树3. 各个成分的具体含义逻辑模型需求说明书二、选择题1. C2. C3. A2 软件工程(第2版)三、简答题略。
第5章一、填空题1. 模块模块层次结构2. 软件需求软件表示总体设计详细设计3. 输入变换(或称处理)输出二、选择题1. A2. A3. C三、简答题略。
第6章一、填空题1. FOR WHILE UNTIL2. 自顶向下逐步求精三种基本控制结构主程序员组的组织形式3. 程序框图三种基本控制结构相互交叉结构化二、选择题1. B2. B3. C三、简答题略。
第7章一、填空题1. 标识分类多态继承2. 紧密松散3. 标识4. 服务5. 封装6. 消息对象标识输入信息二、选择题1. ABCD2. C3. C.4. AC5. C6. AD三、简答题略。
第8章一、填空题1. 脚本2. 概括聚合3. 并发性4. 数据流图数据流图5. 数据存储6. 约束二、选择题1. C2. B 3.B参考答案 3三、简答题略。
第9章一、填空题1. 对象是对问题域中某个实体的抽象,这种抽象反映了系统保存有关这个实体的信息或与它交互的能力类是对具有相同属性和行为的一个或多个对象的描述2. 前者是后者的实例,后者是前者的定义模板3. 主动对象是至少有一个服务不需要接收消息就能主动执行的对象。
软件工程-齐志昌-第二版

软件工程阶段
20世纪70年代,随着计算机应用的普及,软件开发的复 杂度越来越高,软件危机开始出现,软件工程的概念和方 法逐渐被提出和应用。
现代软件工程
20世纪80年代以后,随着面向对象编程和软件重用技术 的发展,软件工程进入了一个新的阶段,强调使用工程化 的方法和工具来指导和管理软件开发。
软件工程的三大支柱
02 软件开发生命周期
概念与模型
概念
软件开发生命周期是软件开发从开始 到结束的全过程,包括需求分析、设 计、编码、测试和维护等阶段。
模型
软件开发生命周期模型是描述软件开 发过程的抽象框架,常见的有瀑布模 型、螺旋模型、迭代模型等。
传统开发模型
瀑布模型
按顺序进行需求分析、设计、编码、测试和维护等阶段,阶段间具有严格的顺序性和依 赖性。
面向对象编程
使用面向对象编程语言(如Java、C)进行软件实现,通过封装、 继承和多态等机制实现代码重用和模块化。
面向过程编程
采用结构化程序设计方法,将软件系统分解为一系列过程,通过顺 序、选择和循环等结构实现软件功能。
函数式编程
使用函数式编程语言(如Haskell、Scala)进行软件实现,通过高阶 函数、不可变性等特性提高代码可读性和可维护性。
Jira
一款功能强大的项目管理工具,支持敏捷开发和传统瀑布模型,提供任务管理、缺陷跟 踪和需求管理等功能。
Gantt Chart
甘特图是一种常用的项目进度计划工具,通过条形图展示任务开始和结束时间,直观地 反映任务之间的依赖关系和时间进度。
THANKS FOR WATCHING
感谢您的观看
软件测试技术
单元测试
针对软件中的最小可测试单元(如函数、方法、类等)进行测试, 验证其功能和性能是否符合要求。
计算机二级软件工程

计算机辅助软件工程(CASE Computer Aided Software Engineering)是当前软件开发环境中富有特 色的研究工作和发展方向。
2 结构化分析方法
需求分析与需求分析方法 结构化分析方法 软件需求规格说明书
效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移 植性、可追踪性和可互操作性且满足用户需求的产品。
软件工程的原则:
抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可 验证性
软件开发工具与软件开发环境
软件开发工具:为软件工程方法提供了自动的或半自动的软件
支撑环境。
软件开发环境:是全面支持软件开发全过程的软件工具集合。
详细设计
PDL(Procedure Design Language) PDL是一种用于描述功能模块的算法设计和
加工细节的语言,称为过程设计语言。它是一 种混合语言,采用英语的词汇和结构化程序设 计语言的语法,类似编程语言。
4 软件测试
软件测试的目的 软件测试的准则 软件测试技术与方法 软件测试的实施
软件工程基础
1 软件工程的基本概念 2 结构化分析方法 3 结构化设计方法 4 软件测试 5 程序的调试
1 软件工程基本概念
软件定义与软件特点 软件危机与软件工程 软件工程过程与软件生命周期 软件工程的目标与原则 软件开发工具与开发环境
软件定义
软件定义:软件是计算机系统中与硬件相互依存的另一部分, 是包括程序、数据及其相关文档组成的完整集合。 软件=程序+数据+文档
白盒测试又称为结构测试或逻辑驱动测试。
白盒测试主要对程序模块进行如下的检查: 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一 次; 在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、软件的特性:(10个)形态、智能、开发、质量、生产、管理、环境、维护、废弃、应用特性2、软件的概念软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档的完整集合。
3、软件危机产生的原因软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
4、什么是软件工程软件工程是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
5、简述软件生存期由哪些主要的阶段组成,每一阶段的主要任务是什么?软件定义、软件开发、运行维护(1) 问题定义与可行性研究:问题定义必须回答的关键问题是:“要解决的问题是什么”。
可行性研究要回答的关键问题是:“在成本和时间的限制条件下能否解决问题?是否值得做?”。
(2) 需求分析:这个阶段的任务仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题。
(3) 软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制定设计方案,把已确定的各项需求转换成相应的软件体系结构。
结构中的每一组成部分都是意义明确的构件,此即所谓概要设计。
进而具体描述每个构件所要完成的工作,为源程序编写打下基础,此即所谓详细设计。
(4) 程序编码和单元测试:本阶段要解决的问题是“正确地实现已做的设计”,为此,需要选择合适的编程语言,把软件设计转换成计算机可以接受的程序代码,并对程序结构中的各个模块进行单元测试,然后运用调试的手段排除测试中发现的错误。
要求编写出的程序应当是结构良好、清晰易读的,且与设计相一致的。
(5) 集成测试和系统测试:集成测试的任务是将已测试过的模块按设计规定的顺序组装起来,在组装的过程中检查程序连接的问题。
系统测试的任务是根据需求规格说明的要求,对必须实现的各项需求,逐项进行确认,判定已开发的软件是否符合用户需求,能否交付用户使用。
为了更有效地发现系统中的问题,通常这个阶段的工作由开发人员、用户之外的第三者承担。
(6) 运行维护:已交付的软件投入正式使用,便进入运行维护阶段。
这一阶段可能持续若干年。
软件在运行中可能由于多方面的原因,需要对它进行维护。
通常有四种类型的维护:改正性维护、适应性维护、完善性维护和预防性维护。
6、软件工程的三种基本要素是什么软件工程的三种基本要素是方法、工具和过程。
(1) 软件工程方法为建造软件提供技术上的解决方法(“如何做”)。
目前使用得最广泛的方法是传统方法(结构化方法)和面向对象方法。
(2) 工具为方法的运用提供自动的或半自动的软件支撑环境。
(3) 过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
7、简述传统方法和面向对象方法的特点(1) 传统方法的特点传统方法也称为生命周期方法或结构化范型。
它采用结构化技术来完成软件开发的各项任务。
这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地逐步完成每个阶段的任务。
每一个阶段的开始和结束都有严格的标准,对于任何两个相邻的阶段而言,前一个阶段的结束标准就是后一阶段的开始标准。
传统方法的主要缺点是在适应需求变化方面不够灵活,另外,结构化方法要么面向行为,要么面向数据,缺乏使两者有机结合的机制。
(2)面向对象方法的特点面向对象方法把数据和行为看成同等重要,是将数据和对数据的操作紧密地结合起来的方法,这也是面向对象方法与传统方法的重要区别。
面向对象方法的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识问题和解决问题的方法与过程,从而使描述问题的问题空间与其解空间在结构上尽可能一致。
对于大型、复杂及交互性比较强的系统,使用面向对象方法更有优势。
8、常见的软件生存期模型主要有哪些?瀑布、喷泉模型的优缺点是什么?主要有瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型和统一过程。
瀑布模型优点:可强迫开发人员采用规范化的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要;用户往往需要等待很长时间才能看到可以运行的程序;适应需求变更的能力比较差。
适用范围:瀑布模型只适用于项目开始时需求已确定的情况。
喷泉模型优点:在开发过程中使用统一的概念和方法,各阶段之间没有明显的界限,容易实现各个开发过程的多次反复迭代,达到了认识的逐步深化,降低了出错的可能性。
缺点:由于各个阶段之间的界线不明确,容易造成软件开发过程的无序。
适用范围:适用于面向对象的软件开发。
9、需求获取的任务(1)发现和分析问题,并分析问题的原因结果关系。
(2)与用户进行各种方式的交流,并使用调查研究方法收集信息。
(3)按照三个成分即数据、过程和接口观察问题的不同侧面。
(4)将获取的需求文档化,形式有用例、决策表、决策树等。
10、软件需求分析阶段的任务需求获取、需求分析、需求定义、需求验证。
11、银行存款业务如下:客户到银行柜台存款时,首先填写存款单(包括帐号、姓名、存款金额、存款类型),如果还没有开户,则需要先开户,填写开户单(包括姓名、身份证号、地址、电话、是否留密码)。
填写完存款单或开户单后,交给营业员,营业员将存款单或开户单信息输入计算机,系统记录开户信息或存款单信息,如果是开户并选择留密码,则需要客户输入密码。
最后印出开户单或存款单给用户。
请画出银行存款业务的分层数据流图(至少画出两层)。
(1) 识别外部实体及输入输出数据流外部实体:储户、业务员。
输入数据流:存款单,开户单,密码。
可以将存款单和开户单抽象为事务。
输出数据流:存款单,开户单。
(2) 顶层数据流图(3) 一层数据流图对银行储蓄系统进行分解,从大的方面分解为接收事务、处理开户、处理存款三部分,得到一层数据流图。
(4) 二层数据流图对“处理存款”及“处理开户”进行进一步分解,得到二层数据流图,即处理存款的数据流图和处理开户的数据流图。
处理存款的数据流图处理开户的数据流图12、按照以下描述,画出ER图。
一本教材由许多章组成,每一章包含许多节、小结和习题组成,章和节都具有标题和序号属性。
ER图如下:13、软件设计的概念程序应该不包含任何对其功能有障碍的缺陷;程序符合开发的目标;使用程序的体验应是愉快的。
14、软件设计的原则分而治之;模块独立性;提高抽象层次;复用性设计;灵活性设计。
15、什么是结构图的深度:模块结构的层次数什么是结构图的宽度:同一层模块的最大模块数称为结构图的宽度。
16、什么是耦合耦合是程序结构中各个模块之间的互相关联的度量,他取决于各个模块之间接口的复杂程序度、调用模块的方式以及接口的信息类型。
内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合 17、什么是内聚内聚是一个模块内部各个元素彼此结合的紧密程度的度量。
巧合内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、信息内聚、功能内聚 18、模块的作用范围应在控制范围之内。
19、用面向数据流的方法设计第3章习题3.4所描述的银行存款业务的软件结构,并使用改进方法对模块结构进行精化。
(1) 对第3章习题3.4给出的数据流图进行精化,确定其边界,如下图所示。
(2) 对上图按事务型数据流进行处理,完成第一级分解,得到顶层和一层模块结构图。
第一级分解后的结构图(3) 完成第二级分解。
对上图所示的“输入数据”、“输出数据”和“调度”模块进行分解,得到未经精化的输入结构、输出结构和事务结构。
未经精化的输入结构未经精化的输出结构未经精化的事务结构将上面的三部分合在一起,得到初始的软件结构,如下图所示。
初始软件结构图(4) 对软件结构进行精化。
1) 由于调度模块下只有两种事务,因此,可以将调度模块合并到上级模块中,如图所示。
将调度模块合并到上级模块后的软件结构2)“记录密码”模块的作用范围不在其控制范围之内(即“输入密码”模块不在“记录密码”模块的控制范围之内),需对其进行调整,如图所示。
调整后的模块结构图20、对于图4-49所示的流程图,试分别用N-S图和PAD表示之。
图4-49 流程图对应的N-S 图如下: 对应的PAD 如下:21、面向对象的概念面向对象=对象+类+继承+消息通信如果一个系统是使用这样4个概念设计和实现的,则可认为这个系统是面向对象的。
22、关联分为普通关联、限定关联、以及聚合与复合。
23、什么是泛化关系泛化(generalization)关系就是一般类和特殊类之间的继承关系。
在UML 中,一般类亦称泛化类,特殊类亦称特化类。
泛化针对类型而不针对实例,因为一个类可以继承另一个类,但一个对象不能继承另一个对象。
泛化可进一步划分成普通泛化和受限泛化两类。
25、面向对象分析需要建立的三个模型是什么?面向对象分析需要建立的3个模型是:由用例和场景表示的功能模型(用例模型);用类和对象表示的静态模型(对象模型);由状态图和顺序图表示的动态模型(交互模型)。
26、结构图和行为图的区别结构图用于系统的静态建模,行为图用于系统的动态建模。
结构图包括:类图、组合图、构件图、部署图、对象图、包图、造型图行为图包括:活动图、用例图、状态图、顺序图、交互概念图、通信图、定时图 27、比较面向对象的分析方法和面向数据流的分析方法,阐述它们各自的特点。
面向对象的分析方法使用用例模型来表示用户的功能需求,用例模型相当于功能模型,在对用例模型进行细化的过程中,也伴随着对功能的分解。
但面向对象的分析方法并不是以功能分解为核心,在获取并分析用户的功能需求之后,重点以类和对象为核心,建立对象模型,交互模型也是围绕对象模型进行的。
面向数据流的分析方法是从建立顶层数据流图(环境图)开始,之后逐层对加工进行分解。
面向数据流的分析方法是以功能分解为核心的。
28、对象模型的5个层次主题层、类-对象层、结构层、属性层、服务层 29、软件工程的观点 从软件工程的观点,程序设计语言的特征应着重考虑软件开发项目的需要。
要求程序编码有如下一些工程上的性能要求。
(1)详细设计应能直接容易地翻译成代码程序。
(2)源程序应具有可移植性。
(3)编译程序应具有较高的效率。
(4)尽可能应用代码生成的自动工具。
(5)可维护性。
30、程序设计语言分类第一代语言、第二代语言、第三代语言、第四代语言。
31、程序的注释应注意什么注释分为序言性注释和功能性注释。
序言性注释通常常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序本身具有引导作用。