日期:2014-05-20  浏览次数:20772 次

软件架构?流程?UML?开发文档?...
   大家好!
   小弟在一个刚刚起步的软件公司,各个方面还都不健全,想向各位请教一下关于开发流程/项目管理/软件架构相关的问题。
   在接到一个新的项目后,各位大神/诸位公司的大神都是如何设计项目的整体框架的,对于一个新的项目,各位大神都是如何进行软件架构的?
1,在设计框架的过程中都用到什么工具/软件?

2,是否画UML图,UML图详细程度又如何,详尽到将每个类中应该实现的函数名称和功能都定下来?

3,开发的过程中是否写开发文档?开发文档具体都写一些什么内容(函数的使用方法?)?

4,从接到项目到最终发布整体流程是怎样的?

5,开发过程中时间又是如何掌控的?

6,项目经理是否知道各个成员所写的函数都如何用?比如说,项目开发完成之后,发现某个功能存在Bug,而这时候开发     这个功能的团队成员已经离开了,项目经理是否能够很快的将其解决?安排一个新人研究代码还是自己直接就很快的搞定?

7,项目经理给团队成员分配任务一般是按照什么方式,是按照功能模块来,还是直接安排某人完成某些设计好的类(在第2点中提到的UML设计好的那些类)?

8,有没有相关的资料/书籍推荐一下?


   问题比较多,但是我现在只能发表100分的帖子,不知道是论坛规定还是我的权限问题。
希望各位大侠能够指点迷津,谢谢!
------解决方案--------------------
我采用极限编程方式,在编程方便具体地说就主要是测试驱动开发和持续发布(几天就正式发布一个版本到生产服务器)的理念。
------解决方案--------------------
关于你说的2.问题,我觉得那种说法是最难以分辨清楚的。你问一个建筑师是否会在每一个水泥预制件上签名字?显然他需要为其架构负责!但是未必要签名字。

软件的每一“一砖一瓦”每天都几乎会被成千上万次地(自动)测试到,而且任何问题都会立刻解决。但是正因为有这种能力,所以有勇气经常重构,架构是一种经常变动的东西,而不是什么预先写文档来定下来的。

敏捷开发过程不是围绕文档来开发的,而是围绕测试来开发的。编程的目的就是为了让测试通过,测试(我指的是设计而非低级的手工执行)的目的才是为了市场。编程目的一点也不点也不高尚,程序能够通过测试就可以了。测试才是开发目的。
------解决方案--------------------
建议你系统地学一学,有专门的架构师/团队管理的培训。
------解决方案--------------------
刚起步,如果软件到不了一定规模的话,就从简一下也可以了,按cmmi1.0的要求做就可以了
------解决方案--------------------
这些问题因实际情况而异,别人的模式在你这可能也并不适用。

像在设计框架中使用的工具或软件,应该没有哪种工具说我通过它就能直接生成相关的框架。所谓此类工具大多是提供流程图、UML图等功能来较清楚的展示框架结构,方便成员间的交流,像visio、rose等。甚至在白板上用手画这些图也是可以的。

如何探索一种适合自己的模式才是最主要的。

对于设计,顶层设计(框架设计和架构设计)始终掌握在几个人手里,他们在宏观上把握整个方向。
对于开发,应首先建立起开发模式机制,像1楼所说的极限编程模式。这样才会管理起整个开发流程。
对于文档,文档只是一种软件产品的辅助,在开发过程中可能会有各种各样的文档,像需求分析报告、架构设计说明书、概要设计说明书、详细设计说明书、数据库设计说明书等等。但此类文档并不是必须,但若有则必须跟程序一致。
------解决方案--------------------
这个话题能切壶茶谈一下午,呵呵
------解决方案--------------------
很简单就是不管什么,能达到实现的目的就可以了!