软件工程思考题答案Word文件下载.docx
《软件工程思考题答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件工程思考题答案Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
经济效益能否超过开发成本?
⑵技术可行性:
现有技术能否实现?
技术风险的各种因素?
⑶操作可行性:
用户的接受程度如何?
⑷法律可行性:
是否合法,是否侵犯他人的利益。
6.甘特图有哪些优点和缺点?
甘特图:
是一种对各项活动进行计划调度与控制的图表。
横向表示时间,纵向列出任务。
优点:
它具有简单、醒目和便于编制等特点。
能够动态反映软件项目开发进展的情况。
缺点:
难以反映多个任务之间存在的复杂的逻辑关系。
7.什么是网络计划法的关键事件与关键路径?
关键事件:
最早完成时间与最迟完成时间相等的事件。
关键路径:
关键事件联结的各个活动所组成的路线。
第三章结构化需求分析
1.为什么说需求获取难?
1)用户需求具有动态性(不稳定性)。
2)用户需求具有模糊性(不准确性)。
3)对需求达成一致的艰难性。
4)管理体制、机构设置处在变革中。
5)软件书籍没有将需求分析讲清楚。
2.需求分析的重点是哪些?
通过对业务流程和数据流程的分析,在以下四个方面与客户要达成完全一致目标。
1业务模型、
2功能模型、
3性能模型、
4接口模型。
3.需求分析的9大任务是什么?
1画出系统的组织结构图、列出各部门的岗位角色(机构模型)。
2画出系统业务操作流程图。
3画出系统的数据流图,掌握业务规则,获得初步数据模型。
4列出系统的功能点,即功能模型。
5列出系统的性能点,即性能模型。
6列出系统的接口,即接口模型。
7确定系统的运行环境,即环境模型。
8确定系统的界面约定,即界面模型。
9对开发工期、费用、开发进度、系统风险等分析与评估。
4.简述需求分析的过程?
需求分析阶段的工作有以下四个方面:
1)问题识别
2)分析与综合
3)编制需求分析阶段文档
4)需求分析评审
5.获取需求的常用方法有哪些?
1访谈/个别访问:
正式的和非正式的访谈
2问卷调查/书面调查:
发电子邮件、问卷调查即把需要调查的内容制成表格交给用户填写。
该方法对需要调查大量人员的意见时,十分有效。
3情景分析/电话和电视会议:
对目标系统解决某个具体问题的方法和结果,给出可能的情景描述,以获知用户的具体需求。
4实地考察/收集资料:
开调查会参加业务实践
5构造原型
6.需求分析的原则是什么?
1解决逻辑问题:
需求分析是对问题的识别和说明,要回答“做什么”,而不是“怎么做”。
2以运行环境为基础:
需求分析工作应以具体的运行环境为基础,实事求是。
3用户参与的原则:
需求分析工作是系统分析人员同用户不断交互的过程。
4构造高质量的需求规格说明:
需求规格说明是需求分析工作重要的完成标志。
7.需求分析的基本要求是什么?
1理解问题的数据域和功能域
2自顶向下、逐层分解
3给出系统的逻辑视图和物理视图
8.常见的需求分析方法有哪些?
1面向数据流的分析方法
2面向功能的分析方法
3面向数据的Jackson方法
4面向对象的分析方法
9.需求分析方法有哪些共性?
1.支持数据域的分析机制
2.功能表示方法
3.接口的定义
4.问题的分解及抽象化
5.逻辑视图和物理视图
6.系统抽象模型
第四章结构化软件设计
思考题4.1
1.软件设计的具体任务包括哪些内容?
(1)制定规范
(2)结构设计
(3)处理方式设计
(4)数据结构及数据库设计
(5)可靠性设计(质量设计)
(6)编写软件设计文档
(7)设计审查和复审
(8)详细设计
2.什么是数据的保护性设计?
1)防卫性设计:
在软件设计中就插入自动检错,报错和纠错的功能
2)一致性设计:
在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏
3)冗余性设计
3.软件设计的目标是什么?
软件设计的最终目标:
取得最佳方案
1节省开发费用、
2降低资源消耗、
3缩短开发时间、
4能够赢得较高的生产效率、
5较高的可靠性、
6可维护性的方案。
4.模块具有哪些基本属性?
“模块”,又称“组件”。
一般有四个基本属性
1)功能:
描述该模块做什么?
2)逻辑:
描述模块内部怎么做?
3)状态:
模块使用时的环境和条件。
4)接口:
指模块的输入与输出。
5.什么是耦合?
什么是内聚?
如何增强模块的独立性?
模块独立性由模块间的耦合与内聚度量。
1)耦合:
各模块之间的互相连接的紧密程度。
模块之间的连接越紧密,联系越多,耦合性就越高,而其独立性就越弱。
2)内聚:
模块内各功能元素彼此结合的紧密程度。
一个模块内部各个元素之间的联系越紧密,则它的内聚性就越高,相对地,它与其它模块之间的耦合性就会减低,而模块独立性就越强。
3)增强模块独立性的方法是尽量做到高内聚、低耦合。
6.模块化的特征有哪些?
1)抽象:
用层次的方式构造和分析复杂系统。
2)逐步求精:
帮助开发人员把精力集中在与当前开发阶段最相关的那些问题上。
3)信息隐蔽:
如果一个模块内包含的信息(过程和数据)不允许外部的模块访问的话,其它模块不能对其访问。
4)局部化:
把一些关系密切的软件元素物理地放得彼此靠近。
7.影响耦合度的因素有哪些?
1连接方式的类型。
2接口的复杂性。
3传送的信息流类型。
4耦合的时间。
8.降低耦合度的方法有哪些?
1对需要了解的内容,隐含的改为明显的,便于理解;
2连接的方式尽量标准化,避免直接引用;
3减少公共区,将公共区划分为若干个逻辑子区;
4输入输出应局限在少量模块,不要分散在全系统;
9.软件结构设计优化的准则是什么?
1)划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性。
模块划分的准则:
“将相关的各部分放在一起,无关的东西不要放在一起。
”
2)模块的大小要适中。
3)模块的接口要简单、清晰、含义明确。
便于理解,易于实现、易于测试和维护。
4)一个模块的作用范围应在其控制范围之内。
且判定所在的模块,应与受其影响的模块在层次上尽量靠近。
5)软件结构的深度、宽度、扇入、扇出应适当。
6)力求设计单入口和单出口的模块。
避免“病态连接”,以防止内容耦合。
7)设计功能可预测模块的划分,应防止功能过分局限。
4.2思考题
1.结构化设计的优点是什么?
1减少设计复杂性。
将大化小,使复杂问题简单化。
2结构独立。
将程序划分成多个相对独立的模块。
3模块功能单一化,可使软件设计获得最大的益处。
4便于软件的修改。
5易于开发和维护。
6加强了代码的可重用性。
2.正交软件体系结构的优点是什么?
1层次结构清晰,便于理解。
2可移植性强,重用粒度大。
3易修改,可维护性强。
3.三层C/S结构的组成
1)表示层:
用户接口部分,担负着用户与应用间的对话功能。
2)功能层:
相当于应用的本体,将具体的业务处理逻辑程序。
3)数据层:
数据库管理系统,负责管理对数据库数据的读/写。
4.三层结构设计的优点是什么?
1允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性。
2允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;
并且这些平台和各个组成部分可以具有良好的可升级性和开放性。
3三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最适合的开发语言。
4允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层。
5.B/S体系结构的不足之处?
1缺乏对动态页面的支持能力,数据库处理能力差。
2系统扩展能力差,安全性难以控制。
3响应速度远低于C/S体系结构。
4数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。
6.C/S、B/S混合结构的特点是什么?
1)B/S与C/S混合结构是一种典型的异构系统。
2)C/S与B/S混合结构的优点:
外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。
企业内部用户的交互性较强,数据查询和修改的响应速度较快。
3)C/S与B/S混合结构的缺点:
企业外部用户修改和维护数据时,速度较慢,较烦琐,数据的动态交互性不强。
7.列出几种主要的菜单类型?
1固定菜单
2活动菜单
3“弹出式”菜单
4“下拉式”菜单
8.活动菜单的优点是什么?
1)不占用显示工作空间,
2)可以根据用户当前所处的操作状态和要求动态出现。
3)需要注意的是不能滥用弹出菜单。
4.3思考题
1.DBMS有哪些基本功能?
1)建立数据库的结构;
2)管理用户的数据库;
3)提供在数据库上的各种操作;
4)提供数据库对外的各种接口;
2.DB、DBMS有何不同?
在人们的交流中,习惯上常常将数据库和DBMS混为一谈,不加区别。
所以要根据不同场合、不同习惯、以及上下文来分析,所讲的“数据库”三个字,到底是指数据库,还是指DBMS。
3.DBMS提供的三种语言是什么?
⑴DDL(数据库定义语言):
如:
CREATE,ALTER,DROP;
⑵DML(数据库操作语言):
SELECT,UPDATE,INSERT,DELETE;
⑶DCL(数据库控制语言):
LOCK、UNLOCK;
4.四个表指的是什么?
1)基本表:
存放原始数据的表。
2)代码表:
存放信息代码数据的表。
3)中间表:
存放统计数据的表。
4)临时表:
存放临时数据的表。
5.基本表的性质有哪些?
为什么?
1原子性。
基本表中的字段是不可再分解的。
2原始性。
基本表中的记录是原始数据(基础数据)的记录。
3演绎性。
由基本表与代码表中的数据,可以派生出所有的输出数据。
4稳定性。
基本表的结构是相对稳定的,表中的记录是需要长期保存的。
6.怎样正确认识“数据冗余”?
1)主键与外键在多表中的重复出现,不属于数据冗余,这个概念必须清楚,事实上有许多人还不清楚。
2)非键字段的重复出现,才是数据冗余,而且是一种低级冗余,即重复性的冗余。
3)高级冗余不是字段的重复出现,而是字段的派生出现。
第五章结构化软件实现
1.代码设计的主要原则是什么?
1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。
2)选用的控制结构只准许有一个入口和一个出口。
3)程序语句组成容易识别的块,每块只有一个入口和一个出口。
4)复杂结构应该用基本控制结构进行组合嵌套来实现。
2.编程规范包括哪些内容?
3.良好的代码设计风格包括哪些内容?
4.代码语句设计应遵从哪些