案例分析-软件开发方法
原型开发方法的问题:
1,客户时候已经看到了软件的工作版本,却无法理解,原因在于为了使原型能够很快使用,开发者没有考虑软件的总体质量和长期可维护性。
2,开发者常常需要实施上的折中使原型能尽快工作。
XP(极限编程)缺点
1,“非要用文档时才编写”,实际执行中非常容易不忽视文档。
2,简单设计、测试先行、重构、集体代码所有制、持续集成某种意义上维背了程序员的传统习惯。
3,小型发布、结对编程、每周工作40小时,经常让管理者不可理解。
4,现场客户实践经常无法得到客户的理解和满足,另外许多客户在接受每一次小规模发布时,也会提出异议。
简单设计:“只为今天设计,不过多的考虑明天的需要,因为现在的假设可能是错误的,也许明天还有更好的实现方法。
小型发布:每次迭代都实现一个小型的发布,提交一个能让用户使用的小型版本。
测试先行、重构:“小步快走”的关键实践,有利于提高软件质量。
软件产品线(software product line)是一个十分适合专业的软件组织的软件开发方法,能有效的提高软件生存率和质量、缩短开发时间、降低总开发成本。
软件产品线特点:过程驱动、特定领域、技术支持和架构中心。
软件产品线组成:核心资源和产品集合。
建立产品线的几种方式:
1,将现有产品演化为产品线。
2,用软件产品线替代现有产品集。
3,全新产品线演化。
4,全新软件产品线的开发。
原型生命周期:合适的选择、识别基本需求、开发工作模型、模型验证修正和改进、判断原型完成、判别细部说明、判断原型效果、整理原型和提供文档。
改变原型生命周期约束的方法:1,只对屏幕的原型化。2,使用购买的应用系统作为初始模型。 3,子系统原型化。 4,原型与需求建议。5,最终用户进行原型化。
引入原型化,项目管理的基本内容如下:
1,估计过程。 2,费用重新分配。 3,变化控制。 4,停止活动。
RAD快速应用开发
基本思想:
1,让用户更主动地参与参与到系统分析、设计和构造活动中。
2,项目期间组织一系列研讨会,研讨会要让项目投资方、用户、系统分析师、设计人员和开发人员一起参加。
3,通过一种迭代的构造方法,加速需求分析和设计阶段。
4,让用户提取看到一个可工作的系统。
RAD开发流程:
1,业务建模。用到的工具:数据流程图。
2,数据建模。...流程图。
3,处理建模。...细化数据流程图的加工。
4,应用生产。
5,测试与交付。
RAD特点:
1,强调用户参与。
2,通过大量使用可复用构件,加快了开发速度。
RAD局限性:
1,RAD强度系统本身的结构,系统可能在短时间内工作很好,但是系统的整体和长期目标可能得不到满足。
2,加速开发周期可能会导致没有更多的时间提高项目质量、连贯性和设计的标准化。
3,并非所有软件都适合RAD。如:难以模块化、高性能、技术风险高。
为了贯彻4大价值观,敏捷联盟提出12条原则。
1,尽早持续交付有价值的中间软件使客户满意。
2,即使到了开发后期,也欢迎需求变化。
3,经常交付可工作的软件。
4,开发全过程,业务人员和开发人员必须天天在一起工作。
5,位开发人员提供环境和支持,给予信任,以人为本构建项目。
6,团队内部,最有效的沟通方式莫过于面对面的交谈。
7,工作的软件是度量进度的首要指标。
8,提倡可持续的开发速度,责任人、开发者和用户应保持一个长期的、恒定的开发速度。
9,不断关注好的技能和设计会增加敏捷能力。
10,开发者的本质是简单的。
11,自组织的团队才能做出最好的架构设计和需求分析。
12,团队应定期在如何更有效工作方面进行反省,然后对自己的行为做出改进。
结构化方法的关注点是系统功能,强调业务过程的数据流和控制流,采用模块化、自顶向下、逐步求精的设计过程。开发过程划分成若干相对独立的阶段,结构清晰、可读性好。适合:规模
较大、结构化程度高的系统开发。
面向对象关注与处理数据,以对象为中心,能够将数据和它的行为统一起来。对象之间通过消息交换引发对象行为。...提高了数据和功能的复用程度。简化了开发系统开发过程,系统可维护
性得到了改善。
开发过程模型:
1,软件需求完全确定:瀑布。
2,初始阶段只提供基本需求的迭代式或渐进式模型,如:螺旋模型、喷泉模型、统一开发过程和敏捷方法。
3,形式化开发方法为基础的变换模型。