软件工程复习

合集下载

软件工程综合复习题连答案

软件工程综合复习题连答案

《软件工程》综合复习资料第一章软件工程概述一、选择题1、瀑布模型本质上是一种()。

A、线性迭代模型B、顺序迭代模型C、线性顺序模型D、及早见产品模型2、计算机辅助软件工程,简称()。

A、SAB、SDC、SCD、CASE3、以下判断正确的是()。

A、所谓软件开发就是编写程序。

B、利用软件工程的思想,已成功的解决了软件危机。

C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。

D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。

4、_____是以提高软件质量为目的的技术活动。

A.技术创新B.测试C.技术创造D.技术评审5、瀑布模型的存在问题是()。

A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求6、软件生命周期中所花费用最多的阶段是()。

A.详细设计B.软件编码C.软件测试D.软件维护7、计算机系统就是()A.主机,显示器,硬盘,软驱,打印机等。

B.CPU,存储器,控制器,I/O接口及设备。

C.计算机硬件系统和软件系统。

D.计算机及其应用系统。

8、产生软件危机的原因主要与两个方面的问题有关:A.软件在计算机中很难识别,存在磁盘中也看不到。

B.软件设计对人的智商要求很高,也要求很高的资金投入。

C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。

D.软件很难理解,硬件也很复杂。

9、软件开发瀑布模型中的软件定义时期各个阶段依次是()A.可行性研究,问题定义,需求分析。

B.问题定义,可行性研究,需求分析。

C.可行性研究,需求分析,问题定义。

D.以上顺序都不对。

10、下列选项中()是软件开发中存在不正确的观念、方法。

A.重编程、轻需求B.重开发,轻维护C.重技术,轻管理D.以上三条都是二、填空题1、软件工程的三个基本要素包括()、()和()。

2、一般软件应该有三部分组成:()、()和()。

3、按软件的功能可将软件分成()、()和()等三类。

软件工程导论复习重点总结很全第六版

软件工程导论复习重点总结很全第六版

第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。

软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。

软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。

1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。

应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。

应当开发和使用更好旳软件工具。

总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。

1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。

采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。

