软件开发规范与开发流程实施

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

测试
• 按测试发生的顺序划分
– 模块测试:是对单个软件模块的测试 – 单元测试:是对各个软件功能单元的测试 – 组装测试:是对各软件单元之间的互联测试 – 集成测试:是对硬件装置、设备和软件的加入性测
试 – 系统测试:项目组所在部门组织的对完成集成的系
统的测试(是否满足产品规格要) – 压力测试:是对软件的整体经受超大访问量压力下
证问题
• 软件产品质量特性:满足需求能力的一系列 特性总和
– 功能、可靠性、易用性、效率、维护性、可移植性
• 软件管理必须在市场(用户)需求和软件成熟性 之间进行权衡
软件生命周期过程
• 确定需求 • 开发规划 • 需求分析 • 概要设计 • 详细设计 • 编码与调试 • 测试
• 软件集成、联调 • 内部确认
满足需求能力的一系列特性总和软件管理必须在市场用户需求和软件成熟性之间进行权衡确定外部用户需求上级下达的软件开发课题本单位根据市场需要确定的开发课题用户合同要求的软件开发任务输出可行性分析报告技术经济社会可行性风险对策合同及评审记录确定项目开发的技术路线开发的出发基线对现有产品的复用委托开发确定应遵循的标准法律和法规确定各阶段的输入和输出文件认点及其实施的责任人实施方式等确定开发人员并分配职责提出开发所需资源软件硬件开发环境及工具软件设备资金等要求并予以落实制定配置管理计划和质量保证计划输出策划报告开发项目实施计划配置管理计划质量保证计划等确保项目的开发符合用户的需求可测试性确定设计输入任务委托书招标书前期对用户的需求调研资料可行性分析报告投标书合同等确保产品的总体结构和模块间的关系与用户需求的一致性内容总体方案设计逻辑框图接口及通讯协议选用现有产品软件的选用边界约束条件的设计运行环境设计等输出概要设计说明书详细设计说明书与概要设计说明书是否相一致内容原型设计可选算法设计数据格式设计实现流程设计人机界面设计测试用例设计操作设计等输出详细设计说明书软件组装计划测试计划及测试用安装手册初稿使用说明书初稿产品标准初稿内容编写程序代码
统一软件开发过程
• 用例驱动
– 用例:能向用户提供有价值的系统的 某种功能
• 以架构为中心
– 软件架构:系统的最重要的静态和 动态特征
• 迭代和增量式
– 迭代:工作流程的重复、每次的活 动都以上次的活动为基础
用例驱动
• 用户所希望和需要的是什么 • 系统能为每个用户提供什么功能 • 用例所描述和代表的是用户与系
软件开发规范 &
开发流程实施
中山市森创公司
软件开发
• 什么是软件项目
– 完成特定目的、符合用户特定需求 的软件所需的组织结构和过程、规 范的集合
• 软件项目的实施
– 需要周密的部署,合理的规章制度 ,符合项目的路线(软件过程), 良好的项目管理和人员安排。
相关流程
• 软件管理特点 • 软件生命周期过程
开发规划
• 确定开发目标 • 确定项目开发的技
术路线(开发的出发 基线、对现有产品 的复用、委托开发 等) • 确定应遵循的标准 、法律和法规 • 选任开发项目经理 • 划分开发阶段 • 确定各阶段的输入 和输出文件
• 确定质量控制点(评 审点、验证点和确 认点)及其实施的责 任人、实施方式等
• 设计项目开发进度 • 确定开发人员并分
Maturity Model For Software ,简称 SW-CMM/CMMI),是由美国卡内基梅隆 大学软件工程研究所(CMU SEI)研究出 的一种用于评价软件承包商能力并帮 助改善软件质量的方法,其目的是帮 助软件企业对软件工程过程进行管理 和改进,增强开发与改进能力,从而 能按时地、不超预算地开发出高质量 的软件。
• 3)开发规范作为最终开发产品代码的检测标准,通过对最终 产品代码的再次检测,来保证代码的规范性,可维护性。
• 开发规范作为开发中的检测标准,来约束开发人员的开发行 为,达到在团队内部提高开发质量和减少开发成本的作用。
软件开发规范
• 开发规范的要求
• 1)制定开发时要求对于要求的内容必须语义清晰, 确保所制定的内容不会有歧义发生。
Capability Maturity Model 软件能力成熟度模型
• 迄今为止学术界和工业界公认的有关软件工 程和管理实践的最好的评价模型。
• 为评估软件组织的生产能力提供了标准。
• 为提高软件组织的生产过程指明了方向。
CMM五级
软件开发模型
软件开发模型
瀑布模型 螺旋模型 变换模型 喷泉模型 智能模型 增量模型 WINWIN模型 原型实现模型 RAD模型 并发开发模型
– 外审: 由ISO审查小组派专员到企业中,对企业的软件开发过 程进行审查(只要审核各个流程生成的相关文档是否齐备,符 合规范等。还有能软、硬件设施和人员也有一定的要求)。 ISO审查专员需要具备ISO9000外审员资格证书。
ISO9001 & CMM
• 什么是C
统交互的一个过程,而这个过程 满足了用户的某些需求 • 所强调的是系统的功能
以架构为中心
• 刻画了系统的整体设计,忽略了细节 设计,刻画最重要的部分。
• 什么是最重要的呢?依赖于判断。判 断的依据是经验。
• 构架的设计价值取决于执行该任务的 人的素质
• 受用户需求(用户可能会增加那方面 的需求)、软件应用平台(计算机硬 件、操作系统、数据库、网络等)、 实施问题、遗留系统集成等的影响
能否保证安全、正确运行的测试 – 确认测试:单位质量控制部门进行的测试(是否满
足产品规格要求) – 验收测试:在现场安装、调试结束并经试运行后,
与顾客一起,就满足合同情况进行的测试(是否满 足合同要求)
ISO9001 &
CMM
ISO9001 & CMM
• 什么是ISO9001?
• ISO9001是ISO9000族标准所包括的一组质量管理体系核心 标准之一。ISO9000族标准是国际标准化组织(ISO)在 1994年提出的概念,是指“由ISO/TC176(国际标准化组织 质量管理和质量保证技术委员会)制定的国际标准。
• 软件产品的特点
– 软件产品的质量,完全取决于其设计和开发水平 – 软件需求的模糊性、变化性使软件产品难以成熟 – 任何一个软件产品,或多或少总会存在一些故障
(BUG) – 软件人员广泛存在的不规范的开发习惯使开发过程
难以管理 – 软件质量指标难以量化 – 软件测试理论和技术尚未解决软件产品正确性的验
– 确定需求 – 开发规划 – 需求分析 – 概要设计 – 详细设计 – 编码与调试 – 测试 – 软件集成、联调 – 内部确认 – 复制、交付、安装 – 试运行、用户验收 – 运行、维护 – 退役
• 软件管理 – 配置与变更管理 – 环境、工具和技术 – 有关软件的法规和标准 – 周密策划以保证
软件管理特点
能太少 – 每次迭代要有规范的检查机制
• 增量式
– 每次迭代增加一部分设计和实现
统一软件开发过程 & 敏捷开发
• 什么是敏捷开发?
• 2001年,为了解决许多公司的软件团队陷入 不断增长的过程泥潭,一批业界专家一起概 括出了一些可以让软件开发团队具有快速工 作、响应变化能力的价值观和 原则,他们称 自己为敏捷联盟。敏捷开发过程的方法很多 ,主要有:SCRUM,Crystal,特征驱动软件开 发(Feature Driven Development,简称FDD ),自适应软件开发(Adaptive Software Development,简称ASD),以及最重要的极限 编程(eXtreme Programming,简称XP)。极限 编程(XP)是于1998年由Smalltalk社群中的大 师级人物Kent Beck首先倡导的。
用例和架构
• 用例是系统的功能和外衣 • 架构是系统的内在形式 • 两方面必须并行进化 • 架构只考虑核心功能(5-10%) • 架构设计原则:
– 先考虑与用例无关的不会变动的方 面考虑
– 考虑最重要的功能需求子集
迭代和增量式
• 控制迭代过程,划分每次迭代的目标 • 迭代原则:
– 架构上先实现最粗略的部分 – 功能上先实现最重要的 – 每次迭代尽可能的划分的细,迭代数量不
• 复制、交付、安 装
• 试运行、用户验 收
• 运行、维护 • 退役
确定需求
• 确定外部用户需求
–上级下达的软件开发课题 –本单位根据市场需要确定的开发课题 –用户合同要求的软件开发任务
• 输出
–可行性分析报告
• 技术、经济、社会可行性,风险对策
–合同及评审记录
• 产品要求得到规定和满足 • 单位有能力满足规定的要求
详细设计
• 详细设计说明书与 概要设计说明书是 否相一致
• 内容
– 原型设计(可选) – 算法设计 – 数据格式设计 – 实现流程设计 – 人机界面设计 – 测试用例设计 – 操作设计等
• 输出
– 详细设计说明书 – 软件组装计划 –测试计划及测试用
例 – 安装手册(初稿) – 使用说明书(初稿) – 产品标准(初稿)
敏捷开发的特征
• 轻量级的开发过程 • 基于时间 • Just Enough • 并行 • 基于组件的软件工程
敏捷开发过程
• 软件的需求是难以预期的,开发方法必需适 应变化的需求,在快速的迭代中不断改进
• 小组成员并不完全按照完整的方法进行开发 ,而
• 根据具体问题和情况,灵活地去除非增值活 动
编码与调试
• 内容
–编写程序代码:源代码→目标代码→可执 行代码
–此阶段还包括部分软件模块的局部测试、 集成与联调
–根据待开发软件的规模、控制点及人员安 排,可细分为多个小阶段
• 输出
–软件(源代码、目标代码、可执行代码及 相关数据文件)
–文档(帮助文件等)
• 遵循《编码规范》,保证编码风格的 一致性,易读性;增强软件源码的可 维护性
敏捷开发
• 快速适应系统需求的变化 • 提高软件生产率 • 突出企业自身特点,体现企业核
心能力 • 支持动态联盟和虚拟组织 • 面向业务目标持续改进和重组
敏捷软件开发宣言
• 个体和交互 胜过 过程和工具 • 可以工作的软件 胜过 面面俱到的
文档 • 客户合作 胜过 合同谈判 • 响应变化 胜过 遵循计划
统一软件开发过程 & 敏捷开发
统一软件开发过程 & 敏捷开发
• 什么是统一软件开发过程?
• RUP(Rational Unified Process,统一软 件开发过程,统一软件过程)是一个面向对象 且基于网络的程序开发方法论。根据 Rational(Rational Rose和统一建模语言的 开发者)的说法,好像一个在线的指导者,它 可以为所有方面和层次的程序开发提供指导 方针,模版以及事例支持。 RUP和类似的产 品--例如面向对象的软件过程(OOSP),以 及OPEN Process都是理解性的软件工程工 具--把开发中面向过程的方面(例如定义的阶 段,技术和实践)和其他开发的组件(例如 文档,模型,手册以及代码等等)整合在一 个统一的框架内。
• ISO9001质量管理体系不是专门针对软件开发的,还可以实 施到其它行业比如生产、教育等。
• ISO9001质量管理体系在软件开发中,对软件开发过程进行 严格的质量控制。这个过程需要由企业本身和ISO审查小组 联合进行质量控制,分为内审和外审。
– 内审:由企业内部成立一个专门的质量控制小组(需经过培训 ),参与到软件开发的整个流程(从立项到产品交付)的文档 审查和质量控制中。
(FDD) • Crystal Family • Rational RUP & UML
软件开发规范
软件开发规范
• 开发规范的作用
• 1)开发规范作用于团队开发内部,保证不同的开发人员在 工作环境设定,代码开发规范以及日常开发的行为能够达到 共通的要求。
• 2)开发规范用于开发的各个阶段,保证开发中的各个问题 能够按照开发制定的标准进行处理(比如:代码管理,版本 冲突,代码命名规范等等)。
• 2)对于开发中说明性的内容,以图片说明为主,减 少文字性的描述。
• 3)对于开发规范避免在项目开发后发生对代码命名 ,代码逻辑分层等部分内容的变更。
• 4)如果开发规范发生变更,确保项目团队内部所有 的人员都按照最新的开发标准进行开发。
• 5)对于开发规范也要求进行版本管理。
开发规范的内容(一)
配职责 • 提出开发所需资源(
软件、硬件开发环 境及工具软件、设 备、资金等)要求并 予以落实 • 制定配置管理计划 和质量保证计划
开发规划(续)
• 输出
–策划报告 –开发项目实施计划 –配置管理计划 –质量保证计划等
需求分析
• 确保项目的开发符合用户的需求( 可测试性)
• 确定设计输入
–任务委托书/招标书 –前期对用户的需求调研资料 –可行性分析报告/投标书 –合同等
• 仅仅执行一些必须的活动,使用必须的规则 ,编
• 写必须的文档 • 人的因素被放在第一 • 适合互联网时代的开发要求
主要敏捷开发方法
• eXtreme Programming (XP) • SCRUM • DSDM • Adaptive Software Development
(ASD) • Feature Driven Development
• 编制内部需求规格(说明)书 • 需求变更控制
需求的层次
• 业务需求、用户需求和功能需求
概要设计
• 确保产品的总体结构和模块间的关系 与用户需求的一致性
• 内容
–总体方案设计 –逻辑框图 –接口及通讯协议选用 –现有产品软件的选用 –边界(约束)条件的设计 –运行环境设计等
• 输出
–概要设计说明书
• 1)开发平台的约定 • a)开发操作系统环境和最总用户使
相关文档
最新文档