走在架构师的大道上 Jack.Wang's home

Java, C++, linux c, C#.net 技术,软件架构,领域建模,IT 项目管理 Dict.CN 在线词典, 英语学习, 在线翻译

BlogJava 首页 新随笔 联系 聚合 管理
  195 Posts :: 3 Stories :: 728 Comments :: 0 Trackbacks
前言
       最近应 P2P 课程的要求,组织了六个同学开发取名为 NesQQ  的小系统。等开发完, 会把他共享,供初学者学习,现在只把开发控制文件共享。传统的项目会有启动,开发,实施,收尾的过程,而在这个项目中,结合实际,只做了个控制文件,俗话说麻雀虽小五脏俱全。感谢所有参与这个项目的人员,你们已经开始 Open Source 的第一步。关注 Java, 关注开源。
      第二次会议记录
          1. 时间
              2007-10-24 星期三
          2. 地点
              501 教室
          3. 参加人员
              XXX 小组全部成员
          4.主要内容
              4.1 讨论参考文档内容
              4.2 讨论需求
              4.3 确认 2007-10-28 再次开会
      第三次会议记录
             时间:2007-10-31
             地点:227 寝室
           1. 近一周的进展情况
           2. 进一步明确需求
           3. 讨论设计实现(每个人都发表意见)
           4. 分工及协助方式(没有时间限制,但会有里程碑和缓冲时间)
           5. 相关经验介绍 (每个人都发言, show yourself)
正文
 

案卷号

01

版本号

1.0

日期

2007-10-17

 

 

 

 

<通讯系统NesQQ>

小组开发参考文档

 

 

                                                                者:          汪保杰          

                                                            完成日期:         2007-10-17             

                                                            人:                               

                                                            签收日期:                               

 

          修改情况记录:

版本号

修改批准人

修改人

安装日期

签收人

  

 


小组开发参考文档

引言

1 编写目的

2 范围

3 参考文件

4 沟通方式

5 技术与工具

6 WBS (人员分配,进度计划)

7 用例模型

8分析与设计

9 参考界面

10测试

11 公开演示

12 项目总结


引言

这个学期我们上了网络课,学习了 TCP/IP 协议,也看了林老师发给我们的 winsock 代码,我们对 socket 编程有了一定的了解,但这还不够。故此,学校组织了一些专题讲座,也组织同学以组为单位开发关于 socket 方面的小系统,小组最多 6 个人。

小组人员: 彭东石,周鑫,李鹏,龙晓泉,邝月娟, 汪保杰(组长)

人员简单介绍:

          彭东石: 擅长硬件,在深圳工作两年, 熟悉语言 C++, 做过team leader pdongshi@foxmail.com

          周鑫:   擅长软件开发,原软件学院学生,目前在公司做项目. 熟悉 C#,Java 语言zhouxin830723@163.com

          李鹏:   擅长软件开发, 熟悉 Java 语言.lipeng82@126.com

          龙晓泉: 擅长软件开发, 熟悉 Java 语言.lxq5270@163.com

          邝月娟: 擅长软件开发, 熟悉 Java 语言.kyjnihao@yahoo.com.cn

汪保杰: 擅长软件开发, 在深圳工作3年多,熟悉 C++, Java,做过系统分析员 wbjeasygo@163.com

     开发方式:

        先给大家一开源的 Demo 一下,大家以他为开发模板完成开发工作。

        大家尽量用网络资源学习。

1 编写目的

    为了明确小组系统开发范围以及开发注意事项,同时也叫部分没有参与过系统开发的同学了解软件开发过程是一个什么样的过程,本次开发,一是要从中学习技术,二是要学习如何管理一个项目,尤其是处于我们这种模式的项目(人很分散,部分人不能上手开发)。这对大家都是一个挑战。

关于开发相关的文档合并在这一个文档里,供开发时参考。同时此文档也作为一个交流平台。

目的很明确,希望大家能从这次开发中学到些东西,可能不只是开发哦!

2 范围

A   软件名称:简易通讯系统 NesQQ

B   软件功能

     分两个层次 (两次迭代完成,至少完成第一层次功能)

1.             基本的 p2p交流

包括登陆模块,管理好友模块, 群功能模块,特定好友聊天模块

                2.     文件共享,视频,语音功能

            

3 参考文件

Thinking in java

Java 编程规范》

Java 1.5 API

Java 高级编程》

Swing , SWT,JFace编程》

4 沟通方式

1. 每天利用课余时间交流

2. 每个星期开个小会

3. QQ 群为我们的即时通讯工具, 必要时可以用 Email

5 技术与工具

1. Java 语言 (1.5), 开发工具 eclipse 3.2

2. 数据存贮可以考虑 DB(sqlserver).

3. 建模工具用 StarUML , PowerDesigner

6 WBS (人员分配,进度计划)