(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。

软件工程复习题库带答案完整版

软件工程复习题库带答案完整版

软件工程复习题库带答案完整版一、选择题1、白盒测试法是通过分析程序的(C)来设计测试用例的。

A.应用范围B.功能C.内部逻辑D.输入数据2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。

A.风险产生的原因B.风险监控技术C.风险能否消除D.风险发生所产生的后果3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。

A.好的计划B.不断的发布C.反馈和勇气D.持续集成4、等价分类法的关键是(C)。

A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D.确定系统中相同和不同的部分5、下列不属于黑盒测试的技术是(A)。

A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能6、为了提高模块的独立性,模块之间最好是(D)耦合。

A.控制耦合B.公共耦合C.内容耦合D.数据耦合7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。

A.角色B.活动C.制品D.工作流8、功能性注释嵌入在源程序内部,它是用来说明(A)。

A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能9、在结构化分析方法中,数据字典是重要的文档。

对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。

A.只有结构化语言 B.有结构化语言和判定树C.有结构化语言、判定树和判定表 D.有判定树和判定表10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。

A.正确性 B.适应性C.完善性 D.预防性11、软件危机的主要原因是(A)。

A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后12、13、下列关于面向对象分析与设计说法错误的是(C)。

A.面向对象的设计以面向对象分析为基础归纳出类B.建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象C.面向对象的设计是面向对象分析的另一种思维方式D.面向对象的设计是面向对象分析进一步的细化和更高的抽象14、在软件的可行性分析中,可以从不同的角度对软件进行研究,其中(B)是从软件的功能可行性角度考虑的。

软件工程复习资料

软件工程复习资料

软件工程1、软件的概念:软件是计算机系统中与硬件相依存的另一部分,包括程序、数据、以及相关的文档。

2、软件的组成:程序、数据、文档。

3、软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

4、软件危机消除的办法:P51、必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,特别要吸取几十年来人类从事计算机硬件研究和开发的经验教训。

2、应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早起发展阶段形成的一些错误概念和做法3、应该开发和使用更好的软件工具。

总之,解决软件危机,既要有技术措施,又要有必要的组织管理措施。

5、软件工程的含义:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

6、软件生命周期的过程以及任务。

(1)问题定义(2)可行性研究(3)需求分析(4)总体设计(5)详细设计(6)编码和单元测试(7)综合测试(8)软件维护****************************以上为第一章******************第二章●数据流图有四种成分:源点或终点,处理,数据存储,数据流●画DFD(数据流图)的指导原则:1.符号要使用标准符号2.恰当的命名3.流入流出的数据流的条数一致4.名字要保值一致(平衡)5.遵守加工编号规则6.处理必须既有输入流又有输出流(注意:源点和终点可以相同也可以不同)●数据字典的作用:数据字典(DD)的作用也正是在软件分析和设计过程中给人提供关于数据的描述信息。

●数据字典的内容:(1)、数据流(2)、数据流分量即数据元素(3)、数据存储(4)、处理*********************** *******以上为第二章************************************第三章●实体-联系图(ER)图的概念:ER图中包含了实体、联系和属性3中基本成分,通常用矩形框代表实体,用连接先关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线吧实体(或关系)与其属性连接起来。

软件工程复习题(带答案)

软件工程复习题(带答案)

软件工程复习题(带答案)软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。

A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。

《软件工程》复习题及答案

《软件工程》复习题及答案
软件工程复习题
第一部分
一、选择题:
1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生
2.瀑布模型本质上是一种(A)模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品
3.瀑布模型存在的问题是(B)。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求
数据流图的基本符号的意思:
1.矩形表示数据的外部实体;
2.圆角的矩形表示变换数据的处理逻辑;
3.少右面的边矩形表示数据的存储;
4.箭头表示数据流。
8.什么是数据字典?其作用是什么?它有哪些条目?
答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。
作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。
32.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当的(C)上。
A.配置项B.程序C.基线D.过程
33.在软件设计中应该保持模块的独立性原则,( A )反映模块独立性。
A.耦合和内聚 B.数据和模块 C. 模块内部的凝聚力 D.模块之间的耦合
二、简答题
1.什么是软件工程?软件工程的目标是什么?
A、1%B、20%C、8%D、50%
13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》
B.《中华人民共和国计算机信息系统安全保护条例》
C.《中华人民共和国著作权法》
D.《计算机病毒防治管理办法》

软件工程复习题及答案(完整)

一、选择1、文档是软件产品的一部分,没有文档的软件就不称其为软件。

对2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。

错3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。

错4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。

错5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。

错6、软件配置管理是一组标识、组织和控制修改源程序的活动。

错7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。

错8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。

对9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。

对10、面向对象的分析是面向计算机系统建立软件系统的对象模型。

错11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

A 软件过程B 软件测试C 软件生存周期D 软件工程12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。

A 质量控制B 质量管理C 质量策划D 质量改进13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。

除第1级外,每个等级都包含了实现该成熟度等级目标的若干(B)。

A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程14、在软件开发的各种资源中,(D)是最重要的资源。

A 开发工具B 方法C 硬件环境D 人员15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。

A 固有的B 人为的C 可消除的D 不可降低的16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。

A 业务需求B 功能需求C 非功能需求D 用户需求17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。

软件工程 复习资料

软件工程复习大纲考试主要章节:第一章软件与软件工程第二章软件项目管理第三章计算机系统工程第3.2节第五章面向数据流的分析方法第八章软件设计基础第十四章软件测试其他:上课讲义题型一、选择题(单选或多选)1、软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统(●软件是一种逻辑产品,具有无形性;●软件产品的生产主要是研制;●软件不存在磨损和老化问题,但存在退化问题;●软件产品的生产主要是脑力劳动;●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;● 软件具有“复杂性”,其开发和运行常受到计算机系统的限制。

)2、软件工程三要素()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型和方法3、包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4、软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下5、软件工程的目标()A、易于维护B、低的开发成本C、高性能D、短的开发周期(注意:缩短开发周期是他的目标,但短的开发周期就不是了)6、需求分析的主要目的是(BC)。

A) 系统开发的具体方案B) 进一步确定用户的需求C) 解决系统是“做什么的问题”D) 解决系统是“如何做的问题”7、SA法的主要描述手段有(B)。

A) 系统流程图和模块图B) DFD图、数据词典、加工说明C) 软件结构图、加工说明D) 功能结构图、加工说明8、画分层DFD图的基本原则有(ACD)。

A) 数据守恒原则B) 分解的可靠性原则C) 子、父图平衡的原则D) 数据流封闭的原则9、在E-R模型中,包含以下基本成分(C)。

A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、联系10、画DFD图的主要目的是(A D)。

A) 作为需求分析阶段用户与开发者之间交流信息的工具B) 对系统的数据结构进行描述C) 对目标系统的层次结构进行描述D) 作为分析和设计的工具11、数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成(C)。

