软件工程-实践者的研究方法-知识点.doc
《软件工程-实践者的研究方法-知识点.doc》由会员分享,可在线阅读,更多相关《软件工程-实践者的研究方法-知识点.doc(27页珍藏版)》请在咨信网上搜索。
1、软件工程复习总结 第1章软件工程介绍1软件的定义软件是包括程序、数据及其相关文档的完整集合。其中,程序是按照事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。软件的定义:1、指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求2、数据结构,它使得程序可以充分利用信息3描述程序操作和使用的文档2软件的特征a)软件是设计开发的,而不是传统意义上的生产制造的b)软件不会磨损c)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的3软件与硬件的区别a)软件是一种逻辑实体,而不是具体的物理实体
2、b)软件的生产与硬件不同,软件开发过程中没有明显的制造过程c)软件在运行、使用期间没有磨损、老化问题d)软件的开发、运行受到计算机系统的限制,不同程度地依赖于硬件和环境,导致了软件升级和移植地问题e)软件复杂性越来越高f)软件开发成本相当昂贵g)大多数软件是新开发的,而不是通过已有的构件组装而来的h)软件工程涉及诸多的社会因素4遗留软件与软件的演化系统演化的原因:a)系统需要修改其适应性,从而满足新的计算环境或者技术的需求b)软件必须根据新的业务需求进行升级c)软件必须扩展以具有与更多现代系统和数据库的协作能力d)软件架构必须进行改建以适应多样化的网络环境30年来软件发展的规律:1、持续变化规
3、律,2、复杂性增长规律,3、自我调控规律,4、组织稳定性守恒规律,5、保证通晓性规律,6、持续增长规律,质量衰减规律,7、反馈系统规律。5 软件神话:1、管理神话。软件项目经理依赖信条,减轻提高软件进度和质量的压力。如开发宝典、增加人员、软件外包。2、用户神话。开发小组没有和用户进行有效沟通,导致没有达到用户期望。如没有详细了解就开始写程序,认为软件容易适应变更。3、从业者神话:软件开发者深信各种神话,旧的方式根深蒂固。6.软件新的挑战:遍在计算。无线网络的快速发展也许将很快促成真正的分布式计算的实现网络资源。万维网已经快速发展为一个计算引擎和内容提供平台。开源软件。开源软件就是将系统应用程序
4、源代码开放,新经济。 第2章 过程综述1 软件工程定义:(1) 将系统的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法用于软件开发(2) 在(1)中所述的方法的研究2软件工程的层次:工具 方法 过程 质量关注点(根基)软件工程的基础是过程(process)层。软件过程是将各个技术层次结合在一起并实施合理地、及时地开发计算机软件。过程定义一个框架,为有效交付软件过程技术,这个框架必须建立。软件过程构成了软件项目管理控制的基础,并且建立了一个环境以便于技术方法的采用、工作产品的产生、里程碑的建立、质量的保证、正常变更的正确管理。软件工程方法(method)为建造软件提供技术上的
5、解决方法(如何做)方法覆盖面很广,包括沟通、需求分析、设计建模、编程、测试和支持。软件工程方法依赖于一组基本原则,这些原则涵盖了软件工程所有技术领域,包括建模和其他描述性技术等。软件工具(tool)为过程和方法提供自动化或半自动化的支持。这些工具可以集成起来,使得一个工具产生的信息可被另外一个工具使用,这样就建立了软件开发的支撑系统,称为计算机辅助软件工程(computer-aided software engineering)3通用过程框架Generic process framework的框架活动:沟通 策划 建模 构建和部署communication(沟通)这个框架活动包含了与客户(和其
6、他共利益者)之间的大量的交流和协作,还包括需求获取以及其他相关活动。planning(策划)指为后续的软件工程工作制定计划。它描述了需要执行的技术任务,可能的风险、资源需求、工作产品和工作进度计划。modeling (建模)它包括创建模型和设计两方面。创建模型有助于客户和开发人员更好的理解软件需求;设计可以实现需求。Construction(构建)它包括编码(手写的或者自动生成的)和测试(测试是为了发现编码中的错误)deployment(部署)软件(全部或者完成的部分)交付到用户,用户对其进行评估并给出反馈意见。4 CMMI的概念和等级(重点):Capability Maturity Mode
7、l Integration能力成熟度模型,SEI提出的一个全面的过程元模型,当软件组织开发达到不同的过程能力和成熟度水平时,该模型可用来预测其所开发的系统和软件工程能力。第0级:不完全级(Incomplete)。过程域没有实施,或者已经实施但未达到CMMI 1级成熟度所规定的所有目标。第1级:已执行级(Performed)CMMI中定义的所有过程域的特定目标都已经实现。产生规定的工作产品所必需的工作任务都已经执行。第2级:已管理级(Managed)所有第1级规定的要求都已经达到。另外,所有与过程域相关的工作都符合组织的规程;工作人员都有足够的资源完成工作;共利益者都积极参与到要求的过程域;所有
8、的工作任务和工作产品都被监督、控制和评审;并评估是否与过程描述相一致。第3极:已定义级(Defined)所有第2级规定的要求都已经达到。另外,根据组织剪裁准则,对其标准过程进行了裁剪,裁剪过的过程对组织的过程资产增添了新的内容,如工作产品、测量和其他过程改进信息等。第4级:已定量管理级(Quantitatively Managed)所有第3级规定的要求都已经达到。另外,通过采用测量和定量的估计等手段,对过程域进行控制和不断改进。已经建立起来对质量和过程性能的定量指标,并作为过程管理的标准。第5级:优化级(Optimized)所有第4级规定的要求都已经达到。另外,采用定量(统计)的方法调整和优化
9、过程域,以满足用户不断变更的需求,并持续地提高过程域的有效性。5PSP/TSP模型特点PSP(个人软件过程)过程模型定义了5个框架活动:策划、高层设计、高层设计评审、开发、后验。策划:它将需求活动分离出来,并根据需求计算项目的规模和所需资源,并且预测缺陷数目。所有的度量都用工作表或模板记录。最后,识别开发任务,并建立项目进度计划。高层设计:建立每个构件的外部规格说明,并完成构件设计。如果有不确定的需求,则构建原型系统。所有问题都被记录和跟踪。高层设计评审:使用形式化验证方法来发现设计中的错误。对所有的重要任务和工作结果都进行度量。开发:细化和评审构件级设计。完成编码,对代码进行评审,并进行编译
10、和测试。对所有的重要任务和工作结果都进行度量。后验:根据收集到的度量和测量结果,确定过程的有效性。度量和测量结果为提高过程的有效性提供指导。TSP的目标(团队软件过程)建立自我管理团队来计划和跟踪其工作,确定目标,建立团队自己的过程和计划。只是管理人员如何指导和激励其团队,并保持团队的最佳表现。使CMM第5级的行为常规化,并依此约束员工,这样可加速软件过程改进。为高成熟度的软件组织提供改进指导。协助大学传授工业级团队技能。 第3章 过程模型1过程模型的作用:使软件开发更加有序2传统过程模型瀑布模型 又被称为经典生命周期,它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过策划、
11、建模、构建和部署过程,最终提供一个完整的软件并提供持续的技术支持。要求:需求明确 更改较小的情形增量过程模型:增量模型:以迭代的方式运用瀑布模型。随着时间推移,增量模型在每个阶段运用线性序列,每个线性序列生产出一个软件的可交付增量。和原型不同,增量模型每个增量都提交一个可交付的产品。瀑布模型的一个迭代版本,在每个阶段运行瀑布模型生产出一个软件可交付增量。运用增量模型时,第一个增量往往时核心产品。适用范围:在开发过程中开发人员不足RAD模型 :快速应用程序开发是一种侧重于短暂的开发周期的增量软甲过程模型。RAD是瀑布模型的高速变体,通过基于构建的方法实现快速开发。沟通来理解软件的特征,策划确保多
12、个团队并行工作,建模包括三个阶段业务建模、数据建模和过程建模。构建运用已有的构件技术并用代码自动生成技术,部署为以后的迭代建立基础。不足:1、大量的人员,2、开发者和客户如果没有为短实践内急速完成做好准备,通常为失败,3、需要合理的模块化,否则构建建立会有很多问题,4、不适合高性能,5、高风险不宜采用RAD。演化过程模型:原型模型(重点)原型模型的基本思想是:软件开发人员在与用户进行需求分析时,以比较小的代价快速建立一个能够反映用户主要需求的原型系统,然后由客户或者用户进行评价。开发人员根据反馈进一步对原型进行补充和完善,直到用户对开发的原型系统满意为止。使用原型系统时,客户和开发者必须承认原
13、型是为定义需求服务的。然后丢弃原型,实际的软件系统是以质量第一为目标的。适用范围:a) 客户提出了软件的一些基本功能,但是没有详细定义的输入、处理和输出需求。b) 开发人员对算法的效率、操作系统的兼容性和人机交互的形式等情况不确定。优点:由用户或客户进行评价,能够用来定义需求 缺点:第一个系统通常是不可用的,必须被扔掉螺旋模型一种风险驱动型过程模型,它有两个显著的特点。一是采用循环的方式逐步加深系统定义和实现的深度,同时降低风险(要求在项目的所有阶段始终考虑技术风险)。二是确定一系列里程碑,确保共利益者都支持可行的和令人满意的系统解决方案。适用范围:大型系统开发协同开发模型。有时候叫协同工程,
14、可以表示为一系列框架活动、软件工程动作和任务以及相应的状态。协同过程模型定义了一系列事件,这些事件将出发软件工程活动、动作或状态转换。协同过程模型可用于所有类型的软件开发,能提供项目当前的状态图。专用过程模型:基于构建的开发:能够做到软件复用,带来极大收益。形式化方法模型:的主要活动是生成计算机软件的数学规格说明。使用形式化方法,歧义性问题、不完整问题、不一致问题都容易被发现和改正,不是依靠特定的评审,而是应用分析的方法。面向方面的软件开发(AOSD):为定义、说明、设计和构建方面提供过程和方法,是对横切关注点局部表示的一种机制,超越了子程序和继承的方法。统一过程:UP以用例为驱动、以系统架构
15、为中心的迭代与增量过程。RUP包括起始、细化、构建、转换和生产5个部分。五个UP阶段并不是顺序地进行,而是阶段性地并发进行。UP模型(概念重点):一种用UML进行面向对象软件工程的框架。敏捷的概念4了解模型的特点与使用范围 第6章 系统工程(不作要求)1系统工程的概念2基于计算机系统的要素3系统工程的层次 全局/领域/要素/详细视图4业务过程工程 需要分析和设计的三种不同架构:数据、应用、和技术基础设施5产品工程需求工程、构建工程、软件工程需求导出为何困难:范围问题 理解问题 易变问题产品工程的目的是将用户期望的已定义的一组能力转化成真实产品。为了达到这个目的,产品工程类似系统工程必须给出架构
16、和基础设施。这个构架包括四个不同的系统构件:软件 硬件 数据(数据库)以及人员软件构造包括了编码和测试循环,循环过程包括为每个构件生成源码并对其进行测试和纠错。软件部署发生在向客户展示每个软件增量的时候。交付的关键原则是满足客户期望并且能为客户提供合适的软件信息支持。6系统建模方法:HP方法(输入处理输出 界面和维护自检)7SCD图8UML系统建模(部署图、活动图和用例图) 第7章 需求工程(概念)1需求工程的任务:启始、导出、求精、协商、规格说明、确认和需求管理Inception Elicitation Elaboration Negotiation Specification Valida
17、tion Requirements Management2质量功能部署(QFD)三类要求:正常需求、期望需求、令人兴奋的需求。3用户场景的概念用来识别对将要构建的系统的使用线索的描述用例。场景通常称为用例。本质上,用例定义了最终用户如何在以特定的环境下与系统交互。4UML用例建模(用例图、活动图、状态图和类图)系统规格说明的三个目标:功能 性能 约束用例模版 p1275. 需求工程概念:需求工程帮助软件工程师更好的理解他们将要解决的问题。其中所包含的一系列任务有助于理解软件将如何影响业务、客户想要什么以及最终用户将如何与软件交互。通过需求分析可以得到的产品有:用户场景、功能和特征列表、分析模型
18、或功能说明。需求工程(RE)是一个软件工程动作,开始于沟通并持续到建模。需求工程在设计和构造之间建立联系的桥梁6. 启动需求工程的过程a. 确认共利益者b. 识别多种观点c. 协同合作d. 首次提问7. 导出需求a. 协同需求收集b. 质量功能部署c. 用户场景d. 导出工作产品 第8章 构建分析模型 建模的目的 对象技术 建模原则 分析包1分析建模的三个目标a.描述客户需要什么,b.为软件设计奠定基础,c.定义在软件完成后可以被确认的一组需求。分析模型在系统描述和设计模型之间建立桥梁。2分析建模的方法(结构化分析和面向对象)1、一种考虑数据和处理的分析建模方法被称为结构分析。2、第二种方法是
19、面向对象的分析,这种方法关注于定义类和影响客户需求的类之间的协作方式。3分析模型的元素:基于场景、面向信息流、基于类、基于行为4ERD(实体关系基数和形态)数据字典 面向对象分析模型5基于场景建模(用例模版、活动图/泳道图)6状态图7基于类的建模:实体、类、类图(CRC图),行为模型(时序图)8基于用例图的分析类的抽象方法9分析模型的概念及其组成分析包:分析建模的一个重要部分就是分类,也就是将分析模型的各种元素(如用例、分析类)分组打包称作分析包,并为每个包取一个有代表性的名称。10.创建分析模型遵循的原则:a. 模型应关注在问题域或业务域内可见的需求,抽象的级别应该相对高一些b. 分析模型的
20、每个元素都应能增加对软件需求的整体理解,并提供对信息域。功能和系统行为的深入理解c. 基于基础结构和其他非功能的模型应推延到设计阶段再考虑d. 最小化整个系统内的关联e. 确认分析模型为所有共利益者都带来价值f. 尽可能保持模型简洁第八章 构建分析模型1、分析模型。分析模型使用文字和图表的综合形式以相对容易理解的方式描绘需求的数据、功能和行为,更重要的是,可以更直接的评审它们的正确性、完整性和一致性。2、基于场景的建模从用户的角度表现系统,面向流的建模在说明数据对象如何通过处理函数进行转换方面提供了指示,基于类的建模定义了对象、属性和关系,行为建模描述了系统状态、类和事件在这些类上的影响。3、
21、分析模型必须实现的三个主要目标:a.描述客户需要什么,b.为软件设计奠定基础,c.定义在软件完成后可以被确认的一组需求。分析模型在系统描述和设计模型之间建立桥梁。4、分析建模的方法。1、一种考虑数据和处理的分析建模方法被称为结构分析。2、第二种方法是面向对象的分析,这种方法关注于定义类和影响客户需求的类之间的协作方式。5、基于场景的建模使用UML分析建模,从开发用例、活动图和泳道图形式的场景开始。6、创建数据流模型,数据流图有助于软件工程师开发信息域的模型,并同时开发功能域的模型。7、CRC建模。CRC提供了一个简单的方法,可以识别和组织与系统或产品需求相关的类。CRC模型实际上师表示类的标准
22、索引卡片的集合。这些卡片被分为三部分,顶部写类名,下面左侧列出类的职责,右侧部分列出类的协作关系。8、生成行为模型。CRC索引卡和其他面向对象模型表现了分析模型中的静态元素,行为模型表示系统或产品的动态行为,有状态图、顺序图。9、分析模型由4种建模元素构成:基于场景的模型、流模型、基于类的模型和行为模型。10、基于场景的模型从用户的角度描述软件需求。用例是主要的建模元素,还可以适用活动图说明场景,泳道图显示了处理流如何分配给不同的用户。流模型关注当数据对象通过处理函数转换时的流动。基于类的建模使用基于场景和面向流的建模元素中提取的信息确定分析类。前面三种分析模型元素提供了软件的静态视图,行为模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 实践 研究 方法 知识点
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。