ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:443.21KB ,
资源ID:25633732      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25633732.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(天津专升本软件工程导论.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

天津专升本软件工程导论.docx

1、天津专升本软件工程导论软件工程导论目 录第1章 软件工程学概述1、软件的定义软件=程序+数据结构+文档:(1)完成特定功能的程序;(2)适合程序处理的数据结构;(3)描述程序功能、如何操作和使用的相关文档。2、什么是软件危机?它的典型表现有哪些?产生它的原因是什么?软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。典型表现:(1)对软件开发成本和进度的估计极不准确;(2)软件产品质量较差,可靠性低;(3)用户对开发出来的软件产品不满意;(4)开发出来的软件几乎是不可维护的;(5)软件产品缺少应有的文档资料;(6)软件产品的供不应求。客观原因(软件的特征):软件是开发的,而不是制造

2、的;软件不磨损,但退化;自定义特性使其不同于其他的硬件产品的标准化,软件都规模庞大,而程序的复杂性是随其规模的扩大呈指数增加。主观原因:对用户要求没有完整和准确的认识就匆忙编写程序;对软件的开发过程的认识不准确;对软件质量的重视不够是造成软件开发成本激增的主要原因;轻视软件维护将是一个重大的错误。3、什么是软件工程?它的本质特征有哪些?软件工程:采用工程的概念、原理、技术和方法,并结合正确的管理技术和能够得到的最先进的技术方法,经济有效地开发和维护软件的一门新兴工程学科。本质特征:一般更关注于大型软件系统的开发;其中心任务是控制整个软件系统的复杂性;提高软件开发的效率;加强人员和技术的管理;更

3、好地满足用户的需求。4、简述软件工程的基本原理。(分别在每个要点后补充说明)用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代设计技术;结果应能清楚地审查;开发小组的成员应该少而精;承认不断改进软件工程实践的必要性。5、软件工程方法学:主要包含3个要素,方法、工具和过程;应用最广泛的有传统方法学;面向对象方法学。6、什么是软件生命周期?它分为哪三个阶段,每个阶段又包含哪几个时期?软件生命周期:一个软件从定义、开发、使用和维护,直至最终被废弃,需要经历的漫长时期。软件定义问题定义:明确软件系统需要解决的问题是什么。确定问题的性质;软件目标和规模;形成书面报告。可行性研

4、究:确定软件系统是否值得去解。高层次的系统分析和设计;估算系统的成本和效益;产生文档可行性研究报告。需求分析:解决这些问题需要系统做什么。与用户交流;生成系统逻辑模型;产生文档软件需求规格说明书。软件开发总体设计(概要设计):应该怎样实现目标系统。设计出实现目标系统的方案;设计软件结构,确定模块及之间关系。详细设计(模块设计):如何具体地实现这个系统。详细的设计每个模块的算法和数据结构。编码和单元测试:写代码,测试每个模块。选取程序设计语言;写出容易理解和维护的程序模块;对每一个模块进行严格的测试)。综合测试:通过各类测试和调试来完善软件。集成测试 + 验收测试(用户参加);保存测试计划、测试

5、方案和测试结果。运行维护软件维护:通过各种必须的维护活动使系统持久地满足用户的需要。维护活动有:改正性维护;适应性维护; 完善性维护;预防性维护。7、软件生命周期的模型瀑布模型(线性模型之一)特点:(1)各阶段之间有依赖性和严格的顺序性;(2)推迟实现 典型特点;(3)严格的阶段质保;(4)文档驱动。 问题:(1)实际的项目很少顺序严格;(2)用户往往难以给出具体、正确、完整的要求;(3)开发人员“阻塞状态”严重。(快速)原型模型特点:(1) 出品速度快;(2) 逐步求精;(3) 开发阶段迭代。问题:(1) 实现过程中不应有的折衷方案;(2) 开发者急于完成原型而忽略了整体设计和可维护性;(3

6、) 用户的参与过多也造成了软件开发管理的混乱。 适用范围:结构和算法不复杂的系统增量模型(渐增模型)特点:(1) 结合了线性模型和原型模型的特点;(2) 每个增量可以结合原型法;(3) 系统的问世提前“增量1”问题:开放的软件体系结构;中心思想:“渐进开发,逐步完善”喷泉模型:典型的面向对象的软件过程模型之一,“喷泉”较好地体现了面向对象软件开发过程迭代和无缝的特性。第2章 可行性研究1、为什么要进行可行性研究?目标:“用最小的代价和尽可能短的时间判断问题是否值得去解?”实质:高层次的系统分析和设计主要任务:(1)分析和澄清问题定义;(2)导出系统的逻辑模型;(3)探索各种解法并研究每种解法的

