实战开发经验: 软件系统设计思路

从拿到一个软件需求,到怎么才能去更好地架构好整个系统,在此,我简单地根据我的经验介绍一下我是怎么设计一个软件系统的吧。当然,这只是我的一个简单的思路而已,真正涉及到一个大的软件项目,可能还要复杂很多很多。

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

  1. 调研,完成一份详细的需求文档
系统要实现什么功能
性能上有什么特别的要求
哪些是技术难点,可以的话对技术难点首先测试攻关
  1. 确定系统的运行环境
系统运行的操作系统:widows,linux,unix等
使用何种编程语言:c/c++,java,C# 等
使用何种界面交互环境:console,MFC,WTL,Qt 等等
需要使用哪些第三方库:如 openCV,STL,Boost等
  1. 划分系统模块,设计总体框图
整个系统从大的方向来划分的话,可以分为哪几个模块,每个模块又可以继续划分为哪几个小模块。
每个模块的提供的功能是什么
模块之间怎么交互
  1. 分析模块的需求,抽象出实现模块功能的各个类
本模块可以设计哪些类,哪些类是作为本模块对外的接口?
模块内部的类之间怎么交互?模块间的类之间怎么交互?
类的设计时,需要考虑是否可以通过继承、组合等方式简化设计
画出简单的UML设计图
  1. 设计每个类的属性和方法
每个类有哪些成员变量?提供哪些功能函数?
哪些功能通过继承获取,哪些功能需要用到重载,哪些功能需要利用多态?     
完成类的头文件的定义
  1. 实现每个类的功能及集成测试
编码实现每个类的功能
根据前面的设计,完成类之间的交互代码,实现系统所需要的功能
集成和测试,优化代码,修改bug

猜你喜欢

转载自blog.csdn.net/weixin_38054045/article/details/109112741