ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:476.05KB ,
资源ID:6211634      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6211634.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(河北工业大学软件工程期末复习.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

河北工业大学软件工程期末复习.docx

1、河北工业大学软件工程期末复习软件工程期末复习总结第一讲概述(选择U填空U简答)1.1软件工程的研究内容软件工程要考虑专业软件开发所需要的理论、方法和工具 -工程技术问题软件工程要考虑如何有效的在软件开发中利用有限的成本资源 -工程管理的问题1.2什么是软件?软件包括:-软件的内涵1 能够提供客户所需功能与性能的计算机程序;2 使程序能够适当的操作信息的数据结构;3 用以描述程序开发过程及使用的文档。软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。 软件产品可以分成:L 通用软件(Generic Software) 1 厂二二、: 二汎桂荻J 定制软件(Bespoke S

2、oftware):、”一个新的软件并不一定是全新开发,可以由现有软件或可复用软件成分配置形成。1.3什么是软件工程 ?软件工程是涉及软件生产各个方面的一门工程学科软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件; (2)研究(1)中的方法.IEEEIEE931.4什么是成功的软件项目一个成功软件项目的三个要素包括:按时交付 不超预算 满足用户要求。1.5软件过程与软件生命周期的相关概念软件过程是指开发或制作软件产品的一系列活动及其成果所有的软件过程中都包括四个基本活动 :(填

3、空)1. 描述(Specification )-系统应该提供的功能及其开发约束;2. 开发(Development )-软件产品的生产过程;3. 有效性验证(Validation )-检验软件产品是否满足了客户的需要;4. 进化(Evolution )-按照用户的变更要求不断的改进软件。软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。1.6什么是优良软件的属性? P8 (填空U选择)优良的软件应能交付相应的功能与性能,而且应具有良好的 可维护性、可依赖性、有效性和可用性:(选择题,考法内涵匹配)可维护性(Maintainabilit

4、y )Software must evolve to meet cha nging n eeds;可依赖性(Dependability )Software must be trustworthy;有效性(Efficiency )Software should not make wasteful use of system resources;可接受性(Acceptability )Software must be accepted by the users for which it was desig ned. This means it must be un dersta ndable, u

5、sable and compatible with other systems.1产品特性描述可維护性敦件必须能髒不斷进化以满足客户的需求变化,这足软件产 品履根木的特性,因为工作环境是不断变化的,软件也必 然蓦跟着变化可依赖性软件可依疲性啊括一系列特性.包括可靠性、保裤性、住全 性.可靠的软件在系统失畋曲情况下.也不会导致人员伤 亡和经济损失.有效性软件不要浪费内存和处理器等系统资源,因而有敕性应包括 响应时间.处理时间.内存利用率等方面.可用性可用性就是用户不用特殊地勢力就能操柞n这就姦味着,轶 件必须具备相惬的用户界面利充分的说明立档。第二讲 软件过程(画法+特点+结构+缺点+适用场合)

6、2.1瀑布模型(顺序模型)(特点:变更少)(画法+特点+结构+缺点+适用场合)1.需求分析和定义 2.系统和软件设计 3.实现和单元测试 4.集成和系统测试 5.运行和维护(中文解释)瀑布模型的缺点和适用情况这种模型生硬的把一个软件过程划分成几个界限清晰的阶段,而且这些阶段前后有严格的 顺序,这导致它很难对用户的需求变更做出及时的调整;因此,瀑布模型只适合需求非常清楚和需求变更被严格限制的情况下。实际的软件开发过程中,几乎没有多少业务系统具有稳定的需求。 瀑布模型反映了工程设计的基本思想。2.2进化式开发模型 (画法+特点+结构+缺点+适用场合)基本思想:通过开发系统原型和用户反复交互,以明确

7、需求,使系统在不断调整与修改中 得以进化成熟。又叫做原型式开发方法。两种基本类型:探索式开发; 抛弃式原型法并存活动2.2进化式开发模型 问题缺乏过程可见性; 系统结构通常会很差需要一些特别的技术(如原型快速开发技术) ,通常与主流技术不兼容适用情况适合中小规模的交互系统;可用于大型系统的局部开发(如系统界面) ,可以和瀑布模型混合使用;生命周期较短的系统2.3基于过程反复的过程模型对于大型项目而言,系统需求的变更是无法避免的,因此开发过程的反复是软件开发的必 过程反复可以和任何一种一般过程模型结合使用。 两种支持过程反复的过程模型:增量式开发;螺旋式开发。2.3增量式开发在这种开发方式中,系

8、统不是作为一个整体交付,而是被分解成若干个增量,每个增量交 付系统的部分功能。用户的需求按优先级排队,优先级最高的需求被放入最早交付的增量中。这样,优先级最 高的系统功能就得到最多的测试,系统的可靠性较高。由于每个增量可以交付部分系统功能,因此软件可以较早的交付用户使用(部分功能) 早期交付的增量可以作为后期增量的原型帮助后期需求的确定;项目总体的失败率较低;优先级最高的系统功能得到最多的测试。螺旋式开发这种模型用螺旋线表示软件过程,而不是采用一系列活动及活动间的反馈; 螺旋中的每个回路表示软件过程中的一个阶段;这种模型充分考虑了软件开发所面临的风险,并贯穿软件过程始终。 螺旋线划分成四部分目

9、标设置、风险评估和规避、开发与有效性验证、规划2.4基于构件的软件工程软件复用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素(通常称 为可复用构件、组件或软部件)的过程。软构件是标准的、可以互换的、经过装配可随时使用的软件模块。在UML中,软构件被定义为系统中某一定型化的、可配置的和可替换的部件,该部件封装 了实现并暴露一系列的接口。软件复用的意义软件复用的出发点是使软件系统的开发不再“一切从零开始” ,能够充分利用已有的知识和经验。软件复用能够在软件开发中避免重复劳动,充分利用已有的开发成果, ,提高开发效率,降低开发成本。软件复用还可以避免全新开发可能引入的错误,从而提高软

10、件的开发质量。构件的基本概念构件是为组装服务的!软件构件是指可以独立生产、获取和部署的、可以被组装到一个功能性系统中去的可执行单 丿元。软构件是标准的、可以互换的、经过装配可随时使用的软件模块。 基于构件的软件工程组件分析卜需求修订基于复用的系统设计系统验证开发弓集成需求描述VS第三讲 需求工程(概念+综合分析(面向对象建模 UML分析)3.1需求工程过程需求工程过程并不具有唯一的模型,在所有的过程中都会涉及一些共同的活动,Feadbility report;需求管它们是:可行性研究(必不可少);需求导出与分析;需求描述;需求有效性验证 理。(填空U选择)可行性研究要决定被提议的系统是否值得去

11、做。进行可行性研究包括信息评估、信息汇总和书写报告三部分工作。3.3需求的两个不同层次的描述用户需求从客户的角度,采用自然语言配合以图表对目标系统应提供的服务以及系统操作要受到的 约束进行的声明。系统需求系统需求是一种结构化文档,要运用一些专业的模型详细的描述系统的功能及其约束。系 统需求文档有时也称为功能描述,应该是精确的,它可以成为双方之间合同的重要内容, 同时作为开发工作的依据3.4功能需求与非功能需求功能需求对系统应提供的功能,系统在特定的输入下做出的反应及特定条件下的行为的描述。某些 情况下还要包括系统不应做什么。非功能需求(全局的)对系统提供服务或功能时收到的约束进行描述。如时间约

12、束、开发过程约束和标准等。 领域需求这种需求来自于系统的应用领域,反映领域特征。可能是功能需求也可能是非功能需求。 功能性需求与非功能性需求相比较,非功能需求往往更为关键,因为非功能需求表示的是 系统的整体特征,而功能性需求描述的则是局部功能。(参看课本例子加强理解)功能需求功能需求描述系统所应提供的功能或服务。取决于待开发软件的类型、未来的用户以及开发的系统类型。功能性的用户需求只需要对系统应提供的服务进行高层一般描述,对于系统需求,则应该 详细的描述系统功能、输入输出及异常。非功能性需求非功能需求不直接和功能相关,但定义了实现系统功能受到的约束与系统特性。如可靠性、 响应时间、存储空间、I

13、/O设备能力等。CASE非功能需求还常与系统的开发过程有关,表现为过程需求。如设计必须实用的特定 工具集、设计语言和开发方法。领域需求领域需求来自于应用领域,描述的是反映领域特点的系统特性与特征。领域需求可能是新的功能需求,也可能是对现有需求的约束或定义一个特别的计算。 领域需求非常重要,如果领域需求不能满足,可能会使整个系统无法运转。需求的全面性和一致性原则上,功能性需求描述应该具备全面性和一致性。全面性:包括了所有用户要求的服务。一致性:在系统服务的描述中没有冲突和矛盾需求的两个不同层次的描述用户需求:用户需求是从用户角度来描述的系统功能需求与非功能需求,这样的描述可以 使不具备专业技术知

14、识的用户能够看明白。用户需求使用任何人都看得懂的自然语言、图表和直观的图形来描述。系统需求:相对于用户需求,系统需求是对系统功能、服务及约束的更详尽的描述。系统需求是系统实现的基本依据,会被写入合同中。因此系统需求是一个完全的、一致的 系统描述,是设计的起点。系统需求可以用系统模型来定义与说明。3.7需求导出与分析这个阶段在可行性研究之后进行,通常与需求描述交叉进行。需求导出的过程活动包括:需求发现、需求的分类与组织、优先排序和冲突解决、需求文 档化。需求的发现与识别是整个过程中最为关键的活动,负责收集目标系统级现存系统的相关信 息并从这些信息中提炼出用户需求和系统需求。信息的来源包括已有的文

15、件,系统的信息持有者( stakeholders )以及相近系统的规约描述。需求要从多个视点进行分析视点用来表述不同角度的需求来源(信息持有者、其它相关系统及领域) 。每一个视点代表系统需求的一个子集。从多视点对系统进行分析是十分重要的,因为没有那一种单一的途径能够诠释整个系统需求视点的类型:交互者视点、间接视点、领域视点3.8结构化分析(SA建模(概念)结构化分析方法是一种面向数据流的系统建模技术,它从数据加工的角度对系统进行规格 描述;SA帮助分析者理解系统的功能,并采用模型与用户进行交流; 不同的模型从不同的角度对系统进行描述 。结构化分析建模结构化分析方法建立的分析模型结构如下图:象。

16、围绕着这个核心的有三种图:实体一关系图 (ERD描述数据对象及数据对象之间的关系;数据流图(DFD描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能);状态一迁移图(STD描述系统对外部事件如何响应,如何动作。因此,ERD用于数据建模,DFD用于功能建模,STD用于行为建模。(考试用英文)3.9 UML与面向对象分析方法(分析+设计+面向对象建模)3.9.1 理解 UMLUML是一种标准的图形化建模语言, 它为不同领域的人们提供一种统一的交流标准, 这种标准使得系统构造者能够用标准的、易于理解的方式建立能表达出他们想象力的系统蓝图,并使客户、分析员、设计人员、程序员和

17、系统其它涉及者能够相互理解和达成一致,从而 能够有效地共享和交流设计结果。3.9.3需求导出工作流程用适动圏验证用例在分析的星础上精化用例囹5RS分祈用例场景发血更參细节-恙述域櫃型中关谨抽象之间的濾用如用剛场呈中得到的时象圉J 未验证域模型需求精化工作流程要求掌握:1) 用例图的画法;2) 用例表(用例规约描述)的基本结构及描述方法;3) 活动图的画法4) 用CRC分析法确定关键抽象类的过程;5) 用类模型表示关键抽象。3.10 需求有效性验证需求有效性验证的目的是检验需求描述是否正确地反映了客户的意愿。 (判断)好的需求对软件系统的开发效率及软件质量起着至关重要的作用。一个错误发现的越晚,

18、 修改它所付出的代价就越大。Fix ing a requireme nts error after delivery may cost up to 100 times the cost of fixing an implementation error.阶段需求分析软件i殳计程序编码单元测试验收测试维护|相对修宾代价0,10,20.512520需求检查对需求文档中定义的需求要进行多种检查,这些检查包括:有效性, Does the system provide the functions which best support the customers needs?一致性, Are there

19、any requireme nts con flicts?完备性, Are all functions required by the customer in cluded?现实性, Can the requireme nts be impleme nted give n available budget and tech no logy?可检查性, Can the requireme nts be checked?需求有效性检验技术需求评审Systematic manual an alysis of the requireme nts.建立原型Us ing an executable mod

20、el of the system to check requireme nts.测试用例生成Develop ing tests for requireme nts to check testability.第四讲设计工程4.1软件工程中的设计设计是一个把问题转换成解决方案的创造性过程;设计解决的是“如何实现系统”的问题;从工程管理的角度,软件设计可以分成概要设计(总体设计、系统设计)与细节设计(详 细设计)4.2设计概念4.2.1模块化模块化的思想,即把软件划分为可独立命名和编址的构件,每个构件称为一个模块,每个 模块完成一个子功能,当把所有模块组装到一起成为一个整体时,便可以完成指定的功能。

