软件需求,概要设计,详细设计(文档)怎么做,做什么?

写在前面

由于项目工作需要 ,需要提供《软件需求规格说明书》,《软件概要设计说明书》和《软件详细设计说明书》。所以这里整理学习一下相关文档需要的内容。文章并不设计对所有需求分析,概要设计和详细设计的详细描述。因为这其中的任何一点都可以单独提取出来成为软件工程学科中的一本书籍内容。

1 软件设计的整体流程:

  • 软件需求分析阶段:输出了《软件需求规格说明书》,不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作,搞清楚“要解决什么问题”。
  • 概要设计阶段:确定软件系统的总体布局,各个子模块的功能和模块间的关系,与外部系统的关系,选择的技术路线。有一些研究与论证性的内容。并输出《软件概要设计说明书》。搞清楚“总体实现方案”
  • 详细设计阶段:对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。是“程序”的蓝图,确定每个模块采用的算法、数据结构、接口的实现、属性、参数。并输出《软件详细设计说明书》。搞清楚“每个模块怎么做”

2 需求分析

2.1 我们为什么需要《软件需求规格说明书》 ?

如果需求的编写只是为了解释说明软件实现的功能,那么良好的编码结构,代码注释就可以很好的实现软件的功能说明,程序员可以将编写需求的时间节约下来进行更多功能的实现; 可是,这样的情况可能更多适用于中小型项目,或者互联网项目,因为这样的项目需求不复杂,并且需求变化很快,所以研发的效率非常重要。然而,针对大型软件项目或者功能比较复杂的系统,软件研发可能是多人协作的成果,所以在信息传递过程中, 我们只有提前考虑好软件需求的内容,才能正确评估开发软件所需要的时间,成本的要素,从而更好的管理项目。

2.2 《软件需求规格说明书》的一般结构

  • 正文的第一章内容是1.概述,包含
    1.1.编写目的;1.2.术语与定义;1.3.参考资料;三个部分
  • 第二章要给出该项目的标准和规范,在文档的后续内容编写中以及项目开发过程中必须遵照这个标准和规范进行。
  • 第三章应该说明该项目的相关假设、限制和一些依赖条件,在后续系统部署的过程中可以有参考意义。
  • 第四章“功能规格”是重点,重点介绍这个系统的角色,界面设计思路,系统的功能视图和功能点清单,以及系统的需求用例。这个内容必须详细描述,这样才能对后续的开发和测试提供指导意义。
  • 第五章“非功能规格”要对项目的性能、安全、数据的备份恢复等内容解释解释说明,一个项目除了功能完整之外,还要考虑性能、安全等相应的要求。
  • 第六章“附录”,是对软件需求规格说明书的一些补充说明文档,其中的“软件需求跟踪矩阵”是重点,这份文档是对后续需求的完善程度进行了严格的控制。

3 概要设计

3.1 《概要设计说明书》的一般结构:

  • 总述:需求或目标(讲一下事情的起源)、环境、局限;
  • 总体设计:从全局的角度说一下 组织结构、功能、处理流程、有哪些模块、模块间的关系,运行环境等。(输出图:系统结构图,系统流程图,数据流程图,推荐在线画图工具ProcessOn - 免费在线作图,思维导图,流程图,实时协作
  • 外部接口:总体说明外部用户、软、硬件接口(可用资源);
  • 模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块或系统的接口),处在什么逻辑位置、物理位置。
模块设计,可以写以下内容:
   1、模块描述:说明哪些模块实现了哪些功能;
   2、模块层次结构:可以使用某个视角的软件框架图来表达;
   3、模块间的关系:模块间依赖关系的描述,通信机制描述;
   4、模块的核心接口:说明模块传递的信息、信息的结构;
   5、处理方式设计:说一些满足功能和性能的算法;
  • 数据结构:逻辑结构、物理结构。
  • 容灾设计:出错信息、出错处理。(可选)
  • 监控设计:运行模块组合、控制、时间。(可选)
  • 用户界面设计:(可选)。
  • 安全设计:(可选)。
  • 其它设计:(可选)。
  • 制定规范(附录): 设计原则,代码规范、接口规约、命名规则。

3.2 概要设计需要注意的地方

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

4 详细设计

4.1 《详细设计说明书》的一般结构:

参考如何撰写软件详细设计内容?

  • 引言,包含:
    编写目的,背景,参考资料,术语定义及说明

  • 设计概述,包含:任务和目标,需求概述,运行环境概述, 条件与限制,详细设计方法和工具

  • 系统详细需求分析,包含:详细需求分析,详细系统运行环境及限制条件分析接口需求分析

  • 总体方案确认,包含: 系统总体结构确认, 系统详细界面划分

  • 系统详细设计,包含: 系统结构设计及子系统划分,系统功能模块详细设计(采用HIPO图进行功能分解与模块描述,,用IPO或结构图描述各模块的组成结构、算法、模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系。), 系统界面详细设计