国家开放大学《软件工程》复习资料

《软件工程》复习资料一、选择题1.软件工程的研究内容具有层次化结构,最底层是质量保证层,中问层是(C),最主.层是工具层。

A过程层 B.方法层C.过程层和方法层 D.系统层2.可行性研究的四大要素是(D)。

A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平巳经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性3.针对需求不确定的软件开发,比较好的模型是(A)。

A.快速原型化模型B.瀑布模型c.软件成熟度模型。

.系统化模型4.下面的哪个选项不是软件工程的宗旨?(D)A.开发满足用户需求的软件B.研究算法C.及时交付软件D.生产无故障软件5.瀑布模型的主要特点是(A)。

A.将开发过程严格地划分为一系列有序活动B.将开发过程分解为阶段c.提供了有效的管理模式D.缺乏灵活性6.软件结构图中没有(D)元素。

A.模块B.调用参数C.返回结果D.判断7.结构化设计方法划分模块的原则是(C)A.模块扇出小于5B.模块扇人小于5c.低搞合,高内聚 D.模块深度小于78.配置视图体现了系统的实现环境,反映系统的(B)。

A.逻辑架构B.物理架构C组成结构 D.体系结构9.角色可以有四种类型:系统的使用者,硬件设备,外部系统和(D)。

A.数据库B.接口C.对象D.时间10.功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。

在面向对象方法中,由(C)实现。

A.场景描述B.活动图和1场景描述C.用例图和场景描述D.交互图和场景描述11.在分析模型内表示协调,}I顶序、事务处理以及控制其他对象的类是(A)。

A.控制类B.组件类C.主函数D.事务类12.而信息隐藏的核心内容是(C)。

A.人把数据都放在公共的区域B.数据不能被其他模块访问C.一个模块的内部信息不允许其他模块直接访问D.把信息加密,只能让有密钥的模块访问13.面向过程的方法最关心的是过程,而过程实施的对象是作为过程(A)传递的。

《软件工程》11套考试复习练习题、作业题(含答案)

作业1:1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。

其中,( A )是按事先设计的功能和性能要求执行的指令序列。

( B )是使程序能够正确操纵信息的数据结构。

( C )是与程序开发、维护和使用有关的图文材料。

供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2. 开发软件时对提高软件开发人员工作效率至关重要的是( A )。

软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。

供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3. 从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。

有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。

第二阶段(1950年代末~1960年代末)称为“基本软件期”。

出现了( A ),并逐渐普及。

随着( B )的发展,编译技术也有较大的发展。

第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。

这一时期,与硬件费用下降相反,软件开发费急剧上升。

人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。

第四阶段(1970年代中期~现在)称为“软件工程时期”。

软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、(G )及其整体有关的各种管理技术。

供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.软件的概念:软件是计算机系统屮的一个重要组成部分,它是包括程序相关文档的完整集合。

其中,程序是桉事先设计的功能和性能要求执行的指令序列;文档是与程序开发、维护和使用有关的图文材料。

同时,软件是用户和硬件之间的接口,用户通过软件与计算机进行交互。

软件由两部分组成:计算机程序和相关文档。

软件是用户和硬件之间的接口。

2.软件的特点1)软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。

2)软件是开发出来的,不是制造出来的。

3)软件可能被废弃,但不会被用坏。

4)以往的软件大多是定制的,而不是装配的。

5)软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。

3.软件的分类(按照软件的作用)1)系统软件:能与计算机系统紧密配合在一起,使计算机系统各部分、相关软件和数据协调高效工作的软件。

2)应用软件:在系统软件的支持下,在特定领域内开发,为特定目的服务的一类软件。

3)支撑软件:也叫工具软件,是协助用户开发软件的工具性软件。

4)可复用软件:各种标准函数库,其中的标准函数不需构造,可直接使用。

4. 软件的发展1)程序设计阶段(1946~1956年)这一阶段从第一台计算机上的第一个程序出现持续到实用的高级程序设计语言出现以前。

这一阶段系统开发的主要特点是:(1)程序设计是一种由人发挥创造才能的技术领域。

(2)程序开发者只是为了满足自己的需要,对和程序有关的文档的重要性认识不足。

2)程序系统阶段(1956~1968年)这一阶段从实用的高级程序设计语言出现持续到软件工程出现。

采用了实用的高级程序设计语言,出现了操作系统,开始使用数据库及其管理系统。

