软件工程课后作业:软件工程第4版课后答案

发布时间:2020-05-26 01:34:25   来源:文档文库   
字号:

  第一章

  一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。 软件危机的典型表现

  (1) 对软件开发成本和进度的估计常常很不准确 (2) 用户对已完成的软件不满意的现象时有发生 (3) 软件产品的质量往往是靠不住的 (4) 软件常常是不可维护的。

  (5) 软件通常没有适当的文档资料。

  (6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。 软件危机出现的原因

  (1) 来自软件自身的特点是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当忽视需求分析; 认为软件开发等于程序编写; 轻视软件维护。 (3) 供求矛盾将是一个永恒的主题面对日益增长的软件需求,人们显得力不从心。 四、简述结构化范型和面向对象范型的要点,并分析他们的优缺点。 传统方法学也称为生命周期方法学或结构化范型。

  优点把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。

  缺点当软件规模庞大时,或者对软件的需求是模糊的或会承受时 间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 面向对象方法学

  优点降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。

  七、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的使用范围。

  软件生命周期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。 瀑布模型

  优点它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。虽然有不少缺陷但比在软件开发中随意的状态要好得多。 缺点

  (1) 实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。

  (2) 经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不欢迎具有二义性问题存在的。

  (3) 客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾 难性的。

  快速原型模型

  优点使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。

  缺点产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。

  增量模型 优点

  (1) 人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。

  (2) 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。 缺点

  (1) 至始至终开发者和客户纠缠在一起,直到完全版本出来。

  (2) 适合于软件需求不明确、设计方案有一定风险的软件项目。该模型具有一定的市场。 螺旋模型

  优点对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。 缺点

  (1) 需要相当的风险分析评估的专门技术,且成功依赖于这种技术。

  (2) 很明显一个大的没有被发现的风险问题,将会导致问题的发生,可能导致演化的方法失去控制。

  (3) 这种模型相对比较新,应用不广泛,其功效需要进一步的验证。 该模型适合于大型软件的开发

  九、试讨论Rational 统一过程的优缺点。

  优点提高了团队生产力,在迭代的开发过程、需求管理、基于组建的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面、针对所有关键的开发活动为每个开发成员提供了必要的准则、模版和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。 十.Rational 统一过程主要适用于何种项目? 大型的需求不断变化的复杂软件系统项目 第二章

   在软件开发的早期阶段为什么要进行可行性研究? 应该从哪些方面研究目标系统的可行性? 答(1)开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度,如果做不到这些,那么花费在这些工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。可行性研究的实质是要进行一次大大压缩简化了的系统分析和设计过程,就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。(2)一般说来,至少应该从以下三个方面研究每种解法的可行性 a. 技术可行性。b. 经济可行性。 c. 操作可行性。 第三章

  一、为什么要进行需求分析?通常对软件系统有哪些要求?

  答1) 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。

  2) 确定对系统的综合要求1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出错处理需求;5、接口需求;6、约束;7、逆向需求;8、将来可以提出的要求,分析系统的数据要求。

  三、1 银行计算机储蓄系统的工作过程大致如下储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址、身份证号码等存款信息,并打印出存款存单给储户;如果是取款且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并打印出利息清单给储户。 用数据流图描绘本系统的功能,并用E-R 图描绘本系统的数据对象 数据流图

  E-R 图

  四、为方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进入该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。

  用数据流图描绘本系统的功能,并用E-R 图描绘本系统的数据对象 数据流图

  E-R 图

  五、目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危病人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护

  系统。

  用数据流图描绘本系统的功能,并用E-R 图描绘本系统的数据对象,画出本系统的IPO 图。

  数据流图

  E-R 图

  IPO 图

  第四章

  一,举例说明形式化说明技术和欠形式化方法的优缺点。

  二、在什么情况下应该使用形式化说明技术?使用形式化说明技术应遵守哪些规则?

  答 在用非形式化的方式描述时,存在矛盾,二义性,含糊性,不完整性级抽象层次混乱等问题时用形式化说明技术。

  应用形式化方法的准则

  A ,应该选用适当的表示方法;B ,应该形式化,但不要过分形式化; C ,应该估算成本; D ,应该有形式化的方法顾问随时提供咨询; E ,不应该放弃传统的开发方式;F ,应该建立详尽的文档; G ,不应该放弃质量标准;H ,不应该盲目依赖形式化方法; I ,应该测试;J ,应该重用。

  4,考虑下述的自动化图书馆流通系统每本书都有一个条形码,每个人都有一个带条形码的卡片。但一个借阅人想借一本书时,图书管理员扫描书上的条形码和借阅人卡片的条形码,然后在计算机终端上输入C ;当归还一本书时,图书管理员将再次扫描,并输入R 。图书管理员可以把一些书加到(+)图书集合中,也可以删除(—)它们。借阅人可以再终端上查找到某个作者所有的书(输入“A=”和作者名字),或具有指定标题的所有书籍(输入“T=”和标题),或属于特定主题范围内的所有图书(输入“S=”加主题范围)。最后,如果借阅人想借的书已被别人借走,图书管理员将给这本书设置一个预约,以便书归还时把书留给预约的借阅人(输入“H=”加书号)。 试用有穷状态机说明上述的图书流通系统

  答图书馆流通系统的有穷状态机描述如下

  状态机J {书在图书馆S1,书被借出S2,书被预约S3}

  输入集K {书上条形码,借阅卡条形码,终端输入各种命令} 转换函数T 如图所示

  初始态S {书在图书馆S1,书被借出S2} 终态集F {书被借出S2,书被预约S3}

  第五章

  4 美国某大学有 200

  名教师,校方与教师工会刚刚签订一项协议。按照协议,所有年工资超过$26000(含$26000 )的教师工资将保持不变,年工资少于$26000 的教师将增加工资,所增加工资数额按下述方法计算给每位教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,增加后的年工资总额不能多于$26000。 教师工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。需要写一个程序计算并印出每名教师的原工资和调整后的新工资。 要求

  (1)画出此系统的数据流图;

  (2)写出需求说明; (3)设计上述的工资调整程序(要求用 HIPO 图描绘设计结果) ,设计时分别采用两种算法,并比较两种算法的优缺点 (a )搜索工资档案数据,找出年工资少于$26000 的人,计算新工资,校核是否超过$26000,存储新工资,印出新旧工资对照表;

  (b )把工资档案数据按工资从最低到最高的次序排序,当工资数额超过$26000 时即停止排序,计算新工资,校核是否超过限额,存储新工资,印出结果。 (4)你所画出的数据流图适应用那种算法?

  解

  (1)数据流图

  (2)需求说明

   功能需求可以输入调资的标准,输入教师档案,经调资给出新的教师档案,需要存储档案

  2.性能需求软件的响应时间应小于0.5s ,更新处理要快

  3.灵活需求当需求发生某些变化时,该软件应该能够适应这些变化 4.故障处理要求出现错误时,应给予警告或提示 (3) A

  B

  a 比较耗时,因为它要检索所有的档案,b 从速度上看比较快,但是b 需要排序算法,比较复杂,a 对于设计来讲比较简。

  (4)画出的数据流图比较适合A 的算法

  第六章

  3、画出下列伪代码程序的流程图和盒图 START IF p THEN WHILE q DO f END DO ELSE

  BLOCK g n END BLOCK END IF STO

  解程序流程图盒图

  5、研究下面的伪码程序 LOOP:Set I to(START+FINISH)/2

  IF TABLE(I)=ITME goto FOUND

  IF TABLE(I)TME Set FINSH to (I-1) IF (FINSH-START)>1 goto LOOP

  IF TABLE(START)=ITEM goto FOUND IF TABLE(FINSH)=ITEM goto FOUND Set FLAG to 0 Goto DONE

  FOUND Set FLAG to 1 DONE EXIT 要求 (1)画出流程图。

  (2)程序是结构化的吗?说明理由。

  (3)若此程序是非结构化,设计一个等价的结构化程序并画出流程图。(4)此程序的功能是什么?它完成预定功能有什么隐含的前提条件吗? 解

  (1)该程序流程图下一页

  (2)该程序不是结构化的,结构化的程序只有一个入口和一个出口,而该程序的流程途中有两个出口。

  (3)等价的结构化程序的流程图如下

  (4)此程序有二分查找的功能,它完成预定功能的隐含前提条件是现有序列为从小到大顺序排好的有序序列。

  第九章

  一、什么是面向对象方法学,它有哪些优点? 答面向对象方法学是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类解决问题的方法与过程,使描述问题的问题空间与实现揭发的解空间在结构上尽可能一致的方法学科。

  优点1、与人类的习惯的思维方法一致;2、稳定性好;3、可重用性好; 4、适合用于大型软件产品;5、所开发的软件有较好的可维护性; 6、面向对象的软件比较容易修改;7、面向对象软件比较容易理解; 8、易于测试和调式。

  二、什么是对象,它与传统的数据有何异同?

  答对象是对问题域中某个实体的抽象。相对于传统数据的静态

  被处理,对象既有静态的属性,又有动态的行为,是进行处理的主体。

本文来源:https://www.2haoxitong.net/k/doc/fa0a5208bc23482fb4daa58da0116c175e0e1e75.html

《软件工程课后作业:软件工程第4版课后答案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式