首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

请教怎么规划软件

2013-01-02 
请问如何规划软件?本帖最后由 jpinglove 于 2009-09-29 04:02:54 编辑写得有点长,不过思路简单,请各位耐心

请问如何规划软件?
本帖最后由 jpinglove 于 2009-09-29 04:02:54 编辑 写得有点长,不过思路简单,请各位耐心看完.

小弟学写代码已经有一段时间了.
之前也写了几个小程.

现在我在开发的时候遇到了一个瓶颈.
就是不会规划软件.

打个比方,我要写一款软件,我不知道从哪里下手,
1. 不知道应该设计几个类.(至少思想当中不是那么清晰明了)
2. 即使想出了几个类,也不太清楚类方法或者说函数中的参数应该是什么?(是基本类型呢,还是结构体呢,还是个类呢?)
3. 也不知道类和类之间应该怎么样结合.(类和类之间,应该通过什么来通信呢?)
我现在的做法是,把所有类的属性和方法或说函数,全设成public的,这样,只要一个类有这个类的实例,就能访问这个类的属性和方法.


而最让我头疼,一丁点也不会的 , 就是 , 如何设计这个程序的流程.
比如,哪个功能应该放在前面先执行,哪个功能应该放到后再执行.
有的时候,有些事情,在我看来,应该都是差不多重要的.
不知道应该先把哪个放到前面.

我现在碰到一个问题,就是一个程序需要24小时不间断的连续执行.就是那种用户只要点击"开始"程序就自动运行直到用户点"停止"为止.

在这24小时期间,程序会根据时间的变化,系统环境的变化,数据文件的变化,网络的变化...等等,会根据不同的变化做不同的改变,收集不同的信息,做不同的记录,做不同的反馈.

以前我写的程序都是那种,人机交互式,逻辑由人来判断的.比如:
像,有一个程序有三个按钮,第1个是"查找C盘上test.txt"文件,第2个按钮是 打开个这个文件并写一串字符到文件, 第3个按钮是移动文件到D盘.

像上面这样的程序,在我感觉上来说,是完全人机交互式.是由人来做出,程序下一步应该做什么的.
比如,查找不到这个文件,程序会给出一个提示,然后这个人会知道,"哦,原来C盘上没有这个文件."
那么下一步,这个人 不会打开这个文件,也不会移动这个文件了.
这个逻辑思想是由人来发出的.

而现在我遇到的的情况是,把其中的某个操作 进行了N倍的放大.
先拿这个程序来说,以前是由人按查找按钮,程序开始找文件,找到了给个提示,找不到也给个提示.
改成一个按钮来说,那么就是: 程序开始在C盘上查找这个文件,找到了,就写一串字符到文件,然后移动文件;
如果找不到这个文件,那么这个程序什么也不做,给用户个提示.

当然,这种应该太简单了,我只是举个例子.
而我现在真正要做的小项目,就是我刚才的那句话,把这个操作进行了N倍的放大.


有太多的繁文缛节要处理,大循环里有小循环,小循环里还有小循环,下面还有小循环,
循环里有判断,判断包括循环...............
想着想着,自己的脑袋就成酱糊了.
乱得什么也没有了,什么了思路了方法了.哎, 自己的脑袋里会无形中隐约的冒出一个想法,这个程序我写不了.

所以我来请教各位一种方法,如何来规划程序如何设计程序.
像大型的项目好几个G的都一样能写出来,更何况 我这也就1 2M的小程序呢.
我想主要是我不会规划和设计程序.

请问,我该怎么做呢,应该学什么东西, 最好给些资料.



[解决办法]
从需求入手,先设计用例。

[解决办法]
先搞清楚架构,不要一开始不管宏观微观就一揽子都考虑
[解决办法]
UML + RUP是最好的入门。
了解掌握之后再选择是否换别的。
刚开始不要敏捷,先了解基本。
有些人把RUP说得很不好,其实RUP刚好可以回答你提出的问题。
UML是基础。

热点排行