软件项目设计八大步骤

时间:2024-01-21 19:42:58

本人初学者,所写都为自己领悟,以方便以后参考;若有不对之处,还请各位大佬指出:

软件设计可分为八个大的步骤:

1,         确认项目工作方式 :

  项目有大有小,大的如:淘宝、京东这样的电商网站;小的如:淘宝系统中某一个功能模块,如登录,都可以认为是一个项目;那么很明显淘宝和登录有不一样的工作方式,在这一个步骤时,就是要确认项目的整体工作流程,并以此为基础进行分解,最后确认项目结构和软件机构;

  如淘宝,整体的工作方式就是:浏览器发起一个连接,这个连接对应淘宝提供的应用服务,淘宝处理这个服务,并返回;

2,         分解项目 : 

  剔除项目整个流程中不需要关注的部分,只留下需要做的项目;或者将项目分成几个或多个子项目,如游戏项目的开发,需要开发客户端和服务器端等多个项目;

3,         确认应用提供服务:

  根据项目需要,确认该项目或系统需要向用户提供的服务;

  如一个web项目,可能需要提供一下服务:

  登录服务、用户信息管理服务、会员服务、好友服务、聊天服务等....

4,         分解应用服务需要的支撑功能:

  将提供的应用服务分解到程序阶段,即:程序需要提供怎么样的功能,才能支撑起那样一个应用的服务;

5,         确认应用服务具体流程

  确定一个应用服务具体的流程;

6,         提取所有应用服务中所有相同功能

  将所有应用服务中相同的程序功能提取出来,封装到一起;

7,         确认软件系统整体结构

  将之前的应用服务提取的公共功能组装在一起,组合成系统的整体结构;

8,         确认项目整体结构

  依据系统的整体结构和项目的整体工作方式,将项目分解为不同的功能层级,即可完成项目整体结构图;

 

每一个步骤具体实现,示例:

1,         首先确定系统和外部用户整体的交流方式;

如一个网站系统用户交流流程:

 

2,         分解系统为服务端和客户端为两个系统,如上述网页浏览,或该项目,则客户端系统是已存在或不需要再设计和重做的;这样就只需要关注服务端系统;

 

3,         分解项目需求,确认系统提供的应用服务;

如一个web项目基本功能服务:

 

4,         分解每一个应用服务对应支持功能:

如用户登录服务:

 

5,         应用服务功能支持的流程图设计:

如登录服务的流程图:

接收数据  ---- 解密数据 ----- 解码数据 ----- 登录请求 -----返回登录页面 ---- 登录提交  ----- 检验码检测  ------- 用户登录数据异常过滤   ------ 用户判断密码判断   -------- 登录成功管理业务服务   ------ 日志记录  ------ 登录返回,进入主页; 

 

6,         应用服务支持功能相同功能提取;

如web服务中,数据的接收加解密、编解码等功能,可以使用现有的服务框架,如tomcat、nginx、jboss等;

如日志记录功能:是否可以使用spring 或者aspectj的面向切面设计,进行统一的处理等,当然这是可行的;

 

7,         系统整体结构组装,即将每一个应用服务相同部分提取,设计为相同部分,将不同部分封装到各种应用的内部;

如上述web服务:

 

 

8 , 提取软件结构图公共部分,绘制项目结构图;

  如上述web项目: