第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课件

结构化详细设计ppt课件
第8章 结构化详细设计
结构化详细设计的结构和特点 结构化详细设计工具 人机交互界面设计 数据库设计 编码实现
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章  面向对象分析-软件工程基础(第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课件

结构化方法PPT课件

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

结构化详细设计

结构化详细设计

【六年级】精彩的秋游天气渐渐转凉,金黄的落叶纷纷飘落,这是一个适合秋游的季节。

我们班决定去郊外旅行,感受大自然的美丽,享受秋天的清新。

早晨,我们准时在学校门口集合。

同学们都精神饱满,兴致勃勃地等待着出发。

老师带着我们走进了一辆大巴车,车里热闹非凡,一片欢声笑语。

汽车行驶在一条弯弯曲曲的山路上,两侧是一片片苍翠的林木,树叶在秋风中翩翩起舞,给人一种宁静与宜人的感觉。

不一会儿,大巴车终于停了下来。

我们下车后,来到了一个宽阔的空地上。

周围是高耸入云的山峰,山峰上的树木已被秋风吹得只余几片叶子。

山上有跑步道,有篮球场,还有一个小湖。

尤其是湖里的水波粼粼,美得让人难以言表。

大家迫不及待地开始了各自喜欢的活动。

有的同学选择了打篮球,他们组成了两队,你追我赶,在球场上团团转。

有的同学选择了钓鱼,他们找来鲜艳的鱼饵,在湖边竖起了钓竿,眼巴巴地盼望着鱼儿上钩。

还有的同学选择了跑步,他们在山间悠然奔跑,风吹过他们的脸庞,使他们的脸上洋溢着灿烂的笑容。

我则想来一次亲近大自然的旅行,于是我选择了欣赏美丽的自然景观。

我沿着蜿蜒的小路向前走去,小路两旁的花草树木丰茂,仔细一看,有红色的苹果、橙色的柑橘、绿油油的蔬菜等等。

我还看见了一只可爱的小松鼠,它灵活地跑上树枝,向我张望了一会儿,然后迅速地消失在了树林中。

时间过得飞快,转眼间已是中午。

我们在山上找了一个宽敞的区域,摆开了野餐桌椅,开始享受美食。

同学们吃得津津有味,笑声不断。

午餐后,我们开始了下午的活动。

老师组织了一个寻宝游戏,每个小组都拿到了一张宝藏地图,我们要根据地图上的线索找到宝藏的所在地。

我们跑遍了整个山林,发现了隐藏在各处的线索,大家卯足了劲,寻宝的热情高涨。

最终,我们的小组终于找到了宝藏,宝藏里有很多好吃的零食和小礼物。

我们欢呼雀跃,激动不已。

临近傍晚时分,我们赶回大巴车上,开始了回家的旅程。

车里充满了欢声笑语,大家在车上分享着这个美好的秋游经历。

渐渐地天色暗了下来,我们回到了学校。

第8章 数据库系统的概要设计

第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图 :

软件测试第3次作业答案(第8-11章)

软件测试第3次作业答案(第8-11章)

软件测试作业3(第8~11章)答案一、选择题1.结构化语言是介于自然语言和形式语言之间的一种(D)。

A.半形式语言B.计算机语言 C.低级语言D.高级语言2.程序设计语言的技术特性不应包括(C)。

A、数据结构的描述性B、抽象类型的描述性C、数据库的易操作性D、软件的可移植性3.程序的三种基本控制结构是(B)。

A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移4.结构化程序设计主要强调的是(D)。

A.程序的规模B.程序的效率C.程序设计语言的先进性 D.程序易读性5.下列关于功能性注释不正确的说法是(B)。

A.功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态B.注释用来说明程序段,需要在每一行都要加注释C.可使用空行或缩进,以便很容易区分注释和程序D.修改程序也应修改注释6.下列关于效率的说法不正确的是(D)。

A.效率是一个性能要求,其目标应该在需求分析时给出B.提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法C.效率主要指处理机时间和存储器容量两个方面D.程序的效率与程序的简单性无关7.结构化维护与非结构化维护的主要区别在于(B )。

A.软件是否结构化B.软件配置是否完整C.程序的完整性D.文档的完整性8.关于JAVA语言下列说法不正确的是(B)。

A.跨平台的B.动态指针C.解释型的D.面向对象的9.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。

A程序内部逻辑 B.程序复杂结构C.使用说明书D.程序的功能10.确认测试主要涉及的文档是(A)。

A、需求规格说明书B、概要设计说明书C、详细设计说明书D、源程序11.测试的关键问题是(D)。

A.如何组织对软件的评审B.如何验证程序的正确性C.如何采用综合策略D.如何选择测试用例12.黑盒测试在设计测试用例时,主要研究(A)。

A.需求规格说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明13.下面哪些测试属于黑盒测试(B)。

8 结构化详细设计

8  结构化详细设计

其它求精的规则,与输入部分类同。例如,可以将“PUT 加 / 减速”模块与其下属的两个模块合并为一个模块,将 “ PUT 超速量”模块与其下属的两个模块合并为一个模块 。
通过以上求精之后,可得如下的模块结构图
输出模块
生成mpg 显示 生成mph 显示 生成里程 显示 生成加/减速显示
生成蜂鸣
显示
其它求精的规则,与输入部分类同。例如,可以将“PUT 加 / 减速”模块与其下属的两个模块合并为一个模块,将 “ PUT 超速量”模块与其下属的两个模块合并为一个模块 。
通过以上求精之后,可得如下的模块结构图
输出模块
生成mpg 显示 生成mph 显示 生成里程 显示 生成加/减速显示
生成蜂鸣
显示
第二种表达-框图
s1
s2
第三种表达-PAD图
S1 S2
X5 X<5
. . .
s1
s2
s
S1 S2
S
S3
注:支持逐步求精设计
第四种表达-N-S图
S1 T
X>5
顺序:
选择 :
条件 T F
S1 S2
循环:
循环条件 循环体
S3 S2 N:=1..10 S4 S5 S6
F
T
X>10&Y>3
F
S7
S8
S9
问题空间 解空间
自 顶 向 下
4)该方法的组成
紧紧围绕“自顶向下” “过程抽象”“数据抽象”和“ 模块化”
等基本原理/原则 给出了 完备的符号 可操作的过程 易理解的表示工具
并提供了
控制信息组织复杂性的机制,例如
逐层分解,数据打包等

