软件工程-需求分析、概要设计、详细设计——我是这么写的(模板)

第1章 需求分析
一、 引言
1. 编写目的
二、 文档说明
1. 文档的目的
三、 系统介绍
1. 系统概要说明
2. 系统用户定位
3. 系统中的角色
四、 系统说明
1. 系统功能结构图
五、 功能需求
1. 功能点
2. 功能概述
3. 非功能需求
4. 性能需求
六、 系统功能用例图
【功能点图文简要介绍】
第2章 概要设计
一、 系统总体结构
二、 功能模块结构
三、 系统框架
四、 运用技术
第3章 详细设计
【功能点的设计,包括结构图、用例图、时序图、流程图、类图、拓扑图、ER图、框架图、数据库表结构,要求细致到每一步的流程】
系统UI界面

第4章
测试报告

企业、商业的说明书一般都会有几百上千页,细致到怎么做,做了什么,都会详细的在文档中呈现,所以需求分析、概要设计、详细设计、测试报告也会分开来


**整个系统阶段大致如下:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/f6447014af0a43daaefc28d7157d9f7c.jpg)


**1. 需求分析概述**
**1.1. 软件需求的概念**
软件需求就是用户对目标软件系统的期望。

为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论人们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,并且给开发者带来烦恼。

需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答"系统必须做什么"这个问题,最终的成品是一份"软件需求规格说明书"。

通常来说,用户的需求包含了大致以下几个方面:

- 功能需求

这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能

- 性能需求

性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。

- 可靠性和可用性需求

可靠性需求定量地指定系统的可靠性,可用性与可靠性密切相关,它量化了用户可以使用系统的程度。

- 出错处理需求

这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到从另一个系统发来的违反协议格式的消息,应该做什么。需要注意的是,这类错误并不是由该应用系统本身造成的。

- 接口需求

接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求、硬件接口需求、软件接口需求、通信接口需求。

- 约束

设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度、工具和语言约束、设计约束、应该使用的标准、应该使用的硬件平台。

- 逆向需求

逆向需求说明软件系统不应该做什么。理论上有无限多个逆向需求,人们应该仅选取能澄清真实需求且可消除可能发生的误解的那些逆向需求。

- 将来可能提出的要求

应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。这样做的目的是,在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。
**1.2. 需求分析的准则**
尽管目前有许多不同的用于需求分析的结构化分析方法,但是,所有这些分析方法都遵守下述准则。

必须理解并描述问题的信息域,根据这条准则应该建立数据模型
主要使用ERD工具,即实体—联系图,描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形;
必须定义软件应完成的功能,这条准则要求建立功能模型
主要使用DFD工具,即数据流图,描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,是建立功能模型的基础;
必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型
主要使用STD工具,即状态转换图,指明了作为外部事件结果的系统行为,描绘了系统的各种行为模式(称为"状态")和在不同状态间转换的方式,是行为建模的基础;
必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。
**1.3. 需求分析的任务和步骤**
需求分析的任务有:

1. 建立分析模型
2. 编写需求说明

需求分析的步骤有:

1. 问题分析
2. 需求描述
3. 需求评审

**2. 需求获取的常用方法和步骤**
**联合分析小组**
由用户代表、领域专家和系统分析员组成联合分析小组对用户需求进行分析
**客户访谈**
充分准备,寻找共同语言,循序渐进、逐步逼近地引导客户提出和细化需求。访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍然广泛使用的需求分析技术。访谈有两种基本形式,分别是正式的和非正式的访谈。
正式访谈时,系统分析员将提出一些事先准备好的具体问题,例如,询问客户公司销售的商品种类、雇用的销售人员数目以及信息反馈时间应该多快等。在非正式访谈中,分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法,例如,询问用户对目前正在使用的系统有哪些不满意的地方。
访谈有两种基本形式,分别是正式的和非正式的访谈。正式访谈时,系统分析员将提出一些事先准备好的具体问题,非正式访谈中,分析员将提出一些用户可以自由邮答的开放性问题,以鼓励被访问人员说出自己的想法。在访问用户的过程中使用情景分析技术往往非常有效。所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。
情景分析技术的用处主要体现在下述两个方面:
(1)它能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。
(2)由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色。
实际观察用户工作流程
问题分析与确认


罗列大致的调研方向:
①现场观察、“窥探”
②访问/访谈、“包打听”
③问卷调查、“套取”
④会议研讨、“头脑风暴”
⑤原型评估、“界面(样品)迭代”
⑥场景分析、“模仿”
⑦其它、“文献考古”、“用例分析”


**3.分析与建模**

- 结构图
- 用例图
- 时序图
- 流程图
- ER图
- 框架图
- 拓扑图
- 类图
- 数据库分析

**例子:**

- 系统结构图:

