第8章结构化详细设计
结构化设计

⑷.按照设计改进原则细化和改进初始的SC图,获得最 终SC图。
⑸.给出模块接口描述。例如,进出模块的参数表,外
界输入输出以及从全程数据(区)得到的信息项等, 此外还要注明它的调用模块和被调用模块。
⑹.复审,如有错误,转⑵修改完善,否则进入详细 设计。
2 SD方法设计步骤
“事务”
区分事务中心和数据接 受通路
(2) 盒图(N—S图)
盒图是为了满足结构化需要,特别 是取消了程序流程图随意跳转规则后而 提出的。
软件工程
5种控制结构N—S图的符号
(2) 盒图(N—S图)
与程序流程图相比较,盒图具有如下明显的优点: l 在盒图中不能任意转移控制。 l 特定控制逻辑的作用范围明确,可以从盒图上一目了然。 l 很容易确定局部和全程数据的作用域。 l 很容易表现嵌套关系,也容易表示模块的层次结构。 l 所有的程序结构均用方框表示。因此程序的结构非常清晰。 l 程序只有一个入口、一个出口,完全能够满足单人口单出口的结 构化程序设计要求。 l 盒图形象直观,具有良好的可视性。循环的范围、条件语句的控 制范围等都是一目了然的。 l 盒图简单,易学易用。 主要缺点是: 当程序内嵌套的层数增多时,内层方框会越来越小,一方 面会增加画图难度,另一方面会影响图形的清晰度。
PDL的缺点:不如图形描述形象直观,很容易使人陷入 程序的具体细节中去,因此人们常常将PDL描述与具体的 图形描述结合起来使用。
软件工程
(5) 判定表
在进行软件设计时如遇到复杂的条件选择,有 必要使用一种描述机制来清晰地表示复杂的条件 组合与动作间的对应关系,判定表就是解决这一 问题的有力工具。
一张判定表由4部分组成。左上部列出所有条 件;左下部列出所有可能做的工作;右上部每一 列表示出各种条件的一种可能组合,填入“T” 表示条件成立,填入“F”表示条件不成立,空 白表示条件成立与否不影响。所以所有列表示条 件组合全部可能情况;右下部的每一列是和每一 种条件组合相对应的工作,填入“×”表示在该 列上部规定的条件下做该行左边列出的那项工作, 空白表示不做该项工作。
结构化详细设计ppt课件

结构化详细设计的结构和特点 结构化详细设计工具 人机交互界面设计 数据库设计 编码实现
1
8.1详细设计
详细设计就是在概要设计的基础上决定如何具 体实现各模块的内部细节,直到对系统中的每 个模块给出足够详细的过程描述。
在编码实现阶段就可以完全按照详细设计的细 节过程来映射到代码,最终实现整个系统。
用先全局后局部、先整体后细节、先抽象后具体的逐步求精 过程开发出的程序有清晰的层次结构,因此容易阅读和理解。
仅使用单入口单出口的控制结构,使得程序的静态结构和它 的动态执行情况比较一致。因此,程序容易阅读和理解,开 发时也比较容易保证程序的正确性,即使出现错误也比较容 易诊断和改正。
控制结构有确定的逻辑模式,编写程序代码只限于使用很少 几种直截了当的方式,因此源程序清晰流畅,易读易懂而且 容易测试。
15
PAD图举例
P1
P2 P3
C P4
P5
P6
until C2
11
盒图符号
A B
a.顺序
FPT BA
FPT A
b.IF-THEN-ELSE 选择
S Do until p
d.do-until 循环
P
=1 =2
=n
A1 A2
An
e.多分支选择
Do while p S
c.do-while 循环
12
PAD图
PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1973年由日本日 立公司发明。
4
结构化详细设计的结构
三种基本结构
顺序结构 选择结构 循环结构
5
A
软件工程-课程目录-大纲视图(全国高等教育自学考试指定教材-计算机网络专业-独立本科)