1. 简易通讯系统 NesQQ

 1.1.前期准备

    1.1.1 需求确认 (OK,(ALL))

    1.1.2 分析设计 (OK,(ALL))

 1.2. 第一次迭代

    1.2.0. 数据中心模块 (保杰)

   1.2.1. 登陆模块 (东石)

   1.2.2. 用户管理模块

       1.2.2.1 好友查询(小泉)

       1.2.2.2 用户注册(月娟)

       1.2.2.3 查看所有聊天记录(小泉)

       1.2.2.4 组功能模块(保杰)

   1.2.3. Socket 封装 (周鑫)

    1.2.4. 聊天模块 (周鑫)

    1.2.5. 主界面模块(李鹏)

    1.2.6. 服务器模块(取消)

 1.3. 第二次迭代 (目前不考虑)

    1.3.1. 文件共享

    1.3.2. 视频
 
1.3.3. 语音

 1.4. 第三次迭代

     1.4.1. 功能完善,界面美化( ALL)
     1.4.2. 验收测试(ALL)



ALL: 所有人

PS: 鉴于实际情况,小组开发没有时间限制,但会有里程碑和缓冲时间.


进度计划:

191011周,截止到 2007-11-16 完成基本功能,11周星期五第一次集成

   第一次集成里程碑

212 周,截止到2007-11-23,星期五,功能完善,美化

313 周的星期一,二,三,四 最终集成,测试,美化

   最终集成里程碑

413 周的星期五 准备报告

514 周为缓冲时间(可进一步完成其他功能)

   报告里程碑

7 用例模型

1. 参与者: 注册用户

2. 注册用户

 2.1. 登陆和注册

用例名称

登陆和注册

用例目标

提供用户登陆系统和注册界面

参与者

注册用户

前置条件

输入

ID编号 (登陆时用)

姓名

口令

Email

性别

UserIP

服务端口号

操作

输入ID,Password 登陆,

输入相关信息注册ID

输出

登陆: 成功进入主界面

      失败弹出警告信息

注册: 成功弹出成功信息

      失败弹出警告信息

后置条件

2.2. 好友管理

用例名称

好友管理

用例目标

提供好友的管理(增加,删除)

参与者

注册用户

前置条件

已经登陆系统

输入

增加:

    好友 ID

    群组 (将好友添加到哪个组中)

删除:

    在主界面右键单击删除

操作

输出

好友以 Tree 结构显示

如:

同学:

    张三

    李四

同事:

老师:

后置条件

2.3. 组管理

用例名称

组管理

用例目标

提供组的 CURD

参与者

注册用户

前置条件

已经登陆系统

输入

组名称

组描述

建立者

组下面的好友

操作

输出

Tree 型结构显示

如:

同学

    张三

    李四

同事:

老师:

后置条件

2.4.  查看聊天记录

用例名称

查看聊天记录

用例目标

查看和某个好友聊天的记录

参与者

注册用户

前置条件

输入

好友ID编号

操作

输出

显示记录

   时间

好友

   内容  

后置条件

2.5.       客户模块

用例名称

客户模块

用例目标

提供向好友发送信息

参与者

注册用户

前置条件

已经登陆系统

输入

好友名字

信息内容

信息发送时间

操作

输出

成功与否

后置条件

2.6.       信息保存

用例名称

信息保存

用例目标

当好友不在线时,将所发信息保存在数据中心

操作

Schedule Thread 负责信息再发送。

输入

信息发送者

信息接受者

消息内容

消息创建时间

8分析与设计

数据库设计:

 用户数据模型

属性名称

英文名

类型

备注

编号

ID

NUMBER(10)

自动生成

姓名

User Name

NVARCHAR(50)

用户名称

口令

Password

NVARCHAR(16)

要限制密码长度

Email

Email

NVARCHAR(50)

前端要验证 Email 是否有效。

IP地址

UserIP

NVARCHAR(20)

自动获取IP 地址

服务端口号

ServicePort

NUMBER(5)

提供默认值

分组模型

属性名称

英文名

类型

备注

ID

Id

NUMBER(10)

自动编号

组名称

Name

NVARCHAR(20)

限制大小

建立者

UserId

NUMBER(10)

建立日期

CreateDate

Date

 用户和组的关系模型 (Many to Many)

属性名称

英文名

类型

备注

ID

Group Id

NUMBER(10)

自动编号

用户ID

User Id

NUMBER(10)

自动编号

信息数据模型

属性名称

英文名

类型

备注

信息 ID

Id

NUMBER(10)

自动编号

发送者

Sender

NUMBER(10)

消息内容

Content

NVARCHAR(255)

限制大小

创建时间

CreateDate

Date

信息和接受用户的关系 (one to many) 目前先实现单用户发信

属性名称

英文名

类型

备注

信息 ID

message Id

NUMBER(10)