软件工程结构化设计的基本步骤

软件工程结构化设计的基本步骤

软件工程结构化设计的基本步骤软件工程是一个综合性学科,它涉及到软件的开发、测试、维护等多个方面。

其中,结构化设计是软件工程中非常重要的一个环节,它直接影响到软件的质量和可维护性。

那么,软件工程结构化设计的基本步骤是什么呢?在本文中,我们将深入探讨软件工程结构化设计的基本步骤,帮助你更好地理解这一重要主题。

一、需求分析软件工程结构化设计的第一步是需求分析。

在这个阶段,你需要与用户进行充分的沟通,了解用户的需求和期望。

通过需求分析,你可以明确软件的功能性需求和非功能性需求,从而为后续的设计工作奠定基础。

在需求分析阶段,我建议你采用面向对象的方法来描述用户需求,并将其转化为可执行的任务。

这样做可以帮助你更好地理解用户的需求,并为后续的设计工作提供清晰的指导。

二、概要设计概要设计阶段是软件工程结构化设计的第二步。

在这个阶段,你需要将需求分析阶段得到的需求转化为软件的整体架构。

这包括确定系统的模块划分、模块之间的接口设计等工作。

概要设计是软件工程中非常关键的一个环节,它直接影响到后续的详细设计和编码工作。

在概要设计阶段,我建议你采用结构化的方法来设计软件的整体架构。

这样做可以帮助你清晰地描述软件的功能和结构,并为后续的详细设计提供有力的支持。

三、详细设计详细设计是软件工程结构化设计的第三步。

在这个阶段,你需要进一步细化概要设计阶段得到的软件架构,包括设计每个模块的具体功能和接口。

详细设计阶段是软件工程中非常具体的一个环节,它直接关系到软件的实现和性能。

在详细设计阶段,我建议你采用模块化的方法来设计每个模块的功能和接口。

