用户操作
[即时聊天] [发私信] [加为好友]
ftfind
最近评论
许式伟:我也在CSDN上开了专栏,有空过来逛逛。:)
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 ftfind 桌面搜索引擎的设计文档 (1)收藏

      新一篇: ftfind 桌面搜索引擎的设计文档 (2) | 旧一篇: cppunit 印象

      ftfind 桌面搜索引擎的设计文档 (1)

      马飞涛

      坦白地说,我设计软件时,和很多程序员一样,也不爱写文档。

      后来,发觉如果按软件工程要求,不爱写文档的程序员,就是不成熟的程序员,就是游击队,即使你编程技艺高超,也是山顶洞的史前野人。

      看看按软件工程的要求,都需要写些什么呢?

      一、可行性研究报告.dot
      二、项目开发计划.dot
      三、需求规格说明书.dot
      四、概要设计说明书.dot
      五、详细设计说明书.dot
      六、用户操作手册.dot
      七、测试计划.dot
      八、测试分析报告.dot
      九、开发进度月报.dot
      十、项目开发总结报告.dot
      十一、程序维护手册.dot
      十二、软件问题报告.dot
      十三、软件修改报告.dot
       

      和做智能狂拼的刘定西聊过天,他观察到:程序员的输入法一般都不太好。比如我就是这样,英文打得飞快,中文输入时,得选来选去,速度就慢多了。

      我觉得:如果按这些列表把文档都写下来,手还不写软?哪里还有时间和心情写程序?

      所以不写也罢,我就心甘情愿地做了十多年的山顶洞的史前野人。

      后来,在一个互联网业界的牛烘烘的公司里面作驱动程序的开发,发现新来一个大牛级的人物,也做开发,第1件事情,就是埋头写文档。惹得二牛们满脸羡慕之情,看:别人一来就写文档,真专业。

      这才发现,写文档还有这种好处。

      那个时候,正兴起敏捷开发,就特意号称不写文档。

      真让我思想解放!!! 原来,不写文档的程序员也大有人在,不光是我呀,还有好多人都不爱写呀。

      怪不得有 SourceForge.net: Doxygen 这种能够自动把注释抽取成文挡的软件。

      上半年,我写了一个桌面搜索引擎,类似于google desktop search 。

      下载地址:http://www.18ie.com/find/download.php

      9月18号那天,把它递交到河南省青年软件大赛,看看能得第几名。

      这种青年软件大赛,特别麻烦。说明文挡里需要一大堆软件的设计说明。我也想偷懒,在网络找一个现成的例子,可是没有发现。

      却通过网络搜索发现一个小秘密,原来全国各省的这种大赛的要求是一样的,用了一个模子刻出来的说明书。可叹,中国无人呀。不知道是请那个老教授写的,然后就全国通用了。那个老教授是参考哪本书写的呢?我很想知道,但不得而知了。知道这本书的名称,对理解他所说的技术术语很重要,如果谁知道是哪本书,请告诉我呀。

      河南省青年创新软件设计大赛参赛作品说明书
      (参考目录)
      1.创意说明
      1.1 背景介绍
      介绍作者设计软件的创意背景、定义、名词解释、参考文献。
      1.2 市场定位
      主要介绍作者参赛作品的适用对象、应用前景和市场展望,可以从技术发展、行业应用、个人经历的方面来阐述。
      1.3 需求规格
      1.3.1 一般性描述
      作品与环境之间的关系、作品要提供的功能、用户特征、限制与约束等。
      1.3.2 特殊需求
      包括参赛作品功能、行为需求、性能需求、安全性需求、设计约束和其他。
      1.4 总结
      2.设计规格说明
      2.1 背景介绍
      2.1.1 作用范围
      包括系统目标、系统环境定义(硬件、软件和人机界面等)、主要设计约束和限制等。
      2.1.2 文档
      包括应用的技术参考书、参考标准、采用的技术或技术路线说明,以及在本软件设计工程中采用的项目管理方法、措施和规范制定。
      2.2 软件功能设计
      包括软件结构的功能、系统子系统划分以及公共构件的设计。
      2.3 软件逻辑设计
      可采用面向对象或面向过程的设计法中,设计软件数据流和控制流的任何方法或工具完成(如Rational Rose中的状态图、活动图、User case等),要求包括如下内容:
      数据流设计
      数据库设计(如软件中不涉及数据库管理,可省略)
      控制流设计
      用户界面设计
      2.4 软件运行平台设计
      对软件的开发平台、运行平台和使用场景进行设计,包括系统运行的操作系统、数据库系统及其他支撑环境等。
      2.5 部署与安装设计
      对系统的安装、部署的要求和实现方法进行说明。
      2.6 小结
      3.软件使用说明
      3.1 系统安装说明
      描述重要的安装步骤、脚本参数配置和数据初始化过程。
      3.2 系统使用说明
      说明系统的使用方法,描述主要的功能实现流程。
      3.3 疑难问题解答
      4.商业计划书
      4.1 背景
      进行创业或成果转化的背景介绍,可结合软件来介绍毕业后的职业选择或人生定位。
      4.2 创业思路
      如果你想创建你自己的软件公司,结合你设计的软件产品介绍你可能组建一个什么样的公司(可包括合伙人及股份结构,公司初创规模、雇员 ……)。
      4.3 产品推广策略
      如何把设计出来的软件或软件提供的服务推向市场,并对你的目标客户提供服务

      仔细阅读该本《软件工程》,尽量把老教授的术语和这本书上的术语套在一起。

      (说的好听点是术语,说不好听,就是方言)。现在,我仍然把握不准“控制流设计”是个什么方言,

      我买的那本《软件工程》里,对“控制流设计”几乎没有解释,在网络上能找到好几种说法,到底应该采信谁的?我想应该不是指软件的流程图,也不太象是状态转化图。谁知道确切含义,请给我留言呀。

      花了整整2个星期的时间,才写完了这个文档。现在放在网络上,希望会给大家带来一些帮助: 

      1)对于初学者,会对桌面搜索引擎的内部结构有所了解。

      2)给以后参加此类软件大赛的选手一个参考例子。截至现在2006-10-9日,朝鲜的原子弹都爆炸了,网络上还没有一个参赛的文档可供下载。那就让我来做第1人吧 。

      下载地址:

      参赛文档 doc格式 下载地址:

      http://www.18ie.com/find/ftfind_doc.php

      参赛文档的网页格式:

      http://www.18ie.com/wordpress/?p=43 

      本软件可执行程序 下载地址

      http://www.18ie.com/find/download.php

       

      再发几句戏言,以乐读者:

      1)从来不写文档的程序员,是山顶洞人。(我当过10多年呢)

      2)按照软件工程的要求写文档的程序员,是公元前人。

      3)遵循敏捷开发的程序员,是公元后人。也许2,3的顺序有争议。

      4)用数码相机,摄像机,扫描仪,录音笔、带摄像头的手机,纪录数码文档的程序员,是新人类。如果能有个PLMM把纪录下的视频、照片,录音带,MP3,AVI整理成软件工程要求的文挡,那就是新新人类了。
       

      发表于 @ 2006年10月10日 18:55:00|评论(loading...)|编辑

      新一篇: ftfind 桌面搜索引擎的设计文档 (2) | 旧一篇: cppunit 印象

      评论:没有评论。

      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © ftfind