实战软件DIY1

来源:互联网 发布:win10 windows功能 编辑:程序博客网 时间:2024/06/08 00:46
 

开发一个属于自己的软件?让流行软件的包装打上你的名字?也许这是最令你感到振奋的事情了。然而,这并不是很容易做到的事情。如何从一个好的思路出发,到软件的最终出品,个中艰辛足以让你感到迷茫……本文将围绕笔者自行开发的免费软件《FlashNow!动画浏览器》的具体开发过程,循序渐进,深入浅出,向读者朋友简单介绍软件开发的相关知识。

 

需要指出的是,软件开发是一件很严谨的事情,据说需要完整的系统的软件工程理论知识;对于软件开发,每个人也会有自己钟爱的开发方法和习惯(正如有的人偏爱于用左手写字一样)。本文不想花多大的篇幅讲述令人头疼的软件工程、软件管理的概念,毕竟我们更多的潜在的“开发商”群还基本上就是那些古里古怪的只热衷于物理代码的程序员们,而程序员的特点,很简单,除了激情十足,就是懒散。抽象的概念总会让人头疼,本文所想做到的,就是根据笔者实战的具体过程,向读者朋友们推荐一种实际可行的方法,而绝不是理论。跟着我来,Do It Yourself!我真诚的希望:通过本文,读者朋友能够学到一点真正有用的东西。

0. 前言

开发一个属于自己的软件?让流行软件的包装打上你的名字?也许这是最令你感到振奋的事情了。然而,这并不是很容易做到的事情。如何从一个好的思路出发,到软件的最终出品,个中艰辛足以让你感到迷茫……本文将围绕笔者自行开发的免费软件《FlashNow!动画浏览器》的具体开发过程,循序渐进,深入浅出,向读者朋友简单介绍软件开发的相关知识。

需要指出的是,软件开发是一件很严谨的事情,据说需要完整的系统的软件工程理论知识;对于软件开发,每个人也会有自己钟爱的开发方法和习惯(正如有的人偏爱于用左手写字一样)。本文不想花多大的篇幅讲述令人头疼的软件工程、软件管理的概念,毕竟我们更多的潜在的“开发商”群还基本上就是那些古里古怪的只热衷于物理代码的程序员们,而程序员的特点,很简单,除了激情十足,就是懒散。抽象的概念总会让人头疼,本文所想做到的,就是根据笔者实战的具体过程,向读者朋友们推荐一种实际可行的方法,而绝不是理论。跟着我来,Do It Yourself!我真诚的希望:通过本文,读者朋友能够学到一点真正有用的东西。

0.1 好的软件开发

那么,怎样才能保证好的软件开发呢?一般认为,以下几个方面是缺不可少的:

²        好的软件思路。idea,这是前几年IT业界非常时髦的话题,出过国的、没出过国的ITer,只要谈到企业生存之道,总会提及good idea。确实是这样,好的思路对于软件开发来说尤为重要,它可以大大激发软件开发的激情,有利于软件开发过程的顺利开展,好的idea会给你带来大把大把的钞票。要学会比较和鉴析,但不要抄袭。不要重复人类劳动,这很重要;

²        好的软件管理。软件管理是一件烦琐的事情,但不掌握好软件管理更是一件烦琐的事情,不要“做一天和尚,撞一天钟”,要有计划和有效的管理;

²        好的软件实现。“工欲善其事,必先利其器”,选择合适的高效的开发工具,正如选择了一把锋利的战刀,非常重要,不要企图再用DEBUG来编写一个Windows程序。记住,要最合适最高效的工具,而不是最好的,不要人云亦云。原因很简单,没有最好的;

²        好的软件测试。软件测试是很重要的环节,Java程序员通常认为软件测试应该占用不少于30%的时间,好的测试环境和测试工具有利于软件的整体开发。程序员,包括你,用脚趾都知道:调试一行代码要比编写一行代码令人难受的多。因此,准备好的测试环境和测试工具,准备好的测试,会让你的软件开发顺利得多;

²        好的软件文档。简明完整的软件开发文档是软件开发过程中非常重要的环节,作为程序员,30%的工作时间用来撰写技术文档是很正常的。缺乏文档,一个软件系统就缺乏生命力,在未来的查错、升级以及模块的复用时就都会遇到极大的麻烦;

²        好的软件界面。如果还希望你的软件给你带来更大的喜悦的话(包括名气和利润),那就给你的软件准备好友好的UI(user interface,用户界面)。友好的界面风格,详尽的帮助文档,不是你所喜欢的,但为了出名和赚钱,你必须做。

0.2 软件开发过程

按照传统的观点,完整的软件开发包括以下几个阶段:

²        项目启动:启动你的软件项目,包括问题定义、可行性分析和制订计划。确定该软件的开发目标和总的要求,探索这个问题是否值得去解,是否有可行的解决办法;并根据对开发系统的理解,制订出软件开发全过程总的计划进度安排;

²        需求分析:确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求;

²        系统设计(概要设计和详细设计):概要设计要先确定系统具体的实施方案;然后进行结构设计,确定软件结构;详细设计就是在概要设计的基础上,考虑“怎样实现”这个软件系统,直到对系统中的每个模块给出足够详细的过程性描述;

²        软件实现(编码):将系统详细设计的结果翻译成用选定的语言书写的程序。

²        测试及运行维护:通过各种类型的测试及相应的调试,使软件达到预定的的要求。

听起来一套一套的,没什么大不了的,实际上,包括你,大部分程序员做软件开发时,潜意识的,大抵还是按照以上的路子走的;这些的阶段之间,也并没有什么严格的界限,各个阶段的反复和交错是常有的事情;此外,对于小的软件项目,以上的每个步骤也并不总是必需的。只要保证好的软件质量和开发效率,你甚至完全可以不理睬以上这些说法,去走自己的路子。

好了,准备好了吗?下面我们马上进入紧张有序的实战训练中去……

 
原创粉丝点击