




已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
总结 传统软件工程与软件过程的基本概念 任何工程方法 包括软件工程 必须以有组织的质量保证为基础 全面的质量管理和类似的理念刺激了不断的过程改进 正是这种改进导致了更加成熟的软件工程方法的不断出现 支持软件工程的根基就在于对质量的关注 建造计算机软件是一个迭代学习的过程 1 软件工程与软件过程的关系 软件过程是为开发高质量软件所需要完成的任务的框架 软件工程是有创造力 有知识的人在定义好的 成熟的软件过程框架中进行的 该过程适合于他们建造的产品和他们的市场需要 一个软件过程定义了软件开发中采用的方法 而软件工程还包含该过程中应用的技术 技术方法和自动工具 2 工具 方法 过程 质量焦点 Softwareengineeringlayers 3 1 过程 方法和工具 软件工程是一种层次化的技术 图2 1 支持软件工程的根基就在于对质量的关注 软件工程的基础是过程层 软件工程过程是将技术层结合在一起的凝聚力 使得计算机软件能够合理和及时地开发 过程定义了一组关键过程区域的框架 4 软件工程方法为软件开发提供了 如何做 的技术软件工具为软件工程方法提供了自动的或半自动的软件支撑环境 5 2软件的一般视图 工程是对技术 或社会 实体的分析 设计 建造 验证和管理 与软件工程相关的工作可分为三个一般的阶段 1 定义阶段 集中于 做什么 三个主要任务 系统工程 项目计划 需求分析 2 开发阶段 集中于 如何做 三个特定任务 设计 编码 测试 3 支持阶段 关注于 变化 四类可能遇到的变化 纠错 适应 增强 预防 6 3 软件过程可分为三大类 基本过程类 是构成软件生存周期主要部分的那些过程 包括获取 供应 开发 操作 维护等过程 支持过程类 可穿插到基本过程中提供支持的一系列过程 包括文档开发 配置管理 质量保证 验证 确认 联合评审 审计 问题解决等过程 组织过程类 一个组织用来建立 实施一种基础结构 并不断改进该基础结构的过程 包括管理 基础 改进 培训等过程 7 4 软件工程过程 软件工程过程 SoftwareEngineeringProcess 是为获得软件产品 在软件工具支持下由软件工程师完成的一系列软件工程活动 软件工程的过程则是将软件工程的方法和工具综合起来以达到合理 及时地进行计算机软件开发的目的 过程定义了方法使用的顺序 要求交付的文档资料 为保证质量和协调变化所需要的管理 及软件开发各个阶段完成的里程碑 8 软件工程过程通常包含四种基本的过程活动P Plan 软件规格说明 规定软件的功能及其运行的限制 D Do 软件开发 产生满足规格说明的软件C Check 软件确认 确认软件能够完成客户提出的要求A Action 软件演进 为满足客户的变更要求 软件必须在使用的过程中演进 9 5 软件过程模型 所有软件开发都可被刻画为一个问题解决环 其中包括四个不同的阶段 状态描述 问题定义 技术开发和解决集成 软件有一个孕育 诞生 成长 成熟 衰亡的生存过程 这个过程即为计算机软件的生存期 软件生存期的六个步骤 即制定计划 需求分析 设计 程序编码 测试及运行维护 10 制定计划 确定要开发软件系统的总目标给出功能 性能 可靠性以及接口等方面的要求完成该软件任务的可行性研究估计可利用的资源 计算机硬件 软件 人力等 成本 效益 开发进度制定出完成开发任务的实施计划 连同可行性研究报告 提交管理部门审查 11 需求分析和定义 对待开发软件提出的需求进行分析并给出详细的定义编写软件需求说明书或系统功能说明书及初步的系统用户手册提交管理机构评审 12 软件设计 概要设计 把各项需求转换成软件的体系结构 结构中每一组成部分都是意义明确的模块 每个模块都和某些需求相对应详细设计 对每个模块要完成的工作进行具体的描述 为源程序编写打下基础编写设计说明书 提交评审 13 程序编写 把软件设计转换成计算机可以接受的程序代码 即写成以某一种特定程序设计语言表示的 源程序清单 写出的程序应当是结构良好 清晰易读的 且与设计相一致的 14 软件测试 单元测试 查找各模块在功能和结构上存在的问题并加以纠正组装测试 将已测试过的模块按一定顺序组装起来按规定的各项需求 逐项进行有效性测试 决定已开发的软件是否合格 能否交付用户使用 15 运行 维护 改正性维护运行中发现了软件中的错误需要修正适应性维护为了适应变化了的软件工作环境 需做适当变更完善性维护为了增强软件的功能需做变更 16 软件生存期模型 也称软件开发模型 软件过程模型 软件工程范型 是跨越整个生存期的系统开发 运作和维护所实施的全部过程 活动和任务的结构框架 简单地说 是软件产品或软件系统从设计 投入使用到被淘汰的全过程 所谓模型就是一种开发策略 这种策略针对软件工程的各个阶段提供了一套范型 使工程的进展达到预期的目的 6 软件生存周期模型 17 7 编码修复模型 编码修复模型是所有模型中最古老也是最简单的模型 18 编码修复模型的特点 它几乎不执行任何预先的计划 该模型的使用者很快就进入了所开发产品的编码阶段 典型的情况是 完成大量的编码 然后测试产品并且纠正所发现的错误 编码和测试工作一直持续到产品开发工作全部完成并将产品交付给客户 19 缺点 缺乏预先的计划和不正规的开发 软件产品的质量低于用其他模型实现的产品质量 产品的设计没有认真计划及文档化 代码很难维护 优点 简单快捷 适合于很小且很简单的项目 20 8 线性顺序模型 线性模型也称为传统生存周期或瀑布模型 传统生存模型是软件工程中应用最广泛的过程模型 在软件工程中占有肯定和重要的位置 它提供了一个模板 使得分析 设计 编码 测试和支持的方法可以在该模板的指导下应用 21 22 阶段间的顺序性和依赖性 文档驱动性 严格阶段评估 开发初期需要清楚全部需求 开发周期长 风险大 线性顺序模型特点 23 优点 1 它提供了一个摸板 这个摸板使得分析 设计 编码 测试和支持的方法可以在该摸板下有一个共同的指导 2 虽然有不少缺陷但比在软件开发中随意的状态要好得多 24 9 原型实现模型 由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰 因而使得开发项目难于做到一次开发成功 出现返工再开发在所难免 做两次 第一次只是试验开发 其目标只是在于探索可行性 弄清软件需求 第二次则在此基础上获得较为满意的软件产品 25 从需求收集开始 开发者和客户在一起定义软件的总体目标 标识已知的需求并且规划出需要进一步定义的区域 然后是 快速设计 它集中于软件中那些对客户可见的部分的表示 这将导致原型的创建 由客户评估并进一步精化待开发软件的需求 逐步调整原型使其满足客户的需求 这个过程是迭代的 26 27 原型模型图 28 原型可以作为标识软件需求的一种机制 原型作为第一个系统 常常是抛弃的 开发过程的交互性和迭代性 充分发挥用户在软件开发初期的作用 开发周期较短 成本较低 风险较小 原型实现模型的特点 29 缺点 1 没有考虑软件的整体质量和长期的可维护性 2 大部分情况是不合适的操作算法被采用目的为了演示功能 不合适的开发工具被采用仅仅为了它的方便 还有不合适的操作系统被选择等等 3 由于达不到质量要求产品可能被抛弃 而采用新的模型重新设计 优点 1 如果客户和开发者达成一致协议 原型被建造仅为了定义需求 之后就被抛弃或者部分抛弃 那么这种模型很合适了 2 迷惑客户抢占市场 这是一个首选的模型 30 10 快速应用开发RAD模型 快速应用开发 RAD 是一个增量型的软件开发过程模型 强调极短的开发周期 RAD模型是线性顺序模型的一个 高速 变种 通过使用构件的建造方法赢得了快速开发 RAD过程强调的是复用 复用已有的或开发可复用的构件 实际上RAD采用第四代技术 31 软件生存周期模型 一 业务建模业务功能信息流建模二 数据建模形成一组支持该业务所需的数据对象 标识出每个对象的特征 并定义对象间的关系三 过程建模创建过程描述以增加 修改 删除或检索一个数据对象 四 应用生成使用自动化工具辅助软件建造五 测试及反复强调复用 对新的构件及其接口进行测试 RAD模型的阶段 32 RAD 快速应用开发 模型图 33 缺点 1 只能用于信息系统 2 对于较大的项目需要足够的人力资源去建造足够的RAD组 3 开发者和客户必须在很短的时间完成一系列的需求分析 任何一方配合不当都会导致RAD项目失败 4 这种模型对模块化要求比较高 如果有哪一功能不能被模块化 那么建造RAD所需要的构件就会有问题 5 技术风险很高的情况下不适合这种模型 优点 1 开发速度快 质量有保证 2 对信息系统特别有效 34 11 增量模型 增量模型融合了线性顺序模型的基本成分 重复地应用 和原型实现的迭代特征 增量模型采用随着日程时间的进展而交错的线性序列 每一个线性序列产生软件的一个可发布的 增量 第一个增量往往是核心的产品 客户对每一个增量的使用和评估 都做为下一个增量发布的新特征和功能 35 增量模型 36 过程渐进性 每次提交一个满足用户需求子集的增量构件 增量模型强调每一个增量均发布一个可操作的产品 能在短时间内向用户提交可使用的软件 软件系统的体系结构必须具有高度的开放性和可扩充性 在逐步增加产品功能的过程中有充裕的时间学习和适应新的功能 增量模型的特点 37 12 螺旋模型 螺旋模型是一个演化软件过程模型 它将原型实现的迭代特征与线性顺序模型中控制的和系统化的方面结合起来 在螺旋模型中 软件开发是一系列的增量发布 在每一个迭代中 被开发系统的更加完善的版本逐步产生 螺旋模型被划分为若干框架活动 也称为任务区域 38 螺旋模型沿着螺线旋转 在四个象限上分别表达了四个方面的活动 即 制定计划 确定软件目标 选定实施方案 弄清项目开发的限制条件 风险分析 分析所选方案 考虑如何识别和消除风险 实施工程 实施软件开发 客户评估 评价开发工作 提出修正建议 39 产品维护项目 产品增强项目 新产品开发项目 概念开发项目 风险分析 工程实施 用户通信 用户评估 计划 建造及发布 40 41 螺旋模型的特点 螺旋模型的每一个周期都应用了原型模型排除风险 在确定了原型之后 又启动生命周期模型继续过程的演化 软件开发的每个阶段都是一次迭代 每旋转一个圈就前进一个层次 得到一个新的版本 强调可选方案和约束条件有利于软件重用 减少测试过多或不足带来的风险 维护看成是模型的另一个周期 需要开发人员有丰富的风险评估经验和相关专门知识 42 13 基于构件的开发 基于构件的开发模型融合了螺旋模型的许多特征 它本质上是演化型 要求软件创建的迭代方法 利用预先包装好的软件构件 或称类 来构造应用的 它导致软件复用 43 44 缺点 1 过分依赖于构件 构件库的质量影响着产品质量 优点 1 构件可复用 提高了开发效率 2 采用了面向对象的技术 45 14 第四代技术 第四代技术包含了一系列的软件工具 能使软件工程师在较高的级别上规约软件的某些特征 软件工具根据开发者的规约自动生成源代码 46 第四代技术的特点 目前 一个支持4GT范型的软件开发环境包含如下部分或所有工具 数据库查询的非过程语言 报告生成器 数据操纵 屏幕交互及定义 以及代码生成 高级图形功能 电子表格功能 47 对于较小的应用软件 使用一个非过程的第四代语言 4GL 有可能直接从需求收集过渡到实现 但对于较大的应用软件 就有必要制订一个系统的设计策略 即使是使用4GL 对于较大项目 如果没有很好地设计 即使使用4GT也会产生不用任何方法来开发软件所遇到的同样的问题 低的质量 差的可维护性 难以被用户接受 48 要将一个4GT生成的功能变成最终产品 开发者还必须进行测试 写出有意义的文档 并完成其他软件工程范型中同样要求的所有集成活动 此外 采用4GT开发的软件还必须考虑维护是否能够迅速实现 49 4GT模型也有优点和缺点 支持者认为它极大地降低了软件的开发时间 并显著提高了建造软件的生产率 反对者则认为目前的4GT工具并不比程序设计语言更容易使用 这类工具生成的结果源代码是 低效的 并且使用4GT开发的大型软件系统的可维护性是令人怀疑的 50 企业的目的根本目的 合法地赚取尽可能多的利润 使企业利益最大化 为了使企业利益最大化 软件产品 项目 应当 做得好 做得快并且少花钱 企业的迫切愿望寻求 提高产品质量 提高生产率并且降低成本 的解决方案 包括方法论和工具 15 CMM能力成熟度模型 CapabilityMaturityModel 51 52 主要的软件过程域工程类的主要过程域 需求开发 系统设计 软件实现 软件测试 软件维护等等 管理类的主要过程域 项目规划 项目监控 需求管理 质量管理 配置管理等等 上述过程域中的任何活动都会影响产品的质量 生产率和成本 53 CMM发展简史 CMM是什么CMM CapabilityMaturityModel 是用于衡量软件过程能力的事实上的标准 同时也是目前软件过程改进最好的参考标准 美国卡内基 梅隆大学软件工程研究所 SEI 研制 54 发展简史CMM1 0于1991年制定 CMM1 1于1993发布 该版本应用最广泛 CMM2 0草案于1997年制定 未广泛应用 到2000年 CMM演化成为CMMI CapabilityMaturityModelIntegration CMM2 0成为CMMI1 0的主要组成部分 CMMI SE SW1 1 CMMIforSystemEngineeringandSoftwareEngineering 于2002年1月正式推出 55 软件工程研究所 SEI 提出了 个综合模型 定义了当一个组织达到不同的过程成熟度时应该具有的软件工程能力 为了确定一个组织目前的过程成熟度 SEI使用了一个五级的评估方案 即能力成熟度模型CMM 该模型定义了在不同的过程成熟度级别上所需要的关键活动 CMM重要概念5个成熟度等级 Initial Repeatable Defined Managed Optimizing18个关键过程域 关键过程域指出为了达到某个成熟度等级必须要解决的一族问题 56 第一级 初始级 软件过程的特征是无序的 有时甚至是混乱的 几乎没有过程定义 成功完全取决于个人的能力 57 第二级 可重复级 建立了基本的项目管理过程 能够追踪费用 进度和功能 有适当的必要的过程规范 使得可以重现以前类似项目的成功 58 第三级 定义级 用于管理和工程活动的软件过程已经文档化 标准化 并与整个组织的软件过程相集成 所有项目都使用文档化的 组织认可的过程来开发和维护软件 本级包含了第二级的所有特征 59 第四级 管理级 软件过程和产品质量的详细度量数据被收集 通过这些度量数据 软件过程和产品能够被定量地理解和控制 本级包含了第三级的所有特征 60 第五级 优化级 通过定量的反馈 进行不断的过程改进 这些反馈来自于过程或通过测试新的想法和技术而得到 本级包含了第四级的所有特征 61 CMM等级评估 过程复杂每一个CMM等级评估周期 从准备到完成 约需12 30个月 每一级别的评估由SEI授权的主任评估师领导一个评审小组进行 其成员大部分来自企业内部 评估过程包括员工培训 企业的高层领导也要参加 问卷填写和统计 文档审查 数据分析 与企业的高层领导讨论和撰写评估报告等 评估结束由主任评估师签字生效 没有盖上公章的证书 62 取得主任评估师的资格比较困难10年以上的软件开发经验在SEI接受培训 培训费用每人约需数万美元 非美国人加倍 经过两次以上CMM评估的全过程实习主任评估师的资格并非终身制评估费用昂贵 大约是ISO认证的十倍价格视客户需求的多少而定 可以与咨询公司协商 2002年参考价 CMM2级50万元RMB CMM3级80万元RMB 63 CMM在中国 国内IT企业采用CMM的目的提高企业的软件过程能力 但并不关心CMM评估 既要提高企业的软件过程能力 又想通过CMM评估来提升企业的威望与知名度 只是为了拿到CMM证书 64 共性问题 费用高 难度大 见效慢企业做一次比较完整的CMM2 3级咨询和评估大约要花费60 100万元 企业内部组建SEPG的成本并不比咨询费低 软件工程与项目管理工具比较昂贵 如Rational的产品 目前国内通过CMM2 3级评估的企业屈指可数 而这些企业的实际能力也没有宣传的那么好 因为参加CMM评估的项目都是精心准备的 个别项目或者事业部通过了CMM评估并不意味着整个企业达到了那个水平 这里面的水分相当大 65 成熟度 大连新优势在质量认证方面 每年我市拿出资金支持软件企业进行CMM评估 已有35家企业通过CMM各级评估 其中 10家企业通过CMM5级和CMMI5级评估 占全国总数的1 4 66 国内通过CMM等级评估的企业 2004年统计数据 到2004年3月 全国通过CMM2级以上评估的软件企业已超过100家 比2002年的50多家翻了一番 其中 通过CMM3级以上评估的已超过45家 通过CMM4 CMM5级评估的有9家 67 CMM2 No PassDateOrganizationLeading11999 7 6北京鼎新信息系统开发有限公司22000年9月份东软软件有限公司SoftTech32001 1 20联想电脑公司软件事业部英国路透 北京赛柏42001 4 1西安交大博通资讯股份有限公司海循序52001 6 1用友软件北京赛柏62001 10 30北京亿阳信通软件研究院有限公司SoftTech72001年11月份浪潮集团北京浪潮国强软件有限公司82001 11 23浪潮集团通用软件有限公司北京赛柏92001 11 30北京北佳信息系统有限公司公司北京力友和102001 12 7东方通科技公司北京力友和112001 12 14中软网络技术股份有限公司SoftTech122001 12 14广州天河软件园新太科技有限公司SynchroCubed 力友和132001 12 14北大方正技术研究院北京赛柏142002 1 1金山软件股份公司北京赛柏152002 1 14珠海同望科技有限公司162002 3 1金蝶软件 中国 有限公司北京赛柏172002 3 14大连现代高技术发展有限公司SoftTech182002 3 30亚信科技 中国 有限公司SoftTech192002 4 11普纳科技集团北京合力金桥系统集成公司英国路透集团 68 202002 4 12北京NTT数据系统集成有限公司北京赛柏212002 5 23清华同方股份有限公司软件基地北京赛柏222002 6 14中国航空结算中心SoftTech232002 6 27北京新晨科技股份有限公司SoftTech242002 7 5浪潮齐鲁软件股份有限责任公司JBMTechnologies 北京赛柏252002 8 6中国工商银行北京分行信息科技部SoftTech262002 9 2杭州信雅达系统工程股份公司SoftTech272002 9 13交大铭泰软件有限公司282002 10 2深圳市现代计算机有限公司英国路透集团292002 10 23中关村科技软件有限公司SoftTech302002 11 15长春鸿达高技术集团有限公司北京赛柏312002 11 22北京直真节点技术开发有限公司北京力友和322002 11 22方正澳德北京赛柏332002 11 26北京华嘉经纬管理软件开发有限公司342002 12 2中科软件股份有限公司北京赛柏352002 12 13北京天桥北大青鸟科技股份有限公司SoftTech362002 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业互联网平台SDN在能源行业的应用与效益评估
- 2025年生态旅游可持续发展规划与管理中的智慧旅游应用研究报告
- 2025年细胞治疗临床试验患者招募策略报告
- 2025年工业互联网平台数据加密算法效能解决方案评估报告
- 民法典水务课件
- 2025年高考英语听力专项训练冲刺押题模拟试卷
- 2025年小学英语词汇拓展专项训练冲刺试卷
- 2025年小学数学毕业升学考试综合试卷及解析
- 2025年公务员考试行测言语理解专项试卷:逻辑判断与推理备考手册
- 2025年高考政治哲学原理专项训练试题
- 2025浙江温州永嘉县国有企业面向社会招聘25人考试参考题库附答案解析
- 烧结基础理论课件
- 《家庭教育学》全套教学课件
- 法律知识培训课件
- 2024年安康社区工作者考试真题及答案
- 业财融合与价值创造课件
- 长沙市名校小升初分班考试数学试卷(含答案)
- 肺动脉栓塞护理查房
- 农村房地产转让合同协议
- 拉链专业工艺讲解
- 2025版抵押贷款抵押物抵押权登记及变更手续协议模板
评论
0/150
提交评论