`
钟大小姐
  • 浏览: 25084 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

系统开发方法论

阅读更多
方法论:指以规范化方法实现SDLC(如一系列步骤和可交付物)

以过程为中心的方法论首先注重 确定系统的相关的活动,即过程。以过程为中心的方法论使用过程模型作为系统方案的核心。

以数据为中心的方法论首先注重确定数据存储容器的内容和这些内容是如何组织的。以数据为中心的方法论使用数据模型作为系统方案的核心。

面向对象方法论试图平衡过程和数据的重视。面向对象方法论用统一建模语言(UML)将系统方案表示为结合了数据和过程的对象集合。

一、结构化设计

      第一类系统开发方法论称为结构化设计,在20世纪80年代处于统治地位。结构化设计方法采用规范的、按步骤的SDLC实现方法,它按照逻辑顺序从一个阶段转换到下一个阶段。结构化设计也引入了规范的建模或图表技术来描述系统基本的业务过程和支持它们的数据。

1、瀑布式开发

特点:分析员和用户从一个阶段到下个阶段是顺序进行的。每个阶段通常有大量关键的可交付物,在项目从一个阶段转换到下一个阶段时要提交给项目发起者批准。一旦发起者认同了这一阶段的工作,此阶段才算结束,下阶段才能开始。此方法论被称为瀑布式开发是因为它从一个阶段转换到下一个阶段的方式像瀑布一样。

优点:(1)、在编程开始之前系统需求早早地就被确定

           (2)、项目进行期间需求变更最小化

缺点:(1)、在编程开始之前必须做好充分的设计

           (2)、在完成分析阶段的系统建议书和交付系统之间要花很长时间。

2、并行开发

特点:基于并行开发的方法论试图解决在分析阶段和系统交付之间的长期间隔问题,不是顺序进行设计和实现,而是先做出整个系统可实施的概要设计,然后把项目分成一序列单独的、能并行设计和实现的子项目。一旦所有的子项目完成,就将这些分散的部分集成,然后交付。

优点:交付系统的时间缩短了,因此业务环境的变化就会减少,从而使返工减少

缺点:有时子项目不是完全不相关的,在一个子项目中的设计决策可能会影响另一个,并且项目结束时还面临着重大的集成挑战

二、快速应用开发RAD

           第二类系统开发方法论包括基于快速应用开发(RAD)的方法。这些方法产生于20世纪90年代,是用来克服结构化设计方法论的两个弱点而提出的一个较新的系统开发方法论。

1、阶段性开发

特点:将整个系统分解成顺序开发的一序列版本。最重要的和最基本的需求绑定到系统的第1个版本,分析阶段之后进入设计和实现阶段,但这两个阶段都只是针对版本1所确定的需求集合。当版本1实现后,开始版本2的工作,在先前确定的需求基础上做进一步的分析,并结合来自用户对版本1的体验所产生的新设想和新问题。接着设计和实现版本2,然后立即开始下一版本的工作。

优点:使用户快速得到一个可用系统的优点,另外,用户更早地使用系统,也使他们比在结构化设计情形下能更早地确定重要的附加需求。

缺点:用户开始使用的系统是非常不完全的

2、原型

特点:分析、设计和实现都是并发进行的,这3个阶段将循环进行直到完成系统。在这个过程循环进行,直到分析员、用户和发起者都认同组织内所安装和使用的原型提供了足够多的功能。

优点:它能非常快地给用户提供一个可交互的系统,尽管开始时并不是为了在组织中广泛使用。能使用户确信项目团队正在开发系统,这个方法能使真正的需求更精确。

缺点:快节奏地发布系统对试图进行细致和系统化的分析是个挑战。

3、抛弃原型

特点:在SDLC的不同阶段开发,有一个相对全面的分析阶段,用来收集信息和建立系统方案的设想。用户提出的许多系统特征可能没有得到很好理解,还有许多具有挑战性的技术问题需要解决,这些方面都可用分析、设计和创建设计原型来检验。

优点:既有细致全面的分析和设计阶段所带来的好处,又具有在系统创建前利用原型求精关键内容这个优点。得到更稳定和更可靠的系统

缺点:需要花费更长的时间来交付最终的系统
三、敏捷开发

第三类系统开发方法论:敏捷开发 刚刚兴起。它们注重简化SDLC过程,去除大多数的建模、文档以及花费在这些任务上的时间。项目强调简单化、迭代化的应用开发。敏捷开发方法论的例子包括极限编程、Scrum和动态系统开发方法(DSDM)

极限编程XP

特点:建立在交流、简化、回馈和勇气这四个核心价值上。首先,开发人员必须持续快速地对最终用户进行反馈;第二,XP需要开发人员遵循KISS(Keep It Simple,Stupid)规则;第三,开发人员必须做增量修改使系统变大,他们要支持改变,而不仅仅是接受;第四,开发人员必须牢记质量第一,同时XP也鼓励小组成员在工作中提高自己的技能。XP用来创建成功系统的3个关键原则是持续测试、开发人员结对进行简单编码、以及最终用户密切交互以更快的构建系统。测试和高效的编码是XP的核心。

优点:去除大多数的建模、文档以及花费在这些任务上的时间

缺点:需要大量的规则来防止项目变得混乱和重点不明

分享到:
评论

相关推荐

    第章系统开发方法论综述(“数据”相关文档)共127张.pptx

    系统开发方法论综述(“数据”相关文档) 本资源摘要信息涵盖了系统开发方法论综述的主要知识点,包括系统分析、设计、实现、测试和维护等方面的内容。下面是详细的知识点解释: 1. 系统分析:系统分析是指在总体...

    系统分析师论开发方法及应用

    系统分析师论文参考,论开发方法及应用。 2017年1月,我作为项目负责人,参加了XX市××集团...5、系统运行与维护等结构化的五个方面的工作,来阐述说明系统开发方法工作对于信息系统开发项目的重要作用和积极影响。

    系统分析师论文范文5篇

    他们需要具备良好的沟通技巧,以理解业务部门的需求,并用技术语言解释给开发团队。此外,他们还需掌握业务分析工具和技术,如数据建模、流程图和UML。 第二篇论文可能探讨“系统分析师的业务流程优化”。系统分析...

    聊聊AUTOSAR开发方法论

    AUTOSAR的开发方法论覆盖了从系统设计到软件集成的各个环节,确保整个开发流程的高效性和一致性。下面是该方法论中几个重要的步骤: 1. **建立抽象系统描述**:在这个阶段,需要定义整个系统的高级架构,包括VFB中...

    软件系统架构的方法论

    软件系统架构的方法论是构建大型复杂软件系统的关键步骤,它涉及到多个层次的抽象和决策,旨在确保系统的稳定性和可扩展性。系统架构可以分为几个主要的视图:逻辑架构、开发架构、运行架构和数据架构。 逻辑架构...

    系统分析师-敏捷开发方法

    系统分析师-敏捷开发方法 本文将论述敏捷开发方法在系统分析师中的应用,通过实践证明,在项目的开发中采用合适的敏捷开发方法可以有效地缩短开发时间,提高产品质量。本文将从以下几个方面论述敏捷开发方法的应用...

    软系统方法论

    例如,在软件开发中,软系统方法论可以用于需求获取和分析设计,帮助开发者更好地理解用户的需求和需求变化。 在企业管理中,软系统方法论可以用于企业战略、风险管理、项目管理、绩效管理和业务流程管理等问题,...

    搭建系统方法论,如何搭建系统

    在构建任何系统时,系统方法论是至关重要的指导框架,它涵盖了从需求分析到系统部署的整个过程。本文将深入探讨“如何搭建系统”的核心概念和步骤,旨在帮助你掌握有效的系统架构搭建策略。 首先,我们需要理解系统...

    SQ系统工程-系统科学方法论及系统 精品资料.pptx

    系统工程是一种综合性的科学方法论,它以系统思想为核心,旨在解决复杂问题和优化实践中的系统性能。系统科学方法论起源于人类对自然界的长期观察和实践经验的积累,通过不断失败与成功的尝试,逐渐形成了一套科学...

    第3章_系统工程方法论(后).zip

    系统工程方法论是信息技术领域中的一个核心概念,特别是在信息化进程中起着至关重要的作用。这一章主要探讨了如何通过系统工程的视角来设计、构建和管理复杂的信息系统。系统工程是一种综合性的方法,它强调在各个...

    汉普咨询项目管理方法论.pdf

    系统策略方法论(SSM)和系统开发方法论(SDM)则强调了在IT项目中的应用,如何通过信息技术实现业务战略,设计和实施合适的系统解决方案。 总的来说,汉普咨询项目管理方法论提供了一套全面的框架,帮助企业在整个...

    02140信息咨询【串讲复习资料】

    该课程涵盖了信息系统概述、信息系统开发方法论、信息系统规划、信息系统建模、信息系统的建立、信息系统的测试、信息系统维护与管理、信息系统集成、信息系统项目管理等方面的知识点。 信息系统概述 信息系统概述...

    基于ARM的嵌入式系统开发与实例 陈艳华 代码.rar

    《基于ARM的嵌入式系统开发与实例》是陈艳华教授的一本深入探讨...通过深入研究书中的代码实例,读者不仅可以提升自己在ARM平台上的编程能力,还能掌握一套完整的嵌入式系统开发方法论,为今后的项目开发打下坚实基础。

    基于SOA的信息系统实施方法论研究

    这些方法论通常涵盖了从系统规划、设计、开发、部署到运维的一整套流程。本研究主要分析并比较了上述主流厂商的SOA实施方法论,并基于此,提出了一种基于SOA的信息系统实施方法论框架。 该框架将SOA系统的采纳分为...

    Thales(泰勒兹)基于模型的系统工程方法论

    总之,Arcadia方法论是泰勒兹集团为解决复杂系统工程挑战而开发的一种先进方法。它不仅为系统、软件和硬件架构设计提供了一套全面的框架,而且还为工程团队提供了一种更为高效、准确和协作的方式来应对日益复杂的...

Global site tag (gtag.js) - Google Analytics