软件工程开发文档写作教程(12)—概要设计书的编制目标

这篇具有很好参考价值的文章主要介绍了软件工程开发文档写作教程(12)—概要设计书的编制目标。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl
  • 本文参考资料:电子工业出版社《软件文档写作教程》 马平,黄冬梅编著

概要设计书概述

软件工程开发文档写作教程(12)—概要设计书的编制目标

《概要设计说明书》又称为《系统设计说明书》,编制的目的是说明对软件系统的设计考虑,包括软件系统的基本处理流程、组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。

概要设计书编制目标

在软件需求分析阶段,已经搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中,所以软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。

概要设计的基本任务包含如下几方面。

设计软件系统结构

为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库(文件),对于程序,则首先进行结构设计,具体为:
(a)采用某种设计方法,将一个复杂的系统按功能划分成模块。
(b)确定每个模块的功能。
©确定模块之间的调用关系。
(d)确定模块之间的接口,即模块之间传递的信息。
(e)评价模块结构的质量。
根据以上内容,软件结构的设计是以模块为基础的,在需求分析阶段,已经把系统分成层次结构。设计阶段,以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构。软件结构的设计是概要设计关键的一步,直接影响到下一阶段详细设计与编码的工作,软件系统的质量及一些整体特性都在软件结构的设计中决定。

数据结构及数据库设计

对于大型数据处理的软件系统,除了控制结构的模块设计外,数据结构与数据库设计也是很重要的。
(a)数据结构的设计
逐步细化的方法也适用于数据结构的设计。在需求分析阶段,已通过数据字典对数据的组成、操作约束、数据之间的关系等方面进行了描述,确定了数据的结构特性,在概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。在概要设计阶段,宜使用抽象的数据类型。
(b)数据库的设计
数据库的设计指数据存储文件的设计,主要进行以下几方面设计:
①概念设计
在数据分析的基础上,采用自底向上的方法从用户角度进行视图设计,一般用E-R模型来表示数据模型,这是一个概念模型。
②逻辑设计
E-R模型或IDEFlx模型是独立于数据库管理系统(DBMS)的,要结合具体的DBMS特征来建立数据库的逻辑结构,对于关系型的DBMS来说将概念结构转换为数据模式、子模式并进行规范,要给出数据结构的定义,即定义所含的数据项、类型、长度及它们之间的层次或相互关系的表格等。
③物理设计
对于不同的DBMS,物理环境不同,提供的存储结构与存取方法各不相同。物理设计就是设计数据模式的一些物理细节,如数据项存储要求、存取方式、索引的建立。

编写概要设计文档

文档主要有:
(a)概要设计说明书。
(b)数据库设计说明书,主要给出所使用的DBMS简介、数据库的概念模型、逻辑设计、结果。
©用户手册,对需求分析阶段编写的用户手册进行补充。
(d)修订测试计划,对测试策略、方法、步骤提出明确要求。

评审

对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性,关键的处理及内外部接口定义正确性、有效性,各部分之间的一致性等都一一进行评审。

概要设计是软件开发中承上启下的一个重要环节,它决定了软件开发的方向和过程。因为软件开发是个复杂过程,需要考虑方方面面的内容,如果没有一个纲领性的文档来组织管理,那么软件开发必然是一团糟。因此,概要设计书挑起了这个重任。

总结

我们写出来概要设计书应该达到以下4个目标。

1 .确定开发方案

如果让十个人拿着需求分析书直接进行软件开发,最后结果很可能是开发出十个风格迥异功能相同的系统。这些系统虽然功能相同,但是实现方法各有千秋,通过互相比较即可知道孰优孰劣。但是对于软件的开发来说,我们不可能同时开发出十个软件然后让客户择一而用,这是时间和金钱的浪费。所以必须在软件开发的概要设计阶段,深入调查、全盘考虑和细致比较之后确定开发方案。

2 .刻画软件的全貌

既然概要设计是在宏观层面对软件进行设计,决定系统的体系结构,系统模块划分和采用的技术路线,并指出实现该系统的关键技术难点等。所以在概要设计书中,着重记录软件的运行环境、功能模块划分和相互关系,而不涉及功能的实现细节。

3 .实现客户到软件开发者的转移

在软件系统的开发前期,一般只有少数几个资深的系统分析师与客户接触,了解需求,形成需求分析文档之后回到软件公司接着做概要设计。概要设计以及其后的阶段都是由软件从业人员着手进行,这些软件从业人员具有相同的领域知识,相互之间用专业术语来分析说明问题有时候会比用自然语言更容易表达和理解,并且不容易产生歧义。概要设计书担当起了客户与软件从业人员之间的桥梁作用,把客户用自然语言描述的需求转化为软件从业人员容易理解的系统功能说明书。

4 .为详细设计阶段提供可加工的素材

