精华内容
下载资源
问答
  • 软件设计---概要设计和详细设计
    千次阅读
    2019-10-30 22:57:28

    软件设计是需求工程的后续阶段,他根据项目所描述的需求(功能需求、性能需求、领域需求、数据需求等)的定义,进行数据设计、体系结构设计、界面设计和过程设计。

    软件设计主要解决“如何做”的问题,设计的方案最终会影响软件实现的成败。

    一般把软件设计分为概要设计和详细设计两个阶段,包括体系结构设计、界面设计、数据设计和过程设计。

    1.概要设计:

    也称总体设计,主要任务是基于数据流图和数据字典,确定系统的整体软件结构,划分软件的各个子模块,确定他们之间的关系。概要设计是要完成体系结构设计、数据设计和界面设计。

    体系结构设计:

    确定各子系统模块间的数据传递与调用关系;

    界面设计:

    包括与系统交互的人机界面设计,以及模块间、系统与外部系统的接口关系;

    数据设计:

    包括数据库、数据文件和全局数据结构的定义。

    2.详细设计

    详细设计的任务就是在概要设计的基础上,具体实现各部分的细节,直至系统的所有的内容都有足够详细的过程描述,使得编码的任务就是将详细设计的内容翻译成代码就可以了。详细设计就是完成过程设计。

    3.软件设计的原则

    a.分而治之

    分而治之用于解决大型、复杂度高的问题时所采用的策略。把大问题划分成若干个小问题,把对一个大问题的求解转换为对若干个小问题的解答,这样极大地降低了问题的复杂度;

    b.重用设计模式

    重用是指同一事物不做修改或者稍作改动就能多次使用的机制,重用的内容是软件的设计模式;

    c.可跟踪性

    软甲设计的任务之一就是确定软件各部分间的关系。设计系统结构,就是要确定系统各部分、个模块间的相互调用和控制关系,以便在需要修改模块的时,能掌握与修改模块有关的部分,并正确追溯问题的根源;

    d.灵活性

    设计的灵活性是指设计具有易修改性。会发生修改是因为:一是用户需求发生改变,二是设计存在缺陷,三是设计需要进化,四是设计利用重用。软件设计的灵活性主要是通过系统描述问题的抽象来实现。

    e.一致性

    一致性在软件设计方法和过程总都有体现。界面试图的一致性保证了用户体验和对系统的忠诚度。用统一的规则和约束规范模块接口定义,确保编码阶段对接口和数据结构的统一操作,减少数据理解的歧义。

    aaa

    更多相关内容
  • 引言 1.1编写目的 说明编写这份详细设计说明书的目的...说明本程序的设计中尚未解决而设计者认为在软件完成之前应解决的问题。 4程序2(标识符)设计说明 用类似F.3的方式,说明第2个程序乃至第N个程序的设计考虑。
  • 软件工程——总体设计详细设计

    万次阅读 2020-05-14 11:12:37
    需求分析确定了系统的开发目标,下一步工作就是软件设计软件设计可以进一步地 分为两个阶段:总体设计和详细设计。

    目录

    一、总体设计

    (一)总体设计的任务

    (二)总体设计的概念

    (三)结构设计的准则

    二、详细设计

             (一)详细设计的原则

    (二)详细设计的工具

    三、总体设计、详细设计文档的重要性


    需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。   

    一、总体设计

    (一)总体设计的任务

    在总体设计中有3个主要任务。

    (1)将系统划分成物理元素,即程序、文件、数据库和文档等。

    (2)设计软件结构,即将需求规格转换为体系结构,划分出程序的模块组成、模块间的相互关系。确定系统的数据结构、文件结构、数据库模式,确定测试方法与策略。

    (3)编写总体设计说明书、用户手册、测试计划,用结构图来描述软件结构,选择分解功能与划分模块的设计原则。

    (二)总体设计的概念

    模块:又称构件,是能够单独命名独立完成一定功能的程序语句合。

    抽象:即 物的本质特性而时不考虑它们的细

    信息隐蔽:每一个模块的实现细对于其模块来说是隐蔽的,就是说 模块中信息允许不需要这些信息的模块调用。

    模块的独立性:模块独立性的概是模块化、抽象信息隐蔽接结果。

    模块的独立性可以用两个定性标准度合和内聚。

    低         ————

    耦合性      

    ———→             

    非直接耦合

    数据耦合

    标记耦合

    控制耦合

    外部耦合

    公共耦合

    内容耦合

    强       ←———

    模块独立性

          ————             

    高         ←————

    内聚性      

    ————             低

    功能内聚

    信息内聚

    通信内聚

    过程内聚

    时间内聚

    逻辑内聚

    偶然内聚

    强       ←———

    模块独立性

          ————             弱

    (三)结构设计的准则

    1.提高设计准则

    2.选择合适的模块规模

    3.适当选择模块的深度、宽度、扇入和扇出

    4. 模块的作用范围应在控制范围之内

    5. 降低模块接口的复杂程度

    6. 设计单入口单出口且功能可预测的模块

    二、详细设计

    根据“由外向里”的思想方法,概要 设计完成之后,就要进行详细设计。详细设计确定每个模块的内部特征,即每个模块内部 的执行过程

    (一)详细设计的原则

    (1) 由于详细设计的蓝图是给其他人看的,所以模块的逻辑描述要清晰易读、正确可靠,这样别人才能读懂。这也是常说的清晰第一的设计风格。

    (2) 采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提程序的可 读性、可测试性、可维护性。其本内容归纳点: 

    程序语言中应尽量少GOTO,以确程序结构的独立性。

    使用单入口单出口的控制结构,确程序的静态结构与动态执行情况保证 程序易解。

    程序的控制结构一采用序、选择、循环三种结构,确结构单。

    用自向下步求方法完成程序设计。

    ⑤ 经典的控制结构有序、IF THEN ELSEDO-WHILE扩展分支CASEDO-UNTIL结构、数循DO-WHILE

    (二)详细设计的工具

    1.传统程序流程图

    2.N-S图

    3.PAD图

    三、总体设计、详细设计文档的重要性

         在总体设计阶段设计人员完成的主要文档是总体设计说明书,详细设计阶段的文档就是详细设计说明书。

         在设计软件的过程中,可能涉及到很多相关人员,建立设计文档的目的是为了把设计的思想告诉其他的相关人员。只有先让别人知道你设计的思想后别人才能做相应的工作, 可读性高同样有利于维护。

           

    展开全文
  • 软件工程:详细设计

    千次阅读 2020-10-23 21:33:30
    详细设计阶段的任务不是具体地编写程序,而是要设计出程序的“蓝图”。 详细设计的结果基本上决定了最终的程序代码的质量。 1,结构程序设计 程序的质量与程序所包含的GO TO 语句的数量成反比。只用“顺序”...

    根本目标:确定应该怎样具体地实现所要求的系统。

    详细设计阶段的任务不是具体地编写程序,而是要设计出程序的“蓝图”

    详细设计的结果基本上决定了最终的程序代码的质量。

    1,结构程序设计

    程序的质量与程序中所包含的GO TO 语句的数量成反比。只用“顺序”、“选择”和“循环”控制结构就能实现任何单入口单出口的程序

    结构程序设计:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。

    结构程序设计(全):结构程序设计是尽可能少用GO TO语句的程序设计方法。最好仅在检测出错误时才使用GO TO语句,而且应该总是使用前向GO TO(顺序执行,逆向执行时反向GO TO)语句。为了实际使用方便起见,常常还允许使用DO-UNTILDO-CASE两种控制结构

    修正的结构程序:结构程序设计(全)+ 允许使用LEAVE(BREAK)结构

    2,人机界面设计

    人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命,因此,必须对人机界面设计给与足够的重视。

    2.1,设计问题

    系统响应时间指从用户完成某个控制动作到软件给出预期的响应

    系统响应时间有两个重要属性,分别是长度和易变性。

    1)长度:时间过长,用户就会感到紧张,过短,加快用户操作节奏,可能会犯错误

    2)易变性:系统响应时间相对于平均响应时间的偏差即使系统响应时间较长,响应时间易变性低也有助于用户建立起稳定的工作节奏。

    常见的帮助设施可分为集成的和附加的两类

    1)集成的:设计在软件里面,Word的帮助

    2)附加的:联机用户手册,jdk手册

    解决问题:

    (1)用户与系统交互期间,是否在任何时候都能获得关于系统任何功能的帮助信息?有两种选择:提供部分功能的帮助信息和提供全部功能的帮助信息。

    (2)用户怎样请求帮助?3种选择:帮助菜单,特殊功能键和HELP命令。

    (3)怎样显示帮助信息?3种选择:在独立的窗口中,指出参考某个文档(不理想)和在屏幕固定位置显示简短提示。

    (4)用户怎样返回到正常的交互方式中?有两种选择:屏幕上的返回按钮和功能键。

    (5)怎样组织帮助信息?3种选择:平面结构,信息的层次结构和超文本结构。

    出错信息和警告信息,是出现问题时交互式系统给出的“坏消息”。一般说来,交互式系统给出的出错信息或警告信息,具有下述属性。

    (1) 用户可以理解的术语描述问题。

    (2) 提供有助于从错误中恢复的建设性意见。

    (3) 指出错误可能导致哪些负面后果(例如,破坏数据文件),以便用户检查是否出现了这些问题,并在确实出现问题时及时解决。

    (4) 伴随着听觉上或视觉上的提示

    (5) 不能带有指责色彩,不能责怪用户。

    许多高级用户仍然偏爱面向命令行的交互方式在提供命令交互方式时,必须考虑下列设计问题。

    (1) 是否每个菜单选项都有对应的命令?

    (2) 采用何种命令形式?3种选择:控制序列(例如,Ctrl+P),功能键和输入命令。

    (3) 学习和记忆命令的难度有多大?忘记了命令怎么办?

    (4) 用户是否可以定制或缩写命令?

    在越来越多的应用软件中,人机界面设计者都提供了“命令宏机制”。

    在理想的情况下,所有应用软件都有一致的命令使用方法。

    2.2,设计过程

    用户界面设计是一个迭代的过程,通常先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估,然后根据用户意见进行修改

    建立起用户界面的原型,就必须对它进行评估,评估可以是非正式的也可以使正式的。

    用户界面的评估周期 

    评估标准

    (1)系统及其界面的规格说明书的长度和复杂程度,预示了用户学习使用该系统所需要的工作量。

    (2)命令或动作的数量、命令的平均参数个数或动作中单个操作的个数,预示了系统的交互时间和总体效率。

    (3)设计模型中包含的动作、命令和系统状态的数量,预示了用户学习使用该系统时需要记忆的内容的多少。

    (4)界面风格、帮助设施和出错处理协议,预示了界面的复杂程度及用户接受该界面的程度。

    2.3,人机界面的设计指南

    一般交互指南:涉及信息显示、数据输入和系统整体控制。

    保持一致性菜单选择,命令输入,数据显示等应该使用一致的格式
    提供有意义的反馈应向用户提供视觉的和听觉的反馈,保证在用户和系统之间建立双向通信
    在执行有较大破坏性的动作之前要求用户确认如果用户要删除某些重要文件,提供再次确认按钮
    允许取消绝大多数操作提供撤销和恢复功能,避免用户浪费大量时间
    减少在两次操作之间必须记忆的信息量不需要用户记住下一步操作中需要的数字或字符串
    提高对话、移动和思考的效率应尽量减少用户按键的次数,设计屏幕布局应考虑鼠标移动距离
    允许犯错误系统能够保护自己不受严重错误的破坏
    按功能对动作分类,并据此设计屏幕布局
    设计者应该尽力提高动作的内聚性
    提供对用户工作内容敏感的帮助设施
    提高用户手册或者在线帮助
    用简单动词或动词短语作为命令名过长的命令难于识别和记忆,也会占用更多的菜单空间

    信息显示指南:多种不同方式“显示”信息:用文字、图形和声音;按位置、移动和大小;使用颜色、分辨率和省略

    只显示与当前工作内容有关的信息用户在获得有关系统的特定功能的信息时,不必看到与之无关的数据,菜单和图形。

    不要用数据淹没用户,应该用便于

    用户迅速吸取信息的方式来表示数据

    可以用图形或图表来取代庞大的表格

    使用一致的标记、标准的缩写和

    可预知的颜色

    限制的含义应该非常明确,用户无需参照其他信息源就能理解
    允许用户保持可视化的语境

    如果对显示的图形进行缩放,原始的图像应该一直显示着,以使用户知道当前看到的

    图像在原图像中所处的位置

    产生有意义的出错信息提供给用户反馈机制

    使用大小写、缩进和文本分组

    以帮助理解

    人机界面显示的信息大部分都是文字,文字的布局和形式对用户从中提取信息的

    难易程度有很大影响

    使用窗口分隔不同类型的信息利用窗口用户能够方便地保存多种不同类型的信息

    使用“模拟”显示方式表示信息,

    以使信息更容易被用户提取

    通过颜色代表数字表示危险程度更能引起用户注意
    高效率地使用显示屏使用多窗口时,应该有足够的空间使得每个窗口至少都显示出一部分

    数据输入指南:用户的大部分时间用在选择命令、输入数据和向系统提供输入。

    尽量减少用户的输入动作最重要的是减少用户击键次数,使用滑迟或者语音识别等
    保持信息显示和数据输入之间的一致性显示的视觉特征(长宽,文字大小)应该与输入域一致
    允许用户自定义输入专家级用户可能希望定义自己的专用命令或忽略类型的警告等

    交互应该是灵活的,并且可调整

    成用户最喜欢的输入方式

    秘书可能喜欢键盘,经理更喜欢鼠标
    使在当前动作语境中不适用的命令不起作用使用户不去做那些一定会错误的动作
    让用户控制交互流用户应该能够逃过不必要的动作,改变动作顺序
    对所有输入动作都提供帮助提供输入格式提示
    消除冗余的输入提供默认值或者取消数据单位,提供自动获得或者计算

    3,过程设计工具

    3.1,程序流程图

    程序流程图又称为程序框图,它是使用最广泛的描述过程设计的方法。程序流程图中使用的符号(a) 选择(分支)(b) 注释; (c) 预先定义的处理; (d) 多分支; (e) 开始或停止; (f) 准备; (g) 循环上界限; (h) 循环下界限; (i) 虚线; (j) 省略符; (k) 并行方式; (l) 处理; (m) 输入输出;  (n) 连接; (o) 换页连接; (p) 控制流

    总的趋势是越来越多的人不再使用程序流程图了。程序流程图的主要缺点如下:

    • 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。
    • 程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。
    • 程序流程图不易表示数据结构。

    3.2,盒图 

    盒图:出于要有一种不允许违背结构程序设计精神的图形工具的考虑,NassiShneiderman提出了盒图,又称为N-S图。

    它有下述特点:

    • 功能域(即一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。
    • 不可能任意转移控制。
    •  很容易确定局部和全程数据的作用域。
    • 很容易表现嵌套关系,也可以表示模块的层次结构。

    基本符号:(a) 顺序; (b) IF_THEN_ELSE型分支; (c) CASE型多分支; (d) 循环; (e) 调用子程序A

    3.3,PAD图 

    PAD图:也叫问题分析图,用二维树形结构的图来表示程序的控制流。

    基本符号:(a)顺序(先执行P1后执行P2)(b)选择(IF C THEN P1 ELSE P2); (c)CASE型多分支(d)WHILE型循环(WHILE C DO P);(e)UNTIL型循环(REPEAT P UNTIL C)(f)语句标号; (g)定义

    优点:

    • 使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。
    • PAD图所描绘的程序结构十分清晰。
    • PAD图表现程序逻辑,易读、易懂、易记。
    • 容易将PAD图转换成高级语言源程序,这种转换可 用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。
    • 即可用于表示程序逻辑,也可用于描绘数据结构。
    • PAD图的符号支持自顶向下、逐步求精方法的使用。

    3.4,判定表

    判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系

    组成:上部列出所有条件,左下部是所有可能做的动作,上部是表示各种条件组合的一个矩阵,下部是和每种条件组合相对应的动作

    判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。

    3.5,判定树

    判定表:判定表的变种,它也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。

    3.6,过程设计语言

    过程设计语言(PDL)也称为伪码。是用正文形式表示数据和处理过程的设计工具

    特点:

    (1)关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点。如,if…fi(endif)

    (2)自然语言的自由语法,它描述处理特点。

    (3)数据说明的手段。应该既包括简单的数据结构(例如纯量和数组),又包括复杂的数据结构(例如,链表或层次的数据结构)

    (4)模块定义和调用的技术,应该提供各种接口描述模式。

    优点:

    (1)可以作为注释直接插在源程序中间。

    (2)可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDL的书写和编辑工作。

    (3)已经有自动处理PDL的程序存在,而且可以自动由PDL生成程序代码

    PDL的缺点:不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单。

    4,面向数据结构的设计方法

    计算机软件本质上是信息处理系统,可以按照软件所处理的信息的特征来设计软件。

    面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。

    4.1,Jackson图

    顺序结构:每个元素按照顺序进行执行。

    选择结构:选择结构包括两个或多个数据元素,每次使用这个数据时按照一定条件从数据元素中选择一个。

    重复元素:根据使用时的条件由一个数据元素出现零次或多次构成。

     Jackson图优点

    • 便于表示层次结构,而且是对结构进行自顶向下分解的有力工具。
    • 形象直观可读性好。
    • 既能表示数据结构也能表示程序结构。

    4.2,改进的Jackson图

    Jackson图的缺点:用这种工具表示选择或重复时,选择条件或循环条件不能直接在图中表示,影响表达能力。

    (a)顺序结构BCD中任一个都不能是选择出现或重复出现的数据元素(即不能是右上角有小圆圈或星号标记的元素)

    (b)选择结构S右面括号中的数字i是分支条件的编号;

    (c)可选结构A或者是元素B或者不出现;

    (d)重复结构,循环结束条件的编号为i

    4.3,Jackson法

    步骤:

    (1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。

    (2)找出输入数据结构和输出数据结构中有对应关系的数据单元。

    (3)用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。

    • 为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框。
    • 根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。
    • 根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。
    • 列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。
    • 用伪码表示程序。
    顺序结构

    A seq

       B

       C

       D

    A end
    选择结构A select cond1
    B
    A or cond2
    C
    A or cond3
    D
    A end
    重复结构A iter until(或while) cond
    B
    A end

    例子:Jackson结构程序设计:一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。

    (1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。

    (2)找出输入数据结构和输出数据结构中有对应关系的数据单元。

    (3)用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。

    (4)列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。

    (5)用伪码表示程序。

    5,程序复杂从成都的定量度量

    定量度量程序复杂程度的方法很有价值

    (1)把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要用的工作量。

    (2)定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣。

    (3)程序的定量的复杂程度可以作为模块规模的精确限度。

    5.1,McCabe方法

    1,流图

    McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。

    流图实质上是“退化了的”程序流程图,描绘程序的控制流程,不表现对数据的具体操作以及分支或循环的具体条件。

    PDL翻译成的流图

    复合条件,就是在条件中包含了一个或多个布尔运算符(逻辑ORANDNANDNOR)

     计算环形复杂度的方法

    (1)流图中线性无关的区域数等于环形复杂度。

    (2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。

    (3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目

    环形复杂度的用途

    (1)对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测

    (2)实践表明,模块规模以V(G)≤10为宜

    5.2,Halstead方法

    根据程序中运算符和操作数的总数来度量程序的复杂程度         N1为程序中运算符出现的总次数,N2为操作数出现的总次数,程序长度N定义为:N=N1+N2

    程序中使用的不同运算符(包括关键字)的个数n1,以及不同操作数(变量和常数)的个数n2Halstead给出预测程序长度的公式如下:H=n1 log2  n1+n2 log2n2  

    多次验证都表明,预测的长度H与实际长度N非常接近。

    Halstead还给出了预测程序中包含错误的个数的公式如下:E=N log2 (n1+n2)/3000

    展开全文
  • 任务:就是为软件结构图的每一个模块确定所采用的算法和块内的数据结构。 5.1 结构化程序设计 流行的定义:结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和但入口单出口的控制结构。 5.1.1...

    第五章 软件详细设计

    任务:

    • ①为软件结构图中每一模块确定采用的算法和数据结构。
    • ②确定模块接口细节。
    • ③选定表达工具进行描述。
    • ④编写详细设计说明书,并通过复审。

    5.1 结构化程序设计

    流行的定义:结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。

    5.1.1 结构化的控制结构

    在这里插入图片描述
    在这里插入图片描述

    5.1.2 逐步细化的实现方法

    把给定的模块功能转变为它的详细过程性描述,通常采用逐步细化的策略。

    步骤:
    ①由粗到细地对程序进行逐步的细化。
    ②在细化程序的过程时,同时对数据的描述进行细化。
    ③每一步细化均使用相同的结构化语言。

    5.1.3 结构化程序设计的特点

    (1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。
    (2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。
    (3)不适用GO TO 语句,仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致。因此,程序容易阅读和理解,开发时也比较容易保证程序的正确性,即使出现错误也比较容易诊断和改正。
    (4)控制结构有确定的逻辑模式,编写程序代码只限于使用很少几种直截了当的方式,因此源程序清晰流畅,易读易懂而且容易测试。
    (5)程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。
    (6)程序的逻辑结构清晰,有利于程序正确性证明。
    (7)有利于设计的分工和组织工作。

    5.2 详细设计的工具

    5.2.1 程序流程图

    在这里插入图片描述

    5.2.2 盒图(N-S图)

    在这里插入图片描述

    5.2.3 问题分析图(PAD图)

    Problem Analysis Diagram
    在这里插入图片描述

    5.2.4 判定表

    在这里插入图片描述

    5.2.5 判定树

    在这里插入图片描述

    5.2.6 过程设计语言(PDL)

    在这里插入图片描述

    5.3 面向数据结构的设计方法

    5.3.1 Jackson图

    5.4 程序复杂度的概念及度量方法

    5.4.1 程序图

    在这里插入图片描述

    5.4.2 程序复杂度的度量方法

    (1)代码行度量方法
    (2)McCabe方法
    (3)Halstead方法

    展开全文
  • 软件开发文档-详细设计文档

    万次阅读 多人点赞 2019-06-21 11:22:34
    引言 引言也称前言、序言或概述经常作为科技论文的开端,提出文中要研究的问题,...系统功能总图系统总体介绍系统模块设计 模块结构图,模块汇总表,功能简述系统子模块 模块描述[功能点分析-],性能要求,模块类图
  • 软件概要设计详细设计的区别

    千次阅读 2017-01-10 10:41:04
     概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的...
  • 软件详细设计在ASPICE代号是SWE3,处于V模型的左侧; 软件测试则包含软件单元测试(SWE4),软件集成测试(SWE5)以及软件合格性测试(SWE6)三部分,处于V模型的右侧。下面我会比较详细地介绍一下各过程域的实施...
  • 如何撰写软件详细设计内容?

    万次阅读 2018-06-21 10:38:48
    如果一个软件系统比较简单,层次很少,本文件可以单独编写,和概要设计说明书中不重复部分合并编写。方案重点是模块的执行流程和数据库系统详细设计的描述。1.2 背景应包含以下几个方面的内容:A. 待开发软件系....
  • 软件工程】 详细设计

    千次阅读 2019-06-01 18:04:32
    详细设计过程设计): 文章目录一.详细设计的任务二.详细设计的方法 一.详细设计的任务 1.为每个模块确定采用的算法 2.确定每一模块使用的数据结构 3.确定模块接口的细节 4.要为灭一个模块设计出一组测试...
  • 1 软件设计的整体流程: 软件需求分析阶段:输出了《软件需求规格说明书》,涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作,搞清楚“要解决什么问题”。 概要设计阶段:确定软件系统的总体...
  • 概要设计详细设计软件

    千次阅读 2020-05-20 09:52:25
    在软件设计中,大家经常问到的一个问题是:概要设计应该怎样一个概要法,详细设计应该怎样一个详细法? 一般公司的研发流程是瀑布型的,这个模型的分析、设计阶段是基于经典的结构化方法。结构化设计方法的基本...
  • 2软件设计过程中应该遵循那些基本原理? 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来...
  • 软件概要设计详细设计

    万次阅读 多人点赞 2018-09-29 21:22:44
    1、总体设计的必要性:可以站全局角度上,花较少成本,从抽象的层次上分析对比多种可能性的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。 2、总体设计...
  • 软件开发详细设计

    千次阅读 2016-11-03 12:02:26
    传统软件开发详细设计: 模块内的数据结构进行设计。比如模块类、结构体的设计对数据结构进行物体设计。比如数据库表的设计,文件存储的设计,文件存储目录的设计每个模块进行详细算法设计。比如每个方法的...
  • 软件设计方法

    千次阅读 2021-03-29 11:11:17
    软件设计方法包括: (1)模型驱动设计。 (2)结构化设计 。 (3)信息工程。 (4)原型设计。 (5) 面向对象设计。 (6) 快速应用开发。
  • 软件工程 | 第五章 详细设计与实现

    千次阅读 2020-04-13 16:51:56
    软件工程 系列为本学期(2020春季)软件工程以及软件工程实践课程笔记整理~ 需求文档已经交了,设计文档还会远吗?从理论到实践,果然还有很多东西需要掌握 整理这部分笔记时想起了毕设学长的话,代码要让自己看懂...
  • 而概要设计详细设计属于软件开发的阶段 按照传统软件工程的软件过程,区别如下: 1.需求分析--产生 软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。涉及具体实现方法。用户能看得明白,开发...
  • 详细设计说明书

    万次阅读 多人点赞 2019-06-22 23:08:06
    目的是对该项目进行详细设计概要设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试做准备。本详细设计说明书的预期读者为本项目小组的成员以及对该小程序感兴趣,以后想对...
  • 软件详细设计模板

    万次阅读 2015-10-08 16:51:49
    产品名称Product name 密级Confidentiality level     产品版本Product version Total 8 pages 共 8 页 ...XXX软件详细设计说明书       Prepared by 拟制
  • 软件工程】详细设计说明书

    万次阅读 热门讨论 2018-03-30 20:37:55
    该文档实在概要设计的基础上,进一步的细化系统结构,展示了软件啊结构的图标,物理设计,数据结构设计,及算法设计详细的介绍了系统各个模块是如何实现的,包括涉及到的算法,逻辑流程等,为下一步系统的实现和...
  • 软件需求,概要设计详细设计(文档)怎么做,做什么? 52018.06.15 08:09:26字数 2451阅读 36159 写前面 由于项目工作需要 ,需要提供《软件需求规格说明书》,《软件概要设计说明书》和《软件详细设计...
  • 通过功能划分过程来完成软件结构设计设计基本模块如下:浏览登录、发表文章、发表评论、附件上传下载、文章管理、站点管理、站点自定义等。另外还有统计流量、设立网站日志等其他功能模块。 i. 根据数据流图决定...
  •  5.1 设计过程  5.2 设计原理  5.3 启发规则  5.4 描绘软件结构的图形工具  5.5 面向数据流的设计方法  5.6小结及作业 总体设计(概要设计或初步设计)的基本目的就是回答“概括地说,系统应该...
  • 系统详细设计过程指南

    千次阅读 2020-01-16 22:45:34
    为便于理解系统设计的整个过程,本文选取最为常见的用户登录认证的需求为示例,通过该需求的设计过程中的每一步,设计人员可对整个设计过程的方法和工具有深入全面的理解。 需求示例: 系统应采用口令、验证码组合...
  • 1 软件设计的整体流程: 软件需求分析阶段:输出了《软件需求规格说明书》,涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作,搞清楚“要解决什么问题”。 概要设计阶段:确定软件系统的总体...
  • 软件工程导论—总体设计

    千次阅读 多人点赞 2020-05-08 16:21:53
    1. 设计过程 2. 设计原理 3. 启发规则 4. 描绘软件结构的图形工具 5. 面向数据流的设计方法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 525,410
精华内容 210,164
关键字:

在软件详细设计过程中不采用