7、可行性;(4)制定粗略的进度、建议和计划。2、研究软件工程项目的可行性要从哪几个方面着手?技术可行性;经济可行性;操作可行性;社会可行性3、简述软件工程的可行性研究的步骤?(1)复查系统规模与目标:访问关键人员,复查确认系统规模和目标 ;清晰描述对目标系统的一切限制和约束。(2)研究目前正在使用的系统:了解现有系统,实地考察;注意现有系统与目标系统之间的接口(功能);运行费用。(3)导出新系统的高层逻辑模型:从现有的物理系统出发导出目标系统的逻辑模型。(4)导出与评价各种方案:(逻辑模型 物理解法)评估解决方案的可行性 ;给出实现进度表。(5)推荐行动方针:作为结果之一 是否继续开发? 对推荐

8、的系统详细的成本/效益分析。(6)草拟初步的开发计划:制定工程进度表;开发人员需求;设备与软件的需求(使用情况说明);估计软件生命周期每个阶段的成本;给出下一个阶段的进度表/成本估计。(7)编写可行性研究报告并提交审查4、可行性研究的工具(什么是数据流图、由哪几部分组成、含义是什么?)(1)系统流程图:用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程)。注:系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程(程序流程图)。 (2)数据流程图:数据流图(Data Flow Diagram)是一种用图形符号表示数据流从输入到输出的移动变换

9、过程,即数据流图描绘数据在软件中流动和被处理的逻辑过程。 源点/终点(名词):表示图中要处理数据的输入来源或处理结果要送往何处。它是数据流图的外围环境中的实体。 加工/变换(动宾结构):使用椭圆或圆角矩形表示。它是以数据结构或数据内容作为加工对象的,是对数据进行处理的单元,是对数据流进行某些操作或变换。 数据存储(名词):和数据流一样都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。 数据流(名词):沿箭头方向传送数据,指明被加工的数据与流向。(3)熟记DFD的检查和修改原则及设计它的注意事项(p16-17)。5、成本/效益分析可用哪些指标进行度量? 成本估

10、计:从经济角度评价开发一个新的软件工程项目是否可行代码行技术:软件成本=每行代码的平均成本源代码行数任务分解技术:软件开发成本=任务1的成本+任务2的成本+自动估计成本技术:使用软件工具效益分析:有形效益和无形效益。有形效益用货币时间价值、投资回收期、纯收入等指标进行度量。无形的效益主要是从性质上、心理上进行衡量,很难直接进行量化。货币的时间价值( F=P(1+i)n )P=F/(1+i)n投支回收期:累积的经济效益(现在值)最初的投资所需的时间纯收入=(软件在整个生存期之内系统的)总累积经济效益(现在值)- 最初投资6、在企业管理中使用制图系统来取代大部分人工工作,每年可节省2000元。若软

11、件生存期5年,则5年可节省1万元。开发这个系统共投资6000元。设年利率是6%,利用上面计算货币现在价值的公式,可以算出引入制图系统后,每年预计节省的钱的现在价值。如下表所示,试计算投资回收期和纯收入。年将来值(万元)(1+i)n现在值(万元)累积的现在值(万元)10.21.060.18870.188720.21.12360.17800.366730.21.19100.16790.534640.21.26250.15840.693050.21.33820.14950.8425解:由表中数据得第三年的经济效益为0.5346万元,还差0.6-0.5346=0.0654万元,则还需0.0654/0.