在软件发展的这个阶段,由于软件的复杂程度提高,规模增大,研制周期较长,而软件技术的进步不能满足发展的要求,软件质量得不到保证,成本不断提升,软件开发的生产率无法提高,致使问题积累起来,形成了日益尖锐的矛盾。

这就导致了软件危机。

问题归结起来有:(1)软件开发无计划性;(2)软件需求不充分;(3)软件开发过程无规范;(4)软件产品无译测手段。

3)软件工程阶段(1968年以来)软件工程出现以后迄今为软件工程阶段。

这一阶段的特点:①软件应用领域不断扩展;②开发方式逐步由个体合作方式转向工程方式;③致力研究软件开发过程本身,研究各种软件开发范型与模型;④除了软件传统技术继续发展外,人们着重研究以智能化、自动化、集成化、并行化以及自然化为目标的软件开发新技术;⑤注意研究软件理论,特别是软件开发过程的本质。

5.软件工程的定义SE(Software Engineering)是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经过时间考验而证明是正确的管理技术和当前能够得到的最好技术方法结合起来,以较少的代价获得高质量的软件并维护它。

6.软件工程的框架软件工程目标:生产具有正确性、可用性及开销适宜的产品。

1)正确性:表明软件产品达到预期功能的程度2)可用性:表明软件基本结构、实现和文档为用户所接受的程度。

3)开销适宜:表明软件开发、运行的整个开销满足用户要求的程度。

软件工程活动:生产一个最终满足需求并达到工程目标要求的软件产品所需要的一系列步骤。

1)需求分析:需求获取—目的在于获取软件需求定义;分析建模—目的在于生成详细的分析模型和需求规格说明。

2)设计:概要设计—建立整个软件体系结构;详细设计—产生编程人员可用的模块说明。

3)实现:把设计结果转换为可执行的程序代码。

4)验证和确认:贯穿于整个开发过程,目的确保产品满足用户的要求。

5)支持:包括修改和完善。

软件工程的基本原则:①选取适宜的开发范型。

在系统设计中,软件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要进行权衡。

因此,必须认清需求定义的易变性,采用适当的开发范型。

②采用合适的设计方法。

在软件设计中,通常需要考虑软件的模块化、抽象和信息隐蔽、局部化、一致性、适应性等特征。

合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

③提供高质量的工具支持。

在软件工程中,软件工具与环境对软件工程的支持非常重要。

④重视开发过程的管理。

软件工程的管理工作直接影响能否有效利用可用资源、生产满足要求的软件产品以以及提高软件组织的生产能力等问题。

7.软件工程的基本原理1)按软件生存周期分阶段制定计划并认真实施2)坚持进行阶段评审3)坚持严格的产品控制4)使用现代程序设计技术5)明确责任6)用人少而精7)不断改进开发过程8.软件生存周期定义:软件生存周期是软件产品的一系列相关活动的整个生命周期,即从形成概念开始,经过开发、交付使用、在使用中不断修改和演进,直到最终被废弃,让位于新的软件产品为止的整个时期。

软件生存周期各个阶段所要完成的基本任务:1)问题定义和可行性研究关键问题:“到底要解决什么问题?在成本和时间的限制条件下能否解决问题?是否值得做?”任务:确定总目标,由软件分析员和用户合作,探讨解决问题的可能方案,并研究完成该项任务的可行性分析,做出成本效值评估。

2)需求分析关键问题:“目标系统应当做什么?”任务:对用户要求进行分析,明确目标系统的功能和非功能需求,并建立分析建模,对目标系统做彻底细化,了解系统的各种细节。

3)软件设计关键问题:“目标系统如何做?”任务:在设计阶段制定设计方案,把已经确定的各项需求转换成一个相应的软件体系结构。

4)程序编码与单元测试关键问题:“编写正确的、可维护的程序代码。

”任务:选择合适的编程语言,把软件设计转换成计算机可以接受的程序代码,并进行单元测试、调试。

5)综合测试主要任务:做集成测试和确认测试。

6)软件维护软件在运行中可能由于多方面的原因,需要对它进行修改。

分4类:改正性维护、适应性维护、完善性维护、预防性维护。

9.软件过程的定义:从软件开发的观点看,它就是使用适当的资源,为开发软件进行的一组开发活动,在过程结束时将用户要求转化为软件产品。

10. 软件过程活动1)软件规格说明:定义软件产品的功能和操作约束。

2)软件设计与实现:生产满足规格说明的软件产品。

3)软件确认:确认软件产品的有效性,确保该软件所做的是用户所需要的。

