结构化设计之详细设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计语言(PDL)
PDL 同结构化英语的想法是一致的,如果是在需求分析阶段描述用户需 求,可以描述得比较抽象; 如果是在详细设计阶段描述模块的内部算法,则 应比较详细具体; PDL的优点: • 同自然语言(英语)很接近,易于理解。 • 可以作为注释嵌在源程序中成为程序的内部文档,有效地提高程序的自 我描述性。 • 由于是语言形式,所以易于被计算机处理。 • 由于同程序是同结构的,相对地说,从中自动产生程序亦较容易。 PDL的缺点: • 不如图形描述直观,但是如果有从PDL导出相应流程图或NS图的自动工 具,这一缺点就能得以弥补。 • 支持SP方法的各种描述手段(结构化流程图、NS图、PAD图、PDL等)各 有优缺点,总的说来,PDL是比较令人满意的,所以在英语国家中最为 流行。
程序设计语言(PDபைடு நூலகம்)
详细设计的结果也可以用语言来描述,程序设计语言就是一个典型的代 表,它是一种非形式的比较灵活的语言,它用于描述模块内部的具体算法, 以便在开发人员之间比较精确地进行交流。 PDL的特点: • 语法是开放式的,其外层语法是确定的,而内层语法则故意不确定 • 例如,在PDL 描述 if X is not negative then return(square root of X as a real number); else return(square root of -X as an imaginary number); 中,外层语法 IF—THEN —ELSE是确定的,内层操作“square root of X”是不确定的。 • PDL的总体结构同一般程序相同,它也包括注释部分、数据说明部分和 过程部分;其内层则可以是任意的英语语句。PDL仅仅是对算法的一种 描述,它是不可执行的
Jackson 方法用图形描述数据结构和程序结构,这种图形称为Jackson图, 数据结构图中的方框表示数据,程序结构图中的方框表示模块(过程或函数 等),结构图中的 * 表示重复,° 表示选择。
Jackson 方法的基本步骤: • 建立数据结构。 • 以数据结构为基础,对应地建立程序结构。 • 列出程序中要用到的各种基本操作,再将这些操作分配到程序结构中适当 的模块。 这三步分别对应结构化方法的需求分析、概要设计和详细设计。
注意: ·即使采用Jackson方法,块间联系和块内联系仍然是评价程序结构质量的 基本标准。 ·在软件生命期中,数据结构往往是会发生变化的,一旦数据结构改变了, 以数据结构为基础建立的整个程序结构也就都要改变了。
面向对象设计原则
1. 单一职责原则(Single Responsibility Principle) 每一个类应该专注于做一件事情。 2. 里氏替换原则(Liskov Substitution Principle) 超类存在的地方,子类是可以替换的。 3. 依赖倒置原则(Dependence Inversion Principle) 实现尽量依赖抽象,不依赖具体实现。 4. 接口隔离原则(Interface Segregation Principle) 应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。 5. 迪米特法则(Law Of Demeter) 又叫最少知识原则,一个软件实体应当尽可能少的与其他实体发生相互作用。 6. 开闭原则(Open Close Principle) 面向扩展开放,面向修改关闭。
总结
总结、谢谢~
软件系统设计
软件系统设计
——详细设计
概述
概要设计: 将软件系统分解成许多个模 块,并决定每个模块的外部 特征,即功能(做什么)和 界面(输入和输出)
详细设计: 确定每个模块的内部特征, 即每个模块内部的执行过程 (怎样做) 详细设计时,每个模块是单 独考虑的 详细执行过程包括局部数据 组织、控制流、每一步的具 体加工要求及种种实现的细 节等 典型方法是结构化程序设计 (SP)另外还有Jackson 方 法
Jackson 方法三种基本结构
在一般数据处理系统中,数据结构有“顺序”、“重复”和“选择”等 三种类型,以数据结构为基础相应地建立的程序结构,也就有“顺序”、 “重复”(循环)和“选择”(条件)等三种类型。
顺序结构 : 顺序结构的数据由一个或多个数据元素组 成,每个元素按确定次序出现一次
选择结构: 选择结构的数据包含两个或多个数据元素, 每次使用这个数据时按一定条件从这些数 据元素中选择一个 重复结构: 重复结构的数据,根据使用时的条件由一 个数据元素出现零次或多次组成
Jackson 方法举例
对一般数据处理系 统而言,问题的结 构可用它所处理的 数据结构来表示。 大多数系统处理的 是具有层次结构的 数据,如文件由记 录组成,记录又由 数据项组成(图 4.69(a),图中* 号表 示重复)
Jackson方法以此为基础相应地建立模块的层次结构 (图4.69(b))
Jackson 方法定义
优点:结构清晰、易于理解、易于修改。 缺点:只能描述执行过程而不能描述有关的数据
盒图(NS图)
NS图是用于取代传统流程图的一种描述方式
以 SP方法为基础, NS图仅含有5种基本成 分,它们分别表示SP方 法的几种标准控制结构
盒图(NS图)
在NS图中,每个“处理步骤”是用一个盒子表示的,所谓“处理步骤” 可以是语句或语句序列。
Jackson 方法设计过程
Jackson 方法的设计过程同结构化方法亦有类似之处
• 第一步是理解并确定用户提出的问题, 即把要处理的数据结构确定下来, 这相当于第三章讨论的需求分析阶段; • 第二步完成模块分解,这相当于概要设计阶段; 第三步确定每个模块的 主要操作,这相当于详细设计阶段 • 第三步是很关键的,在这一步可以检查前两步是否做得合理。如果在分 配操作时遇到了困难,例如一个操作无法分配,或者必须对结构作许多 修改才成,这往往是前两步做得不合适的迹象,此时必须再认真检查程 序的结构,并找出困难的原因
SP方法的要点归纳如下: • 由顶向下逐步加细 • 三种基本结构 • 开发支持库 (DSL) • 主程序员组 (CPT)
开发支持库是指在整个开发过程中,将项目 • 第一步:以时间顺序考虑我们的模块内部 的进展状况和程序的有关资料等均记录在文 执行过程 主程序员组是程序员的组织方式,它由主程 档库中,文档库由专职的资料员来维持 • 第二步:确定是否有选择的情况 序员、后备程序员和资料员三人构成核心。 • 第三步:确定是否有循环的情况 再加上若干初级程序员和一些专家组成,在 开发过程中每人都有确定的任务 • 第四步:若是任然有模糊的部分,反复使 用上述三步去分解模糊部分
盒图(NS图)
在NS图中,每个“处理步骤”是用一个盒子表示的,所谓“处理步骤” 可以是语句或语句序列。
盒图(NS图)
用NS图作为详细设计的描述手段时,常需用两个盒子:数据盒和模块 盒(图 4.63),前者描述有关的数据,包括全程数据、局部数据和模块界面 上的参数等,后者描述执行过程。 NS图的优点: • 首先,它强制设计人员按SP方法进行思考 并描述他的设计方案,因为除了表示几种 标准结构的符号之处,它不再提供其他描 述手段,这就有效地保证了设计的质量, 从而也保证了程序的质量; • 第二,NS图形象直观,具有良好的可见度。 例如循环的范围、条件语句的范围都是一 目了然的,所以容易理解设计意图,为编 程、复查、选择测试用例、维护都带来了 方便; • 第三,NS图简单、易学易用,可用于软件 教育和其他方面 缺点:修改起来很麻烦
结构化程序设计(SP)方法
结构化程序设计方法用于 详细设计和编程阶段指导人们 用良好的思想方法开发出易于 理解又正确的程序。 SP方法建立在结构定理之上。
结构定理指出:任何程序逻辑都可用顺序、选择和循环等三种基本结构来表示
结构化程序设计(SP)方法
SP方法使用的描述方式包括结构化流程图、盒图、问题分析图和程 序设计语言PDL等。
Jackson 方法概述
SA、SD和 SP方法前后衔接,用于需求分析和设计阶段,是面向数据流 的 。而Jackson 方法是一种面向数据结构的方法,这个方法适用于数据处 理类问题,特别是企事业管理的一类软件系统。
• Jackson方法的目标:获得简单清晰的设计方案,因为这样的方案易于理 解、易于修改。 • Jackson方法的设计原则:使程序结构同数据结构相对应。
程序设计语言(PDL)
PDL 同结构化英语的想法是一致的,如果是在需求分析阶段描述用户需 求,可以描述得比较抽象; 如果是在详细设计阶段描述模块的内部算法,则 应比较详细具体; PDL的优点: • 同自然语言(英语)很接近,易于理解。 • 可以作为注释嵌在源程序中成为程序的内部文档,有效地提高程序的自 我描述性。 • 由于是语言形式,所以易于被计算机处理。 • 由于同程序是同结构的,相对地说,从中自动产生程序亦较容易。 PDL的缺点: • 不如图形描述直观,但是如果有从PDL导出相应流程图或NS图的自动工 具,这一缺点就能得以弥补。 • 支持SP方法的各种描述手段(结构化流程图、NS图、PAD图、PDL等)各 有优缺点,总的说来,PDL是比较令人满意的,所以在英语国家中最为 流行。
流程图(FC)
一个模块的内部执行过程可用图形来描述,由于图形描述方式比较直 观、形象化,所以易于理解,又易于进行复查。图形描述方式中流程图是 历史最悠久,最广为流行的一种。
流程图包含下面三种基本成分: • 加工步骤——用方框表示 • 逻辑条件——用菱形表示 • 控制流———用箭头表示 设计人员用SP方法的三类标准结构反复嵌套来绘制流程图,这样画出的图 称为结构化流程图。
Jackson 方法的设计结果清晰地描述了程序由哪几个模块组成,并指出了每 个模块包含的主要操作,在此基础上,就可以直接编程了。
Jackson 方法小结
Jackson方法的优点: 简单,易学易用,对于一些规模不大的数据处理系统,使用Jackson方法是 相当成功的,在了解了系统需处理的数据结构后,如果能找到输入和输出 数据结构之间的对应性,其程序结构是很容易导出的。 Jackson方法的缺点: 较大的系统往往涉及许多输入数据和输出数据,其结构又不相对应,此时 使用Jackson方法将比较困难。鉴于这一原因,可将SD方法同Jackson方法 结合起来使用;在画出了系统的数据流图之后,先用SD方法建立程序的总 体结构,然后在局部范围内使用Jackson方法。
问题分析图(PAD)
问题分析图是一种改进的图形描述方式,可以用来取代流程图。
PAD支持SP方法,它仅具有顺 序、选择、循环三类基本成分
例子: 在数组K中找出最大和次大的两个 数
问题分析图(PAD)
PAD的优点: • 逻辑结构清晰,图形标准化; • 强制设计人员使用SP方法,因而提高了产品的质量; • 通过机械地“走树”可以从PAD直接产生程序,该过程便于用计算机自 动实现。