架构师备战(三)-软件工程(一) 软件工程概念和软件开发方法(软件工程的概念是什么)

软件工程这个篇章非常重要,能够在综合知识里面考到十几分,仅次于架构,在案例和论文里面也会用到。

1、什么是软件工程?

软件开发的工程性的一些东西,基本思想就是用工程化的思想去做软件。

最早开发软件是没有软件工程的,最早使用计算机做大型的计算,后来计算机软件,成成一步步兴起,原来一个人很短时间能够搞定的事情,现在要许多人一起来完成这个工作。

而软件领域比较虚幻,往往要程序运行之后才能看到最终的效果,这就给软件开发带来了很大的风险。比如软件一开始没有问题,除去成本还能赚钱,但是有问题后修修改改,需要大量的成本,导致最后的亏损。

从而带来一些问题,也就是软件危机。我们希望软件开发能像建房子一样拔地而起,又比较受控,所以提出软件工程。软件工程很多东西跟建造领域的一些东西是有着异曲同工之妙的。

2、软件开发方法

方法论就是你想要做成某些事情,你就需要遵循一些原则,否则就会出现一些问题。

2.1、结构化法

结构化也叫做过程化,就是面向过程的。早期使用C语言开发过程化的东西那个时代,就是结构化时代。

思想原则

  • 用户至上
  • 严格区分工作阶段,每阶段有任务与成果
  • 强调系统开发过程工程化,文档资料标准化
  • 自顶向下,逐步分解

如果用C语言做过开发时,我们从整体看系统比较复杂,如何简化。那就是拆,拆成多个子系统,每个子系统拆模块,模块拆成子模块,最后变成了一个函数,函数输入输出是什么,用什么算法实现等,可能都有要求了,典型的应用就是瀑布模型。对日外包项目就是这种模式,标准化非常高。

结构法化方法思想其实很好,为什么会被淘汰了呢?

因为结构化开发的应变能力比较差,面向过程就是把业务流程固化到一个一个方法中了,是不容易做变更的,而现实中业务流程变化是非常常见的,所以该方法被淘汰了。而面向对象方法就是为了应对需求灵活。

2.2、原型法

一般认为是用在需求分析阶段的,其实就是一个demo. 就是为了避免在需求不明确时,这时候做一个原型来给客户演示。从而避免开发出来的东西跟客户想要的东西不一致.

  • 适用于需求不明确的开发
  • 包括抛弃型原型和进化/演化型原型

2.3、面向对象方法

比如C ,, VB, Java等都是面向对象的语言。

面向对象尝试在计算机里面构建一个与真实事件对应的一个体系。

比如现实中,有一个人,它完成了什么任务,他有什么特点,建模到系统里面。业务流程就可以按照建模进行组装,从而更加的灵活。所以面向对象有以下的一些基本思想原则。

思想原则

  • 更好的复用性
  • 关键在于建立一个全面、合理、统一的模型
  • 分析、设计、实现三个阶段,界限不明确(在做分析阶段的工作时,一般会考虑到设计,或者做了一部分设计,所以界限不明显)

2.4、面向服务的方法

面向服务是在面向对象的基础上,进一步去做标准化这一层级的,服务的粒度会比对象大。

  • SO方法分为三个主要的抽象级别:操作、服务、业务流程
    • 操作:函数,方法层级
    • 服务:就是服务
    • 业务流程:由服务协作完成一个业务的处理
  • SOAD(面向服务方法体系)分为三个层次:
    • 基础设计层(底层服务构建)、应用结构层(服务之间的接口和服务级协定)和业务组织层(业务流程建模和服务流程建模编排)
  • 服务建模:分为服务发现、服务规约和服务实现三个阶段

3 、软件开发模型

  • 瀑布模型: 迭代模型/迭代开开发方法
  • 演化模型: 快速开发应用
  • 增量模型: 构建组装模型/基于构建的开发方法
  • 螺旋模型: 统一过程/统一开发方法
  • 原型模型: 敏捷开发方法
  • 喷泉模型: 模型驱动的开发方法
  • V模型: 基于架构的开发方法