所有的详细设计都是基于概要设计中划分出的模块、组件,并且要遵守概要设计中的各项原则。所以,概要设计是详细设计的素材、依据、标准,是开展详细设计工作的起点。文章来源地址https://www.toymoban.com/news/detail-484340.html

到了这里,关于软件工程开发文档写作教程(12)—概要设计书的编制目标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AI+软件工程:10倍提效!用ChatGPT编写系统功能文档

    系统功能文档是一种描述软件系统功能和操作方式的文档。它让开发团队、测试人员、项目管理者、客户和最终用户对系统行为有清晰、全面的了解。 通过ChatGPT,我们能让编写系统功能文档的效率提升10倍以上。 我们以线上商城系统为例,介绍如何使用ChatGPT帮我们完成系统

    2024年03月25日
    浏览(60)
  • 软件工程(十) 需求工程之需求开发与管理

    前面我们学习到了需求工程的概念与分类,我们知道了需求工程主要分为需求开发和需求管理,但是没有说明到底该如何开发需求,有哪些方法去开发需求。到底该如何进行需求管理,又有哪些进行需求管理的方式。具体是如何去做的。下面我们将会详细进行描述。 前面提到

    2024年02月11日
    浏览(62)
  • 易语言软件定制软件开发脚本开发协议软件电脑网站APP应用视频制作工程制作

    随着信息技术的不断发展,易语言软件定制开发已成为许多公司的一项重要业务。本文将探讨如何利用易语言承接软件定制软件开发脚本开发协议软件电脑网站APP应用视频制作工程制作。 一、易语言概述 易语言是一种简单易学的编程语言,它采用中文编程,让不会英文的初

    2024年02月08日
    浏览(80)
  • 软件开发工程师 - 面试手册

    软件开发工程师是IT行业中最常见的岗位之一,主要负责设计、开发和维护软件应用。他们需要熟悉至少一种编程语言,了解软件开发的基本流程和原理,具备良好的解决问题能力和团队合作精神。 在招聘广告中,公司通常会对软件开发工程师的要求做出如下描述: 熟悉至少

    2024年02月06日
    浏览(65)
  • 工信部—高级软件开发工程师认证

    工业和信息化部教育与考试中心是工业和信息化部直属事业单位,承担计算机技术与软件专业技术资格考试、通信专业技术人员职业水平考试、电子通信行业职业技能鉴定、全国信息技术人才培养工程、产业工人网络平台建设等人才培养选拔工作。 软件工程师(Software Enginee

    2024年02月08日
    浏览(52)
  • [架构之路-152]-《软考-系统分析师》- 8-软件工程-2-软件工程的N维矩阵模型与软件开发方法(形式化方法、逆 向 工 程)

    8.1  软件工程的矩阵模型 横轴X(时间):是软件的生命周期 :需求分析=》架构设计=》编程实现=》测试=》版本发布=》部署运行 纵轴Y1维度/视角:软件开发活动, 不同什么周期阶段,有不同的开发活动,包括需求规格、设计文档、编码、测试规范、测试用例等活动。 纵轴

    2024年02月05日
    浏览(81)
  • 【软件工程】项目管理与迭代开发:DevOps平台、敏捷协作平台与软件需求交付

    1、项目管理与软件需求交付 软件需求交付方法: DevOps:DevOps是一种软件开发和运维的方法论,它强调开发团队和运维团队之间的紧密协作和沟通,以实现快速、高效、可靠的软件交付。DevOps的核心是自动化,包括自动化测试、自动化部署、自动化监控等。 敏捷协作:敏捷协

    2024年01月17日
    浏览(49)
  • AIGC+低代码+软件工程,必将引起软件开发领域一场新的革命!

    引言:AI低代码开发不仅是继面向过程,面向对象之后的一种新的抽象方式,也是继瀑布开发,敏捷开发之后的一种新的开发方法。 正是计算机技术的起步阶段,软件的基础设施正在建立,如操作系统,数据库,互联网底层协议等,软件正在从简单走向复杂。人们发现一旦软

    2024年02月12日
    浏览(50)
  • 软件工程中的人工智能:如何提高开发效率

    随着人工智能技术的发展,人工智能在软件工程领域的应用也越来越广泛。人工智能可以帮助软件工程师更高效地进行软件开发,提高开发效率。在这篇文章中,我们将讨论人工智能在软件工程中的应用,以及如何利用人工智能提高开发效率。 软件工程是一项复杂的技术,涉

    2024年02月21日
    浏览(85)
  • AI低代码开发宣言:一场新的软件工程革命

    引言:AI低代码开发不仅是继面向过程,面向对象之后的一种新的抽象方式,也是继瀑布开发,敏捷开发之后的一种新的开发方法。       正是计算机技术的起步阶段,软件的基础设施正在建立,如操作系统,数据库,互联网底层协议等,软件正在从简单走向复杂。人们发现

    2024年02月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包