在本章中,你能够学到:
- 软件开发过程中的问题
- 解决软件开发过程通常问题的六个软件工程实践
- 软件工程过程为软件工程实践提供的支持
软件开发问题的症状:
- 用户或者业务需求没有被满足
- 需求的混杂
- 系统模块无法集成
- 系统很难维护
- 较晚的发现系统的缺陷
- 不好的质量或者不好的用户体验
- 不好的负载性能
- 非并行的团队工作
- 构建和发布版本的问题
软件工程的六个实践:
- 迭代开发
- 管理需求
- 基于组件的构架
- 可视化建模
- 持续的质量验证
- 管理变更
注释:迭代开发
迭代开发与瀑布型的开发方法不同,它将软件开发的过程划分为多个迭代,每个迭代都会生成一个反映系统某一部分的构建版本,到最后一个迭代时,整个系统的完全被实现。
每一个迭代都关注在某些需求集得识别、定义和分析上,并且基于这些需求的理解来设计、构建和测试软件。
瀑布型开发的特点
:
瀑布型的开发从概念上讲是简单的,因为它只产生一个单一的交付产物,。这个开发方法的基本问题是它将风险的识别推迟到项目的后期,这样将会使出来风险的成本非常高
风险的分析
迭代开发首先产生系统的构架,允许集成作为设计阶段的“验证活动”,并且允许在项目的更早时期发现并解决设计的缺陷。贯穿于整个项目的持续的集成代替了在项目末期的一次性的重大集成。
管理需求:
管理需求包括将软件涉众的要求转换为关键涉众的需求和系统特性的集合。这些集合随后将被细化成为功能和非功能的需求说明。详细的说明被转化为设计、用户文档和测试。
对软件来说,需求是测试的关键输入。
用例概念
用例是一种以关注最终用户目标的角度定义需求的技术。他们在迭代式开发过程中被广泛的使用。例如RUP
参与者:不是系统的一部分、它代表了与系统交互的最终用户或者外部系统的角色。
------能够与系统交换信息
-------能够被动的 接收信息
====能够是信息的提供者
能够代表人、机器或者其他系统
用例: 说明了参与者与系统的对话
被一个参与者发起,调用系统的某个功能
是有意义的、流程相关的事件的集合;
产生有观察价值的结果。。
实践三:基于组件的架构
软件架构是一个软件开发的产品,它能够在质量、时间进度和成本上提供最大限度的投资回报。
该过程在全力以赴开发之前,关注于早期的开发和健壮可执行体系结构的基线。它描述了如何设计灵活的,可容纳修改的,直观便于理解的,并且促进有效软件重用的弹性结构。
有弹性的基于组件的架构
满足当前和未来的需求
改进扩展性
增强重用
封装系统依赖
重用或者定制组件
从商业上得到的组件选择
增量式的进化已存在的软件
基于组件的架构的目地:
- 促进软件的重用
- 软件重用的级别
- 基于组件的架构可以促进项目的管理
实践四:可视化的建模UML
开发过程显示了对软件如何显示可视化建模,捕获体系结构和行为。
为什么要可视化建模呢?
捕获结构和行为
显示系统元素如何结合在一起
适当的隐藏或者展示细节
为所有的软件从业者提供一种语言
实践五:持续的质量验证
达到质量不仅仅是简单的“满足需求”或者生成满足用户需要和期望的产品。质量也包括确定测量方法和质量标准,也包括确保结构产品能够达到适当的质量要求的过程实现。
软件模型:
UML能够被用于产生代表软件系统不同方面和视图的一系列的模型。几个模型是对于完整的描述系统是非常有用的,不同的软件活动会产生这些模型。每个模型都是被多次的增量迭代开发出来的。
- 业务模型是代表什么样的业务过程和业务环境的模型。它主要被用来获得在业务环境下对软件需求的更好的理解
- 用例模型是表示外部用户与系统交互的模型,它描述了“系统提供的外部服务”
- 设计模型是描述软件如何“实现”被用例描述的服务的模型,它作为实现模型和它的源代码的概念模型服务的
- 实现模型代表物理的软件元素和包含他们的子系统的实现。
实践六:管理变更
统一变更管理(UCM)是IBMRational 软件在软件系统开发中(从需求到发布)管理变更的方法。
你想控制什么??
分享到:
相关推荐
《基于模型的系统工程最佳实践》从方法论的角度,描述了基于模型的系统工程最佳实践。主要从系统工程的视点出发,把系统开发的前期系统工程的工作任务、责任范围,以工作流的方式,解剖得淋漓尽致,为系统的后续开发...
第1章 综述:优化是一个系统工程 / 1 1.1 性能问题是一个系统工程 / 3 1.2 性能改进的工程方法 / 23 第2章 设计与优化:物理数据库结构设计 / 39 2.1 数据库的特定运行平台 / 40 2.2 物理设计与性能的...
从软件工程流程、软件工具模型、软件开发最佳实践到软件架构、框架、组件、对象、切面以及软件开发模式,再到开发语言、开发平台以及跨平台中间件,以软件架构为主线串联相关知识。 分析透彻,技术全面。从不同的...
从软件工程流程、软件工具模型、软件开发最佳实践到软件架构、框架、组件、对象、切面以及软件开发模式,再到开发语言、开发平台以及跨平台中间件,以软件架构为主线串联相关知识。 分析透彻,技术全面。从不同的...
14.5 开源开发的最佳实践 235 14.6 企业参与开源 238 14.6.1 需求 238 14.6.2 风险 238 14.6.3 企业参与开源的策略 239 第15章 开创事业 242 15.1 项目启动与计划 242 15.2 选择正确的许可证 247 15.3 基础设施构建 ...
她的业余爱好包括软件工程、创作、Go 语言(igo、baduk、weiquei) 以及音乐,这些都是她长期的追求,并且有着不同层面的贡献。 目录 · · · · · · 前言 1 第1章 并发概述 9 摩尔定律,Web Scale和我们所陷入的...
本书深入分析了现代园区网络需求,并且以易于理解的方式讲述Cisco Catalyst交换机的局域网交换最佳实践。本书向读者提供Cisco Catalyst交换机家族的体系结构、工作原理和配置方式的丰富内容。此外,计策学可以学习...
Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把...
对我们来讲,扩展技能的最佳方式就是动手练习,因此您会发现这些练习是本书的一个最大 优势。 感谢所有读者的反馈和鼓励,你们是我写作这些图书的动力。希望你们能继续给我发送反馈 信息, 并促使本书第 2 版尽快...
中南大学 微控制器应用系统综合设计 设计题目 多功能波形发生器 指导老师 吴同茂 设计者 专业班级 测控1002班 号座位 设计日期 2013年5月14~6月19日 目 录 第一章 多功能波形发生器设计的目的意义 1 1.1 设计目的 1...
第10章 软件项目的设计与实践,介绍了OOAD和UML的基本概念、ISO9001和CMM软件开发标准、以及在线考试系统的分析与设计。 第11章 项目规划与设计文档,从零开始介绍一个电子商务项目的规划、设计、测试...
8.3 应用开发最佳实践 204 8.3.1 解析消息创建时间 204 8.3.2 换行符的使用 205 8.3.3 网页超链接的使用 206 8.3.4 隐藏浏览器工具栏 206 8.3.5 表情飘落效果 207 8.4 识别微信浏览器 208 ...
因此,我们不考虑出错处理和其他需要对读者所用编程环境有特定假设的软件工程问题。我们力求简单而直接地给出每一个算法,而不会让某种特定程序设计语言的特殊性掩盖算法的本质内容。 致我们的同事 .我们在本书中...
因此,我们不考虑出错处理和其他需要对读者所用编程环境有特定假设的软件工程问题。我们力求简单而直接地给出每一个算法,而不会让某种特定程序设计语言的特殊性掩盖算法的本质内容。 致我们的同事 .我们在本书中...
关键词:单片机 80C51 数字时钟 汇编语言 C语言 第一章 设计要求 课程设计是工科学生十分重要的实践教学环节,通过课程设计,培养学生综合运用先 修课程的理论知识和专业技能,解决工程领域某一方面实际问题的能力...
IT培训学习资料计划书 第一章 目前IT主流技术 1. 影响IT未来发展的五个IT新技术方向 计算机和软件技术日新月异,作为一名合格的IT工程师,必须善于学习,及时了解和掌 握新技术、新方法。然而新技术、新方法总是...
最后以一个实际的工作负载将所有技巧联系起来,并且提供了“宝典”式的最佳实践列表。 《SQL Server 2008查询性能优化》适合于关心数据库应用系统性能的开发人员和数据库管理人员阅读。通过阅读《SQL Server 2008...
最后以一个实际的工作负载将所有技巧联系起来,并且提供了“宝典”式的最佳实践列表。 《SQL Server 2008查询性能优化》适合于关心数据库应用系统性能的开发人员和数据库管理人员阅读。通过阅读《SQL Server 2008...