每个模块的描述说明可参照以下格式:

**模块编号:**

**模块名称:**

**输入:**

**处理:**

**算法描述:**

**输出:**
  • 数据库系统设计

4.2 详细设计需要注意的地方

如果有或者有必要,特别是大型的软件系统,详细设计阶段划分系统功能模块或子系统。

5 概要设计和详细设计的区别

5.1 概要设计阶段

在这个阶段,设计者会大致考虑并照顾模块的内部实现,但不过多纠缠于此。主要集中于划分模块分配任务定义调用关系。模块间的接口与传参在这个阶段要定得十分细致明确,应编写严谨的数据字典,避免后续设计产生不解或误解。概要设计一般不是一次就能做到位,而是反复地进行结构调整。典型的调整是合并功能重复的模块,或者进一步分解出可以复用的模块。在概要设计阶段,应最大限度地提取可以重用的模块,建立合理的结构体系,节省后续环节的工作量。
概要设计文档最重要的部分是分层数据流图、结构图、数据字典以及相应的文字说明等。以概要设计文档为依据,各个模块的详细设计就可以并行展开了。

5.2 详细设计阶段

在这个阶段,各个模块可以分给不同的人去并行设计。在详细设计阶段,设计者的工作对象是一个模块,根据概要设计赋予的局部任务和对外接口,设计并表达出模块的算法、流程、状态转换等内容。这里要注意,如果发现有结构调整(如分解出子模块等)的必要,必须返回到概要设计阶段,将调整反应到概要设计文档中,而不能就地解决,不打招呼。
详细设计文档最重要的部分是模块的流程图、状态图、局部变量及相应的文字说明等。

参考文章

软件需求规格说明书模板
软件概要设计-模板
软件概要设计做什么,怎么做
互联网公司研发RD如何撰写总体设计与详细设计文档
项目开发过程中详细设计和概要设计有什么区别和要求? 
如何撰写软件详细设计内容?

对于基于SMM的网上商城服装系统,以下是对需求分析、概要分析、详细分析以及测试的建议: 1. 需求分析 需求分析是一个确定系统应该什么的过程。在这个过程中,应该收集和分析业务需求,并将其转换为系统功能和性能的需求。 针对基于SMM的网上商城服装系统,可以从以下几个方面进行需求分析: - 功能需求:系统应该支持用户浏览商品、下单、支付、查看订单、退换货等基本功能。 - 性能需求:系统应该具有良好的响应速度和稳定性,能够同时支持大量用户访问和交易。 - 安全需求:系统应该采用安全的登录和支付方式,确保用户信息和交易数据的安全性。 - 用户体验需求:系统应该具有良好的用户界面和用户交互设计,方便用户使用和操作。 2. 概要分析 概要分析是对系统的整体框架和结构进行分析,确定系统的基本模块、功能和流程。 对于基于SMM的网上商城服装系统,可以按照以下步骤进行概要分析: - 确定系统的基本模块:如商品列表、购物车、订单管理、支付等基本模块。 - 确定系统的基本流程:如用户浏览商品、选择商品、加入购物车、下单、支付等基本流程。 - 确定系统的基本功能:如商品搜索、商品分类、商品详情展示、购物车管理、订单查询等基本功能。 3. 详细分析 详细分析是对系统的某个具体功能或模块进行深入分析和设计,确定具体的实现方法和技术方案。 对于基于SMM的网上商城服装系统,可以按照以下步骤进行详细分析: - 确定具体功能和需求:如商品搜索功能,需要支持关键词搜索、分类搜索、价格筛选等具体需求。 - 设计技术方案:如采用全文检索技术实现搜索功能,采用Ajax技术实现无刷新购物车功能等具体技术方案。 - 编写详细需求文档设计文档:包括功能说明、技术方案、用户界面设计、数据库设计详细信息。 4. 测试 测试是对系统的功能、性能、安全等方面进行验证和检测,确保系统符合需求设计要求。 对于基于SMM的网上商城服装系统,可以按照以下步骤进行测试: - 编写测试计划和测试用例:包括功能测试、性能测试、安全测试等方面的测试用例和测试计划。 - 进行测试:按照测试计划和测试用例进行测试,并记录测试结果和问题反馈。 - 修复问题:根据测试结果和问题反馈,及时修复问题,并进行二次测试。 - 发布系统:在系统经过充分测试后,可以发布系统,并进行用户反馈和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值