快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

开发手记(三)

    人们常问:“需求、设计、编程、测试四者毕竟哪个重要?” 这个问题不好回答。四者都是软件开发过程中必不可少的环节,光做好其中一个环节并不能产生好的系统,但是做坏了其中任何一个环节,必定对系统产生坏的影响。若站在风险治理的角度讲,也许需求开发与治理是最重要的环节。因为需求是产品的根源,对产品需求的熟悉是否彻底对产品的影响最大。就像一条河流,假如源头被污染了,那么整条河流也就被污染了。庆幸的是我本人既是软件的开发者又是这套系统的最终用户,个人亲身在造价治理部门、投标部门、项目法人结算部门工作过,对系统的大部分需求比较了解,这也给需求分析工作减轻了负担。

    也许是对需求的理解过于自负,因此对水利设计单位的需求调查深度不够,导致了目前系统针对设计单位用户功能的提供存在一个缺陷,而且是不轻易弥补的,这一点的需求与许多模块相关联,牵一发而动全军。正如Frederick Brooks在他1987年的经典文章“No Silver Bullet”中阐述需求的重要性:“开发软件系统最困难的部分就是正确说明开发什么。最困难的概念性工作是编写出具体的需求,包括所有面向用户、面向机器和其他软件系统的接口。此工作一旦有失误,将会给系统带来极大的损害,并且以后对他修改也极为困难。” 软件需求是系统设计之源,具体的需求分析完成后接下来的工作便要进入系统的设计阶段。软件系统设计核心内容包括:体系结构设计、用户界面设计、数据库设计、模块设计、数据结构与算法设计等几方面。根据这套软件的详细开发情况,系统设计预备了两套方案:一个是继续市场上现有水利造价软件的主流设计思路,对其不完善的部分改进并加入一些先进的设计思想。另一种方案是抛弃主流设计思路,另辟新径开发一个面目一新的产品。

    我对两种方案的优缺点进行了对比:第一种方案的长处: 1、 主流水利造价系统结构设计的可实现性具有先例,开发风险系数低。 2、 有大量的老用户习惯了以前的软件操作模式,主流的用户界面和模块画分会给老用户以认识感,用户不用重新学习软件的使用方式。 3、 可以吸收市场上较成熟的同类软件的数据库设计思想,缩短了开发时间。第二种方案的长处: 1、 全新模式设计,可以彻底抛弃现有同类软件在需求、设计方面的不足。 2、 给用户以全新的感觉,避免用户产生新软件是某一款老软件升级版的错觉。 3、 避免了因与某一同类软件的部分结构相似而产生的版权纠纷问题。我对两套方案进行了具体分析对比,权衡利弊决定采用第一个方案。并运用以下方法对第一套设计方案中的不足进行弥补: 1、 彻底分析市场现有同类软件的不足,从需求、设计方面入手,增强系统的功能与操作的人性化,让软件更体贴用户需要。改进计算与导出模块的数据结构算法,提高系统的整体性能。因水利造价治理的需求是随时代发展而变化的,预留软件接口,提高可扩展性。对部分模块全新设计,提高系统的兼容性。 2、 只吸收设计思想,不抄袭整个软件,尽量避免版权争议。 3、 本人在天津水利造价治理领域有一些人脉,因此软件设计主要吸收天津某单位开发的一套系统的优秀思想。即使将来产生版权争议也轻易摆平,再不行还可以合作吗。根据《计算机软件保护条例》第六条的规定,除计算机的程序和文档外,著作权法不保护计算机软件开发所用的思想、概念、发现、原理、算法、处理过程和运算方式。也就时说,利用以有的上述内容开发软件,并不构成侵权。因为开发软件时所采用的思想、概念等均属计算机软件基本理论的范围,是设计开发软件不克缺少的理论依据,属于社会公有领域,不能为个人专有。所以市面上的同类型的软件结构布局、使用方式都有几分相似,这给用户的使用也提供了很大的方便。但他们之间肯定是有差异的,各有长短,一些后者吸收前人的思想并发展继续后异军突起了。因为已经完成了系统需求具体分析,对业务流程十分认识,而这种数据处理系统的技术含量不很高,所以对市场现有水利造价软件的体系结构、用户界面、模块划分的分析相对轻易一些。软件所依靠的数据结构与算法可结合程序实现时一同考虑。在对现有软件的剖析过程中最让人头痛的是数据库结构的分析过程。需要搞清每个库的作用,每个库之间的联系;库中每个表的作用,他们之间的联系;表中的每个字段的作用,他们之间的联系;之后他们所有互相之间的联系。我耗时一个月对软件的6个库、120张表、3000多个字段进行了具体的功能及关系描述,描述文档约有10万字。算起来比全新设计库结构所要耗费的精力一点不少,这样做只是为了增加软件的成功系数。至此软件的分析工作全部完成,接下来的工作就是要真刀真枪的编码了。


返回类别: 教程
上一教程: .NET Framework For Java Programmers ---4(Good)
下一教程: 微软的远程处理框架.NET Remoting(转天极网)之二

您可以阅读与"开发手记(三)"相关的教程:
· 开发手记(一)
· 开发手记(二)
· .NET 开发AutoCAD2006指南(二)
· 基于组件的.NET软件开发(1)
· 使用CodeDom开发基于B/S的.NET+MSSQL代码生成器的随感
    微笑服务 优质保证 索取样品