第一章绪论1.1 软件工程概念的提出与发展1.2 软件开发的本质1.3 本章小结第二章软件需求与软件需求规约2.1 需求与需求获取2.1.1需求定义2.1.2 需求分类2.1.3 需求发现技术2.2 需求规约2.2.1 需求规约定义2.2.2 需求规约(草案)格式2.2.3 需求规约(规格说明书)的表达2.2.4 需求规约的作用2.3 本章小结第三章结构化方法3.1 结构化需求分析3.1.1 基本术语1.数据流2.数据存储3.数据源和数据谭3.1.2 系统功能模型表示数据流图(Dataflow Diagram)3.1.3 建模过程1.建立系统环境图, 确定系统语境2.自顶向下, 逐步求精, 建立系统的层次数据流图3.定义数据字典数据流条目给出所有数据流的结构定义数据存储条目给出所有数据存储的结构定义数据项条目给出所有数据项的类型定义4.描述加工(1)结构化自然语言(2)判定表(3)判定树3.1.4 应用中注意的问题(1)模型平衡问题(2)信息复杂性控制问题3.1.5 需求验证3.2 结构化设计3.2.1 总体设计1.总体设计的目标及其表示(1)Yourdon提出的模块结构图(2)层次图(3)HIPO图2.总体设计步骤(1)变换型数据流图——变换设计(2)事物型数据流图——事物设计3.模块化及启发式规则(1)模块化1)耦合①内容耦合②公共耦合③控制耦合④标记耦合⑤数据耦合2)内聚①偶然内聚②逻辑内聚③时间内聚④过程内聚⑤通信内聚⑥顺序内聚⑦功能内聚(2)启发式规则1)改进软件结构, 提高模块独立性2)力求模块规模适中3)力求深度、宽度、扇出和扇入适中4)尽力使模块的作用域在其控制域之内5)尽力降低模块接口的复杂度6)力求模块功能可以预测3.2.2 详细设计1.结构化程序设计2.详细设计工具(1)程序流程图(2)盒图(N-S图)(3)PAD图(Problem Analysis Diagram)(4)类程序设计语言IPO图、判定树和判定表等也可以作为详细设计工具3.3 本章小结第四章面向对象方法——UML 4.1 UML术语表4.1.1 表达客观事物的术语1.类与对象1)类的属性(Attribute)2)类的操作3)关于类语义的进一步表达①详细叙述类的职责(Responsibility)②通过类的注解和/或操作的注解, 以结构化文本的形式和/编程语言, 详述注释整个类的语义和/或各个方法③通过类的注解或操作的注解, 以结构化文本形式, 详述注释各个操作的前置条件和后置条件, 甚至注释整个类的不变式④详述类的状态机⑤详述类的内部结构⑥类与其他类的协作4)类在建模中的主要用途①模型化问题域中的概念(词汇)②建立系统的职责分布模型③模型化建模中使用的基本类型2.接口(Interface)(1)采用具有分栏和关键字《interface》的矩形符号来表示(2)采用小圆圈和半圆圈来表示3.协作(Collaboration)4.用况(Use Case)5.主动类(Action Class)6.构件(Component)7.制品(Artifact)8.节点(Node)4.1.2 表达关系的术语1.关联(Association)(1)关联名(Name)(2)导航(3)角色(Role)(4)可见性(5)多重性(Multiplicity)(6)限定符(Qualifier)(7)聚合(Aggregation)(8)组合(Composition)(9)关联类(10)约束①有序(ordered)②无重复对象(set)③有重复对象(bag)④列表(list)或序列(sequence)⑤只读(readonly)2.泛化(Generalization)①完整(Complete)②不完整(Incomplete)③互斥(Disjoint)④重叠(Overlapping)3.细化(Realization)4.依赖①绑定(Bind)②导出(Derive)③允许(Permit)④实例(InstanceOf)⑤实例化(Instantiate)⑥幂类型(Powertype)⑦精化(Refine)⑧使用(Use)可模型化以下各种关系(1)结构关系1)以数据驱动2)以行为驱动(2)继承关系(3)精化关系(4)依赖关系4.1.3 表达组合信息的术语——包1)访问(Access)2)引入(Import)4.2 UML模型表达格式1.类图(Class Diagram)(1)模型化待建系统的概念(词汇), 形成类图的基本元素(2)模型化待建系统的各种关系, 形成该系统的初始类图(3)模型化系统中的协作, 给出该系统的最终类图(4)模型化逻辑数据库模式2.用况图(Use Case Diagram)所包含的内容(1)主题(Subject)(2)用况(Use Case)(3)参与者(Actor)(4)关联、泛化与依赖模型化工作1)关于系统/业务语境的模型化①系统边界的确定②参与者与用况的交互③参与者的语义表达④参与者的结构化处理2)关于系统/业务需求的模型化①确定系统/业务的基本用况②用况的结构化处理③用况的语义表达3.状态图(1)状态1)名字2)进入/退出效应(Effect)①entry②exit③状态内部转移3)do动作或活动4)被延迟的事件(2)事件1)信号(Signal)事件2)调用(Call)事件3)时间事件4)变化事件(3)状态转移①源状态②转移触发器③监护(guard)条件④效应(effect)⑤目标状态实际应用中, 使用状态图的作用①创建一个系统的动态模型②创建一个场景的模型4.顺序图(1)术语解析1)消息2)对象生命线3)聚焦控制(the Focus of Control)(2)控制操作子1)选择执行操作子(Operator for Optional Execution)2)条件执行操作子(Operator for Conditional Execution)3)并发执行操作子(Operator for Parallel Execution)4)迭代执行操作子(Operator for Iterative Execution)4.3 本章小结第五章面向对象方法——RUP5.1 RUP特点1.以用况为驱动2.以体系结构为中心3.迭代增量式开发5.2 核心工作流5.2.1 需求获取1.列出候选需求2.理解系统语境(1)业务用况模型(2)业务对象模型3.捕获系统功能需求(1)活动1: 发现并描述参与者(2)活动2: 发现并描述用况(3)活动3: 确定用况的优先级(Priority)(4)活动4: 精化用况(5)活动5: 构造用户界面原型1)用户界面的逻辑设计2)物理用户界面的设计3)开发用户界面原型并演示为了执行该用况, 用户怎样使用该系统(6)活动6: 用况模型的结构化5.2.2 需求分析1.基本术语(1)分析类(Analysis Class)1)边界类(Boundary Classes)2)实体类(Entity Classes)3)控制类(Control Classes)(2)用况细化(Use Case Realization)(3)分析包(Analysis Package)2.分析模型的表达3.分析的主要活动(1)活动1: 体系结构分析(Architectural Analysis)1)任务1: 标识分析包2)任务2: 处理分析包之间的共性3)任务3: 标识服务包4)任务4: 定义分析包的依赖5)任务5: 标识重要的实体类6)任务6: 标识分析包和重要实体类的公共特性需求(2)活动2: 用况分析1)任务1: 标识分析类①标识实体类②标识边界类③标识控制类2)任务2: 描述分析(类)对象之间的交互(3)活动3: 类的分析1)任务1: 标识责任2)任务2: 标识属性①关于实体类属性的标识②关于边界类属性的标识③关于控制类属性的标识3)任务3: 标识关联和聚合①关于关联的标识②关于聚合的标识③关于泛化的标识(4)活动4: 包的分析4.小结(1)关于分析模型1)分析包2)分析类3)用况细化(2)关于分析模型视角下的体系结构描述(3)用况模型和分析模型比较(4)分析模型对以后工作的影响1)对设计中子系统的影响2)对设计类的影响3)对用况细化[设计]的影响5.2.3 设计1.设计层的术语(1)设计类(Design Class)(2)用况细化[设计](3)设计子系统(4)接口(Interface)2.设计模型、部署模型以及相关视角下的体系结构描述(1)设计模型及其视角下的体系结构描述1)子系统结构2)对体系结构有意义的设计类3)对体系结构有意义的用况细化[设计](2)部署模型及该模型视角下的体系结构描述3设计的主要活动(1)活动1: 体系结构的设计1)任务1: 标识节点和它们的网络配置2)任务2: 标识子系统和它们的接口①标识应用子系统②标识中间件和系统软件子系统③定义子系统依赖④标识子系统接口3)任务3: 标识在体系结构方面有意义的设计类和它们的接口4)任务4: 标识一般性的设计机制①标识处理透明对象分布的设计机制②标识事务管理的设计机制(2)活动2: 用况的设计1)标识参与用况细化的设计类2)标识参与用况细化的子系统和接口(3)活动3: 类的设计1)任务1: 概括描述设计类2)任务2: 标识操作3)任务3: 标识属性4)任务4: 标识关联和聚合5)任务5: 标识泛化6)任务6: 描述方法7)任务7: 描述状态(4)活动4: 子系统的设计1)任务1: 维护子系统依赖2)任务2: 维护子系统所提供的接口3)任务3: 维护子系统内容4.RUP设计小结1)RUP设计的突出特点2)关于RUP的设计方法①给出用于表达设计模型中基本成分的4个术语, 包括子系统, 设计类, 接口, 用况细化[设计]②规约了设计模型的语法, 指导模型的表达③给出了创建设计模型的过程以及相应的指导3)RUP的设计模型①设计子系统和服务子系统②设计类(其中包括一些主动类), 以及他们具有的操作、属性、关系及其实现需求。
第8章 面向对象分析-软件工程基础(第3版)-胡思康-清华大学出版社

