一、需求非常重要,把需求一定要书面定下来。
主要以文字的形式(手写或是文档)记录下用户需求,尽量详细明白。该部分工作一般由产品部完成,研发经理拿到的一般是个成品。
二、仔细分析需求,把需求分解成不同模块、不同组件来进行实现。称为架构或顶层设计,此步骤非常重要,若设计失败,则可能导致整个项目失败。
a) 根据需求,将整个需求分成不同组件用来实现。比如分成多个DLL(底层DLL)、功能性DLL等。
b) 如果了解多门语言,可以分别用不同语言完成不同的工作,体现各种语言的特性。
三、对每个组件思考,写具体功能文档,利用UML建模实现类图、状态图等图例,比如可以使用StarUML。对于类结构的设计,在可以预见的情况下使用设计模式组织代码,使每个库尽量独立,导出尽可能少的接口。
四、具体代码实现。
当发现设计已经让人感到不舒服时,可以运用重构技术对程序进行重构。以便更好的增加新功能。
编写软件的过程是个设计过程,源代码就是设计。程序清单是代表软件设计的文档。实际上把软件构建出来的是编译器和连接器。测试和调试是软件设计的一部分,对于软件来说,它们就相当于其他工程学科中的设计验证和改进过程。
对于团队编程过程中,可以结合SVN与CC.net(CruiseControl.NET)对源代码进行管理,并用CC.net进行日构建。
五、软件测试。
软件测试需要专门的人员完成,一般测试人员与开发人员的比例为1:3,甚至更高。对于测试,可以采取多种方法,如基本的白盒测试和黑盒测试。管理测试的软件也很多,开源的软件BUG管理器,如BugFree。
六、集成。可以利用源码控制软件(比如SVN)对代码进行管理,同时也方便集成和版本发布。
七、安装盘制作。
推荐软件InstallShield,专业的安装盘制作软件。