电大天堂【系统开发规范与文档编写】形考作业一:
一、 填空题
1. 系统软件 , 应用软件
2. 过程 , 方法 , 工具
3. 程序设计阶段 , 程序系统阶段 , 软件工程阶段
4. 计划 , 需求分析 , 设计 , 编码 , 测试 , 运行维护
5. 项目管理过程 , 配置管理过程 , 质量管理过程
6. 瀑布模型,螺旋模型,风险分析
7. 结构化设计,结构化编程
8. 初始级,可重复级
9. 需求获取
10. 系统分析员 , 用户 , 软件开发人员,软件需求规格说明书
11. 数据流图 , 数据字典 , 结构化语言 , 判定表 ,判定树
12. 判定树,结构化语言
13. 参与者 , 用例
14. 扩展关系 , 包含关系 ,泛化关系
二、 单项选择题
1.B 2.A 3.D 4.C 5.A
6.D 7.D 8.B 9.A 10.B
11.C 12.D 13.C 14.A 15.A
16.D 17.C 18.A 19.C 20.C
三、 简答题
1. 软件工程
软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。
2.软件危机
软件危机泛指在计算机软件的开发、维护和使用过程中所遇到的一系列严重问题。
3.软件危机有哪些表现,产生的原因有哪些?
软件危机的表现:
从宏观上说,软件危机主要是指:
(1) 软件的发展赶不上计算机硬件的发展
(2) 软件的发展赶不上社会对于软件需求的增长
从具体的软件来说,软件危机是指:
(1) 软件往往不能按计划、按预算、按时完成
(2) 已开发的软件不能很好的使用,甚至很快就不用
软件危机产生的原因:
(1) 软件需求分析不充分
(2) 软件开发的规范性不够
(3) 软件开发计划的科学性不够
(4) 缺少对于软件的评测手段
4.数据字典
数据字典是对系统用到的所有数据项和结构的精确定义,以确保开发人员使用统一的数据定义。数据字典与数据流图配合,能清楚地表达数据处理的要求。
5.与别的产品相比,软件有哪些特征?
(1) 软件是一种逻辑实体,主要是人的脑力劳动的产物,软件具有抽象性。
(2) 软件具有复杂性。
(3) 软件的维护具有长期性。
(4) 软件具有高成本性。
6.试述软件工程的基本原则
(1) 用分阶段的生命周期计划严格管理
(2) 坚持进行阶段评审
(3) 实行严格的产品控制
(4) 采用现代程序设计技术
(5) 结果应能清楚地审查
(6) 结果应能清楚地审查
(7) 承认不断改进软件工程实践的必要性
7.试述瀑布模型有何优缺点
优点:它在支持结构化软件开发、控制软件开发的复杂性、促进软件开发工程化等方面起着显著的作用。
缺点:首先,瀑布模型它要求在软件开发的初始阶段明确软件系统的全部需求,在实际中做到这一点是很困难的,甚至是不现实的。其次,使用瀑布模型开发软件,用户和项目管理者要等很长时间才能得到一份软件的最初版本,如果用户对该软件提出了较大的改进意见,将使整个项目蒙受巨大的损失。
8.优秀的需求说明书应该具备哪些特点?
(1)完整性。需求规格说明书不能遗漏任何必要的需求信息,对于当前不能确定的,则使用“带确定”标示。
(2)无二义性。对所有需求说明的读者都只能有一个明确统一的解释。
(3)一致性。与其他软件需求或高层(系统、业务)需求不相矛盾。
(4)可修改性。便于修改,并且在修改后维护需求的一致性、完整性和无二义性。
(5)可跟踪性。在进一步产生和改变文档编制时,可以方便的引证每一个需求。
9.结构化需求分析方法包含那些步骤?
(1)对现行系统的“物理环境”进行研究,获得现行系统的具体模型。分析现行系统的输入和输出,系统中的数据如何流经整个系统的,划出系统的数据流图,用具体的模型来表示自己对现行系统的理解。
(2)抽象出与现行系统模型等价的逻辑模型。对具体模型进行抽象,提取其一般的,本质的因素,去掉那些非本质的因素,获得反映系统本质的逻辑模型。
(3)建立目标系统的逻辑模型。要明确需要在现行系统上做哪些改变,根据新系统作要做的改变,参照现行系统逻辑模型,画出新的数据流图。
(4)补充目标系统的逻辑模型。确定目标系统的人机界面,补充一些尚未详细考虑的细节问题
10.在画系统的分层数据流图时,需要注意哪些问题?
(1) 加工的编号方法。根据加工的编号,应该能知道该加工属于哪一层,该加工的父图以及时从父图中的哪个加工分解得来的。
(2) 分解程度。应该使分解力求自然,使分解后各界面清晰,意义明确
(3) 父图与子图的平衡。子图中的输入输出应该和父图中相对应的加工的输入输出相一致,以保持数据流的平衡,保证加工过程的连续性和一致性。
(4) 文件的局部性。在只有文件成为两个或多个加工的接口时,才出现在该层及下层数据流图上。
11.用例模型
用于描述指定系统的用例,参与者和用例—参与者关联关系的组合。
12.在建立系统的用例模型时,如何确定系统的参与者?
为了有效地发现参与者,必须回答以下几个问题:
(1)谁是系统的主要用户,即谁使用系统的主要功能;
(2)谁从系统获得信息;
(3)谁向系统提供信息;
(4)谁来管理、维护系统,以保证系统的正常运行;
(5)系统需要与哪些其他的系统交互(包含其他的计算机系统或应用程序);
(6)为了完成系统的功能,需要哪些硬件设备的支持。
13.为了使开发组织能够严格控制软件项目,需求变更应遵循哪些原则?
(1)仔细评估已建议的变更;
(2)挑选合适的人选对变更做出决定;
(3)变更应及时通知所有涉及的人员;
(4)项目要按一定的程序来采纳需求变更。
四、 应用题
1.
(1)图2中的“房租文件”和“交费文件”是局部文件,不必画出。
(2)图3中遗漏的数据流如下:
(a)从“住户基本信息文件”到加工1.1的数据流;
(b)加工1.4输出的数据流“分户收费通知单”;
(c)加工1.6输出的数据流“住房分配表”。
(3)加工2的子图如下:
2.
参与者:管理员,读者(员工)
用例:新书录入,书籍查询,借书登记,还书登记,催还。
电大天堂【系统开发规范与文档编写】形考作业二:
一、单项选择题
1.C 2.A 3.B 4.D 5.A
6.B 7.C 8.A 9.D 10.B
二、填空题
1. 数据流图
2. 过程抽象,数据抽象,控制抽象
3. 分解,抽象
4. 功能,逻辑,状态
5. 耦合,内聚
6. 体系结构
7. 系统设计目标
8. 变换型数据流图,事务型数据流图
9. 详细设计
10. 算法设计、数据结构设计
11. 图形工具、表格工具和语言工具
12. 数据结构
13. 结构冲突
三、判断题
对 错 错 对 对
错 对 错 对 对
四、简答题
1.结构化程序设计(SP)方法,最早是由E. W. Dijkstra在20世纪60年代中期提出的,它以下几个基本要点:
第一,采用自顶向下、逐步求精的程序设计方法;
第二,使用顺序、选择及重复三种基本控制结构构造程序;
第三,主程序员的组织方式。开发程序的人员应采用以一个主程序员、一个后备程序员和一个程序管理员三人为核心,再加上一些专家等组成小组。
下图所给出的是流程图的五种基本控制结构
2.程序结构描述了整个程序的控制层次关系和各个部分的接口情况,而软件过程则着重描述各个模块的处理细节。
软件过程必须提供精确的处理说明,包括事件的顺序、正确的判定点、重复的操作直至数据的组织和结构等等。程序结构与软件过程是有关系的。对每个模块的处理必须指明该模块所在的上下级环境。软件过程遵从程序结构的主从关系,因此它也是层次化的。
3.信息隐蔽是指每个模块的实现细节对于其它模块来说是隐蔽的。就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。
4.结构化方法总的指导原则是自顶向下、逐步求精。它的基本原则是功能的分解与抽象。逐步求精,也称为自顶向下是指:不要求一步就编制成可执行的程序,而是分若干步进行。第一步编出的程序抽象程度最高,第二步编出的程序抽象程度有所降低,最后一步编出的程序即为可执行的程序。用这种方法编程,可使程序易读、易写、易调试、易维护,也易于保证程序的正确性及验证其正确性。随着软件设计的逐步展开,程序结构中每一层模块就体现了过程抽象某一层次上的一次细化。
5.软件总体设计的主要任务是要建立软件系统的体系结构,即软件系统要划分多少模块,模块之间的层次结构和调用关系是怎样的。同时还要设计数据结构和数据库结构、人机接口等。在概要设计阶段需要完成的基本任务,有以下几个方面:采用某种设计方法,将一个复杂的系统按功能划分成模块的层次结构;确定每个模块的功能,建立与已确定的软件需求的对应关系;确定模块之间的调用关系;确定模块之间的接口,即模块之间的信息,设计接口的信息结构;评价模块划分的质量及导出模块结构的规则。
五、应用题
电大天堂【系统开发规范与文档编写】形考作业三:
一、单项选择题
1.A 2.D 3.C 4.C 5.D
6.B 7.A 8.B 9.D 10.B
11.A 12.B 13.A 14.A 15.C
二、填空题
1. 操作
2. 信息继承
3. 属性,操作
4. 多继承
5. 整体-部分
6. 多态性
7. 关联、泛化、依赖和细化
8. 顺序
9. 状态
10. 用例视图、逻辑视图
11. 活动图
三、判断题
对 对 错 对 错
对 错 错 错 错
四、简答题
1.对象是构成世界的一个独立单元,它具有自己的静态特征和动态特征。
类是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,包括属性和操作两个部分。
消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。发送给一个对象的消息定义为一个操作名和一个实参数表(可能是空的)。
2.类之间的关系有:关联;聚集;组成和泛化
关联表示类与类之间的一种抽象关系,从说明层观点看,关联代表一种职责;
聚集关系表示类和类之间的整体和部分的关系;
组成关系是另外一种形式的聚集关系,部分对象仅属于一个整体对象,且部分对象与整体对象共存亡;
泛化关系也称继承关系。
3.Coad和Yourdon对面向对象给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。
面向对象技术是一个非常实用的软件开发方法,具有以下特点。第一,开发方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。二是从生存期的一个阶段到下一个阶段的高度连续性,即在一个阶段所用到的部分与在下一个阶段所使用的部分是衔接的,所使用的技术经过生存期每一阶段后不改变。最后,把面向对象分析、面向对象设计和面向对象程序设计集成到生存期的相应阶段。
4.用例模型用于系统需求的获取,描述系统的功能需求。
用例模型的主要成分有用例、参与者和系统。系统被看作一个提供用例的黑盒,系统如何做、用例如何实现、内部如何工作,这些对用例模型都是不重要的。创建用例模型的工作包括:定义系统,寻找参与者和用例,描述用例,定义用例之间的关系,最后确认模型,用例模型由用例图组成。
5.面向对象分析的一般步骤是:
1)获取用户对OO系统的需求,包括表示场景或者用例;建造需求模型。
2)为每个系统对象标识属性和操作。
3)定义组织类的结构和层次。
4)建造对象-关系模型。
5)建造对象-行为模型。
6)使用用例/场景复审OO分析模型
五、应用题
电大天堂【系统开发规范与文档编写】形考作业四:
一、单项选择题
1.C 2.B 3.D 4.B 5.A
6.C 7.D 8.D 9.B 10.C
11.B 12.D 13.A 14.A 15.C
16.A 17.B 18.A 19.D 20.A
21.D 22.C 23.A 24.B 25.D
26.A 27.C 28.A 29.D 30.A
二、填空题
1. 应用技术、管理和监督
2. 公司级、项目级、程序员级和应用级
3. 功能基线、分配基线和产品基线
4. 配置项
5. 配置项的选择、配置项的命名和描述、配置项的存取
6. 基线
7. 技术上解决软件质量问题的局限性、测试的局限性
8. 黑盒测试、白盒测试
9. 性能
10. 相一致
11. 软件开发计划
12. 已建立基线
13. 隐含
14. 软件质量保证
15. 审查;复查和管理复审;测试
16. 软件计划、软件设计、软件编码
17. 程序
18. 程序错误
19. 静态、动态
20. 结构检查、流图分析、符号执行
21. 分析、非分析
22. 风险
23. 文件
24. 管理文档、开发文档和用户文档
25. 程序风格、书写格式、注释格式
三、判断
对 错 错 错 对
对 对 错 错 错
对 对 错 对 对
错 对 对 错 对
错 错 对 错 对
错 错
四、简答题
1. 需要。原因是a. 配置管理系统是组织内部信息交换的中心;b. 软件配置管理将软件生存期各开发阶段末尾的特定点定义为基线,实行变更控制,贯穿整个软件生存周期
2. 软件测试就是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,即输入数据及其预期的输出结果,并利用这些测试用例去运行程序,以发现程序错误的过程。
黑盒与白盒测试都是验证程序正确性的一种办法。黑盒测试不考虑程序内部结构,只对程序的外部接口进行测试;白盒测试考虑程序内部结构,按照程序内部的逻辑测试
3. 这段文字放在《用户手册》中比较合适。这段文字应该放在“出错处理和恢复”部分。
4. 功能配置审核—验证配置项的实际功效是与其软件需求一致的。物理配置审核—确定配置项符合预期的物理特性,即特定的媒体形式。
5. 1. 人的因素。2. 软件需求。3. 开发各个环节的衔接。4. 测试的局限性。5. 质量管理不够重视。6. 软件开发的非工程化和开发人员的传统习惯。7. 开发没有规范,标准。8. 技术上解决软件质量问题的局限性。
6. 1. 用户要求定义。2. 技术方法的应用。3. 提高软件开发的工程能力。4. 软件的复用。5. 发挥每个开发者的能力。6. 组织外部力量协作的方法。7. 排除无效劳动。8. 提高计划和管理质量能力。
7. 注释从其整体观感和作用上可以分为两种:高级注释:说明程序功能并描述程序各组成部分相互关系;低级注释:逐行解释程序指令如何工作。