软件工程张海藩课后习题答案.doc





《软件工程张海藩课后习题答案.doc》由会员分享,可在线阅读,更多相关《软件工程张海藩课后习题答案.doc(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程导论课后习题答案第一章软件工程概论1什么是软件危机?软件危机是指在计算机软件开发与维护过程中所遇到一系列严重问题。这些问题表现在以下几个方面:(1)用户对开发出软件很难满意。(2)软件产品质量往往靠不住。(3)一般软件很难维护。(4)软件生产效率很低。(5)软件开发成本越来越大。(6)软件成本及开发进度难以估计。(7)软件技术发展远远满足不了计算机应用普及及深入需要。2为什么会产生软件危机?(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作必要性。(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软
2、件开发过程没有统一、公认方法论与规范指导,造成软件维护困难。(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术发展已经远远不能适应社会需求。3怎样克服软件危机?(1)充分吸收与借鉴人类长期以来从事各种工程项目中积累行之有效有效原理、概念、技术及方法,特别是吸取几十年来人类从事计算机硬件研究与开发经验教训。在开发软件过程中努力作到良好组织,严格管理,相互友好协作。(2)推广在实践中总结出来开发软件成功技术与方法,并研究更好、更有效技术与方法,尽快克服在计算机系统早期发展阶段形成一些错误概念与作
3、法。(3)根据不同应用领域,开发更好软件工具并使用这些工具。将软件开发各个阶段使用软件工具集合成一个整体,形成一个很好软件开发支环环境。总之为了解决软件危机,既要有技术措施(方法与工具),又要有必要组织管理措施。4.构成软件项目最终产品:应用程序、系统程序、面向用户文档资料与面向开发者文档资料。5什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰全过程。6软件生存周期为什么划分成阶段?(1)任何一个阶段具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作困难程度。(2)可以降低每个阶段任务复杂程度,简化不同阶段联系,有利于工程组织管理,也便于采用良好技
4、术方法。(3)使软件开发全过程以一种有条不紊方式进行,保证软件质量,特别是提高了软件可维护性。7应该怎样来划分阶段?(1)每一个阶段任务尽可能独立;(2)同一阶段内任务性质尽可能相同;(3)每一个阶段任务开始与结束有严格标准。8软件开发模型有几种?它们开发方法有可特点?软件开发模型有瀑布型、渐增型与变换型。瀑布型开发方法是按照软件生存周期划分依次实施,每一个阶段有明确规定任务。它特点:(1)各个阶段顺序性与依赖性;(2)划分逻辑设计及物理设计,尽可能推迟程序物理实现;(3)每个阶段必须完成规定文档,对其中问题通过复审及早发现,及早解决。渐增型开发方法及特点:(1)从部分需求出发,先建立一个不完
5、全系统,通过测试运行该系统取得经验与信息反馈,加深对软件需求理解,进一步使系统扩充与完善。如此反复,直至软件人员与用户对所设计完成软件系统满意为止。(2)在渐增型开发下软件是随软件开发过程而逐渐形成。(3)渐增型开发方法适合于知识型软件开发,设计系统时对用户需求认识开始不是很清楚,需要在开发过程中不断认识、不断获得新知识去丰富与完善系统。多数研究性质试验软件,一般采用此方法。变换型开发方法及特点:(1)从软件需求形式化规格说明出发,经过一系列程序变换,得到最终程序系统。(2)该方法必须有严格数学理论与形式化技术支持。9.什么是软件工程?软件工程是指导计算机软件开发与维护工程学科。(1)它采用工
6、程概念、原理、技术与方法来开发与维护软件;(2)它将管理技术及当前经过时间考验而证明是正确技术方法结合起来;(3)它强调使用生存周期方法学与结构分析与结构技术;(4)经过人们长期努力与探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量努力,逐渐形成了软件工程学这一新学科。10什么是软件工程环境:方法及工具结合,加上配套软、硬件支持称为软件工程环境。它能支持开发者按照软件工程方法,全面完成生存周期中各项任务。第二章可行性研究习题答案1.问题定义任务与主要工作?问题定义任务:将用户提出要求具体化、定量化;确定研制系统范围,明确研制边界。问题定义阶段工作:(1)通过调查研究,了解系统
7、需求;(2)确定系统功能需求、性能需求、可靠性需求、安全及保密性、资源、开发费用及开发进度等需求;(3)问题定义阶段产品-系统目标及范围说明书。2.可行性研究目?确定在问题定义中所提出问题是否值得去解,在限制条件下,问题能否解决。3可行性研究任务?(1)进一步分析与澄清问题定义,在澄清问题基础上,导出系统逻辑模型;(2)从系统逻辑模型中,选择问题若干种主要解法,研究每一种解法可行性,为以后行动提出建议;(3)如果问题没有可行解,建议停止系统开发;如果问题有可行解,应该推荐一个较好解决方案,并为工程制定一个初步计划。4可行性研究包括哪几方面内容?(1)技术可行性:现有技术能否实现本系统,现有技术
8、人员能否胜任,开发系统资源能否满足;(2)经济可行性:经济效益是否超出开发成本;(3)操作可行性:系统操作在用户内部行得通吗?(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。5可行性研究步骤?(1)复查系统规模与目标;(2)研究目前正在使用系统,总结现有系统优劣,提出新系统雏形;(3)导出新系统高层逻辑模型;(4)推荐建议方案;(5)推荐行动方针;(6)书写计划任务书(可行性报告);(7)提交审查。6.可行性研究报告主要内容?可行性分析结果是可行性研究报告,内容包括:(1)系统概述:说明开发系统名称,提出单位与开发单位。(2)可行性研究前提:系统目标;要求;约束与
9、限制;可行性研究基本准则等。(3)对现有系统分析:处理流程,图示说明现有系统处理流程与数据流程;现有系统存在问题。(4)系统需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。(5)建议系统:系统目标;处理流程;系统结构,功能,性能;系统技术可行性;投资与效益分析;操作可行性;法律可行性。(6)其它可选方案:及国内外同类型方案比较;提出一两个可行性方案供论证与探讨。(7)制定下一阶段预算。(8)结论性意见:由用户方、设计方与投资方共同签署意见。第三章需求分析习题答案1.需求分析描述工具有哪些?有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IP
10、O图与需求描述语言等。2.需求分析基本任务是什么?准确定义未来系统目标,确定为了满足用户需要系统必须做什么。3.怎样建立目标系统逻辑模型?要经过哪些步骤?建立目标系统逻辑模型过程也就是数据流图分解过程。它导出过程如图:4.什么是结构化分析?它结构化表达在哪里?结构化分析:使用数据流程图、数据字典、结构化英语、判定表与判定树等工具,来建立一种新、称为结构化说明书目标文档-需求规格说明书。结构化表达在将软件系统抽象为一系列逻辑加工单元,各单元之间以数据流发生关联。5.软件需求规格说明书由哪些部分组成?组成包括:(1)引言:编写目、背景说明、术语定义及参考资料等。(2)概述主要功能、约束条件或特殊需
11、求。(3)数据流图及数据字典。(4)用户接口、硬件接口及软件接口。(5)性能需求、属性等。(6)其它需求,如数据库、操作及故障处理等。6.为什么数据流图要分层?画分层DFD要遵循哪些原则?分层目:便于逐步细化、结构清晰。画分层DFD要遵循哪些原则:(1)父图及子图之间数据要平衡。(2)分解深度与层次达到使加工足够简单、易于理解基本加工为止。(3)区分局部文件与局部外部项(局限于数据流中某一层或某几层文件与外部项)。(4)不要把控制流作为数据流。(5)忽略琐碎枝节。(6)每个数据流要有一个合适名字,尽量使用现实系统中有具体意义名字。7.系统流程图及数据流程图有什么区别?系统流程图描述系统物理模型
12、工具,数据流程图描述系统逻辑模型工具。系统流程图从系统功能角度抽象描述系统各个部分及其相互之间信息流动情况。数据流程图从数据传送与加工角度抽象描述信息在系统中流动与数据处理工作状况。8.数据字典包括哪些内容?它作用是什么?数据字典是描述数据流图中数据信息集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工与外部项等给以定义与说明;它主要由数据流描述、加工描述与文件描述三部分组成。对用户来讲,数据字典为他们提供了数据明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立系统逻辑模型。9.描述加工逻辑工具有哪些?有决策树(又称判定树)、决策表(又称判断表)与结构
13、化语言等。10.某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房与查询统计等功能。房产科将用户申请表输入系统后,系统首先检查申请表合法性,对不合法申请表,系统拒绝接收;对合法申请表根据类型分别进行处理。(1)如果是分房申请,则根据申请者情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列适当位置。在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面符合该等级房条件申请者;从空房文件中删掉这个房号信息,并从分房队列中删掉该申请单,再把此房号信息与住户信息一起写到住房文件中,
14、输出住房分配单给住户,同时计算房租,并将算出房租写到房租文件中。(2)如果是退房申请,则从住房文件与房租文件中删除有关信息,再把此房号信息写到空房文件中。(3)如果是调房申请,则根据申请者情况确定其住房等级,然后在空房文件中查找属于该等级空房,退掉原住房,再进行及分房类似处理。(4)住户可以向系统查询目前分房阀值分数,居住某类房屋条件,某房号单位面积及房租等信息。房产科可以要求系统打印住房情况统计表,或更改某类房屋居住条件、单位面积与房租等。用数据流图描绘该系统功能需求;在数据字典中给出主要数据流、文件与加工说明。参考第四章4.5应用举例教案之二分析。第四章总体设计习题答案1.系统设计包括哪两
15、个阶段?系统设计包括总体设计及详细设计两个阶段。2.总体设计主要任务是什么?总体设计主要任务是完成软件结构设计,确定系统模块及其模块之间关系。3.什么是模块?模块具有哪几个特征?总体设计主要考虑什么特征?模块是数据说明、可执行语句等程序对象集合,可以单独命名且可通过名字来访问。模块具有输入与输出(参数传递)、功能、内部数据结构(局部变量)与程序代码四个特性。概要设计主要考虑输入、输出(参数传递)与功能两个特性。4.什么是模块化?模块设计准则?模块化是按规定原则将一个大型软件划分为一个个较小、相对独立但又相关模块。模块设计准则:(1)改进软件结构,提高模块独立性:在对初步模块进行合并、分解与移动
16、分析、精化过程中力求提高模块内聚,降低藕合。(2)模块大小要适中:大约50行语句代码,过大模块应分解以提高理解性与可维护性;过小模块,合并到上级模块中。(3)软件结构图深度、宽度、扇入与扇出要适当。一般模块调用个数不要超过5个。(4)尽量降低模块接口复杂程度;(5)设计单入口、单出口模块。(6)模块作用域应在控制域之内。5.变换型数据流由哪几部分组成?变换型结构由三部分组成:传入路径、变换(加工)中心与传出路径。6.变换分析设计步骤?(1)区分传入、传出与变换中心三部分,划分DFD图分界线;(2)完成第一级分解:建立初始SC图框架;(3)完成第二级分解:分解SC图各个分支;(4)对初始结构图按
17、照设计准则进行精化及改进。7.事务型数据流由哪几部分组成?事务型结构由至少一条接受路径、一个事务中心及若干条动作路径组成。8.事务分析设计步骤?(1)在DFD图中确定事务中心、接收部分(包含全部接收路径)与发送部分(包含全部动作路径);(2)画出SC图框架,把DFD图三部分分?quot;映射为事务控制模块,接收模块与动作发送模块.一般得到SC图顶层与第一层(如果第一层简单可以并入顶层);(3)分解与细化接收分支与动作分支,完成初始SC图;(4)对初始结构图按照设计准则进行精化及改进。9.比较层次方框图及结构图是异同?(1)层次方框图描绘数据层次结构,结构图描绘是软件结构。(2)二者都采用多层次
18、矩形框树形结构。层次方框图顶层矩形框代表完整数据结构,下面各层矩形框依次代表上个框数据子集;结构图是在层次图每一个方框内注明模块名字或主要功能,方框之间直线表示模块调用关系,用带注解箭头表示模块调用过程中传递信息。10.欲开发一个银行活期存取款业务处理系统:储户将填好存/取款单与存折交给银行工作人员,然后由系统作以下处理;(1)业务分类处理:系统首先根据储户所填存/取款单,确定本次业务性质,并将存/取款单与存折交下一步处理;(2)存款处理:系统将存款单上存款金额分别记录在存折与帐目文件中,并将现金存入现金库;最后将存折还给储户;(3)取款处理:系统将取款单上取款金额分别记录在存折与帐目文件中,
19、并从现金库提取现金;最后将现金与存折还给储户。绘制该系统数据流图与软件结构图。顶层一层二层软件结构图第五章习题参考答案一.回答问题1.详细设计目?为软件结构图(SC图或HC图)中每一个模块确定采用算法与块内数据结构,用某种选定表达工具给出清晰描述.2.详细设计主要任务?编写软件“详细设计说明书”.软件人员要完成工作:(1)为每一个模块确定采用算法,选择某种适当工具表达算法过程,写出模块详细过程描述.(2)确定每一模块使用数据结构.(3)确定模块结构细节,包括对系统外部接口与用户界面,对系统内部其它模块接口,以及关于模块输入数据、输出数据及局部数据全部细节.(4)为每一个模块设计出一组测试用例,
20、以便在编码阶段对模块代码(即程序)进行预定测试.3.结构化程序设计基本原则?在详细设计中所有模块都使用单入口、单出口顺序、选择、循环三种基本控制结构.4.比较面向数据流与面向数据结构两类设计方法异同?相同点:(1)遵守结构程序设计“由顶向下”逐步细化原则,并以其为共同基础;(2)均服从“程序结构必须适应问题结构”基本原则,各自拥有从问题结构(包括数据结构)导出程序结构一组映射规则。不同点:(1)面向数据流设计以数据流图为基础,在分析阶段用DFD表示软件逻辑模型,在设计阶段按数据流类型,将数据流图转换为软件结构。面向数据结构设计以数据结构为基础,从问题数据结构出发导出它程序结构。(2)面向数据流
21、设计最终目标是软件最终SC图,面向数据结构设计最终目标是程序过程性描述。5.比较Jackson方法与LCP方法异同?Jackson及LCP设计方法都是以数据结构为出发点,以程序过程描述为最终目标,设计步骤基本相似。它们主要差别是:(1)使用不同表达工具,其中LCP方法中表达工具Warnier图比Jackson设计方法中表达工具Jackson图有更大通用性;(2)Jackson方法步骤与指导原则有一定灵活性,而LCP设计方法则更加严密。6.详细设计描述工具应具备什么功能?无论哪类描述工具不仅要具有描述设计过程,如控制流程、处理功能、数据组织及其它方面细节能力,而且在编码阶段能够直接将它翻译为用程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 张海藩 课后 习题 答案

限制150内