第8章 面向对象分析
第 5 页5
面向对象分析概述
面向对象分析的3类模型
OOA模型由3类独立模型构成:功能模型、静态模型和动态模型。 ➢功能模型描述软件系统的用户交互和功能。 ➢静态模型描述软件系统中类与对象以及它们间的关系,也因也称 为对象模型。 ➢动态模型描述系统的控制结构,也称为交互模型。
第8章 面向对象分析
第 6 页6
面向对象分析概述
类
静态模型的5个层次 类-对象层
对象
Coad和Yourdon 提出,对于大型、复杂 性软件系统,需要建立 分析问题域的静态模型。 该模型由5个层次组成: 类-对象层、结构层、 属性层、服务层和主题 层。
结构层 属性层 服务层 主题层
泛化关系
关联关系
属性
对象连接
服务
消息连接
⑶ 用例描述:用文字信息详细描述用例的内容,它是对用 例的有益补充。
第8章 面向对象分析
第 8 页8
建立静态模型
➢用例模型分别从参与者和系统的角度描述用户需求, 依据用例模型导出静态模型。静态模型是面向对象建 模中最基本、最重要、最耗时的技术活动。 ➢静态建模的任务是构建问题域的概念模型,把问题 域中的实体转变为信息域的类与对象以及它们间的关 系,因此也被称为对象模型或领域模型。 ➢静态模型通过建立类图及关系来反映领域概念,而 面向对象设计也建立类图,但各阶段对类的抽象程度 不同。
第8章 面向对象分析
第 12 页12
建立动态模型
建立状态图
状态图描述的就是对象状态的转换过程。通过对对象状态 的分析,能够了解对象在系统流程中的变换,从而发现潜在的事 件和条件。
建立状态图的一般过程如下: ⑴ 了解系统的主要功能和性能,确定和它们有关的主要对象。 ⑵ 列出一个对象的生存期内的所有可能的状态。 ⑶ 确定对象状态改变时的触发条件或事件。 ⑷ 在一个对象中,选定一组与描述状态相关的行为属性和促使 改变状态的方法。 ⑸ 结合触发条件、事件、行为属性值改变的先后顺序,建立软 件系统的状态图。
简述结构化程序设计方法的基本要点