12、1584=0.4129年,所以投资回收期为3.4129年;纯收入为0.8425-0.6=2425元7、p19第8题顶层数据流图:一级DFD:P20第9题:顶层DFD:Data Flow Diagram:P20第10题顶层DFD:最终DFD:Entiy-Relation图:第3章 需求分析P30 1、需求分析阶段的基本任务是什么?怎样理解此阶段的任务是“做什么”而不是“怎么做”?任务:完整、准确、清晰、具体地确定系统所要完成的工作。(1)确定对系统的综合要求;(2)分析系统的数据要求;(3)建立软件的逻辑模型;(4)编写软件需求规格说明书;(5)需求分析评审:验证一致性、完整性、现实性、有效性。

13、2、需求获取的方法分为几类,并说出各种方法的特点?、访谈:最原始的获取用户需求的技术,时间长、片面性;、问卷调查:通常与用户访谈组合使用,片面性、面广;、观察用户工作流程:需要对复杂流程加深了解或对关键人物理解不清楚时使用,耗时长;、建立联合分析小组:由软件开发方和客户方共同组成;、快速原型法:需要多次修改。3、什么是结构化分析方法?该方法使用什么工具描述?结构化分析技术是面向数据流自顶向下逐步求精进行需求获取的方法,适合于大型数据处理类型系统的需求分析。实体-联系图E-R、数据流图DFD、数据字典DD ,描述加工逻辑的结构化语言、判定表和判定树等。4、什么是E-R图,由哪几部分组成,含义各是

14、什么?ER图,是一种面向问题的数据模型,是按照用户观点对数据建立的模型。1 实体:对软件必须理解的复合信息的抽象;2 属性:数据对象的性质;3 联系:数据对象彼此之间相互连接的方式,一对一1:1、一对多1:N、多对多M:N。5、什么是数据字典DD,作用是什么,有哪些条目?DD对数据流图加以补充说明,是关于数据的信息的集合。基本功能(作用):定义数据。复杂数据元素的组成方式:顺序;选择;重复;可选。内容:定义DFD中每一个被命名的图形元素包含名字及别名、数据描述、数据定义、数据位置、补充说明等。P31第6题:DFD DD:购书单 = 学生信息 + 教材信息学生信息 = 学号 + 姓名 + 专业

15、+ 年级教材信息 = 教材名称 + 订购数量7、DFD如下:DD:事务=入库零件 | 出库零件到货报表=零件信息 + 供应商零件信息=零件编号+零件名称+订货数量+目前价格供应商=主要供应商 | 次要供应商8、DFD如下:DD:生理信号=脉搏+体温+血压+心电图9、DFD如下:顶层DFD:一级:二级:退房、调房类似于分房DD条目:列举“住户申请表”、其他类似10、DFD:DD条目:名字:报名表别名:报名单定义:报名表=报名者信息+课程名 报名者信息=姓名+性别+身份证号描述:提供报名者信息及考试课程位置:报名者书面填写补充说明:11、DD条目:服务电话=分机号码|外线号码分机号码=8201.8

16、299外线号码=0+市话号码|长号码长号码=区号+市话号码区号=000.300市话号码=局号+分局号局号=455|325|999分局号=4数字字符412、见第二章第10题13、DD条目:用户标示符=字母字符+字母数字串字母数字串=0字母字符|数字字符714、见教材P32.第4章 总体设计1、总体设计的主要目的和任务是什么?目的:概括地说,系统应该如何实现;任务:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定系统的软件结构。2、什么是结构化设计,通常把结构化设计分为哪两个阶段?SD,面向(基于)数据流的设计方法;分为系统设计阶段和结构设计阶段。3、软件结构设计原理(名词解释)模块:由边

