软件工程导论复习要点总结.doc_第1页
软件工程导论复习要点总结.doc_第2页
软件工程导论复习要点总结.doc_第3页
软件工程导论复习要点总结.doc_第4页
软件工程导论复习要点总结.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程导论要点总结:罗少强-1.2章李文科-3.4章丁介然-6.7.8章杜枭雄-9.13章共计9章第一章 软件工程学概述1、 软件工程产生的原因随着计算机应用的日益普及,软件数量急剧膨胀增加。在程序运行时发现的错误必须及时改正;用户有了新的需求时必须相应的修改程序;硬件或操作系统更新时,通常需要修改程序以适应新的环境;严重的是,许多程序的个体化特性使得他们最终是不可维护的。这就产生了“软件危机 ”,软件危机的具体表现有:(1)对软件开发成本和进度的估计常常很不准确。(2)用户不满意已完成的软件系统。(3)软件产品的质量往往靠不住。(4)软件常常是不可维护的。(5)软件常常没有适当的文档材料。(6)软件成本在计算机系统中所占的成本比例逐年上升。这些危机的产生,不仅与软件本身的特点有关,还与软件的开发和维护的方法是否正确有关。2、 软件工程的功能软件工程的定义:(1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护,也就是把工程应用于软件(2)研究(1)中提到的途径。具有的功能有:软件工程应可以进行大型程序的构造;软件工程可以管理其控制复杂性;软件必须随着所模拟的现实世界一同变化;开发软件必须有高的效率;软件应该由团队合作开发;软件必须有效地支持其他用户;软件工程领域应该有文化领域的支持。3、 软件工程的基本原理 用分阶段的生命周期计划严格管理:应该把软件生命周期划分成若干阶段,并制定出相应的可行计划,不同层次的人员按照严格计划对软件的开发与维护进行管理。 坚持进行阶段评审:即在每个阶段都要进行严格的评审。 实行严格的产品控制:软件开发过程中改变需求在所难免,而且需要付出较高的代价,因此采用基准配置管理来控制。 采用现代程序设计技术 结果能清楚地审查 开发小组的人应该少而精 承认不断改进软件工程实践的必要性4、 软件工程方法学分类 软件工程方法学分别是传统方法学和面向对象方法学。传统方法学:采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。面向对象方法学:把数据和行为看成是同等重要的,是一种以数据为主线,把数据和对数据的操作紧密结合起来的方法。5、 软件生命周期8个阶段 软件生命周期有软件定义、软件开发和软件维护3个时期组成,每个时期有具体的分为若干阶段。其具体阶段分别是:(1)问题定义:要解决的问题是什么; (2)可行性研究:对确定的文体有可行性的方法;(3)需求分析:目标系统必须做什么;(4)总体设计:应该怎样实现目标系统;(5)详细设计:应该怎样具体实现这个系统;(6)编码和单元测试;(7)综合测试;(8)软件维护。6、 软件设计的几种模型及特点(1)瀑布模型特点:阶段间具有顺序性和依赖性:完成前一阶段工作之后才能开始后一阶段的工作,掐一阶段的输出文档就是后一阶段的输入文档;推迟实现的观点:清楚地区分逻辑设计与物理设计,尽可能的推迟程序的物理实现;质量保证的观点:每个阶段必须完成规定的文档,每个阶段结束前都要对完成的文档那个进行评审,尽早改正问题。优点:强迫开发人员采用规范的方法;严格规定每个阶段必须提交文档;要求每个阶段交出的所有产品都必须经过质量保证的检验。缺点:是一种有文档驱动的一种模型,用户只能通过文档静态的了解产品,很难全面的认识动态的软件产品。(2)快速原型模型 特点:其第一步是快速建立一个能反映用户主要需求的原型系统,让用户通过实践了解目标系统的概貌,当用户需求有所变化可以快速修改原型系统。优点:软件产品的开发基本上是线性顺序的;原型系统已经通过与用户交互而得到验证,据此产生的规格文档正确地反映了用户的需求;开发人员通过建立的原型系统知道系统应该做什么,不应该做什么。(3)增量模型特点:把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件又多个相互作用的模块组成,并且能够完成特定的功能。每个增量构件往往实现软件的基本需求,提供最核心的功能。优点:能够在较短的时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充裕的时间适应和学习新产品。困难之处:在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来以开发的产品。(4)螺旋模型特点:螺旋线的角度值代表开发进度,螺旋线每个周期对应一个开发阶段。通常用建造原型的方法来排除风险。主要适用于内部开发的大规模软件项目。优点:对可选方案和约束条件的强调有利于已有软件的重用,有助于把软件开发质量作为软件开发的一个重要目标;减少了过多测试或测试不足所带来的风险;在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。(5)喷泉模型特点:喷泉模型是典型的面向对象的软件过程模型,具有过程迭代和无缝的特性。不同阶段之间相互重叠表明两个活动之间存在交迭,同时还保证了各项开发活动之间的无缝过渡。第2章 可行性研究1. 可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。2. 可行性研究的任务:可行性研究实际上是要进行一次大大压缩简化了得系统分析和设计的过程,也就是在较高层次上以比较抽象的方式进行的系统分析和设计的过程。3. 可行性研究的过程 复查系统规模和目标:实质上是为了确保分析员正在解决的问题确实是要求他解决的问题。 研究目前正在使用的系统; 导出新系统的高层逻辑模型; 进一步定义问题; 导出和评价供选择的解法; 推荐行动方针; 草拟开发计划; 书写文档提交审查。4. 系统流程图系统流程图是概括地描绘物理系统的传统工具,基本思路是用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它们却是物理数据流程图而不是程序流程图。5. 数据流图和数据字典的关系数据流图是一种图形化技术,描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流程图中,没有任何具体的物理部件,只描述数据在软件中流动和被处理的逻辑过程。即其基本要点是描绘“做什么”,而不考虑“怎么做”。数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。其主要作用是在软件设计和分析的过程中给人提供关于数据的描述信息。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难以发挥作用。只有数据流图和对数据流图中的每个元素的精确定义放在一起,才能共同构成系统的规格说明。6. 成本/效益分析的原理成本/效益分析是可行性研究的一项重要内容,是客户组织负责人从经济角度判断是否继续投资于这项工程的主要依据。成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。成本估计的基本方法有代码行技术、任务分解技术以及自动估计成本技术。运行费用和经济效益两者在软件的整个生命周期内都存在,总的效益和生命周期的长度有关,因此应该合理地估计软件的寿命。投资是现在进行的,效益是将来获得的,不能简单的比较成本和效益,还应该考虑货币的时间价值、投资回收期、纯收入、投资回收率等。 第三章 需求分析13、需求分析的目的需求分析是软件定义的组以后一个阶段,它精确地回答了“系统必须做什么”14、 需求分析的任务 需求分析的任务是: (1)确定系统的综合要求。 (2)分析系统的数据要求。 (3)导出系统的逻辑模型。 (4)修正系统的开发计划15、 实体联系图使用领域 应用于实体与属性关系比较复杂的情况,它比较接近人的思维习惯,易于理解和接受16、 状态转换图的适用领域 建立系统的行为模型,适用于系统的状态和系统的状态转换较为浮躁的情况第五章 总体设计17、总体设计的目总体设计的目是解决怎样做的问题,即回答“系统该如何试下的问题 ” 18、总体设计的任务 总体设计的任务是将工作划分成组成系用的物理元素程序、文件、数据库、人工过程、文档等,确定系统的组成模块。19、总体设计的过程(1)设想供选择方案:提出尽可能多的实现方案(2) 选合理的方案:考虑实际情况,选出设想方案中可实现的,合理的方案(3) 推荐最佳方案:从合理方案中选出功能实现的最佳方案(4) (5) 设计软件结构:根据要求设计软件的结构(6) 设计数据库:(7) 制定测试方案:对系统各个模块要有测试方案(8) 书写文档:撰写说明书等必要的文档说明(9) 审查和复查:对各个工作进行审核20、 总体设计原理(1) 模块化:由边界元素限定相邻的程序元素(2) 抽象:相似方面集中概括起来,忽略差异(3) 逐步求精:细化过程(4) 信息隐藏和局部化 信息隐藏:一个模块的信息对于不需要的不允许访问 局部化:把欢喜密切的元素的物理地址放的彼此靠近(5)模块独立化:模块之间没有过多的相互作用(系统尽量低耦合,高内聚)21、面向数据流的设计过程 面向数据流设计方法的过程如下: (1)精化DFD。指把DFD转换成软件结构图前,设计人员要仔细地研究分析DFD并参照数据字典,认真理解其中的有关元素,检查有无遗漏或不合理之处,进行必要的修改。 (2)确定DFD类型,如果是变换型,确定变换中心和逻辑输入、逻辑输出的界线,映射为变换结构的顶层和第一层;如果是事务型,确定事务中心和加工路径,映射为事务结构的顶层和第一层。 (3)分解上层模块,设计中下层模块结构。 (4)根据优化准则对软件结构求精。 (5)描述模块功能、接口及全局数据结构。 (6)复查,如果有错,转向(2)修改完善,否则进入详细设计。第六章 详细设计22、试述详细设计的目的。详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统。23、试述在详细设计中程序流程图和盒图的异同。程序流程图的主要缺点:(1)本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局控制。(2)中箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构设计的精神,随意转移控制。(3)不易表示数据结构。盒图又称N-S图特点有:(1)功能域明确,可以从盒图上一眼看出来。(2)不可能任意转移控制。(3)很容易确定局部和全程数据的作用域。(4)很容易表现嵌套关系,也可以表示模块的层次结构。但要注意的是盒图没有箭头,因此不允许随意转移控制。24、 试述在详细设计中PAD图的优点。PAD图的优点有:(1)PAD符号所设计出来的程序必然是结构化程序。(2)结构十分清晰。(3)表现程序逻辑,易懂、易读、易记。(4)容易将PAD图转换成高级语言源程序,有利于提高软件可靠性和软件生产率。(5)既可用于表现程序逻辑,也可用于描绘数据结构。(6)PAD图的符号支持自顶向下、逐步求精方法的使用。25、 试述在详细设计中判定表和判定树的异同。判定树的优点在于,它的形式简单到不需到任何说明,一眼就可以看出其含义,因此易于掌握和使用。虽然判定树比判定表更直观,但简洁性却不如判定表,数据元素的同一个值往往更重复写多遍,而且越接近树的叶端重复次数越多。26、 试述在详细设计中伪码的特点。PDL(伪码)的特点有:(1)关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点。(2)自然语言的自由语法,他描述处理特点。(3)数据说明的手段。(4)模块定义和调用的技术,应该提供各种接口描述模式。第七章 实现27、试述编码的目的。所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。28、试述怎样选择编程语言。选择程序设计语言的理想标准的主要实用标准有:(1)系统用户的要求。(2)可以使用的编译程序。(3)可以得到的软件工具。(4)工程规模。(5)程序员的知识。(6)软件可移植性要求。(7)软件的应用领域。29、 试述软件测试的步骤。软件测试的步骤:(1) 模块测试。(2) 子系统测试。(3) 系统测试。(4) 验收测试。(5) 平行运行。30、 试比较单元测试、集成测试和确认测试。单元测试集中检测软件设计的最小单元模块。通常,单元测试和编码属于软件过程的同一个阶段。主要使用白盒技术,而且对多个模块的测试可以并行地进行。集成测试是测试和组装软件的系统化技术,由模块组装成程序时有两种方法,一种是非渐增式测试方法,另一种方法是渐增式测试。确认测试也称为验收测试,它的目标是验证软件的有效性。通常,验证指的是保证软件正确地实现了某个特定要求的一系列活动,而确认指的是为了保证软件确实满足了用户需求进行的一系列活动。31、 试比较白盒测试技术和黑盒测试技术。黑盒测试着重测试软件功能,黑盒测试并不能取代白盒测试,它是与白盒测试互补的测试方法,它很有可能发现白盒测试不易发现的其他类型的错误。白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期。设计白盒测试的方案的技术主要有,逻辑覆盖和控制结构测试;设计黑盒测试的方案的技术主要有,等价划分、边界值分析和错误推测。第八章 维护32、 试述维护工作的目的。软件工程的主要目的就是要提高提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。33、 试述维护工作的难点。(1)结构化维护与非结构化维护差别巨大。(2)维护的代价高昂。(3)维护的问题很多。理解别人写的程序通常非常困难,而且困难程度随着软件配置成分的减少而迅速增加。需要维护的软件往往没有合格的文档,或者文档资料显著不足。当要求对软件进行维护时,不能指望由开发人员给人们给人们仔细说明软件。绝大多数软件在设计时没有考虑将来的修改。软件维护不是一项吸引人的工作。34、 试述软件维护过程。软件维护过程具体分为:(1)维护组织。(2)维护报告:满足维护要求表中提出的要求所需要的工作量。维护要求的性质。这项要求的优先次序。与修改有关的事后数据。(3)维护的事件流包括修改软件设计、复查、必要的代码修改、单元测试和集成测试、验收测试和复审。(4)保存维护记录。(5)评价维护活动。35、 怎样提高软件的可维护性?(1) 决定软件可维护性的因素:可理解性。可测试性。可修改性。可移植性。可重用性。(2)预防性维护的做法主要有:反复多次地做修改程序的尝试,与不可见的设计及源代码“顽强战斗”,以实现所要求的修改。通过仔细分析程序尽可能多地掌握程序的内部工作细节,以便更有效地修改它。在深入理解原有设计的基础上,用软件工程方法重新设计、重新编码和测试哪些需要变更的软件部分。以软件工程方法学为指导,对程序全部重新设计、重新编码和测试,为此可以使用CASE工具(逆向工程和再工程工具)来帮助理解原有的设计。第九章 面向对象方法引论36、试述面向对象方法的要点?面向对象方法具有以下4个要点:(1)认为客观世界是由各种对象组成的,任何事物的对象,复杂的对象可以由比较简单的对象以某种方式组合而成。(2)把所有对象都划分成各种对象,每个对象类都定义了一组数据和一种方法。(3)按照子类(或称为派生类)与父类(或成为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。(4)对象彼此之间仅能通过传递消息互相联系。37、试述面向对象方法学的优点。面向对象方法学有以下优点:(1)与人类习惯的思维方法一致。 (2)稳定性好。 (3)可重用性好。(4)较易开发大型软件产品。 (5)可维护性好。38、试述对象、类、实例、消息、方法、属性、封装、继承、多态性、重载等概念。对象:在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。类:在面向对象的软件技术中“类”就是对具有相同数据和相同操作的一组相似对象的定义,也就是说,类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类新对象的说明。实例:就是有某个特定的类所描述的一个具体的对象。消息:就是要求某个对象执行在定义她的那个类中所定义的某个操作的规格说明。方法:就是对象所能执行的操作,也就是类中所定义的服务。属性:就是类中所定义的数据,它是对客观世界实体所具有性质的抽象。封装:从字面上理解就是把某个事物包起来,使外界不知道该事物的具体内容。继承:广义的说,是指能够直接获得已有的性质和特征,而不必重复定义它们。多态性:在面向对象的软件技术中,是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。重载:有两种重载:函数重载是指在同一作用域内的若干参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。39、试述类图的适用领域?类图的适用以下领域(1)定义类。 (2)定义属性。 (3)定义服务。40、试述用例图的适用领域。用例图的适用以下领域:(1)系统。 (2)用例。 (3)行为者。 (4)用例之间的关系。第十三章 软件项目管理41、试述软件项目管理的概念。所谓管理就是通过计划、组织和控制等一系列活动,合理的配置和使用各种资源,以达到既定目标的过程。软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期中。42、试述估算软件规模的方法。答:(1)代码行技术。 (2)功能点技术。43、试比较甘特图和工程网络的异同。Gant图能很形象地描绘任务分解情况,以及每个任务(作业)的开始时间和结束时间,因此是进度计划和进度管理的有力工具。它具有直观简明和容易掌握、容易绘制的优点,但也有三个主要缺点(1)不能显示地描绘各项任务彼此间的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论