香雨站

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 112|回复: 1

软件开发的方法--结构化方法、面向对象方法、原型化模型方法 ...

[复制链接]

2

主题

3

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-9-21 20:04:26 | 显示全部楼层 |阅读模式
信息系统开发方法有很多种,开发人员可以根据项目的需要选择一种适合的开发方法。鉴于目前从业软件开发或者是考试的同事,整体来梳理一遍最常见的软件开发的几种方法。
<hr/>结构法方法:
结构化方法(Structured Approach)也称新生命周期法,是生命周期法的继承与发展,是生命周期法与结构化程序设计思想的结合。结构化方法是应用最为广泛的一种开发方法。按照信息系统生命周期,应用结构化系统开发方法,把整个系统的开发过程分为若干阶段,然后一步一步地依次进行,前一阶段是后一阶段的工作依据;每个阶段又划分详细的工作步骤,顺序作业。
特点:

  • 自顶向下、有明确的阶段和步骤。
  • 把整个系统的开发过程分为若干阶段,然后一步一步地依次进行。
  • 前一阶段是后一阶段的工作依据。
  • 每个阶段又划分详细的工作步骤,顺序作业。
面向对象方法:
面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。
特点:

  • 对象:对象是要研究的任何事物。
  • 类:类是对象的模板。即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同行为和属性。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。
  • 消息:消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变元。
  • 继承:继承性(Inheritance)是指,在某种情况下,一个类会有“子类”。子类比原本的类(称为父类)要更加具体化。子类会继承父类的属性和行为,并且也可包含它们自己的。
  • 多态:多态(Polymorphism)是指由继承而产生的相关的不同的类,其对象对同一消息会做出不同的响应。
  • 抽象性:抽象(Abstraction)是简化复杂的现实问题的途径,它可以为具体问题找到最恰当的类定义,并且可以在最恰当的继承级别解释问题。
  • 封装性是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。
  • 继承性是子类自动共享父类之间数据和方法的机制。
  • 同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。
原型化模型方法:
      第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的。充分了解后,再在原型基础上开发出用户满意的产品。在实际中原型化经常在需求分析定义的过程进行。
    客户与开发公司紧密联系,开发周期长。开发会受到需求变更的影响。
特点:

  • 实现客户与系统的交互。
  • 进一步细化待开发的软件需求。
  • 开发人员可以确定客户的真正需求是什么。
瀑布模型方法:
      是一个经典的软件生命周期模型,一般将软件开发分为可行性分析(计划)需求分析软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段。
      计划 → 需求分析 →  设计 →  编码 →  测试 →  运行维护
特点:

  • 软件开发的各项活动严格按照线性方式进行。
  • 当前活动接收上一项活动的工作结果。
  • 当前活动的活动结果需要验证。
缺点:

  • 由于开发模型是线性的,增加了开发的风险。
  • 早期的的错误可能要等到开发后期阶段才能发现。
螺旋模型方法:
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
     制定计划 →   风险分析 →   实施工程(需求确认、软件需求、软件产品设计、设计确认与认证、详细设计、开发、测试) →   客户评估
特点:

  • 螺旋模型是将快速原型和瀑布模型结合起来。
  • 强调了其他模型忽略的风险分析。
  • 每次螺旋包括4个步骤:制定计划:风险分析、实施工程、客户评估。
缺点:

  • 很难让用户确信这种演化方法的结果是可以控制的。
  • 建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
螺旋模型的项目适用:
对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。
敏捷开发模型:
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
特点:

  • 短周期开发。
  • 增量开发。
  • 由程序员和测试人员编写的自动化测试来监控开发进度。
  • 通过口头沟通、测试和源代码来交流系统的结构和意图。
  • 编写代码之前先写测试代码,也叫测试先行。
缺点:

  • 团队组件较难,人员素质要求较高。
  • 对测试人员要求完全掌握各种脚本语言编程,会单元测试。
回复

使用道具 举报

1

主题

3

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2022-9-21 20:04:44 | 显示全部楼层
可以请教个问题吗 你认为所有的软件开发方法有哪些相同的性质
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|香雨站

GMT+8, 2025-3-15 04:55 , Processed in 0.868762 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表