一、6个最佳实践的有效部署
- 迭代的开发软件
- 需求管理
- 使用基于构件的体系结构
- 可视化软件建模
- 验证软件质量
- 控制软件变更
二、迭代模型图
三、初始阶段
初始阶段的目标是为系统建立商业案例和确定项目的边界。
为了达到该目的必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。它包括识别所有用例和描述一些重要的用例。商业案例包括验收规范、风险评估、所需资源估计、体现主要里程碑日期的阶段计划。
本阶段具有非常重要的意义,在这个阶段中,关注的是整个项目进行工程中的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来说,初始阶段的时间可能很短。
本阶段的主要目标如下:
- 明确软件系统的范围和边界条件,括从功能角度的前景分析、产品验收标准和哪些做与哪些不做的相关决定
- 明确区分系统的关键用例(Use-case) 和主要的功能场景
- 展现或者演示至少一种符合主要场景要求的候选软件体系结构
- 对整个项目做最初的项目成本和日程估计(更详细的估计将在随后的细化阶段中做出)
- 估计出潜在的风险(主要指各种不确定因素造成的潜在风险)
- 准备好项目的支持环境
初始阶段的产出是:
- 蓝图文档核心项目需求关键特色主要约束的总体蓝图
- 原始用例模型(完成10%~20%)
- 原始项目术语表(可能部分表达为业务模型)
- 原始商业案例,包括业务的上下文、验收规范(年度映射、市场认可等等),成本预计
- 原始的风险评估
- 一个或多个原型
里程碑:生命周期的目标
初始阶段结束时是第一个重要的里程碑:生命周期目标里程碑。初始阶段的评审标准:
- 风险承担者就范围定义成本日程估计达成共识
- 以客观的主要用例证实对需求的理解
- 成本/日程、优先级、风险和开发过程的可信度
- 被开发体系结构原型的深度和广度
- 实际开支与计划开支的比较
如果无法通过这些里程碑,则项目可能被取消或仔细地重新考虑。
四 细化阶段
细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。
为了达到该目的,必须对系统具有"英里宽和英寸深"的观察。体系结构的决策必须在理解整个系统的基础上作出:它的范围,主要功能和如性能等非功能性需求。
容易引起争论,细化阶段是四个阶段中最关键的阶段。该阶段结束时,硬"工程"可以认为已结束,项目则经历最后的审判日:决策是否项目提交给构建和交付阶段。对于大多数项目,这也相当于从移动的、轻松的、灵巧的、低风险的运作过渡到高成本、高风险并带有较大惯性的运作过程。而过程必须能容纳变化,细化阶段活动确保了结构、需求和计划是足够稳定的,风险被充分减轻,所以可以为开发结果预先决定成本和日程安排。概念上,其逼真程度一致于机构实行费用固定的构建阶段的必要程度。
在细化阶段,可执行的结构原形在一个或多个迭代过程中建立,依赖于项目的范围、规模、风险和先进程度。工作量必须至少处理初始阶段中识别的关键用例,关键用例典型揭示了项目主要技术的风险。通常我们的目标是一个由产品质量级别构件组成的可进化的原型,但这并不排除开发一个或多个探索性、可抛弃的原型来减少如:设计/需求折衷,构件可行性研究,或者给投资者、顾客即最终用户演示版本等特定的风险。
本阶段的主要目标如下:
- 确保软件结构、需求、计划足够稳定;确保项目风险已经降低到能够预计完成整个项目的成本和日程的程度。
- 针对项目的软件结构上的主要风险已经解决或处理完成。
- 通过完成软件结构上的主要场景建立软件体系结构的基线。
- 建立一个包含高质量组件的可演化的产品原型。
- 说明基线化的软件体系结构可以保障系统需求可以控制在合理的成本和时间范围内。
- 建立好产品的支持环境。
初始阶段的产出是:
- 用例模型(完成至少80%)-- 所有用例均被识别,大多数用例描述被开发
- 补充捕获非功能性要求和非关联于特定用例要求的需求
- 软件体系结构描述_可执行的软件原型
- 经修订过的风险清单和商业案例
- 总体项目的开发计划,包括纹理较粗糙的项目计划,显示迭代过程和对应的审核标准
- 指明被使用过程的更新过的开发用例
- 用户手册的初始版本(可选)
里程碑:生命周期的结构
细化阶段结束是第二个重要的里程碑:生命周期的结构里程碑。此刻,检验详细的系统目标
和范围、结构的选择以及主要风险的解决方案。主要的审核标准包括回答以下的问题:
- 产品的蓝图是否稳定?
- 体系结构是否稳定?
- 可执行的演示版是否显示风险要素已被处理和可靠的解决
- 构建阶段的计划是否足够详细和精确?是否被可靠的审核基础支持?
- 如果当前计划在现有的体系结构环境中被执行而开发出完整系统,是否所有的风险承担人同意该蓝图是可实现的?
- 实际的费用开支与计划开支是否可以接受?
如果无法通过这些里程碑,则项目可能被取消或仔细地重新考虑。
五 构建阶段
在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详尽的测试。
构建阶段,从某种意义上说,是重点在管理资源和控制运作以优化成本、日程、质量的生产过程。就这一点而言,管理的理念经历了初始阶段和细化阶段的智力资产开发到构建阶段和交付阶段可发布产品的过渡。
许多项目规模大的足够产生许多平行的增量构建过程,这些平行的活动可以极大地加速版本发布的有效性;同时也增加了资源管理和工作流同步的复杂性。健壮的体系结构和易于理解的计划是高度关联的。换言之,体系结构上关键的质量是构建的容易程度。这也是在细化阶段平衡的体系结构和计划被强调的原因。
本阶段的主要目标如下:
- 通过优化资源和避免不必要的返工达到开发成本的最小化
- 根据实际需要达到适当的质量目标
- 据实际需要形成各个版本(Alpha,Beta,and other test release)
- 对所有必须的功能完成分析、设计、开发和测试工作
- 采用循环渐进的方式开发出一个可以提交给最终用户的完整产品
- 确定软件站点用户都为产品的最终部署做好了相关准备
- 达成一定程度上的并行开发机制
构建阶段的产出是可以交付给最终用户的产品。它最小包括:
里程碑:初始运作能力
创建阶段结束是第三个重要的项目里程碑(初始功能里程碑)。此刻,决定是否软件、环境、用户可以运作而不会将项目暴露在高度风险下。该版本也常被称为"beta"版。
构建阶段主要的审核标准包括回答以下的问题:
- 产品是否足够稳定和成熟得发布给用户?
- 是否所有的风险承担人准备好向用户移交?
- 实际费用与计划费用的比较是否仍可被接受?
如果无法通过这些里程碑,则移交不得不被延迟。
六 交付阶段
交付阶段的目的是将软件产品交付给用户群体。
只要产品发布给最终用户,问题常常就会出现:要求开发新版本,纠正问题或完成被延迟的问题。
当基线成熟得足够发布到最终用户时,就进入了交付阶段。其典型要求一些可用的系统子集被开发到可接收的质量级别及用户文档可供使用,从而交付给用户的所有部分均可以有正面的效果。这包括:
- 对照用户期望值,验证新系统的"beta测试"
- 与被替代的已有系统并轨
- 功能性数据库的转换
- 向市场、部署、销售团队移交产品
构建阶段关注于向用户提交产品的活动。典型的,该阶段包括若干重复过程,包括 beba 版本、通用版本、bug 修补版和增强版。相当大的工作量消耗在开发面向用户的文档,培训用户。在初始产品使用时,支持用户并处理用户的反馈。开发生命周期的该点,用户反馈主要限定在产品性能调整、配置、安装和使用问题。
本阶段的目标是确保软件产品可以提交给最终用户。本阶段根据实际需要可以分为几个循环。本阶段的具体目标如下:
- 进行 Beta 测试以期达到最终用户的需要
- 进行 Beta 测试和旧系统的并轨
- 转换功能数据库
- 对最终用户和产品支持人员的培训
- 提交给市场和产品销售部门
- 和具体部署相关的工程活动
- 协调 Bug 修订/改进性能和可用性(Usability)等工作
- 基于完整的 Vision 和产品验收标准对最终部署做出评估
- 达到用户要求的满意度
- 达成各风险承担人对产品部署基线已经完成的共识
- 达成各风险承担人对产品部署符合 Vision 中标准的共识
该阶段依照产品的类型,可能从非常简单到极端复杂的范围内变化。例如,现有的桌面产品的新版本可能非常简单,而替代国际机场的流量系统会非常复杂。
里程碑:产品发布
在交付阶段的终点是第四个重要的项目里程碑,产品发布里程碑。此时,决定是否目标已达到或开始另一个周期。在许多情况下,里程碑会与下一个周期的初始阶段相重叠。
发布阶段的审核标准主要包括以下两个问题:
- 用户是否满意?
- 实际费用与计划费用的比较是否仍可被接受?
分享到:
相关推荐
在软件开发过程中,软件工程是一门至关重要的学科,它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试和维护。这个压缩包文件似乎包含了一份关于软件工程的课后习题答案,以及可能与电子技术基础相关...
软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源...
软件工程发展史 软件工程是指为了提高软件质量、降低成本、提高生产效率、降低维护难度的一门工程学科。软件工程的发展经历了漫长的过程,从软件的诞生到现在的发展趋势。下面是软件工程发展的主要阶段: 第一阶段...
《实用软件工程课后习题答案》涉及到的核心知识点主要集中在软件工程的基本概念、软件危机的定义及克服策略、软件开发过程及其文档管理、软件工程的研究内容以及软件工程的基本原理上。 1. **软件危机**:软件危机...
软件工程课程设计 软件工程课程设计是软件工程专业学生的一门重要课程,旨在培养学生设计、开发和测试软件系统的能力。本文档旨在介绍软件工程课程设计的基本概念、方法和技术。 1. 绪论 软件工程课程设计是一个...
软件工程PDF课件 01_SEIntro软件工程概述.pdf 软件工程PDF课件 02_Process软件过程.pdf 软件工程PDF课件 03_Management软件项目管理.pdf 软件工程PDF课件 04_Requirement需求工程.pdf 软件工程PDF课件 05_OOIntro...
作者编著的枟软件工程导论枠被国内许多高校选作软件工程课的教材,累计销售约70 万册。为配合 读者学习软件工程,作者又精心编写了这本学习辅导书。 本书正文共10 章,每章由三部分内容组成:第一部分系统扼要地...
JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码...
《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介 第一章 面向对象软件工程的范畴 第二章 ...
《软件工程》是一本由电子科技大学的黄迪明教授主审、许家珆教授主编的专业教材,它全面地涵盖了软件开发的各个阶段和关键环节,是学习软件工程理论与实践的重要参考资料。这本书的章节结构严谨,内容丰富,旨在帮助...
软件工程课程设计 软件工程课程设计是计算机科学相关专业《软件工程》课程的后继教学环节,是一个重要的、不可或缺的实践环节。其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件...
### 软件工程设计案例相关知识点 #### 一、软件工程的历史背景与发展历程 - **背景**: 20世纪60年代,随着高级语言的普及,计算机的应用领域迅速扩大,导致对软件系统的需求激增。然而,当时的软件开发方式无法...
《软件工程深度剖析》 软件工程是一门涵盖了软件开发全生命周期的学科,旨在通过系统化、规范化的流程来提高软件质量、效率以及可维护性。本资料“软件工程课件.rar”提供了关于软件工程的全面讲解,以PPT的形式共...
软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+...
1、软件工程实习报告-8000字.doc 2、软件工程实习手册-7000字-日志+总结.doc 3、软件工程实习周记-11周-4500字.doc 4、软件工程实训总结-5300字.docx 5、软件工程专业实习报告-精选.docx 6、软件技术实习报告10篇....
软件工程课程设计管理系统 软件工程课程设计管理系统是指一种用于管理软件工程课程设计的系统,旨在帮助学生、教师和管理者更好地管理和跟踪软件工程课程设计的各个阶段。该系统涉及到软件工程课程设计的各个方面,...
软件工程专业课资料 PPT 非常详细 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的 软件工程知识体系全景图 软件工程知识体系全景图 [1] 和高质量的软件的学科。它涉及到程序设计语言,数据库,软件...
《集美大学软件工程2010-2011学年期末《软件工程》试卷解析》 在软件工程的学习过程中,期末试卷是检验学生理论知识与实践技能的重要手段。集美大学软件工程专业的期末试卷,无疑是对学生们一学期学习成果的全面...
整理好的所有的软件工程导论资料,从课件到期末的复习题以及小组大项目;简称软件工程导论全家桶; 1.日常学习课件 2.软件工程大项目(很全),可直接进行给展示以及项目说明书等等 3.软件工程所有雨课堂的整理好的...