zoukankan      html  css  js  c++  java
  • 软件开发过程中应当遵守的原则

    第1原则:存在价值

    一个软件系统因能给用户提供价值而具有存在价值,所有的决定都应该基于这个思想。在确定系统需求之前,在关注系统功能之前,在决定硬件平台或者开发过程之前,问问你自己:这确实能为系统增加真正的价值吗?如果答案是不,那就坚决不做。所有的其他原则都以这条原则为基础。

    注:软件的功能范围不应按照完美主义的思维进行,为了让软件看起来或听起来更具神秘而增加很多功能,而这些功能对使用者来讲却可能是没有价值的鸡肋。

    第2原则:保持简洁

    软件设计并不是一种随意的过程,在软件设计中需要考虑很多因素。所有的设计都应该尽可能简洁,但不是过于简化。这有助于构建更易于理解和易于维护的系统。这并不是说那些特征甚至是内部特征应该以“简练”为借口而取消。的确,优雅的设计通常也是简洁的设计,简练也不意味着“快速和粗糙”。事实上,它经常是经过大量思考和多次工作迭代才达到的,这样做的回报是所得到的软件更易于维护且存在更少错误。

    第3原则:保持愿景

    清晰的愿景是软件项目成功的基础。没有愿景,项目将会由于它有“两种或者更多种思想”而永远不能结束;如果缺乏概念的一致性,系统就好像是由许多不协调的设计补丁、错误的集成方式强行拼凑在一起......如果不能保持软件系统体系架构的愿景,将削弱甚至彻底破坏设计良好的系统。授权体系架构师,使其能够保持愿景,并保证系统实现始终与愿景保持一致,这对项目开发成功至关重要。

    第4原则:关注使用者

    有产业实力的软件系统不是在真空中开发和使用的。通常软件系统必定是由开发者以外的人员使用、维护和编制文档等,这就必须要让别人理解你的系统。因此,在需求说明、设计和实现时,经常要想到要让别人理解你所做的事情。对于任何一个软件产品,其工作产品都可能有很多读者。需求说明时应时刻想到用户;设计中始终想到实现;编码时想着那些要维护和扩展系统的人。一些人可能会被迫调试你所编写的代码,这使得他们成了你所编写代码的使用者,尽可能地使他们的工作简单化会大大提升系统的价值。

    第5原则:面向未来

    生命期持久的系统具有更高的价值。在现今的计算环境中,需求规格说明随时会改变,硬件平台几个月后就会淘汰,软件生命周期都是以月而不是以年来衡量。然而,真正具有“产业实力”的软件系统必须持久耐用。为了能成功地做到这一点,系统必须能适应这样那样的变化,能成功做到这一点的系统都是那些一开始就以这种路线设计的系统。永远不要把自己的设计局限于一隅,经常问问:“如果出现......应该怎样应对”,构建可以解决通用问题的系统,为各种可能的方案做好准备,这很可能会提高整个系统的可复用性。

    第6原则:计划复用

    复用既省时又省力。软件系统开发过程中,高水平的复用是很难实现的一个目标。代码和设计复用曾宣称是面向对象技术带来的主要好处,然而,这种投入回报不会自动实现。为达到面向对象(或是传统)程序设计技术所能够提供的复用性,需要有前瞻性的设计和计划。系统开发过程中各种层面,都有多种技术实现复用。提前做好复用计划,将降低开发费用,并增加可复用构件以及构件化系统的价值。

    第7原则:认真思考

    这最后一条规则可能是最容易被忽略的。在行动之前清晰定位、完整思考通常能产生更好的结果。仔细思考,可以提高做好事情的可能性,而且也能获得更多的知识,明确如何把事情做好。如果仔细思考过后,还是把事情做错了,那么,这就变成了很有价值的经验。思考的一个副作用是学习和了解本来一无所知的事情,成为研究答案的起点。当明确的思想应用在系统中,就产生了价值。使用前六条原则需要认真思考,这将带来巨大的潜在回报。

  • 相关阅读:
    js高级-闭包
    js作用域
    js执行上下文与执行上下文栈
    js原型及原型链
    去除数组中重复的元素值
    树[省选联考2020]
    GDOI2020 游记
    Problem b[HAOI2011]
    分零食[JSOI2012]
    移动金币「SDOI2019」
  • 原文地址:https://www.cnblogs.com/kelite/p/3033036.html
Copyright © 2011-2022 走看看