结构化程序设计方法的基本要点简介结构化程序设计方法是一种用于构建大型程序的系统性方法。
它通过将程序分解为一系列小的、可管理的模块,以及规定了模块之间的交互方式,从而降低程序的复杂性,提高程序的可维护性和可读性。
本文将从以下几个方面详细介绍结构化程序设计方法的基本要点。
1. 模块化模块化是结构化程序设计方法的核心思想之一。
模块化将程序分解为多个功能相对独立的模块,每个模块负责完成一个特定的任务。
模块化有助于提高程序的可读性,可维护性和可重用性。
1.1 模块划分在进行模块划分时,可以按照功能划分原则,将程序划分为几个不同的功能模块,每个模块负责完成一个特定的功能。
也可以按照数据划分原则,将程序划分为几个处理不同数据的模块。
模块应该具有清晰的职责和界限,不同模块之间的功能和数据交互应该通过接口进行。
1.2 接口设计模块之间的接口设计是模块化的关键。
接口应该明确定义模块之间的输入和输出,以及数据的传递方式。
良好的接口设计可以降低模块之间的耦合度,提高代码的可复用性,使得模块可以独立开发和测试。
1.3 函数与过程模块可以通过函数或过程来实现。
函数是一段可重用的代码,用于执行特定的计算或操作,并返回一个结果。
过程是一段可重用的代码,用于执行一系列操作,不返回结果。
函数和过程有助于将程序划分为更小的单元,提高程序的可读性和可维护性。
2. 控制结构控制结构是结构化程序设计方法的另一个重要要点。
控制结构用于控制程序的执行流程,改变程序的执行顺序或执行条件。
2.1 顺序结构顺序结构是程序从上到下按照顺序执行的控制结构。
顺序结构是程序的基础,所有的程序都是从顺序结构开始进行。
2.2 选择结构选择结构用于根据条件选择执行不同的代码块。
常见的选择结构包括if语句和switch语句。
if语句用于判断一个条件是否成立,如果条件成立,则执行其中的代码块;否则执行其他代码块。
switch语句可以根据一个表达式的值选择执行不同的代码块。
结构化方法PPT课件

