我的工程实践为设计实现一个桌面级即时通讯系统,能够实现若干用户在线通信。
1) Collect application domain information– focus on the functional requirements – also consider other requirements and documents
项目需求简述:用户第一次使用前首先要完成注册,然后登录系统。
可以通过账号添加好友,可以删除指定的好友,可以查看好友列表和好友信息
只能与已经添加的好友进行聊天通信
可以查询与某个好友的聊天记录
根据以上需求,我们可以得到:
1.系统的用户为聊天的人,他们具有账号、昵称、性别、签名等属性
2.服务器对所有信息进行管理,提供新用户注册、登录
3.用户可以通过账号添加好友、删除指定好友、与指定好友聊天
2) Brainstorming– focus on the functional requirements – also consider other requirements and documents
名词:用户、服务器、账号、昵称、性别、签名
动词:登录、注册、添加、删除、聊天、提供功能
...组成...表达式:用户由账号、昵称、性别、签名等组成
3) Classifying the domain concepts into– classes – attributes / attribute values – relationships
类名 |
属性 |
服务器Server |
|
个人信息管理InfoAdmin |
|
通信管理ComAdmin |
|
用户管理UserManagement |
|
用户 |
|
类名/类名 |
关系 |
服务器-用户 |
关联 |
个人信息管理-服务器 |
继承 |
通信管理-服务器 |
继承 |
通信管理-用户 |
依赖 |
个人信息管理-用户 |
依赖 |
用户管理-用户 |
依赖/组合 |
4) Document result using UML class diagram