为什么要写软件开发设计文档--设计目的和思路
发表时间:2023-11-17 13:02:09
文章来源:炫佑科技
浏览次数:154
菏泽炫佑科技
为什么要写软件开发设计文档--设计目的和思路
内容: 1、什么是软件开发设计文档
创建并快速迭代——通过不断的思考、论证和缜密的思考来完善稳定文档的**个版本
评审(可能有多轮)——集思广益,面对其他人的问题,收集其他人的反馈和意见,改进文档
实现和迭代——当发现编码实现与设计冲突或设计缺陷时,及时调整和更新文档
维护和学习——随着业务功能的不断变化,文档要及时更新,避免误导后来接手或阅读的人。
摘要(任务的背景,如时间、地点、人物、背景、计划、替代方案等)
表结构以及它们之间的关系(ER图:实体关系图agram)
业务流程图、时序图(按照人操作的维度)
程序流程图、时序图(按照代码执行的维度)
接口约定(暴露的方法、api接口等)
其他(伪代码、类图、思维导图、泳道流程图、关于安全性、性能、边缘情况、成本效益的想法)
注释(补充说明和解释、引用材料)
审核状态
2. 为什么要写软件开发设计文档? 3. 编写软件开发设计文档要注意什么?
文档工具不统一,不同群体和部门之间存在差异。 有些文件甚至不知道它们是什么格式并且无法打开。
过度抄袭需求文档,缺乏软件设计内容,不像软件设计文档
布局混乱,设计文档不遵循标准模板顺序,缺乏清晰的目录结构。
设计文档中图片过多,部分图片质量较差,缺少原文件。 比如EA工具缺少eapx文件,就会导致文档迭代需要全部重绘,久而久之,人们就更不愿意维护和更新文档了。
没有统一的文档版本管理工具,缺乏追溯和统计管理能力。
数据库表结构设计风格杂乱不一致,字段没有中文描述(毕竟母语不是英语)为什么要写软件开发设计文档--设计目的和思路,主键和索引设计基本没有考虑。
程序流程基本比较简单,缺乏主线,无法描述核心算法和关键点(比如ATM怎么取款?有的只是描述[插卡->取款->取款卡]还不够,还应该包括各种、事务、并发、缓存等)
类图缺乏类之间的关系软件开发,有的直接使用英文函数名而不进行说明。
大多数序列图只描述与数据库的交互,缺乏业务流程和程序执行的序列图。
如果你不明白设计文档的含义,那么对于非常简单的任务需求就不需要编写设计文档。
缺乏对安全、性能、边界条件和成本效益的思考。 考虑不够全面,审查不严格。
文档编写者:架构设计师或功能开发人员
明确该文档的对象是谁:部门内的开发人员? 合作伙伴实施者? 外部开发人员?
设计先行:设计文档先写好再编码,这样可以大大避免后期返工,提高开发效率。
一图胜千言:尽可能用图片和文字清晰表达设计思想
统一绘图工具:需要支持导入导出,方便后续更新
统一文档模板:为了防止文档奇怪、布局不一致、阅读困难等问题。
确定托管形式:可以考虑安全性(文档加密)、查看方便性、版本管理等。推荐内部知识文档管理系统、类似wiki\git\svn的版本管理工具、内网微盘。
好的代码比设计文档更好:有时编写优雅的代码和注释比编写设计文档更好
版本迭代:在软件功能迭代过程中,经过多次迭代后,功能和设计可能会发生较大变化。 设计文档要及时更新,避免向人们传递错误的信息。
4.如何编写开发设计文档
1.推荐开源绘图工具:
图片取自官网
2.Word(设计文档模板,也可以使用wiki等团队工作区管理工具\)
3.xMind(绘制思维导图)
4.Visio(绘图工具,目前未找到mac版本)
1.下一篇我会介绍如何使用draw.io画图(时序图、流程图、类图、ER图、架构图)
2.列出一些参考资料:
▶流程图:
▶时序图:
▶类图:
▶程序流程图#生命周期图
3.贴出预览图(示例,仅供参考):
商业设计图
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等