自动编号

用户ID

User Id

NUMBER(10)

自动编号

数据库名称 nesQQ

用户名/密码 nesQQ/nesQQ

系统设计:

   物理结构图:

    
概要设计:

        基于 P2P 思想,每个 Peer 实现 clientServer 两个功能。对应两个端口。

          一个端口负责服务,一个端口负责发送消息。

        当好友不在线时,将数据存储在数据中心(Client 端有专门的线程负责重发)

       (目前好友不在线,不能聊天)

9 参考界面(参考)

1登陆界面
 

  2. 其他

10测试

单元测试:

    在提交代码时必须保证已经进行过完整的单元测试。可以考虑用 JUnit 自动测试或者是用界面驱动测试.

集成测试:

    大家确保将完整的 Source code 提交给我,由我进行集成,等测试 ok 之后,在将新的 Source code 转给大家 (简单的协作实现软件的配置管理)

组内验收:

    开会演示,当前成果.

11 公开演示

项目提交,相关文档制作 (演示 ppt) 由组长负责,其他事项由东石组织.

12 项目总结

附录:

对于需求不明确和需求变更多的应对措施主要有:

1.快速原型-尽快给用户一个快速原型启发用户的需求。

2.增量迭代-整个开发中遵循增量迭代的思路,加强各阶段与用户的沟通,对各个功能逐步完善本文转自项目

3.架构考虑可扩展性-架构和设计都要考虑是为变更而设计,而不仅仅是满足当前需求。

4.需求开发-需求人员不仅仅是描述清楚用户需求,而更多的应该是去开发用户需求,去挖掘用户的潜在需求。

通信协议表

 





本博客为学习交流用,凡未注明引用的均为本人作品,转载请注明出处,如有版权问题请及时通知。由于博客时间仓促,错误之处敬请谅解,有任何意见可给我留言,愿共同学习进步。
posted on 2007-11-07 15:36 Jack.Wang 阅读(5140) 评论(24)  编辑  收藏 所属分类: 项目管理

Feedback

# re: NesQQ 项目控制文件分享 2007-11-07 15:53 BeanSoft
朋友路过请留言

支持一下! C++ 开发?  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2007-11-07 15:58 Maggie
支持支持!!  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2007-11-07 21:11 yz
早就想开发一个类似通信的软件了!是基于JAVA开发的吧!苦于没有时间,现在在做项目开发!  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2007-11-08 10:43 CoderDream
支持分享!  回复  更多评论
  

# re: NesQQ 项目控制文件分享[未登录] 2007-11-08 16:55 L2
不错!
一看你们的需求知道是“练过”的。
关注!!!  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2007-11-09 08:51 astamei
一看就知道是软件工程出身。
是吧?


其他相关专业 一般对文档的要求没有这么高。
  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2007-12-14 09:25 yz
这篇文章放了这么久,我都来过几次了,怎么不见发布出来?难道是在作秀??  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2008-08-03 18:47 李陪陪
我要  回复  更多评论
  

# re: NesQQ 项目控制文件分享[未登录] 2008-08-17 11:20 每一天
支持^^等待^^  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2008-10-12 12:08 f
请发布  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2009-02-28 04:38 gfg
sfgsfgsdfg
  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2009-05-16 09:12 秦毛
可以给我发份NES版的QQ吗?mygoodatall@163.com 先谢谢楼主了!!!  回复  更多评论
  

# re: NesQQ 项目控制文件分享[未登录] 2009-05-28 02:24 cheng
下载软件  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2009-06-04 15:51 caoguoqing
371658746@qq.com 可以给我发个吗?(*^__^*) 嘻嘻…… 谢谢啦  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2009-08-09 23:13 李特
可以给我发份NES版的QQ吗?saiter001@163.com麻烦你了楼主  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2009-10-05 10:03 韩亚东
可以给我发份NES版的QQ吗?1136988397  回复  更多评论
  

# re: NesQQ 项目控制文件分享[未登录] 2009-12-20 09:34 天天
还有这软件啊  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2010-01-08 01:41 5566
可以给我发份NES版的QQ吗  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2010-03-12 16:50 LIXUFENG
gei w yi ge y ouxiang 497353042@qq.com  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2010-09-05 10:57 觉得糊精
@cheng
  回复  更多评论
  

# re: NesQQ 项目控制文件分享[未登录] 2010-12-21 22:53
一直都再找nes的QQ,把NES版的QQ给我一份呗!
mimi100703@126.com  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2011-03-17 07:33 l1003200@qq.com
@BeanSoft
一点也不方便  回复  更多评论
  

# re: NesQQ 项目控制文件分享 2011-03-17 07:34 l1003200@qq.com
e   回复  更多评论
  

# re: NesQQ 项目控制文件分享 2011-03-17 07:34 l1003200@qq.com
不真么方便  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: