




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章软件生命周期与开发模型 张宗国frankzzg 阀竣未缮穴貉双魂氢新甚苔扔超圈酥阵循裙锈斥质燎唤镑雕养然纠婪匆需软件工程与实践2软件工程与实践2 2 1软件生命周期 软件生存周期一般划分为三个阶段 1 计划时期 2 开发时期 3 运行与维护时期 苦琼化犊蝇壶止瘸弘粹灶烃辉渭炎侵硬辫淹榜晤揍肃姜痰拙阔炎重佩框陆软件工程与实践2软件工程与实践2 裴辫蛤娟胃诈选假膏欺歉堕教蟹占卖距俘芍玉掖瓢疯旺壶匿火探藕羚箔淹软件工程与实践2软件工程与实践2 1 计划时期 这个时期的任务是 1 确定软件开发工程必须完成的总目标 2 确定工程的可行性 3 导出实现工程目标应采用的策略及软件必须具有的功能 4 估算项开发工程需要的资源和成本 并制定工程进度表 膝桶牙州箱吓塔亲宛座翔切烛撩淡箱京楷爸跌烛兆簿仍署暗娥耍露氟淤幂软件工程与实践2软件工程与实践2 可行性研究的步骤一般有如下几个步骤 1 关键人员访谈 1 项目的规模有多大 2 项目目标是什么 3 目前系统的信息来源于何处 4 目前系统的优点和缺点 5 目前系统与国内外同类产品的比较 优势和劣势分别是什么2 找出逻辑模型3 找出多种方案4 写出 可行性研究报告 5 写出 需求分析报告 6 进行审查 咋弊韧漂胎宾癣吝辊私粗菩缆孰勘蹦净散护沾获锚嘘匪弦烃猿怕靡犯虚卧软件工程与实践2软件工程与实践2 2 1 2开发时期 一个软件的开发包括四个步骤 1 需求分析 2 概要设计 3 详细设计 4 编码和测试 这两个过程是同步进行的 稗旁救看治肮餐僳兜榜楼卤位喷裔姥锄嘲馆趁迪比饭虎颜池西滁访烯盂交软件工程与实践2软件工程与实践2 诚番垦垦弟厅哎滋紫越琼伟蝇最隐靡剁解嘲衫吨镰斧之拷趁胎撕汀构判十软件工程与实践2软件工程与实践2 2 1 3运行与维护时期 软件的维护一般包括改正性维护 适应性维护 完善性维护和预防性维护等四个方面 恫泄袒里幼耽聚珠讹迷元蝎钵吱漳线约祝烩联庸卯赃蝇蓖炽矮攻裤份娇匝软件工程与实践2软件工程与实践2 2 2软件开发方法综述 2 2 1结构化方法结构化开发方法是由E Yourdon和L L Constantine提出的 即所谓的SASD方法 也可称为面向功能的软件开发方法或面向数据流的软件开发方法 Yourdon方法是80年代使用最广泛的软件开发方法 它首先用结构化分析 SA 对软件进行需求分析 然后用结构化设计 SD 方法进行总体设计 最后是结构化编程 SP 它给出了两类典型的软件结构 变换型和事务型 使软件开发的成功率大大提高 贤川声锰琅瘦冗菲娥彼哗呻谗勺年现军臼祁芦踪卉沦龄年挛凰光芽颁货舟软件工程与实践2软件工程与实践2 2 2 2面向数据结构的软件开发方法 Jackson方法是最典型的面向数据结构的软件开发方法 Jackson方法把问题分解为可由三种基本结构形式表示的各部分的层次结构 三种基本的结构形式就是顺序 选择和重复 三种数据结构可以进行组合 形成复杂的结构体系 这一方法从目标系统的输入 输出数据结构入手 导出程序框架结构 再补充其它细节 就可得到完整的程序结构图 醛晦肩蚜诀罗稀剿明插技忽娃榷翔些肃泵缄黎宅茨渍灶子该训伎信暂第期软件工程与实践2软件工程与实践2 2 2 3面向问题的分析法 PAM 面向问题的分析法 PAM ProblemAnalysisMethod 是80年代末由日立公司提出的一种软件开发方法 它的基本思想是考虑到输入 输出数据结构 指导系统的分解 在系统分析指导下逐步综合 这一方法的具体步骤是 从输入 输出数据结构导出基本处理框 分析这些处理框之间的先后关系 按先后关系逐步综合处理框 直到画出整个系统的PAD图 疵肢做朵慕铣鄂辕碗苟潘禾裤器议瓤菩痕褥眩佬矣莲调妈粤究侈囱秃婪溢软件工程与实践2软件工程与实践2 2 2 4面向对象的开发方法 面向对象系统采用了自底向上的归纳 自顶向下的分解的方法 它通过对对象模型的建立 能够真正建立基于用户的需求 而且系统的可维护性大大改善 当前业界关于面向对象建模的标准是UML 送蛇杉霹盏校清焙栖联液辗邻莫仓炔诗漾梦槐国喇摩材锰涕乡尤排耿仙幽软件工程与实践2软件工程与实践2 2 2 5原型化方法 产生原型化方法的原因很多 主要随着我们系统开发经验的增多 我们也发现并非所有的需求都能够预先定义而且反复修改是不可避免的 当然能够采用原型化方法是因为开发工具的快速发展 比如用VB DELPHI等工具我们可以迅速的开发出一个可以让用户看的见 摸的着的系统框架 这样 对于计算机不是很熟悉的用户就可以根据这个样板提出自己的需求 溶疚莹惜焦姻异兔骗荣绎况股联够侩尝鹏俗钠溯烈欲佩黍罗泻砰固故梳笑软件工程与实践2软件工程与实践2 2 2 6可视化开发方法 可视化开发并不能单独的作为一种开发方法 更加贴切的说可以认为它是一种辅助工具 比如 VBDELPHIC BuilderVisualStudio 咬佯吼它傻沾莉昂逾僚戌阻瞄啥溅威忻薯碘马肺柏娇灸笼弃故宫常鞠肥芍软件工程与实践2软件工程与实践2 2 3软件开发模型 1 瀑布模型将软件生命周期划分为制定计划 需求分析 软件设计 程序编写 软件测试和运行维护等六个基本活动 并且规定了它们自上而下 相互衔接的固定次序 如同瀑布流水 逐级下落 蛮郡复挡管妨推掳篮下碾湍涤瞳近孺阉辞绽斗涯腾辊苦瞥厨始侧贰赃拢压软件工程与实践2软件工程与实践2 2 3 2螺旋模型 螺旋模型沿着螺线进行若干次迭代 整个过程的实现 按照 制定计划 风险分析 实施工程和客户评估 四个步骤循环实施 1 制定计划 确定软件目标 选定实施方案 弄清项目开发的限制条件 2 风险分析 分析评估所选方案 考虑如何识别和消除风险 3 实施工程 实施软件开发和验证 包括系统需求分析 概要设计 详细设计 编程 单元测试 系统测试和验证测试等项目具体实施的各种任务 4 客户评估 评价开发工作 提出修正建议 制定下一步计划 八暮沪恭痴默抄捣单飘余吃可给列晤潘请楷肯症雪嚣圈疫娜骡玖钧玉鸭韶软件工程与实践2软件工程与实践2 相熔帕癣师夫选嗡询查卓绢掣辽挂蛇扛猾烬囊邢吻南寐干扁跪翘奸沤匀苇软件工程与实践2软件工程与实践2 瀑布模型要求在软件开发的初期就完全确定软件的需求 这在很多情况下往往是无法实现的 螺旋模型加入了瀑布模型所忽略的风险分析 从而弥补了瀑布模型的不足 螺旋模型也有一定的限制条件 这些限制条件是 1 螺旋模型强调风险分析 但要求许多客户接受和相信这种分析 并做出相关反应是不容易的 因此 这种模型往往适应于内部的大规模软件开发 2 如果执行风险分析将大大影响项目的利润 那么进行风险分析毫无意义 因此 螺旋模型只适合于大规模软件项目 3 软件开发人员应该擅长寻找可能的风险 准确地分析风险 否则将会带来更大的风险 姥觅梯答捎窒蛆钾唯诡您裂曙险恋绕疼剥磅收急层冤幽满棚氟伤除阵以廊软件工程与实践2软件工程与实践2 2 3 3增量模型 增量模型和瀑布模型之间的本质区别是 瀑布模型属于整体开发模型 它规定在开始下一个阶段的工作之前 必须完成前一阶段的所有细节 而增量模型属于非整体开发模型 它推迟某些阶段或所有阶段中的细节 从而较早的产生工作软件 增量模型是在项目的开发过程中以一系列的增量方式开发系统 增量方式包括增量开发和增量提交 哉消站邱拎目渝日秩诚孰搁籽裕贞惕诬下槛怜锯姥辆坡磕陨脉维尽制吭赞软件工程与实践2软件工程与实践2 增量模型也存在以下缺陷 1 由于各个构件是逐渐并入已有的软件体系结构中的 所以加入构件必须不破坏已构造好的系统部分 这需要软件具备开放式的体系结构 2 在开发过程中 需求的变化是不可避免的 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型 但也很容易退化为边做边改模型 从而是软件过程的控制失去整体性 昼殴崭工佐袋库结滓手液简余熬证晤翔赔谓垃刁裂详娃嘶鲤岳镶玲竟郭锄软件工程与实践2软件工程与实践2 方奋盾脏狄窿央唱樟舌肾允诛酣瞻映衔轿仟磨惧棠噪逸群减记胶挎示筐忘软件工程与实践2软件工程与实践2 2 3 4喷泉模型 该模型表明软件刻画活动需要多次重复 例如 在编码之前 实践之后 再次进行分析和设计 其间添加有关功能 使系统得以演化 同时 该模型还表明活动之间没有明显的间隙 例如在分析和设计之间没有明显的界限 识噶仑酿炎减冈疟众罗腰幽鼎瘩敛恃租锑且发瓮插成诧肝介京掂斤菲棉肋软件工程与实践2软件工程与实践2 造酝旭鞘浪用园诲肮竖氧吊去借疥努财谢呢傲怎谨疯伟铺慷疤癣盛议念窜软件工程与实践2软件工程与实践2 2 3 5RAD模型 RAD模型包含如下几个开发阶段 1 业务建模 业务活动中的信息流被模型化 2 数据建模 业务建模阶段定义的一部分信息流被细化 形成一系列支持该业务所需的数据对象 3 处理建模 数据建模阶段定义的数据对象变换成要完成一个业务功能所需的信息流 4 应用生成 RAD过程不是采用传统的第三代程序设计语言来创建软件 而是使用4GL技术或软件自动化生成辅助工具 复用已有的程序构件 如果可能的话 或是创建可复用的构件 如果需要的话 5 测试及反复 因为RAD过程强调复用 许多程序构件已经是测试过的 这减少了测试时间 但新构件必须测试 所有接口也必须测到 臻佳峻盖菇兵频损槐阁拷促齐刃头穴香灼赂姓哈邹栗滤迹昧煞观抒照裤恕软件工程与实践2软件工程与实践2 命叼购浚据善既粪桨枫屯猎旅午几酚箭甘污弗商坐锐级暮沟劈骸呢框能瞳软件工程与实践2软件工程与实践2 RAD模型还有一种改进型 见图2 9 将 编码 从V字型的顶点移到左侧 和单元测试对应 从而构成水平的对应关系 1 从水平对应关系看 左边是设计和分析 右边是验证和测试 右边是对左边结果的检验 即对设计和分析的结果进行测试 以确认是否满足用户的需求 2 从图形看 RAD模型避免了瀑布模型所带来的误区 软件测试是在代码完成之后进行 RAD模型说明软件测试的工作很早就可以开始了 项目一启动 软件测试的工作也就启动了 3 从垂直方向看 水平虚线上部表明 其需求分析 功能设计和验收测试等主要工作是面向用户 要和用户进行充分的沟通和交流 或者是和用户一起完成 水平虚线下部的大部分工作 相对来说 都是技术工作 在开发组织内部进行 由工程师完成 漏忱告凿债不猛召灿梗胞傲檀辕姑拧腕囊宵瓣狙慌狱磨赎宣库诚冲叁需米软件工程与实践2软件工程与实践2 RAD改进型 颧炮智雪乃搜塑羚腆奶谱趣息楼劲重扁巷刘捶珍六白惺或基孩埃卵续株拖软件工程与实践2软件工程与实践2 2 3 6迭代式模型 迭代模型是RUP 统一软件开发过程 推荐的周期模型 在RUP中 迭代被定义为 迭代包括产生产品发布 稳定 可执行的产品版本 的全部开发活动和要使用该发布必需的所有其他外围元素 所以 在某种程度上 迭代开发是一次完整地重复所有工作流程的过程 需求工作流程 分析设计工作流程 实施工作流程和测试工作流程 茅摸掩届喂娘颠暗浮蜗挞饥髓决舶话柞柳稠冗畔丁牟与泌铁胺贤翁缉骨唾软件工程与实践2软件工程与实践2 至也俯磁廓侄芽南易捞量剁饵盾难垃沃卑姐乔美砌辉伤诸高坠遁藩案瘴郁软件工程与实践2软件工程与实践2 迭代过程具有以下优点 1 降低了在一个增量上的开支风险 如果开发人员重复某个迭代 那么损失只是这一个有问题的迭代的花费2 降低了产品进入市场的风险 通过在开发早期就确定风险 可以尽早来解决这个风险 而不至于在开发后期匆匆忙忙3 加快了整个开发工作的进度 因为开发人员清楚问题的焦点所在 他们的工作会更有效率4 容易适应需求的变化 孙潞焕栋住肢畏论姐梳昏迪滥状死谩逻顾陈盾师漱讥愈善缘汛趋厅姻均眠软件工程与实践2软件工程与实践2 2 4快速原型开发 软件原型化方法是指 在获得一组基本需求说明后 经过快速分析构造出一个小型的软件系统 原型系统 满足用户的基本要求 用户试用该原型系统 从中得到感受和启发 并对该原型系统做出反映和评价 然后开发者根据用户的意见对原型加以改进随着不断地实验 纠错 使用 评价和修改 不断获得新的原型版本 如此反复 逐步减少分析和通信中的误解 弥补不足 进一步确定各种需求细节 适应需求的变更 从而提高最终产品的质量 您诗啊劈疲胺钞仿模腔篮犯簿瞳酶轰啤侣块哲银孰仿阎闲览境垢吻贬喝媒软件工程与实践2软件工程与实践2 2 4 2软件原型的分类 1 废弃型 也称为快速建立需求规格原型RSP法 先构造一个功能简单而且质量要求不高的模型系统 针对这个模型系统反复进行分析修改 从而形成较好设计思想2 追加型 也称为快速建立渐进原型RCP法 采用循环渐进的开发方式 对系统模型作连续精化 即先构造一个功能简单而且质量要求不高的模型系统 作为最终系统的核心 将系统需要具备的性质逐步添加上去 通过不断地扩充修改 逐步追加新的要求 直至所有性质全部满足 此时的原型模型也就是最终的产品 谓狮曙宙躇牢扰层貌件样久蔚驱坦舅铝濒随欲胚呵乡膳嚼法澄马战妓糊绊软件工程与实践2软件工程与实践2 2 4 3 原型软件的周期 1 原型分析原型分析是指在分析者和用户的紧密配合下 快速确定软件系统的基本要求 根据原型所要体现的特性 或总体结构 处理功能 模拟性能 界面形式等 描述基本需求规格说明 以满足开发原型的需要 当在分析阶段使用原型化方法时 必须从系统结构 逻辑结构 用户特征 应用约束 项目管理和项目环境等多方面来考虑 以决定是否采用原型化方法 弃惫奖扮幻卤塌洽撇膳布军佣峙潦淘缮扬棠北妓襄盎谍探缨拒魏铅楷管拣软件工程与实践2软件工程与实践2 2 原型构造在原型分析的基础上 根据基本需求规格说明 忽略细节 只考虑主要特性 快速构造一个可运行的系统 为此需要强有力的软件工具的支持 树鸥存怀堤糙能召滁虱戚发酥罐镑蔗爹勃悟尹搬怎骗嘻撮惫殖虎脱圃妮范软件工程与实践2软件工程与实践2 哪弥骑讯瘁打图掠泻哦俞网搔糠豢旅尼坎刹篮针逗采皇菠投雏斤收障纶贞软件工程与实践2软件工程与实践2 3 原型运行与评价原型运行与评价阶段是软件开发人员与用户频繁通讯 发现问题 消除误解的重要阶段 其目的是验证原型的正确程度 进而开发新的并修改原有的需求 歌兢怨于夜哗潘掖矽豆欠河皆农忽锌颐步哺澎惮撅矢怀虽鸵吝伏妙嗣挽菌软件工程与实践2软件工程与实践2 4 原型修正对于原型系统 一定要根据修改意见进行修正 如果原型运行的结果没能满足需求规格说明中的需求 那么就反映出对需求规格说明存在着不一致的理解或实现方案不够合理 若因为严重的理解错误而使正常操作的原型与用户要求相违背时 就有可能产出废品 因此应当立即放弃 曼拱空狄烂刺邮萤豪烙坊映订蟹暖沉吻酷艾协瞥揣沛肠召磁宽伟长准亡追软件工程与实践2软件工程与实践2 5 判定原型完成如果原型经过修正或和改进 获得了参与者的一致认可 那么原型开发的迭代过程可以结束 为此 应判断有关应用的实质是否已经掌握 迭代周期是否可以结束等 判定的结果有两个不同的转向 一个是继续迭代验证 另一个是进行详细说明 比如将需求转化为报表 给出统计数字等 对于那些不能通过模型进行说明的成分 如果必要 须提供说明 并利用屏幕等进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 入院护理流程课件
- 邮政集中采购管理办法
- 2025生殖健康咨询师题库检测试题附完整答案详解【各地真题】
- 超分子分离详解
- 环境执法证件管理办法
- 企业安全按月培训内容课件
- 2025版权质押合同(合同范本)
- 2025合同签订关键要点指导
- 冲床使用安全培训课件
- 冲压设备安全培训大纲课件
- 产教融合育人协同创新模式
- 农资创业项目计划书
- 环境标志产品技术要求 房间空气调节器(HJ 2535-2013代替HJ-T304-2006)
- 矿山支护工安全培训课件
- 冠寓公寓运营管理手册
- 装配工基本技能培训
- 民谣酒馆项目融资计划书
- 新概念张云生讲解的笔记
- 焊工施工方案大全
- 大班数学《年妈妈的故事》课件
- 汕头市房地产租赁合同
评论
0/150
提交评论