好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

软件工程第二版知识点.pdf

13页
  • 卖家[上传人]:飞***
  • 文档编号:53810994
  • 上传时间:2018-09-05
  • 文档格式:PDF
  • 文档大小:429.72KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、软件的特性:(10 个)形态、智能、开发、质量、生产、管理、环境、维护、废弃、应用特性2、软件的概念软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档的完整集合3、软件危机产生的原因软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题4、什么是软件工程软件工程是指导计算机软件开发和维护的工程学科采用工程的概念、 原理、 技术和方法来开发和维护软件, 把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程5、简述软件生存期由哪些主要的阶段组成,每一阶段的主要任务是什么?软件定义、软件开发、运行维护(1) 问题定义与可行性研究:问题定义必须回答的关键问题是:“要解决的问题是什么”可行性研究要回答的关键问题是:“在成本和时间的限制条件下能否解决问题?是否值得做?”2) 需求分析:这个阶段的任务仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题3) 软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制定设计方案,把已确定的各项需求转换成相应的软件体系结构。

      结构中的每一组成部分都是意义明确的构件, 此即所谓概要设计进而具体描述每个构件所要完成的工作,为源程序编写打下基础,此即所谓详细设计4) 程序编码和单元测试:本阶段要解决的问题是“正确地实现已做的设计”,为此,需要选择合适的编程语言,把软件设计转换成计算机可以接受的程序代码, 并对程序结构中的各个模块进行单元测试,然后运用调试的手段排除测试中发现的错误要求编写出的程序应当是结构良好、清晰易读的,且与设计相一致的5) 集成测试和系统测试:集成测试的任务是将已测试过的模块按设计规定的顺序组装起来,在组装的过程中检查程序连接的问题系统测试的任务是根据需求规格说明的要求,对必须实现的各项需求,逐项进行确认,判定已开发的软件是否符合用户需求,能否交付用户使用为了更有效地发现系统中的问题,通常这个阶段的工作由开发人员、用户之外的第三者承担6) 运行维护: 已交付的软件投入正式使用,便进入运行维护阶段这一阶段可能持续若干年软件在运行中可能由于多方面的原因,需要对它进行维护通常有四种类型的维护:改正性维护、适应性维护、完善性维护和预防性维护6、软件工程的三种基本要素是什么软件工程的三种基本要素是方法、工具和过程。

      1) 软件工程方法为建造软件提供技术上的解决方法(“如何做”)目前使用得最广泛的方法是传统方法(结构化方法)和面向对象方法2) 工具为方法的运用提供自动的或半自动的软件支撑环境3) 过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤7、简述传统方法和面向对象方法的特点(1) 传统方法的特点传统方法也称为生命周期方法或结构化范型它采用结构化技术来完成软件开发的各项任务这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地逐步完成每个阶段的任务每一个阶段的开始和结束都有严格的标准,对于任何两个相邻的阶段而言,前一个阶段的结束标准就是后一阶段的开始标准传统方法的主要缺点是在适应需求变化方面不够灵活,另外,结构化方法要么面向行为,要么面向数据, 缺乏使两者有机结合的机制2)面向对象方法的特点面向对象方法把数据和行为看成同等重要, 是将数据和对数据的操作紧密地结合起来的方法,这也是面向对象方法与传统方法的重要区别面向对象方法的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识问题和解决问题的方法与过程,从而使描述问题的问题空间与其解空间在结构上尽可能一致。

      对于大型、 复杂及交互性比较强的系统,使用面向对象方法更有优势8、常见的软件生存期模型主要有哪些?瀑布、喷泉模型的优缺点是什么?主要有瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型和统一过程 瀑布模型优点:可强迫开发人员采用规范化的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证缺点: 由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要;用户往往需要等待很长时间才能看到可以运行的程序;适应需求变更的能力比较差适用范围:瀑布模型只适用于项目开始时需求已确定的情况喷泉模型优点:在开发过程中使用统一的概念和方法,各阶段之间没有明显的界限,容易实现各个开发过程的多次反复迭代,达到了认识的逐步深化,降低了出错的可能性缺点:由于各个阶段之间的界线不明确,容易造成软件开发过程的无序适用范围:适用于面向对象的软件开发9、需求获取的任务 (1)发现和分析问题,并分析问题的原因结果关系2)与用户进行各种方式的交流,并使用调查研究方法收集信息3)按照三个成分即数据、过程和接口观察问题的不同侧面4)将获取的需求文档化,形式有用例、决策表、决策树等。

      10、软件需求分析阶段的任务需求获取、需求分析、需求定义、需求验证11、银行存款业务如下:客户到银行柜台存款时,首先填写存款单(包括帐号、姓名、存款金额、存款类型),如果还没有开户,则需要先开户,填写开户单(包括姓名、身份证号、地址、、是否留密码)填写完存款单或开户单后,交给营业员,营业员将存款单或开户单信息输入计算机,系统记录开户信息或存款单信息,如果是开户并选择留密码,则需要客户输入密码最后印出开户单或存款单给用户请画出银行存款业务的分层数据流图(至少画出两层)1) 识别外部实体及输入输出数据流外部实体:储户、业务员输入数据流:存款单,开户单,密码可以将存款单和开户单抽象为事务输出数据流:存款单,开户单2) 顶层数据流图(3) 一层数据流图对银行储蓄系统进行分解,从大的方面分解为接收事务、处理开户、处理存款三部分,得到一层数据流图4) 二层数据流图对 “处理存款”及“处理开户”进行进一步分解,得到二层数据流图,即处理存款的数据流图和处理开户的数据流图处理存款的数据流图处理开户的数据流图12、按照以下描述,画出ER 图一本教材由许多章组成,每一章包含许多节、小结和习题组成,章和节都具有标题和序号属性。

      ER 图如下:13、软件设计的概念程序应该不包含任何对其功能有障碍的缺陷;程序符合开发的目标;使用程序的体验应是愉快的14、软件设计的原则分而治之;模块独立性;提高抽象层次;复用性设计;灵活性设计教材章节小结习题序号标题序号标题15、什么是结构图的深度:模块结构的层次数什么是结构图的宽度:同一层模块的最大模块数称为结构图的宽度16、什么是耦合耦合是程序结构中各个模块之间的互相关联的度量,他取决于各个模块之间接口的复杂程序度、调用模块的方式以及接口的信息类型内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合17、什么是内聚内聚是一个模块内部各个元素彼此结合的紧密程度的度量巧合内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、信息内聚、功能内聚18、模块的作用范围应在控制范围之内19、用面向数据流的方法设计第3 章习题 3.4 所描述的银行存款业务的软件结构,并使用改进方法对模块结构进行精化1) 对第 3 章习题 3.4 给出的数据流图进行精化,确定其边界,如下图所示2) 对上图按事务型数据流进行处理,完成第一级分解,得到顶层和一层模块结构图存款业务输入数据调度输出数据第一级分解后的结构图(3) 完成第二级分解。

      对上图所示的“输入数据”、“输出数据”和“调度”模块进行分解,得到未经精化的输入结构、输出结构和事务结构未经精化的输入结构未经精化的输出结构未经精化的事务结构将上面的三部分合在一起,得到初始的软件结构,如下图所示输入数据输入事务输入密码输出数据打印存款单打印开户单调度处理存款处理开户记录存款信息记录开户信息记录密码初始软件结构图(4) 对软件结构进行精化1) 由于调度模块下只有两种事务,因此,可以将调度模块合并到上级模块中,如图所示将调度模块合并到上级模块后的软件结构2) “记录密码”模块的作用范围不在其控制范围之内(即“输入密码”模块不在“记录密码”模块的控制范围之内),需对其进行调整,如图所示存款业务输入数据调度输出数据输入事务输入密码打印存款单打印开户单处理存款处理开户记录存款信息记录开户信息记录密码存款业务输入数据输出数据输入事务输入密码打印存款单打印开户单处理存款处理开户记录存款信息记录开户信息记录密码3) 提高模块独立性,对模块结构进行调整,如下图所示调整后的模块结构图20、对于图4-49 所示的流程图,试分别用N-S图和 PAD 表示之图 4-49 流程图存款业务输入事务输出数据输入密码打印存款单打印开户单处理存款处理开户记录存款信息记录开户信息记录密码存款业务输入事务输入密码打印存款单打印开户单处理存款处理开户记录存款信息记录开户信息记录密码F STARTA B Q ENDT F T P 对应的 N-S图如下:对应的 PAD 如下:21、面向对象的概念面向对象=对象+类+继承+消息通信如果一个系统是使用这样4 个概念设计和实现的,则可认为这个系统是面向对象的。

      22、关联分为普通关联、限定关联、以及聚合与复合23、什么是泛化关系泛化 (generalization) 关系就是一般类和特殊类之间的继承关系在 UML 中,一般类亦称泛化类,特殊类亦称特化类泛化针对类型而不针对实例,因为一个类可以继承另一个类,但一个对象不能继承另一个对象泛化可进一步划分成普通泛化和受限泛化两类25、面向对象分析需要建立的三个模型是什么?面向对象分析需要建立的3 个模型是: 由用例和场景表示的功能模型(用例模型); 用类和对象表示的静态模型(对象模型);由状态图和顺序图表示的动态模型(交互模型)26、结构图和行为图的区别结构图用于系统的静态建模,行为图用于系统的动态建模结构图包括:类图、组合图、构件图、部署图、对象图、包图、造型图行为图包括:活动图、用例图、状态图、顺序图、交互概念图、通信图、定时图27、比较面向对象的分析方法和面向数据流的分析方法,阐述它们各自的特点 面向对象的分析方法使用用例模型来表示用户的功能需求,用例模型相当于功能模型,在对用例模型进行细化的过程中,也伴随着对功能的分解但面向对象的分析方法并不是以功能分解为核心,在获取并分析用户的功能需求之后,重点以类和对象为核心,建立对象模型,交互模型也是围绕对象模型进行的。

      面向数据流的分析方法是从建立顶层数据流图(环境图)开始,之后逐层对加工进行分解面向数据流的分析方法是以功能分解为核心的28、对象模型的5 个层次主题层、类 -对象层、结构层、属性层、服务层29、软件工程的观点从软件工程的观点,程序设计语言的特征应着重考虑软件开发项目的需要要求程序编码有如下一些工程上的性能要求1)详细设计应能直接容易地翻译成代码程序 2)源程序应具有可移植性 (3)编译程序应具有较高的效率4)尽可能应用代码生成的自动工具5)可维护性30、程序设计语言分类第一代语言、第二代语言、第三代语言、第四代语言31、程序的注释应注意什么注释分为序言性注释和功能性注释序言性注释通常常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序本身具有引导作用功能性注释在源程序体中,用以描述其后的语句或程序段,也就是解释下面要 “做什么” ,或是执行了下面的语句会怎么样while P A B until !Q while P A until !Q B 32、除非对效率有特殊要求,否则程序编写的原则是清晰第一,效率第二33、什么是软件测试为了保证软件的质量和可靠性,人们力求在分析、设计规格等各个开发阶段结束前,对软件进行严格的技术评审。

      34、软件测试的目的是发现错误35、软件测试的原则(1)尽早地和不断地进。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.