17、界元素限定的相邻程序元素的序列,而且由一个总体标识符代表它。 模块化:解决一个复杂的问题时,自顶向下逐层把软件系统划分成若干个能完成特定子功能的模块的过程。抽象:抽出事物本质特性而不考虑细节(具体抽象具体); 逐步求精:为了能集中精力解决主要问题而尽量推迟考虑问题的细节。信息隐藏:设计和确定模块时,使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。局部化:把一些关系密切的软件元素物理地放得彼此靠近;优点:防止错误的扩大与传播。模块独立性:每个模块完成一个相对独立的特定子功能,并且和其他模块之间的联系最少切接口简单。、耦合:一个软件结构内不同模块间的相互联系紧密程度(耦合强弱取

18、决于接口的复杂程度、调用方式及传递的信息)。耦合度由低到高:无直接耦合:模块间没有直接联系,不传递任何信息;数据耦合:模块间有调用关系,传递简单数据值;控制耦合:模块间调用时传递的是控制变量;特征耦合:模块间调用时传递的是某些特征数据;公共耦合:模块间通过一个公共数据环境相互作用;内容耦合:模块间调用时直接使用模块的内部数据或经非正常人口转入另一个模块。、内聚:模块内各元素彼此结合的紧密程度。内聚度由低中高依次为:偶然内聚:元素间没有任何联系;逻辑内聚:模块内执行几个逻辑相似的功能,通过参数确定执行哪一个模块(选择结构);时间内聚:把需要同时执行的动作组合在一起;过程内聚:模块内部的处理是相关

19、的且以特定的次序执行;通信内聚:所处理的元素在同一数据结构上,或使用相同的输入数据或者产生相同的输出数据;顺序内聚:所处理的元素密切相关于同一功能且顺序执行;功能内聚:所有数据元素共同完成一个功能,缺一不可。、力争做到高内聚低耦合,两者矛盾时内聚更重要应予以更多重视。4、试比较软件结构图与层次图的异同同:都是描绘软件结构的图形工具,图中的一个矩形框代表一个模块,框间连线表示调用关系;异:层次图适于在自顶向下设计软件的过程中使用;结构图中还有带注释的箭头表示模块间的信息传递,还包括助记符号(菱形表选择调用、弧形箭头表循环调用)。5、什么是HIPO图?H(带编号的层次)图+每个模块的IPO图(与每

20、个方框对应有一张IPO图来描绘这个模块的处理工程)6、模块独立性准则、软件结构形态特征准则分别是什么?模块独立性准则:通过模块分解(独立成一个子功能模块)或合并(功能相关模块),力求做到低耦合高内聚,保持模块相对独立性。模块的控制域包含作用域:通过上移判断点、下移受判断影响的模块加以改进。软件结构的形态特征准则:深度、宽度适当;扇入数大比较好;不能把功能无关的元素凑在一起形成超级模块;顶扇出数高,中扇出数较低,底扇入数高。模块大小准则:50-150条语句左右,1-2页纸。模块的接口准则:设计简单、功能可预测、划分适当。7、数据流图转换成软件结构图:(DFD)SC:8、第11题DFD如下:软件结

21、构图SD如下:第5章 详细设计1、详细设计的目的和主要任务?(P66第1题)为软件结构图(SC图或HC图)中的每一个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出清晰的描述.设计出程序的“蓝图”,编写软件的“详细设计说明书”.2、详细设计的工具有哪些,简要介绍?程序流程图:对控制流程的描绘很直观;不能逐步求精,可理解性差;可随意转移控制,违背结构程序设计的原则。盒图/图图:不能任意转移控制;功能域(特定控制结构的作用域)明确;很容易确定局部和全程数据的作用域;适合结构化程序设计方法,对于非结构化程序无法表示。图:使用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易

22、;所描绘程序结构清晰、易读、易懂、易记;支持自顶向下、逐步求精方法的使用。 (过程设计语言):用于描述功能模块的算法设计和加工细节的语言,称为设计程序用语言,它是一种伪码,不能被编译;方便书写和编辑,描述复杂条件组合时也不如判定表方便。判定表和判定树:确定条件;每个条件取值;画出初步判定表;简化后的判定表。判定树适合于描述加工中具有多个策略,而且每个策略和若干条件有关的逻辑功能;数据元素重复书写,分枝的次序可能影响最终判定树的简介程度。3、结构化程序设计的基本原则?在详细设计中所有模块都使用单入口、单出口的顺序、选择、循环三种基本控制结构. 4、比较面向数据流和面向数据结构两类设计方法的异同?