第8章 结构化方法
8.3.2画数据流图
为了表达较为复杂问题的数据处理过程, 用一张数据流图 是不够的。 要按照问题的层次结构进行逐步分解, 并以一套 分层的数据流图反映这种结构关系。
1.
画系统的输入输出即先画顶层数据流图。顶层流图只包含 一个加工,用以标识被开发的系统,然后考虑该系统有哪些输 入数据,这些输入数据从哪里来;有哪些输出数据,输出到哪 里去。这样就定义了系统的输入、输出数据流。顶层图的作用 在于表明被开发系统的范围以及它和周围环境的数据交换关系, 顶层图只有一张。图8.3为飞机机票预订系统的顶层图。
图8.2是一个飞机机票预订系统的数据流图,其功能为旅行 社把预订机票的旅客信息(姓名、年龄、单位、身份证号码、 旅行时间及目的地等)输入机票预订系统。系统为旅客安排航 班,打印出取票通知单(付有应交的账款)。
旅客在飞机起飞的前一天凭取票通知等交款取票, 系统 检验无误,输出机票给旅客。
第8章 结构化方法
第8章 结构化方法
订 票 单 旅 行 社
机 票 飞 机 机 票 预 订 系 统
取 票 通 知 单
取 票 单
旅 客
图 8.3 飞机机票预订系统顶层图
第8章 结构化方法
2.
画系统内部即画下层数据流图。一般将层号从0开始编号, 采用自顶向下,由外向内的原则。画0层数据流图时,一般根 据当前系统工作分组情况,并按新系统应有的外部功能,分解 顶层流图的系统为若干子系统,决定每个子系统间的数据接口 和活动关系。如机票预订系统按功能可分成两部分,一部分为 旅行社预订机票,另一部分为旅客取票,两部分通过机票文件 的数据存储联系起来,0层数据流图如图8.4。画更下层数据流 图时, 则分解上层图中的加工,一般沿着输入流的方向,凡数 据流的组成或值发生变化的地方则设置一个加工,这样一直进 行到输出数据流(也可从输出流到输入流方向画)。
结构化详细设计

【六年级】精彩的秋游天气渐渐转凉,金黄的落叶纷纷飘落,这是一个适合秋游的季节。
我们班决定去郊外旅行,感受大自然的美丽,享受秋天的清新。
早晨,我们准时在学校门口集合。
同学们都精神饱满,兴致勃勃地等待着出发。
老师带着我们走进了一辆大巴车,车里热闹非凡,一片欢声笑语。
汽车行驶在一条弯弯曲曲的山路上,两侧是一片片苍翠的林木,树叶在秋风中翩翩起舞,给人一种宁静与宜人的感觉。
不一会儿,大巴车终于停了下来。
我们下车后,来到了一个宽阔的空地上。
周围是高耸入云的山峰,山峰上的树木已被秋风吹得只余几片叶子。
山上有跑步道,有篮球场,还有一个小湖。
尤其是湖里的水波粼粼,美得让人难以言表。
大家迫不及待地开始了各自喜欢的活动。
有的同学选择了打篮球,他们组成了两队,你追我赶,在球场上团团转。
有的同学选择了钓鱼,他们找来鲜艳的鱼饵,在湖边竖起了钓竿,眼巴巴地盼望着鱼儿上钩。
还有的同学选择了跑步,他们在山间悠然奔跑,风吹过他们的脸庞,使他们的脸上洋溢着灿烂的笑容。
我则想来一次亲近大自然的旅行,于是我选择了欣赏美丽的自然景观。
我沿着蜿蜒的小路向前走去,小路两旁的花草树木丰茂,仔细一看,有红色的苹果、橙色的柑橘、绿油油的蔬菜等等。
我还看见了一只可爱的小松鼠,它灵活地跑上树枝,向我张望了一会儿,然后迅速地消失在了树林中。
时间过得飞快,转眼间已是中午。
我们在山上找了一个宽敞的区域,摆开了野餐桌椅,开始享受美食。
同学们吃得津津有味,笑声不断。
午餐后,我们开始了下午的活动。
老师组织了一个寻宝游戏,每个小组都拿到了一张宝藏地图,我们要根据地图上的线索找到宝藏的所在地。
我们跑遍了整个山林,发现了隐藏在各处的线索,大家卯足了劲,寻宝的热情高涨。
最终,我们的小组终于找到了宝藏,宝藏里有很多好吃的零食和小礼物。
我们欢呼雀跃,激动不已。
临近傍晚时分,我们赶回大巴车上,开始了回家的旅程。
车里充满了欢声笑语,大家在车上分享着这个美好的秋游经历。
渐渐地天色暗了下来,我们回到了学校。
第8章 数据库系统的概要设计

