《软件工程导论课后习题答案9582988241827.docx》由会员分享,可在线阅读,更多相关《软件工程导论课后习题答案9582988241827.docx(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程导论课后习题答案第一章 软件工程概论1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机机”是指计算机机软件的“开发”和“维护”过程中所遇遇到的一系列列“严重问题”。这些问题题决不仅仅是是不能正常运运行的软件才才具有的,实实际上,几乎乎“所有软件”都不同程度度地存在这些些问题。“软件危机”包包含两方面的的问题:(1)如何开发发软件,以满满足对软件日日益增长的需需求;(2)如何维护护数量不断膨膨胀的已有软软件。它们有以下表现现:(1)对软件开开发成本和进进度的估计常常常很不准确确;(2)用户对“已完成的”软件系统不不满意的现象象经常发生;(3)软件产品品的质量往往往靠
2、不住;(4)软件常常常是不可维护护的;(5)软件通常常没有适当的的文档资料;(6)软件成本本在计算机系系统总成本中中所占的比例例逐年上升;(7)软件开发发生产率提高高的速度,远远远跟不上计计算机应用普普及深入的趋趋势。出现软件危机的的原因(1)开发人员员与客户认识识之间的矛盾盾(2)开发人员员能力与开发发目标之间的的矛盾(3)预估与实实际工作量之之间的矛盾(4)客户认识识的提高与软软件维护之间间的矛盾(5)遗产系统统与实施软件件之间的矛盾盾2.假设自己是是一家软件公公司的总工程程师,当把图图1.1给手手下的软件工工程师们观看看,告诉他们们及时发现并并改正错误的的重要性时,有有人不同意这这个观点
3、,认认为要求在错错误进入软件件之前就清楚楚它们是不现现实的,并举举例说:“如果一个故故障是编码错错误造成的,那那么,一个人人怎么能在设设计阶段清除除它呢?”应该怎么反反驳他?答:在软件开发发的不同阶段段进行修改付付出的代价是是很不相同的的,在早期引引入变动,涉涉及的面较少少,因而代价价也比较低;在开发的中中期,软件配配置的许多成成分已经完成成,引入一个个变动要对所所有已完成的的配置成分都都做相应的修修改,不仅工作量大,而而且逻辑上也也更复杂,因因此付出的代代价剧增;在在软件“已经完成”是在引入变变动,当然付付出的代价更更高。一个故故障是代码错错误造成的,有时这种错误是不可避免的,但要修改的成本
4、是很小的,因为这不是整体构架的错误误。3.什么是软件件工程?它有有哪些本质特特征?怎么用用软件工程消消除软件危机机?软件工程是知道道计算机软件件开发和维护护的一门工程程学科。采用用工程的概念念、原理、技技术和方法来来开发与维护护软件,把经经过时间考验验而证明正确确的管理技术术和当前能够够得到的最好好技术方法结结合起来,以以经济地开发发出高质量的的软件并有效效地维护它,这这就是软件工工程。本质特征:(1) 软件工程关注于于大型软件的的构造(2) 软件工程的中心心课题是控制制复杂性(3) 软件经常变化(4) 开发软件的效率率非常重要(5) 和谐地合作是开开发软件的关关键(6) 软件必须有效支支持它
5、的用户户(7) 在软件工程领域域通常由一种种文化背景的的人替代具有有另一种文化化背景的人创创造产品消除软件危机的的原理:(1) 用分阶段的生命命周期计划严严格管理(2) 坚持进行阶段评评审(3) 实行严格的产品品控制(4) 采用现代程序设设计技术(5) 结果应能清楚地地审查(6) 开发小组的人员员应该少而精精(7) 承认不断改进软软件工程实践践的必要性5 根据历史史数据可以做做出如下的假假设 :对计算机存储容容量的需求大大致按下面公公式描述的趋趋势逐年增加加:M=40080e0.28(Y-1960) 存储器的价格按按下面公式描描述的趋势逐逐年下降:PP1=0.330.72YY-19744(美分
6、/位位)如果计算机字长长为16位,则则存储器价格格下降的趋势势为:P2=0.04880.72YY-19744(美元/字字)在上列公式中YY代表年份,MM是存储容量量(字数),PP1和P2代代表价格。基于上述假设可可以比较计算算机硬件和软软件成本的变变化趋势。要要求计算:1) 在19885年对计算算机存储容量量的需求估计计是多少?如如果字长为116位,这个个存储器的价价格是多少?(2) 假设在在1985年年一名程序员员每天可开发发出10条指指令,程序员员的平均工资资是每月40000美元。如如果一条指令令为一个字长长,计算使存存储器装满程程序所需用的的成本。(3) 假设在在1995年年存储器字长长
7、为32位,一一名程序员每每天可开发出出30条指令令,程序员的的月平均工资资为60000美元,重复复(1)、(2)题。u 1-6 什么是是软件过程?它与软件工工程方法学有有何关系? 软件过程是为了了开发出高质质量的软件产产品所需完成成的一系列任任务的框架,它它规定了完成成各项任务的的工作步骤。 软件过程定义了了运用技术方方法的顺序、应应该交付的文文档资料、为为保证软件质质量和协调软软件变化必须须采取的管理理措施,以及及标志完成了了相应开发活活动的里程碑碑。 软件过程是软件件工程方法学学的3个重要要组成部分之之一。7.什么是软件件生命周期模模型?试比较较瀑布模型、快快速模型、增增量模型和螺螺旋模型
8、的优优缺点,说明明每种模型的的适用范围。通俗的说,简洁洁地描述软件件过程的模型型叫做软件生生命周期模型型,生命周期期模型规定了了把生命周期期花费成哪些些阶段及各个个阶段执行的的顺序。模型名称比较特点适用范围方法学角度应用角度面向结构面型对象外部项目内部产品瀑布模型基础模型、广泛泛使用、标准准模式是是快速模型基本需求、原形形系统、可行行演练是是增量模型需求分解、增量量构件、并行行设计面向对对象是是螺旋模型原形系统、风险险分析、大规规模 附带风风险分析的快快速原形模型型是是8.为什么说喷喷泉模型较好好地体现了面面向对象软件件开发过程无无缝和迭代的的特性?由于在整个开发发过程中都使使用统一的软软件概
9、念“对象”,所有其他他概念(例如如功能、关系系、事件等)都都是围绕对象象组成的,目目的是保证分分析工作中得得到的信息不不会丢失或改改变,因此,对对生命周期各各个阶段的区区分自然也就就不重要了,不不明显了。分分析阶段的得得到的对象模模型也适用于于设计阶段和和实现阶段。由由于各阶段都都使用统一的的概念和表示示符号,因此此,整个开发发过程都是吻吻合一致的,或或者说是“无缝”连接的,这这自然也就很很容易实现各各个开发步骤骤的多次反复复迭代,达到到认识的逐步步深化。所以以说喷泉模型型较好的体现现了面向对象象软件开发过过程无缝和迭迭代的特性。4.构成软件项项目的最终产产品:应用程序、系系统程序、面面向用户
10、的文文档资料和面面向开发者的的文档资料。5什么是软件件生存周期?软件生存周周期是指从软软件定义、开开发、使用、维维护到淘汰的的全过程。6软件生存周周期为什么划划分成阶段? (1) 任任何一个阶段段的具体任务务不仅独立,而而且简单,便便于不同人员员分工协作,从从而降低整个个软件开发工工作的困难程程度。(2) 可可以降低每个个阶段任务的的复杂程度,简简化不同阶段段的联系,有有利于工程的的组织管理,也也便于采用良良好的技术方方法。(3) 使使软件开发的的全过程以一一种有条不紊紊的方式进行行,保证软件件的质量,特特别是提高了了软件的可维维护性。7应该怎样来来划分阶段?(1)每一一个阶段的任任务尽可能独
11、独立;(2)同一一阶段内的任任务性质尽可可能相同;(3)每一一个阶段任务务的开始和结结束有严格的的标准。8软件开发模模型有几种?它们的开发发方法有可特特点?软件开发模模型有瀑布型型、渐增型和和变换型。瀑布型开发发方法是按照照软件生存周周期的划分依依次实施,每每一个阶段有有明确规定的的任务。它的的特点:(1)各各个阶段的顺顺序性和依赖赖性;(2)划划分逻辑设计计与物理设计计,尽可能推推迟程序的物物理实现;(3)每每个阶段必须须完成规定的的文档,对其其中问题通过过复审及早发发现,及早解解决。渐增型开发发方法及特点点:(1) 从部分需求求出发,先建建立一个不完完全的系统,通通过测试运行行该系统取得得
12、经验和信息息反馈,加深深对软件需求求的理解,进进一步使系统统扩充和完善善。如此反复复,直至软件件人员和用户户对所设计完完成的软件系系统满意为止止。(2) 在渐增型开开发下的软件件是随软件开开发的过程而而逐渐形成的的。(3) 渐增型开发发方法适合于于知识型软件件的开发,设设计系统时对对用户需求的的认识开始不不是很清楚的的,需要在开开发过程中不不断认识、不不断获得新的的知识去丰富富和完善系统统。多数研究究性质的试验验软件,一般般采用此方法法。变换型开发发方法及特点点:(1)从从软件需求的的形式化规格格说明出发,经经过一系列的的程序变换,得得到最终的程程序系统。(2)该该方法必须有有严格的数学学理论
13、和形式式化技术的支支持。9.什么是软件件工程?软件工程是是指导计算机机软件开发和和维护的工程程学科。(1) 它采用工程程的概念、原原理、技术和和方法来开发发和维护软件件;(2) 它将管理技技术与当前经经过时间考验验的而证明是是正确的技术术方法结合起起来;(3) 它强调使用用生存周期方方法学和结构构分析和结构构技术;(4) 经过人们长长期的努力和和探索,围绕绕着实现软件件优质高产这这个目标,从从技术到管理理两个方面做做了大量的努努力,逐渐形形成了软件件工程学这这一新的学科科。10什么是软软件工程环境境:方法与工具的结结合,加上配配套的软、硬硬件支持称为为软件工程环环境。它能支支持开发者按按照软件
14、工程程的方法,全全面完成生存存周期中的各各项任务。第二章可行性性研究习题题答案1. 问题定义义的任务和主主要工作?问题定义的的任务:将用用户提出的要要求具体化、定定量化;确定定研制系统的的范围,明确确研制的边界界。问题定义阶阶段的工作:(1) 通通过调查研究究,了解系统统需求;(2) 确确定系统的功功能需求、性性能需求、可可靠性需求、安安全及保密性性、资源、开开发费用及开开发进度等的的需求;(3) 问问题定义阶段段的产品-系统目标与与范围说明书书。2.可行性研究究目的?确定在问题题定义中所提提出的问题是是否值得去解解,在限制条条件下,问题题能否解决。3可行性研究究的任务?(1) 进进一步分析和
15、和澄清问题的的定义,在澄澄清问题的基基础上,导出出系统的逻辑辑模型;(2) 从从系统逻辑模模型中,选择择问题的若干干种主要解法法,研究每一一种解法的可可行性,为以以后的行动提提出建议;(3) 如如果问题没有有可行的解,建建议停止系统统开发;如果果问题有可行行的解,应该该推荐一个较较好的解决方方案,并为工工程制定一个个初步的计划划。4可行性研究究包括哪几方方面的内容?(1)技术术可行性:现现有技术能否否实现本系统统,现有技术术人员能否胜胜任,开发系系统的资源能能否满足;(2)经济济可行性:经经济效益是否否超出开发成成本;(3)操作作可行性:系系统操作在用用户内部行得得通吗?(4)法律律可行性:新
16、新系统开发是是否会侵犯他他人、集体或或国家利益,是是否违反国家家法律。5可行性研究究的步骤?(1)复查查系统的规模模和目标;(2)研究究目前正在使使用的系统,总总结现有系统统的优劣,提提出新系统的的雏形;(3)导出出新系统的高高层逻辑模型型;(4)推荐荐建议方案; (5)推荐荐行动方针;(6)书写写计划任务书书(可行性报报告); (7)提交交审查。6. 可行性研研究报告的主主要内容?可行性分析析的结果是可可行性研究报报告,内容包包括:(1) 系系统概述:说说明开发的系系统名称,提提出单位和开开发单位。(2) 可可行性研究的的前提:系统统目标;要求求;约束和限限制;可行性性研究的基本本准则等。(
17、3) 对对现有系统的的分析:处理理流程,图示示说明现有系系统的处理流流程和数据流流程;现有系系统存在的问问题。 (4) 系系统需求:主主要功能;主主要性能及其其要求;操作作要求;信息息要求;限制制性要求。(5) 建建议系统:系系统目标;处处理流程;系系统结构,功功能,性能;系统技术可可行性;投资资和效益分析析;操作可行行性;法律可可行性。(6) 其其它可选方案案:与国内外外同类型方案案的比较;提提出一两个可可行性方案供供论证和探讨讨。(7) 制制定下一阶段段的预算。(8) 结结论性意见:由用户方、设设计方和投资资方共同签署署意见。2-4 目前住住院病人主要要由护士护理理,这样做不不仅需要大量量
18、护士,而且且由于不能随随时观察危重重病人的病情情变化,还会会延误抢救时时机。某医院院打算开发一一个以计算机机为中心的患患者监护系统统,请分层次次地画出描述述本系统功能能的数据流图图。 医院对患者者7监护系统的的基本要求是是随时接收每每个病人的生生理信号(脉脉搏、体温、血血压、心电图图等),定时时记录病人情情况以形成患患者日志,当当某个病人的的生理信号超超出医生规定定的安全范围围时向值班护护士发出警告告信息,此外外,护士在需需要时还可以以要求系统印印出某个指定定病人的病情情报告。l F1-要求报告告 l F2-生理信号号l F3-日期、时时间l F4-警告信息息l F5-安全范围围l F6-日志
19、l P1-接收信号号l P2-分析信号号l P3-产生警告告l P4-定时取样样生理信号l P5-更新日志志l P6-产生病情情报告l D1-患者日志志l D2-患者安全全范围l E1-护士l E2-病人l E3-时钟第三章需求分分析习题答答案1.需求分析的的描述工具有有哪些?有数据流图图、数据字典典、判定表、判判定树、结构构化自然语言言、层次方框框图、Warrnier图图、IPO图图和需求描述述语言等。2.需求分析的的基本任务是是什么?准确定义未未来系统的目目标,确定为为了满足用户户的需要系统统必须做什么么。3.怎样建立目目标系统的逻逻辑模型?要要经过哪些步步骤?建立目标系统的的逻辑模型的的
20、过程也就是是数据流图的的分解过程。它它的导出过程程如图: 4.什么是结构构化分析?它它的结构化体体现在哪里?结构化分析析:使用数据据流程图、数数据字典、结结构化英语、判判定表和判定定树等工具,来来建立一种新新的、称为结结构化说明书书的目标文档档-需求规格格说明书。结构化体现现在将软件系系统抽象为一一系列的逻辑辑加工单元,各单元之间间以数据流发发生关联。5.软件需求规规格说明书由由哪些部分组组成?组成包括:(1) 引引言:编写目目的、背景说说明、术语定定义及参考资资料等。(2) 概概述主要功能能、约束条件件或特殊需求求。(3) 数数据流图与数数据字典。(4) 用用户接口、硬硬件接口及软软件接口。
21、(5) 性性能需求、属属性等。(6) 其其它需求,如如数据库、操操作及故障处处理等。6.为什么数据据流图要分层层?画分层的的DFD要遵遵循哪些原则则?分层的目的的:便于逐步步细化、结构构清晰。画分层的DDFD要遵循循哪些原则:(1)父图图与子图之间间数据要平衡衡。(2)分解解的深度和层层次达到使加加工足够简单单、易于理解解的基本加工工为止。(3)区分分局部文件和和局部外部项项(局限于数数据流中某一一层或某几层层的文件和外外部项)。(4)不要要把控制流作作为数据流。(5)忽略略琐碎的枝节节。(6)每个个数据流要有有一个合适的的名字,尽量量使用现实系系统中有具体体意义的名字字。7.系统流程图图与数
22、据流程程图有什么区区别?系统流程图图描述系统物物理模型的工工具,数据流流程图描述系系统逻辑模型型的工具。系统流程图图从系统功能能的角度抽象象的描述系统统的各个部分分及其相互之之间信息流动动的情况。数据流程图图从数据传送送和加工的角角度抽象的描描述信息在系系统中的流动动和数据处理理的工作状况况。8.数据字典包包括哪些内容容?它的作用用是什么?数据字典是是描述数据流流图中数据的的信息的集合合。它对数据据流图上每一一个成分:数数据项、文件件(数据结构构)、数据流流、数据存储储、加工和外外部项等给以以定义和说明明;它主要由由数据流描述述、加工描述述和文件描述述三部分组成成。对用户来来讲,数据字字典为他
23、们提提供了数据的的明确定义;对系统分析析员来讲,数数据字典帮助助他们比较容容易修改已建建立的系统逻逻辑模型。9.描述加工逻逻辑的工具有有哪些?有决策树(又称判定树树)、决策表表(又称判断断表)和结构构化语言等。10.某单位拟拟开发一个计计算机房产管管理系统,要要求系统具有有分房、 调调房、退房和和查询统计等等功能。房产产科将用户申申请表输入系系统 后,系系统首先检查查申请表的合合法性,对不不合法的申请请表,系统拒拒绝接收;对对合法的申请请表根据类型型分别进行处处理。 (1) 如如果是分房申申请,则根据据申请者的情情况(年龄、工工龄、职称、职职务、家庭人人口等)计算算其分数,当当分数高于阀阀值分
24、数时,按按分数高低将将申请单插到到分房队列的的适当位置。在在进行分房时时,从空房文文件中读出空空房信息,如如房号、面积积、等级、单单位面积房租租等,把好房房优先分给排排在分房队列列前面的符合合该等级房条条件的申请者者;从空房文文件中删掉这这个房号的信信息,并从分分房队列中删删掉该申请单单,再把此房房号的信息和和住户信息一一起写到住房房文件中,输输出住房分配配单给住户,同同时计算房租租,并将算出出的房租写到到房租文件中中。 (2) 如如果是退房申申请,则从住住房文件和房房租文件中删删除有关信息息,再把此房房号的信息写写到空房文件件中。(3) 如如果是调房申申请,则根据据申请者的情情况确定其住住房
25、等级,然然后在空房文文件中查找属属于该等级的的空房,退掉掉原住房,再再进行与分房房类似的处理理。 (4) 住住户可以向系系统查询目前前分房的阀值值分数,居住住某类房屋的的条件,某房房号的单位面面积及房租等等信息。房产产科可以要求求系统打印住住房情况的统统计表,或更更改某类房屋屋的居住条件件、单位面积积和房租等。用数据流图图描绘该系统统的功能需求求;在数据字字典中给出主主要的数据流流、文件和加加工说明。 参考第四章4.5应用举例例教案之二分分析。 第四章 总体设设计习题答答案1. 系统设计计包括哪两个个阶段?系统设计包包括总体设计计与详细设计计两个阶段。2. 总体设计计的主要任务务是什么?总体设
26、计的的主要任务是是完成软件结结构的设计,确定系统的的模块及其模模块之间的关关系。3. 什么是模模块?模块具具有哪几个特特征?总体设设计主要考虑虑什么特征?模块是数据据说明、可执执行语句等程程序对象的集集合,可以单单独命名且可可通过名字来来访问。模块具有输输入和输出(参数传递)、功能、内内部数据结构构(局部变量量)和程序代代码四个特性性。概要设计主主要考虑输入入、输出(参参数传递)和和功能两个特特性。4. 什么是模模块化?模块块设计的准则则?模块化是按按规定的原则则将一个大型型软件划分为为一个个较小小的、相对独独立但又相关关的模块。模块设计的的准则:(1) 改改进软件结构构, 提高模模块独立性:
27、在对初步模模块进行合并并、分解和移移动的分析、精精化过程中力力求提高模块块的内聚,降降低藕合。(2) 模模块大小要适适中:大约550行语句的的代码,过大大的模块应分分解以提高理理解性和可维维护性;过小小的模块,合合并到上级模模块中。(3) 软软件结构图的的深度、宽度度、扇入和扇扇出要适当。一一般模块的调调用个数不要要超过5个。(4) 尽尽量降低模块块接口的复杂杂程度;(5) 设设计单入口、单单出口的模块块。(6) 模模块的作用域域应在控制域域之内。5. 变换型数数据流由哪几几部分组成?变换型结构构由三部分组组成:传入路路径、变换(加工)中心心和传出路径径。6. 变换分析析设计的步骤骤?(1)
28、区区分传入、传传出和变换中中心三部分,划划分DFD图图的分界线;(2) 完完成第一级分分解:建立初初始SC图的的框架;(3) 完完成第二级分分解:分解SSC图的各个个分支;(4) 对对初始结构图图按照设计准准则进行精化化与改进。7. 事务型数数据流由哪几几部分组成?事务型结构构由至少一条条接受路径、一一个事务中心心与若干条动动作路径组成成。8. 事务分析析设计的步骤骤?(1) 在在DFD图中中确定事务中中心、接收部部分(包含全全部接收路径径)和发送部部分(包含全全部动作路径径);(2) 画画出SC图框框架,把DFFD图的三部部分分?quuot;映射射为事务控控制模块,接接收模块和动动作发送模块
29、块.一般得到到SC图的顶顶层和第一层层(如果第一一层简单可以以并入顶层);(3) 分分解和细化接接收分支和动动作分支,完完成初始的SSC图;(4) 对对初始结构图图按照设计准准则进行精化化与改进。9. 比较层次次方框图与结结构图是的异异同?(1) 层层次方框图描描绘数据的层层次结构, 结构图描绘绘的是软件结结构。(2) 二二者都采用多多层次矩形框框树形结构。层层次方框图的的顶层矩形框框代表完整的的数据结构, 下面各层层矩形框依次次代表上个框框数据的子集集;结构图是在层次次图的每一个个方框内注明明模块的名字字或主要功能能,方框之间间的直线表示示模块的调用用关系,用带带注解的箭头头表示模块调调用过
30、程中传传递的信息。10.欲开发一一个银行的活活期存取款业业务的处理系系统:储户将将填好的存/取款单和存存折交给银行行工作人员,然然后由系统作作以下处理;(1)业务务分类处理:系统首先根根据储户所填填的存/取款款单,确定本本次业务的性性质,并将存存/取款单和和存折交下一一步处理;(2)存款款处理:系统统将存款单上上的存款金额额分别记录在在存折和帐目目文件中,并并将现金存入入现金库;最最后将存折还还给储户;(3)取款款处理:系统统将取款单上上的取款金额额分别记录在在存折和帐目目文件中,并并从现金库提提取现金;最最后将现金和和存折还给储储户。绘制该系统统的数据流图图和软件结构构图。 顶层一层二层 软
31、件结构图图第五章 习题参参考答案一.回答问题1.详细设计的的目的?为软件结构图(SC图或HHC图)中的的每一个模块块确定采用的的算法和块内内数据结构,用某种选定定的表达工具具给出清晰的的描述.2.详细设计的的主要任务?编写软件的“详详细设计说明明书”.软件人员员要完成的工工作:(1) 为每每一个模块确确定采用的算算法, 选择择某种适当的的工具表达算算法的过程,写出模块的的详细过程描描述.(2) 确定定每一模块使使用的数据结结构.(3) 确定定模块结构的的细节,包括括对系统外部部的接口和用用户界面,对对系统内部其其它模块的接接口,以及关关于模块输入入数据、输出出数据及局部部数据的全部部细节.(4
32、) 为每每一个模块设设计出一组测测试用例,以以便在编码阶阶段对模块代代码(即程序序)进行预定定的测试.3.结构化程序序设计的基本本原则?在详细设计中所所有模块都使使用单入口、单单出口的顺序序、选择、循循环三种基本本控制结构. 4.比较面向数数据流和面向向数据结构两两类设计方法法的异同?相同点:(1) 遵守守结构程序设设计“由顶向下”逐步细化的的原则,并以以其为共同的的基础;(2) 均服服从“程序结构必必须适应问题题结构”的基本原则则,各自拥有有从问题结构构(包括数据据结构)导出出程序结构的的一组映射规规则。不同点:(1) 面向向数据流的设设计以数据流流图为基础,在在分析阶段用用DFD表示示软件
33、的逻辑辑模型,在设设计阶段按数数据流类型,将将数据流图转转换为软件结结构。面向数数据结构的设设计以数据结结构为基础,从从问题的数据据结构出发导导出它的程序序结构。(2) 面向向数据流的设设计的最终目目标是软件的的最终SC图图,面向数据据结构的设计计的最终目标标是程序的过过程性描述。5.比较Jacckson方方法和LCPP方法的异同同? Jacksonn与LCP设设计方法都是是以数据结构构为出发点,以以程序的过程程描述为最终终目标,设计计步骤基本相相似。它们的的主要差别是是:(1)使用不同同的表达工具具,其中LCCP方法中的的表达工具WWarnieer图 比比Jacksson设计方方法中的表达达
34、工具Jacckson图图有更大的通通用性;(2)Jackkson方法法的步骤和指指导原则有一一定的灵活性性,而LCPP设计 方方法则更加严严密。6.详细设计的的描述工具应应具备什么功功能?无论哪类描述工工具不仅要具具有描述设计计过程,如控控制流程、处处理功能、数数据组织及其其它方面的细细节的能力,而且在编码码阶段能够直直接将它翻译译为用程序设设计语言书写写的源程序。 二.给出一组数数从小到大的的排序算法,分分别用下列工工具描述其详详细过程:(1)(1) 流程图图;(2)NNS图;(33)PAD图图;(4)PPDL语言。 PDL语言略略三.根据后面面给出“卡片的分类类及统计”项目说明,完完成下列
35、工作作: (1)用用Jacksson图表示示输入与输出出数据结构,找找出它们之间间的对应单元元; (2)画画出用Jacckson图图表示的程序序结构; (3)列列出程序所需需用的操作,并并加到上一步步画出的程序序结构图上; (4)用用Jacksson伪代码码写出程序的的过程表示。 输入卡片分析程程序。一叠输输入卡片按内内容分为K11、K2、KK3三类,卡卡片的排列规规则是:以KK1卡始,以以K2卡终。起起始卡之前属属前置部分,不含K1卡卡;起始卡与与终了卡之间间属分批部分分,不含K22卡。如图: 试用Jacksson方法编编一程序,要要求依次完成成下列分析工工作: -统计起始始卡前卡片的的张数
36、,存入入A; -打印起始始卡的内容; -统计起始始卡后出现的的K1卡和KK3卡总批数数,存入B; -统计起始始卡后出现的的K1卡的张张数,存入CC; -统计起始始卡后出现的的K3卡的批批数,存入DD; -打印终了了卡的内容; -打印A、BB、C、D四四个统计值。程序的过程表示示及伪代码略略第六章 习题题参考答案1. 编码的任务务?使用选定的程序序设计语言,把把模块的过程程性描述翻译译为用语言书书写的源程序序(源代码)。 2. 对源程序基基本要求?源程序要求:正正确可靠、简简明清晰、效效率高。(1) 源程序的正正确性是对程程序质量的最最基本要求;(2) 源程序的简简明清晰,便便于验证源代代码和模
37、块规规格说明的一一致性,容易易进行测试和和维护;(3) 对于大多数数模块,编码码时应该把简简明清晰放在在第一位;(4) 除了编码阶阶段产生源代代码外,在测测试阶段也需需要编写一些些测试程序,用用于对软件的的测试。3. 程序设计语语言的特点?(1) 名字字说明:程序序中使用对象象的名字,能能为编译程序序所检查和识识别;(2) 类型型说明:定义义对象的类型型,确定该对对象的使用方方式;(3) 初始始化:为变量量提供适当的的初始值或由由系统给变量量赋一特殊的的表明未初始始化的值;(4) 对象象的局部性:程序中真正正需要的那部部分才能访问问的对象;(5) 程序序模块:控制制程序对象的的名字;(6) 循
38、环环控制结构:如FOR语语句、WHIILE-DOO语句、REEPEAT-UNTILL语句等;(7) 分支支控制结构:如IF语句句、CASEE语句等;(8) 异常常处理:为程程序运行过程程中发生的错错误和意外事事件提供检测测和处理上的的帮助;(9) 独立立编译:能分分别编译各个个程序单元。4. 选择程序设设计语言需要要考虑的因素素?(1) 选择用户熟熟悉、便于用用户维护的语语言。(2) 选择目标系系统的环境中中可以提供的的编译程序所所能选用的语语言。(3) 选择可以得得到的软件工工具,能支持持程序开发中中可以利用的的语言。(4) 根据工程规规模的大小、目目标系统应用用范围,如实实时应用选择择Ad
39、a语言言或汇编语言言,系统软件件开发选择CC语言或汇编编语言,软件件开发中若含含有大量数据据操作则选择择SQL、ddBASE等等数据库语言言等。(5) 选择程序员员熟悉的语言言。(6) 选择标准化化程度高、程程序可移植性性好的语言。(7) 根据算法与与计算的复杂杂性、数据结结构的复杂性性选择。如对对于系统程序序和结构复杂杂的应用程序序,选择支持持数组、记录录(或结构)与指针动态态数据结构的的Pascaal语言或CC语言。(8) 根据实时要要求系统需要要的响应速度度和效率选择择相应的语言言。5. 编码风格的的指导原则。(1) 源程序:包包括适当的标标识符、适当当的注解、程程序清单的合合理布局与清
40、清晰;(2) 数据说明:数据结构或或数据类型的的说明次序标标准化;变量量名称尽量有有意义;对复复杂的数据结结构在注解中中要说明在程程序设计中实实现这个数据据结构的方法法。(3) 语句的构造造简单明了:不要为节省省空间将多个个语句写在同同一行;尽量量避免复杂的的条件及“非”条件的测试试;避免大量量使用循环嵌嵌套和条件嵌嵌套;括号的的使用是为了了使逻辑表达达式和算术表表达式的运算算顺序清晰直直观。(4) 效率:考虑虑程序运行的的时间存储器器效率、输入入/输出的效效率;在处理理程序正确性性、清晰与效效率之间的关关系时先求程程序正确后求求快;先求清清楚后求快;保持程序简简单以求快;书写清楚,不为“效率
41、”牺牲清晰。6. 第四代语言言(4GL)应具备哪些些的特征?(1) 具有很强的的数据管理能能力,能对数数据库进行有有效的存取、查查询和其它有有关操作;(2) 能提供一组组高效的、非非过程化的命命令,组成语语言的基本语语句,编程时时用户只需用用这些命令说说明“做什么”,不必描述述实现的细节节;(3) 能满足多功功能、一体化化的要求。为为此,语言中中除必须含有有控制程序逻逻辑与实现数数据库操作的的语句外,还还应包括生成成与处理报表表、表格、图图形,以及实实现数据运算算和分析统计计功能的各种种语句,共同同构成一个一一体化的语言言,以适应多多种应用开发发的需要。第七章 习题题参考答案一.回答问题 1.
42、软件件测试的基本本任务?软件测试是按照照特定的规则则,发现软件件错误的过程程;好的测试试方案是尽可可能发现迄今今尚未发现错错误的测试;成功的测试试方案是发现现迄今尚未发发现错误的测测试; 2.测试试与调试的主主要区别?(1) (1) 测试试从一个侧面面证明程序员员的失败;调调试证明程序序员的正确;(2) (2) 测试试从已知条件件开始,使用用预先定义的的程序,且有有预知的结果果,不可预见见的仅是程序序是否通过测测试;调试从不可知知内部条件开开始,除统计计性调试外,结结果是不可预预见的;(3) (3) 测试试有计划并且且要进行测试试设计;调试试不受时间约约束;(4) (4) 测试试是发现错误误、
43、改正错误误、重新测试试的过程;调调试是一个推推理的过程;(5) (5) 测试试执行是有规规程的;调试试执行要求程程序员进行必必要的推理;(6) (6) 测试试由独立的测测试组在不了了解软件设计计的件下完成成;调试由了解详详细设计的程程序员完成;(7) (7) 大多多数测试的执执行和设计可可由工具支持持;调试用的工具具主要是调试试器。 3.人工工复审的方式式和作用?人工复审的方式式:代码会审审、走查和排排练和办公桌桌检查;人工复审的作用用:检查程序序的静态错误误。 4.什么么是黑盒测试试?黑盒测试试主要采用的的技术有哪些些?黑盒测试也称为为功能测试,它着眼于程程序的外部特特征,而不考考虑程序的内内部逻辑结构构。测试者把把被测程序看看成一个黑盒盒,不用关心心程序的内部部结构。黑盒盒测试是在程程序接口处进进行测试,它它只检查程序序功能是否能能按照规格说说明书的规定定正常使用,程程序是否能适适当地接收输输入数据产生生正确的输出出信息,并且且保持外部信信息(如数据据库或文件)的完整性。黑盒测试主要采采用的技术有有:等价分类类法、边沿值值分析法、错错误推测法和和因果图等技技术。 5.什么么是白盒测试试?白盒测试试主要采用的的技术有哪些些?测试者了解被测测程序的内部部结构和处理理过程,对程程序的所有逻逻辑路径进行行测试,在不不同点检查程程序状态,确确定实际状态态与预期状
限制150内