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

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

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

相关推荐

  • 北海马兰村委街道办建立工作规则制度方案

    北海马兰村委街道办建立工作规则制度方案 随着中国经济的快速发展,城市化进程的不断加速,街道办作为城市行政机构,其工作的重要性越来越突出。为了提高工作效率,保障人民群众的合法权益,北…

    科研百科 2024年12月1日
    0
  • excel合同管理软件(excel合同管理表)

    Excel合同管理表: 合同管理的好帮手 随着商业竞争的加剧,企业需要更加高效地管理合同,以避免合同到期后合同条款的不稳定性。合同管理对于企业的长期发展至关重要。但是,传统的合同管…

    科研百科 2024年6月2日
    88
  • 党建融合汇报材料

    党建融合汇报材料党建融合汇报材料党建循环俺政治发展从2017年1月起,我献出了一批党粮食,最终用火夺取了2022年1月31日丰收——这是党书的终南山脉四、新时代党和国家的发展要求全…

    科研百科 2024年11月20日
    0
  • 教育部一般科研项目申报教育部一般科研项目申报

    教育部一般科研项目申报 随着教育的不断发展,教育部的科研项目也越来越受到人们的关注。作为国家重要的教育部门,教育部在推动教育事业方面扮演着非常重要的角色。因此,申报教育部一般科研项…

    科研百科 2024年9月3日
    28
  • 管理软件系统有哪些(管理软件crm)

    管理软件CRM 随着商业竞争的加剧,企业对于客户信息的管理和控制能力也越来越重要。 CRM(Customer Relationship Management)软件就是在这种情况下应…

    科研百科 2024年6月7日
    65
  • 机关党支部和机关党建工作有区别吗

    机关党支部和机关党建工作的区别 机关党支部和机关党建工作都是机关党组织的重要组成部分,但它们之间仍然存在一些区别。 首先,机关党支部和机关党建工作的管辖范围不同。机关党支部的管辖范…

    科研百科 2024年10月19日
    14
  • 企业的内控管理软件有哪些(企业的内控管理软件)

    内控管理软件:企业内控管理的利器 内控管理软件是一种专门用于管理企业内部控制的软件系统,能够帮助企业有效地实施和控制内部风险。随着社会经济的发展,企业面临着越来越多的挑战,如市场竞…

    科研百科 2024年8月27日
    38
  • 不要污!浪漫屋情趣用品体验师解读papa顶到底是怎么一回事

    浪漫屋情趣用品体验师今天给大家来解读一下比较深层次的内涵话题,不要说“污”哦!因为你只有掌握了这些啪啪啪的性爱知识,你才会在性爱的生活上更加的愉悦,夫妻生活才会更加的和谐。 首先,…

    科研百科 2023年4月21日
    221
  • excel协同工作(excel网络协同办公)

    Excel网络协同办公:让数据共享更快速、更高效、更精确 随着数字化时代的到来,越来越多的企业开始采用Excel网络协同办公来提高团队协作效率和数据准确性。在这个信息化的时代,数据…

    科研百科 2024年6月2日
    45
  • 仓储管理系统项目验收

    仓储管理系统项目验收 仓储管理系统是一种用于管理仓库库存、运输和交付的软件系统。随着现代物流和电子商务的发展,仓储管理系统的需求也在不断增加。一个成功的仓储管理系统需要满足许多关键…

    科研百科 2024年12月19日
    0