通过工程化思想提升项目质量

最近读了林锐博士的《软件工程思想》,很薄的一本书,但是给自己的启发却很深刻。书中作者依据自己的创业经验和个人体会总结整理出了好多软件工程相关的经验。这里以几点自己感兴趣的方面,简单的论述一下,算是拾人牙慧吧。

首先是关于软件质量的,作者认为程序员必须了解软件质量的方方面面,如正确性、性能、易用性、灵活性、可复用性、可理解性等等。只有理解了软件质量才能在系统设计的时候将高质量内建其中。作者坚定的认为软件的高质量并不是管理出来的,实质上是设计出来的,质量管理只是一种预防和认证的手段而已。

其次是对资源的调控,作者认为可调控的资源分为三类:人、可复用的软构件、软硬件环境。在项目的实际管理中要学会对这三种资源进行整合和调控。因为软件是人开发的,如果开发者不足,项目就很难推进。同样要考虑可复用的软构件,使用一些成熟的框架避免重复的造轮子;同时要考虑软件的软硬件环境,如果开发的软件对相应的环境依赖比较严重,就应该提前做好预防和处理。

在项目的可行性分析的时候,技术人员不能只考虑技术,还要考虑更为顶层的因素,比如经济、技术、社会环境和人。可行性分析必须为决策提供有价值的证据。经济可行性分析主要包括:"成本-收益"分析和“短期-长远利益”分析。技术可行性分析主要要包括以下几个方面:

1.在给定的时间内能否实现需求说明中的功能

2.软件的质量要求如何?有些软件对实时性精确性要求很高

3.软件的生产率如何,统计软件总的开发时间时,不能漏掉用户维护的时间。

社会环境的可行性分析至少要包括两个方面:市场和政策。人员管理是一门大学问,需要单独的论述,这里就不多说了。

对于软件设计作者做了非常精妙的论述作者将系统设计的四方面内容:系统结构设计、模块设计、数据结构和算法设计、用户界面设计,比喻为人体。体系结构就如同人的骨架;模块就如同人的器官,具有特定的功能;数据结构与算法就如同人的血脉和神经,它让器官具有生命并发挥功能;用户界面就如同人得外表,最容易让人一见钟情或一见恶心。之后作者在四方面分别进行了论述。良好的体系结构意味着普适、高效和稳定,作者详细的介绍了CS架构和层次架构两种体系结构。在模块设计中作者提出了评价模块设计优劣的三个特征因素:“信息隐藏”、“内聚与耦合”和“封闭-开放”,其实总结起来就是高内聚低耦合,面向扩展开放面向修改封闭。算法的优劣就是看算法能否在要求的资源限制范围内将问题解决好,这里的资源包括时间资源也包括物理内存资源。如果能满足,那就证明这个算法是有效的。每一种数据结构与算法都是有其时间、空间开销和收益。当面临一个新的设计的时候,设计者要掌握怎样权衡时空开销和算法有效性的方法。界面的设计要合适不要过度设计,合适性是指界面能否和软件的功能相融合。

在软件开发完毕发布之后,我们就需要对软件进行维护,软件的维护主要分为三类:纠错性维护、完善性维护、适应性维护。纠错性维护,就是修正软件中出现的问题;适应性维护,就是让软件去适应新的环境和设备,完善性维护就是给软件添加新的功能。

这里补充一个小知识,历史上出现过的图形标准(API)Core、GKS、PHIGS、PEX、GL、Dore、RenderMan、Hoops、OpenGL等等。经过竞争和淘汰,目前OpenGL称为国际上公认的3D图形工业标准。基于OpenGL的著名开发工具有OpenInventor 、IRIS、Performer、Optimeizer以及GLUT等等。 Open Inventor 被誉为交互式3D开发工具的事实标准,但显然还没有一个3D开发工具能够满足所有的应用需求。

最后林锐博士的一句话我很赞同:给人的帮助莫过于给予希望~~~与君共勉~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农飞飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值