![系统的总体结构](https://img-blog.csdnimg.cn/37fd3019e53f4275bb4b63c4539ca666.png#pic_center)

![在这里插入图片描述](https://img-blog.csdnimg.cn/1c1d8b094ba54e28beb33c65510374e2.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/72a9abab113144ffb258cbf26fb52817.png#pic_center)

- 用例图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/74c1600a8dda41d7b37ef13359060950.png#pic_center)

- 系统等时序图:

![在这里插入图片描述](https://img-blog.csdnimg.cn/6aa2f9e3cc614e06aabe23f3a4d40983.png#pic_center)

- 流程图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/b385e2b46f4047938461eea9c4d04b15.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/d9255eb7de1245c994e58984d5d3a647.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/625c40c0b25b40f196b49fc216c61f06.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/6254a74dceb84466b44ac8933b48f5ef.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/3dd6a33df29c478ca4fd3cace5d36319.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/63e29710f80149d2bf5925b92d3a88a0.png#pic_center)

- ER图:(丑且没对,希望对你有帮助,但不要模仿)

![在这里插入图片描述](https://img-blog.csdnimg.cn/7e180965f38a49fb9738e07e4a44003d.png)

- 框架图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/23c2db8c481143e6b5638f039e93a4a1.png#pic_center)

- 拓扑图:(很简单地画了一下,还需要加很多东西)
![在这里插入图片描述](https://img-blog.csdnimg.cn/85380fe5f114418bb7584b59eb0d9d93.png)

- 类图:(没画)

- 数据库分析:(Markdown画表格太难了,简单画了点)

党员信息表(party)

| 字段列表 | 字段描述 | 主键 | 外键 | 类型 | 长度 | 说明 |
| ---------------- | ------------ | ---- | ---- | -------- | ---- | -------------------------- |
| party_id | id | 是 | | Int | 11 | 非空 |
| party_name | 姓名 | | | Varchar | 128 | 非空 |
| party_sex | 性别 | | | enum | | 默认为0\1 |
| party_number | 身份证号码 | | | Varchar | 18 | 非空 |
| party_nation | 民族 | | | Varchar | 20 | 非空 |
| party_birth | 籍贯 | | | Varchar | 100 | 非空 |
| party_birth_date | 出生日期 | | | datetime | | 非空 |
| party_education | 学历 | | | Varchar | 20 | 非空 |
| party_time | 入党时间 | | | datetime | | 非空 |
| party_tel | 联系电话 | | | Varchar | 20 | 非空 |
| branch _id | 支部id | | 是 | | | 非空 |
| party_job | 党员职务 | | | | | 非空 |
| relation | 关系转移类型 | | | Enum | | 默认null,0为流入,1为流出 |

登录信息表(users)

| 字段列表 | 字段描述 | 主键 | 外键 | 类型 | 长度 | 说明 |
| -------- | -------- | ---- | ---- | ------- | ---- | ---- |
| in_id | Id | 是 | | Int | 11 | 非空 |
| username | 账号 | | | Varchar | 128 | 非空 |
| password | 密码 | | | Varchar | 128 | 非空 |

 

**4.测试部分**
集成策略:采用自底向上的增量式集成方式

测试方针:首先对规定的正常的功能进行测试,以黑盒测试为主,白盒测试为辅助来设计测试用例,测试用例要尽量覆盖所有的程序功能,记录测试中的问题。


**关于软件:**
建模的软件有很多:

- POWERDESIGNER
- visio
- draw.io(免安装和安装版)
- RSA9.0
- Visual Paradigm
- 亿图(网页版)
- ProcessOn(在线制作,有非常多模板)

PD是画数据库非常强大的软件,但是是英文界面,可以汉化
Visual Paradigm收费,可以免费体验一个月专业版,社区版免费,但是有水印,画时序图会自动添加数字序号,很方便,其他的都要手动添加,有时候一个时序图会有几十上百的序号,非常麻烦。
ProcessOn:模板多

本人推荐小白使用visio和draw容易上手。

RSA9.0:https://blog.csdn.net/a054545641/article/details/102920792
draw:https://www.diagrams.net/
亿图:https://www.edrawsoft.cn/edrawmax/edraw-lp.html?channel=baidu
ProcessOn:https://www.processon.com/
Visual Paradigm:https://www.visual-paradigm.com/cn/download/?platform=windows&arch=64bit

建模软件:链接:https://pan.baidu.com/s/1QSmcXPUEQLkTy1G6r2Q21A 提取码:wazg

那么到这里,一个**简单**的系统说明书就完成了,后期还需要根据客户需求修改,但是完成一个**简单**的本科毕业论文还是没问题的。

本文是本人(小白)第一次写的系统说明书,根据这份说明书也把系统做出来了,如果有什么不对的地方,请就此指出,感谢查阅。


需要转载,请注明出处!!!
需要转载,请注明出处!!!
需要转载,请注明出处!!!

posted @ 2021-12-18 10:53  wnrun  阅读(3403)  评论(0编辑  收藏  举报