版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程复习资料软件工程 基本要求:最好理解、必要时可以背诵基本概念:程序、软件、软件工程软件工程应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程,或以之为研究对象的学科。软件工程目标及三要素 生产具有正确性、可用性和开销合宜的产品。正确性:软件产品达到预期功能的程度。可用性:软件基本结构、实现以及文档为用户可用的程度。开销合宜:软件开发、运行的整个开销满足用户要求的程度。软件工程活动软件工程活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步骤”。主要包括需求、设计、实现、确认以及支持等活动支持活动包括修改和完善
2、。需求分析的目标就是定义问题设计的目标是给出系统的软件设计方案实现的目标是由设计规约到代码的转换验证/确认的任务主要是对需求规约、设计规约以及实现代码的评估支持的任务是纠错性维护和完善性维护需求分析 是在一个抽象层上建立系统模型的活动。产生需求规约,作为开发人员和客户间契约的基础,并作为以后开发阶段的输入。设计 定义了实现需求规约所需的结构。包括软件体系结构(数据和程序结构),以及详细的处理算法,即所谓设计规约,给出了实现软件需求的软件解决方案。实现 是由设计规约到代码的转换。验证/确认是一评估活动,其中主要包括需求规约、设计规约以及实现代码的评估。验证/确认这一评估可以是动态的,或是静态的。
3、在动态分析中,以选定的输入来执行程序或程序段,并与预期结果进行比较。静态分析是不执行程序的分析,例如模型评审、代码“走查”以及程序的形式化验证等。维护是在软件发布之后所进行的开发或修改(modification),包括对发现错误的修正以及对环境的变化所进行的必要调整等。软件工程四原则选取适宜的开发风范 在系统设计中,经常需要权衡软件需求、硬件需求以及其它因素之间的相互制约和影响,适应需求的易变性。选用适宜的开发风范,以保证软件开发的可持续性,并使最终的软件产品满足客户的要求。采用合适的设计方法 在软件设计中,通常需要考虑软件的模块化、信息隐蔽、局部化、一致性以及适应性等问题。采用合适的设计方法
4、,支持这些问题的解决和实现。提供高质量的工程支持 需要提供高质量的工程支持,例如配置管理、质量保证等,才能按期交付高质量的软件产品有效的软件工程管理 软件工程的管理,直接影响可用资源的有效利用,提高软件组织的生产能力。仅当对软件过程实施有效管理时,才能实现有效的软件工程软件工程学科所研究的主要内容 软件开发过程 软件开发方法 软件工程管理与支持软件质量特征 软件过程度量以及CASE工具、环境等。程序是计算机任务的处理对象和处理规则的描述软件是计算机系统中的程序及其文档(有三层含义)文档是为了理解程序所需的阐述性资料软件工程活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步骤”。主要
5、包括需求、设计、实现、确认以及支持等活动支持活动包括修改和完善。软件开发模型基本概念软件开发模型、瀑布模型、演化模型各种模型的适用范围优缺点瀑布模型定义:瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的若干阶段工作,最终得到软件产品适用范围:需求被很好的理解活动如瀑布流水式的组织规定每一活动的工作对象和输出评审、确认和反馈问题:无法通过开发活动澄清本来不确切的软件需求 维护、甚至返工的代价优点:1、在决定系统怎样做之前,存在一个单一的需求阶段,从而鼓励对系统做什么进行规约(即设计之前的规约)。2、在建造构件之前,存在一个单一的设计阶段,从而鼓励规划系统结构(即编码之前的设计)。3、在每一
6、阶段结束时进行复审,从而允许获取方和用户的参与。4、允许基线和配置早期接受控制。5、前一步作为下一步被认可的、文档化的基线。不足之处:1、客户必须能够完整、正确和清晰地表达他们的需求。 2、设计、编码和测试阶段都可能发生延期。3、可能要花费更多的时间,用于建立一些用处不大的文档。4、在开始两个或者三个阶段中,很难评估真正的进度状态。5、在一个项目的早期阶段,过分地强调了基线和里程碑处 的文档。6、开发人员一开始就必须理解其应用。7、当接近项目结束时,出现了大量的集成和测试工作。8、直到项目结束之前,都不能演示系统的能力。演化模型( Evolutionary model) 是一种有弹性的过程模式
7、,由一些小的开发步组成,每一步历经需求分析、设计、实现和验证,产生软件产品的一个增量。通过这些迭代,完成最终软件产品的开发。 针对事先不能完整地定义需求 针对用户的核心需求,开发核心系统 根据用户的反馈,实施活动的迭代适用范围:针对事先不能完整地定义需求优点: 1、在需求不能予以规约时,可以使用这一演化模型。2、用户可以通过运行系统的实践,对需求进行改进。3、与瀑布模型相比,需要更多用户/获取方的参与。缺点: 1、演化模型的使用仍然处于初步探索阶段,因此具有较大的风险,需要有力的管理。2、该方法的使用很容易成为不编写需求或设计文档的借口,即使很好地理解了需求或设计。3、用户/获取方不理解该方法
8、的自然属性,因此当结果不够理想时,可能产生抱怨。增量模型 一种迭代风范适用范围:需求很明确,并且可以分段。优点: 1、第一个可交付版本所需要的成本和时间是很少的;2、开发由增量表示的小系统所承担的风险是不大的;3、由于很快发布了第一个版本,因此可以减少用户需求的变更;4、允许增量投资,即在项目开始时,可以仅对一个或两个增量投资。缺点: 1、如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;2、如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;3、管理发生的成本、进度和配置的复杂性,可能会超出组织的能力。喷泉模型 一种迭代风范 特征:迭
9、代 、无间隙 与面向对象技术的关系需要完整定义需求的模型:瀑布模型、增量模型属于迭代风范的模型:演化模型、增量模型、螺旋模型、喷泉模型系统建模技术基本概念数据流图,数据字典,小说明数据流图(DFD)总体设计数据流图初始模块结构图初始模块结构图精化模块结构图耦合与内聚详细设计程序流程图、N-S图、PAD图和伪码之间的转换软件开发方法学结构化分析 1提出的概念有: 数据流、加工、数据存储、数据源、数据潭 2建模过程 建立系统的DFD功能模型 建立系统环境图,确定系统边界自顶向下,逐层分解 建立数据字典 给出加工小说明建模中注意的问题(1)模型平衡规则1、数据流图中所有的图形元素必须根据他们的用法规
10、则正确使用2、每个数据流和数据存储都要在数据字典中有定义3、数据字典中的定义使用合法的逻辑构造符号4、数据流图中最底层的加工必须在小说名中有定义5、父图和子图必须平衡6、小说明和数据流图的图形表示必须一致 (2)控制复杂性规则上层数据可以“打包”上、下数据流对应关系在数据字典中给出,但包内数据流的性质(输入、输出)必须一致。幅图中的图元个数应控制在7+/-2以内与每一加工相关的数据流的数目应适中(与层次有关)分析数据内容,确定是否所有的输入信息都用于 产生输出信息;分析加工,确定一个加工所产生的输出,是否都能由该加工的输入信息导出需求获取技术USE CASE基本概念Use case、actor
11、、include、extend建模Use case 图USE CASE 一个USE CASE是系统或其它语义实体(例如子系统或一个类)所提供的一块(unit)高内聚的功能,显露该系统和一个或多个外部的交互者(称为操作者)交替出现的消息序列,以及该系统所执行的动作。关联:参与关系,即操作者参与一个USE CASE。例如,操作者的实例与USE CASE实例相互通讯。关联是操作者和USE CASE之间的唯一关系。扩展:USE CASE A到USE CASE B的一个扩展关系,指出了USE CASE B的一个实例可以由A说明的行为予以扩展(根据该扩展所说明的特定条件),并依据该扩展点定义的位置,A说明
12、的行为被插入到B中。包含:USE CASE A到USE CASE B的一个包含,指出A的一个实例将包含B说明的行为,即这一行为将包含在A定义的那部分中。 泛化:USE CASE A到USE CASE B的泛化,指出A是B的特殊情况。泛化是actor之间的唯一关系USE CASE图USE CASE图给出了操作者和USE CASE以及它们之间的关系。即图中给出了一些操作者、一组关系、一些接口和这些元素之间的关系。1、关系是操作者和USE CASE之间的关联2、是操作者之间的泛化3、是USE CASE之间的泛化、扩展和包含可以将一些USE CASE用一矩形括起,以表示所包括的那个系统或其它语义实体的
13、边界。例题:假定我们要开发一个名为“位图观察器(bmpViewer)”的软件产品,它为用户提供图像显示和浏览的功能。经过分析有如下功能:打开一个bmp文件可对文件进行放大显示(Zoomin)可对文件进行缩小显示(Zoomout)可对文件进行浏览(Pan)可将文件继续保存到磁盘软件工程环境定义:软件开发环境支持软件产品开发的软件系统。它由软件工具和环境集成机制构成,前者用以软件开发的相关过程、活动和任务,后者为工具集成和软件开发、维护及管理提供统一的支持。结构化设计1总体设计的任务:将DFD转化为MSD分二步实现:第一步:如何将DFD转化为初始的MSD 第二步:如何将初始的MSD转化为最终可供详
14、细设计 概念:模块 模块化 模块化度量:内聚 耦合耦合:不同模块之间相互依赖程度的度量。 耦合类型: (1)内容耦合:一个模块直接修改或操作另一个模块的数据 (2)公共耦合:两个以上的模块共同引用一个全局数据项。 (3)控制耦合:一个模块向另一模块传递一个控制信号, 接受信号的模块将依据该信号值进行必要的活动。 (4)标记耦合:两个模块至少有一个通过界面传递的公共 有结构的参数。 (5)数据耦合:模块间通过参数传递基本类型的数据。内聚:一个模块之内各成分之间相互依赖程度的度量。 内聚类型: (1)偶然内聚:一个模块之内各成分之间没有任何关系。(2)逻辑内聚:几个逻辑上相关的功能放在同一模块中。
15、 (3)时间内聚:一个模块完成的功能必须在同一时间内完成,而 这些功能只是因为时间因素关联在一起。 (4)过程内聚:处理成分必须以特定的次序执行。 (5)通信内聚:各成分都操作在同一数据集或生成同一数据集。 (6)顺序内聚:各成分与一个功能相关,且一个成分的输出作为 另一成分的输入。 (7)功能内聚:模块的所有成分对完成单一功能是最基本的,且 该模块对完成这一功能而言是充分必要的。结构化程序设计三种控制结构:顺序: begin s1;s2;sn end;选择: if 条件表达式 then s1 else s2;循环:while 条件表达式 do s ;伪码: 伪码是一种混合语言。外部采用形式语
16、言的控制结构,内部使用自然语言。流程图顺序: 选择 : 循环:PAD图顺序: 选择 : 循环:N-S图顺序: 选择 : 循环:4)、软件方法学软件方法学 是以软件方法为研究对象的学科。主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法和技术。狭义的软件方法学也指某种特定的软件设计指导原则和方法体系。关键字:软件设计的原理和原则以及相关的方法和技术。 软件开发过程(1)以用况为驱动用况驱动的含义是:以用况为单位,制定计划、分配任务、监控执行和进行测试等。(2)以体系结构为中心 以系统需求(用况模型)为驱动,紧紧围绕系统体系结构,从不同角度描述要构造的系统的静态和动态结构。其中,主要涉
17、及:子系统、构件、接口、协作、关系和节点等重要的模型元素的描述(3)迭代与增量 简单地讲,开发过程是将整个项目划分为一些“小”的项目: 按核心工作流,即需求规约、分析、设计、实现和测试这五个活动,对每个小项目都进行迭代; 迭代被组织在4个阶段中:初始阶段、精化阶段、构造阶段和移交阶段。面向对象方法多层面的建立系统模型基本概念对象、类、属性、操作建模顺序图、状态图、类图面向对象方法世界是由对象构成的;对象有其自己的属性和内部运动规律;对象之间的相互作用,构成了大千世界的各式各样的不同系统。构造模块的四种基本观点1)以“过程”或“函数”为基点,使每一模块实现一项功能;2)以一个“数据结构”为基点,
18、使每一模块实现该数据结构上的操作能;3)以“事件驱动”为基点,使每一模块识别一个事件并对该事件作出响应;4)以“问题域中的一个成分”为基点,使每一模块对应现实世界中的一个事物。OO方法基于的“世界观”: 世界是由对象构成的; 对象有其自己的属性和内部运动规律; 对象之间的相互作用,构成了大千世界的 各式各样的不同系统。1、静态模型概念及其表示 1)对象(Object)及其特征(自治性 封闭性 通信性) 2)属性:表示对象状态的一组值。 3)操作:为其它对象提供的服务。 4)连接 5) 类(class):一组具有共同特征的相似对象的抽象描述。 6)一般/特殊关系 7)整体/部分关系 接口与其他成
19、分之间的关系 1、接口:一组操作(没有实现的),这组操作在一个特定类中实现。 2、操作:一个类对外提供的服务。 可以是抽象的。其声明可以作为接口的成分。 3、方法:是操作的一个实现。描述一组具有相似性质的对象:类抽象并描述在特定环境中对象的功能:接口。“关系”描述(1)、表达客观事物之间关系的基本概念:链。主要包括:二元关联与N元关联,聚合与组合,泛化,依赖。 行为模型1)状态:表示对象所处的阶段、活动和外征2)转换:在事件的激发下,状态的变迁.3)事件:引起状态变迁的条件、动作(action).4)基本掌握USE CASE及USE CASE模型5)一般了解“协作”、 “协作图”、 “顺序图”
20、 基本概念:类图类 具有相同结构、行为和关系的一组对象的描述符属性 属性是类的一个命名的特性,它描述具有该特性的实例可以取值的范围。操作 类的实例被要求执行的服务。有名字和参数列表。与方法和接口的关系对象 类的一个特定实例接口 描述类、构件或者子系统的外部可见操作。接口在形式上等价于一个没有属性、没有方法而只有抽象操作的抽象类链 对象引用的元组。关联 一组具有相同结构特性、行为特性和语义的链的描述。关联端点 多重性,排序,导航,角色名,接口说明符,可变性,可见性等;基本概念:顺序图对象生命线激活消息转换时间基本概念:状态图状态 表示对象所处的阶段、活动和外征转换 在事件的激发下,状态的变迁.事
21、件 引起状态变迁的条件、动作(action).软件测试技术基本概念测试、调试测试模型白盒测试、1) 测试过程模型 软件测试过程所涉及的要素,以及这些要素之间的关系 2)依据程序逻辑结构-白盒测试技术 (1)关于建立被测对象模型 控制流程图:结点/分支/过程块/链/路径 (2)“完整测试”策略 (3)关于测试用例设计 (4)关于循环的路径选取(用例设计)3)循环情况的路径选取4) 功能测试-基于规格说明的测试 事务流测试技术路径测试技术:路径测试策略语句测试(P1):至少执行程序中所有语句一次。如果遵循这一规定,则我们说达到了100%语句覆盖率(用C1表达)。分支测试(P2):至少执行程序中每一
22、分支一次。如果遵循这一规定,则我们说达到了100%分支覆盖率(用C2表示)。分支覆盖是一种比语句覆盖稍强的逻辑覆盖。但若程序中分支的判定是由几个条件联合构成时,它未必能发现每个条件的错误。条件组合测试:是一种具有更强逻辑覆盖的测试。 条件组合测试,就是设计足够的测试用例,使每个判定中的所有可能的条件取值组合至少执行一次。如果遵循这一规定,则我们说就实现了条件组合覆盖。只要满足了条件组合覆盖,就一定满足分支覆盖。测试用例设计在确定了等价类之后,建立等价类表: - 输入条件 有效等价类 无效等价类 - 软件过程与CMM软件过程基本过程支持过程组织过程质量体系能力成熟度模型(CMM)软件过程是软件生
23、存周期中的一系列相关过程,又称为软件生存周期过程。过程:活动的一个集合;活动:任务的一个集合;任务:将一个输入转换为一个输出的操作。基本过程:与软件生产直接相关的过程获取过程(从获取者角度)供应过程(从供应者角度)开发过程(从开发者角度)运行过程(从用户和操作人员角度)维护过程(从维护人员角度)支持过程:有关各方按他们的支持目标所从事的一系列相关活动文档过程配置管理过程质量保证过程验证过程确认过程审计过程问题解决过程组织过程管理过程基础设施过程改进过程培训过程剪裁过程:对软件过程和活动实施剪裁。将一选定的模型以及相关标准应用于某一领域或具体的软件项目,形成该领域的模型及标准,或该软件项目的软件
24、过程和活动。文档是为了理解程序所需的阐述性资料。文档过程是一个记录由某一过程或活动所产生的信息的过程。ISO9000系列旨在指导:高质量产品的生产、评价、认证。ISO 9000 质量管理和质量保证标准-选择与使用导则ISO 9001 质量体系-设计/开发、生产、安装和服务中的质量保证模式ISO 9002 质量体系-生产和安装中的质量保证模式ISO 9003 质量体系-最终检验和测试中的质量保证模式ISO 9004 质量管理和质量体系要素-导则软件质量软件质量为“与软件产品满足规定的和隐含的需求能力有关的特征或特性的全体”。软件质量反映了以下三方面的问题:软件需求是度量软件质量的基础,不满足需求
25、的软件就不具备质量;不遵循各种标准中定义的开发规则,软件质量就得不到保证;只满足明确定义的需求,而没有满足应有的隐含需求,软件质量也得不到保证。质量体系建立质量体系,形成文件并加以维护。编制质量手册,明确质量方针、目标、组织结构等各个方面,以及质量体系文件概要确定质量手册的管理(制定、修改、批准和控制)编制有关质量体系要素、需求和预防措施的文件。质量策划与对质量计划的要求质量策划:确定质量以及采用质量体系要素的目标和要求的活动。(构思和安排)质量计划:针对特定产品、项目或合同,规定专门的质量措施、资源和活动顺序的文件。(具体实施)对新产品、新项目或新合同应制定质量计划CMM的软件过程成熟度框架
26、 在这一框架中,将过程能力成熟度分为5级:初始级,可重复级,已定义级,已管理级,持续优化级。基本关系:1、通过过程改善,即实现了有关关键过程域的目标,才能演化为更高的一级,其中不可能“飞跃”;2、集软件过程、软件过程能力、软件过程性能和软件过程成熟度等概念为一体,即软件成熟度框架基础是软件能力成熟度模型。软件能力成熟度模型:在每一等级的内部结构中,包括: 关键过程域,关键实践类, 关键实践。关键过程域:在框架的某一“平台”上,其实施将对达到下一成熟度等级的目标起保证作用的过程域,被称为关键过程域。基本关系: 每一关键过程域包含一组关键实践。并按“共同特征”组织为每一级的关键实践类:制定方针政策,确保必备条件,实施软件过程 ,检查实施情况。公共特征: 实施承诺(Commitment to Perform) 描述为了保证软件过程的建立和持续执行软件开发 组织所需采取的活动,包括: 方针政策、 高层管理 者的保障、其它责任等实施能力 描述为了很好地实施软件过程所需的先决条件。包 括:资源、组织结构、培训等 实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运输承包合同
- 2026年高三预习方法优化
- 2026年纤维素纤维原料及纤维行业分析报告及未来发展趋势报告
- 2026年伞配件行业分析报告及未来发展趋势报告
- 2026年盐酸克林霉素行业分析报告及未来发展趋势报告
- 2026年扫描电镜行业分析报告及未来发展趋势报告
- 2026年乙烯基双封头行业分析报告及未来发展趋势报告
- 2026年旅游保险行业分析报告及未来发展趋势报告
- 2026年黑龙江省旅游行业分析报告及未来发展趋势报告
- 产程中心理护理与产妇沟通技巧
- 2026年中国化工经济技术发展中心招聘备考题库完整参考答案详解
- 2025年主检医师考核试题及答案
- 国际贸易咨询服务方案
- (正式版)DB23∕T 2716-2020 《黑龙江省城镇供水经营服务标准》
- 活动策划报价方案
- 七下语文课内文言文阅读夯实基础训练(含答案)
- 学生课堂表现观察记录表模板
- 实施指南(2025)《DL-T5187.3-2012 火力发电厂运煤设计技术规程第 3 部分》
- DB65-T 4877-2024 学校食堂“互联网+明厨亮灶”建设规范
- 2024年下半年成都铁路文化传媒有限责任公司校招笔试题带答案
- 【MOOC答案】《电子线路设计、测试与实验(二)》(华中科技大学)章节作业慕课答案
评论
0/150
提交评论