为什么说软件开发过程是一个复杂过程

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

为什么说软件开发过程是一个复杂过程

问题的分类Cynefin 框架尝试把世界上的问题划分到了5个域中(大类):简单(Simple)问题,该域中的因果关系非常明显,解决这些问题的方法是感知-分类-响应(Sense-Ca复合(Complicated)问题,该域中的因果关系需要分析,或者需要一些其他形式的调查和/或专业知识的应用,解决这些问题的方法是感知-分析-响应(Sense-Analyze-Respond),有对应的好的实践复杂(Complex)问题,该域中的因果关系仅能够从回顾中发现,解决这些问题的方法是探索-感知-响应(Probe-Sense-Respond),我们能够感知涌现实践(emergent practice)混乱(Chao功能性非功能性。非功能性复杂性这是一个经过设计师精确设计的界面,在它被设计出来之前,用户事实上无法准确的描述出它。设计过程中经历了很多的诸如:线框图颜色的确定交互的动画信息层次在宽屏下如何展示在平板上如何展示在手机上如何展示即使仅仅支持桌面版,跨浏览器要考虑吗?支持哪些版本?有些UI效果在低版本的浏览器上不工作,需要Shim技术性能要求是什么样的?安全性要考虑吗?在网络环境不好的时候,要不要fallback到基础视图?既然涉及发送邀请函,送达率如何保证与外部邮件服务提供商集成时的工作量需求的变化方向打印”Hello, world”5次print("Hello, world")print("Hello, world")print("Hello, world")print("Hello, world")print("Hello, world")for(var i = 0; i 不同function printMessage(message) { for(i = 0; i 任意消息次数function printMessage(count, message) { for(i = 0; i 函数可以作为参数传入另一个参数!function log(message) { system.log(message);}function doMessage(count, message, action) { for(i = 0; i 打印”Hello, world”5次打印,”Hello, world”,5次,可以看到,这三个元素最后都变成了可以变化的点,软件开发很多时候正是如此,需求可能在任意可能变化小结不确定性,而这个不确定性事实上是无法避免的,而且每个软件都是独一无二的。另一方面,软件的需求会以各种方式来变化,而且往往会以开发者没有预料到的方向。比如上面这个小例子中看到的,最后的需求可能会变成将消息以短信的方式发送给手机号以185开头的用户手机上。

相关文档
最新文档