软件设计概要说明书

preparation may quicken the process

概要设计

什么是概要设计

确定软件系统的总体布局,各个子模块的功能和模块间的关系,与外部系统的关系,选择的技术路线。有一些研究与论证性的内容。并输出《软件概要设计说明书》。搞清楚“总体实现方案”。概要设计是用来评价软件整体设计可行性的重要支撑标准,由于每个模块这个阶段已经开始确定,可以很好的检查已有的模块是否已经足够完整,还可以用于评估工作量以及知道下一步的主要计划,它是一个纲领。

注意要点

  • 用来评价总体设计的可行性。
  • 用来检查设计的模块是否完整,保证每一个功能都有对应的模块来实现。
  • 用来评估开发工作量、指导开发计划(在不写详细设计的情况下)。
  • 概要设计阶段过于重视业务流程是个误区。

文档结构

1 引言

1.1 编写目的

本阶段完成系统的大致设计并明确系统的数据结构与软件结构。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件概貌,把它加工成在程序细节上非常接近与源程序开发的软件表示。

1.2 预期读者

开发人员、测试人员、分析人员

1.3 项目背景

1.3.1 相关单位
  • 任务提出者:xxx人员
  • 开发者:xxx
  • 使用者:

1.4 定义

列出本文档中所用到的专门术语的定义和缩写词的原意

1.5 参考资料

2 总体设计

2.1 设计前提和约束条件

  1. 系统用户登陆通过与认证系统实名认证;
  2. 有合理的通知功能;
  3. 遵循项目开发文档所制定的规范;
  4. 符合系统权限要求。

2.2 基本设计思想

写出软件的基本设计思路,突出软件的优点,一个例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
建设项目信息管理涉及业主方、设计单位、施工单位、运营管理单位、政府部门等众多参与方,信息量巨大,信息交换复杂。而传统的信息管理方式凌乱无序,信息利用率低。

因此,基于BIM的信息管理框架的构建思路的核心就是要改变传统的信息传递和共享方式,通过BIM将不同阶段、不同参与方之间的信息有效地集成起来,真正实现建设项目全生命周期的信息管理。因此,基于BIM的建设项目全生命周期信息管理框架的构建主要从以下三点展开:

(1)数据问题:

建设项目信息管理过程中,产生的信息形式多样,各参与方所用的信息管理软件不尽相同,如何实现BIM数据和其他形式数据的共享和利用,保证不同阶段产生的信息能够持续应用,而避免重复输入,就需要建立可以保证不同BIM应用之间的信息提取、关联及扩展的数据库,该数据库也是基于BIM的信息管理框架的基础。

(2)信息模型:

数据库是存储信息的地方,而信息模型是承载信息的载体。随着建设项目的进展,信息数据不断增加,如何保证这些信息分门别类有效地存储,需要在全生命周期不同阶段,针对不同的BIM应用形成子信息模型,由各子信息模型来承载不同专业和类别的信息,以保证信息的有序。子信息模型通过提取上一阶段信息模型中的数据,然后再经过扩展和集成,如此继续反复,最终形成全生命周期信息模型。

(3)功能实现:

对信息进行存储和管理的最终目的就是有效地应用信息,进行建设项目管理,因此,在管理框架的最上层为功能模块层。不同的功能模块对应着不同的BIM应用,也即为一个功能子信息模型。使用多种研发技术、中间件、设备搭建基于互联网环境的轻量化BIM信息管理平台;采用B/S架构构建平台;

具体通过以下技术实现:

基于OpenGL的三维模型引擎,集成BIM+GIS数据;
基于ActiveX的浏览器、移动端APP模型引擎部署;
基于关系型数据库SQL Server的结构化构件数据存储、检索;
基于React的H5前端研发技术;
基于PHP的表单、流程处理功能开发;
基于MySQL的业务表单、流程数据存储;
基于萤石云的视频监控中间件集成。

2.3 总体结构及概要

概述软件总体结构,或者放一个业务流程图,并做简要介绍

2.4 功能分配

表明各项功能与程序结构及模块的关系

3 模块概要设计

模块设计,可以写以下内容:

  1. 模块描述:说明哪些模块实现了哪些功能;
  2. 模块层次结构:可以使用某个视角的软件框架图来表达;
  3. 模块间的关系:模块间依赖关系的描述,通信机制描述;
  4. 处理方式设计:说一些满足功能和性能的算法;

3.1 模块描述

模块名称 功能 备注
xxx模块 实现自动路径规划算法

3.2 模块层次结构及关系

4 接口设计

4.1 外部接口

包括软件接口及硬件接口。其中用户界面应当给出总体设计框图及开发框架;软件接口应当给出一些输入输出及通信接口,例如采用Visual C#提供与SQL Server2000连接进行访问数据库的操作等;硬件接口应给出输入/输出所需的软硬件环境等。

4.2 内部接口

模块之间的接口,确定模块间的连接是怎样的,同时确定模块间信息传递方式,例如采用函数调用、参数传递、返回值的方式。具体参数的结构将在数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。

4.3 用户接口

用户接口是系统与用户进行信息交换的媒介,一般指软件接口,包括命令接口、程序接口和图形接口

5 运行设计

在运行设计中,我们主要考虑运行时模块的组合、控制以及时间

5.1 运行模块组合

在用户选择

范例——软件注册机程序

引言

编写目的

本概要设计说明书的目的就是进一步细化软件注册机程序设计阶段得出的软件概貌,把它加工成在程序细节上非常接近与源程序开发的软件表示。

预期读者

开发人员、测试人员、分析人员

项目背景

相关单位
  • 任务提出者:xxx人员
  • 开发者:xxx
  • 使用者:

定义

参考资料

总体设计

总体结构及概要

图片名称

本系统采用三层架构进行设计,层与层之间采用C++接口进行衔接,降低了模块耦合度,并使用工厂模式实现对不同需求对应接口的不同实现,并在每一层功能完成后进行相应层的单元测试,对开发过程中避免了很多不必要的麻烦,节约了开发时间。本系统在开发过程中实现了国际化框架,可以识别不同的浏览器语言相应的显示对应语言的内容,由于开发时间限制,语言包只提供了缺省的中文语言包。

表示层:该系统具有产品注册和注册码生成两个会话界面,对用户输入的注册信息进行了验证,能够有效约束不符合条件的验证信息,及时在屏幕上反馈给用户,只对符合要求的注册信息提交给下层业务处理层,保证了业务处理层接收到的表单信息的纯净性。

业务逻辑层:对本系统需要提供的功能进行封装和分类,分成RegisterService和RegisterCodeService两个字系统。

数据访问层:数据访问层对PC的注册表进行访问,从而实现注册功能。

模块设计

模块描述

模块名称 功能 备注
UI模块 负责与用户进行交互,根据用户输入的功能,调用不同的模块完成不同的业务逻辑,包括产品注册码生成、产品注册以及软件试用模块
产品注册模块 负责实现软件注册功能,通过用户提供的注册码,调用注册表管理模块,实现注册表注册
注册码生成模块 根据用户输入的用户名,生成有效的注册码
注册表管理模块 负责用户注册表的生成及管理功能
软件试用管理模块 负责软件试用的管理

接口设计

外部接口

软件接口

系统使用Qt库中的QSetting实现对注册表的访问

硬件接口

输入:采用键盘、鼠标及Qt/C++中标准输入进行输入处理。

输出:采用Qt/C++中标准输出或其他输出设备对输出进行处理

内部接口

UI模块
产品注册模块
接口名称 输入及输入格式 输出及输出格式 功能 属性
GetCPUID() null CPU ID:string 获得CPU ID号码 public
GetDiskID() null Disk ID:string 获得磁盘 ID号码 public
注册码生成模块

用户接口

用户图形界面

用户图形界面总体设计,用户图形界面使用Qt Quick实现UI设计

图片名称

运行设计

客户在注册码生成器UI模块中输入用户名,由注册码生成模块产生相应的注册码,并写入注册码文件中。

用户在注册UI模块中选择注册或试用产品,如选择注册,则调用产品注册模块,通过用户提供的注册码,调用注册表管理模块,实现注册功能;如选择试用,则调用软件试用模块,软件试用模块调用注册表管理模块,根据注册表中的剩余使用次数,决定是否允许用户试用。

参考文献

0%