从零做软件开发项目系列之三——系统设计

软件开发,项目,系列,之三,系统,设计 · 浏览次数 : 21

小编点评

**系统设计规格说明书** **一、 项目背景** **1.1需求调研结果** 需求调研结果已完成,并根据结果撰写此规格说明书。 **二、 功能框架设计** **2.1功能框架图** 功能框架图将系统分为多个模块,并使用思维导图的形式进行设计。 **2.2用例图** 用例图将系统中的角色,以及角色进行的功能操作,操作的流程,以及一些约束的条件等等,可以通过用例图表述出来。 **三、 技术框架设计** **3.1技术框架图** 技术框架图可以按照粒度的不同,将技术体现在框架图上。 **3.2接口设计** 接口是指用于完成各系统间和系统内部数据传递的接口。 **四、 安全设计** **4.1物理安全** 物理安全主要针对物理实体和硬件系统的安全要求,主要应包括所有的网络设备(包括交换机、路由器、服务器等)都应设置物理保护,不能随意让人接触,服务器系统都应加带口令的屏幕保护及键盘锁。 **4.2网络安全** 网络安全是系统安全体系的重点内容,建议综合采用VLAN划分、地址绑定和防火墙等网络安全技术和安全策略,力求从多层次、多角度来保证网络系统的安全。 **4.3系统安全** 系统安全重点解决操作系统、数据库和功能服务器(如Web服务器、数据库服务器等)系统级安全问题,以建立一个安全的系统运行平台。 **五、 数据库设计** **5.1数据库设计** 数据库设计是一项非常重要的内容,是系统设计的重要组成部分,但是,数据库具有一定的独立性,而且该部分内容比较多,所以,一般来说,数据库设计会单独考虑,文档也会单独撰写。

正文

前言

在与客户充分接触后取得需求调研结果,然后分析调研内容,撰写完成项目的需求规格说明书。这是一个正式的文件,需要供需双方签字确认。说明书中会明确需求方的要求和开发方实现的内容,依据需求规格说明书,开发方就要开展系统设计工作。

进行系统设计工作,粗略的可以分成两个阶段,概要设计(总体设计)阶段和详细设计阶段,概要设计阶段主要是做一些系统整体的设计工作,比如系统包括哪些模块,使用什么样的技术等,详细设计则是在概要设计的基础上,对系统进行细化设计,比如模块包括哪些功能,它们之间怎么调用关联等等。很多时候,两个阶段也没有分的特别清楚,作为由浅入深的设计实现,两个阶段经常是融合在一起,这里我们不作详细区分,统一进行设计阶段进行说明。

1 功能框架设计

通过调研工作,开发方已经对需求方的要求有了一个整体了解,根据达成的共识,也就是需求规格说明书,开发方需要将其转换为软件系统的功能模块。这里使用的是层次化的思想,先规划出系统的大的模块,如果系统比较负责,还可能首先规划子系统,然后再梳理模块下面的功能,并进一步细化为具体功能。可以用思维导图的形式,画出功能框架图。

 

 

比如一个外卖管理系统,主要是对外卖的信息进行管理,包括菜品分类管理,菜品标签管理,菜品管理,订单管理,系统管理等模块,然后再继续进行功能的划分。

在这个过程中,除了功能框架,对于比较详细的功能描述,还需要画出用例图。将系统中的角色,以及角色进行的功能操作,操作的流程,完成的任务,以及一些约束的条件等等,都可以通过用例图表述出来。

2 技术框架设计

这部分内容主要是确定项目开发中需要使用哪些技术,以及这些技术如何有机结合,共同完成项目功能。项目所使用的技术,通常是根据项目类型、项目需求以及开发团队的技术背景来确定,一般都会使用主流的技术,一方面是主流技术人才相对较多,团队容易搭建。二是主流技术资料比较丰富,容易获得解决方案。

确定技术框架后,需要画一个技术框架图,这个图可以按照粒度的不同,将技术体现在框架图上。如果项目比较大,可以把主要技术粗略的体现在框架图上,如果项目比较小,可以把技术分的更细一些。这个技术粒度,可以根据具体情况来调整,为了软件以后更新迭代,还是将技术写的越细越好,方便后续人员的查阅和参考。

下图是一个较通用的技术框架图,也是分层设计,层与层之间界限比较清晰。最底层可以命名为基础层,包括各种服务器,数据库服务器,WEB服务器,存储服务器,负载均衡服务器等等,基础层可以有一个数据管理层,里面是各种数据库,管理不同的数据。在往上就是支撑技术,比如工作流引擎,访问控制,安全机制,全文检索等等,再往上就是对应的具体技术,比如spring boot,spring cloud,elasticsearch,solr,workflow等等。再往上,可以写一下技术与业务结合的模块,根据具体业务的不同,使用到的技术可能有比较大的差异,也会体现项目的技术特点。最上面就是展示层,通过Web网页、大屏、APP、微信小程序等不同的方式对外进行展示。

 

 

3 接口设计

接口是指用于完成各系统间和系统内部数据传递的接口。在系统中通常设计成一个数据库文件或接口转换模块,传出数据的系统通常对数据事先进行必要的加工处理,需要接收数据的系统按照用户的要求(用户事先定义的数据模式),通过接口完成数据传递的任务。

3.1 接口的类型

接口可以分为系统内部接口和系统外部接口。

系统内部接口适合于本项目内各业务系统之间的数据传递,要传递的数据的格式、内容基本上相同,无需再加工处理。接口不是系统之间的数据传递,而是系统内部数据自动流转。

系统外部接口是不同的组织间系统数据的传递问题。由于不同的组织采用的系统的数据模式可能相差太大,要想实现数据的传递相对来说就比较困难,所以这种类型的接口,就要首先由接收数据系统采取主动按照数据模式到对方系统去识别、采集,然后转换成本系统能够识别和利用的数据模式。

3.2 接口的实现方式

WebService 方式。基于不同平台及应用系统的功能调用。

JDBC访问数据源方式。JDBC 是一种用于执行SQL 语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

API方式。考虑项目与其他待建及已建系统进行互联互通,同时各子系统间根据业务需求应互相通信,为了保持与原有系统之间接口的兼容性,需要提供多种API 的方式进行接口的设计开发。

数据交换方式。主要基于已建应用集成平台,通过数据交换节点接入配置与开发,实现两个系统间数据的共享交换,可以屏蔽两个系统间数据库差异、技术体系差异。

4 安全设计

系统的安全设计,需要从多方面考虑,从物理安全、网络安全、系统安全和应用安全等层次进行安全设计,提供用户管理、权限管理、认证等具体安全功能。

 

 

       物理安全主要针对物理实体和硬件系统的安全要求,主要应包括所有的网络设备(包括交换机、路由器、服务器等)都应设置物理保护,不能随意让人接触,服务器系统都应加带口令的屏幕保护及键盘锁。

       网络安全是系统安全体系的重点内容,建议综合采用VLAN划分、地址绑定和防火墙等网络安全技术和安全策略,力求从多层次、多角度来保证网络系统的安全。

       系统安全重点解决操作系统、数据库和功能服务器(如Web服务器、数据库服务器等)系统级安全问题,以建立一个安全的系统运行平台。主要措施包括安全操作系统、安全数据库及病毒防护系统等。

       应用安全可以考虑应用服务器的安全管理、系统容灾等。

5 数据库设计

在系统设计中,数据库设计是一项非常重要的内容,是系统设计的重要组成部分,但是,数据库具有一定的独立性,而且该部分内容比较多,所以,一般来说,数据库设计会单独考虑,文档也会单独撰写。

为了保持系统设计的完整性,在这里将数据库设计放到系统设计中,数据库设计的具体内容在如何进行数据库设计中进行描述(从零开发软件项目系统之四)。

6 结语

系统设计阶段是在需求分析基础之上进行,也就是需求分析是前提,需要产品经理对用户需求有一个明确的认识,并清晰的描述,并和技术人员一起,进行较准确的需求分析。架构设计师要能够根据业务场景,综合技术团队实际情况,确定合理的技术框架。考虑的越细越好,能够敏锐的发现满足业务场景的合适技术,以及技术难点,是系统分析和设计人员的重要能力。

合理全面的系统设计,可以为后续的系统开发提供指导,后续的系统开发工作依据良好的系统设计成果,能够事半功倍。

与从零做软件开发项目系列之三——系统设计相似的内容:

从零做软件开发项目系列之三——系统设计

前言 在与客户充分接触后取得需求调研结果,然后分析调研内容,撰写完成项目的需求规格说明书。这是一个正式的文件,需要供需双方签字确认。说明书中会明确需求方的要求和开发方实现的内容,依据需求规格说明书,开发方就要开展系统设计工作。 进行系统设计工作,粗略的可以分成两个阶段,概要设计(总体设计)阶段和详细

从零做软件开发项目系列之五——系统开发过程

在软件项目的设计开发过程中,除了前期的用户需求调研确认,系统设计、数据库设计等工作之外,还有一些重要的工作需要考虑,比如软件开发模式,如何制定开发计划,如何协调开发人员开展开发工作等。

从零做软件开发项目系列之四——数据库设计

前言 在对软件进行设计的过程中,数据库的设计是一项重要的内容,软件中主要的处理对象就是各类业务数据,通过对业务数据的处理,实现各种功能。我们经常说的,写程序,说到底就是增删改查,而增删改查的对象就是各种数据。数据都存储在数据库中,其重要性不言而喻,对于数据库的设计也是软件设计的一个重要基础。 1 数

从零做软件开发项目系列之六——软件测试

软件测试是指在软件开发过程中对软件系统进行验证和验证的过程。它的目的是确保软件能够按照设计要求正常运行,同时检测和纠正可能存在的缺陷和问题。软件测试有助于提高软件质量、可靠性和用户满意度。

从零做软件开发项目系列之一——综论软件开发项目

介绍了软件项目从申请到开发实施到结项的整个过程,在这个过程中,根据项目或公司的大小,会有不同的职位参与,如果是小的公司,可能一人兼任了很多职位,很多过程也会简化或省略。一般大一些公司,人员多,职位会设置的比较全,流程也会多一些。

从零做软件开发项目系列之八——系统部署调试

软件项目的部署和调试工作是项目开发生命周期中的重要阶段,它涉及将开发完成的软件应用程序部署到目标环境并进行测试和调试,以确保系统能够正常运行并满足用户需求。

从零做软件开发项目系列之七——用户培训

开展用户培训工作是确保软件项目成功的重要一环。通过有计划和系统性的用户培训,您可以确保用户能够有效地使用新系统,提高工作效率,减少问题和困惑,从而实现项目的成功交付。

从零做软件开发项目系列之二——需求调研

在接到软件开发任务之后,第一件要做的事情就是进行需求调研工作,基于前期的沟通以及合同向用户了解具体需求,从而有针对性地开展后续工作。整个调研过程分为调研准备,调研实施,需求分析。

从零做软件开发项目系列之九——项目结项

项目的验收阶段,也就是项目生命周期的最后一个阶段,即项目结项,它涉及到项目的总结、验收、交付以及后续工作的安排。

从零做软件开发项目系列之十——项目运维

项目结项后的运维阶段是确保软件持续稳定运行、修复问题、满足用户需求的关键时期。在这个阶段,需要建立有效的维护制度,关注各种问题,并采取相应措施来保障系统的可靠性和可持续性。