软件是怎么写成的?

 
开发软件的方式多种多样。有瀑布型(Waterfall model),有渐进型(Incremental model),有进化型(Evolution model),有样机型(Prototyping model),有RUP,有XP,有敏捷开发。不一而足。到底应该选用那种方法呢?
 
软件开发归根结底不外乎两方面:技术和管理。技术方面包括分析、设计、编程、调试等。管理包括人员管理、进度管理、风险管理、质量管理、文档管理、代码管理等。而上述这些方法也都是围绕这两方面,不过是各有侧重而已。
 
选择何种方法很大程度上取决于项目的特点和开发团队的状况,而不必拘泥于某一种方法。如果对项目的需求很清楚并有类似的开发经验,不妨采用瀑布型开发方式,因为最省时间。如果对需求不很清楚也没有开发类似项目的经验,可采用渐进型,或渐进型加样机型。
 
我本人一直从事软件工具的开发。每个新功能的开发基本上都是新的挑战。所以,我们用渐进型开发方式较多。
 
在确定开发一个新功能(feature)后,我们会花一些时间考虑总体设计,主要是分模块、分层,一般不会超过一、两个月。主要是弄清高层模块之间的关系,并确定重要的类。我们会画一些模块图、类图和序列图(sequence diagram),使大家对系统有整体了解。大框架确定后,就开始写代码。我们不是每个模块每一层都分别写好后再集成,而是采用功能驱动(feature-driven)的方式开发。我们列出能想到的子功能,排出其先后次序。最重要、最基本的功能先开发。
 
在开发每个子功能时,我们只写这个子功能所必需的类、接口(interface)和方法(method)。然后马上把各模块、各层集成起来,尽快让系统动起来。这样开发组能及时对系统进行直观的评价,这样有助于尽快加深对系统的认识,也能让质量控制组尽早介入,及时提供反馈信息。
 
在开发过程中,各模块、各层的开发基本上是齐头并进的。在我们看来,软件就像是长起来的,而不是拼起来的、搭起来的。随着功能的增多,系统会越来越复杂,而我们对系统的认识也越来越深。我们会随时调整系统的设计。去掉重复的类、重复的函数,引入抽象,引入设计模式,使系统设计逐渐趋于合理。而软件本身也就像一个小树苗一样在精心呵护、修剪下成长为有用之材。
 
当然,这个过程并不简单。需要每个开发成员能自觉地不断改进设计和代码。虽然代码复查能阻止一些错误的发生,但如果开发人员不自觉,很难写出优秀的代码。
 
另外,每个模块都应有一个明确的设计理念(design philosophy),也就是设计目标。例如,有些模块可能强调可重用性,有些强调可扩展性,有些重视性能。在调整设计时要遵循设计理念。
 
我们也重视单元测试,但并不拘泥于测试驱动开发(test-driven development),尤其在设计方案没确定以前。在类之间的关系比较稳定后,我们开始大规模写单元测试案例(unit test case)。在除错时,尽量用单元测试案例复现所要排除的错误。这样单元测试案例就会越积累越多,从而避免类似错误的重复发生。
 
由于系统很早就能运转(尽管功能还很简单),质量控制组能及早介入,提供反馈。这是软件开发成功的关键之一。发现问题要及时解决,尤其是关系到整体设计的问题。
 
不管组员的开发能力多强,开发组一定要有一个明确的领头人(或曰架构师)。架构师要在必要时作出决断,而决断往往在综合考虑各种因素后所做的妥协。架构师即要胸怀目标又要脚踏实地。胸怀目标是有明确的设计理念,知道软件最终要做成什么样。脚踏实地是根据实际情况找出一条通向目标的、风险最小的路,要知道什么时候该做什么,做到什么程度。目标不明确,会走错方向;不脚踏实地,会走上一条崎岖曲折、充满荆棘的路。
 
软件开发是一个复杂的过程。软件业的一些先驱们一直在寻找与软件业类似的行业,以借鉴一些经验。有人认为与建筑业类似,有人认为与手工业类似。把软件看成是一个有生命的实体,让它逐渐长起来,或许也是一个不错的类比。
 
北雁
2006年9月
 
 
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论
石田电子秤资料 一、 石田电子秤最常用的有哪几种类型? 1、 AC-3000型 2、 BC-3000型 3、 AXTRA-XT型 二、如何进入电子秤的编程模式(P00模式)?如何进入电子秤的测试模式(C00 模式)?如何进入电子秤的设置模式(B00模式)? 1、按“9000”键,然后按“模式”键便可进入“P00模试” 2、第一种方法:按任意键不放,然后打开电子秤电源便可进入C00模式 第二种方法:按“复位”键,然后快速按住“复位”键除外的任意键, 便可进入C00模式。 3、按“6000”然后按“模式”键便可进入“B00”模式 三、请说出AXTRA-XT电子秤B00模式的菜单分别是什么? 1、B01:标签 2、B02:POS标志 3、B03:条形码 4、B04:缺省 5、B05:合计 6、B07:开放价格 7、B08:PLU文件选择 8、B09:系统 9、B10:以太网 10、B11:系统计时器 11、B12:密码口令 四、请说出C01包括哪几部份的硬件检测? 1、A/D检测 2、键盘检测 3、显示检测 4、I2NET RAM检测 5、主板程序编号 五、请说出C02内存的清除及初始化操作步骤? C00¬¬¬¬¬模式按2键输入连续按两次“零点”键清除“C02-01” 按“↓” 连续按两次“零点”键清除“C02-02” 按“↓” 连续按两次“零点”键清除“C02-03” 六、如何检测热敏打印头是否正常?更换打印头时要注意些什么? 1、C00¬¬¬¬¬模式è按3键输入è然后按“打印”键可以测试打印头是否正常。 2、更换打印头时,要在C03-01输入打印头相应的电阻值。 七、如何进入标签编辑的简单模式和标签编辑的详细模式? 1、 首先在B01-01中查出电子秤选用哪类标签(1-4)然后进入C00¬¬¬¬¬模式è按7键输入è输入标签类型号(如按4输入)è按“商品号码”键。 2、 在进入标签编辑的简单模式的前提下,按“尺寸”键就进入详细模式。 八、有一打印头左边的发热丝已坏,打印出来的条形码不能通过扫描器,现条形码的X轴的值为12mm,现将条形码向右移动12 mm。标签格式为4,条形码的单元号为1,请详细说出操作过程。 C00¬¬¬¬¬模式è按7键输入è按4输入è按“商品号码”键(进入C07-01 0 01 0012) è按24输入è按“终了”键。 九、请在下横线上填上B00模式各单元所代表的内容。(以BC-3000为例) B01-01 标签格式 B01-07 输入标签长度+标签间距的值 B01-09 标签感应器的距离(一般默认为107.5 mm)

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

beiyan

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值