2.数据库概念结构设计的方法 概念模型是数据模型的前身,它比数据模型更独立于机器、更 抽象,也更加稳定。概念设计的方法有以下4种: (1)自顶向下的设计方法。 该方法首先定义全局概念结构的框架,然后逐步细化为完整的全 局概念结构。 (2)自底向上的设计方法。 即首先定义各局部应用的概念结构,然后将它们集成起来,得到 全局概念结构的设计方法。 (3)逐步扩张的设计方法。 此方法首先定义最重要的核心概念结构,然后向外扩充,生成其 他概念结构,直至完成总体概念结构。 (4)自顶向下与自底向上相结合的方法。 最常采用的策略是自底向上的方法,即自顶向下地进行需求分析, 然后再自底向上地设计概念结构,其方法如图8-1所示。其中,概 念模式对应于概念模型。
8.1.2 数据库系统的概要设计
对于基于结构化的数据库系统开发方法而言,数据库系统在完成 需求分析之后应进入数据库系统的概要设计阶段,此阶段不仅需要 进行数据库概念结构设计(也可简称数据库概念设计)工作,即数 据库结构特性设计;而且还需要确定数据库系统的软件系统结构, 进行模块划分,确定每个模块的功能、接口以及模块间的调用关系, 即进行数据库行为特性的设计过程。 数据库概念结构设计是将系统需求分析得到的用户需求抽象为 信息结构过程。只有将系统应用需求抽象为信息世界的结构,也就 是概念结构后,才能转化为机器世界中的数据模型,并用DBMS实现 这些需求。
成 批 成 绩 单 录 入
打 印 班 级 成 绩
打 印 成 绩 统 计 表
图8-19 成绩管理系统层次图
8.4.2
IPO图
IPO图(input process output图)输入—处理—输出图是在层 次结构图的基础上推出的一种描述系统结构和模块内部处理功能 的工具。在总体设计、详细设计、设计、评审、测试和维护的不 同阶段,都可以使用IPO图对设计进行描述。如下图所示的IPO图 :
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重复结构
seq Block1 Block2 Block3 A end
A iter until
cond Block1 A end
A iter while
A end
cond Block1 A end
统计单词数目
统计空格
seq
打开文件 读入字符串 Totalsum
如果申请者的年龄在21岁以下,要额外收费; 如果申请者是21岁以上并是26岁以上的女性,适用于A类 保险; 如果申请者是26岁以下的已婚男性,或者26岁以上的男性, 适用于B类保险; 如果申请者是21岁以下的女性或26岁以下的单身男性适用 于C类保险; 除此之外的其他申请者都适用于A类保险。
交互界面设计指南
交互界面的设计指南 信息显示的设计指南 数据输入的设计指南
CAD系统界面设计
圆弧绘制的基本参数包括圆心(Center)、半 径(Radiu)、圆心角(Angle)、弦长( chord of length)、切线方向(direction)、起 点(start)和终点(end)。根据参数的不同 和次序,绘制圆弧可以有10种方法
可视目录表给出程序的层次关系
体系框图:又称层次图(H图),是可视目录表的主体,用 它表明各个功能的隶属关系 图例:图形符号说明 描述说明:每一框的补充说明
IPO图则为程序各部分提供具体的工作细节
盘存/销售系统工作流程图
层次图
说明
IPO图
详细的IPO图
判定表
例如:某数据流图中有一个“确定保险类别”的加工, 指的是申请汽车驾驶保险时,要根据申请者的情况确 定不同的保险类别。 加工逻辑为:
通过界面和系统交互的最终用户分析 最终用户为完成工作要做的任务分析 确定界面的类型 任务处理的环境
人机交互界面分析过程
交互界面设计步骤
建立任务的目标和意图; 为每个目标和意图制定特定的动作序列; 按照在界面上执行的方式对动作序列进行规约; 指明系统状态,即执行动作时的界面表现; 定义控制机制,即用户可用的改变系统状态的 设备和动作; 指明控制机制如何影响系统状态; 指明用户如何通过界面上的信息解释系统状态;
=0 程序体 iter until文件结束
……
程序体end 印总数seq
印出空格总数
印总数end
关闭文件 停止
统计空格end
8.4人机界面设计
人机界面设计的任务,就是根据对用户在使用 交互式系统时的所作所为,或者是用户想象中 的所作所为,或者是他人想象中用户的所作所 为的抽象,创建或导出一致的表示界面。 设计人机界面要充分考虑到人的因素,如用户 的特点、用户怎样学会与系统交互工作、用户 怎样理解系统产生的输出信息以及用户对系统 有什么期望等。 考虑界面的风格,可用的软、硬件技术及应用 本身产生的影响。
缺少判定采取的动作 有冗余的列
制作判定表
1
年龄 性别 婚姻 A类保险 B类保险 C F S
2
C F E
3
C M S
4
C M E √
5
Y F S √
6
Y F E √
7
Y M S
8
Y M E √
9
L F S √
10
L F E √
11
L M S √
12
L M E √
C类保险
额外收费
√
√
√
√
√
√ √
交互界面设计原则
美学规则
置用户于控制之下 减少用户的记忆负担 保持界面一致
人机界面模型
软件工程师创建的用户模型 软件工程师创建的设计模型 最终用户对未来系统的假想 系统的实现者创建的实现模型
人机交互界面分析
人机界面的设计工作应与软件系统的需求分析 工作同步进行。它主要包括:
程序流程图
程序流程图又称为程序框图,Goldstine于1946年首先 采用。 它的主要优点是对控制流程的描绘很直观,便于初学 者掌握。 程序流程图的主要缺点:
程序流程图本质上不是逐步求精的好工具,它诱使程序员 过早地考虑程序的控制流程,而不去考虑程序的全局结构; 程序流程图中用箭头代表控制流,因此程序员不受任何约 束,可以完全不顾结构程序设计的精神,随意转移控制; 程序流程图不易表示数据结构。
3点绘制圆弧 起点-圆心-终点 起点-圆心-圆心角 起点-圆心-弦长 起点-终点-圆心角 起点-终点-切线方向 起点-终点-半径 圆心-起点-终点 圆心-起点-圆心角 圆心-起点-弦长
程序流程图符号
(a)预处理 (b)选择
(c)多分支
(d)循环上界 (e)循环下界
(
f)开始/结束 (g)准备 (h)注释 (i)虚线 (j)省略 (k)并行方式 (l)控制流
盒图
盒图是由Nassi和Shneiderman提出的,所以又称为N-S图。 每个处理步骤都用一个盒子来表示,这些处理步骤可以是语句或语 句序列,在需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般 没有限制。 盒图具有下述特点:
第8章 结构化详细设计
结构化详细设计的结构和特点 结构化详细设计工具 人机交互界面设计 数据库设计 编码实现
8.1详细设计
详细设计就是在概要设计的基础上决定如何具 体实现各模块的内部细节,直到对系统中的每 个模块给出足够详细的过程描述。 在编码实现阶段就可以完全按照详细设计的细 节过程来映射到代码,最终实现整个系统。 一般使用结构化程序设计工具来描述
√
合并后的判定表
1 年龄 性别 婚姻 A类保险 B类保险 C类保险 √ C F --
3 C M S
4 C M E
5 Y F -√
7 Y M S
8 Y M E
9 L F -√
11 L M --
√ √ √ √ √
√
√
额外保险 √
判定树
判定树是判定表的变形,一般情况下它比判定表更 直观,且易于理解和使用
PAD图举例
P1 P2 P3 C P4 P5 P2
P6 C1 until C2 P8 until C3 P1 0 b.使用 def 符号细化处理框 P2 后的 PAD 图 P9 P7
def
a.初始的 PAD 图
HIPO图
HIPO(Hiberarchy Plus Input-Process-Output,层次 加输入-处理-输出)图是根据IBM公司研制的软件 设计与文件编制技术发展而来的。 HIPO图采用功能框图和PDL来描述程序逻辑,它 由两部分组成:
PAD图符号
P1 C P2 a.顺序
P1 X=
L1 L2
P1 P2
P2 b.if-then-else 选择
Ln
Pn
c.case 多分支选择 While c P until c P
d.do-while 型循环
e.repeat-until 型循环
PAD图的主要优点
使用表示结构化控制结构的PAD符号设计出来的程序必然是 结构化程序。 PAD图所描绘的程序结构十分清晰。图中最左边的竖线是程 序的主线,即第一层结构。随着程序层次的增加,PAD图逐 渐向右延伸,每增加一个层次,图形向右扩展一条竖线。 PAD图中竖线的总条数就是程序的层次数。 用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维 树形结构的图形,程序从图中最左竖线上端的结点开始执 行,自上而下,从左向右顺序执行,遍历所有结点。 容易将PAD图转换成高级语言源程序,这种转换可用软件工 具自动完成,从而可省去人工编码的工作,有利于提高软 件可靠性和软件生产率。 既可用于表示程序逻辑,又可用于描绘数据结构。
结构化详细设计的结构
三种基本结构
顺序结构 选择结构 循环结构
A B B
exp A A T exp F 或
F exp T A
a.顺序
b.if-then-else 选择
c.do-while 循环
结构化程序设计优点
自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律, 因此可以显著提高软件开发工程的成功率和生产率。 用先全局后局部、先整体后细节、先抽象后具体的逐步求精 过程开发出的程序有清晰的层次结构,因此容易阅读和理解。 仅使用单入口单出口的控制结构,使得程序的静态结构和它 的动态执行情况比较一致。因此,程序容易阅读和理解,开 发时也比较容易保证程序的正确性,即使出现错误也比较容 易诊断和改正。 控制结构有确定的逻辑模式,编写程序代码只限于使用很少 几种直截了当的方式,因此源程序清晰流畅,易读易懂而且 容易测试。 程序清晰和模块化使得在修改和重新设计一个软件时可以重 用的代码量最大。 程序的逻辑结构清晰,有利于程序正确性证明。
外层用来描述控制结构,采用顺序、选择、重复
三种基本结构。 内层一般采用祈使语句的自然语言短语,使用数 据字典中的名词和有限的自定义词,其动词含义 要具体,尽量不用形容词和副词来修饰。
PDL三种结构
顺序结构
A
选择结构 A select cond1 Block1 A or cond2 Block2 A or cond3 Block3
未婚—C类保险且额外收费
年龄≤21
男性 确保保险类别
已婚—B类保险且额外收费 未婚—C类保险 已婚—D类保险 B类保险 C类保险收额外收费 A类保险