您好,欢迎访问三七文档
1/11复习大纲:题型:1、单向选择题(共30分,每题2分)2、填空题(共20分,每小题1分)3、简答题(共30分,每小题6分)4、应用题(包括2小题,共20分)第一章绪论1.软件的概念,程序和文档,软件的特征。软件的概念:软件是能够完成预定功能和性能的可执行的计算机程序,包括是程序正常执行的所需要的数据,以及有关描述程序操作和使用的文档。简而言之,可以表述为“软件=程序+文档”。软件的特征:软件是逻辑产品而不是物理产品,具有与硬件完全不同的特征。1.软件开发不同于硬件设计:软件开发主要是脑力劳动;软件开发成本高。2.软件生产不同于硬件制造:软件生产无明显制造过程;制造只是简单的拷贝。3.软件维护不同于硬件维修:软件是逻辑产品不是物理产品;软件无磨损性;2.软件危机的定义、表现、产生时间、原因。软件危机的定义:在软件的开发和维护过程中遇到的一系列严重问题。表现:1、经常延期,无法按时提交产品;2、无法满足用户的期望;3、很难适应环境的变化;4、产品提交后出现很多问题。产生的时间:开始于20世纪60年代中后期(1968年前后)。原因:1、软件维护费用急剧上升,直接威胁计算机应用的扩大。2、软件生产技术进步缓慢,是加剧软件危机的重要原因。3.软件工程的概念。软件工程的概念:采用工程化的原理和方法对软件进行计划、开发和维护。软件工程=软件开发技术+软件工程管理4.软件工程环境的概念。软件工程环境的概念:方法和工具相结合,再加上配套的软、硬件支持就形成软件工程环境。5.3种编程泛型:过程式编程泛型、面向对象编程泛型、基于构件技术的编程泛型过程式编程泛型:程序=数据结构+算法面向对象编程泛型:程序=对象+消息基于构件技术的编程泛型:构件是一种通用的(可复用的)、可支持不同应用程序的软件组件。(1)过程式编程范型:着眼于程序的过程和基本控制,粒度最小。(2)面向对象编程范型:着眼于程序中的对象,粒度比较大。(3)基于构件技术的编程范型:着眼于适合整个领域的类对象,粒度更大。2/116.3代软件工程:传统软件工程或经典软件工程、面向对象软件工程、基于构件的软件工程(1)传统软件工程或经典软件工程:结构化分析→结构化设计→面向过程编码→测试(2)面向对象软件工程:OO分析→OO设计→OO编码与测试(3)基于构件的软件工程:领域分析→领域设计→建立可复用构件库→按“构件集成模型”查找与集成构件三代软件工程并非相互排斥,而是“你中有我,我中有你”。第二章软件生存周期与软件过程1.软件生存周期的概念。一个软件从开始计划起,到废弃不用的整个时期,称为软件生存周期。2.软件生存周期包含3个时期。软件生存周期包含3个时期:计划、开发和运行时期。各时期又分为若干阶段,共6个阶段。3.软件生存周期的主要活动。可行性研究、需求分析、软件设计、编码、测试、运行维护。4.软件设计分为几个部分?总体设计:又称概要设计,主要确定软件的体系结构。详细设计:又称过程设计,主要设计每个模块的实现细节。5.软件测试分为几个层次?单元测试、集成测试、确认测试和系统测试。6.软件开发模型总结开发模型特点场合瀑布模型(基于软件生存周期的线性开发模型,历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终开发的软件产品可能并不是客户真正需要的)线性模型,每个阶段必须完成固定文档需求明确的中小型软件开发快速原型模型(正是为了克服瀑布模型的缺点提出来的,他通过快速构建起一个可以在计算机上运行的原型系统,让用户使用原型并收集用户反馈意见的方法,获取用户的真实需求)用户介入早,通过迭代完善用户需求,应用快速开发工具。逼真、快速。需求模糊的小型软件开发增量模型(具有可在软件开发的早期阶使投资获得明显回报和交易维护的优点,但是,要求软件具有开放的结构是使用这种模型固有的困难。)每次迭代完成一个增量,可用于OO开发容易分块的大型软件开发螺旋模型(结合瀑布模型与快速原型模型基础上演变而成,适用于大型软件项目,但是只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会成功。)计划、风险分析、建立原型、用户评审。典型迭代模型,重视风险分析,可用于OO开发。在项目开发的所有阶段都考虑各类风险。具有不确定性的大型软件开发构件集成模型(面向对象基于构件库,融合螺旋模型的特征,支持软件开发,迭代方法,软件复用思想)软件开发与构件开发平行进行,主要用于OO开发领域工程,行业的中型软件开发,主要用于oo开发7.统一过程模型RUP(RationalUnifiedProcess)。RUP是美国Rational公司(现被IBM公司兼并,称IBM-Rational公司)开发的一种支持UML建模过程的软件工具。RUP是以用例为驱动、以系统架构为中心的迭代与增量过程。RUP在一个二维空间中描述软件开发活动,水平轴代表时间,显示了过程动态的一面,它将一个软件生存周期分为4个阶段,包括初始、细化、构造和移交阶段,每个阶段又可以分为多个迭代。3/118.软件可行性研究:经济可行性、技术可行性、运行可行性、法律可行性。9.可行性研究的步骤:对当前系统进行调查研究、导出新系统的解决方案、提出推荐方案、编写可行性论证报告。10.可行性报告的结论。结论可区分为可立即进行、推迟进行以及不能或不值得进行3类。第三章结构化分析与设计1.结构化分析的两项基本任务。①建立分析模型②编写需求规格说明书(SRS)(SRS应该具有准确性;SRS应该防止二义性;SRS应该直观、易读、易于修改。)2.结构化分析模型的组成。实体联系图;数据流图;状态变换图3.数据流图DFD(DataFlowDiagram):指明数据在系统中如何流动和变换;描述对数据流进行变换的功能;DFD中每个功能的描述包含在加工说明(PSPEC)中。4.数据流图的组成符号:5.加工说明是对DFD中每个加工处理的说明,所使用的工具主要有:结构化语言、判定表、判定树6.书上例3.7和课件上的补充题,掌握使用判定表和判定树进行加工说明。例3.7某公司对推销员的奖励办法:(1)每周推销金额≤10000元,按预收货款是否超过50%,分别奖励推销额的6%或4%;(2)每周推销金额>10000元,按预收货款是否超过50%,分别奖励推销额的8%或5%;(3)对于月薪<1000元的推销员,分别另发鼓励奖300、200和500、300元。判定表:4/11判定树:可见补充题:下面是货运收费策略:计算铁路运费时,若收件地点在本省以内,快件每公斤1.5元,慢件每公斤1元。若收件地点在外省,快件每公斤2元,慢件每公斤1.5元。请分别用判定表和判定树表示。判定表:判定树:7.结构化设计模型的组成。8.概要设计的描述工具。体系结构设计是用来确定软件结构的,其描述工具为结构图(StructureChart),简称SC图。(1)用矩形框表示模块;(2)用箭头或直线表示模块间的调用关系;5/11(3)在调用线的两旁用短箭头表示传入和传出模块的数据流。9.数据流图的两种类型变换型结构:由输入、变换中心和输出三部分组成。事务型结构:具有在多种事务中选择执行某类事物的能力。10.模块设计(详细设计、过程设计)的常用表达工具。程序流程图和N-S(盒)图。第四章面向对象和UML(UnifiedModelingLanguage)1.面象对象的基本特征1.抽象(Abtraction)抽象指忽略主题中与当前目标无关的因素,以便更充分地注意与当前目标相关的因素。2.封装(Encapsulation)封装可用于把操作和数据包围起来,对数据的访问只通过已定义的接口来完成。3.继承(Inheritance)继承是父类和子类之间共享数据和方法的机制。一个子类可以继承它的父类中的属性和操作,子类还可以定义自己的属性和操作。在一个面向对象系统中,子类和父类之间的继承关系构成了系统的类层次结构。4.多态(Polymorphism)不同类的对象可以对同一消息作出响应,执行不同的处理,称为多态。2.UML的2类图:静态图(用例图、类图、对象图、构件图、部署图);动态图(状态图、时序图、协作图、活动图)UML的5种视图:用例视图、逻辑视图、进程视图、构件视图、部署视图。3.UML中用例图由系统边界、用例、参与者、关联组成。它定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。UML特点:统一标准、面向对象、表达能力强大、可视化。4.类之间的关系。关联关系、聚集关系、泛化关系、依赖关系。1.关联关系:(1)普通关联最常见的关联是普通关联,两个类之间用一条直线连接,直线上写上关联名。关联可以有方向,用小实心三角形表示。关联的重数:在关联的两端可写上重数,它表示该类有多少个对象可以与对方的一个对象连接。重数的符号表示如下:1表示1个,重数的默认值为1;0..1表示0个或1个;1..*表示1个或多个;0..*表示0个或多个,可以简化为*;2..4表示2个至4个。(2)递归关联递归关联是指类与自身的关联。例如在一个公司的“员工”类中存在着“管理”递归关联。(3)多重关联多重关联是指两个以上类之间的关联。(4)有序关联6/11一般来讲,在重数为“多”的关联端的对象是无序的;若这些对象必须有序时,则应在关联的“多”端写上{ordered}。(5)限制关联限制关联用于限制1:n或m:n的关联,将其简化为1:1或m:1。(6)或关联或关联是对二个或更多个关联附加的约束条件,其表示方法是用虚线将具有“或关系”的关联连接起来,并在虚线上方标注{or}。(7)关联类在UML中可以把关联定义成类,该关联的每个链都是这个类的实例;关联类也具有属性、操作和其它的关联。2.聚集关系聚集是一种特殊形式的关联,它表示类之间的关系是“整体与部分”的关系。(1)共享聚集(SharedAggregation):它的“部分”对象可以是多个任意“整体”对象的一部分。共享聚集也用◇表示。(2)组合聚集(CompositionAggregation,又称组装聚集):“整体”拥有各“部分”,“整体”与“部分”共存。如“整体”不存在了,“部分”也会随之消失。组合聚集用实心菱形◆表示。3.泛化关系泛化描述类之间的“一般与特殊”关系。普通泛化。具有泛化关系的两个类之间,“一般类”是“特殊类”的父类,特殊类是一般类的子类。泛化表示为一端带空心三角形△的连线,空心三角形紧挨父类。限制泛化:通常需要在泛化关系上附加某些约束条件,以便进一步说明泛化关系的使用方法或扩充方法,从而得到限制的泛化。4.依赖关系依赖表示两个类之间语义上的依赖关系。依赖关系表示为带箭头的虚线,箭头指向独立的类。5.顺序图和协作图的概念。1.时序图(SequenceDiagram,又称为顺序图)●时序图描述对象之间消息传递的时间顺序。●时序图存在两个轴:垂直轴表示时间,水平轴表示不同的对象。●时序图的图形元素:①对象(Object):采用对象的短式标志.对象位于时序图的顶部。②生命线(Lifeline):用垂直虚线表示(对象生命的不活跃期)③激活期(ActivePeriod):用垂直细长矩形表示(接收对象收到消息时,立即开始执行活动,对象被激活了)。④消息(Message):用箭头表示,箭头上标明消息名。消息可带有条件(用方括号表示)。一个对象可以给自己发送消息。消息传递的时间顺序为:沿垂直方向从上向下推进。7/112.协作图(CollaborationDiagram)●协作图描述相互协作的对象间的链接关系。(1)链接(Link):链接表示对象之间的关系。(关联表示类之间的关系。链接是关联的实例,关联是链接的抽象。)(2)消息流(MessageFlow):在协作图的链接线上,用消息串来描述对象间的交互。(3)协作图的图形元素:①对象:用对象的短式标志。②链接:用直线表示。③消息:用箭头表示,箭头上标明消息名,在消息名前可以标明消息顺序的序列号。6.一本书的组成有一个封面、一个目录、一个前言、若干章。每章有若干节,每节有若干段,每段有若干句子。每节还有0个或多个插图
本文标题:软件工程复习整理版
链接地址:https://www.777doc.com/doc-5008151 .html