《软件工程》复习提纲_第1页
《软件工程》复习提纲_第2页
《软件工程》复习提纲_第3页
《软件工程》复习提纲_第4页
《软件工程》复习提纲_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

《软件工程》课程要点每章教学课件中的“本章小结”列出了须要驾驭的内容教学过程中的例题和习题也是课程重点一、软件工程与软件过程概述1.概念:(1)软件的概念(组成成分、作用);答:计算机软件是程序、数据和相关文档的集合;用于实现计算机系统所须要的逻辑方法和限制过程(2)软件危机的含义、表现、产生缘由(客观、主观)答:计算机软件开发和维护过程中遇到的一系列严峻问题。软件危机的表现:①对软件开发成本和进度的估计很不精确②已完成的软件不能满意用户需求③软件质量差④软件不行维护⑤软件没有开发文档⑥软件成本在计算机系统总成本中所占的比例逐年上升⑦软件生产率跟不上硬件的发展和计算机快速普及的趋势与软件的特点有关(客观缘由):①软件是计算机系统中的逻辑部件,缺乏“可见性”,管理和限制软件开发过程相当困难②软件在运用期间不存在机械磨损和老化问题,一旦发觉错误,通常意味着修改原来的设计,因此软件难维护③软件规模浩大,程序困难性增加,需多人分工合作(不能保证每个人完成的工作合在一起构成一个高质量的大型软件系统)与软件开发和维护的方法不正确有关(主观缘由):①开发无安排②忽视软件需求分析的重要性③轻视软件维护④无过硬评测手段⑤缺乏有力的开发方法和工具⑥不重视开发文档等软件配置(3)软件工程学科包括的内容(三要素)、解决的主要问题答:(1)软件工程定义:1)

软件工程是指导计算机软件开发和维护的工程学科2)

采纳工程化的概念、原理、技术和方法来开发和维护软件3)将经过时间考验而证明正确的管理技术和开发技术结合起来,以较经济的手段开发出高质量的软件并有效维护它2)软件工程方法学的三要素:①方法:完成软件开发各项任务的技术方法②工具:为方法的高效运用,而供应的自动或半自动的软件支撑环境③过程:为了获得高质量的软件所须要完成的一系列任务的框架,它规定了完成各项任务的工作步骤(4)软件生命周期的含义、组成阶段及各阶段主要任务答:软件生命周期:一个软件从定义、开发、运行维护,直到最终被废弃要经验一个漫长的时期,这个时期称为软件生命周期。(1)问题定义阶段:通过调研,提出关于问题的性质、工程目标和工程规模的书面报告,并且须要得到客户的确认。●回答“要解决的问题是什么?”●文档:问题定义报告(2)可行性探讨阶段:用最小的代价在尽可能短的时间内确定问题是否能够解决。①进一步了解用户需求②提出若干种可能的系统实现方案③分析每种方案的技术、经济、社会可行性④最终确定这项工程的可行性●回答“是否有行得通的解决方法?”●文档:可行性探讨报告,项目开发安排(3)需求分析阶段:对目标系统提出完整、精确、清楚、具体的要求。①得出经过用户确认的系统需求②用正式文档(需求规格说明)精确表达系统需求回答“系统必需做什么?”文档:需求规格说明书(4)概要设计阶段:①设计系统实现方案②设计程序的体系结构,即确定程序由哪些模块组成以及模块间的关系。概括地回答“怎样实现目标系统?”