21、 模块组成系统或子系统。“一个复杂问题分割成若干个容易解决、容易管理的小问题后更易于求解” ,模块化正是以此为依据把系统划分成若干个模块,各个击破。 (分而治之)4.2.2 信息隐藏与独立性信息隐藏原理告诉我们,模块应该设计得使其所含信息(过程和数据)对于那些不需要这 些信息的模块来说不可访问;每个模块只完成一个相对独立的特定功能;模块之间仅交换 那些为完成系统功能必须交换的信息,即模块应该功能独立的。采用信息隐藏原理指导模块设计有很多好处:1 )它支持模块的并行开发;2 )减少测试和后期维护的工作量。因为测试和维护阶段不可避免地要修改设计和代码, 模块对大多数数据和过程处理细节的隐藏可以减少

22、错误向外传播。3 )整个系统扩充功能只需“插入”新模块,原有的多数模块无须改动。模块独立性(Independency)模块独立性的概念是模块化、抽象和信息隐藏概念的直接产物,模块独立性是通过开发具 有单一功能和与其他模块没有过多交互作用的模块来达到的。独立性好的模块对其它的模块依赖性小,修改时对其它模块的影响小,易于修改和扩充, 因此有良好的可维护性。模块独立性可用两个定性准则来度量:耦合性( coupling )和内聚性(cohesion )。耦合是模块之间相对独立性的量度,而内聚则是模块功能相对强度的量度。模块的内聚性越强,耦合性越弱,独立性越强。4.3体系结构设计体系结构(archite

23、cture, 又称架构)设计的任务是要识别出组成系统的子系统并建立子系统的控制和通信框架。体系结构设计是联系需求描述与其他设计活动的桥梁。系统的组成系统的组成反映的是系统组织所采用的基本策略。三种应用广泛的组成类型:数据中心体系结构(容器模型);客户/服务器体系结构;抽象机或分层体系结构。4.3.1数据中心体系结构(容器)数据中心体系结构(容器模型)的基本特点:所有共享数据放到一个中心数据库(容器)中,所有子系统都能从中存取数据;当系统中存在大量的数据共享时,数据中心(容器)模型是最为常用的体系结构风格。432客户/服务器体系结构客户/服务器模型是一个分布式系统模型,数据和加工过程在多个处理器

