软件工程教案--第2章 软件过程2016.ppt

  1. 1、本文档共81页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程教案--第2章 软件过程2016

优势: 可以减少风险 可以使团队生产效率更高 是知识传播的最好途径 可以打造出最佳的合作团队。 可以生成更好的代码 三个方面的应用: 教育学结对学习 工业界结对开发与编程 分布式结对编程环境 2.4 敏捷过程-结对编程(自学) * 教育学研究 结对编程学习效果研究 结对双方的相容性研究 结对编程过程研究 软件工业界 结对编程实践方式 社会动力学研究 个人编程能力的增强 分布式结对编程 结对编程开发环境研究 开发结对编程工具的需求 适合开展分布式结对编程的工具研究 2.4 敏捷过程-结对编程研究(自学) * 结对编程与测试驱动开发 测试驱动开发(Test Driven Development,TDD) 思想:开发之前首先完成测试用例编写;然后编写代码和测试;测试通过后即需增加新功能。 优势: 测试优先,保证质量 结合结对编程 * 结对编程与代码重构 重构就是代码的重新设计。 目的: 得到好的代码和架构,易修改、易理解 适应需求 结对编程: 审查代码 理解代码 反馈 * 结对编程与简单设计 简单设计:达到目前需求即可 结对编程可以达到简单 * 结对编程方法 面对面结对编程 分布式结对编程 * 自适应软件开发(Adaptive Software Development)由吉姆·海史密斯(Jim Highsmith)提出,着眼于人员协作和团队自我组织,类似于收集人们创意的容器。 生命周期三个阶段包括: 思考:启动项目并完成自适应循环计划 协作:沟通与信任 学习:改进真正的理解水平,通过焦点组、正式技术评审和事后剖析方式进行学习 2.4 敏捷过程-自适应软件开发(自学) * 动态系统开发(Dynamic System Development Method)是一种使用增量原型开发模式完全满足对时间约束的系统构建和维护的敏捷软件开发方法。 借用Pareto(佩瑞多)原则:即如果交付整个应用系统需用100%时间,那么80%的应用系统可以用20%的时间交付 建议使用迭代软件过程 动态系统开发生命周期的敏捷过程模型: 可行性研究 业务研究 功能模型迭代 设计和构建迭代 实现 2.4 敏捷过程-动态系开发(自学) * 特征驱动开发(Feature-Driven development)把软件开发项目作为一个系统,即生产软件的系统 定义六种关键项目角色: 项目经理:负责报告进度情况、管理预算、筹措人员,以及管理设备、办公场地和资源等 主设计师:负责系统的整体设计 开发经理:负责领导日常开发活动,解决主程序员们自己无法解决的日常的资源冲突问题。 主程序员:参与高层的需求分析和设计活动,领导3-6人开发小组负责新软件特征的底层分析、设计和开发工具。 类的所有者:是主程序员领导的开发小组的成员,对新软件系统所需要的特征进行设计、编码、测试和编写文档。 领域专家:是客户、用户、业主、业务分析专家或者所有这些的混合。 2.4 敏捷过程-特征驱动开发(自学) * 软件工程实践的精髓是理解问题、计划解决方案、实施计划和检查结果的精确度等方面 通用的框架活动包括: 沟通 计划 建模 部署 普适性活动 实践就是人们改造社会和自然的、有意识的活动。实践是人类自觉自我的一切行为(马克思)。实践的目的是以改造世界为、以满足客观需要。 工程实践就是指将人们所学知识用于实际工程项目的系列实践活动的总称。 需求产生 可行性分析 需求分析 形成计划 建立模型 软件部署 普适性活动 2.5 软件过程实践 * 设计-1:就是按照任务的目的、要求,预先确定的工作方案、工作计划、工作步骤等。 设计-2:就是一种有目地的创作行为。 设计-3:就是成功经验的应用过程。 近义词:创作。 设计是一种职业。比如建筑设计师、数据库设计师、人机界面设计师等。 分析:就是将事物、现象、概念分类,剖析出本质及其内在联系。是把整体分解为部分以加以认识的过程。 近义词:区分。 分析也是一种职业。比如药剂分析师、软件系统设计师、经济分析师等。 实施:就是实际的施行。 近义词:实践。 2.5 软件过程实践-几个关键性的概念 * 发生 发展 灭亡 传统工业过程视角下的软件过程——瀑布模型 * 划分阶段:对整个软件开发过程按实施任务不同而划分成不同阶段; 分配任务:每个阶段包括的具体任务; 人员分工:明确各个阶段、不同任务中各自职责; 过程控制:明确每个任务的质量标准、经费预算、进度安排等; 技术与工具:确定开发所需要的技术及其工具和选择开发方法——如面向对象法、C#与JAVA计算机语言。 优点:思路清晰、任务明确、分工清楚、控制方便、风险较小。因此,适合于大中型软件开发任务。 缺点:阶段多、周期长、工作量大、成本高,需求/目标难以预先定义。 2.5 软件过程实践-瀑布模型的基本特点 * 核心原则 存

文档评论(0)

ah82299 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档