小巨人的诞生——读《现代软件工程——构建之法》第一章概论有感

小巨人的诞生

读《现代软件工程——构建之法》第一章概论有感

    就我个人而言,“软件工程”这门课程并不陌生,本科四年,工作几年以及现在开始读研究生一年级,好几年都没有跑出“软件”以及“工程”组成的圈子。真可以称得上是“圈里人”。

其实,单就概念而言,“软件工程”即通过工程学科的概念、原理、技术和方法来设计、实现,并结合目前为止较为有效的管理方法和技术手段来开发和维护软件1

然而,从工程的实践出发,“软件工程”并非如此简单。

一、程序的范畴

    什么是程序?对于程序的初学者来说,程序就是代码,Code就是软件工程的全部。一门心思投身于各种代码的书写当中,无论是CC++或是Java,凡是市面上能见到的语言都学,相关的程序都写,日日“疲于奔命”。然而,这里问一句“你真的了解程序吗?”

在几年的工作中,项目的负责人常常会强调几件事。

        第一,代码是否能实现功能?

        第二,代码的复用性是否得到体现,代码的执行效率是否得到体现?

        第三,代码在你离职后,是否能被项目的继任者所利用,代码是否是可读的?

    提出这三个问题,旨在引出“程序”的真正范畴。

    首先,为了实现功能,“代码”应该是个重要因素,就像是构成物质的最小单位。就如同构成机械的零件,构成图画的色彩。

       其次,如果想提高效率,数据结构,算法都是应该考虑到的,并且算法应该是数据在性能上又一次巨大的改进。

       最后,如果想要项目能够较为妥善的交接以及更好的维护和完善,文档就成为了指南,其中文档既包括独立的文本文档还包括源码中的注释。

    综上所述,程序可以给出一个公式,程序=源码+数据+文档1

二、项目的生命周期

    《荀子·天论》中言“天行有常,不为尧存,不为桀亡”,世间的万物都有自己生存和消亡,这是一个必然的过程。项目程序同样也有自己的生命周期。

    那么“软件工程”如何安排项目的“生死”呢?无论哪一门学科,其最终的目的都是为了适应人类探索问题、解决问题的需要,正如哲学中提及的“方法论”。人们将其划分为四个主要阶段2,分别是:

       1.模型阶段:就像是将具体的物体在思维中抽象出原型,做出具体的模型。

       2.尝试阶段:较为浅层次的实现。

       3.探索阶段:在已有基础知识的前提下,有依据的向前迈一步。

       4.成熟阶段:可以有的放矢的进行操作。

    将上述的不同时期的工作结合“软件工程”学科,可以将项目开发的生命周期分成:1.软件定义2.软件设计3.软件开发和测试4.软件维护以及调试1。此种划分方法是来源于《软件工程导论(第四版)》与《现代软件工程》划分的方式略有差别,然而无论如何进行划分,软件工程的主要任务是开发、设计出更安全、更有效率的软件。

三、软件的特点

    为什么需要“软件工程”?

    这个问题提的很有必要,根据弗雷德·布鲁克斯在No Silver Bullet中提及软件具备5个主要特性2,主要有:

       1.复杂性   作为逻辑产品,其包含了大量脑力劳动。马克思曾经将人类劳动划分为体力劳动和脑力劳动,其中脑力劳动属于高级生产形式,其中包括对于人类直接经验以及间接经验的总结。

       2.不可见性 软件并非物理实体的产品,所以具备不可见性。

       3.易变性 ①做新事情②适应新变化

       4.服从性 服从人类的指令。

       5.非连续性  具有一定的间隔性,并非连续处理问题的方式。

    基于此,如何使软件能够更加行之有效地为人类服务成为一个重要的问题,兵法云:“不谋万世者,不足谋一时;不谋全局者,不足谋一域,此所谓巧能成事者也”,程序的开发不仅是代码的数据,更是思维的碰撞,如何做到一个“巧”字?这就需要一门相对科学的方式方法作为规范。

       Build to LearnBuild to ShowBuild to ServeBuild to Win 4个词来源于《现代软件工程》这本书,正反应了做到“巧”所能达到的“事”的领域。

四、“小巨人”的思维

    还记得上班时,项目经理和产品经理曾经说过“当一个程序员拥有了10年项目经验的时候,再学一门新语言并不难,难的是如何思维”,我对这句话的印象很深。

记得软件工程将解决问题的方式划分为:传统结构化方法以及面向对象方法。

       然而如何能够将这些知识进行区分,以及将所学的面向对象的思维方式应用的程序设计中,从而真正达到抽象、模块化,逐步求精等目的1

    由此可见,一门语言并不重要,关键是“思维方式”,只有从思维上得到发展,才能使“小巨人”成为“巨人”。

五、“小巨人”的标准

    什么样的程序才能算好?称得上“小巨人”,其实本质上标准的界限很模糊,因为“好”与“坏”都取决于开发者、用户的不同角度,这需要从以下4个方面进行考量。

       1.用户的满意程度

       2.软件的可靠性

       3.软件流程的质量

       4.软件的可维护性

    综上所述,当一个软件能够较为综合地考虑如上4个方面的时候,就可以表明“小巨人”诞生了。

       到此为止,对于第一章算是做了一点自己的感想,“质胜文则野,文胜质则史”,从内力上提高才是真的提高。

 

参考文献

1】张海藩 吕云翔 《软件工程(第四版)》 2013.08.01 人民邮电出版社

2】邹欣 《现代软件工程-构建之法(第三版)》 2017.03 人民邮电出版社

转载于:https://www.cnblogs.com/LiYuxuan1104/p/LeeYuxuan.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一批专精特新小巨人企业名单pdf是由相关部门所发布的一个名单,其中列出了一批具有专业精神、独特创新能力并有潜力成为未来行业龙头的小型企业。 这份名单的目的是为了鼓励和支持这些企业的发展,并为他们提供更多的机会和资源。这些企业在各自领域具备专业的知识和技能,致力于创新和突破传统的经营模式。他们在产品、服务、技术等方面具有特色,并与市场需求相契合。 这些小巨人企业的成功离不开他们的独特思维和创新精神。他们勇于尝试新事物,不断追求卓越,经过不断地试验和探索,他们找到了独特的商业模式和竞争优势。 这份名单所提及的企业们也是经过一定的评估和筛选程序而产生的。相关部门可能会考虑企业的市场潜力、盈利能力、创新能力、团队素质等因素。经过专业的评估后,这些企业被认为具备了成为行业龙头的潜力,因此被列入了这份名单。 这份名单的发布对于这些企业来说无疑是一个巨大的荣誉和机遇。它将为他们带来更多的公众关注和关切,可能拓宽了他们的商业合作和市场渠道,也为他们提供了更多的资源和支持。 对于整个行业来说,这份名单的发布也是一种激励和推动。它向其他小型企业传递了一个信号,即只要具备专业精神和创新能力,就有机会成长为行业的新巨人。它也将激发企业和相关部门继续努力,为更多的小型企业创造更好的发展环境和机会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值