4)软件演进:改进软件产品,满足用户新的需求。

11.软件过程模型定义:软件过程模型也称为软件生存周期模型,它是对软件过程的一种抽象表达。

1)瀑布模型定义(原理):瀑布模型规定了各项软件工程活动,并且规定了这些活动自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,所以被称为瀑布模型。

特点:1)为软件开发和软件维护提供了一种有效的管理;2)消除非结构化软件,降低软件复杂度,促进软件开发工程化;3)缺乏灵活性,无法解决需求不明确或不准的问题。

优点:适用于需求比较明确的场合,反应了软件工程的实现,特别是较大的工程项目中。

缺点:1)各阶段划分固定,缺乏灵活性,产生大量文档,增加了工作量;2)开发模型是线性的,等到开发过程完成才能看到开发成果,增加了开发的风险;3)早起的错误要等到后期测试才能发现,带来严重后果。

基本活动:1)需求分析与定义2)系统与软件设计3)实现和单元测试4)集成和系统测试5)运行和维护2)快速原型模型(又叫演进模型)定义(原理):先做试验开发,其目标只是在探索可行性,弄清楚软件需求;然后在此基础上获得较为满意的软件产品。

通常第一次得到的试验性产品称为“原型”。

两种类型:1)演进开发:目的是与客户一起工作,通过一次次向客户演示原型系统并征求他们的意见,再根据他们的要求不断改进,从而演化出满足客户需求的可交付的最终系统;2)废弃原型:目的是通过建立原型,借助原型与客户沟通,探索与理解客户的真正需求规格说明。

原型是一种试验品,参考它来开发系统,但不采取扩充它以形成最终系统的方法,原型一起作用立即废弃。

优点:1)比瀑布方法更有效,可满足客户直接的需求;2)可增量式地开发出需求规格说明,开发出一部分,向用户展示一部分,用户能够及早看到部分软件,及早发现问题。

缺点:过程不可见,系统常常构造的不合理,可能要求特殊的工具和技术。

问题:1)过程是不可见的2)系统常常构造的不合理3)可能要求特殊的工具和技术3)增量模型定义(原理):把软件产品作为一系列的增量构件来设计、实现和确认。

每个构件由多个相互作用的模块构成,并且能够完成特定的功能。

优点:1)客户不必等到整个系统全部完成就能得到所需要的东西;2)客户可使用较早的增量构件作为原型,用于取得经验,从而获得稍后的增量构件的需求;3)项目失败的风险较低;4)优先级最高的服务首先交付,然后对其他增量构件逐次集成进来。

缺点:很难表示所有增量构件的所要求的公共工具。

4)螺旋模型原理:该模型将瀑布模型和快速原型模型结合起来,并且加入两种模型均忽略了的风险分析。

在螺旋模型中,软件过程表示成一个螺线,在螺线上的每一个循环表示过程的一个阶段。

沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件模型。

活动:1)制定计划2)风险分析3)实施工程4)客户评估优点:包含了其他的过程模型,每一个螺线周期中可以使用不同的过程模型,有效的控制风险,适合于大型软件的开发。

缺点:使用户接受和相信螺旋模型不容易,且该模型的使用需要具有相当丰富的风险评估经验和专门的知识。

5)喷泉模型原理:它主要提供了对软件复用和面向对象开发方法的支持。

“喷泉”一词本身体现了迭代和无间隙的特性。

特点:1)各阶段相互重叠,反映了软件过程并行性的特点;2)以分析为基础,在分析阶段消耗的资源最多;3)反映了软件过程迭代的自然特性;4)强调增量式开发,整个过程是一个迭代的逐步细化的过程;5)是对象驱动的过程;6)不仅反映了系统的开发全过程,也反映了对象族的开发和复用的过程。

优点:可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。

此外这种模型要求管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

6)Rational统一开发过程RUP原理:Rational统一过程(RUP)是用例驱动的、以体系结构为核心的、迭代的增量的过程。

三个视角来描述:动态视角:给出模型随时间所经历的各个阶段静态视角:给出所规定的过程活动实践视角:建议在过程中采用最佳软件工程实践RUP中的四个阶段:初始—建立一个系统业务的用例;细化—增进对问题领域的理解;构造—构造整个产品,逐步完善视图、体系结构和计划;移交—关注如何将系统从开发部门移交给用户,并使之在实际环境中工作。

优点:将软件过程阶段的分解和工作流,将软件部署到用户看做是过程的一部分,可以每个阶段使用相关的技术活动。

相关文档
最新文档