这样做可以帮助你更好地组织软件的设计思路,并为后续的编码工作提供清晰的指导。

四、编码和测试编码和测试是软件工程结构化设计的最后两步。

在编码阶段,你需要根据详细设计阶段得到的设计图纸来实现软件的各个模块。

你还需要编写相应的测试用例,以确保软件的功能和性能达到预期的要求。

在测试阶段,你需要对软件进行全面的测试,包括单元测试、集成测试和系统测试等多个方面。

结构化设计之详细设计

结构化设计之详细设计

问题分析图(PAD)
问题分析图是一种改进的图形描述方式,可以用来取代流程图。
PAD支持SP方法,它仅具有顺 序、选择、循环三类基本成分
例子: 在数组K中找出最大和次大的两个 数
问题分析图(PAD)
PAD的优点: • 逻辑结构清晰,图形标准化; • 强制设计人员使用SP方法,因而提高了产品的质量; • 通过机械地“走树”可以从PAD直接产生程序,该过程便于用计算机自 动实现。
Jackson 方法三种基本结构
在一般数据处理系统中,数据结构有“顺序”、“重复”和“选择”等 三种类型,以数据结构为基础相应地建立的程序结构,也就有“顺序”、 “重复”(循环)和“选择”(条件)等三种类型。
顺序结构 : 顺序结构的数据由一个或多个数据元素组 成,每个元素按确定次序出现一次
选择结构: 选择结构的数据包含两个或多个数据元素, 每次使用这个数据时按一定条件从这些数 据元素中选择一个 重复结构: 重复结构的数据,根据使用时的条件由一 个数据元素出现零次或多次组成
流程图(FC)
一个模块的内部执行过程可用图形来描述,由于图形描述方式比较直 观、形象化,所以易于理解,又易于进行复查。图形描述方式中流程图是 历史最悠久,最广为流行的一种。
流程图包含下面三种基本成分: • 加工步骤——用方框表示 • 逻辑条件——用菱形表示 • 控制流———用箭头表示 设计人员用SP方法的三类标准结构反复嵌套来绘制流程图,这样画出的图 称为结构化流程图。
Jackson 方法概述
SA、SD和 SP方法前后衔接,用于需求分析和设计阶段,是面向数据流 的 。而Jackson 方法是一种面向数据结构的方法,这个方法适用于数据处 理类问题,特别是企事业管理的一类软件系统。
• Jackson方法的目标:获得简单清晰的设计方案,因为这样的方案易于理 解、易于修改。 • Jackson方法的设计原则:使程序结构同数据结构相对应。

软件工程结构化设计

软件工程结构化设计
务控制模块、接收模块和动作发送模块。 (3)分解细化接收分支和发送分支,完成初始SC。
软件工程结构化设计
初始的SC
主模块
由变换分
析产生 输入模块 主加工模块 输入模块
事务控制模块
由事务分 接受模块 动作发送模块 析产生
动作1模软件块工程结构化设动计 作2模块 动作3模32块
接收
总控
路径
调度
A路径 B路径 C路径
理想模块的特点
每个理想模块只解决一个问题; 每个理想模块的功能都应该明确,易理解; 理想模块之间的连接关系简单,具有独立性; 由理想模块构成的系统,易理解、编程、测试、修改
和维护。
软件工程结构化设计
假设C(x)为描述问题x的复杂度的函数,E(x) 为解决问题x的 代价函数。根据经验,对于两个问题p1和p2,如果 C(p1) > C(p2),
软件工程结构化设计
总体设计的启发规则
将软件的体系结构按自顶向下方式,对各个层次的过程细 节和数据细节逐层细化,直到用程序设计语言的语句能够 实现为止,从而最后确立整个的体系结构。
软件结构包括两部分。程序的模块结构和数据的结构 软件的体系结构通过一个划分过程来完成。该划分过程从
需求分析确立的目标系统的模型出发,对整个问题进行分 割,使其每个部分用一个或几个软件成份加以解决,整个 问题就解决了
模块化与软件成本
软件总成本


最小成本区域
接口成本

