2024年6月12日发(作者:)
C/C++武穆遗书
技术篇 一.软件设计基本步骤[初稿]
一.软件设计基本步骤:
第一步:明确总体需求,你要做的是一个什么软件,用一句话表述之.
第二步:需求分析,需求捕捉,撰写需求文档,不断细化,确认需求.
第三步:总体设计.
A.
考虑哪些东西是独立与具体程序的.
这些东西尽量采用现成的高质量的支持库/模块.
B.
考虑哪些东西是你的程序要重点关注的,这些东西是你的程序
的真正价值所在,你再怎样重视这些东西都不过分.
第四步:详细设计.
确定各个模块及其交互接口,设计好模块之间的通信协议,调用关
系.
第五步:逐个模块实现,并做充分测试,在进行系统集成之前,每个模
块
自身的测试做得越充分,系统集成调试就越容易完成.
第六步:系统集成调试,然后提交内部测试,然后提交外部测试,
修改反馈回来的BUGs,确认无误后方可提交发布.
?哪些东西是独立于具体程序的?
1.算法
---------------------------------------------------------
对数据进行操纵的许多算法:排序算法,搜索算法,遍历算法.
这些基本算法也是独立于程序的,可以独立为算法支持库.
C++ STL中的算法是个很好的例子.
2.数据结构
---------------------------------------------------------
数据结构用来容纳各种各样的数据,这些容器也是与具体应用无关
的,
可以独立成库.C++ 中的STL是最好的例子.
!!!利用这些基础容器,你可以存储用于表示程序内部任何结构的信
息.
3.用户界面
---------------------------------------------------------
包括控制台界面和图形用户界面,这也是独立于每个程序的东
西.
对用户界面的支持也可以并且非常有必要独立为一组用户界面
支持库.
MFC,WTL,VCL,GTK,GTK+,wxwidgets,QT等都是GUI界面库的例
子.
!!!有了用户界面基础库,你可以在其基础上实现任意形式的界面.
通常,用户界面相关的处理可能占用50%以上的编程时间,因此,
尽量使用已有的更符合你的需求的界面模块,而不是从头开始
用基础界面库自己构造全部界面.
4.数据库访问.
有相应的数据库访问支持库.各种支持库提供的接口封装程度各不
相同,
有C函数的,有C++类的,有COM接口的,有.NET接口的...
5.网络通信.
----------------------------------------------------------
同样有独立于具体程序的支持库.
各种支持库提供的接口封装程度各不相同,
有C SOCKET API的,有C++ SOCKET封装类的,还有更高级的网络通
信框架
如ACE的.
6.字符串处理.
--------------------------------------------------------
每个程序几乎都需要处理字符串,所以字符串处理可以单独
做成一个独立的库:
*在C中是char* 类型和一组操纵char*类型的函数.
*在C++中是一个字符串类string,CString等.
*正则表达式库则是专门用来进行字符串匹配的.
从编译器构造到诸如email地址检查,都可以用它来处理.
!!!提供一个字符串基础库,可以进行几乎任意的字符串处理.
7.文件读写.
---------------------------------------------------------
file IO也是独立于程序的.如INI,XML,BMP,JPG等文件处理.
!!!提供一个文件IO基础库,可以对任意文件进行处理.
8.程序运行日志logging.
---------------------------------------------------------
logging也是可以提升为独立模块的,进一步可以演变为log框
架.
!!!提供一个log基础模块,几乎可以对任意信息进行log.
log4cplus,log4cpp是比较好的log框架.
9.操作系统服务的使用.
---------------------------------------------------------
如系统注册表,线程支持,进程支持,系统shell访问等,也都是
独立
于各个具体应用程序的.
!!!有了这些系统服务支持,你几乎可以与操作系统进行各种各样的
交互.
?哪些东西是你的程序的核心?
你的程序要处理的业务,该业务的处理流程和逻辑是你的程序的核
心.
你需要为你的业务核心设计相关的数据结构,辅助数据结构,辅助功
能类.
可以采用自顶向下的设计,也可以采用自底向上的设计,甚至双向收
缩的
设计方式;如果你想要用面向对象的方式OOA,OOD的手段:CRC
卡,UML建模
必不可少.做到纯面向接口是绝大多数应用程序的进化终点(企业级
应用
除外,企业级应用还有AOP,SOA).


发布评论