软件工程案例教程
软件工程实用案例教程(梁洁、金兰)参考答案 (9)[3页]
习题四参考答案
1. 选择题
DCABC ADDDB
2. 应用题
1、
E1:考试委员会;E2:教师;E3:学生;E4:教务处。
D1:学生信息文件;D2:课程信息文件;D3:班级信息文件;D4:课程成绩文件;D5:无效成绩文件。
2、
①上下文图
②0层数据流图
(1)这里有两个条件:
旅游时间t :t1{7-9,12};t2{1-6,10,11} 订票量a :a1{≤20};a2{>20}
(2)根据旅游时间、订票量的条件组合,以及折扣率画出判定表。
(3)根据旅游时间、订票量和折扣率画出判定树。
4、
电话号码 = [ 校内电话号码 | 校外电话号码 ] 校内电话号码 = 非零数字 + 3位数字 校外电话号码 = [ 本市号码 | 外地号码 ] 本市号码 = 0+ 8位数字
外地号码 = 0 + 3位数字 + 8位数字 非零数字 = [1|2|3|4|5|6|7|8|9] (1分) 3位数字 = 3{数字}3
8位数字 = 非零数字 + 7位数字 7位数字 = 7{数字}7
旅游优惠
旅游时间t1
旅游时间t2
订票量a1
订票量a2
折扣率=5%
折扣率=15%
折扣率=20%折扣率=30%
订票量a1订票量a2
工程项目
零件
供应商项目名称
项目编号
开工日期
供应商名称
供应商编号
地址
供应量
定购量
零件编号
零件名称
颜色重量
向...供应
向...定购
M
M N
N。
完整的软件工程示范案例
(6)单击Build->compiler Options,确定 D:\jdk1.6\bin\javac.exe 显示在Compiler Path 窗口中,然后单击OK (7)单击Build->compile File 为了查看编译信息, 确定在View菜单中选择了log窗口
步骤: (1)单击开始,运行,cmd 注:在Applet Viewer中会看到小应用程序时的输出。 确定Hello.html文件和代码在一个目录下。打开命 令窗口。 (2)进入D:\MyHelloWorld目录,输入
MDA(Model-Driven Architecture)技术还不成 熟,整个项目都通过建模生成代码是不现实的。 在实际中,重要的问题是如何保持代码和设计的统 一。 UML的优势是可视化。 代码生成技术主要用于维护系统框架。
(9)在browser中右击paint,然后单击Open Specification
注:Methods Specification Window将显示出来
(10)在返回类型域中选择void
(11)单击Arguments的New(Insert)按钮,在
Name域中键入g
(12)扩展java->awt, 然后双击Graphics,单击
பைடு நூலகம்
步骤: (3)给paint操作添加一个信息,使得运行小程序时, 能够看到一些信息。 在图中右击HelloWorldApplet类,然后单击Java>J2EE->Edit Code 注:确定编辑器窗口显示出来 (4)在paint操作内,键入g.drawString("Hello World!",50,25); (5)在File菜单中单击Save
第3章 需求分析-软件工程案例教程(第2版)-李军国-清华大学出版社
可行性研究的任务和目的
➢ 用最小的代价在尽可能短的时间内确 定问题是否能够解决。
➢ 确定问题是否能够解决和值得解决。 ➢ 分析可能的利弊关系。
➢ 对行动方针提出建议(是否可行)。
7
可行性研究的时间与成本
➢ 可行性研究实质上是在较高层次上以抽 象方式进行系统分析和设计的过程。
➢ 可行性研究需要的时间长短取决于工程 的规模。
仔细阅读和分析有关的材料,改正含糊或不正确的叙述, 清晰的描述目标系统。
➢ 识别用户的真正要求?(访问关键人员) ➢技术现状如何? (系统调研) ➢系统配置如何? (分析有关的材料) ➢系统维护能力如何? (系统调研) ➢ 系统配置与外部环境的接口什么样?(限制和约束) ➢ 技术上的风险有哪些? ➢ 是否具备技术资源? ➢ 开发人员是否得到培训? ➢ 是否存在法律责任和政治风险?
21
系统分析的内容
1. 环境分析 2. 物理分析 3. 功能分析 4. 信息分析 5. 动态分析
➢ 了解业务活动状况,特别是活动要点的分析。 ➢ 明确这些要点间什么在流动,如何流动。 ➢ 对物理流量进行分析。 ➢ 模型化,得到实际业务系统的物理模型。
22
系统分析的内容
1. 环境分析 2. 物理分析 3. 功能分析 4. 信息分析 5. 动态分析
➢ 了解系统应解决的问题是什么? ➢ 这些问题是如何提出的? ➢ 了解问题的结构。 ➢ 这些问题如何解决才能满足用户的要求?
17
案例: (库存管理)
找出问题
➢不能及时获得库存信息 ➢库存信息不够准确 ➢无法及时了解车间对库存商品的需求情况
18
系统分析过程
① 分析现实世界,充分理解当前系统,并用一个具体模 型描述,获得当前系统的物理模型。
软件工程实用案例教程(梁洁、金兰)参考答案
习题一参考答案1. 选择题DDBBA DBD2. 简答题(1) 通用软件产品开发和定制软件开发之间有什么不同?这在实际应用中对通用软件产品用户意味着什么?答:这两类产品的一个重要区别在于:在通用软件产品中,软件描述由开发人员自己完成,而在定制软件产品中,软件描述通常是由客户给出,开发人员必须按客户要求进行开发。
在实际应用中通用软件满足的是绝大部分用户的共同需求,而对于特殊的个人需求无法涉及到。
(2) 什么是软件危机?产生的原因有哪些?它和软件工程有什么关系?答:在软件开发中经常会出现时间延迟、预算超支、质量得不到保证、移植性差等问题,甚至有的项目在耗费了大量人力、财力后,由于离目标相差甚远而宣布失败。
这种现象称为“软件危机”。
产生的原因有:(1) 软件独有的特点给开发和维护带来困难。
(2) 软件人员的错误认识。
忽视软件需求分析的重要性,轻视文档的作用,轻视软件维护等。
(3) 软件开发工具自动化程度低。
此外,软件生产工程化管理程度低,致使软件项目管理混乱,难以保障软件项目成本、开发进度按计划执行。
由于软件危机的出现,人们一直在努力探索克服软件危机的途径。
因此提出“软件工程”的概念,试图用工程的方法和管理手段,将软件开发纳入工程化的轨道,以便开发出成本低、功能强、可靠性高的软件产品。
(3) 简述软件工程的定义和软件工程的目标?答:在NATO会议上,Fritz Bauer对于软件工程的定义是:“为了经济地获得可靠的、能在实际机器上高效运行的软件,而建立和使用的健全的工程原则。
”对于软件工程,美国电气与电子工程师学会(IEEE)给出了如下定义。
软件工程是:①将系统化的、规范化的、可量化的方法应用于软件的开发、运行和维护中,即将工程化方法应用于软件;②对于①中所述方法的研究。
软件工程的目标:①软件开发成本较低。
②软件功能能够满足用户的需求。
③软件性能较好。
④软件可靠性高。
⑤软件易于使用、维护和意志。
⑥能够按时完成开发任务,并及时交付使用。
软件工程案例教程(第2版)
作者介绍
这是《软件工程案例教程(第2版)》的读书笔记模板,暂无该书作者的介绍。
精彩摘录
这是《软件工程案例教程(第2版)》的读书笔记模板,可以替换为自己的精彩内容摘录。
感谢观看
知识链接结构化分析
实训项目毕业设计选 题系统需求分析
案例二实验教学管理 系统设计
知识链接结构 化设计
实训项目毕业 设计选题系统 设计
01
案例一仓库 管理子系统 需求分析
02
知识链接面 向对象分析
03
实训项目实 验教学管理 系统需求分 析
04
案例二仓库 管理子系统 设计
06
实训项目实 验教学管理 系统设计
软件工程案例教程(第2版)
读书笔记模板
01 思维导图
03 读书笔记 05 作者介绍
目录
02 内容摘要 04 目录分析 06 精彩摘录
思维导图
本书关键字分析思维导图
大纲
软件
第版
书 模块
系统
管理
软件
软件
知识 项目
实训
工程
案例
模块
知识
管理子系统
链接
仓库
内容摘要
本书根据教育部应用型科技大学的教学要求和新大纲编写而成。全书分4个模块,涵盖软件工程基础知识、结 构化软件分析和设计、面向对象软件分析和设计、软件实现、软件测试、软件维护、软件项目管理和质量保证、 软件文档、软件开发案例、分析建模工具等方面的内容。每章配有知识链接、知识拓展和习题,引导读者深入地 进行学习。
读书笔记
开篇的例子还算有趣后边越看越无聊无逻辑的信息堆积外加许多有凑字之嫌的代码罗列和软件安装教程。 非计算机专业的人快速了解软件工程相关知识,我认为这本书可以看看!。
《软件工程》案例教学设计
《软件工程》案例教学设计案例教学是通过实际案例来教授软件工程知识和技能的一种教学方法。
通过案例教学,学生可以在实际情境中学习和应用软件工程的原理和方法,培养解决问题的能力和团队合作精神。
本文将针对《软件工程》课程设计一个案例教学实践,旨在帮助学生理解软件工程的主要概念和方法。
案例教学设计:主题:软件开发项目管理案例一:Web应用开发项目背景:公司决定开发一款在线购物网站的Web应用,希望能够在6个月内完成。
该项目需要一个跨部门的团队来完成,团队成员包括项目经理、产品经理、UX设计师、前端开发工程师、后端开发工程师和测试工程师。
任务:学生扮演团队成员的角色,协同完成该项目的需求分析、项目计划和项目执行等阶段。
步骤:1.需求分析阶段:学生根据产品经理提供的需求文档,协同完成需求澄清、需求建模和需求优先级的确定等任务。
学生需要完成用例图和需求规格说明等文档。
2.项目计划阶段:学生根据需求分析阶段的成果,协同完成项目计划的制定。
学生需要确定项目的范围、进度计划、资源分配和风险管理等。
3.项目执行阶段:学生按照项目计划,协同进行项目执行。
每个团队成员根据角色的不同,完成相应的任务。
学生需要协同管理项目进度、沟通协调团队成员、监督质量等。
4.项目验收阶段:学生协同完成项目的验收测试以及准备项目交付物。
学生需要进行系统测试、用户验收测试和文档的编写等任务。
目标:通过此案例教学,学生将会了解软件开发项目的生命周期和主要任务,掌握项目管理的基本原则和技巧,培养解决问题的能力和团队合作精神。
评估:通过学生在需求分析、项目计划和项目执行等阶段的表现评估学生的能力和技能。
评估方式可以包括小组报告、项目演示和个人总结等。
总结:通过案例教学,学生能够在真实情境中应用所学的软件工程知识和方法,培养解决问题的能力和团队合作精神。
案例教学可以让学生更加深入地理解软件工程的概念和原理,并能够将其应用到实际项目当中。
通过针对性的案例设计,可以提高学生的学习兴趣和参与度,促进知识的习得和应用。
软件工程案例教程第三版李军国
软件工程案例教程第三版李军国软件工程是指对软件的开发、维护、管理和运行等活动所进行的系统化、规范化、可量化的过程。
软件工程的目标是开发出高质量的软件,并且在预算和时间的限制内按时交付。
而软件工程案例教程则是通过具体的案例来帮助学习者理解软件工程原理和方法,实践软件开发的技能。
《软件工程案例教程》是一本在软件工程领域备受推崇的教材,其第三版由李军国教授编写。
本文将对这本教材进行介绍和评价,以期为读者提供更多有关软件工程的知识和信息。
一、作者背景李军国教授是著名的软件工程专家,曾在清华大学计算机系任教,并担任过多个软件工程项目的负责人。
他的教学和科研成果在国内外都备受赞誉,对软件工程的理论研究和实践经验丰富。
他在软件工程领域的教材编写具有很高的权威性和可信度。
二、教材内容《软件工程案例教程》第三版是在第二版的基础上进行了全面更新和修订的。
这本教材主要包括以下内容:1. 软件工程概述在这一部分,教材首先介绍了软件工程的基本概念和原理,包括软件生命周期、需求分析、设计、编码、测试、维护等阶段。
还涉及了软件质量保证、项目管理、配置管理等相关知识,为读者打下坚实的理论基础。
2. 软件开发过程这部分主要讲解了软件开发的具体过程和方法,包括面向对象分析与设计、结构化分析与设计、需求建模、UML建模等内容。
通过具体案例的讲解,读者可以更深入地理解和掌握软件开发的技巧和方法。
3. 软件测试与维护在这一部分,教材介绍了软件测试的基本方法和技术,包括单元测试、集成测试、系统测试、验收测试等。
同时也讨论了软件维护的重要性和方法,为读者提供了全面的知识体系。
4. 案例分析与实践最后一部分是本教材的重点,其中包含了多个实际的软件工程案例,如电子商务系统、医院信息管理系统、物流管理系统等。
每个案例都包括了需求分析、设计、开发、测试、维护等全流程的讲解,便于读者学习和实践。
三、教材特色值得一提的是,该教材在内容上不仅涵盖了软件工程的理论知识,还结合了大量的实际案例。
软件工程案例教程耿红琴课后答案
软件工程案例教程耿红琴课后答案1、下列所述不是软件特点的是(A)A、软件是有形的B、软件不存在磨损和消耗问题C、软件开发成本高D、软件没有明显的制作过程2、软件工程的出现主要是由于(C)A、程序设计方法学的影响B、其他工程学科的影响C、软件危机的出现D、计算机的3、以下(C)不是软件危机的表现形式A、开发的软件不满足用户的满要B、开发的软件可推护性差C、开发的软件价格便宜D、开发的软件可靠性差4、软件工程的目的是(C)A、建造大型的软件系统B、开发的软件可维护性差C、软泥吉安质量的保证D、研究软件开发的运离5、下列所选不是软件组成的是(D)A、程序B、数据C、界面D、文档6、下列对“计算机软件”描述正确的是(A)A、是计算机系统的组成部分B、不能作为商品参加交易C、是在计算机硬件设备生产过程中生产出来的D、之存在语计算机系统工作时7、软件工程的方法的产生派于软件危机,下列(D)是产生软件危机的内在原因A、软件的复杂性B、软件维护困施C软件成本太高。
D、软件质量难保证8、软件工程方法的提出源于软件危机,其目的应该是最终解决软件的(D)问题A、软件危机B、质量保证C、开发效率D、生产工程化9、软件工程学中除重视软件开发的研究外,另以重要组成内容是软件的(A)和过程改进A、项目管理B、成本核算C、人员培训D、工具开发10、软件工程设计软件开发技术和项目管现等方面内容,下述内容中(D)不属于开发技术的范畴A、软件开发方法B、软件开发工具C、软件工程环境D、软件工程经济2、填空题1、软件工程的目的是成功的建造大型的软件系统,主要内容是开打软件并发技术、软件项目管理和软件质量管理。
2、螺旋式开发模型主要是针对风险比较大的项目而设计的3、由于软件产生的复杂性和高成本,使大磁软件产生出了很多问遇。
即出现软件危机。
软件工程正是为了克服它而提出的一种概念及相关方法和技术。
4、增量模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。
《软件工程案例教程》李军国主编习题答案
《软件⼯程案例教程》李军国主编习题答案第1章习题答案⼀、判断题⼆、填空题三、简答题1.软件的特点:①软件具有抽象性。
②软件与硬件的⽣产⽅式不同。
③软件与硬件的维护⽅式不同。
④软件具有复杂的逻辑性。
⑤软件的成本较⾼。
⑥软件的使⽤和社会因素有关。
2.软件危机产⽣的原因:①⽤户需求不明确。
②缺乏正确的理论指导。
③软件开发规模越来越⼤。
④软件开发复杂度越来越⾼。
3.软件危机的主要表现:①软件开发进度难以预测。
②软件开发成本难以控制。
③⽤户对产品功能难以满⾜。
④软件产品质量⽆法保证。
⑤软件产品难以维护。
⑥软件缺少适当的⽂档资料。
4.软件⼯程学的基本原则有哪些:①抽象。
②信息隐蔽。
③模块化。
④局部化。
⑤确定性。
⑥⼀致性。
⑦完备性。
⑧可验证性。
5 什么是软件的⽣命周期?答案:软件与任何⼀个事物⼀样,有它的孕育、诞⽣、成长、成熟、衰亡的⽣存过程。
这就是软件的⽣存周期。
6 软件⼯程过程有哪⼏个基本过程活动?试说明之。
答案:软件⼯程过程的基本过程活动有4步:①软件规格说明(需求定义)。
规定软件的功能及其运⾏的限制;②软件设计与开发(设计开发)。
产⽣满⾜规格说明的软件;③软件确认(测试)。
确认软件能够完成客户提出的要求;④软件演进(维护)。
为满⾜客户的变更要求,软件必须在使⽤的过程中演进。
四、综合题1.详细说明软件⽣命周期分哪⼏个阶段?答案:软件⽣命周期主要分为6个阶段:软件项⽬计划、软件需求分析和定义、软件设计、程序编码、软件测试,以及运⾏维护。
(1)软件项⽬计划:在这⼀步要确定软件⼯作范围,进⾏软件风险分析,预计软件开发所需要的资源,建⽴成本与进度的估算。
根据有关成本与进度的限制分析项⽬的可⾏性。
(2)软件需求分析和定义:在这⼀步详细定义分配给软件的系统元素。
可以⽤以下两种⽅式中的⼀种对需求进⾏分析和定义。
⼀种是正式的信息域分析,可⽤于建⽴信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。
另⼀种是软件原型化⽅法,即建⽴软件原型,并由⽤户进⾏评价,从⽽确定软件需求。
软件工程与项目案例教程PPT课件
特
(7)社会性 ;
点
.
11
软件工程与项目案例教程
软件危机
Tacoma Narrows大桥的崩溃
.
12
软件工程与项目案例教程
软件危机
软件危机
在软件开发和维护过程中所遇到的一系列严重问题
软 软件危机的表现
件
▪对软件开发成本和进度的估算很不准确
危 机
▪用户很不满意 ▪质量很不可靠 ▪没有适当的文档
▪软件成本比重上升
.
43
软件工程与项目案例教程
修饰
❖ 修饰:图中建模元素上暴露的信息项
▪ 任何UML图仅是模型的视图,
▪ 只有在修饰增强了图的整体清晰性和可读性或者突出 模型的某些重要特征时,才应该表示那些修饰
Window
Window
+s ize:Area #visibility:Boolean -xptr:XWindow
的
定
软件=程序+数据+文档
义
及 程序:按事先设计的功能和性能需求执行的指令
其 特 点
序列 数据:是程序能正常操纵信息的数据结构 文档:与程序开发、维护和使用有关的图文材料
.
10
软件工程与项目案例教程
软件的定义及其特点
软
件 的 定 义 及 其
软件的特点 (1)抽象性 ; (2)无明显的制造过程 ; (3)无磨损、老化的问题 (4)对硬件系统的依懒性 ; (5)复杂性 ; (6)成本昂贵;
及其文档的完备性,是一种严格线性的、
按阶段顺序的、逐步细化的开发模式。
.
20
软件工程与项目案例教程
软件开发模型
演化模型 螺旋模型 喷泉模型
软件工程实用案例教程参考答案
软件工程实用案例教程参考答案1. 软件工程实用案例教程参考答案解析软件工程实用案例教程是帮助软件工程师提高技能并实战应用的重要资源。
通过提供参考答案的解析,可以帮助学习者更好地理解案例的解决方法和思路。
以下是对一些常见案例的参考答案解析。
一、敏捷开发案例敏捷开发是一种迭代、自组织的开发方法,通过反复迭代开发和快速响应变化的需求,实现高质量的软件交付。
下面是一个敏捷开发案例的参考答案解析。
案例:开发一个网上购物系统,用户可以注册账号、浏览商品、添加购物车、下单付款等。
解析:敏捷开发的核心是通过迭代的方式,快速交付高质量的软件。
在这个案例中,可以通过以下步骤进行开发:1. 第一轮迭代:实现用户注册功能。
确定用户注册的必要信息,设计用户注册界面,实现用户注册的验证逻辑和数据库存储功能。
2. 第二轮迭代:实现商品浏览功能。
设计商品列表界面,实现商品的展示和筛选功能,确保用户可以浏览到所有的商品信息。
3. 第三轮迭代:实现购物车功能。
设计购物车界面,实现商品加入购物车的逻辑和购物车商品数量的管理功能。
4. 第四轮迭代:实现下单付款功能。
设计下单界面,实现下单的逻辑和相关支付接口的调用。
通过不断的迭代开发,逐步完善系统的各个模块,最终实现一个完整的网上购物系统。
二、需求分析案例需求分析是软件工程中非常重要的环节,它确定了软件开发的目标和范围。
以下是一个需求分析案例的参考答案解析。
案例:开发一个学生信息管理系统,实现学生信息的录入、查询、修改和删除等功能。
解析:需求分析时需要明确系统的功能需求和非功能需求。
在这个案例中,可以通过以下步骤进行需求分析:1. 功能需求:确定系统的主要功能,包括学生信息的录入、查询、修改和删除等功能。
2. 非功能需求:确定系统的性能、安全和可靠性等非功能需求。
比如系统的响应时间应在2秒以内,数据的安全性需要保证等。
3. 需求获取:通过访谈、问卷调查等方式,获取用户对系统的需求和期望。
软件工程案例教程(一)2024
软件工程案例教程(一)引言概述:软件工程案例教程(一)是一个旨在帮助软件工程师们提升技能的系列教程。
本教程将通过具体的案例来介绍软件工程的一些基础概念和实践方法,以帮助读者更好地理解和应用软件工程的原理和技术。
本文将分为五个大点来阐述,分别为需求分析、系统设计、编码与测试、部署与维护以及质量保证。
需求分析:1. 确定需求范围:了解项目的目标和需求,明确系统的功能和性能要求。
2. 收集需求:与客户和利益相关者进行沟通,使用各种技术和工具来获取需求信息。
3. 分析需求:对收集到的需求进行分析和整理,明确需求的优先级和约束条件。
4. 确定需求规格:将需求转化为可执行的规格,包括功能规格和非功能规格。
5. 验证需求:通过与客户和利益相关者的确认,确保需求的准确性和完整性。
系统设计:1. 构建体系结构:确定系统的整体结构和模块之间的关系,选择合适的架构风格。
2. 设计模块:对系统中的各个功能模块进行具体的细节设计,确定接口和数据结构。
3. 数据库设计:设计数据库的结构和关系,确定表结构、索引和约束条件。
4. 用户界面设计:根据用户需求和交互方式进行用户界面的设计,提高用户体验。
5. 性能优化:根据系统需求和资源限制,通过合理的算法和优化技术来提高系统的性能。
编码与测试:1. 编码实现:根据设计文档和需求规格进行编码实现,编写清晰、易维护的代码。
2. 单元测试:对每个模块进行单元测试,确保各个模块的功能正确性和稳定性。
3. 集成测试:将各个模块进行集成测试,检查模块之间的接口和交互是否符合设计要求。
4. 系统测试:对整个系统进行测试,模拟实际使用场景,确保系统的可靠性和稳定性。
5. 调试与修复:通过调试技术和工具,发现和修复系统的错误和问题。
部署与维护:1. 系统部署:将系统部署到目标环境中,包括软件安装、配置和初始化等步骤。
2. 数据迁移:将旧系统的数据迁移到新系统中,确保数据的完整性和一致性。
3. 系统监控:设置系统监控机制,实时监测系统的运行状况和性能,并记录日志。
软件工程实用案例教程 第5章 结构化软件设计
模块调用的详细情况。
5.1 软件设计的相关概念
5.1.3 结构化设计图形工具
5.1.3.2 HIPO图
1.H图(层次图)
5.1 软件设计的相关概念
5.1.3 结构化设计图形工具
软件设计
需求分析解决软件系统“做什么”的问题,而软件设 计解决“怎么做”的问题。
软件设计可分为:
概要设计:体系结构设计、数据设计和接口设计。 详细设计:过程设计。
本章主要讨论问题:
软件设计的任务、原则、图形工具和启发规 则是什么?
常用的结构化软件设计的方法是什么? 结构化软件设计案例。
的语句在多处出现,于是为了节省空间而将这些语 句作为一个模块设计,这样就出现了偶然内聚。
5.1 软件设计的相关概念
5.1.3 结构化设计图形工具
5.1.3.1 结构图
1.结构图的图形符号 (1)模块 (2)模块间的调用关系 (3)模块间的信息传递
图5-15 结构图示例
5.1 软件设计的相关概念
5.1.3.2 HIPO图
2.IPO图
5.1 软件设计的相关概念
5.1.4 软件设计的启发规则
1.模块规模应该适中
通常规定模块中语句行数在50~100左右,保持在一 页纸之内,最多不超过500行。
这对提高程序的可理解性是有好处的。基本的准则 是要保证模块的独立性。
5.1 软件设计的相关概念
5.1.4 软件设计的启发规则
2.消除重复功能,改进软件结构
图5-20 模块的各种合并方案
5.1 软件设计的相关概念
5.1.4 软件设计的启发规则
软件工程案例教程习题
软件工程第一章习题一一、判断题1.程序是按事先设计的功能和性能要求执行的指令序列。
()2.数据时使程序能够正确操纵信息的数据结构。
()3.文档与程序开发、维护和使用有关的图文材料。
()4.软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。
()5.增量模型的特点是文档驱动。
()6.瀑布模型的特点是文档驱动。
()7.瀑布模型是一种软件生存周期模型。
()8.在软件生存周期中,用户主要是在软件开发期参与软件开发。
()9.瀑布模型的主要问题是可靠性低。
()10.软件生存周期中时间最长的阶段是需求分析。
()11.原型化方法适用于需求已确定的系统。
()12.瀑布模型本质上是一种线性模型。
()13.原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统。
二、填空题1.软件工程是开发、运行、维护和修复软件的系统化方法,它包含的三个要素指的是:()()和()。
2.软件是计算机系统中于硬件相互依存的另一部分,它是包括()、()与()的完整集合。
3.开发软件时对提高软件开发人员工作效率至关重要的是()。
软件工程中描述生存周期的瀑布模型一般包括计划、()、设计、编码、测试、维护、等几个阶段,其中设计阶段在管理上有可以一次分成()和()两步。
4.软件发展的第一阶段称为“程序设计的原始时期”,这时期即没有(),也没有(),程序员只能用机器指令编写程序。
5.软件发展过程的第二阶段称为“基本软件期”。
出现了(),并逐渐普与。
随着()的发展,编译技术也有较大的发展。
6.软件发展过程的第三阶段称为“程序设计方法时代”。
这一时期,于硬件费用下降相反,软件开发费急剧上升。
人们提出了()和()等程序设计方法,设法降低软件的开发费用。
7.软件发展的第四阶段称为“软件工程期”。
软件开发技术不再仅仅是程序设计技术,而是包括与软件开发的各个阶段,()、()、编码、单元测试、综合测试、()与整体有关的各种管理技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章1.下列所述不是软件特点的是(A)A.软件是有形的B.软件不存在磨损和消耗问题C.软件开发成本高D.软件没有明显的制作过程2.软件工程的出现主要是由于(C)A.程序设计方法学的影响B.其他工程学科的影响C.软件危机的出现D.计算机的发展3.以下(C)不是软件危机的表现形式A.开发的软件不满足用户的需要B.开发的软件可维护性差C.开发的软件价格便宜D.开发的软件可靠性差4.软件工程的目的是(C)A.建造大型的软件系统B.开发的软件可维护性差C.软泥吉安质量的保证D.研究软件开发的远离5.下列所述不是软件组成的是(D)A.程序B.数据C.界面D.文档6.下列对“计算机软件”描述正确的是(A)A.是计算机系统的组成部分B.不能作为商品参加交易C.是在计算机硬件设备生产过程中生产出来的D.之存在语计算机系统工作时7.软件工程的方法的产生源于软件危机,下列(D)是产生软件危机的内在原因A.软件的复杂性B.软件维护困难C软件成本太高. D.软件质量难保证8.软件工程方法的提出源于软件危机,其目的应该是最终解决软件的(D)问题A.软件危机B.质量保证C.开发效率D.生产工程化9.软件工程学中除重视软件开发的研究外,另以重要组成内容是软件的(A)和过程改进A.项目管理B.成本核算C.人员培训D.工具开发10.软件工程设计软件开发技术和项目管理等方面内容,下述内容中(D)不属于开发技术的范畴A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济二、填空题1.软件工程的目的是成功的建造大型的软件系统,主要内容是开打软件开发技术、软件项目管理和软件质量管理。
2.螺旋式开发模型主要是针对风险比较大的项目而设计的3.由于软件产生的复杂性和高成本,使大型软件产生出了很多问题,即出现软件危机,软件工程正是为了克服它而提出的一种概念及相关方法和技术。
4.增量模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。
5.喷泉模型比较适合用于面向对象的开发方法。
三、判断题1.软件开发方法的主要目的是克服软件手工生产带来的问题,使软件开发能进入工程化和规范化的环境(Y)2.软件工程的提出起源于软件危机,其目的书最终解决软件的生产工程化(Y)3.软件工程改进也是软件工程的范畴(Y)第二章一、选择题1.结构化分析方法是面向(B)的自顶向下逐步求精的分析方法。
A.目标B.数据流C功能. D.对象2.在进行软件设计时应该遵循的最主要的原理是(C)A.抽象B模块化. C.模块独立D信息屏蔽.3.在结构化分析方法中,常用的描述软件功能需求的工具是(C)A.业务流程图、处理说明B软件流程图、模块说明. C.数据流程图、数据字典 D.系统流程图、程序编码二、填空题1.结构化分析方法是(面向数据流)进行分析的方法。
2.在软件开发的结构化方法中,构成系统逻辑的模型的是(数据流图(DFD))和数字字典。
3.数据流图是描述数据在软件中流动和被处理的过程,是软件模型的一种图示,它一般包括4种图形符号:变换/加工、外部实体、数据流向和(数据储存)。
4.(面向对象)是将数据和对数据的操作紧密结合起来的方法,这是与传统结构化方法的主要区别三、判断题1.面向对象开发过程是多次重复和迭代的演化过程,(面向对象开发方法是)在概念和表示方法是的一致性保证了各项开发活动之间的平滑过渡(N)2.软件逆向工程是根据对软件需求的分析恢复其设计和软件代码的过程(N)第三章一、选择题1、软件开发过程中,需求活动的主要任务是(B)A给出软件解决方案B定义需求并建立系统模型C定义模块算法D给出系统模块结构2、软件需求规格说明文档中包括多方面的内容,下述(D)不是软件需求规格说明文档中应包括的内容A安全描述B功能描述C性能描述D软件代码3.软件需求分析一般应确定的是用户对软件的(D)A功能需求B非功能需求C性能需求D功能需求和非功能需求4.结构化分析方法中,描述软件功能需求的常用工具有(C)同第二章5.软件需求分析阶段建立原型的主要目的是(D)A确定系统的功能和性能要求B确定系统的性能要求C确定系统是否满足用户要求D确定系统是否满足开发人员需要6.在需求分析阶段,需求分析人员需要了解用户的需求,认真仔细地调研、分析,最终应建立目标系统的逻辑模型并写出(B)A模块说明书B需求规格说明书C项目开发设计D合同文档7.如见需求阶段要解决的问题(A)A软件做什么B软件提供哪些信息C软件采用什么结构D软件怎样做8.软件需求管理过程包括需求获取、需求分析、编写需求规格说明书、需求评审以及(D)A用户参加B需求变更C总结D都不正确9.在原型法中开发人员根据(A)需求不断修改原型,直到满足用户需求为止。
A用户B开发人员C系统分析员D程序员10.结构化分析方法以数据流图、(D)和加工说明等描述工具,即用直观的图和简介的怨言来描述软件系统模型。
A、DFD图B、PAD图C、HIPO图D数据字典二.填空题1.面向数据流的软件设计中,一般将数据流图的数据流划分为变换流和(事物流)。
2.分析模型在系统级描述和(软件设计的差距)之间建立了桥梁。
最常见的实体关系图的表示法是(E-R图)表示法和()三.判断题1.系统流程图表达了系统中各个袁术之间信息的流动情况(Y)2.用例需求分析方法采用的是一种结构化的情景分析方法,即是一种基于场景建模的方法(N)3.面向对象的分析方法认为系统是对象的集合,是以功能和数据为基础的(Y)第四章一、选择题1、内聚是从功能角度来度量模块内的凉席,按照特定次序执行元素的模块属于(C)A逻辑内聚B时间内聚C过程内聚D顺序内聚2、软件的结构化设计方法中,一般分为概要设计和详细设计两个阶段,其中概要设计主要是要建立(A)A软泥吉安结构B软件流程C软件模型D软件模块3.概要设计是软件工程中很重要的技术活动,下列不是概要设计任务的是(B)A设计软件系统的结构B编写测试报告C数据结构和数据库设计D编写概要设计文档4.软件结构图能描述软件系统的总体结构设计,它应在软件开发的(B)阶段提出A需求分析B概要设计C详细设计D代码编写5.软件的(A)设计也称为总体结构设计,其主要人物是建立软件的总体结构A概要B抽象C逻辑D规划6.数据字典是定义(A)中的数据的工具A数据流图B系统流程图C程序流程图D软件结构图7.耦合是软件各个模块间连接的一种度量。
一组模块都访问同意数据结构应属于(B)A内容耦合B公共耦合C外部耦合D控制耦合8.面向数据流的软件设计方法中,一般是把数据流图中的数据流分为(B)两种流,在将数据流图映射为软件结构A数据流与事物流B交换流和事务流C信息流与控制流D交换流和数据流9.(C)是指让一些关系密切的软件元素在物理上彼此靠近A信息隐蔽B内聚C局部化D模块独立10.软件设计是一个将(B)转换为软件表示的过程A代码设计B软件需求C详细设计D系统分析11.数据储存和数据流都是(D),仅仅是所处的状态不同A分析结果B事件C动作D数据12.在结构化方法中,软件功能分解属于软件开发中的(C)阶段的任务A详细设计B需求分析C概要设计D编程调试13.数据字典是数据定义信息的集合,它所定义的对象都包括在(A)A数据流图B程序框图C软件结构D方框图14.模块本身的内聚是模块独立性的重要度量因素之一,在7类内聚中,具有最强内聚的一类是(D)A顺序性内聚B过程性内聚C逻辑性内聚D功能性内聚15.面向数据流的设计方法把(A)映射城软件结构A数据流B系统结构C控制结构D信息流16.数据流图和(数据字典)共同组成系统逻辑模型17.下列关于软件设计准则的描述,错误速度是(C)A提高模块的独立性B体现统一的风格C是模块结构的作用语在该模块的控制域外D结构应该尽可能满足变更的要求二、填空题1、数据字包括(数据流)、(实体)、(数据储存)和基本加工2、软件设计把一确定的软件需求转换成特定的设计表示,使其得以实现3、设计模型是从分析模型转化而来的,主要包括四类模型:(体系结构设计模型)、数据设计模型、接口设计模型、模块化4、面向兑现设计的主要特点是建立了四个非常重要的软件设计概念:抽象性、隐蔽性、功能独立性和、模块化5、构建(模块)设计的最终目的是将数据模型、体系结构模型、接口模型变为(运行软件)三、判断题1、软件设计是软件工程的重要阶段,是一个把软件需求转换为软件代码的过程(N)2、软件设计说明书是软件概要设计的主要成果(Y)3、软件设计中设计复审和设计本身一样重要,其主要作用是避免后期付出高代价(Y)4、模式是针对特定问题的解决方案,好的模式采用成熟和成功的方法,比重新设计要好很多。
框架是特定应用领域的数据结构模式(N)第五章一、选择题1、(D)是数据说明、可执行语句等程序对象的集合,它是单独命名的,而且可以通过名字来访问A模块化B抽象C精化D模块2、面向数据结构的设计方法是进行(c)的一种方法A系统设计B详细设计C软件设计D编码3.Jackson设计方法是由Jackson所提出的,它是一种面向(C)的软件设计方法A对象B数据流C数据结构D控制结构4.数据元素组成数据的方式基本类型是(D)A顺序的B选择的C循环的D以上全部5.程序流程图中的箭头代表的是(B)A数据流B控制流C调用关系D组成关系6.伪码又称为过程设计语言PDL,一种典型的PDL是仿照(C)编写的A、FORTRAN B汇编语言C、PASCAL语言DCOBOL语言7.伪码作为详细设计的工具,缺点在于(B)A每个符号对应与源程序的一行代码,对于提高系统的可理解性作用很小B不如其他图形工具直观,描述复杂的条件组合与动作间的对应关系不够明了C容易使程序不受任何约束,随意转移控制D不支持逐步求精,是程序员不去烤炉系统的全局结构8.结构化程序流程图中一般包括3种基本结构,下述结构中(D)不属于其基本解结构。
A顺序结构B条件结构C选择结构D嵌套结构9.软件设计模块化的目的是(B)A提高易读性B降低复杂性C怎家内聚性D降低耦合性二.填空题1、PDL又称(伪码),它是一种非形式的比较灵活的语言2、软件店详细设计可采用图形、(表格)和过程设计语言等形式的描述工具表示模块的处理过程3、软件的详细设计需要设计人员对每个设计模块进行描述,确定所使用的(数据结构)接口细节和输入、输出数据等4、结构化设计方法语结构化分析方法一样,采用(逐步求精)技术、结构化设计方法与结构化分析方法相结合,依数据流图设计程序的结构5、软件中详细设计一般是在(需求分析)基础上才能实施,它们一起构成了软件设计的全部内容6、在Warnier方法中,采用(树形结构)表示数据结构和程序结构7、面向数据结构的设计方法主要包括(Jackson)和(Warnier)三.判断题1、Jackson方法的原理与Warnier方法的原理类似,也是从数据结构出发设计程序,但后者的逻辑要求更严格(Y)2、软件的详细设计也称模块设计,他要求设计人员为每一个程序模块确定所使用的算法、数据结构、接口细节和输入输出数据等(Y)3、伪代码可以被直接编译,它体现了设计的程序的框架或者代表了一个程序流程图。