《软件工程实践》PPT课件.ppt_第1页
《软件工程实践》PPT课件.ppt_第2页
《软件工程实践》PPT课件.ppt_第3页
《软件工程实践》PPT课件.ppt_第4页
《软件工程实践》PPT课件.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程实践,软件学院 高海昌 ,2,内容,1. 概述 2. 软件过程和生命周期 3. 项目管理 4. 需求工程 5. 软件设计 6. 软件实现 7. 软件测试 8. 软件交付,3,软件开发过程,IEEE给过程下的定义:过程描述了针对一个给定目标的一系列操作步骤,操作步骤说明有哪些操作以及按照何种方式来执行操作。 软件开发过程应该明确定义以下元素: (1) 过程中所执行的活动及其顺序关系。 (2) 每一个活动的内容和步骤。 (3) 团队人员的工作和职责,4,软件开发过程,软件开发一共包括七个过程: 获取过程 供应过程 开发过程 操作过程 维护过程 管理过程 支持过程,5,软件开发过程模型,常见的软件开发过程模型包括: 瀑布模型 快速原型模型 增量模型 迭代模型 螺旋模型 RUP (Rational Unified Process),6,瀑布模型,要求软件项目的开发严格按照软件生命周期的方式进行 特点: 分阶段 阶段间有因果关系 评审 允许反馈,7,瀑布模型,优点: 严格规范软件开发过程,克服了非结构化的编码和修改过程的缺点 强调文档的作用,要求每个阶段都要仔细验证 缺点: 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,中间提出的变更要求很难响应 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果,8,快速原型模型,允许在需求分析阶段对软件的需求进行初步的分析和定义,9,快速原型模型,优点: 不需要需求预先完备定义 支持用户参与软件项目的开发过程 缺点: 需要多次迭代,无法预知次数,给项目管理带来困难 快速建立起来的系统结构加上连续的修改可能会导致产品质量低下,10,增量模型,与瀑布模型类似,但软件系统是被增量式地一块块开发的,11,增量模型,优点: 各模块可以并行开发 较好地适应需求的变化,用户可以不断地看到所开发软件的可运行中间版本 重要功能被首先交付,从而使其得到最多的测试 缺点: 容易退化为边做边改的方式,从而使软件过程的控制失去整体性,12,迭代模型,通过多次逐步的迭代,建立软件系统,每次迭代都是一个相对独立的软件过程,13,迭代模型,优点: 能够较好地适应需求难以确定、不断变更的软件系统的开发 缺点: 迭代次数难以事先确定,增加了过程管理的复杂度,14,螺旋模型,结合了瀑布模型、快速原型模型和迭代模型的思想,并引入了风险分析活动。 每个循环迭代都包含4个阶段: 制定计划 风险分析 设计实施 用户反馈,15,螺旋模型,优点: 以风险驱动开发过程,强调可选方案和约束条件从而支持软件的重用 关注于早期错误的消除,将软件质量作为特殊目标融入产品开发之中 缺点: 要求许多客户接受和相信风险分析并做出相关反应是不容易的,往往适应于内部的大规模软件开发 需要软件开发人员具备风险分析和评估的经验,否则将会带来更大的风险,16,RUP模型,RUP (Rational Unified Process)统一软件过程。 由 Ivar Jacobson的 The Objectory Approach 和 The Rational Approach 发展而来,是一个文档化的软件工程产品,所有RUP 的实施细节及方法导引均以Web文档的方式呈现。 RUP又是一套软件工程方法框架,各个组织可根据自身的实际情况,以及项目规模对RUP进行裁剪和修改,以制定出合乎需要的软件工程过程。,17,RUP模型,在RUP中,软件开发生生命周期根据时间和RUP的核心工作流划分为二维空间。,时间维从组织管理的角度描述整个软件开发生命周期,是RUP的动态组成部分。 核心工作流从技术角度描述RUP的静态组成部分。,18,RUP模型,RUP有九个核心的工作流: 业务建模(Business Modeling):理解待开发系统的组织结构及其业务运作,确保所有参与人员对待开发系统有共同的认识 需求分析(Requirements):定义系统功能及用户界面,使客户知道系统的功能,开发人员知道系统的需求,为项目预算及计划提供基础。 分析与设计(Analysis and Design):把需求分析的结果转化为实现规格。 实现(Implementation):定义代码的组织结构、实现代码、单元测试、系统集成。 测试(Test):校验各自子系统的交互与集成。确保所有的需求被正确实现并在系统发布前发现错误。 发布(Deployment):打包、分发、安装软件,升级旧系统;培训用户及销售人员,并提供技术支持。制定并实施beta测试。 配置管理(Configuration and Change Management):跟踪并维护系统所有产品s的完整性和一致性。 项目管理(Project Management):为计划、执行和监控软件开发项目提供可行性的指导;为风险管理提供框架。 环境(Environment):为组织提供过程管理和工具的支持。,19,RUP模型,在时间维上,为了能够方便地管理软件开发过程,监控软件开发状态,RUP把软件开发周期划分为若干Cycles,每个Cycle生成一个产品的新的版本。每个Cycle都依次由四个连续的阶段(phase)组成: 起始阶段(Inception):定义最终产品视图、商业模型并确定系统范围。 演化阶段(evaluation):设计及确定系统的体系结构,制定工作计划及资源要求。 构造阶段(construction):构造产品并继续演进需求、体系结构、计划直至产品提交。 提交阶段(Transition ):把产品提交给用户使用。,20,RUP模型特点,具有迭代式的增量开发、使用实例驱动、 以软件体系结构为核心三个鲜明特点,这使得RUP非常适宜于开发复杂、技术难度大、需求多变、高风险的项目。 又是可裁剪的软件开发过程框架,各组织可以根据自身及项目特点对RUP进行裁减,在某些情况下RUP甚至可以蜕化为瀑布式开发模型。,21,各种软件过程模型的特点,22,定义软件过程,在实施软件项目之前,必须定义或者选择一个适合于该软件项目的软件过程,23,步骤1,选择合适的软件过程模型,需要考虑: 软件开发组织和软件项目的特征 软件项目的风险 软件项目是否需要预先向用户展示原型 需要多少经验和技巧来成功地使用软件过程模型 软件开发组织和软件项目组人员的经验和能力 技术的成熟度,24,步骤2,确定和描述软件开发活动,需要从以下几个方面予以定义和描述: 名称:说明软件开发活动的名称 任务:说明该软件开发活动的任务 输入:说明实施该活动所必需的输入u,即开展活动所需满足的前提条件 输出:说明该活动实施完成之后所产生的结果 实施:说明如何实施该活动,25,步骤,确定和描述软件开发活动间的关系: 执行时序关系:描述软件开发活动之间执行时间的先后关系 逻辑依赖关系:一个软件开发活动的执行需要其他软件开发活动实施所产生的结果,26,步骤,文档化软件过程 全面:包含软件项目开发所需要的所有软件活动 可操作:各个软件开发活动应易于实施 简洁、易于理解:不包含无意义的软件开发活动,描述简洁,易于理解 易于改进:能够不断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论