24、之间分配;这种模型的主要组成:一组为其它子系统提供服务的单机服务器;一组向服务器请求服务的客户机;连接客户机与服务器的网络。4.3.3分层(抽象机)体系结构这种模型把系统组织成一系列的层次(抽象机) ,每一层提供一组服务;这种模型支持增量式的开发,不同层次的服务可以单独交付;层与层之间以接口相联系,一个接口发生改变,只有毗邻的层会受到影响;4.4控制模型控制模型考虑子系统之间的控制流,这是分解模型不考虑的问题。对控制流建模有两种一般性的方法:集中式控制一个子系统专门负责控制,控制其他子系统的启动与停止。基于事件的控制不将控制信息集中在一个子系统内,每个子系统都能够接受来自系统外部的事件并作出响

25、 应。4.5架构设计的5视图法4.6面向对象设计基本设计原则(选择)开关原则(OCP): “一个模块(构件)应该对外延具有开放性,对修改具有封闭性”Liskov替换原则(LSP): “子类可以替换它们的基类”。依赖倒置原则(DIP): “依赖于抽象,而非具体实现“。接口分离原则(ISP): “多个用户专用接口比一个通用接口要好” 。发布复用等价性原则 (REP): “复用的粒度就是发布的粒度”。共同封装原则(CCP): “一同变更的类应该合在一起 ”。共同复用的原则(CRP): “不能一起复用的类不能被分到一组” 。4.7从分析到设计的转换一一鲁棒性分析鲁棒性分析是这样一个过程,它采用鲁棒图引

