找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3158|回复: 0
打印 上一主题 下一主题
收起左侧

软件系统设计的一般思路

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-21 15:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近有学弟问我,拿到一个软件需求,但是却不知道怎么才能更好地架构好整个系统,在此,我简单地根据我的经验介绍一下我是怎么设计一个软件系统的吧。当然,这只是我的一个简单的思路而已,真正涉及到一个大的软件项目,可能还要复杂很多很多。

要设计一个面向对象的系统,建议遵循如下思路:  


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
   

好了,就简单地写这么些了,仅仅提供一个思路,希望对新手有用。当然,具体情况还是要具体分析的,顺祝大家学习顺利。有任何疑问或者建议欢迎留言或者来信lujun.hust@gmail.com交流,或者关注我的新浪微博@卢_俊 获取最新的文章和资讯。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表