文档:概要设计说明书5)具体设计阶段:设计实现每个模块功能所须要的算法和数据结构回答“应当怎样具体地实现这个系统?”文档:具体设计说明书(6)编码和单元测试:写出正确的、易理解、易维护的程序模块代码;测试编写出的每一个模块文档:经过测试的程序源代码、程序开发记录(模块开发卷宗)(7)综合测试阶段:通过各种类型的测试(及相应的调试)使软件达到预定的要求。①集成测试(组装测试)。②验收测试测试文档:测试安排、具体测试方案、实际测试结果(8)软件维护阶段:通过各种必要的维护活动使系统长久地满意用户的须要。四类维护活动:改正性维护、适应性维护、完善性维护、预防性维护文档:软件维护申请、软件修改报告2.需理解的问题:(1)软件与程序的区分和联系?答:计算机软件是程序、数据和相关文档的集合;程序:能够完成特定功能和性能的可执行的指令序列(2)开发一个软件项目包括哪些基本的步骤?每一步骤完成哪些工作?答:(3)主要的软件过程模型(生命周期模型)有哪些?各自有什么特点?答:软件生命周期模型也称为软件过程模型,它直观地描述了把软件生命周期划分成哪些阶段及各个阶段的执行依次主要有:瀑布模型、增量模型、螺旋模型、喷泉模型、统一软件过程。(2)瀑布模型的特点①阶段间具有依次性和依靠性②推迟实现的观点③阶段质量保证观点(文档驱动)瀑布模型的优点:强迫采纳规范方法开发软件;严格规定了各阶段提交的文档;各阶段结束前必需经过技术审查和管理复审。瀑布模型缺点:分析和设计阶段只考虑逻辑模型;过分依靠文档,可能导致最终的软件产品不能完全满意用户需求瀑布模型适用的软件项目:规模小、需求明确、无须维护2)快速原型模型的优点:通过原型获得精确的用户需求;通过原型积累了开发阅历,软件开发时期的各阶段基本上是线性依次过程、提高了总开发效率。快速原型模型适用的软件项目:规模小、需求不够明确、无须维护

3)增量模型的优点:①便于并行完成开发工作;②逐步提交软件产品;③软件的可维护性和可扩充性较好增量模型适用的软件项目:强调开发进度、可维护性要求高、可扩充性要求高螺旋模型是一个演化的软件过程模型,是在每个阶段之前都增加了风险分析过程的快速原型模型。在螺旋模型中,螺旋线的每个周期对应一个软件生命周期的开发阶段。每个阶段包括四个方面的活动:①制定安排-确定目标,选定方案,设定约束条件②风险评估-评估所选方案,识别风险,考虑如何消退风险③实施工程④评估工程-评价开发工作,提出修正建议。运用螺旋模型须要丰富的风险评估阅历和特地学问;螺旋模型适用于内部开发的大型软件项目1、喷泉模型也称为面对对象的生命周期模型2、软件开发过程阶段之间是迭代的、无间隙的对象概念贯穿整个开发过程,只用对象类及其关系表达分析、设计、实现等活动在分析、设计和编码等开发活动之间并不存在明显的边界,开发各阶段同步进行、可以提高开发效率3、各开发阶段重叠、可能随时增加新的需求和各种信息,因此喷泉模型要求严格管理文档,审核难度加大,对项目管理要求较高。RUP首先建立整个项目的不同时间阶段,体现开发过程的动态结构,包括:初始阶段、细化阶段、构造阶段、移交阶段。同时以内容来组织项目的活动,体现开发过程的静态结构。RUP融入了瀑布模型的线性结构和演化模型的增量及迭代思想(3)有哪些主流的软件工程方法?答:①传统方法学(生命周期方法、结构化方法):●从时间角度对软件问题进行分解,将软件开发维护过程划分成若干阶段。②面对对象方法学:面对对象方法学的动身点和基本原则:尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类相识世界解决问题的方法与过程,使问题空间与实现空间在结构上尽可能一样。(4)如何消退软件危机(如何解决软件危机?)一、概念:软件过程,软件生命周期,软件生命周期模型6、具体说明:针对不同的软件项目,应当如何选择软件生命周期模型7、你如何理解RUP的特点8、灵敏过程的主要特点和优势1.什么是软件生命周期,分哪几个阶段、各阶段的任务是什么?2.常用的软件生命周期模型有哪些?总结它们的特点。3.谈谈下列三者之间的区分和联系:软件工程、软件过程、软件生命周期模型二、结构化分析-面对数据流的分析方法1.什么是软件需求?需求分析过程(步骤)?答:软件需求:软件系统必需符合的条件和具备的功能需求分析的任务(过程):1.精确了解用户状况和须要解决的问题:◆与用户沟通的途径:访谈、参考类似系统、快速原型技术2.对需求反复求精和细化,得出对目标系统完整、精确和具体的要求3.需求建模:对获得的需求做出抽象、即进行无歧义描述。◆模型是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。4.编制需求规格说明书5.进行需求分析的评审2.需求分析模型:(1)功能模型(数据流图DFD)的含义、描述符号、画法步骤及规则(2)数据模型(E-R图)的作用(3)行为模型(状态转换图)的作用(4)数据字典的作用三、结构化设计软件设计的任务?结构化设计与结构化分析的区分和联系?软件设计遵循的基本原理及规则:(1)模块化的含义、如何划分模块(降低成本、提高独立性)?(2)抽象与逐步求精的含义、二者间关系如何?(3)信息隐藏的含义(4)如何完善软件结构(深度、宽度、扇入、扇出、作用域、限制域)?模块独立性:(1)模块独立性含义?(2)模块独立性的度量标准:耦合的分类、含义及应用;内聚的分类、含义及应用。概要设计(面对数据流的设计方法)(1)概要设计的任务?(2)数据流图的类型及特征(变换型、事务型)(3)变换分析设计方法的应用(步骤)(4)事务分析设计方法的应用(步骤)4.具体设计(过程设计)(1)具体设计的任务(2)结构化程序(设计)的特征(3)具体设计结果的描述工具:程序流程图、N-S图、PAD图、PDL、判定表一、理解以下问题:1、什么是软件需求?软件需求如何分类?2、需求分析的作用和重要性3、需求分析阶段须要完成的工作4、结构化分析模型的内容5、E-R图的内容和作用;数据流图的内容和作用;状态转换图的内容和作用;数据字典的内容和作用二、驾驭以下建模技术和工具:1、运用E-R图建立软件系统的数据模型2、运用分层数据流图建立软件系统的功能模型3、运用状态转换图建立软件系统的行为模型4、运用数据字典定义结构化分析模型中的数据对象1、某高校选课系统的功能包括:老师提交开课申请,系统依据开课安排审核老师的开课申请,审核通过后向老师下发开课通知。学生可以通过系统进行选课,首先提交选课单,系统进行审核通过后,告知学生选课结果。老师可以查询本人任教课程的选课名单。请运用分层数据流图描述选课系统的功能。2、某运动会管理系统的功能为:接受来自运动员的报名单,生成运动员号码单发送给运动员,产生参赛人员报表发送给裁判。接受来自裁判的竞赛项目及成果,产生竞赛结果发送给发布台。请用分层数据流图表示上述系统的功能。四、软件测试1.软件测试基础软件测试的含义和目的?测试用例的内容(输入数据、预期输出结果)?主要测试方法(黑盒测试、白盒测试)的含义?2.主要的白盒测试技术及应用-------逻辑覆盖法?基本路径测试方法?3.主要的黑盒测试技术及应用-------等价类法?边界值分析法?4.软件测试的过程?(1)单元测试(采纳的测试方法;测试内容)(2)集成测试(采纳的测试方法;测试内容;模块组装策略)(3)确认测试(采纳的测试方法;测试内容;α测试与β测试?)(4)协助模块的含义及作用(驱动模块、存根模块?)一、理解以下概念:1、模块、模块化、抽象、信息隐藏;2、模块独立性、耦合、内聚;二、理解以下问题:1、软件设计阶段的任务?2、概要设计和具体设计的区分和联系?3、结构化分析为结构化设计供应了哪些信息?4、指导软件设计的基本原理和启发规则有哪些?理解这些原理的具体含义和作用。二、理解以下问题:5、软件设计中,如何合理划分模块才能保证软件的开发成本达到最小?6、什么是模块独立性?如何度量和设计模块独立性?7、软件设计中应当如何设计耦合性?如何设计内聚性?8、表示软件结构的工具有哪些?能够正确运用以下工具:H图、IPO图、软件结构图9、理解变换型数据流图和事务型数据流图的特点。10、运用面对数据流方法设计软件结构的过程是什么?、理解以下问题:11、结合实例,驾驭变换分析设计方法的步骤12、结合实例,驾驭事务分析设计方法的步骤13、结构化程序的基本特征是什么?14、表示结构化程序逻辑的工具有哪些?能够正确运用以下工具:程序流程图、N-S图、PAD图、PDL、判定表、判定树1、什么是模块独立性?如何度量和设计模块独立性?2、依据下面变换型的数据流图,设计出对应的初始软件结构图并简述相应的设计步骤。五、面对对象方法学基础基本概念:(1)对象的含义及特点?(2)类的含义?类与对象的关系?(3)消息及消息传递的含义及作用?(4)继承的含义?多态性机制?2.面对对象建模技术中的三种模型及各自作用?3.对象模型及描述(类图):对象(类)的图形表示;关系(关联、聚集、继承)的图形表示;4.事务追踪图、状态图、用例图的作用、理解以下概念:软件测试、测试用例、黑盒测试、白盒测试、单元测试、集成测试、确认测试、系统测试、驱动模块、存根模块、等价类、边界值分析测试、调试二、理解以下问题:1、软件测试的含义及目标?2、软件测试的过程(步骤)?3、测试方案包含的内容?4、白盒测试的含义及作用?黑盒测试的含义及作用?5、各种逻辑覆盖测试的含义及运用?二、理解以下问题:6、基本路径测试法的运用?7、等价划分法的含义、测试步骤?8、软件测试各阶段与前期的哪些文档相关?9、软件测试过程如何体现“测试应当从小规模起先,并逐步进行大规模测试”的测试准则?10、如何进行单元测试、集成测试、确认测试?各阶段重点测试的内容?12、测试和调试的区分和联系?◆第5章习题1.什么是软件测试?2.什么是测试用例?设计测试用例时,应当考虑哪些因素?3.阐述单元测试、集成测试、有效性测试之间的区分。4.下列伪码程序的功能是“输入三角形的三个边长,推断构成何种三角形”。(1)运用条件覆盖法,为上述程序设计白盒测试用例。(2)运用等价类划分法,为上述程序设计黑盒测试用例STARTREAD(A,B,C)IF(A≤0)OR(B≤0)OR(C≤0)THENWRITE(“三角形边长不能为零”)ELSEIF(A+B≤C)OR(A+C≤B)OR(B+C≤A)THENWRITE(“不能构成三角形”)ELSEIF(A=B)AND(B=C)THENWRITE(“等边三角形”)ELSEIF(A=B)OR(B=C)OR(A=C)THENWRITE(“等腰三角形”)ELSEWRITE(“一般三角形”)STOP六、面对对象分析与设计过程1.面对对象分析(OOA)的任务?OOA的基本过程?2.面对对象设计(OOD)的主要任务?OOD与OOA的区分和联系?3.OOD模型的组成(四部分)及内容?一、理解下列基本概念:1、对象的含义及特点?2、类的含义?类与对象的关系?3、消息及消息传递的含义及作用?4、继承的含义?多态性机制?5、面对对象软件开发方法的要点6、UML的含义及用途?二、须要驾驭的内容:1、面对对象建模的主要工作?三种面对对象模型(对象模型、动态模型、功能模型)之间的关系?2、对象模型的含义及其表示(类图);对象之间的关系?类之间的关系?3、动态模型的含义及其表示(事务追踪图、状态图)4、功能模型的含义及其表示(数据流图、用例图)◆第6章习题1.说明以下概念并通过一个例子加以说明:对象;类;关联;继承;聚集2.为什么面对对象方法要从多个侧面(对象模型、动态模型、功能模型)建立系统模型。3.建立符合下列陈述的对象模型某图书馆有很多名职员为之工作,职员又进一步划分为馆长和管理员两类;馆长可对图书借阅工作进行管理,每名管理员可管理多本图书,每本图书可由多名管理员管理;图书拥有很多读者,借书证号惟一地确定一个读者;读者又可分为老师和学生两类,每名老师或学生可以借阅数本图书,每一种图书可供多名教师或学生借阅。七、软件维护软件维护的含义及类型?软件维护过程?◆须要驾驭的内容:1、面对对象分析(OOA)的任务?面对对象分析(OOA)过程中包括哪些活动?2、三种面对对象模型各自表示的内容?3、对象模型的表示工具?动态模型的表示工具?功能模型的表示工具?4、结合软件开发实例,理解三种面对对象模型之间的关系以及面对对象分析环节完成的主要工作。-----------------------------------------------------------------------------课堂练习题目一、填空题1.软件主要包括程序、和三部分内容。2.软件可行性探讨的任务是从技术、和三个方面分析软件项目的可行性。3.软件测试的目的是;通常把软件测试方法分为和两大类。4.结构化分析方法中,功能模型用描述;数据模型用描述。5.在类的继承结构中,不同层次的类共享同一个行为名称,但各个类可以依据自己的须要为同名行为设计不同的算法,此性质称为类的__。二、选择题1.产生软件危机的主要缘由有(C)。=1\*GB3①软件本身的特点=2\*GB3②用户运用不当=3\*GB3③硬件牢靠性差=4\*GB3④程序员水平=5\*GB3⑤缺乏好的开发方法和管理手段A.=3\*GB3③=4\*GB3④B.=1\*GB3①=2\*GB3②=4\*GB3④C.=1\*GB3①=5\*GB3⑤D.=1\*GB3①=3\*GB3③2.需求分析阶段,开发人员需从用户那里获得的最重要信息是(C)。A.用户能接受的开发费用B.用户能接受的开发周期C.用户要让软件做什么D.软件应具有何种结构3.数据流图中的每个处理至少有(B)。A.一个输入流或一个输出流B.一个输入流和一个输出流C.一个输入流D.一个输出流4.在面对数据流的设计方法中,一般把数据流图划分为(C)两种类型。

A.数据流和事务流B.变换流和数据流C.变换流和事务流D.限制流和事务流5.数据流图所描述的是实际系统的(A)。A.逻辑模型B.物理模型C.程序流程D.数据结构6.由变换型数据流图转换成模块结构图,其中包括变换模块,则(B)。A.变换模块就是主模块B.变换模块的功能是将逻辑输入变换为逻辑输出C.变换模块没有下层模块D.变换模块只能有一个输入量、一个输出量7.为了提高软件测试的效率,应当(C)。A、在完成编码以后制定软件的测试安排B、取一切可能的数据作为测试数据C、选择发觉错误可能性大的数据作为测试用例D、随机地选取测试数据8.有一个计算程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(C)A、条件覆盖法 B、等价分类法C、边界值分析法 D、错误推想法9.关于单元测试,正确的是(C)。A.单元测试的依据是概要设计说明书B.单元测试中不须要运用白盒测试法C.单元测试包括模块接口测试D.单元测试时不须要协助模块10.有关集成测试的叙述中,(A)是正确的。A.测试底层模块时不须要桩模块B.自底向上测试方法有利于提前预料测试结果C.驱动模块的作用是模拟被调模块D.自顶向下测试方法易于设计测试用例11.(D)表示了类之间的“一般__特别”关系。

A.聚集B.关联C.消息传递D.继承12.OOA模型规定了一组对象如何协同才能完成软件系统所指定的工作。这种协同在模型中是以表明对象通信方式的一组(A)连接来实现的。A.消息B.记录C.数据D.属性13.面对对象开发方法定义了三种模型来描述系统,(B)可以用数据流图来表示A.对象模型B.功能模型C.动态模型

温馨提示

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

评论

0/150

提交评论