26、导我们从用例转换为支持用例实现的职责模鲁棒性分析鲁棒性分析的输入:一个用例这个用例的用例场景这个用例的活动图(如果可以用到)域模型(domain model)鲁棒性分析的输出:通过一个 UML序列图和一些设计组件: 边界、服务、实体组件,得出用鲁棒图表示的设计模型。鲁棒性分析建立设计模型的过程1. 选择一个适当的用例。2. 把一个参与者放到协作图里面。3. 分析这个用例(活动图)。对于用例的每一个动作:a. 确定并增加边界组件b. 确定并增加服务组件c. 确定并增加实体组件d. 画出这些组件间的关联e. 把每个组件都贴上用来满足用例交互的动作标签4. 把协作图转换成序列图(可选) (画法)Th

27、eo Mandel提出了界面设计的三条“黄金规则” :置于用户控制之下; 减少用户的记忆负担;保持界面一致。4.10错误消息错误消息的设计对界面设计的成败是非常关键的。 设计很差的错误消息会导致用户对整个系统反感。错误消息应该是礼貌的、简明的、一致的和建设性的。4.11帮助系统设计软件帮助系统不能是用户手册的简单复制,应该有一个合理的组织与结构,应该为用户提 供不同的入口。第五讲软件实现与验证5.1程序设计与调试程序设计的任务是把设计转换成程序以及在程序中去除错误,包括编程与调试两个过程。 通常,程序员要对自己开发的程序进行测试,这时程序中的一些明显的错误会暴露出来并 被根除,这个过程叫调试。

28、5.2 验证和有效性确认( Verification & Validation )验证:“Are we building the product right ?” .检查软件是否符合它的规格描述。有效性确认:“Are we building the right product ?” .检查软件是否满足客户的期待。5.3验证和有效性确认过程的两种基本方法:软件审查通过对系统的各种静态成果,如需求文档、设计文档、源代码,进行检查和分析 发现问题。May be suppleme nt by tool-based docume nt and code an alysis软件测试 (概念)简答通过使用测

29、试数据执行系统,检查运行结果来发现问题 。(简单答法)The system is executed with test data and its operati onal behaviour is observed5.4程序测试与静态审查测试的目的是为了揭示程序中存在错误,而不是没有错误。 (判断)-记住:发现错误按照测试的不同目标可以把测试分成有效性测试与缺陷测试。静态审查无法检验软件是否可用,也不能检验非功能需求,因此程序测试是必不可少的,是起决定性作用的 V & V技术。在V & V过程中,程序测试和静态审查通常是结合在一起使用的。测试和调试测试和调试是不同的过程,通常交叉进行。检验和有

30、效性验证的目的是确定系统中存在缺陷;调试考虑的是定位和修改缺陷。5.5 V & V 规划(理解)仔细的规划能够使程序检查和测试的工作得到更多的回报。V&V过程的规划应该从开发过程的早期就开始。V&V规划应该明确的说明静态检查与测试任务与分工。测试规划主要是制定测试过程标准,而不是描述测试本身。测试阶段组件测试测试单个的程序组件;通常由程序开发者完成(除了要求特别高的系统) ;这个阶段的测试大多依靠测试者的经验。系统测试测试由组件整合成的子系统和系统;有专门的测试团队进行测试;测试要依据需求规格说明进行。5.8集成测试集成测试包括把组件集成为系统和对合成的系统进行测试,以发现组件集成过程带来的问题,集成方式可以分为:自顶向下集成从主控模块开始,沿着控制层次结构逐步向下,利用深度优先或广度优先的方式将从属于 主控模块的其他模块集成到系统结构中。自底向上集成从原子模块开始,从底层把模块逐步向上集成为更大规模的子系统和系统。Ml增量集成测试为了简化测试中错误定位的问题,可以采用增量集成的方法。5.9测试用例设计测试用例

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1