软件工程-期末复习提纲完美版
软件工程-期末复习提纲完美版《软件工程》复习提纲1 软件与软件工程1.1软件的基本概念(例如,软件的定义、文档、软件的特点等)简单地说,软件由程序和文档两部分组成,一是机器可以执行的程序及有关的数据,二是机器不能执行的文档,软件的两种普遍定义:①软件是与计算机系统操作有关的程序,规程、规则及任何与之相关的文档和数据。
②软件是程序以及开发,使用和维护程序所需要的文档,包括机器运行所需要的各种程序及有关资料。
程序:为了解决某一问题而按事先设计的功能和性能要求执行的指令系列,或者说,用程序设计语言描述的适合于计算机处理的语句序列。
数据:使程序能正常操纵信息的数据结构。
文档:描述程序、数据和系统开发以及使用的各种图文资料。
它具有永久性并能供人或机器阅读。
软件的基本特点:·①计算机软件产品是一种逻辑产品部件而不是物理产品部件。
·②软件产品的生产主要是研制,是通过人们的智力活动,把知识与技术转化成信息的一种产品。
·③软件具有“复杂性”,其开发和运行常受到计算机系统的限制。
而且,软件投入使用后,仍需要进行维护,这就带来软件维护复杂性的问题。
1.4软件工程学的原理、原则①软件工程的基本原则抽象(abstractian)模块化(modularity)信息隐蔽(information hiding )(localization)一致性(consistency)完备性(completeness)可验证性(verifiability)②软件工程的基本原理【可以考虑以下的7条】:用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代软件开发技术;结果应该能审查 ;开发小组的人员应该少而精;承认不断改进软件工程实践的必要性。
1.5软件工程的基本(主要)目标【多目标特性】付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发工作,及时交付使用。
1.6软件开发模型概念(常用的几种)软件生命期的概念:指软件产品从形成概念(构思)开始,经过定义、开发、使用和维护,直到最后被废弃为止的全过程。
按照传统的软件生命周期方法学,可以把软件生命期划分为软件定义、软件开发、软件运行与维护3个阶段。
软件过程模型的基本概念:它是从某一个特定角度提出的软件过程的简化描述,模型的主要特点是简单化。
软件过程是制作软件产品的一组活动以及结果,这些活动主要由软件人员来完成。
通常包括以下4类基本过程:1. 软件规格说明(软件描述):规定软件的功能及其运行环境(使用的限制)。
2. 软件开发:也就是软件的设计和实现,软件工程人员制作产生满足规格说明的软件。
3. 软件确认(有效性验证):软件必须经过严格的验证,以保证能够满足客户的需求;4. 软件演进(进化):软件随着客户需求的变化不断地改进。
①瀑布模型瀑布模型(waterfall model)描述了软件生命的一些基本过程活动,所以它称为软件生命周期模型。
这些活动从一个阶段到另一个阶段逐次下降,它的工作流程形式上又很像瀑布,人们更多的把它称为瀑布模型,该模型如图所示。
②原型模型原型模型(prototype model)又称快速原型。
由于瀑布型的缺点,人们借鉴建筑师或是工厂中的工程师建造原型的经验,提出了原型模型。
该模型如图所示。
③螺旋模型螺旋模型(spiral model)是在快速原型的基础上扩展而成,也有人把螺旋模型归到快速原型,实际上,它是生命周期模型与原型模型的一个结合,该模型如图所示。
④构件组装模型事实上,在许多的软件项目中,都存在一些重用软件,当软件人员意识到某一个项目中的设计或者代码是另一个项目重复出现时,重用就自然地发生了,构件也正是基于这一思想而产生的。
构件的重用又导致软件的可靠性和易维护性,程序在进行修改时产生较少的副作用。
近几年来,以组件为基础的软件工程方法出现了,基于构件组装的软件过程模型也随之产生,并且逐渐地被广泛使用,该模型如图所示。
⑤基于面向对象的模型自从面向对象技术问世后,很快被人们所接受,并得到广泛的应用。
面向对象技术确实有很多的优点,其中构件重用是非常重要的技术之一。
对象技术强调了类的创建与封装,一旦一个类创建与封装成功,就可以在不同的应用系统重用。
对象技术为基于构件的软件过程模型提供了更强的技术框架,基于面向对象的模型,是综合了面向对象和原型方法以及重用技术的一种模型。
该模型如图所示。
⑥基于四代技术的模型四代语言(4GL)是在大型数据库管理系统的基础上发展起来的程序设计语言。
4GL目前还没有统一的定义,它的描述定义:·用于快速开发应用软件的高产工具(重点强调了提高软件开发的生产率)。
·用于快速事务处理系统的高产工具(突出了主要应用领域)。
主要特征描述:(1)它是非过程化的语言,目的在于高效,直接地实现各种应用系统。
在完成了常见的功能时,它却完全不用编程的方式来构造应用系统。
例如,菜单生成器、报表生成器、屏幕生成器、图形软件包等等。
程序员可以不再使用通常编程的方法、算法等来完成某一个功能,而是利用一些生成器,在屏幕上以对话的交互方式;通过填表或操作屏幕上的窗口、按钮图标;或者在某一个按钮定义时加上适当的一段程序等等。
从而,构造用户需要的应用系统生成器自动生成源程序。
(2)它与数据库的关系密切,能够对大型数据库进行高效处理。
它被广泛地应用于数据管理系统中。
以4GL为核心的软件开发技术称为四代技术。
使用四代技术,可以带来许多的方便,在软件开发的时间,成本和质量等方面都会取得较好的效果,但它毕竟在系统开发全过程中所占有的比例是很少的。
基于四代技术的模型,如图示:⑦变换模型变换模型(transformational model)是基于形式化规格说明语言及程序变换的软件开发模型,又称自动程序设计模型,在这个模型中,应用系统是自动生成。
该模型如图所示。
⑧循环模型为了描述软件开发过程中可能的回溯,尤其是维护阶段往往要经历上述各个阶段,采用循环模型描述。
⑨基于知识工程的模型基于知识工程模型简称智能模型,该模型是知识工程与软件工程结合的产物。
如图所示。
1.7传统的瀑布模型分成哪几个阶段,以及基本任务2 可行性研究2.1基于计算机的系统可以将基于计算机的系统定义为某些元素的一个集合或者排列,这些元素被组织起来,以实现某种方法、过程或者借助处理信息进行控制等。
人们通过“系统”完成某个预定的目标。
系统元素以及相互之间的关系如图所示。
基于计算机的系统可能成为某一个更大系统中的一个元素,并称为该系统的宏元素。
也就是说,宏元素是一个基于计算机的系统,它是某一个更大的基于计算机的系统的一部分,因此,系统具有复杂的层次结构。
例如,一个工厂自动化系统,它实质上是一个由若干个系统组成的层次结构。
如图所示。
计算机系统工程是指与构造基于计算机系统有关的过程、方法和技术。
计算机系统工程的任务是,组织并指导系统工程师定义全系统各层次中的所有基于计算机系统的元素。
系统工程过程比软件工程过程更复杂,系统工程过程主要有以下的活动:·需求定义;系统设计;子系统开发;系统集成;系统安装;系统进化;系统退役。
一个计算机系统工程包括硬件工程、软件工程和人机工程3部分。
【数据库工程、网络工程】2.2可行性研究的概念、目的、任务概念:可行性分析和研究就是研究问题是否有解。
如果问题没有解,分析员应建议停止项目的开发;如果问题有解,而且值得解,分析员应该提供解的方案(存在几个可能的方案,比较各个方案的优缺点,并推荐一个较好的方案)。
目的是用最小的代价,在尽可能短的时间内确定问题是否有解和是否值得解。
任务:可行性研究的输入信息是系统的一个框架描述和系统将如何在机构中使用的说明信息,可行性研究的结果是一份报告,报告该项目是否值得开发和具体的意见和建议。
可行性研究过程如图所示。
2.3可行性研究内容包括哪几方面的可行性?经济可行性;技术可行性;社会可行性;方案的抉择与可操作性;可行性研究报告2.4系统分析与系统结构模板软件开发方法可分为两大类:面向过程的开发方法面向对象的开发方法为了提高软件的生产效率和软件产品的质量,选择好的软件开发方法是一个重要的措施。
常用的分析方法主要有4类:①功能分解方法该方法可表示为:功能分解方法 = 功能 + 子功能 + 功能接口表达了功能分解方法具有3个要素,即功能、子功能、功能接口。
用这种方法对系统进行分析是一个功能分解的过程,它的基本思想是将系统看成由若干功能构成的一个集合,每一个功能又可以分成若干子功能(子加工或者过程)等等。
在这一过程中,同时定义每一个功能的接口。
②数据流方法基于数据流的方法也是一种从问题空间到某一种表示的影射的方式,它用数据流图表示。
人们习惯把该方法直接称为结构化方法,由于它简单、实用,是传统软件工程最广泛使用的重要方法之一。
该方法可以表示为:数据流方法 = 数据流 + 数据变换 + 数据存储 + 终结点 + 加工说明 + 数据词典【其中,终结点是通常的数据源和数据池。
】这种方法思维的基本出发点是数据流,即利用数据流来理解问题和分析问题。
它采用了逐层分解,逐步求精的基本原则,分析人员沿着问题空间的数据流进行分析,从而,把数据流影射到分析结果的模型上(数据流图)。
③信息造型方法基于数据的信息造型(建模)方法本质上是一种分析方法,它的发展与数据库技术的发展有着密切的关系,有时把信息模型看作数据库模型。
该方法可以表示为:信息造型=对象+属性+联系+父类型/子类型+关联对象这里的对象是客观世界中的某种事物的表示,它具有属性,但不包含操作。
信息造型方法的基本出发点立足于数据(数据结构)而不是数据流,由问题空间认识导出数据结构,从而建立分析模型,这种方法的描述工具之一是ER图(实体-联系图),它的基本元素是实体、属性和关联。
信息造型方法的重要核心概念是实体—关系,实体是问题空间中的一个事物,它带有一组数据的属性,关联描述问题空间中事物之间的联系。
实体与关联加上属性形成一个网络结构,软件人员常常使用ER图描述系统的信息状态。
【例如,典型的代表是JACKSON方法】④面向对象方法用面向对象(object-oriented简称OO)方法,容易模拟人类习惯的思维方式,便于在计算机系统中自然地表达客观事物。
该方法可以表示为:面向对象方法=对象+类+结构(分类/组装)+继承/委托+消息(通信)其中,对象是一组属性和服务的封装体,它是问题空间中某一事物的抽象。
这个公式仅仅表达了面向对象方法中几个重要的特征。
面向对象方法的核心思想是利用面向对象概念和方法,它把重点集中在对问题空间的理解上,为软件系统需求建造模型。
面向对象技术把对象作为基本构件单位,整个系统的结构建立在一系列的类之上;软件分析和设计过程重要的是构筑类和类族、类(对象)的识别及划分、认定其属性和方法、类与类之间的关联、消息的传递等等。
软件工程复习提纲
软件质量的度量分类 成本-效应分析
第七章
掌握:
第11章
掌握: 软件质量保证的概念 软件质量保证的主要任务 软件配置管理的概念
1
2
演化模型 什么是演化模型? 首先针对一个不能完整定义需求的软件开发一个核心系统,然后用户使用该系统,提出精化系统郑家系统能力的需求,再根据用户反馈,实施开发的迭代过程。 特征: 多次迭代,每次迭代过程,需求分析→设计→编码→测试→集成。 优缺点:减少了软件需求不明确而该开发带来的风险性,但费时费力。 适用范围:适合于需求不能完整定义的某些项目。 螺旋模型 什么是螺旋模型? 将瀑布模型和演化模型结合起来,在此基础引入增加了风险分析。 特征:加入了风险分析。 优缺点:减少了软件开发的风险,但成本高,过程复杂。 适用范围:适合于大型软件的开发。
商务风商业计划书
CLICK HERE TO ADD A TITLECຫໍສະໝຸດ NTENTS目录壹
贰
叁
第五章
掌握: 结构化程序设计的思想 程序设计语言的选择因素 第六章
《软件工程》复习提纲
《软件工程》复习提纲一一、、 授授课课的的主主要要内内容容11.. 基基本本概概念念((11)) 有有关关““软软件件工工程程””的的基基本本概概念念11))软软件件工工程程的的诞诞生生那是1968……22))软软件件危危机机计计算算机机软软件件开开发发和和软软件件维维护护过过程程中中所所遇遇到到的的一一系系列列严严重重问问题题统统称称为为““软软件件危危机机””。
概括地说,软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。
33))软软件件包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件(计算机)。
文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。
软软件件由由计计算算机机程程序序,,数数据据结结构构和和文文档档组组成成。
计算机程序执行特定的功能;数据结构是程序运行所需的数据;文档是描述程序开发、使用和维护的资料。
44)) 软软件件工工程程的的概概念念采采用用工工程程学学的的原原理理来来管管理理和和从从事事软软件件的的开开发发和和软软件件维维护护,,称称为为软软件件工工程程。
(工程学:系统化、规范化、数量化)55))软软件件质质量量的的基基本本概概念念(a )软件质量的定义与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体。
具体来说:1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。
(b )软件质量特性(1)功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。
(2)可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。
(3)易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
(4)效 率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。
(5)维护性:软件产品可被修改的能力。
《软件工程》复习提纲
《软件⼯程》复习提纲注:下⽂中的例题仅供复习⽤,请不要当成考题来背。
1.软件危机主要体现在哪些⽅⾯?(1.1)P2例题:软件⼯程的出现主要是由于( C )。
A.程序设计⽅法学的影响B.其它⼯程科学的影响C. 软件危机的出现 D.计算机的发展软件危机主要表现在那些⽅⾯?答:软件危机主要表现在:1)对软件开发成本和进度的估算很不准确2)⽤户很不满意3)质量很不可靠4)没有适当的⽂档5)软件成本⽐重上升6)供不应求:软件开发⽣产率跟不上计算机应⽤迅速深⼊的趋势2.什么是瀑布模型,RUP模型,快速原型模型,螺旋模型,喷泉模型?(2.2-2.6,)P14起软件开发中常采⽤的结构化⽣命周期⽅法,由于其特征⽽⼀般称其为( A )A、瀑布模型B、对象模型C、螺旋模型D、层次模型瀑布模型的存在问题是(B)A.⽤户容易参与开发 B.缺乏灵活性C.⽤户与开发者易沟通 D.适⽤可变需求名词解释瀑布模型将软件⽣存周期各个活动规定为依线性顺序连接的若⼲阶段的模型叫瀑布模型。
书P34/2 对⽐瀑布模型、原型模型、增量模型和螺旋模型答:瀑布模型:主要体现了分阶段、有控制的思想。
活动间强调按顺序,⽂档化;存在的问题过于理想化,每⼀步的⼯作必须完整准确,否则⽆法进⾏下⼀步⼯作。
原型模型:需求分析⼊⼿快速、表达直观、容易交流。
重点解决瀑布模型的需求分析⼊⼿难的问题。
增量模型:对于需求复杂的系统,采⽤分块开发、逐步集成的开发策略。
增量体现了演进迭代思想,每⼀块就是⼀个增量。
每个增量是⼀次迭代。
增量模型的新版本叫做“极限编程(XP)”螺旋模型:融合了上述3种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。
但是,风险分析的正确性是左右软件演进的关键因素。
3.增量模型和ER模型有什么特点?2.4+3.4 P17+P42在E-R 模型中,包含以下基本成分( C )。
A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、对象、属性、操作ER模型有什么特点?答:ER模型⽐较接近⼈的思维⽅式。
软件工程复习提纲
软件工程复习提纲第一篇:软件工程复习提纲《软件工程》课程要点λ每章教学课件中的“本章小结”列出了需要掌握的内容λ教学过程中的例题和习题也是课程重点一、软件工程与软件过程概述1.概念:(1)软件的概念(组成成分、作用);(2)软件危机的含义、表现、产生原因(客观、主观)(3)软件工程学科包括的内容、解决的主要问题(4)软件生命周期的含义、组成阶段及各阶段主要任务2.需理解的问题:(1)软件与程序的区别和联系?(2)开发一个软件项目包括哪些基本的步骤?每一步骤完成哪些工作?(3)主要的软件过程模型(生命周期模型)有哪些?各自有什么特点?二、结构化分析-面向数据流的分析方法1.什么是软件需求?需求分析过程(步骤)?2.需求分析模型:(1)功能模型(数据流图DFD)的含义、描述符号、画法步骤及规则(2)数据模型(E-R图)的作用(3)行为模型(状态转换图)的作用(4)数据字典的作用三、结构化设计1.软件设计的任务?结构化设计与结构化分析的区别和联系?2.软件设计遵循的基本原理及规则:(1)模块化的含义、如何划分模块(降低成本、提高独立性)?(2)抽象与逐步求精的含义、二者间关系如何?(3)信息隐藏的含义(4)如何完善软件结构(深度、宽度、扇入、扇出、作用域、控制域)? 3.模块独立性:(1)模块独立性含义?(2)模块独立性的度量标准:耦合的分类、含义及应用;内聚的分类、含义及应用。
4.概要设计(面向数据流的设计方法)(1)概要设计的任务?(2)数据流图的类型及特征(变换型、事务型)(3)变换分析设计方法的应用(步骤)(4)事务分析设计方法的应用(步骤)4.详细设计(过程设计)(1)详细设计的任务(2)结构化程序(设计)的特征(3)详细设计结果的描述工具:程序流程图、N-S图、PAD图、PDL、判定表四、软件测试1.软件测试基础(1)软件测试的含义和目的?(2)测试用例的内容(输入数据、预期输出结果)?(3)主要测试方法(黑盒测试、白盒测试)的含义?2.主要的白盒测试技术及应用-------逻辑覆盖法?基本路径测试方法? 3.主要的黑盒测试技术及应用-------等价类法? 边界值分析法?4.软件测试的过程?(1)单元测试(采用的测试方法;测试内容)(2)集成测试(采用的测试方法;测试内容;模块组装策略)(3)确认测试(采用的测试方法;测试内容;α测试与β测试?)(4)辅助模块的含义及作用(驱动模块、存根模块?)五、面向对象方法学基础 1.基本概念:(1)对象的含义及特点?(2)类的含义?类与对象的关系?(3)消息及消息传递的含义及作用?(4)继承的含义?多态性机制?2.面向对象建模技术中的三种模型及各自作用?3.对象模型及描述(类图):对象(类)的图形表示;关系(关联、聚集、继承)的图形表示; 4.事件追踪图、状态图、用例图的作用六、面向对象分析与设计过程1.面向对象分析(OOA)的任务?OOA的基本过程?2.面向对象设计(OOD)的主要任务?OOD与OOA的区别和联系?3.OOD模型的组成(四部分)及内容?七、软件维护1.软件维护的含义及类型? 2.软件维护过程?--------------- 课堂练习题目一、填空题1.软件主要包括程序、和三部分内容。
软件工程复习提纲(附答案)
软件工程复习提纲(附答案)软件工程第一章软件工程介绍1、软件的特性:P3软件是设计开发的,而不是传统意义上的生产制造;软件不会磨损;大多数软件仍是根据实际的客户需求制定的。
2、计算机软件的七大分类:P5系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
3、遗留系统发生系统演化的原因:P6软件需要修改其适应性,从而可以满足新的计算环境或技术的需求软件必须根据新的业务需求进行升级软件必须扩展以具有与更多现代系统和数据库的协作能力软件架构必须进行改建以适应多样化的网络环境4、软件神话:管理者,用户,从业者P135、软件的定义:P3软件是:指令的集合,通过执行这些指令可以满足预期的特征,功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。
第二章过程综述1、软件工程的三个要素:工具,过程,方法P8过程:软件过程将各个技术层次结合在一起,并实施合理地,及时地开发计算机软件方法:为建造软件提供技术上的解决方法。
工具:为过程和方法提供自动化或半自动化的支持。
2、通用软件过程框架:沟通,策划,建模,构建,部署P9沟通:这个框架活动包含了与客户之间大量的交流和协作,还包括需求获取以及其他相关活动策划:指为后续的软件工程工作制定计划。
建模:它包括创建模型和设计两方面。
创建模型有助于客户和开发人员更好得理解软件需求;设计可以实现它。
构建:它包括编码和测试。
部署:软件交付到用户,用户对其进行评测并给出意见3、能力成熟度模型:P22第0级:不完全级;第1级:已执行级;第2级:已管理级;第3级:已定义级;第4级:已定量管理级;第5级:优化级;第三章过程模型1、简述惯例框架包含的主要活动:P19沟通、策划、建模、构建、部署2、简述瀑布模型所包含的主要框架活动:P24沟通、策划、建模、构建、部署3、简述瀑布模型在实际运用中所面临的问题(缺点):P24实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。
【工程】软件工程复习提纲
【关键字】工程❖ 1.什么是软件?❖是一系列按照特定顺序组织的计算机数据和指令的集合,包括程序、数据和文档。
❖附:软件的特征:成本高、风险大、维护困难❖ 2.什么是软件危机,其内容主要是指什么?❖原因:1、与软件本身的特点有关;2、与软件开发人员有关;定义:在开发和维护过程中所遇到的一系列严重的问题。
1)对软件开发成本和进度的估计常常不准确。
2)用户对“已完成”系统不满意的现象经常发生。
3)软件产品的质量不可靠。
4)软件的可维护程度非常之低。
5)软件通常没有适当的文档资料。
6)软件的成本不断提高。
7)软件开发生产率无法满足人们对软件的生产要求,软件开发生产率的提高落后于硬件的发展。
3.什么是软件工程?开发、运行和维护软件的系统方法•软件工程主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平的目标。
4.软件工程的目标(PP.41 )及其组成部分。
方法、工具和过程。
•软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。
方法: 是指产生某些结果的形式化过程,•工具: 是用更好的方式完成某件事情的设备或自动化系统,如各种集成开发环境、编译工具、尝试工具等。
•过程: 生产特定产品的工具和技术的结合•软件工程方法学包含3个要素:方法、工具和过程。
5.软件开发方法的定义。
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。
比如SASD方法、面向对象的软件开发方法。
6.好的软件的一些主要衡量指标。
例如McCall 的质量模型。
(1)质量,它的衡量:产品的质量、过程的质量、商业环境背景下产品的质量。
McCall 的质量模型:附:开发团队的成员第二章1.什么是软件生命周期?主要分为哪些阶段?各个阶段的主要任务及产生的主要制品?定义:当过程是在开发软件产品时,把这种软件开发过程称为软件生命周期。
软件工程复习提纲
软件工程复习提纲第一章软件与软件工程1. 什么是软件工程?构成软件工程的要素是什么?2. 什么是软件危机?软件危机有那些表现?3.软件开发的三种最主要方法是什么?4.软件工程实践中的五个面向理论的含义是什么?5.用图表方式说明软件的生存周期6.结合软件生存周期理论,阐述几个重要的软件开发模型的特点及适用条件(如瀑布模型、快速原型模型、增量模型、迭代模型等)第四章需求分析基础1.什么是软件需求?软件需求的属性是什么?2.需求分析阶段的一般工作流程是什么?3.什么是需求分析?需求分析的任务、目的是什么?4.什么是需求定义?5.简述软件需求分析的任务与步骤,并以图书管理系统为例说明6.需求的分析的方法与切入点?(过程分析、对象分析;功能分析、对象分析、数据分析?)7.需求分析的描述工具?8.什么是业务流程图?业务流程图的主要绘图元素有哪几种?9.什么是数据流图?数据流图的绘图元素有哪几种?10.分别画出图书管理系统的业务流程图和数据流图11.画出图书管理系统的用例图12.画出一个网上招聘系统(招聘网站)的用例图第五章面向数据流的分析方法1. 阐述数据流图、数据字典和E-R图的构成2. 阐述基于数据流图进行需求分析的大致过程。
3. 归纳总结CASE工具的核心思想。
4. 如何判断数据流图的一致性和完全性?可否用CASE工具自动或半自动地完成这两类检查?如果可以,请给出相应的软件设施途径。
5. 设计一个简单图书信息系统上网E-R模型第六章面向对象的需求分析1. 基本概念:对象、类、消息、继承、聚集2. 简述利用UML尽心需求分析的主要步骤。
3. 简述面向对象的消息传递机制在程序设计语言中的实现过程。
4. 绘制表示“书籍”的UML类图,“书籍”可以描述为:一本书由许多部分组成,每一部分又由许多章组成,每一张由许多节组成。
部分、章和节都具有标题和序号属性。
第八章软件设计基础1.什么是软件设计?软件设计过程的输入和输出是什么?2.理解软件设计的原理3.什么是软件架构?理解软件的三层架构的内容及特点4软件设计有两大类方法是什么?5.面向过程设计的主要任务和内容和方法是什么?6.面向对象设计的内容和步骤是什么?第九章面向数据流的设计方法1. 简述SD方法将数据流图转换为软件结构的过程与步骤。
软件工程复习提纲
软件工程复习提纲I. 软件工程概述A. 定义与目标B. 发展历程C. 软件工程原则与方法论II. 软件开发过程A. 瀑布模型1. 阶段划分与任务2. 优点与缺点B. 增量模型1. 阶段划分与任务2. 优点与缺点C. 喷泉模型1. 阶段划分与任务2. 优点与缺点III. 需求工程A. 需求获取与分析1. 用户需求调研2. 需求规格化B. 需求验证与确认1. 需求评审2. 需求跟踪与控制IV. 软件设计A. 结构设计1. 模块化设计原则2. 模块间接口设计B. 数据设计1. 数据建模2. 数据库设计C. 用户界面设计1. 人机交互原则2. 界面布局与设计规范V. 软件构建A. 编码规范与标准1. 命名规范2. 代码注释B. 单元测试与集成测试1. 测试用例设计2. 测试工具与技术VI. 软件质量保证与控制A. 质量特性及度量1. 功能性2. 可靠性3. 可维护性4. 可测试性B. 缺陷管理1. 缺陷跟踪与报告2. 缺陷分析与修复VII. 软件项目管理A. 项目规划与组织1. 范围管理2. 人力资源管理B. 项目进度与成本控制1. 进度计划与跟踪2. 成本估算与控制VIII. 软件配置管理A. 版本管理1. 版本控制工具2. 分支与合并策略B. 变更管理1. 变更控制流程2. 变更影响分析IX. 软件工程伦理与职业责任A. 代码所有权与知识产权B. 软件开发道德标准X. 结语以上是软件工程复习提纲的架构,通过对各个主题的概要介绍和论述,有助于理解软件工程的基本概念、方法和流程,并为考试或复习提供了一个清晰的框架。
在准备复习时,可以根据这个提纲,进一步深入学习和了解各个主题中的具体知识点和案例。
软件工程是一门重要的学科,对于软件开发和项目管理都有着重要的指导意义,希望通过这个提纲的复习,能够帮助你更好地掌握软件工程领域的核心知识。
软件工程复习提纲
一、选择题(20小题,每题1分)软件定义:软件是程序、数据和相关文档的完整结合,计算机系统中的程序及其文档。
瀑布模型:从可行性与计划入手,依次进行需求分析、设计、编码、测试,直到经用户确认得到最终的软件产品,并由此进入运行维护过程。
(17)可行性分析:包括技术可行性、操作可行性、经济可行性和法律可行性。
(14)逻辑覆盖:是指对程序设计中的逻辑判断条件所进行的测试。
(141)软件维护:指软件系统交付使用后,为了纠正系统错误或者满足用户需求变更而修改软件的过程。
(254)DFD(数据流图):结构建模中最流行的功能建模工具,描述了数据输入,数据转换到数据输出的全过程。
分层的DFD更进一步刻画了系统的功能分解。
(44)ER图:包括数据对象(实体)、属性、关系和基数。
(42)面向对象特征:1.抽象 2.封装 3.继承 4.多态性结构化设计:可分为面向数据流的设计方法和面向数据的设计方法,用于确定软件的结构(90)白盒测试:又称为结构测试、逻辑驱动测试或者程序的测试,是指用于测试代码是否按照设计正确运行的验证技术,它需要详细设计文档作为测试配置。
(140)黑盒测试:又称为功能测试或者行为测试,主要根据设计说明中的功能设计来测试程序是否按预期实现。
(目的:尽量发现系统功能中的错误。
)(148)软件测试的目的:发现错误,错误的定位和处理需要通过调试过程完成。
(167)面向数据流的设计方法:基于数据流图自顶向下、逐层分解的过程,他将各级数据流图映射为软件结构图中对应的各层次模块,体现了结构化设计与结构化分析的相互衔接,也体现了自顶向下的模块化设计思想。
(91)需求分析:准确回答“系统必须做什么”的问题,给出对目标系统完整、准确、一致的描述。
(32)数据字典:建模中定义的概念,术语,属性和逻辑过程进行了详细定义和解释。
(49)软件过程:是有组织或项目使用的,用以计划、管理、执行、监控和改进其软件相关活动的过程或过程的集合. (15)总体设计(概要设计):要完成体系结构设计(确定各子系统模块间的数据传递,调用关系)、界面设计(包括与系统交互的人机界面设计、以及模块间、系统与外部系统的接口关系)和数据设计(包括数据库、数据文件和全局数据结构的定义)。
软件工程期末复习提纲
第一章什么是软件,软件与传统产品的区别。
什么是软件工程。
瀑布模型。
增量模型。
第二章结构化程序设计的含义。
ER图:陈氏标记法、鸦足标记法(鸭足标记法)类与类的实例。
类图。
类之间的关联:泛化(继承)、聚合、一般关联。
关联的多重性。
用例图,用例之间的关系include、extend、generalization。
序列图。
第六章什么是工件。
第八章用例文档。
补充规格说明。
概念类建模。
第九章体系结构设计的含义。
层、包的概念。
方法依赖性。
继承依赖性。
接口。
类与接口之间的依赖性。
利用接口消除循环依赖。
相识。
委托。
事件处理。
MVC体系结构框架。
PCMEF+体系结构框架。
第十章ER图向关系模式的转换。
(结合PPT)引用完整性。
SQL语言:create table,简单的select语句。
Java语言(结合PPT)能读懂简单的Java程序。
跨平台的含义。
重写与多态性。
重载。
构造函数。
访问权限:public、protected、private。
static的含义。
测试(结合PPT)软件测试的目标。
测试与调试。
白盒测试。
黑盒测试。
等价划分法。
边界值分析法。
各阶段测试的含义:单元测试、集成测试、系统测试、验收测试。
集成测试中的渐增式集成。
其它(结合PPT)subversion的作用。
