软件系统设计思路
2016-03-02 15:56
351 查看
拿到一份需求,项目负责人是怎么想的?整个项目的架构设计和思路又是怎么样的?希望能有大师能够指点一下迷津。 下面是我转载的一篇文章,大家也可以指出哪里可以补充或者需要特别指出来的。谢谢。
要设计一个面向对象的系统,建议遵循如下思路:
1. 调研,完成一份详细的需求文档
(1)系统要实现什么功能
(2)性能上有什么特别的要求
(3)哪些是技术难点,可以的话对技术难点首先测试攻关
2. 确定系统的运行环境
(1)系统运行的操作系统:widows,linux,unix等
(2)使用何种编程语言:c/c++,java,C# 等
(3)使用何种界面交互环境:console,MFC,WTL等等
(4) 需要使用哪些第三方库:如 openCV,STL,Boost等
3. 划分系统模块,设计总体框图
(1)整个系统从大的方向来划分的话,可以分为哪几个模块,每个模块又可以继续划分为哪几个小模块。
(2)每个模块的提供的功能是什么
(3)模块之间怎么交互
4. 分析模块的需求,抽象出实现模块功能的各个类
(1)本模块可以设计哪些类,哪些类是作为本模块对外的接口?
(2)模块内部的类之间怎么交互?模块间的类之间怎么交互?
(3)类的设计时,需要考虑是否可以通过继承、组合等方式简化设计
(4)画出简单的UML设计图
5. 设计每个类的属性和方法
(1)每个类有哪些成员变量?提供哪些功能函数?
(2)哪些功能通过继承获取,哪些功能需要用到重载,哪些功能需要利用多态?
(3)完成类的头文件的定义
6. 实现每个类的功能及集成测试
(1) 编码实现每个类的功能
(2) 根据前面的设计,完成类之间的交互代码,实现系统所需要的功能
(3)集成和测试,优化代码,修改bug
要设计一个面向对象的系统,建议遵循如下思路:
1. 调研,完成一份详细的需求文档
(1)系统要实现什么功能
(2)性能上有什么特别的要求
(3)哪些是技术难点,可以的话对技术难点首先测试攻关
2. 确定系统的运行环境
(1)系统运行的操作系统:widows,linux,unix等
(2)使用何种编程语言:c/c++,java,C# 等
(3)使用何种界面交互环境:console,MFC,WTL等等
(4) 需要使用哪些第三方库:如 openCV,STL,Boost等
3. 划分系统模块,设计总体框图
(1)整个系统从大的方向来划分的话,可以分为哪几个模块,每个模块又可以继续划分为哪几个小模块。
(2)每个模块的提供的功能是什么
(3)模块之间怎么交互
4. 分析模块的需求,抽象出实现模块功能的各个类
(1)本模块可以设计哪些类,哪些类是作为本模块对外的接口?
(2)模块内部的类之间怎么交互?模块间的类之间怎么交互?
(3)类的设计时,需要考虑是否可以通过继承、组合等方式简化设计
(4)画出简单的UML设计图
5. 设计每个类的属性和方法
(1)每个类有哪些成员变量?提供哪些功能函数?
(2)哪些功能通过继承获取,哪些功能需要用到重载,哪些功能需要利用多态?
(3)完成类的头文件的定义
6. 实现每个类的功能及集成测试
(1) 编码实现每个类的功能
(2) 根据前面的设计,完成类之间的交互代码,实现系统所需要的功能
(3)集成和测试,优化代码,修改bug
相关文章推荐
- c# 事件的完整声明方式
- HTML---code标签和pre标签
- 企业如何制定年度营销战略
- 代码存档
- 几种常用的Interpolator(插值器)的动画效果
- 校园网&openwrt记(五)构造udp包,Lua的int32运算和bit运算
- sys模块
- MultiThreadedHttpConnectionManager
- Swift - 多线程实现方式
- 手动清除网卡IP地址的方法
- Android最佳性能实践
- 企业如何组织年会
- linux下vsftp的搭建
- 写一个带有“请选择的”的下拉框,需要用到 map(用于设置默认值)和 Array(用于填充数据)
- 管理的一些要素
- C++第一次实验_三角形
- pb函数库之字符串操作
- HttpURLConnection对象
- php中的curl使用入门教程和常见用法实例
- Dependency Parsing 依存句法分析