1. 原则与目标
软件设计中处理问题的过程要保证简单、清晰,一个功能只处理好一个问题,如果处理不好,那么这个问题就是多个问题,从而要设计多个功能,总体要求:把复杂的事情简单化,把简单的事情条理化。
软件设计规范
2. 要求
产出物:
1) 《概要设计说明书》
2) 数据模型
3) 《详细设计说明书》
3. 数据模型
1) 字段定义、长度、类型、命名继承《数据库设计规范》;
2) 规范化与反规范化:
综合考虑“范式要求”与“系统实现的方便性”,平衡这两方面的要求;
综合考虑“查询的方便性”与“数据冗余如何保证数据的一致性”两方面的应用,平衡这两方面的应用;
3) 完整性:数据项需明确是否非空选项,保证数据的完整性;
4) 一致性:相同数据项的命名、类型、长度应保持一致;
5) 关联性:表与表采用弱关联,系统数据的正确性需要业务处理逻辑来保证;过程表可以关联结果表,结果表不能关联过程表,结果表尽可能做到无状态;
6) 可维护的数据项不能做主键;
7) 主键和外键(数模中体现,数据库中不体现)要建立索引;
8) 所有字段都需要有域类型,属于域类型的数据项类型需要引用域,不允许重复定义;
9) 字段需注释,注释内容与格式要统一,格式上注释第一行为字段中文名称,字典字段的注释要包含枚举值,并且枚举值要和业务变更同步;
10) 每个表中尽量有修改时间与创建时间,并且保证非空性;尽量有备用和备注字段,用于系统运维。
4. 功能设计
1) 合适性:功能性需求与非功能性需求需要综合考虑。功能性需求要精简,功能模型未明确定义的辅助功能(包括查询型、汇总型等)尽量不加,除非该功能操作太多的表,保证功能粒度的一致性与合理性,解决问题的明确性及系统业务过程的简单性;明确功能约束并说明清楚;
2) 稳定性:明确哪些是不变的功能,形成稳定的结构;
3) 扩展性:明确哪些是可变的功能,使可变的功能易于扩展;
4) 复用性:抽取公用的东西,加强公共功能的复用;
5) 单一性:同样的功能只在一个地方出现,禁止在多个地方出现。
5. 页面设计
1) 功能性:满足业务功能,达到用户基本的功能需求;
2) 清晰性:信息要清晰明确,防止晦涩语言或描述不清楚的地方;
3) 易用性:分区分层与页面布局合理,符合用户操作习惯;
4) 友好性:页面样式风格应贴近工作氛围,使用户可以很好地融入系统;
5) 交互性:应有必要的信息提示与操作步骤引导,降低系统对使用人员要求;
6) 整体风格的一致性;
7) 必输项采用“*”表示,在页面原型中标识;如果不输入点击保存,提示“请输入XXX!”,在详细设计不用描述;
8) 复选框选择后操作提示
明细、导出、打印:如果为选择或选择多条记录,提示“请选择一条记录!”,在详细设计不用描述;
删除:如果不支持批量删除,提示“请选择一条记录!”,如果支持批量删除,提示“请选择记录”,如果已选记录不符合删除条件,提示“记录不能删除:xxx(原因)!”,删除时询问“确认删除?”,在详细设计不用描述;
修改:如果未选择或选择多条记录,提示“请选择一条记录!”,如果已选记录不符合修改条件的记录,提示“记录不能修改:xxx(原因)!”,在详细设计不用描述;
9) 操作成功后提示
新增记录保存成功后,提示“[单据编号] [单据类型]生成成功!”;
修改记录保存成功后,提示“[单据编号] [单据类型] [操作类型]成功!”(操作类型:修改、派工等);
删除记录功能后,提示“删除成功!”;
10) 操作失败后提示“[操作类型]失败:xxx(原因)”(操作类型:修改、派工等);
11) 查询条件可多选时,已选择项在文本框中的展示格式:项1,项2,项3,各选择项间以“,”(英文半角逗号)分隔;
12) 通用帮助框:通用帮助框的查询条件应支持默认匹配父页面的查询条件,即通用帮助框的链接支持传递参数。
6. 接口设计
1) 接口中方法的返回不能为void,至少也要通知调用者,操作是否成功
2) 接上条,凡是返回操作是否成功的方法,返回类型要设置为int而不是boolean
3) 方法名只能使用英文,尽量简单易懂,驼峰规则,首字母小写,不得含有数字
4) 方法名最好使用动宾结构。
5) 接口中所有方法都必须写注释。
6) 接口中所有方法都必须是public的。
7) 每个方法的位置应当是明确的,不要将不属于某接口的方法放入该接口中,也不要写功能重复的方法。
7. 兼容性、扩展性
1) 稳定性:系统的扩展首先要保证系统的稳定,尽量明确哪些是不变的,哪些是可变的,可变的部分放在具体的实现,抽象不变的接口,最有效的方式是职责单一;
2) 扩展性:分析明确可变部分,使可变部分通过不同的实现或配置达到系统扩展;
3) 简单性:尽量通过简单的配置或很方便地实现相应的接口,达到系统扩展;配置的地方尽量少,配置的内容尽量少,配置的功能与影响是十分明确。
功能设计说明书模板
1. 文档介绍
1.1编写目的
说明文档的编写目的
1.2文档范围
说明文档的主要内容
1.3读者对象
说明文档的读者对象
1.4术语与缩写解释
术语或缩写 | 解释 |
1.5参考资料
序号 | 文档名称 | 文档编号 | 版本 | 发布日期 |
1 | ||||
2 |
2系统概述
2.1系统说明
介绍系统的名称、任务提出者、开发者、用户群
2.2项目背景
介绍项目的背景,在什么样的背景下产生该产品
2.3系统任务
介绍产品的目标与愿景,产品要能满足什么样的需求,要达到什么样一个效果
3.需求说明
3.1整体需求
描述产品的整体需求,产品要能满足什么需求,要达到什么效果
3.2功能需求
描述产品的功能性需求,产品要包含哪些功能或者服务接口。首先要指定需求的编号规则,然后按照规则对功能性需求进行模块划分和编号,最后要对每一个需求进行详细描述
3.3需求编号规则
描述需求的编号规则
3.4总体模块划分
描述需求的模块划分情况
4.功能性需求
4.1模块1编号
模块名称 | |||||
模块简介 | |||||
模块功能列表 | |||||
序号 | 一级功能 | 二级功能 | |||
功能名称 | 功能编号 | 功能名称 | 功能编号 | ||
1 | |||||
2 | |||||
3 | |||||
4 |
4.1.1一级功能1编号
描述本功能
4.1.1.1二级功能1编号
描述本功能
4.1.1.2二级功能2编号
描述本功能
4.1.2二级功能2编号
描述本功能
4.1.2.1二级功能1编号
描述本功能
4.1.2.2二级功能2编号
描述本功能
4.2模块2编号
模块名称 | |||||
模块简介 | |||||
模块功能列表 | |||||
序号 | 一级功能 | 二级功能 | |||
功能名称 | 功能编号 | 功能名称 | 功能编号 | ||
1 | |||||
2 | |||||
3 | |||||
4 |
4.2.1一级功能1编号
描述本功能
4.2.1.1二级功能1编号
描述本功能
4.2.1.2二级功能2编号
描述本功能
4.2.2二级功能2编号
描述本功能
4.2.2.1二级功能1编号
描述本功能
4.2.2.2二级功能2编号
描述本功能
5.界面设计
5.1界面的功能
5.1.1前台界面
功能列表或图示
5.1.2后台界面
功能列表或图示
5.2界面关系
5.2.1页面1
- 页面说明
说明
- 页面迁移图
图示
- 页面截图
截图
5.2.2页面2
- 页面说明
说明
- 页面迁移图
图示
- 页面截图
截图
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。