精华内容
下载资源
问答
  • 机票预定系统(需求分析及概要设计)软件设计说明书实例
  • 软件详细设计说明书实例,需要的童鞋速度下载,千辛万苦找到的哦。
  • 软件概要设计说明书案例

    热门讨论 2011-07-06 20:17:06
    软件概要设计说明书(案例),赞~ 软件概要设计是从总体上把握系统设计框架,他包括模块划分、处理流程和接口设计,概要设计说明书对上述内容作了总体描述,体现了用户需求与应用系统实现之间的关系,在设计过程中起...
  • 软件设计说明书模板及案例说明,使用的设计工具是rose,
  • 超详细软件著作权申请——软件设计说明书/软件用户说明书 1. 软件设计说明书模板 1.基本介绍 ​ 1.1背景介绍(说明大背景下产生的软件需求) ​ 1.2 软件的用途和特点 ​ 1.3 系统的软硬件环境 2.软件设计 ​ 2.1...

    超详细软件著作权申请——软件设计说明书/软件用户说明书

    1. 软件设计说明书模板

    1.基本介绍

    ​ 1.1背景介绍(说明大背景下产生的软件需求)

    ​ 1.2 软件的用途和特点

    ​ 1.3 系统的软硬件环境

    2.软件设计

    ​ 2.1设计基础

    ​ 2.2系统概述

    ​ 2.3软件体系结构

    ​ 2.4系统类文件

    3.系统结构

    ​ 3.1系统整体构架

    ​ 3.2系统模块

    ​ 3.3数据库设计

    4.系统实现和运行实例

    2. 软件用户说明书模板

    引言

    1.1编写目的【阐明编写手册的目的。指明读者对象。】

    1.2项目背景【说明项目来源、委托单位、开发单位及主管部门】

    1.3 定义【列出手册中使用的专门术语的定义和缩写词的原意】

    1.4参考资料【列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,

    可包括:a.项目的计划任务书、合同或批文;b.项目开发计划;C. 需求规格说

    明书;d.概要设计说明书;e。详细设计说明书;f.测试计划;g。手册中引用

    的其他资料、采用的软件工程标准或软件工程规范。】

    \2. 软件概述

    2.1目标

    2.2功能

    2.3 性能

    a.数据精确度【包括输入、输出及处理数据的精度】

    b.时间特性【如响应时间、处理时间、数据传输时间等。】

    c.灵活性【在操作方式、运行环境需做某些变更时软件的适应能力。】

    \3. 运行环境

    3.1硬件【列出软件系统运行时所需的硬件最小配置,如a. 计算机型号、主存容量;b.

    外存储器、媒体、记录格式、设备型号及数量;c。输入、输出设备;d.数据传输设

    备及数据转换设备的型号及数量。】

    3.2支持软件【如:a。操作系统名称及版本号;b. 语言编译系统或汇编系统的名称及版

    本号;C。数据库管理系统的名称及版本号;d.其他必要的支持软件。】

    \4. 使用说明

    4.1安装和初始化【给出程序的存储形式、操作命令、反馈信息及其含意、表明安装完成

    的测试实例以及安装所需的软件工具等。】

    4.2输入【给出输入数据或参数的要求。】

    4.2.1数据背景【说明数据来源、存储媒体、出现频度、限制和质量管理等。】

    4.2.2数据格式【如:a。长度;b.格式基准;C,标号;d.顺序;e。分隔符;f.

    词汇表;g. 省略和重复;h.控制。】

    4.2.3输入举例

    4.3输出【给出每项输出数据的说明】

    4.3.l数据背景【说明输出数据的去向使用频度、存放媒体及质量管理等。】

    4.3.2数据格式【详细阐明每一输出数据的格式,如:首部、主体和尾部的具体形式。】

    4.3.3举例

    4.4出错和恢复【给出:a。出错信息及其含意;b.用户应采取的措施,如修改、恢复、

    再启动.】

    4.5求助查询【说明如何操作】

    \5. 运行说明

    5.1运行表【列出每种可能的运行情况,说明其运行目的。】

    5.2运行步骤【按顺序说明每种运行的步骤,应包括:】

    5.2.1运行控制

    5.2.2操作信息

    a. 运行目的;b.操作要求;C。启动方法; d.预计运行时间;e。操作命令格

    式及格式说明;f.其他事项。

    5.2.3输入/输出文件【给出建立或更新文件的有关信息,如:】

    a.文件的名称及编号;b.记录媒体;C。存留的目录;d.文件的支配

    【说明确定保留文件或废弃文件的准则,分发文件的对象,占用硬件的优先

    级及保密控制等.】

    5.2.4启动或恢复过程

    \6. 非常规过程

    【提供应急或非常规操作的必要信息及操作步骤,如出错处理操作、向后备系统切换操作以

    及维护人员须知的操作和注意事项。】

    \7. 操作命令一览表

    【按字母顺序逐个列出全部操作命令的格式、功能及参数说明。】

    \8. 程序文件(或命令文件)和数据文件一览表

    【按文件名字母顺序或按功能与模块分类顺序逐个列出文件名称、标识符及说明。】

    \9. 用户操作举例

    作者:李白端了一碗汤
    链接:https://www.jianshu.com/p/b30c80f6a05d
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    展开全文
  • 软件概要设计说明书(案例).doc
  • 主要的工作有:根据在《需求分析说明书》中所描述的数据、功能、运行、性能需求,并依照《概要设计说明书》所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的...
  • 1 概要设计说明书 1 引言 1.1 编写目的 本设计书是高校固定资产管理项目程序的研发概要设计,将项目开发进程中或者项目结束后提供给双方人员使用,同时也可以作为实施后期的维护人员使用。 1.2 项目背景 作为软件...
  • 详细设计说明书实例:详细设计说明书模板、图书管理系统详细设计说明书
  • 包含几个软件的概要设计说明书实例 HYMIS概要设计说明书 概要设计说明书实例(网上书店) 等
  • 包含2套软件系统详细设计说明书模板和1个用户管理系统范例
  • 软件开发概要设计说明书范例

    热门讨论 2011-12-16 20:37:52
    软件公司技术文档,某管理信息系统的概要设计说明书 不是模板,是一个完整的实例
  • 软件设计说明书

    2012-10-19 11:10:10
    一般说来,需求分析属于软件定义方面 而概要设计、详细设计属于软件开发的阶段  按照传统软件工程的软件...概要设计--产生 软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并...

    一般说来,需求分析属于软件定义方面 
    而概要设计、详细设计属于软件开发的阶段 

    按照传统软件工程的软件过程,区别如下: 
    1.需求分析--产生   软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计) 
    2.概要设计--产生   软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。 
    3.详细设计--产生   软件详细设计说明书,对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。理论上要求可以照此编码

     

    软件概要设计做什么,怎么做


    一、软件设计一般流程: 
    1、先前的软件需求分析阶段,已经搞清楚了 “要解决什么问题”,并输出了《软件需要说明书》。这时一切都是理想。
    2、现在进入概要设计阶段,重点说清楚“总体实现方案”,确定软件系统的总体布局,各个子模块的功能和模块间的关系,与外部系统的关系。有一些研究与论证性的内容。并输出《软件概要设计说明书》。这时一切都是概念。
    3、最后进入详细设计阶段,重点说清楚“每个模块怎么做”,是“程序”的蓝图,确定每个模块采用的算法、数据结构、接口的实现、属性、参数。并输出《软件详细设计说明书》。这时一切都是实现。


    二、《概要设计说明书》的一般结构: 
       1、总述:需求或目标(讲一下事情的起源)、环境、局限;
               ----主要交代背景与大环境。(非重点)
       2、总体设计:从全局的角度说一下 总体结构、功能、处理流程、有哪些模块、模块间的关系;
               ----使读者有“全局”观,为下一步深入各个模块做好准备。
       3、外部接口:总体说明外部用户、软、硬件接口(可用资源);(这个接口不是java的interface) 。
               ----使读者了解可以利用的外部资源。
       4、模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块或系统的接口),处在什么逻辑位置、物理位置; (重点)
       5、数据结构:逻辑结构、物理结构(存储在数据表中,还是缓存中);  
       6、容灾设计:出错信息、出错处理; (可选)
       7、监控设计:运行模块组合、控制、时间;(可选)
       8、用户界面设计:(可选)
       9、安全设计:(可选)
       10、其它设计:(可选)
       11、制定规范(附录): 设计原则,代码规范、接口规约、命名规则。--是小组协同开发的基础

    三、模块设计是重点,多说几句: 

       可以写以下内容:
       1、模块描述:说明哪些模块实现了哪些功能;
       2、模块层次结构:可以使用某个视角的软件框架图来表达;
       3、模块间的关系:模块间依赖关系的描述,通信机制描述;
       4、模块的核心接口:说明模块传递的信息、信息的结构;
       5、处理方式设计:说一些满足功能和性能的算法;


    四、怎么使用概要设计: 
       1、用来评价总体设计的可行性。
       2、用来检查设计的模块是否完整,保证每一个功能都有对应的模块来实现。
       3、用来评估开发工作量、指导开发计划(在不写详细设计的情况下)。


    五、最后提醒: 
       1、概要设计阶段过于重视业务流程是个误区.
       2、概要设计阶段过于重视细节实现是个误区.

     

     

    摘要:
      本文是在概要设计实践和学习中的一些心得与学习笔记,希望与大家分享,如有不妥之处欢迎指正。
      关键字:
      概要设计,结构化,OOD
    正文:
      在需求明确、准备开始编码之前,要做概要设计,而详细设计可能大部分公司没有做,有做的也大部分是和编码同步进行,或者在编码之后。因此,对大部分的公司来说,概要设计文档是唯一的设计文档,对后面的开发、测试、实施、维护工作起到关键性的影响。
      一、问题的提出
      概要设计写什么?概要设计怎么做?
      如何判断设计的模块是完整的?
      为什么说设计阶段过于重视业务流程是个误区?
      以需求分析文档还是以概要设计文档来评估开发工作量、指导开发计划准确?
      结构化好还是面向对象好?
      以上问题的答案请在文章中找。
      二、概要设计的目的
      将软件系统需求转换为未来系统的设计;
      逐步开发强壮的系统构架;
      使设计适合于实施环境,为提高性能而进行设计;
      结构应该被分解为模块和库。
      三、概要设计的任务
       制定规范:代码体系、接口规约、命名规则。这是项目小组今后共同作战的基础,有了开发规范和程序模块之间和项目成员彼此之间的接口规则、方式方法,大家就有了共同的工作语言、共同的工作平台,使整个软件开发工作可以协调有序地进行。
      总体结构设计:
      功能(加工)->模块:每个功能用那些模块实现,保证每个功能都有相应的模块来实现;
      模块层次结构:某个角度的软件框架视图;
      模块间的调用关系:模块间的接口的总体描述;
      模块间的接口:传递的信息及其结构;
      处理方式设计:满足功能和性能的算法
      用户界面设计;
      数据结构设计:
      详细的数据结构:表、索引、文件;
      算法相关逻辑数据结构及其操作;
      上述操作的程序模块说明(在前台?在后台?用视图?用过程?······)
      接口控制表的数据结构和使用规则
      其他性能设计。
      四、概要设计写什么
      结构化软件设计说明书结构(因篇幅有限和过时嫌疑,在此不作过多解释)
      任务:目标、环境、需求、局限;
      总体设计:处理流程、总体结构与模块、功能与模块的关系;
      接口设计:总体说明外部用户、软、硬件接口;内部模块间接口(注:接口≈系统界面)
      数据结构:逻辑结构、物理结构,与程序结构的关系;
      模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块的接口,与其它系统或硬件的接口),处在什么逻辑位置、物理位置;
      运行设计:运行模块组合、控制、时间;
      出错设计:出错信息、处错处理;
      其他设计:保密、维护;
      OO软件设计说明书结构
      1 概述
      系统简述、软件设计目标、参考资料、修订版本记录
      这部分论述整个系统的设计目标,明确地说明哪些功能是系统决定实现而哪些时不准备实现的。同时,对于非功能性的需求例如性能、可用性等,亦需提及。需求规格说明书对于这部分的内容来说是很重要的参考,看看其中明确了的功能性以及非功能性的需求。
    这部分必须说清楚设计的全貌如何,务必使读者看后知道将实现的系统有什么特点和功能。在随后的文档部分,将解释设计是怎么来实现这些的。
      2 术语表
      对本文档中所使用的各种术语进行说明。如果一些术语在需求规格说明书中已经说明过了,此处不用再重复,可以指引读者参考需求说明。
      3 用例
      此处要求系统用用例图表述(UML),对每个用例(正常处理的情况)要有中文叙述。
      4 设计概述
      4.1 简述
      这部分要求突出整个设计所采用的方法(是面向对象设计还是结构化设计)、系统的体系结构(例如客户/服务器结构)以及使用到的相应技术和工具(例如OMT、Rose)
      4.2 系统结构设计
      这部分要求提供高层系统结构(顶层系统结构、各子系统结构)的描述,使用方框图来显示主要的组件及组件间的交互。最好是把逻辑结构同物理结构分离,对前者进行描述。别忘了说明图中用到的俗语和符号。
      4.3 系统界面
      各种提供给用户的界面以及外部系统在此处要予以说明。如果在需求规格说明书中已经对用户界面有了叙述,此处不用再重复,可以指引读者参考需求说明。如果系统提供了对其它系统的接口,比如说从其它软件系统导入/导出数据,必须在此说明。
      4.4 约束和假定
      描述系统设计中最主要的约束,这些是由客户强制要求并在需求说明书写明的。说明系统是如何来适应这些约束的。
      另外如果本系统跟其它外部系统交互或者依赖其它外部系统提供一些功能辅助,那么系统可能还受到其它的约束。这种情况下,要求清楚地描述与本系统有交互的软件类型以及这样导致的约束。
      实现的语言和平台也会对系统有约束,同样在此予以说明。
      对于因选择具体的设计实现而导致对系统的约束,简要地描述你的想法思路,经过怎么样的权衡,为什么要采取这样的设计等等。
      5 对象模型
      提供整个系统的对象模型,如果模型过大,按照可行的标准把它划分成小块,例如可以把客户端和服务器端的对象模型分开成两个图表述。在其中应该包含所有的系统对象。这些对象都是从理解需求后得到的。要明确哪些应该、哪些不应该被放进图中。所有对象之间的关联必须被确定并且必须指明联系的基数。聚合和继承关系必须清楚地确定下来。每个图必须附有简单的说明。
      6 对象描述
      在这个部分叙述每个对象的细节,它的属性、它的方法。在这之前必须从逻辑上对对象进行组织。你可能需要用结构图把对象按子系统划分好。
      为每个对象做一个条目。在系统对象模型中简要的描述它的用途、约束(如只能有一个实例),列出它的属性和方法。如果对象是存储在持久的数据容器中,标明它是持久对象,否则说明它是个临时对象(transient object)。
      对每个对象的每个属性详细说明:名字、类型,如果属性不是很直观或者有约束(例如,每个对象的该属性必须有一个唯一的值或者值域是有限正整数等)。
      对每个对象的每个方法详细说明:方法名,返回类型,返回值,参数,用途以及使用的算法的简要说明(如果不是特别简单的话)。如果对变量或者返回值由什么假定的话,Pre-conditions和Post-conditions必须在此说明。列出它或者被它调用的方法需要访问或者修改的属性。最后,提供可以验证实现方法的测试案例。
      7 动态模型
      这部分的作用是描述系统如何响应各种事件。一般使用顺序图和状态图。
      确定不同的场景(Scenario)是第一步,不需要确定所有可能的场景,但是必须至少要覆盖典型的系统用例。不要自己去想当然地创造场景,通常的策略是描述那些客户可以感受得到的场景。
      7.1 场景(Scenarios)
      对每个场景做一则条目,包括以下内容:
      场景名:给它一个可以望文生义的名字
      场景描述:简要叙述场景是干什么的以及发生的动作的顺序。
      顺序图:描述各种事件及事件发生的相对时间顺序。
      7.2 状态图
      这部分的内容包括系统动态模型重要的部分的状态图。可能你想为每个对象画一个状态图,但事实上会导致太多不期望的细节信息,只需要确定系统中一些重要的对象并为之提供状态图即可。
      8 非功能性需求
      五、概要设计怎么做
      结构化软件设计方法:
      详细阅读需求规格说明书,理解系统建设目标、业务现状、现有系统、客户需求的各功能说明;
      分析数据流图,弄清数据流加工的过程;
      根据数据流图决定数据处理问题的类型(变换型、事务型、其他型);
      通过以上分析,推导出系统的初始结构图;
      对初始结构图进行改进完善:所有的加工都要能对应到相应模块(模块的完整性在于他们完成了需求中的所有加工),消除完全相似或局部相似的重复功能(智者察同),理清模块间的层次、控制关系,减少高扇出结构,随着深度增大扇入,平衡模块大小。
      由对数据字典的修改补充完善,导出逻辑数据结构,导出每种数据结构上的操作,这些操作应当属于某个模块。
      确定系统包含哪些应用服务系统、客户端、数据库管理系统;
      确定每个模块放在哪个应用服务器或客户端的哪个目录、哪个文件(库),或是在数据库内部建立的对象。
      对每个筛选后的模块进行列表说明。
      对逻辑数据结构进行列表说明。
      根据结构化软件设计说明书结构对其他需要说明的问题进行补充说明,形成概要设计说明书。
      OO软件设计方法:
      在OOA基础上设计对象与类:在问题领域分析(业务建模和需求分析)之后,开始建立系统构架。
      第一步是抽取建立领域的概念模型,在UML中表现为建立对象类图、活动图和交互图。对象类就是从对象中经过“察同”找出某组对象之间的共同特征而形成类:
      对象与类的属性:数据结构;
      对象与类的服务操作:操作的实现算法;
      对象与类的各外部联系的实现结构;
      设计策略:充分利用现有的类;
      方法:继承、复用、演化;
      活动图用于定义工作流,主要说明工作流的5W(Do What、Who Do、When Do、Where Do、Why Do)等问题,交互图把人员和业务联系在一起是为了理解交互过程,发现业务工作流中相互交互的各种角色。
      第二步是构建完善系统结构:对系统进行分解,将大系统分解为若干子系统,子系统分解为若干软件组件,并说明子系统之间的静态和动态接口,每个子系统可以由用例模型、分析模型、设计模型、测试模型表示。软件系统结构的两种方式:层次、块状
      层次结构:系统、子系统、模块、组件(同一层之间具有独立性);
      块状结构:相互之间弱耦合
      系统的组成部分:
      问题论域:业务相关类和对象(OOA的重点);
      人机界面:窗口、菜单、按钮、命令等等;
      数据管理:数据管理方法、逻辑物理结构、操作对象类;
      任务管理:任务协调和管理进程;
      第三步是利用“4+1”视图描述系统架构:用例视图及剧本;说明体系结构的设计视图;以模块形式组成包和层包含概要实现模型的实现视图;说明进程与线程及其架构、分配和相互交互关系的过程视图;说明系统在操作平台上的物理节点和其上的任务分配的配置视图。在RUP中还有可选的数据视图。
      第四步是性能优化(速度、资源、内存)、模型清晰化、简单化(简单就是享受)。
      六、概要设计的原则
      总体原则和方法:由粗到细的原则,互相结合的原则,定性分析和定量分析相结合的方法,分解和协调的方法和模型化方法。
      要系统考虑系统的一般性、关联性、整体性和层次性。
      分解协调:目的是为了创造更好的系统。系统分解是指将一个复杂的系统分解为若干个子系统,系统协调一是系统内协调,即根据系统的总结构、总功能、总任务和总目标的要求,使各个子系统之间互相协调配合,在各个子系统局部优化基础上,通过内部平衡的协调控制,实现系统的整体优化;
      屏蔽抽象:从简单的框架开始,隐含细节;
      一致性:统一的规范、统一的标准、统一的文件模式;
      每个模块应当有一个统一命名的容易理解的名字;
      编码:由外向内(界面->核心);
      面向用户:概要设计是对于按钮按下后系统“怎么做”的简要说明;
      模块、组件的充分独立性、封闭性;
      同时考虑静态结构与动态运行;
      每个逻辑对象都应当说明其所处物理对象(非一一对应);
      每个物理对象都有合适的开发人员,并且利于分工与组装。(详细说明见本人另一篇文章:系统构架设计应考虑的因素);
      确立每个构架视图的整体结构:视图的详细组织结构、元素的分组以及这些主要分组之间的接口;
      软件构架与使用的技术平台密切相关,目前常用的平台有J2EE、.NET、CORBA等等,因此具体的软件构架人员应当具备使用这些平台的软件开发经验;
      通过需求功能与设计模块之间的列表对应,检查每个需求功能是否都有相应的模块来实现,保证需求功能的可追溯性和需求实现(模块)的完整性,同时可以检查重复和不必要的模块。
      在需求调研分析过程中对业务处理过程了解的完整性和准确性非常重要。调查了解清楚所有的业务流程才能设计出适合各流程业务节点用户业务特点和习惯的软件,使开发出来的软件更受欢迎。当然在进行软件概要设计时,要尽量排除业务流程的制约,即把流程中的各项业务结点工作作为独立的对象,设计成独立的模块,充分考虑他们与其他各种业务对象模块的接口,在流程之间通过业务对象模块的相互调用实现各种业务,这样,在业务流程发生有限的变化时(每个业务模块本身的业务逻辑没有变的情况下),就能够比较方便地修改系统程序模块间的调用关系而实现新的需求。如果这种调用关系被设计成存储在配置库的数据字典里,则连程序代码都不用修改,只需修改数据字典里的模块调用规则即可。
      七、概要设计的重要输出
      编码规范:信息形式、接口规约、命名规则;
      物理模型:组件图、配置图;
      不同角度的构架视图:用例视图、逻辑视图、进程视图、部署视图、实施视图、数据视图(可选);
      系统总体布局:哪些部分组成、各部分在物理上、逻辑上的相互关系;
      两个不可忽视的输出:
      与需求功能的关系:对于需求中的每一个功能,用哪一层、哪个模块、哪个类、哪个对象来实现(一对多关系);反过来,应当说明将要创建的系统每一层、每个模块、每个对象、每一个类“做什么”,他们是为了帮助实现哪些功能(一对多关系)。(需求的颗粒度在一开始往往是比较粗的,因此根据功能点对于整体项目规模的估计或得到项目WBS其误差范围也是比较大的。更为重要的原因是,需求往往不是编码工作分解的准确依据,因为一个需求的功能点可能对应多个代码模块,而多个需求的功能点也可能只对应一个或少数代码模块,同时还有软件复用等因素要考虑,因此只有在概要设计完成以后才能准确地得到详细设计或编码阶段的二次WBS,并估计较为准确的整体项目规模。)
      逻辑与物理位置:每个对象在逻辑上分别落在哪一层、哪个模块、哪个类;在物理上每个模块、每个对象、每一个类放在哪个应用服务器或客户端的哪个目录、哪个文件(库),或者是建立在数据库管理系统中的什么东东(过程、函数、视图、触发器等等)。
      八、结构化与面向对象方法特点比较
      1. 从概念方面看,结构化软件是功能的集合,通过模块以及模块和模块之间的分层调用关系实现;面向对象软件是事物的集合,通过对象以及对象和对象之间的通讯联系实现;
      2. 从构成方面看,结构化软件=过程+数据,以过程为中心;面向对象软件=(数据+相应操作)的封装,以数据为中心;
      3. 从运行控制方面看,结构化软件采用顺序处理方式,由过程驱动控制;面向对象软件采用交互式、并行处理方式,由消息驱动控制;
      4. 从开发方面看,结构化方法的工作重点是设计;面向对象方法的工作重点是分析;但是,在结构化方法中,分析阶段和设计阶段采用了不相吻合的表达方式,需要把在分析阶段采用的具有网络特征的数据流图转换为设计阶段采用的具有分层特征的结构图,在面向对象方法中则不存在这一问题。
      5. 从应用方面看,相对而言,结构化方法更加适合数据类型比较简单的数值计算和数据统计管理软件的开发;面向对象方法更加适合大型复杂的人机交互式软件和数据统计管理软件的开发;

     

     

     

    概要设计与详细设计的区别

    概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。 
    详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。

    概要设计阶段通常得到软件结构图 
    详细设计阶段常用的描述方式有:流程图、N-S图、PAD图、伪代码等


    概要设计和详细设计

    在软件设计中,大家经常问到的一个问题是:概要设计应该怎样一个概要法,详细设计应该怎样一个详细法? 
    这个问题在公司内部经常有人问。现在陈述一下。 
    我们公司的研发流程是瀑布型的,这个模型中的分析、设计阶段是基于经典的结构化方法。 

    结构化设计方法的基本思路是:按照问题域,将软件逐级细化,分解为不必再分解的的模块,每个模块完成一定的功能,为一个或多个父模块服务(即接受调用),也接受一个或多个子模块的服务(即调用子模块)。模块的概念,和编程语言中的子程序或函数是对应的。

    这样一来,设计可以明显地划分成两个阶段: 

    概要(结构)设计阶段:把软件按照一定的原则分解为模块层次,赋予每个模块一定的任务,并确定模块间调用关系和接口。 
    详细设计阶段:依据概要设计阶段的分解,设计每个模块内的算法、流程等。

    概要设计阶段:

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

    概要设计文档最重要的部分是分层数据流图、结构图、数据字典以及相应的文字说明等。以概要设计文档为依据,各个模块的详细设计就可以并行展开了。

    详细设计阶段:

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

    概要设计文档相当于机械设计中的装配图,而详细设计文档相当于机械设计中的零件图。文档的编排、装订方式也可以参考机械图纸的方法。 
    我们公司对模块的认识和传统定义有所不同,认为是较大的软件功能单元才可以称作模块。这种认识使大家对概要设计和详细设计的分工产生了混乱的理解,降低了文档的可用性,应该予以纠正。 
    概要设计中较顶层的部分便是所谓的方案。方案文档的作用是在宏观的角度上保持设计的合理性。

    有的项目采用面向对象的分析、设计方法。可能在概要设计、详细设计的分工上疑问更多。其实,面向对象的分析、设计方法并没有强调结构化方法那样的阶段性,因此一般不引入概要、详细设计的概念。如果按照公司的文档体系,非要有这种分工的话,可以将包的划分、类及对象间的关系、类的对外属性、方法及协作设计看做 概要设计;类属性、方法的内部实现看做详细设计。

    1.需求分析--产生软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。 
    2.概要设计--产生软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。 
    3.详细设计--产生软件详细设计说明书,对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。理论上要求可以照此编码。


    概要设计和详细设计的区别与联系

    软件设计采用自顶向下、逐次功能展开的设计方法,首先完成总体设计,然后完成各有机组成部分的设计。

    根据工作性质和内容的不同,软件设计分为概要设计和详细设计。概要设计实现软件的总体设计、模块划分、用户界面设计、数据库设计等等;详细设计则根据概要设计所做的模块划分,实现各模块的算法设计,实现用户界面设计、数据结构设计的细化,等等。

    概要设计是详细设计的基础,必须在详细设计之前完成,概要设计经复查确认后才可以开始详细设计。概要设计,必须完成概要设计文档,包括系统的总体设计文档、以及各个模块的概要设计文档。每个模块的设计文档都应该独立成册。

    详细设计必须遵循概要设计来进行。详细设计方案的更改,不得影响到概要设计方案;如果需要更改概要设计,必须经过项目经理的同意。详细设计,应该完成详细设计文档,主要是模块的详细设计方案说明。和概要设计一样,每个模块的详细设计文档都应该独立成册。

    概要设计里面的数据库设计应该重点在描述数据关系上,说明数据的来龙去脉,在这里应该结合我们的一下结果数据,说明这些结果数据的源点,我们这样设计的目的和原因。详细设计里的数据库设计就应该是一份完善的数据结构文档,就是一个包括类型、命名、精度、字段说明、表说明等内容的数据字典。

    概要设计里的功能应该是重点在功能描述,对需求的解释和整合,整体划分功能模块,并对各功能模块进行详细的图文描述,应该让读者大致了解系统作完后大体的结构和操作模式。详细设计则是重点在描述系统的实现方式,各模块详细说明实现功能所需的类及具体的方法函数,包括涉及到的sql语句等。

     


    概要设计,详细设计之间的关系是什么?

    Q:
    我的看法:
    概要设计只说明系统有多少个模块,各模块之间的接口和个模块本身的功能
    详细设计说明某个具体模块如何实现,粒度应该比程序略高一些

    但是问题来了,各个模块之间是有层次关系的,也有先后逻辑关系。这就说明,在概要设计中,还必须考虑模块的实现细节,否则,你怎么知道这个模块下面要划分子模块?你怎么知道各子模块的调用顺序?
    这就说明,概要设计和详细设计是重叠进行的,而软件工程书上说的确是顺序进行的,不知道是不是我的理解有问题。


    举个例子,例如排序程序,如果设计2个模块:
    一个主模块用于排序子模块用于交换2个变量,主模块调用子模块,但是子模块是怎么设计出来的呢?肯定是你先想到了用冒泡等排序方式的时候需要交换数据,这已经考虑了主模块足够多的细节,似乎属于"详细设计"了,但是目前进行的是概要设计,这就产生了我所说的重叠的情况。

    A:

    看看上面的帖子,有意思的居多。

    上面也有朋友说到用建筑的例子来比喻。

    软件的概要设计,主要是建立软件系统的整体架构,也就是我们在盖房子时候,需要先将房子的整个架子构建起来。

    软件的详细设计,主要是将软件系统的各个部分的具体设计方法、逻辑、功能采用文字方式进行表述。这样在实现过程中,Coding人员原则上严格按此进行代码实现即可。

    这样的一个最为简单的例证:我们可以将代码交付第三方来做。验证与跟踪采取设计来。

    我看上面还有一个朋友说:快速做代码。这个本身没有值得批评之处。但只要想一下,你写的代码没有任何设计思想、文档留下的情况,一旦你离开,如何维护?重新设计吗?还是花费几倍人力去研究你写的几千/万,甚至几十万行代码?如果是这样的,你没错,关键是你们老板太对了,钱算什么。

    展开全文
  • 概要设计说明书实例

    2009-11-19 23:24:39
    概要设计说明书 一. 引言 ...本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程 序的软件表示。 2. 项目背景(略) 3. 定义 ...
    概要设计说明书
    一. 引言
    1. 编写目的
    从 该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的 过程,这种表示只是描绘出软件的总的概貌。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程 序的软件表示。
    2. 项目背景(略)
    3. 定义
    在该概要设计说明书中的专门术语有:

    总体设计

    接口设计

    数据结构设计

    运行设计

    出错设计

    具体的概念与含义在文档后将会解释。

    4. 参考资料
    <软件工程概论> 李存珠 李宣东 编著 南京大学计算机系出版 2001年8月
    二. 任务概述
    1. 目标
    该阶段目的在于明确系统的数据结构和软件结构,此外总体设计还将给出内部软件和外部系统部件之间的接口定义,各个软件模块的功能说明,数据结构的细节以及具体的装配要求。
    2. 运行环境
    软件基本运行环境为Windows环境。
    3. 需求概述(略)
    4. 条件与限制
    为了评价该设计阶段的设计表示的“优劣程度”,必须遵循以下几个准则:

    1.软件设计应当表现出层次结构,它应巧妙地利用各个软件部件之间的控制关系。
    2.设计应当是模块化的,即该软件应当从逻辑上被划分成多个部件,分别实现各种特定功能和子功能。
    3.设计最终应当给出具体的模块(例如子程序或过程),这些模块就具有独立的功能特性。
    4.应当应用在软件需求分析期间得到的信息,采取循环反复的方法来获得设计。
    三. 总体设计
    1.处理流程
    系统的总体处理数据流程如下图:
    [img]http://www.mflw.com/tupian/xsxt/12.jpg[/img]
    图八总体处理流程图
    2.总体结构和模块外部设计
    模 块是软件结构的基础,软件结构的好坏完全由模块的属性体现出来,把软件模块化的目的是为了降低软件复杂性,使软件设计,测试,调试,维护等工作变得简易, 但随着模块数目的增加,通过接口连接这些模块的工作量也随之增加。从这些特性可得出如图九的一条总的成本(或工作量)曲线,在考虑模块化时,应尽量使模块 数接近于图中的M,它使得研制成本最小,而且应尽量避免不足的模块化或超量。
    [img]http://www.mflw.com/tupian/xsxt/13.jpg[/img]
    图九模块化与总体成本
    3.功能分配
    从程序的结构中可以看出,学生的信息输入输出功能是由学生管理系统进行的。课程的信息输入输出是由课程管理系统进行的,而班级的信息流动则是班级管理系统进行的。
    四. 接口设计
    由于系统的各种内外部接口是通过借助数据库开发软件来实现的,是完全在数据库内部操作的,故在此略过此内容。
    1. 外部接口(略)
    2. 内部接口(略)
    五. 数据结构设计
    1. 逻辑结构设计
    student_Info 学生基本信息表
    列名
    数据类型
    可否为空
    说明
    student_ID INT(4) NOT NULL 学生学号(主键)
    student_Name CHAR(10) NULL 学生姓名
    student_Gender CHAR(2) NULL 学生性别
    born_Date DATETIME(8) NULL 出生日期
    class_No INT(4) NULL 班号
    tele_Number CHAR(10) NULL 联系电话
    ru_Date DATETIME(8) NULL 入校时间
    address VARCHAR(50) NULL 家庭住址
    comment VARCHAR(200) NULL 注释
    class_Info 班级信息表格
    列名
    数据类型
    可否为空
    说明
    class_No INT(4) NOT NULL 班号(主键)
    grade CHAR(10) NULL 年级
    Director CHAR(10) NULL 班主任
    Classroom_No CHAR(10) NULL 教室
    course_Info 课程基本信息表
    列名
    数据类型
    可否为空
    说明
    [table]|
    course_No INT(4) NOT NULL 课程编号(主键)
    course_Name CHAR(10) NULL 课程名称
    course_Type CHAR(10) NULL 课程类型
    course_Des CHAR(50) NULL 课程描述|
    [/table]
    gradecourse_Info 年级课程设置表
    列名
    数据类型
    可否为空
    说明
    grade CHAR(10) NULL 年级
    course_Name CHAR(10) NULL 课程名称
    result_Info 学生成绩信息表
    列名
    数据类型
    可否为空
    说明
    exam_No CHAR(10) NOT NULL 考试编号
    student_ID INT(4) NOT NULL 学生学号
    student_Name CHAR(10) NULL 学生姓名
    class_No INT(4) NULL 学生班号
    course_Name CHAR(10) NULL 课程名称
    result FLOAT(8) NULL 分数
    user_Info 系统用户表
    列名
    数据类型
    可否为空
    说明
    user_ID CHAR(10) NOT NULL 用户名称(主键)
    user_PWD CHAR(10) NULL 用户密码
    user_DES CHAR(10) NULL 用户描述
    图十数据库逻辑结构图表
    2. 物理结构设计
    系统的物理结构具体由数据库来设计与生成,此处略。
    3. 数据结构与程序的关系
    系统的数据结构由标准数据库语言SQL生成。

    具体的例如创建系统用户表格 user_Info的程序用SQL表示就是:

    CREATE TABLE[dbo].[user_Info](
    [user_ID][char](10)COLLATE Chinese_PRC_CI_AS NOT NULL,
    [user_PWD][char](10)COLLATE Chinese_PRC_CI_AS NULL,
    [user_Des][char](10)COLLATE Chinese_PRC_CI_AS NULL
    ) ON [PRIMARY]
    六. 运行设计
    1. 运行模块的组合
    具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运行过程中能较好的交换信息,处理数据。
    2. 运行控制
    软件运行时有较友好的界面,基本能够实现用户的数据处理要求。
    3. 运行时间
    系统的运行时间基本可以达到用户所提出的要求。
    七. 出错处理设计
    1. 出错输出信息
    在用户使用错误的数据或访问没有权限的数据后,系统给出提示:“对不起,你非法使用数据,没有权限!”而且用户的密码管理可以允许用户修改自己的密码,不允许用户的匿名登录。
    2. 出错处理对策
    由于数据在数据库中已经有备份,故在系统出错后可以依靠数据库的恢复功能,并且依靠日志文件使系统再启动,就算系统崩溃用户数据也不会丢失或遭到破坏。但有可能占用更多的数据存储空间,权衡措施由用户来决定。
    八. 安全保密设计
    系统的系统用户管理保证了只有授权的用户才能进入系统进行数据操作,而且对一些重要数据,系统设置为只有更高权限的人员方可读取或是操作。系统安全保密性较高。
    九. 维护设计
    由于系统较小没有外加维护模块,因为维护工作比较简单,仅靠数据库的一些基本维护
    展开全文
  • 内含关于需求设计说明书的6大实例 可作论文参考
  • 全面地收集了5个较实用的概要设计的实例, 包括机票预定系统概要设计 某论坛概要设计 Lyra资源平台概要设计 学生学习管理系统概要设计 医院系统接口概要设计说明书 ...另加一份ISO软件工程模板之概要设计说明书
  • 一个非常好的详细设计说明书范例,很难找的,特别推荐。
  • oo软件设计说明书结构

    千次阅读 2012-04-10 16:05:21
    oo软件设计说明书结构 1 概述 系统简述、软件设计目标、参考资料、修订版本记录 这部分论述整个系统的设计目标,明确地说明哪些功能是系统决定实现而哪些时不准备实现的。同时,对于非功能性的需求例如性能、可用...
    oo软件设计说明书结构
    1 概述
    系统简述、软件设计目标、参考资料、修订版本记录
    这部分论述整个系统的设计目标,明确地说明哪些功能是系统决定实现而哪些时不准备实现的。同时,对于非功能性的需求例如性能、可用性等,亦需提及。需求规格说明书对于这部分的内容来说是很重要的参考,看看其中明确了的功能性以及非功能性的需求。
    这部分必须说清楚设计的全貌如何,务必使读者看后知道将实现的系统有什么特点和功能。在随后的文档部分,将解释设计是怎么来实现这些的。
    2 术语表
    对本文档中所使用的各种术语进行说明。如果一些术语在需求规格说明书中已经说明过了,此处不用再重复,可以指引读者参考需求说明。
    3 用例
    此处要求系统用用例图表述(uml),对每个用例(正常处理的情况)要有中文叙述。
    4 设计概述
    4.1 简述
    这部分要求突出整个设计所采用的方法(是面向对象设计还是结构化设计)、系统的体系结构(例如客户/服务器结构)以及使用到的相应技术和工具(例如omt、rose)
    4.2 系统结构设计
    这部分要求提供高层系统结构(顶层系统结构、各子系统结构)的描述,使用方框图来显示主要的组件及组件间的交互。最好是把逻辑结构同物理结构分离,对前者进行描述。别忘了说明图中用到的俗语和符号。
    4.3 系统界面
    各种提供给用户的界面以及外部系统在此处要予以说明。如果在需求规格说明书中已经对用户界面有了叙述,此处不用再重复,可以指引读者参考需求说明。如果系统提供了对其它系统的接口,比如说从其它软件系统导入/导出数据,必须在此说明。
    4.4 约束和假定
    描述系统设计中最主要的约束,这些是由客户强制要求并在需求说明书写明的。说明系统是如何来适应这些约束的。
    另外如果本系统跟其它外部系统交互或者依赖其它外部系统提供一些功能辅助,那么系统可能还受到其它的约束。这种情况下,要求清楚地描述与本系统有交互的软件类型以及这样导致的约束。
    实现的语言和平台也会对系统有约束,同样在此予以说明。
    对于因选择具体的设计实现而导致对系统的约束,简要地描述你的想法思路,经过怎么样的权衡,为什么要采取这样的设计等等。
    5 对象模型
    提供整个系统的对象模型,如果模型过大,按照可行的标准把它划分成小块,例如可以把客户端和服务器端的对象模型分开成两个图表述。在其中应该包含所有的系 统对象。这些对象都是从理解需求后得到的。要明确哪些应该、哪些不应该被放进图中。所有对象之间的关联必须被确定并且必须指明联系的基数。聚合和继承关系 必须清楚地确定下来。每个图必须附有简单的说明。
    6 对象描述
    在这个部分叙述每个对象的细节,它的属性、它的方法。在这之前必须从逻辑上对对象进行组织。你可能需要用结构图把对象按子系统划分好。
    为每个对象做一个条目。在系统对象模型中简要的描述它的用途、约束(如只能有一个实例),列出它的属性和方法。如果对象是存储在持久的数据容器中,标明它是持久对象,否则说明它是个临时对象(transient object)。
    对每个对象的每个属性详细说明:名字、类型,如果属性不是很直观或者有约束(例如,每个对象的该属性必须有一个唯一的值或者值域是有限正整数等)。
    对每个对象的每个方法详细说明:方法名,返回类型,返回值,参数,用途以及使用的算法的简要说明(如果不是特别简单的话)。如果对变量或者返回值由什么假 定的话,pre-conditions和post-conditions必须在此说明。列出它或者被它调用的方法需要访问或者修改的属性。最后,提供可以 验证实现方法的测试案例。
    7 动态模型
    这部分的作用是描述系统如何响应各种事件。一般使用顺序图和状态图。
    确定不同的场景(scenario)是第一步,不需要确定所有可能的场景,但是必须至少要覆盖典型的系统用例。不要自己去想当然地创造场景,通常的策略是描述那些客户可以感受得到的场景。
    7.1 场景(scenarios)
    对每个场景做一则条目,包括以下内容:
    场景名:给它一个可以望文生义的名字
    场景描述:简要叙述场景是干什么的以及发生的动作的顺序。
    顺序图:描述各种事件及事件发生的相对时间顺序。
    7.2 状态图
    这部分的内容包括系统动态模型重要的部分的状态图。可能你想为每个对象画一个状态图,但事实上会导致太多不期望的细节信息,只需要确定系统中一些重要的对象并为之提供状态图即可。
    8 非功能性需求
    展开全文
  • 基于JavaWeb开发的智慧水务管理系统软件设计说明书 编号:QN-STD-PLIS ...
  • ![图片说明](https://img-ask.csdn.net/upload/201912/11/1576045522_885475.png)
  • 软件详细设计说明书

    2015-06-22 22:10:00
    1 引言 ...为了使开发人员跟好的了解软件设计以及让用户清楚地认识软件。 1.2 背景 待开发软件为“猫咪记单词”,本项目由团队成员协商提出,开发着为团队成员,用户为在校大学生。 1.3参考资料 ...
  • 面向对象软件设计说明书模板

    千次阅读 2007-08-08 10:50:00
    面向对象软件设计说明书模板blueski推荐 [2007-7-31]出处:http://www.sawin.cn/doc/Document/DocPattern/blueski1402.htm作者:不详 1 概述 1.1 系统简述 对系统要完成什么,所面向的用户以及系统运行的环境的...
  • 软件概要设计说明书—模板

    千次阅读 2017-07-29 12:21:00
    软件概要设计说明书—模板 1 引言 1.1 目的 介绍编写本文档的目的,主要内容及读者。 1.2 需求概述 描写叙述所要实现的功能和性能等。 1.3 名词及缩略语 列出文档中所用到的专门术语的...
  • 国军标-Gjb软件设计说明书模板

    万次阅读 2016-06-29 17:47:55
    一、Trufun服务目标 ...规范软件开发过程 优化软件开发流程 保证软件开发质量 提高软件开发效率  西安楚凡科技有限公司(Trufun)是全球领先的软件开发行业应用生命周期管理(ALM)和CASE工具解决方
  • 免费小说网站设计说明书 **前言 **修订及迭代 版本 说明 修订 V1.0 初版已完成部分设计 1 需求分析 1.1可行性分析 (一)市场可行性 不可否认市面上有很多的小说阅读网站,但大多数的小说阅读网站都...
  • 软件工程】数据库设计说明书

    千次阅读 热门讨论 2018-03-30 20:39:22
    数据库设计说明书(GB8567——88) 1引言 1.1编写目的 本文档描述了机房收费系统数据库的设计,提供了数据酷库设计的可视性以及软件支持所需的信息,应用于机房收费系统开发前期,为后期的数据库设计指引方向,也...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,533
精华内容 32,213
关键字:

软件设计说明书实例