23、(第8题)同:(1) 遵守结构程序设计“由顶向下”逐步细化的原则,并以其为共同的基础;(2) 均服从“程序结构必须适应问题结构”的基本原则,各自拥有从问题结构(包括数据结构)导出程序结构的一组映射规则。异:(1) 面向数据流的设计以数据流图为基础,在分析阶段用DFD表示软件的逻辑模型,在设计阶段按数据流类型,将数据流图转换为软件结构。面向数据结构的设计以数据结构为基础,从问题的数据结构出发导出它的程序结构;(2) 面向数据流的设计的最终目标是软件的最终SC图,面向数据结构的设计的最终目标是程序的过程性描述。5、Jackson方法分为哪几个步骤来完成设计?确定输入、输出数据的逻辑结构并用Jack

24、son图表示;找出输入、输出数据结构中有对应关系的数据单元;按规则导出程序结构图;在适当位置列出所有的操作条件;用Pseudocode表示程序。6、(第3题)程序流程图如下:(第4题)流程图和盒图: (第7题)PAD图如下:(第10题)Jackson图如下:(第11题)N-S图PAD图:(第12题)判定表:判定条件可能取值表:条件名称取值符号取值数性别男M2女F职工年龄30U机舱等级头等F2其他O是否为国内乘客是Y2否N健康状况正常Z2残疾C(2)计算条件组合数:2*2*2*2=16(3)判定表1-8910111213141516行李重量WUUUUUUUU机舱等级-FFFFOOOO是否为国内乘

25、客-YYNNYYNN健康状况-ZCZCZCZC行李收费价格(元)0(U-30)*4(U-30)*2(U-30)*8(U-30)*4(U-30)*6(U-30)*3(U-30)*12(U-30)*6判定树如下:第6章 实现1、程序设计语言可以分为哪几类?面向机器语言:机器语言、汇编语言;高级语言:通用语言(BASIC、C等)、专用语言(PROLOG、LISP)2、什么是编码风格,为了编好程序,应遵守哪些规则? 在不影响程序正确性和效率的前提下,有效、合理地编排和组织程序的基本原则。程序内部文档:标示符(命名及说明);注解(序言、描述性注解);布局(阶梯式)语句构造及书写:构造规则;书写原则输入/

26、输出:输入设计原则;输出设计原则效率:有良好编码风格的基础上提高效率3、程序复杂度度量McCabe方法:根据程序控制流环形复杂度定量度量程序复杂度。程序流程图-流图环形复杂度a.V=区域数 / 判断节点+1 / 边-节点+2V10(10更科学的上限)、可加性VA+VB(A与B)Halstead方法:根据运算符和操作数的总个数度量程序复杂度N实=N1(运算符出现次数)+N2(操作数出现次数)H预=n1log2n1+ n2log2n2(n1不同运算符个数,n2不同操作数个数) E误=N实log2(n1+n2)/3000(P74第5题)判定条件个数为3,故环型复杂度V=3+1=4流图如下:第7章 软

27、件测试1、软件测试的目标(定义)、准则。2、软件测试方法(1)测试时是否需要执行被测软件? 静态测试:特性分析 无须执行 借助软件评审文档或程序 编程标准 减少错误。 主要方法:个人代码走查;小组代码检查;代码评审;静态结构分析;代码质量度量。动态测试:实际运行 输入用例 判定结果 检验正确性 可靠性 有效性。主要方法:白盒测试、黑盒测试、灰盒测试(2)测试是否针对内部结构和具体实现算法?白盒测试:结构测试、逻辑驱动测试或基于程序的测试;内部细节逻辑路径规约及程序清单。黑盒测试:功能测试、数据驱动测试或基于规格说明的测试;用户观点当作黑盒只考虑程序输入输出和程序功能根据需求规格说明书设计推断测试结果的正确性。3、软件测试过程单元测试:将每个模块作为一个独立的实体来测试。测试重点:模块间的接口、局部数据结构、重要的执行通路(选择、循环等)、出错处理通路、边界条件环境:驱动模块,用来模拟被测试模块的上一级模块;桩模块,用来模拟被测试模块工作中所有的调用模块。集成测试:按照概要设计的要求组装独立模块成为子系统或系统,同时经过测试来发现接口错误的一种系统化的测试。单元测试完成后为什么还需要集成测试?数据穿过接口时可能丢失;一模块

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1