软件工程导论答案-张海潘(第五版)
- 格式:doc
- 大小:492.50 KB
- 文档页数:10
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
第一章1-1 什么是软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3 什么是软件工程是指导计算机软件开发和维护的一门工程学科。
1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-6 什么是软件过程它与软件工程方法学有何关系z软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-7什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。
软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。
适用中小型项目。
快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。
《软件工程导论》课后习题答案第三章需求分析习题答案1.需求分析的描述工具有哪些?有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier 图、IPO图和需求描述语言等。
2.需求分析的基本任务是什么?准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。
3.怎样建立目标系统的逻辑模型?要经过哪些步骤?建立目标系统的逻辑模型的过程也就是数据流图的分解过程。
它的导出过程如图:10.某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。
房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。
(1) 如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。
在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。
(2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。
(3) 如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
(4) 住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号的单位面积及房租等信息。
房产科可以要求系统打印住房情况的统计表,或更改某类房屋的居住条件、单位面积和房租等。
用数据流图描绘该系统的功能需求;在数据字典中给出主要的数据流、文件和加工说明。
第四章总体设计习题答案9. 比较层次方框图与结构图是的异同?(1) 层次方框图描绘数据的层次结构, 结构图描绘的是软件结构。
第一章1-1 什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-6 什么是软件过程?它与软件工程方法学有何关系?z软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-7什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。
软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。
适用中小型项目。
快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。
《软件工程导论》课后习题答案第一章软件工程概论1-11.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.软件危机有那些典型表现?(1) 对软件开发成本和进度的估计常常很不准确。
(2) 用户对“已完成的”软件系统不满意的现象经常发生。
(3) 软件产品的质量往往靠不住。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
(6) 软件成本在计算机系统总成本中所占的比例逐年上升。
(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
3.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
4.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
第一章1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-2 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-3 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1.传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2.面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-4 软件生命周期划分成哪些阶段●软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。
1.软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析2.开发时期:总体设计、详细设计、编码和单元测试、综合测试。
3.维护时期:主要任务是使软件持久地满足用户的需要。
1-5 什么是软件过程?它与软件工程方法学有何关系?●软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤●软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-6 传统“瀑布模型”的主要缺陷是什么?试说明改进的方法。
传统的瀑布模型过于理想化了。
增加“反馈环”第二章●可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
●可行性研究的任务:1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统实现方案4.研究每种实现方案的可行性:●技术上的可行性——使用现有的技术能实现这个系统吗?●经济上的可行性——这个系统的经济效益能超过它的开发成本吗?(投资与效益)●操作可行性——系统的操作方式在这个用户组织内行得通吗?●社会、政策允许的可行性5.为每个可行的解决方案制定一个粗略的实现进度6.对以后的行动方针提出建议方法:1.系统流程图2.数据流图:(DFD)符号3.数据字典:数据流图与数据字典共同构成系统的逻辑模型。
4.成本/效益分析5.数据流图–定货系统P32–习题2第2题P43(银行储蓄系统)–习题2第3题P43(机票预订系统)–习题2第4题P43(医院监护系统)数据流6.数据定义1、顺序+2、选择〔| 〕3、重复下限{}上限–定货系统P39–习题2第5题P442-1 应该从哪些方面研究目标系统的可行性?●技术上的可行性——使用现有的技术能实现这个系统吗?●经济上的可行性——这个系统的经济效益能超过它的开发成本吗?(投资与效益)●操作可行性——系统的操作方式在这个用户组织内行得通吗?●社会、政策允许的可行性2-2 为方便储户,某银行拟开发计算机储蓄系统。
储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。
请画出此系统的数据流图。
为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。
2-3 北京某高校可用的电话号码由以下几类:校内电话号码由4位数字组成,第一位数字不是零;校外电话又分为本市电话和外地电话两类,拨校外电话先拨0,若是本地电话再接着拨8位数字(固话第一位不是0)或11位数字(移动电话第一位为1);若是外地电话,则拨3位区码再拨8位电话号码(固话第一位不是0),或拨0再拨11位数字(移动电话第一位为1)。
请用数据定义的方法,定义上述电话号码。
电话号码=[校内号码|校外号码]校内号码=非0数字+3{数字}3校外号码=0+[本地号码|外地号码] 本地号码=[固话号码|手机号码] 固话号码=非0数字+7{数字}7 手机号码=1+10{数字}10外地号码= [外地固话号码|外地手机号码] 外地固话号码=3{数字}3+固话号码 外地手机号码=0+手机号码 非0数字=[1|2|3|4|5|6|7|8|9]第三章● 需求分析的准则:1、必须并描述的信息域,根据这条准则应该建立数据模型。
2、必须定义软件应完成的功能,这条准则要求建立功能模型。
3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。
4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。
● 需求分析的任务(P46)1、确定对系统的综合要求;2、分析系统的数据要求;3、导出系统的逻辑模型;4、修正系统开发计划。
● 方法– 实体-联系图● 教学管理系统P54● 习题3第3题P63 (银行储蓄系统)数额类型 到期日 利率 名称地址姓名住址电话号码储户储蓄所身份证号码 电话号码存取款密码NM 课程号课名 学时 学分学号姓名 性别 系 年级教工号姓名 性别 职称 职务●习题3第5题P63 (医院监护系统)–数据流图–状态转换图●电话系统P57●习题3第6题P63 (复印机)第五章●总体设计的任务划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等设计软件的结构。
也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。
●总体设计过程两个阶段1.系统设计阶段,确定系统的具体实现方案;2.结构设计阶段,确定软件结构。
●总体设计过程9个步骤1设想供选择的方案2选取合理的方案3推荐最佳方案4功能分解5设计软件结构6 设计数据库7制定测试计划8书写文档9审查和审核●低耦合(5种类型)1. 数据耦合:数据传递2.控制耦合:控制信息传递3.特征耦合:传过多的信息给被调用模块4.公共环境耦合:因全局变量,共享通信区5.内容耦合:诸如一个模块访问另一个模块内部●高内聚(7种类型)功能内聚 10分顺序内聚9分通信内聚7分过程内聚5分时间内聚 3分逻辑内聚1分偶然内聚0分●面向数据流的设计方法P95–变换流●患者监护系统(参见习题2第4题)–事务流●用户命令交互子系统(DFD)格式化配第六章● 结构程序设计概念P108– 如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,而且每个代码块只有一个入口和一个出口,则称这个程序是结构化的● 结构程序设计3种概念类型P1091、 经典的结构程序设计只允许使用顺序、IF-THEN-ELSE 型分支和DO-WHILE 型循环着三种基本控制结构2、 扩展的结构程序设计 还允许使用DO-CASE 型多分支结构和DO-UNTIL 型循环结构3、 修正的结构程序设计 还允许使用EXIT (或BREAK )结构 方法1、人机界面设计2、过程设计的工具P1143、面向数据结构的设计方法——Jackson 方法4、程序复杂程度的定量度量P127 – McCabe 方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。
可用三种方法之一来计算复杂性:1. 流图中区域的数量对应于环形的复杂度 ;2. 流图G 的环形复杂度V (G )=E -N+2,其中,E 是流图中边的数量,N 是流图中节点的数量 ;3. 流图G 的环形复杂度V (G )=P+1,其中, P 是流图中判定节点的数量– Halstead 方法 ● 程序流程图P114– 习题六第3题P131STARTIF p THENWHILE q DO F END DO ELSEBLOCKG NEND BLOCK END IF STOPQFG NP TF● PAD (问题分析)图 ● 判定表P117– 行李托运费计算P118 – 讲课课时津贴计算● 判定树P118– 行李托运费计算P119 – 讲课课时津贴计算● 过程设计语言(PDLJackson 设计方法的步骤(5步)P122– 实例P123– 高考后将考生的基本情况文件(简称考生基本情况文件)和考生高考成绩文件(简称考分文件)合并成一个新文件(简称考生新文件)。
考生基本情况文件和考分文件都是由考生记录组成的。
为简便起见,考生基本情况文件中的考生记录的内容包括:准考证号、姓名、通讯地址。
考分文件中的考生记录的内容包括:准考证号和各门考分。
合并后的考生新文件自然也是由考生记录组成,内容包括:准考证号、姓名、通讯地址和各门考分。
1 2 3 4 5 教授 TF F F 副教授 F T F F 讲师 F F T F 助教 F F F T 讲座 T F F F F 50 × 30 × 25 × 20 × 15×操作:(1)停止;(2)打开两个输入文件;(3)建立输出文件。
(4)从输入文件中各读一条记录。
(5)生成一条新记录。
(6)将新记录写入输出文件。
(7)关闭全部文件。
条件:I(1)文件结束。
把操作和条件分配到程序结构图的适当位置 将程序流程图映射为流图P127。