上面重点标注的方法为重点要学习的模型, 其他的了解即可.

软件工程的知识量很多, 我们慢慢的,一点点的学习这些方法与模型. 下一节会详细来讲软件的开发模型.

学无止境, 我们一起加油!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年3月19日 上午9:59
下一篇 2023年3月19日 上午10:15

相关推荐

  • 中国暂缓缴纳费用,IAEA总干事直言:共享核污水信息需先缴纳会费

    国际原子能机构(IAEA)是维护全球核安全的重要机构,然而,近期一系列事件却凸显出其在国际事务中的不公平和不客观。中国于日前正式宣布,暂缓缴纳国际原子能机构的会费,以示对其行为的抗…

    科研百科 2023年10月3日
    121
  • 识别植物的软件分享!这几个非常棒(识别植物的软件有哪些比较好)

    识别植物的软件分享!相信很多小伙伴现在遇到不认识的植物,最先想到的就是识别了吧!毕竟现在科技这么发达,一些识别软件对于识别植物还是非常棒的,小编最近也是给大家整理了一下,发现了几个…

    科研百科 2023年5月5日
    239
  • 广州找工作什么软件最好用(广州找工作什么软件最好用的)

    广州找工作,常常会遇到黑中介,自己用招聘软件又怕遇到虚假信息招聘。今天班妹儿整理了目前常见的10个招聘平台并进行了靠谱排序,建议大家点赞收藏。 1. 上啥班APP:看视频找工作,通…

    科研百科 2024年5月7日
    59
  • 项目管理启动会议

    项目管理启动会议 在项目的开始阶段,召开项目管理启动会议是非常重要的。这个会议的目的是确定项目的范围、目标、时间表和资源,并启动项目的基础工作。以下是项目管理启动会议的一些重要内容…

    科研百科 2024年7月15日
    49
  • 交友类APP十大“桃色陷阱”之罪与罚(交友软件都有哪些套路)

    互联网 时代,婚恋交友已上网并成为线上风口,手机应用市场中有成百上千的交友类APP,通过手机移动端进行线上交友在一定程度上拓宽了社交渠道,满足了人们对交友、恋爱、陪伴的心理需求,成…

    科研百科 2023年4月30日
    1.6K
  • 国际工程项目进度管理

    国际工程项目进度管理 进度管理是项目管理中非常重要的一环,对于国际工程项目来说尤为重要。国际工程项目在不同地区、文化和不同的时间要求下进行,因此需要更加严格的进度管理来确保项目按时…

    科研百科 2024年9月21日
    27
  • angular对比

    Angular对比 Angular是一款流行的前端框架,被广泛用于构建现代Web应用程序。与其他前端框架相比,Angular有以下一些特点: 1. 模块化:Angular使用模块化…

    科研百科 2024年10月14日
    4
  • 高级职称-信息系统项目管理师考什么?怎么考?(“信息系统项目管理师”)

    信息系统项目管理师是软考27类的高级职称,相当于高级职称资格,可进行以考代评高级职称、职称入户、领取补贴、招投标加分等。取得信息系统项目管理师证书,可以由所在单位聘任高级工程师职务…

    科研百科 2023年11月27日
    134
  • 合同管理实例

    合同管理实例 合同管理是现代商业中至关重要的一部分,能够帮助企业有效地管理合同,确保合同的执行和履行,减少合同变更和纠纷的风险。本文将介绍一个合同管理实例,以帮助企业更好地理解合同…

    科研百科 2025年1月6日
    0
  • 企业内控目录

    企业内控目录 企业内控目录是一份详细的企业内控规划,它包含了企业内控的目标、范围、内容、实施方式和评估标准等。企业内控目录可以帮助企业制定并实施内部控制措施,确保企业运营的安全、高…

    科研百科 2024年10月30日
    2