M工作Fra bibliotek量成本/模块
软件工程结构化设计
模块数量 44
模块独立性
模块的独立性
模块独立性, 是指软件系统中每个模块只 涉及软件要求的具体的子功能, 而和软件 系统中其它的模块的接口是简单的

8结构化详细设计

8结构化详细设计

4. 先测试后优化 为在效率与健壮性之间做出合理的折衷,应该在为 提高效率而进行优化之前,先测试程序的性能,人 们常常惊奇地发现,事实上大部分程序代码所消耗 的运行时间并不多。
5.3.2 结构化程序设计
详细设计层 --主要引入了关于三种动作控制结构的术语/符号 三种控制结构:顺序,选择和循环 这三种结构在表达系统行为方面是完备的 如果只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE 型循环这3种基本控制结构,则称为经典的结构程序设计; 如果除了上述3种基本控制结构之外,还允许使用DOCASE型多分支结构和DO-UNTIL型循环结构,则称为扩展的 结构程序设计; 如果再加上允许使用LEAVE(或BREAK)结构,则称为修 正的结构程序设计。
PDL应该具有下述特点: (1) 关键字的固定语法,它提供了结构化控制结构、 数据说明和模块化的特点。为了使结构清晰和可读 性好,通常在所有可能嵌套使用的控制结构的头和 尾都有关键字,例如,if…fi(或endif)等等。 (2) 自然语言的自由语法,它描述处理特点。 (3) 数据说明的手段。应该既包括简单的数据结构 (例如纯量和数组),又包括复杂的数据结构(例如, 链表或层次的数据结构)。 (4) 模块定义和调用的技术,应该提供各种接口描 述模式。
PAD图
PAD (problem analysis diagram)图的主要优点如下: (1) 使用表示结构化控制结构的PAD符号所设计出 来的程序必然是结构化程序。 (2) PAD图所描绘的程序结构十分清晰。 (3) 用PAD图表现程序逻辑,易读、易懂、易记。 (4) 容易将PAD图转换成高级语言源程序。 (5) 即可用于表示程序逻辑,也可用于描绘数据结 构。 (6) PAD图的符号支持自顶向下、逐步求精方法的 使用。

软件工程复习题

软件工程复习题

软件工程期末考试复习题时间:2019年7月5日考1.8 练习题—、填空题1.软件工程是一门综合性的交叉学科,它涉及计算机学科、工程学科、管理学科和数学学科。

2.软件工程研究的主要内容是方法、过程和工具三个货面。

3.由于软件生产的复杂性和高成本,使大型软件生产出现了很多问题,即出现软件危机,软件工程正是为了克服它而提出的一种概念及相关方法和技术。

4.SWEBOK V3中,软件工程知识体系分为软件工程教育需求和软件工程实践两大类。

5.增量式模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。

6. 喷泉模型比较适用于面向对象的开发方法。

7.软件工程是用工程科学的知识和技术原理来定义、开发和维护软件的一门学科。

二、判断题1.SWEBOK V3分两大类,共有15个知识域。

(✓)2.软件工程的提出起源于软件危机,其目的是最终解决软件的生产工程化。

(✓)3.软件工程学一般包含软件开发技术和软件工程管理两方面的内容,软件开发方法学和软件工程环境属于软件开发技术的内容,软件工程经济学属于软件工程管理。

(✓)4. 软件开发中的最大的问题不是管理问题,而是技术问题。

(×)5. XP (eXtreme Programming,极限编程)是由Kent Beck提出的一套针对业务需求和软件开发实践的规则,包括13个核心实践。

(✓)三、选择题1.下列所述不是敏捷生存期模型的是(C)。

A. ScrumB. XPC. V 模型D.OPEN UP2.软件工程的出现主要是由于(C)。

A.程序设计方法学的影响B.其他工程学科的影响C.软件危机的出现D.计算机的发展3. 以下(C)不是软件危机的表现形式。

A.开发的软件不满足用户的需要B.开发的软件可维护性差C.开发的软件价格便宜D.开发的软件可靠性差4.以下不是SWEBOK V3的软件工程实践中的知识域的是(B)。

A.软件需求B.工程基础C.软件构造D.软件设计5.下列所述不是软件组成的是(C)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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类保险
相关文档
最新文档