您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 华南农业大学15年软件工程复习提纲
2015《软件工程》复习提纲一、试卷的分值分布如下:判断题10分、选择题10分、名词解释和简答题50分、测试用例设计10分、结构化分析与设计20分。大题里面,测试用例设计的白盒方法考逻辑覆盖中的某种,黑盒方法考等价类法;结构化分析与设计则重点考察数据流图、数据字典、加工规约、数据库分析设计等。二、去年试题老师已经提供,此处不在给出。三、主要知识点如下:1.软件的概念计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。2.软件发展的3个阶段(时间、标志、开发(组织)的方式)1946-1956计算机问世到高级程序语言出现前1956-1968高级程序语言出现到软件工程出现前1968-至今软件工程出现到现在3.软件的特点vs硬件①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。②软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。③在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。④软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。⑤软件的开发至今尚未完全摆脱手工的开发方式。⑥软件的开发费用越来越高,成本相当昂贵。4.软件的分类(1)系统软件、支持软件、应用软件(2)按工作方式划分:实时处理软件,分时软件,交互式软件,批处理软件。(3)按软件服务对象划分:项目软件,产品软件。(4)按使用的频度进行划分一次使用,频繁使用。(5)按软件失效的影响进行划分高可靠性软件,一般可靠性软件。5.软件工程的定义是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。6.软件生存周期的概念及若干个阶段一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期一般可分为以下阶段:·问题定义·需求分析与可行性研究·设计·编码·测试·运行与维护7.瀑布模型特征:接受上一阶段的结果作为本阶段的输入利用这一输入实施本阶段应完成的活动对本阶段的工作进行评审将本阶段的结果作为输出,传递给下一阶段。优点:可强迫开发人员采用规范的方法。严格地规定了每个阶段必须提交的文档。要求每个阶段的所有产品都必须经过质量保证小组的仔细验证。缺点:缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发。开发早期存在的问题往往要到交付使用时才发现,维护代价大。8.演化模型许多软件项目在开发早期对软件需求的认识是模糊的、不确定的,因此软件很难一次开发成功可以在获取了一组基本的需求后,通过快速分析构造出该软件的一个初始可运行版本,称之谓原型(prototype),然后根据用户在试用原型的过程中提出的意见和建议、或者增加新的需求,对原型进行改造,获得原型的新版本,重复这一过程,最终得到令客户满意的软件产品演化模型的开发过程就是从构造初始的原型出发,逐步将其演化成最终软件产品的过程演化模型适用于对软件需求缺乏准确认识的情况典型的演化模型有:增量模型、原型模型、螺旋模型9.增量模型增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。增量模型融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征。增量模型强调每一个增量都发布一个可运行的产品。增量模型特别适用于:1.需求经常变化的软件开发2.市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品的软件开发。增量模型能有计划地管理技术风险,如早期增量版本中避免采用尚未成熟的技术。10.原型与原型模型原型(prototype)是预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建原型。原型的类型:1.探索型(exploratoryprototyping)目的是要弄清目标系统的要求,确定所希望的特性,并探讨多种方案的可行性2.实验型(experimentalprototyping)目的是验证方案或算法的合理性,它是在大规模开发和实现前,用于考核方案是否合适,规格说明是否可靠3.演化型(evolutionaryprototyping)目的是将原型作为目标系统的一部分,通过对原型的多次改进,逐步将原型演化成最终的目标系统.原型的使用策略:1.废弃(throwaway)策略主要用于探索型和实验型原型的开发。这种原型通常被废丢,然后根据探索或实验的结果用良好的结构和设计思想重新设计目标系统2.追加(addon)策略主要用于演化型原型的开发。这种原型通常是实现了目标系统中已明确定义的特性的一个子集,通过对它的不断修改和扩充,逐步追加新的要求,最后使其演化成最终的目标系统原型可作为单独的过程模型使用,它也可作为一种方法或实现技术应用于其它的过程模型中11.螺旋模型是瀑布模型和演化模型的结合,并增加了风险分析螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:1.制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件2.风险分析:评价所选的方案,识别风险,消除风险3.工程实施:实施软件开发,验证工作产品4.客户评估:评价开发工作,提出修正建议螺旋模型出现了一些变种,它可以有3到6个任务区域螺旋模型指引的软件项目开发沿着螺线自内向外旋转,每旋转一圈,表示开发出一个更为完善的新软件版本如果发现风险太大,开发者和客户无法承受,则项目就可能因此而终止多数情况下沿着螺线的活动会继续下去,自内向外,逐步延伸,最终得到所期望的系统12.组成基于计算机的系统由哪些元素组成软件、硬件、人员、数据库、文档和规程13.系统工程的任务定义:计算机系统工程是一个问题求解的活动,其目的是分析基于计算机的系统的功能、性能、等要求,并把它们分配到基于计算机系统的各个系统元素中,确定它们的约束条件和接口任务:识别用户的要求标识系统的功能和性能范围,确定系统的功能、性能、约束和接口14.可行性分析开发一个基于计算机的系统通常都受到资源(人力、财力、设备等)和时间上的限制,可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成可分为:经济可行性分析,技术可行性分析,法律可行性分析15.需求工程的概念需求工程师应用已证实有效的技术与方法开展需求分析,确定客户需求,帮助分析人员理解问题,评估可行性,协商合理的解决方案,无歧义地规约方案,确认规约以及将规约转换到可运行的系统时的管理需求。16.需求工程的六个阶段需求获取、需求分析与协商、系统建模、需求规约、需求验证和需求管理17.软件需求的定义软件需求是指用户对目标软件系统在功能,行为,性能,设计约束等方面的期望。18.需求获取的方法与策略1.建立需求获取人员(通常被称为系统分析员)与用户顺畅的通信途径2.与客户交谈,向用户提问题,通过访谈与会议3.观察用户工作流程,观察用户的操作4.组成联合小组5.实例分析19.常用的需求分析方法面向数据流的结构化分析方法(SA)面向数据结构的分析方法面向对象的分析方法(OOA)20.软件的需求规约主要包含哪些内容引言:陈述软件目标,在基于计算机的系统语境内进行描述。信息描述:给出软件必须解决问题的详细描述,记录信息内容和关系、流和结构。功能描述:描述解决问题所需的每个功能。其中包括,为每个功能说明一个处理过程;叙述设计约束;叙述性能特征;用一个或多个图形来形象地表示软件的整体结构和软件功能与其他系统元素间的相互影响。行为描述:描述作为外部事件和内部产生的控制特征的软件操作。检验标准:描述检验系统成功的标志。即对系统进行什么样的测试,得到什么样的结果,就表示系统已经成功实现了。它是“确认测试”的基础。参考书目:包含了对所有和该软件相关的文档的引用,其中包括其他的软件工程文档、技术参考文献、厂商文献以及标准。附录:包含了规约的补充信息,表格数据、算法的详细描述、图表以及其他材料。21.软件设计的任务(注意在回答接口设计的时候,需要讲清楚3个方面的内容)使用一种设计方法,软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计。(接口设计主要包括三个方面:–设计软件模块间的接口–设计模块和其他非人的信息生产者和消费者(比如外部实体)之间的接口–设计人(用户)和计算机间的接口)22.软件设计的目标(1)设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。(2)设计必须是可读、可理解的,使得将来易于编程、易于测试、易于维护。(3)设计应从实现角度出发,给出与数据、功能、行为相关的软件全貌。23.衡量软件设计的技术标准(1)设计出来的结构应是分层结构,从而建立软件成份之间的控制。(2)设计应当模块化,从逻辑上将软件划分为完成特定功能或子功能的部件。(3)设计应当既包含数据抽象,也包含过程抽象。(4)设计应当建立具有独立功能特征的模块。(5)设计应当建立能够降低模块与外部环境之间复杂连接的接口。(6)设计应能根据软件需求分析获取的信息,建立可驱动、可重复的方法。24.软件设计的过程(1)制定规范(2)体系结构和接口设计(3)数据/类设计(4)部件级(过程)设计(5)编写设计文档(6)设计评审25.数据抽象与过程抽象过程抽象(也称功能抽象)是指任何一个完成明确定义功能的操作都可被使用者当作单个实体看待,尽管这个操作实际上是由一系列更低级的操作来完成的。数据抽象是指定义数据类型和施加于该类型对象的操作,并限定了对象的取值范围,只能通过这些操作修改和观察数据。26.模块模块是数据说明、可执行语句等程序对象的集合,它是单独命名的,并且可以通过名字来访问。27.信息隐藏的概念每个模块的实现细节对于其它模块来说应该是隐蔽的块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用通过信息隐蔽,则可定义和实施对模块的过程细节和局部数据结构的存取限制28.内聚与耦合的概念内聚(cohesion)是一个模块内部各个元素彼此结合的紧密程度的度量耦合(coupling)是模块之间的相对独立性(互相连接的紧密程度)的度量29.功能内聚的概念功能内聚:指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割的。30.数据耦合的概念数据耦合:两个模块之间仅通过参数表传递简单数据,则称为数据耦合。31.调用和返回风格的体系结构这种风格使一个软件设计者设计出非常容易修改和扩充的体系结构。包含:主程序/子程序风格体系结构和远程过程调用风格的体系结构32.部件级设计阶段的主要工作⑴为每个部件确定采用的算法,选择某种适当的工具表达算法的过程,编写部件的详细过程性描述;⑵确定每一部件内部使用的数据结构;⑶在部件级设计结束时,应该把上述结果写入部件级设计说明书,并且通过复审形成正式文档,作为下一阶段(编码阶段)的工作依据。33.设计规约主要包含哪些内容1.工作范围2.体系结构设计3.数据设计4.接口设计5.各部件的过程设计6.运行设计7.出错处理设计8.安全保密设计9.需求/设计交叉索引10.测试部分11.特殊注解12.附录34.结构化分析与设计(一整章内容)一种较为流行的定义是:“如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连结,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的”。历史上克努特争论过这个问题随着面向对象和软件复用等新的软件开发方法和技术的发展,更现实、更有效的开发途径可能是自顶向下和自底向上两种方法有机的结合。35.结构化分析模型有哪些实体-关系图,数据流图,数据字典,状态转换图,控制规约,加工规约,数据对象描述36.系统响应时间的概念系统响应时间指从用户执行某个控制动作(如按回车键或点鼠标)到软件作出响应
本文标题:华南农业大学15年软件工程复习提纲
链接地址:https://www.777doc.com/doc-2341831 .html