论文摘要
软件工程是针对软件这一具有特殊性质的产品的工程化方法,它关注软件产品的生命周期,包括从计划、设计、编程、测试到运行和升级维护的所有阶段。完整的一个生命周期就是一个可以被重复套用的模型,即软件开发模型。由于软件开发很大程度上是依靠人的脑力活动,因而软件开发也可以看成是一个脑力密集型的工程,需要对参与者及其行为进行一定的管理。软件项目管理,就着重研究软件开发各阶段对时间、人员、成本、质量、风险等内容的管理,强调项目的绩效。软件开发模型和软件项目管理都是软件工程的重要组成部分。本文针对业务和实施驱动的、产品发布周期受到明显约束的大型企业信息系统开发中存在的问题,以提高软件项目的用户满意度为研究目标,在以下两个方面进行研究,并取得创新性成果:1.提出了大小迭代的软件开发模型。经调研发现,大多数用户只关注几个基本的问题:第一,提出的需求,需时多久才能被软件团队实现并交付使用;第二,软件团队交付的系统功能是否确是用户们最想要的;第三,软件团队在处理用户需求的过程中是否能够高度透明,让用户能随时追踪自己提出的需求的状况,明白自己或者软件团队下一步会如何进行。作为一个创新,大小迭代的软件开发模型在软件产品交付时间确定的前提下,在大迭代中按传统迭代一样的方式进行计划、安排需求、开发、测试等工作,主要侧重完成对系统影响比较大、比较大规模的新功能,或比较完整的系统解决方案。然后在大迭代测试工作进行的同时,安排一个小迭代,以实现一些对系统影响不大的、可以相对专注于系统易用性、美观性、信息完整丰富等方面的改进。实施大小迭代的软件开发过程的优点主要在于,可以平衡软件团队对各种不同性质需求的响应,有效使用软件团队的人力资源,并实现交付产品功能的最大化,与此同时,大小迭代的安排完全符合技术工程师们的工作习惯,易于在软件项目中推行并被广泛接受,更能提高工程师个体的生产率和生产量,使得整个软件团队能够在相同的时间内交付更多的产品功能。2.提出了需求属性评估模板作为迭代范围确定的依据。堆积如山的需求和软件团队的生产力不平衡,是软件团队在确定每一个迭代规模范围时都可能遇到的一大难题。需求属性评估模板从业务、开发和测试、实施、系统支持等方面对每一个待开发需求进行综合评价,用统一、完整的方式记录下每个需求在各层面的作用或影响,供决策团队进行最终评定。确保经过根据综合评定制定的迭代规模生产出的软件产品能满足企业最紧急、最重要的业务需要。本文首先剖析了目前软件业界普遍使用的迭代开发过程,通过对一个需求从提出到上线的周期分析,以及工程师们工作负载的分析,发现了传统迭代开发模型可改进的地方,并提出新的开发模型。其次,本文尝试从需求所反映的业务,到实现需求对开发团队的影响,再到系统发布版本实施时的考量,提出一些对需求优先级决策有辅助意义的属性,并设计了一个需求优先级决策模板。最后,通过实际项目运用,证明新的开发模型和需求优先级决策模板的可行性。