




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程第三版答案
【篇一:软件工程课后答案】
>1.1什么是计算机软件?软件的特点是什么?
答:计算机软件指计算机系统中的程序及其文档。
软件的特点是:
a软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进
度难以准确得估算;
b软件是被开发的或被设计的,没有明显的制造过程,一旦开发成
功,只需复制即可,但其维护的工作量大;
c软件的使用没有硬件那样的机械磨损和老化问题。
1.2简述软件的分类,并举例说明。
答:在《计算机科学技术百科全书》中,将软件分为系统软件、支
撑软件和应用软件3类。
a系统软件:系统软件居于计算机系统中最靠近硬件的一层,其他
软件一般都通过系统软件发挥作用。系统软件与具体的应用领域无
关。例如:编译程序、操作系统等。
b支撑软件:支撑软件是支撑软件的开发和维护的软件。例如:数
据库管理系统、网络软件、软件工具、软件开发环境等。
c应用软件:应用软件是特定应用领域专用的软件。例如:工程/科
学计算软件、嵌入式软件、产品线软件、web应用软件、人工智能
软件。
1.44么是软件工程?
答:在《计算机科学技术百科全书》中软件工程是应用计算机科学、
数学及管理科学等原理,开发软件的工程。
1.5简述软件工程的基本原则。
答:软件工程原则包括围绕工程设计、工程支持和工程管理提出的
以下4条基本原则:
第一条:围绕适宜的开发模型;
第二条:采用合适的设计方法;
第三条:提供高质量的工程支撑;
第四条:重视软件工程的管理。
1.6软件生存周期分哪几个阶段?分别简述各个阶段的任务。
答:软件生存周期有计算机系统工程、需求分析、设计、编码、测
试、运行和维护6个阶段n
a计算机系统工程的任务是确定待开发软件的总体要求和范围,以
及该软件与其他计算机系统元素之间的关系,进行成本估算,做出
进度安排,并进行可行性分析,即从经济、技术、法律等方面分析
待开发的软件是否有可行的解决方案,并在若干个可行的解决方案
中做出选择。
b需求分析主要解决待开发软件要“做什么”的问题,确定软件的功
能、性能、数据、界面等要求,生成软件需求规约。
c软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可
分为系统设计和详细设计。系统设计的任务是设计软件系统的体系
结构,包括软件系统的组成成分、各成分的功能和接口、成分间的
连接和通信,同时设计全局数据结构。详细设计的任务是设计各个
组成成分的实现细节,包括局部数据结构和算法等。
d编码阶段的任务是用某种程序设计语言,将设计的结果转换为可
执行的程序代码。
e测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包
括单元测试、集成测试、确认测试和系统测试。
f软件完成各种测试后就可交付使用,在软件运行期间,需对投入运
行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的
功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。
1.9简述各类软件过程模型的特点。
答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原
型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法
模型等。
a瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶
段的活动,其特征是:
接受上一阶段活动的结果作为本阶段活动的输入;
依据上一阶段活动的结果实施本阶段应完成的活动;
对本阶段的活动进行评审;
将本阶段活动的结果作为输出。
b增量模型将软件的开发过程分成若干个日程时间交错的线性序列,
每个线性序列产生软件的一个可发布的增量版本,后一个版本是对
前一个版本的修改和补充,重复增量发布的过程,直至产生最终的
完善产品。
c原型模型从软件工程师与客户的交流开始,其目的是定义软件的
总体目标,标识需求。然后快速制定原型开发的计划,确定原型的
目标和范围,采用快速设计的方式对其建模,并构建模型。被开发
的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见
可在下一轮迭代中对原型进行改进。在前一个原型需要改进,或者
需要扩展其范围的时候,进入下一轮原型的迭代开发。
d螺旋模型将原型模型实现的迭代特征与瀑布模型中控制的和系统
化的方面结合起来,不仅体现了这两种模型的优点而且还增加了风
险分析。
e喷泉模型是一种支持面向对象开发的过程模型。类及对象是面向
对象方法中的基本成分。在分析阶段,标识类及对象,定义类之间
的关系,建立对象•关系模型和对象•行为模型。在设计阶段,从实现
的角度对分析模型进行调整和扩充。在编码阶段,用面向对象语言
实现类及对象,通过消息机制实现对象之间的通信,完成软件的功
能。在面向对象方法中,分析模型和设计模型采用相同的符号表示
体系,开发的各个活动没有明显的边界,各个活动经常重复,迭代
地交替进行。
f基于构件的开发模型,基于构件的开发是指利用预先包装的构建来
构造应用系统。构件可以是组织内部开发的构建,也可以是商业化
的、现存的软件构件。
g形式化方法是建立在严格数学基础上的一种软件开发方法。软件
开发的全过程中,从需求分析、规约、设计、编程、系统集成、测
试、文档生成,直至维护等各个阶段,凡是采用严格的数学语言,
具有精确的数学语义的方法,都称为形式化方法。形式化方法用严
格的数学语言和语义描述功能和设计规约,通过数学的分析和推导,
易于发现需求的歧义性、不完整性和不一致性,易于对分析模型、
设计模型和程序进行验证。通过数学的演算,使得从形式化功能规
约到形式化设计规约,以及从形式化设计规约到程序代码转换成为
可能。
1.10敏捷软件开发的特点是什么?
答:敏捷软件开发的特点有4个:
a个人和交互高于过程和工具;
b可运行软件高于详尽的文档;
c与客户协作高于合同谈判;
d对变更及时做出反应高于遵循计划。
1.12简述敏捷软件开发的原则。
答:敏捷软件开发必须遵循的12条原则如下;
a最优先的是通过尽早地和不断地提交有价值的软件来使客户满意;
【篇二:软件工程课后习题答案】
1、软件产品的特性是什么?答:软件产品特性:
⑴是一种逻辑产品,与物质产品有很大的区别。
(2)软件产品的生产主要是研制,生产成本主要在开发和研制,开发
研制完成后,通过复制就产生了大量软件产品。(3)软件产品不会用
坏,不存在磨损,消耗。
⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品
是定做的
⑸开发软件的费用不断增加,致使生产成本相当昂贵。2、软件生
产有几个阶段?各有何特征?
答:⑴程序设计时代:这个阶段生产方式是个体劳动,使用的生产
工具是机器语言,汇编语言。
⑵程序系统时代:这个阶段生产方式是小集团合作生产,使用的生
产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化
方法。
(3)软件工程时代:这个阶段生产方式是工程化的生产,使用数据库
、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
3、什么是软件危机?产生原因是什么?答:软件开发技术的进步未
能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,
问题积累起来,形态尖锐的矛盾,导致了软件危机。产生原因:(1)
软件规模越来越大,结构越来越复杂。⑵软件开发管理困难而复杂。
(3)软件包开发费用不断增加。⑷软件开发技术落后。⑸生产方式落
后,仍采用手工方式。⑹开发工具落后,生产率提高缓慢。
4、什么是软件工程?它目标和内容是什么?
答:软件工程就是用科学的知识程和技术原理来定义,开发,维护
软件的一门学科。软件工程目标:付出较低开发成本;达到要求的
功能;取得较好的性能;开发的软件易于移植;只需较低的维护费
用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
软件工程内容:研究内容包括开发技术和开发管理两个方面。开发
技术主要研究:软件开发方法,开发过程,开发工具和环境。开发
管理主要研究:软件管理学,软件经济学,软件心理学。
5、软件工程面临的问题是什么?
答:软件工程需要解决的问题:软件的费用,可靠性,可维护性,
软件生产率和软件的重用。
6、什么是软件生存周期?它有哪几个活动?
答:软件生存周期:一个软件从提出开发要求开始直到该软件报废
为止的整个时期。包括:可行性分析和项目开发计划,需求分析,
概要设计,详细设计,编码,测试,维护。7、什么是软件生存周期
模型?有哪些主要模型?
答:生存周期模型:描述软件开发过程中各种活动如何执行的模型。
对软件开发提供强有力的支持,为开发过程中的活动提供统一的政
策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型
化技术的基础,也是建立软件开发环境的核心。主要有:瀑布模型,
增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型。
8、什么是软件开发方法?有哪些主要方法?
答:使用早已定义好的技术集及符号表示习惯来组织软件生产的过
程。通过使用成功的软件开发方法,在规定的投资和时间内,开发
出符合用户需求的高质量的软件。软件开发方法是克服软件危机的
重要方面之一,对软件工程及软件包产业的发展起了不可估量的作
用。
主要有:结构化方法,jackson方法,维也纳开发方法(vdm),
面向对象开发方法。第二章习题参考答案
1.可行性研究的任务是什么?
答:可行研究的任务:首先需要进行概要的分析研究,初步确定项
目的规模,目标,约束和限制。分析员再进行简要的需求分析,抽
象出项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩
的设计,探索出若干种可供选择的解决方法,对每种解决方法都要
研究它的可行性。
主要从三个方面考虑:⑴技术可行性:一般要考虑的情况包括开发
的风险即设计出的系统能否达到要求的功能和性能;资源的有效性;
相关技术的发展是否支持;⑵经济可行性:进行开发成本的估算以
及了解取得效益的评估,确定要开发的项目是否值得投资。③社会可
行性:要开发的项目是否存在任何侵权问题,运行方式在用户组织内
是否可行,现有管理制度、人员素质、操作方式是否可行。2.可行
性研究有哪些步骤?
答:⑴确定项目规模和目标;⑵研究正在运行的系统;收集、研究
、分析现有系统的文档资料,实地考察系统访问有关人员,然后描
绘现有系统的高层系统流程图。⑶建立新系统的高层逻辑模型;使
用数据流图和数据字典描述数据在系统中的流动和处理情况。⑷导
出和评价各种方案;导出若干较高层次的物理解决方法,根据技术
可行性、经济可行性、社会可行性进行评估,得到可行的解决方法。
(5)推荐可行方案;进行成本〜效益分析,决定该项目是否值得开发,
若值得开发那么解决方案是什么,并且说明该方案可行的原因和理
由。⑹编写可行性研究报告;将上述可行性过程的结果写成相应文
档,即可行性研究报告。
3.可行性研究报告有哪些主要内容?
答:(工)引言:编写本文档的目的;项目名称、背景;本文档用到的
专门术语和参考资料。⑵可行性研究前提:说明开发项目的功能、
性能和基本要求;达到的目标;各种限制条件;可行性研究方法和
决定可行性的主要因素。⑶对现有系统的分析:说明现有系统的处
理流程和数据流程;工作负荷;各项费用支出;所需各类专业技术
人吧和数量;所需各种设备;向有系统存在什么问题。⑷所建议的
技术可行性分析:所建议系统的简要说明;处理流程和数据流程;
与现有系统比较的优越性;采用所建议系统对用户的影响;对各种
设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;
对技术可行性的评价。⑸所建议系统的经济可行性分析:说明建议
系统的确良各种支出,各种效益;收益投资比;投资顺收周期。⑹
社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、
侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政
管理、工作制度、人吧素质的要求。⑺其它可供选择方案:逐一说
明其他可供选择的方案,并说明未被推荐的理由。⑻结论意见:说
明项目是否能开发;还需什么条件才能开发;对项目目标有何变动
等。
4.成本“效益分析可用哪些指标进行度量?
答:⑴投资回收率:通常把建立系统若干年后能取得的收益折算成
现在的价值和开发系统所需的费用进行比较得出投资回收率。⑵投
资回收期:就是使累计的经济效益等于最初的投资费用所需的时间。
⑶纯收入:整个生存周期之内的累计经济效益(折成现在值)与投
资之差。5.项目开发计划有哪些内容?
答:⑴项目概述:说明项目的各项主要工作;说明软件的功能、性
能;为完成项目应具有的条件;用户及合同承包者承担的工作完成
的期限及其他条件限制;应交付的程序名称;所使用的语言及程储
形式;应交付的文档。⑵实施计划:说明任务的划分,各任务责任
人,项目开发进度,项目的预算,各阶段的费用支出,各阶段应完
成的任务,用图表说明每项任务的开始和完成时间。⑶人员组织及
分工:所需人员类型、数量、组成结构。⑷交付期限:最后完工日
期。
第三章习题参考答案
L不么是需求分析?需求分析阶段的基本任务是什么?
答:需求分析:开发人员准确地理解用户的要求,进行细致的调查
分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求
定义转换到相应的需求规格说明的过程。
基本任务:⑴问题识别:双方确定对问题的综合需求,这些需求包
括功能需求,性能需求,环境需求,用户界面需求。⑵分析与综合,
导出软件的逻辑模型③编写文档:包括编写需求规格说明书,初步用
户使用手册,确认测试计划,修改完善软件开发计划
2.什么是结构分析方法?该方法使用什么描述工具?
答:结构化分析:简称sa,面向数据流进行数据分析的方法。采用
自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具
体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。
使用数据流图,数据字典,作为描述工具,使用结构化语言,判定
表,判定树描述加工逻辑。3.结构化分析方法通过哪些步骤来实现?
答:⑴了解当前系统的工作流程,获得当前系统的物理模型。⑶抽
象出当前系统的逻辑模型。⑶建立目标系统的逻辑模型。⑷作进一
步补充和优化。
5.画数据流图应注意什么事项?
答:命名:不能使用缺乏具体含义的名字,加工名应能反映出处理
的功能。1.画数据流而不是控制流。数据流名称只能是名词或名词
短语,整个图中不反映加工的执行顺序。
一般不画物质流。2,每个加工至少有一个输入数据流和一个输出数
据流,反映出此加工数据的来源与加工的结果。
编号:某个加工分解成加一张数据流图时,上层图为父图,下
层图为子图。子图应编号子图上的所有加工也应编号,子图的编号
应与父图的编号相对应。3,父图与子图的平衡:子图的输入输出数
据流同父图相应加工的输入输出数据流必须一致⑵抽象:认识复杂
现象过程所使用权的工具,只考虑事物本质的共同特性,忽略细节
和其它因素。通过抽象确定组成软件的过程实体。⑶信息隐蔽:将
模块实现自身功能的细节与数据局部数据存储:当某慨数据流图中
的数据存储不是父图中相应加工的外部接口,而只是本图中某些加
工之间的数据接口,则称这些数据存储为局部数据存储。注意数据
流图的易理解性。
6.什么是数据字典?其作用是什么?共有哪些条目?
答:数据字典(dd)用来定义数据库流图中的各个成分的具体含义。
有以下四类条目:数据流,数据项,数据存储,基本加工。
7.描述加工逻辑有哪些工具?
答:加工逻辑的描述:一般用结构化语言,判定表,判定树结构化
语言是介于自然语言和形式语言之间的一种半形式化语言。它的结
构可分里层和内层
⑴外层:用来描述控制结构,采用顺序,选择,重复三种基本结构。
顺序结构:是一组祈使语句,选择语句,重复语句的顺序排列②选
择结构:——般用if・then-elase-endif,case・of・endcase等关键词。
③重复结构:一般用do・while・enddo,repeat・until等关键词。(2)
内层:一般采用祈使语句的自然语言短语,使用数据字典中的名词
和有限的自定义词,其动词含义要具体,尽量不使用形容词和副词
来修饰O
包奈:idefO描述系统的功能活动及联系,建立系统的功能模型。
即反映系统做什么折功能。idefl描述系统的信息及联系,建立系统
的信息模型。idef2进行系统模拟,建立系统的动态模型。idefO特
4采用方框和箭头等简单图形符号描述系统的活动和数据流,描述
活动所受的约束条件及实现机制。
如下图描述,其中输入为完成某活动时所需的数据,输出指执行活
动产生时的数据,控制活动指所受到的约束条件,机制是指活动由
谁来完成。⑵采用严格的自顶向下、逐层分解的方式建立系统功能
模型。
9.简述sa方法的优缺点。答:sa方法是软件需求分析中公认的,
有成效的,技术成熟,使用广泛的一种结构化分析方法。较适用于
开发数据处理类型软件的需求分析。利用图形等半形式化工具表达
需求,简明,易读,也易于使用。但也存在一些弱点,表现如下:
⑴sa方法仅是一个静态模型,没有反映处理的顺序,即控制流程。
(2)sa方法使用dfd在分析与描述数据要求方面是有局限的,只有与
数据库技术中的实体联系图(er图)结合起来,才能较完整地描述
用户对系统的需求。(3)dfd不适合描述人机界面系统的要求,一些人
机交互较频繁的软件系统。⑷sa方法要与形式化方法结合起来,才
能更精确地描述软件需求。⑸要借助需求分析工具,提高需求分析
的质量及效率。
第四章习题参考答案
1、什么是软件概要设计?该阶段的基本任务是什么?
答:把一个软件需求转换为软件表示时,首先设计出软件总的体系
结构。称为概要设计或结构设计。基本任务:(1)设计软件系统结构,
具体为:1.采用某种设计方法,将一个复杂的系统按功能划分为模块。
2.确定每个模块的功能。3.确定模块之间的调用关系。4.确定模块之
间的接口(模块之间传递的信息)评价模块的结构质量⑶进行数据
结构及数据库的设计⑶编写概要设计的文档主要内容有:概要设计
说明书,数据库说明书(dbms的简介,概念模型,逻辑设计,结果)
用户手册,修订测试计划(测试的策略、方法、步骤)⑷评审:是
否完整地实现了规定的功能、性能要求。设计方案是否可行。关键
的处理及内部接口定义的正确性,有效性,各部分的一致性。2、软
件设计的基本原理包括哪些内容?
答:(1)模块化:模块是软件的组成部分,是具有独立功能且可命名
的一段程序,所有模块组成整体,可以满足问题的要求。模块化即
按照一定的原则,将软件划分成若干个模块,每个模块完成一个特
定的功能,然后把这些模块按照某种方法组装成一个软件系统。
(可降低复杂度、减少工作量)
模块具有以下几种特性:接口:模块的输入输出。功能:指模块实
现什么功能。逻辑:描述模块内部如何实现要求及所需的数据。状
态:该模块的运行环境,模块间调用与被调用关系。
隐蔽起来。模块间仅交换为完成系统功能所必须的信息。⑷模块独
立性:每个模块只完成系统要求的独立的子功能。3、衡量模块独立
性的两个标准是什么?各表示什么含义?答:内聚:又称为块内联
系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。
耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,
耦合性越强,独立性越差,以低耦合为设计目标。
4、模块的耦合性有哪几种?各表示什么含义?
答:⑴内容耦合:一个模块直接操作或修改另一模块的数据,或者
不通过正常入口直接转入另一模块⑶公共耦合:两个或多个模块通
过共同引用一个全局数据环境相互作用⑶控制耦合:模块之间通过
传递控制信息相互作用⑷标记耦合:两个模块之间通过传递公共指
针或地址相互作用的耦合⑸数据耦合:模块之间通过传递数据交换
信息⑹无耦合:模块间无任何关系,独立工作
5、模块的内聚性有哪几种?各表示什么含义?答:⑴偶然内聚:一
个模块各个成分之间毫无关系⑵逻辑内聚:将几个逻辑上相关的功
能放在同一个模块中(3)时间内聚:一个模块完成的功能在同一时间
执行(4)过程内聚:一个模块内部的处理成分是相关的,而且必须以
特定的次序执行⑸通信内聚:一个模块的所有成分都集中在同一个
数据结构上⑹顺序内聚:一个模块的各个成分同一个功能密切相关,
而且一个成分的输出,作为另外一个成分的输入⑺功能内聚:模块
内的所有成分属于一个整体,完成单一的功能。(内聚最高)
6、什么是软件结构?简述软件结构设计的优化准则。
答:⑴改进软件结构,提高模块独立性首先设计出软件初始结构,
评价该结构,通过模块分解或合并,力求降低耦合提高内聚。⑵模
块的规模应该适中(3)模块结构的深度、宽度、扇出和扇入应适中。
深度:软件结构中控制的层数宽度:软件结构中同一层次上最大模
块总数扇入:某一模块有多少直接调用它的上级模块数目(越大越
好)扇出:一个模块直接控制(调用)下级模块的数目。(越少越
好,3,4个为宜,不超过9个,顶层扇出较高,中间扇出较少,底
层模块高扇入多⑷一个模块的作用域(范围),应处在这个模块的
控制域(范围)之内模块的作用域:受该模块内一个判定影响的所
有模块的集合模块的控制域:这个模块本身以及所有直接或间接从
属于它的模块的集合一个模块的影响范围(作用域),应处在这个
模块的模块的控制范围(控制域)内。
8、什么样是事物流?什么是变换流?试将相应形式的数据流图转换
为软件结构图
答:数据流图(dfd)一般可分为变换流,事物流两种。变换流:由
输入、输出、变换(或称处理)三部分组成,是一顺序结构。事物
流:它的某个加工,分离成许多发散的数据流,形成许多加工路径,
并且根据输入值选择其中一个路径来执行。(这人加工称为事务处
理中心)
9.试述变换分析、事务分析设计步骤。
答:变换分析设计步骤:⑴确定变换中心,逻辑输入和输出。⑵设
计软件结构的顶层和第一层“变换结构:顶层的功能是完成所有模块
的控制(名称应是系统名,以体现完成整个系统功能)第一层至少
有三种功能模块:输入、输出和变换模块(3)设计中、下层模块,对
第一层的模块自顶向下分解。输入模块由两部分组成:接收数据、
转换成调用模块所需信息。输出模块由两部分组成:将数据转换成
下属模块所需的形式、发送数据变换模块:对每个基本加工建立一
功能模块、⑷设计的优化:输入部分求精,每个物理输入设置专门
模块,以体现系统的外部接口。其它输入模块与转换数据模块都很
简单时,可将它们合并。输出部分求精:每个物理输出设置专门模
块,其它也可适当合并。变换部分求精:根据设计准则,对模块适
当合并。事务分析的设计步骤:(1)确定事务中心和加工路径⑵设计
顶层(事务机构)和第一层顶层模块有两个功能:接收数据和根据
事务类型调动相应处理模块。③中下层模块的设计、优化工作与变
换结构相同。事务型软件结构包括两部分:接收分支发送分支出通
常包括一调度模块,当事务类型不多时,可与主模块合并。
第五章习题参考答案
1、详细设计的基本任务是什么,有哪几种描述方法?答:详细设计
的基本任务包括:(1)为每个模块进行详细的算法设计(2)为模
块内的数据结构进行设计(3)对数据库进行物理设计(4)其他设
计(5)编写详细设计说明书(6)评审详细设计的描述
方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图
和pad(问题分析图)为描述工具,语言常用过程设计语言(pdl)来作为
工具。
2、结构化程序设计的基本要点是什么?答:主要有三个:(1)采用
自顶向下、逐步求精的程序设计方法(2)使用三种基本控制结构构
造程序。任何程序都可以由顺序、选择、重复(循环)三种基本控制结
构构造,这三种基本结构的共同点是单入口、单出口。(3)主程序
员组的组织形式。
3、简述jackson方法的设计步骤。答:jackson方法的设计步骤
如下:1,分析并确定输入数据和输出数据的逻辑结构,并用jackson
结构图表示这些数据结构。(2)找出输入数据结构和输出数据结构中
有对应关系的数据单兀。3.按一定的规则由输入、输出的数据结构导
出程序结构。4,列出基本操作与条件,并把它们分配到程序结构图
的适当位置。(5)用伪码写出程序。比较?
答:白盒法测试法把测试对象看作一个打开的盒子,测试人员须了
解程序内部结构和处理过程,以检查处理过程的细节为基础,对程
序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构
是否有错,实际的运行状态与预期的状态是否一致。
白盒法有下列几种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判
定/条件覆盖、条件组合覆盖、路径覆盖
从上到下的覆盖标准其检错能力也从弱到强,其中条件组合发现错
误的能力较强,凡满足其标准的测试用例,也必然满足前四种覆盖
标准。在实际的逻辑测试中,一般以条件组合覆盖为主设计测试用
例,然后再补充部分用例来达到路径覆盖的测试标准。
什么是黑盒测试法?采用黑盒技术测试用例有哪几种方法?这些第六
章习题参考答案
程序语言有哪些共同特征?
答:程序语言的共同特征(似为特性更符合题意)是指程序设计语言的
语言特性,包括心理特性、工程特性和技术特性三个方面。语言的
心理特性对人机通信的质量有主要的影响;语言的工程特性对软件
开发成功一否有重要的影响,此外,语言的技术特性也会影响软件
设计的质量。
在项目开发时选择程序设计语言通常考虑哪些因素?
答:通常要考虑的因素有:项目的应用领域、软件开发的方法、软
件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识
等。
第4代语言(4gl)有哪些主要特征?答:4gl的主要特征是:1.友好的
用户界面2.兼有过程性和非过程性双重特性3.高效的程序代码4.完
备的数据库(5)应用程序生成器举例说明各种程序设计语言的特点
及适用范围?
答:以常见的一些编程语言为例:fortran语言,它不仅面向科学计
算,数据处理能力也极强。适用于科学工程计算;pascal语言,具
有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程
序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结
构化算法和科学计算,操作系统的编写;c语言:功能强大,支持复
杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数
据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。
可用于许多领域,特别是在操作系统等方面有较大优势。coble语
言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、
数据描述与算法描述分开。结构严谨层次分明,广泛用于商业数据
处理。sql:结构化查询语言,用于对数据库进行存取管理。
汇编语言和ada语言,主要用于实时处理和编写系统软件。prolog,
lisp语言。lisp是一种函数型语言,特别适用于组合问题中符号运算
和表处理,用于定理证明、树的搜索和其他问题的求解。prolog是
一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一
组表示事实、规则和推理的句子组成,比较接近与自然语言。这两
种语言主要用于人工智能系统开发。C++、java语言,是面向对象的
设计语言,用于面向对象的方开发软件。
什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的
问题?
答:.程序设计风格是指一个人编制程序时所表现出来的特点、习惯、
逻辑思路等。
要形成良好的程序设计风格,应从源程序文档化、数据说明、语句
构造、输入输出和追求效率几个方面加以注意。第七章习题参考答
案
软件测试的目的是什么?软件测试中,应注意哪些原则?
答:软件测试的目的是为了发现软件的错误。软件测试中应注意的
原则有:
测试用例应由输入数据和预期的输出数据两部分组成。这样便于对
照检查,做到有的放矢。测试且例不仅选用合理输入数据,还要选
择不合理的输入数据。这样能更多地发现错误,提高程序的可靠性。
对于不合理的输入数据,程序应拒绝接受,并给出相应的提示。
除了检查程序是否做了它应该做的事,还应该检查程序是否做了它
不应该做的事。
应制定测试计划并严格执行,排除随意性。长期保留测试用例。
对发现错误较多的程序段,应进行更深入的测试。(7)程序员应避
免测试自己的程序。测试是一种挑剔性的行为,心理状态是测试自
己程序的障碍。
什么是白盒测试法?有哪些覆盖标准?试对他们的检错能力进行
方法各有什么特点?
答:黑盒测试法把被测试对象看成是一相黑盒子,测试人员完全不
考虑程序的内部结构和处理过程,只在软件接口处进行测试,依据
需求规格说明书,检查程序是否满足功能要求。
采用黑盒技术测试用例的方法有:等价类的划分、边界值分析、错
误推测和因果图。
软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关
系?
答:软件测试要经过的步骤是:单元测试一集成测试一确认测试一
系统测试。
单元测试对源程序中每一个程序单元进行测试,检查各个模块是否
正确实现规定的功能,从而发现模块在编码中或算法中的错误。该
阶段涉及编码和详细设计文档。
集成测试是为了检查与设计相关的软件体系结构的有关问题,也就
是检查概要设计是否合理有效。
确认测试主要是检查已实现的软件是否满足需求规格说明书中确定
了的各种需求。
系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、
数据、人工等)结合在一起进行测试。以确定软件是否可以支付使用。
单元测试有哪些内容?测试中采用什么方法?答:单元测试主要针对
模块的以下五个基本特征进行测试:1.模块接口2.局部数据结构3.
重要的执行路径4.错误处理5.边界条件6.测试的方法是为被测试模
块编写驱动模块和桩模块来实现被测试单元的可运行。通过驱动模
块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的
格式驱动被测模块,接收被测模块的测试结构并输出。桩模块则用
来代替被测试模块所调用的模块。它的作用是返回被测模块所需的
信息。
才么是集成测试?非渐增式测试与渐增式测试有什么区别?渐增式测
试如何组装模块?
答:集成测试是指在单元测试的基础上,将所有模块按照设计要求
组装成一个完整的系统进行的测试。
非渐增式测试是指首先对每个模块分别进行单元测试,再把所有模
块组装成一个完整的系统进行的测试。而渐增式测试就是逐个把未
经测试的模块组装到已经过测试的模块上去进行集成测试,每加入
一个新模块进行一次集成测试,重复此过程直到程序组装完毕。渐
增式测试有两种不同的组装方法:自顶向下和自底向上结合。两者
区别是:(1)非渐增式方法把单兀测试和集成测试分成两个不同的
阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而
渐增式测试往往把单元测试和集成测试合在一起,同时完成。(2)
非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模
块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工
作量少。渐增式可以较早地发现接口之间的错误,非渐增式最后组
装时才发现。(3)渐增式有利于排错,发生错误往往和最近新加入的
模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一
部分接口出错。(4)渐增式比较彻底,已测试的模块和新的模块再测
试。(5)渐增式点用时间较多,但非渐增式所需更多的驱动模块和桩
模块也占用一些时间。(6)非渐增式开始可并行测试所有模块,能充
分利用人力,对测试大型软件很有意义。什么是确认测试?该阶段有
哪些工作?
答:确认测试又称有效性测试。它的任务是检查软件的功能与性能
是否与需求规格说明书中确定的指标相符合。因而需求说明是确认
测试的基础。确认测试阶段有两项工作:进行确认测试与软件配置
审查。
调试的目的是什么?调试有哪些技术手段?
答:调试则是在进行了成功的测试之后才开始的工作。调试的目的
是确定错误的原因和位置,并改正错误,因此调试也称为
纠错(debug)。调试的技术手段有简单的调试方法、归纳法、演绎法
和回溯法等。第八章习题参考答案软件维护有哪些内容?答:(1)
校正性维护。在软件交付使用后,一些隐含的错误在某些特定的使
用环境下会暴露出来。为了识别和纠正错误,修改软件性能上的缺
陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。
(2)适应性维护。为了使应用软件适应计算机硬件、软件环境及数
据环境的不断发生的变化而修改软件的过程称为适应性维护。
(3)完善性维护。为增加软件功能、增强软件性能、提高软件运行
效率而进行的维护活动称为完善性维护。
(4)预防性维护。为了提高软件的可维护性和可靠性而对软件进行
的修改称为预防性维护。软件维护的特点是什么?答:主要体现在
三个方面:
(1)非结构化维护和结构化维护。软件的开发过程对软件的维护有
很大的影响。若不采用软件工程的方法开发软件,则软件只有程序
而无文档,维护工作非常困难,这是一种非结构化的维护。若采用
软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维
护工作,这是一种结构化的维护。
(2)维护的困难性。软件维护的困难性是由于软件需求分析和开发
方法的缺陷。软件生存周期中的开发阶段没有严格而又科学的管理
和规划,就会引起软件运行时的维护困难。
(3)软件维护的费用。软件维护的费用在总费用中的比重是在不断
增加的,这是软件维护有形的代价。另外还有无形的代价,即要占
有更多的资源。软件维护费用增加的占有原因是软件维护的生产率
非常低。软件维护的流程是什么?
答:软件维护的流程如下:知道维护申请报告、审查申请报告并批
准、运行维护并做详细记录、复审。软件维护的副作用有哪些?答:
维护的副作用有以下三种:
(1)编码副作用。在使用程序设计语言修改源代码时可能引入的错
误。
(2)数据副作用。在修改数据结构时,有可能造成软件设计与数据
结构不匹配,因而导致软件错误。数据副作用是修改软件信息结构
导致的结果。但它可以通过详细的设计文档加以控制。(3)文档副
作用。如果对可执行软件的修改没有反映在文档中,就会产生文档
副作用。
什么是软件可维护性?可维护性度量的特性是什么?
答:软件可维护性的定义:软件能够被理解、校正、适应及增强功
能的容易程度。软件的可维护性可用以下七个质量特性来衡量,即
可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和
效率。
提高可维护性的方法有哪些?答:(1)建立明确的软件质量目标。
(2)使用先进的软件开发技术和工具。(3)建立明确的质量保证。
(4)选择可维护性的程序设计语言。(5)改进程序的文档。第九
章习题参考答案
渐增模型有几种?各有何特点?
答:渐增模型有两种类型,一是增量构造模型,二是演化提交模型。
增量构造模型是在瀑布模型基础上,对一些阶段进行整体开发,对
另一些阶段进行增量开发。演化提交模型则是在瀑布模型的基础上,
所有阶段都进行增量开发,不仅是增量开发,也是增量提交。
2、快速原型模型有几种,各有什么特点?
答:快速原形模型根据原型的不同作用,有三类原型模型:探索型
原型:把原型用于开发的需求分析阶段,目的是要弄清用户的需求,
确定所期望的特性,并探索各种方案的可行性。它主要针对开发目
标模糊,用户与开发者对项目都缺乏经验的情况,通过对原型的开
发来明确用户的需求。
实验型原型:主要用于设计阶段,考核实现方安是否合适,能否实
现。对于一个大型系统,若对设计方案心中没有把握时,可通过这
种原型的开发来证实设计方案的正确性。
(3)演化型原型:它将原型思想扩展到软件开发的全过程,就是及早
向用户提交一个原型系统,在得到用户认可后,将原型系统不断扩
充演化为最终的软件系统。快速原型的开发步骤是什么?答:快速
原型的开发步骤是:(1)快速分析:在分析人员与用户的配合下,
迅速确定系统基本需求并开始构造原型。(2)构
造原型:在快速分析的基础上,根据基本需求说明尽快实现一
个可运行的系统。(3)运行原型:通过运行快速原型,发现问题,
消除误解,达到开发者也用户的充分协调。(4)评价原型:在运行
的基础上,评价原型的特性,分析运行效果是否满足用户的需求,
提出全面的修改意见。(5)修改:根据评价原型的活动结果进行修
改,修改过程代替初始的快速分析,从而实现原型开发的循环过程。
用户与开发者在这种循环过程中不断接近系统的最终要求。上述步
骤在软件工具的支持下往往是互相交融在一起的,而不再象瀑布模
型那样严格的阶段划分,线性推进。
评价快速原型模型的优缺点。答:快速原型的优点是:(1)可及
早为用户提供有用的产品。(2)可及早发现问题,随时纠正错误。
(3)减少技术、应用风险,缩短开发时间,减少费用、提高生产率。
(4)通过实际运行原型,提供直接评价系统的方法,促使用户主动
参与开发活动,加强了信息反馈,促进各类人员的协调,减少误解,
适应需求变化,能有效提高系统质量。快速原型的缺点是:1.缺乏丰
富而强有力的软件工具和开发环境。2.缺乏有效的管理机制,还未
建立起自己的开发标准。3.对设计开发环境要求较高。(4)在多次重
复改变原型的过程中,程序员会感到厌倦。(5)系统的易变性对测试
有一定影响,难于做到彻底测试,更新文档较为困难。
4、比瀑布模型与增量模型,指出增量模型的新思路。答:瀑布模型
属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完
成前一阶段的所有细节。瀑布模型很难适应需求可变、模糊不定的
软件系统的开发,而且在开发过程中用户很难参与进去,只有到开
发结束才能看到整个软件系统。这种理想的、线性的开发过程缺乏
灵活性,不适应实际的开发过程。增量模型是在瀑布模型的基础上
加以修改而形成的。属于非整体开发模型。
它的基本思路是为了使开发过程具有一定的灵活性和可修改性,在
开发过程中推迟某些阶段或所有阶段中的细节,从而较早的产生工
作软件。第十章习题参考答案
说明对象、类、类结构、消息的基本概念。
答:(1)对象:对象是人们要进行研究的任何事物,它不仅能表示具
体的事物,还能表示抽象的规则、计划或事件。对象包括有形实体、
作用、事件、性能说明等类型。对象具有状态和行为。一个对象用
数据值来描述它的状态,对象的操作则用于改变状态,对象及其操
作就是对象的行为。对象实现了数据和操作的结合,使数据和操作
封装于对象的统一体中。对象内的数据具有自己的操作,从而可灵
活地专门描述对象的独特行为,具有较强的独立性和自治性,其内
部状态不受或很少受外界的影响,具有很好的模块化特点。为软件
重用奠定了坚实的基础。(2)类:具有相同或相似性质的对象的抽象
就是类。因此,对象的抽象就是类,类的具体化就是对象,也可以
说类的实例是对象。(3)类结构:类与类之间的结构关系,包括一般・
具体结构关系和整体•部分结构关系。一般•具体关系结构称为分类结
构,也可以说是或关系或isa关系,类的这种层次结构可用来描述
现实世界中的一般化的抽象关系,通常越在上层的类越具有一般性
和共性,越在下层的类越具体、越细化。整体•部分结构称为组装结
构,它们之间的关系是一种与关系,或者是hasa关系。类的这种
层次关系可用来描述现实世界中的类的组成的抽象关系。上层的类
具有整体性,下层的类具有成员性。在类的层次结构中,通常上层
的类称为父类或超类,下层类称为子类。(4)消息:对象之间进行通
信的构造叫做消息。在对旬的操作中,当一个消息发送给某个对象
时,消息包含接收对象去执行某种操作的信息。接收消息的对象经
过解释,然后给予响应。这种通信机制称为消息传递。发送一条消
息的格式是对象名.方法名(参数)o
说明面向对象的特征和要素。答:面向对象的特征是:(1)对象
唯一性。每个对象都有自身唯一的标识,在对象生存期中,其标识
不变,不同的对象不能有不同的标识。(2)分类性。是指将具有一
致的数据结构(属性)和行为(操作)的对象抽象成类(3)继承性。是子
类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
(4)多态性。是指相同的操作或函数过程可以作用于多种类型的对
象上并获得不同的结果。面向对象的要素是:1.抽象。2.封装性(信
息隐蔽)(3)共享性。说明动态模型的特征,说明事件,脚本、状态
的含义。
答:动态模型是与时间和变化有关的系统性质,该模型描述了系统
的控制结构,它表示了瞬时的、行为化的系统控制性质,
它关心的是系统的控制,操作的执行顺序,它从对象的事件和状态
的角度出发,表现了相互行为。事件是指特定时刻发生的某件事情,
它是某事情发生的信号,它没有持续时间,它是一种相对性的快速
事件。脚本是完成系统某个功能事件序列,侧重于表达说明发生于
系统执行过程中的一个特定场景,用事件跟踪图表达。状态是对象
属性值的抽象。状态指明了对象对输入事件的响应。
说明功能模型的特征,比较功能模型的dfd和结构化方法的dfd异
同。
答:功能模型描述了系统的所有计算。功能模型指出发生了什么,
动态模型确定什么时候发生,而对象模型确定发生的客体。功能模
型表明一个计算如何从输入值得到输出值,它不考虑所计算的次序。
功能模型由多张数据流图组成。数据流图说明数据流是如何从外部
输入、经过操作和内部存储输出到外部的。功能模型也包括对象模
型中值的约束条件。
说明三种分析模型的关系。答:三种分析模型之间关系是这样的:
功能模型指出发生了什么,动态模型确定什么时候发生,而对象模
型确定发生的客体。说明对象建模的过程。
答:对象建模的过程如下:首先标识类和关联,因为它们影响了整
体结构和解决问题的方法,其次是增加属性,进一步描述类和关联
的基本网络,使用继承合并和组织类,最后将操作增加到类中去作
为构造动态模型和功能模型的副产品。(1)确定类。构造对象模型的
第一步是标出来自问题域的相关对象类,包括物理实体和概念。所
有类在应用中都必须有意义。检查问题陈述中的所有名词,产生暂
定类。然后去掉不必要的类和不正确的类。(2)准备数据字典。为所
有建模实体准备一个数据词典。准确描述各个类的精确含义,描述
当前问题中的类的范围,包括对类的成员、用法方面的假设或限制。
1.确定关联。两个或多个类之间的相互依赖就是关联。从问题中抽取
所有可能的关联表示,把它们记下来,但不要过早去细化这些表述。
2.确定属性。属性是个体对象的性质,通常用修饰性的名词词组来表
示。只考虑与具体应用直接相关的属性,不考虑那些超出问题范围
的属性,首先找出重要属性,避免那些只用于实现的属性,要为各
个属性取有意义的名字。3使用继承来细化类。4,完善对象模型。
说明功能建模的过程。答:功能建模的过程如下:(1)确定输入、
输出值(2)建立数据流图
10、说明对象设计的步骤。
答:对象设计要确定实现用到的类、关联的完整定义,接口的形式
以及实现操作方法的算法,可以增加实现必须的内部对象,对数据
结构和算法进行优化。1.获得操作2确定操作的目标对象3.算法设
计4.优化设计5.控制的实现6调整继承⑺关联的设计
第H—章习题参考答案
软件质量与软烝质量保证的含义是什么?
答:从实际应用来说,软件质量定义包括三个一致性:1.与所确定
的功能和性能需求的一致性;(2)与所成文的开发标准的一致性;3.
与所有专业开发的软件所期望的隐含特性的一致性。4.软件质量保证
是指确定、达到和维护所需要的软件质量而进行的所有有计划、有
系统的管理活动。影响软件质量的因素有哪些?答:影响软件质量
的因素分为可以直接度量的因素(如单位时间内千行代码中所产生的
错误)和只能间接度量的因素(如可用性和可维护性)。
什么是软件质量保证策略?软件质量保证的主要任务是什么?答:软
件质量保证策略是指软件质量保证工作的过程和侧重点。质量保证
的主要任务包括以下几点:1.正确定义用户的要求。2,技术方法的应
用。3,提高软件开发的工程能力。4.软件的复用。5.发挥每个开发
者的能力。6.组织外部力量协作。7.排除无效劳动。(8)提高计划和
管理质量。程序复杂性的度量方法有哪些?
答:软件复杂性的度量方法有:1.代码行度量法:以源代码行数作
为程序复杂性的度量。2、mccabe度量法:一种基于程序控制流的
复杂性度量方法。
能是软件的可靠性?它们能否定量计算?
答:软件可靠性是指在给定的时间内,在规定的环境条件下系统完
成所指定功能的概率。衡量软件可靠性的两个常用指标是平均失效
等待时间mttf和平均失效间隔时间mtbfo就是说可以定量计算。
7、说明容错软件的定义与容错的一般方法。
答:容错软件的定义有四种,指规定功能的软件,(1)在一定程度上
对自身错误的作用具有屏蔽能力的软件。(2)在一定程度上能从错误
状态自动恢复到正常状态的软件。(3)在因错误而发生错误时,仍然
能在一定程度上完成预期的功能的软件。(4)在一定程度上具有容错
能力的软件。
实现容错技术的主要手段是冗余。冗余通常分为四类:1.结构冗余,
又分为静态、动态和混合冗余三种。2.信息冗余3.时间冗余(4)冗余
附加技术第十二章习题参考答案
软件工程管理包括哪些内容?
答:软件工程管理的具体内容包括对开发人员、组织机构、用户、
文档资料等方面的管理。
2、软件项目计划中包括哪些内容?
答:软件项目计划内容包括:1.范围2.资源3.进度安排4成本估算
(5)培训计划
3、软件开发成本估算方法有哪几种?答:软件开发成本估算的方法
主要有:(1)自顶向下估算方法(2)自底向上估算方法(3)差别
估算方法
以及专家估算法、类推估算法、算式估算法等几类方法。4、什么
是软件配置管理?什么是基线?
答:软件配置管理,简称scm(softwareconfiguration
management),是指一组管理整个软件生存期各阶段中变更的活动。
软件配置管理技术可以使软件变更所产生的错误达到最小并最有效
地提高生产率。
基线:是软件生存期中各开发阶段的一个特定点,它的作用是把开
发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断
开,以便于检查与肯定阶段成果。
5、软件工程标准化的意义是什么?都有哪些软件工程标准?答:软
件工程标准化可以为软件工程各个阶段的活动提供统一的行动规范
和衡量准则,使得各种工作都能有章可循。软件工程标准根据其制
定机构与适用范围,可分为:1•国际标准2.国家标准3.行业标准4.
企业规范5、项目(课题)规范6、请说明软件文档的作用?
答:软件文档的作用是:1,提高软件开发过程的能见度;2.提高开发
效率;3,作为开发人员阶段工作成果和结束标志;4.记录开发过程的
有关信息便于使用与维护;5.提供软件运行、维护和培训有关资料;
6.便于用户了解软件功能、性能。第十三章习题参考答案
1、什么是软件开发环境?请列出其发展情况。
答:软件开发环境是指在计算机的基本软件的基础上,为支持软件
的开发而提供的一组工具软件系统。具体地说,软件开发环境是一
组相关工具的集合。这些相关工具按一定的开发方法或一定开发处
理模型组织起来的,这些相关工具支持整个软件生存期的各阶段或
部分阶段。软件开发环境的发展阶段:
(1)70年代,软件开发与设计方法出现了结构化分析技术的一整套相
互衔接的sa-sd的方法学。与此相适应的计算机辅助软件工程技术
则主要由开发孤立的软件工具而逐步向程序设计环境的开发和使用
方向发展,出现了第一代的基于正文的case工具。
(2)80年代中期与后期,主要是实时系统设计方法,以及面向对象的
分析和设计方法的发展,它克服了结构化技术的缺点。在这期间开
发了第二代的case工具,其特点是支持使用图形表示的结构化方法,
如数据流图与结构图。其开发环境表现在提高环境中工具的集成性
方面,如集成的项目支持环境。(3)80年代后期和90年代初期出现
了基于信息工程case技术,这种环境集成了用于项目计划、分析、
设计、编程、测试和维护的一个工具箱的集合。
(4)90年代出现一系列集成的case软件产品,用以实现需求管理、
应用程序分析设计和建模、编码、软件质量保证和测试、过程和项
目管理及文档生成管理等软件开发工作的规范化、工程化和自动化。
2、请叙述软件开发环境的分类。答:软件开发环境可按解决的问题、
软件开发环境的演变趋向和集成化程度进行分类:(1)按解决的问题
可分为:程序设计环境、系统合成环境、项目管理环境三类。(2)按
软件开发环境的演变趋向可分为:以语言为中心的环境、工具箱环
境和基于方法的环境三类。(3)按集成化程度有第一代、第二代、第
三代的开发环境。
3、何谓软件工具?通常包含哪几部分?答:软件工具的定义是:可
用来帮助和支持软件需求分析、软件开发、测试、维护、模拟、移
植或管理而编制的计算机程序或软件。软件工具是一个程序系统。
软件工具通常由工具、工具接口和工具用户接口三
【篇三:软件工程课后题答案】
说明软件工程研究的内容。
软件工程研究的内容包括软件开发方法、软件开发模型、软件支持
过程和软件管理过程。其中软件开发方法的内容又涵盖市场调研、
正式立项、需求分析、项目策划、概要设计、详细设计、编程、测
试、试运行、产品发布、用户培训、产品复制、销售、实施、系统
维护、版本升级。常用的软件开发模型有瀑布模型、迭代模型、增
量模型和原型模型。软件支持过程由所支持的case工具组成,常用
的case工具有
powerdesigner和rationalrose。软件管理过程主要有cmmi>
iso9000、微软企业文化和敏捷文化
现象。
1-3请读者详细解释软件的定义和程序的定义。
软件的定义:软件=程序+数据+文档,这里的程序是指程序系统。
这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、
运行数据、维护数据,也包括软件企业积累的项目工程数据和项目
管理数据中的大量决策原始记录数据。这里的文档指的是软件开发
过程中的分析、设计、实现、测试、维护文档、管理文档。
现在有一种新提法正在引起关注,这种提法是:软件=知识+程序
+数据+文档。程序是计算机为完成特定任务而执行的指令的有序
集合。从应用的角度可理解为:面向过程的程序=算法+数据结构
面向对象的程序=对象+信息面向构件的程序=构件+构架。
1・5.读者同意“四种开发方法”和“五个面向理论”的提法吗?为什么?
“四种开发方法”是指“面向过程的方法、面向对象的方法、面向数据
的方法、形式化方法,面向过程的方法来源于面向过程的程序设计,
面向对象的方法来源于面向对象的程序设计,面向数据的方法就是
面向元数据的方法,它来源于关系数据库程序设计,形式化方法来
源于离散数学中的集合运算和逻辑运算。四种方法各适用于不同的
场合,各有优缺点,互相促进,构成一个开发方法论的多极化世界。
“五个面向理论”是指“面向流程分析、面向数据设计、面向对象实现、
面向功能测试、面向过程管理力它是在综合“四种开发方法”各自的
优点之后提出的软件工程实施理论,是对前者的继承与发展。总之,
上述提法既精彩又实用。
1-6怎样理解软件工程的支持过程?
软件工程的支持过程是由支持软件生存周期各个阶段的生产工具所
组成。就是说将一个软件的生存周期划分为市场调研、立项、需求
分析、策划、概要设计、详细设计、编程、单位测试、集成测试、
运行、维护这几个过程中,在这些过程中需要配套的工具来支持,
比如需求分析工具、设计工具、实现工具、测试工具、维护工具、
配置工具,开发环境等。
第二章:
2-1.为什么要选择软件开发模型?软件开发模型与软件生存周期有
什么关系?
因为软件开发模型是软件工程研究的四大内容之一,它虽然不是软
件工程研究的重点,但是在宏观上特别重要。软件公司的项目组在
开发一个大项目或产品时,首先在技术上必须选择一个开发模型,
使开发模型非常适合这个项目或产品的生存周期;随后通过对生存
周期的裁减,来给出适合与本项目或产品的软件生存周期定义。
软件的开发模型与软件生存周期有关:不同的开发模型,可能对应
着不同的生存周期。生存周期不同,该软件的开发阶段划分、评审
次数、基线标准都有所不同,甚至维护方法都有所区别。
2-2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。
答案如表8-2所示:
表8-2开发模型优缺点
3-2立项的具体表现形式是什么?
企业的市场销售部门在市场调研的基础上,分析该产品是否有市场
前景,以及企业是否有能力开发出该产品,并具体列出系统的功能、
性能、接口和运行环境等方面的需求情况,当前客户群和潜在客户
群情况,以及投入产出分析,然后写出立项建议书,召开立项论证
会,决定是否立项。
3-3立项书的编制者为什么主要是软件公司的市场销售人员,而不是
开发人员?
软件开发出来终归要推向市场的,软件能不能被市场接受是软件开
发成功的标准。市场销售人员长期和市场客户打交道,他们最了解
客户和市场的需求,最知道什么样的产品具有巨大商机。
第四章:
4-2.需求分析的目的是什么?需求分析的难点在哪里?
软件需求分析,其目的是用于说明软件产品或软件项目需要满足的
条件和限制。在软件工程项目中首先要获取用户的需求,通过对软
件需要的提取、分析、文档化以及验证,为进一步的设计和实现提
供
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 遥感数据深度学习-洞察阐释
- 小学五年级下学期 Recycle
- 可持续发展视角下的风险管理-碳中和目标下的商品定价-洞察阐释
- 农业科技产业园品牌建设与市场推广策略
- 深圳初中考试题库及答案
- 2025合作伙伴协议书(合同版本)
- 2025机械设备销售版合同2
- 2025双方交易承包保障合同模板
- 智研咨询发布-中国航空装备行业产业链全景分析及发展趋势预测报告
- 智研咨询发布:2024年中国科考船行业市场现状及投资前景分析报告
- 2025年高中化学学业水平合格性考试模拟试卷试题(含答案)
- 第23课《“蛟龙”探海》课件-2024-2025学年统编版语文七年级下册第六单元
- 四川省绵阳市2023-2024学年八年级下学期6月期末数学试卷(含详解)
- 2025-2030中国哈喹诺行业市场现状供需分析及投资评估规划分析研究报告
- 建设工程监理研究预测报告-中国建设工程监理行业现状与发展前景预测报告
- 东莞2025年东莞日报社公开招聘7人笔试历年参考题库附带答案详解
- 水利安全风险防控“六项机制”与安全生产培训
- DBJ50T-147-2025 住宅电气设计标准
- 2025年山东省潍坊安丘市中考一模数学试题(含部分答案)
- 《无人机摄影技术》课件
- QGDW12505-2025电化学储能电站安全风险评估规范
评论
0/150
提交评论