西门子TP1500触摸屏
且把它组织到产品发布中去。要达到这个目的,需要综合考虑开发小组的能力以及所需功能的优先级来建立发布计划。在编写功能的时候,需要使功能的依赖性*小化。功能之间完全没有依赖是不太可能的,但把功能依赖性控制在*低程度还是相当可行的。
5.敏捷小组检查与调整
每次新迭代开始,敏捷小组都会结合上一次迭代中获得的新知识做出相应调整。如果认为一些因素可能会影响计划的准确性,也可能更改计划。迭代开发是在变与不变中寻求平衡,在迭代开始的时候寻求变,而在迭代开发期间不能改变,以期集中精力完成已经确定的工作。由于一次迭代的时间并不长,使得稳定性和易变性能够得到很好的平衡。在两次迭代期间改变优先级甚至功能本身,对于项目投资*大化是有益处的。从这个观点来看,迭代周期的长度选择就比较重要了,因为两次迭代之间是提供变更的机会,周期太长,变更机会就可能失去;周期太短,则会发生频繁变更,分析、设计、编码、测试这些工作都不容易做到位。综合考虑,对于一个复杂项目,迭代周期选择4周还是有道理的。
1.4.2 开放计算
随着互联网的不断发展和普及,软件工程开放式计算有了技术基础,更多的开放式资源使得软件工程有效地集成,在软件开发标准上形成了互联互通,对于文化、语言来说有所打破,真正地实现了软件开发的协作交
下,开发外包变得非常普及。
(4)项目构建工具,资源依赖更加自动化,系统开发也不需要从零开始,而是利用业内的免费框架进行二次开发。
1.4.3 云计算
云计算(cloudcomputing)被称为继个人计算机、互联网之后的第三次信息化革命,它是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。云计算是一种理念,是旧瓶子装新酒,它实际上是分布式技术、服务化技术、资源隔离和管理技术(虚拟化)的融合。
到底什么是云计算呢?不同的组织从不同的角度给出了不同的定义。例如:
一种计算模式。把IT资源、数据、应用作为服务通过网络提供给用户(如IBM公司)。
一种基础架构管理方法论。把大量的高度虚拟化的资源管理起来,组成一个大的资源池,用来统一提供服务(如IBM公司)。
以公开的标准和服务为基础,以互联网为中心,提供安全、快速、便捷的数据存储和网络计算服务(如Google公司)。
现阶段广为接受的是美国国家标准与技术研究院(NIST)定义,即云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
通俗意义上的云计算往往包含的内容。开发者利用云API开发应用,上传到云上托管,并提供给用户使用,而不关心云背后的运行维护和管理以及机器资源分配等问题。放计算来说有了充分的促进,对于软
代中要把一个以上的不太**的需求声明,经过分析、设计、编码、测试,变成可交付的软件(称为功能增量)。当然并不需要把每次迭代的结果交付给用户,但目标是可以交付,这就意味着每次迭代都会增加一些小功能,但增加的每个功能都要达到发布质量。每次迭代结束的时候让产品达到可交付状态十分重要,但这并不意味着要完成发
从20世纪六七十年代的结构化软件开发技术到*近的面向对象技术,从第一、第二代语言到第四代语言,人们已经充分认识到:方法比气力更有效。采用先进的技术既可以提高软件开发的效率,又可以减少软件维护的成本。
5.结果应能清楚地审查
软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况可见性差,难以评价和管理。为更好地进行管理,应根据软件开发的总目标及完成期限,尽量明确地规定开发小组的责任和产品标准,以使所得到的标准能清楚地审查。
6.开发小组的人员应少而精
开发人员的素质和数量是影响软件质量和开发效率的重要因素,开发人员应该少而精。这一条基本原理基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯的错误也要少得多;当开发小组为N人时,可能的通信信道为N(N-1)/2,可见随着人数N的增大,通信开销将急剧增大。
7.承认不断改进软件工程实践的必要性
遵从上述七条基本原理,就能够较好地实现软件的工程