第四章 面向过程的软件设计方法PPT课件
合集下载
软件工程模型方法PPT课件
SA,SD 法结合起来,又称为结构化分析与设计技术,即 SDAT技术。
精选课件
34
Jackson方法
▪ Jackson方法是最典型的面向数据结构的设计方法,
顺时针为进展方向
风险分析 风险分析
风险分析
预估可选方案, 明确并解决风险
第二圈 产生一个 用于开发的原型
提交线 评审
第三圈 产生 软件产品的 初始版本
第四圈 产生 软件产品比较 完善的新版本
需求精化计划 风险分析
需求计划
和生存周 期计划
风险 分析
原型1
原型2
原型3 操作原型
建模 模拟 评价
需求评价
操作的概念 软件需求 产品
详细设计
验收测试计划
需求有效 性验证
设计 编码
组装测试计划 设计验证
与确认
客户评估
验收
规划下阶段工作
运行 精选课件维护
测试
单元
组装 测试
测试
实施工程
开发验证下一级产20品
螺旋模型
螺旋模型的每一个周期都包括计划(需求定义)、 风险分析、工程实现和评审4个阶段。
1)计划(需求定义)
首先开始利用需求分析技术理解应用领域,获 取初步用户需求,制定项目开发计划(即整个软件 生命周期计划)和需求分析计划。然后根据用户和 开发人员对上一周期工作成果评价和评审,修改、 完善需求,明确下一周期软件开发的目标、约束条 件,并据此制定新一轮的软件开发计划。
3) 利用一个或几个类似的正在运行的软件向用户展示 软件需求中的部分或全部功能。
建造原型应尽量采用相应的软件工具和环境,
并尽量采用软件重用技术,在运行效率方面可做出
让步,以便尽快提供。同时,原型应充分展示软件
精选课件
34
Jackson方法
▪ Jackson方法是最典型的面向数据结构的设计方法,
顺时针为进展方向
风险分析 风险分析
风险分析
预估可选方案, 明确并解决风险
第二圈 产生一个 用于开发的原型
提交线 评审
第三圈 产生 软件产品的 初始版本
第四圈 产生 软件产品比较 完善的新版本
需求精化计划 风险分析
需求计划
和生存周 期计划
风险 分析
原型1
原型2
原型3 操作原型
建模 模拟 评价
需求评价
操作的概念 软件需求 产品
详细设计
验收测试计划
需求有效 性验证
设计 编码
组装测试计划 设计验证
与确认
客户评估
验收
规划下阶段工作
运行 精选课件维护
测试
单元
组装 测试
测试
实施工程
开发验证下一级产20品
螺旋模型
螺旋模型的每一个周期都包括计划(需求定义)、 风险分析、工程实现和评审4个阶段。
1)计划(需求定义)
首先开始利用需求分析技术理解应用领域,获 取初步用户需求,制定项目开发计划(即整个软件 生命周期计划)和需求分析计划。然后根据用户和 开发人员对上一周期工作成果评价和评审,修改、 完善需求,明确下一周期软件开发的目标、约束条 件,并据此制定新一轮的软件开发计划。
3) 利用一个或几个类似的正在运行的软件向用户展示 软件需求中的部分或全部功能。
建造原型应尽量采用相应的软件工具和环境,
并尽量采用软件重用技术,在运行效率方面可做出
让步,以便尽快提供。同时,原型应充分展示软件
软件工程04面向过程的 软件设计方法PPT文档144页
•
29、在一切能够接受法律支配的人类 的状态 中,哪 里没有 法律, 那里就ห้องสมุดไป่ตู้没有自 由。— —洛克
•
30、风俗可以造就法律,也可以废除 法律。 ——塞·约翰逊
41、学问是异常珍贵的东西,从任何源泉吸 收都不可耻。——阿卜·日·法拉兹
软件工程04面向过程的 软件设计方法
•
26、我们像鹰一样,生来就是自由的 ,但是 为了生 存,我 们不得 不为自 己编织 一个笼 子,然 后把自 己关在 里面。 ——博 莱索
•
27、法律如果不讲道理,即使延续时 间再长 ,也还 是没有 制约力 的。— —爱·科 克
•
28、好法律是由坏风俗创造出来的。 ——马 克罗维 乌斯
42、只有在人群中间,才能认识自 己。——德国
43、重复别人所说的话,只需要教育; 而要挑战别人所说的话,则需要头脑。—— 玛丽·佩蒂博恩·普尔
44、卓越的人一大优点是:在不利与艰 难的遭遇里百折不饶。——贝多芬
45、自己的饭量自己知道。——苏联
软件体系结构设计方法ppt课件
2.1.3 模式驱动的方法
模式驱动的体系结构设计方法从模式导出体系结构 抽象。软件设计模式的目的在于编制一套可重用的 基本原则,用于开发高质量的应用系统。体系结构 模式类似于设计模式,但它关心更粗粒度的系统结 构及其交互。
15
客户 需求规格说明书
通用知识 2:实现
体系结构模式 描述 意图
上下文
问题
解决方案
体系结构描述Biblioteka 4:组合3:应用 体系结构模式
图4 模式驱动的体系结构设计的概念模型
16
3. 系统的管理端业务处理模块
3.1 总的网络拓补结构
系统管理员
数据库 和
Web程序 都在这上
导师
导师
导师
17
3. 系统的管理端业务处理模块
在该系统中采用面向对
象分析作为主要的系统
建模方法,用不同的设
计角度描述角色(管理
有所不同。
3
客户
领域知识
捕捉需求 需求规格 说明书
提取解决方 案的结构
领域知识 工作
解决方案抽象
体系结构 规格说明
领域知识
体系结构
图1 体系结构设计方法的元模型 4
2.软件体系结构设计方法的分析
为了获取对体系结构设计的抽象,人们已经提出 了许多方法。
2.1 体系结构设计方法的分类
(1)工件驱动(Artifact-Driven)的方法 (2)用例驱动(Use-Case-Driven)的方法 (3)模式驱动(Pattern-Driven)的方法 (4)领域驱动(Domain-Driven)的方法
*
者)与系统的其它的 管理员
构件是如何联系的。管
管理端子系统 *
理端的主用例图如右图:
模式驱动的体系结构设计方法从模式导出体系结构 抽象。软件设计模式的目的在于编制一套可重用的 基本原则,用于开发高质量的应用系统。体系结构 模式类似于设计模式,但它关心更粗粒度的系统结 构及其交互。
15
客户 需求规格说明书
通用知识 2:实现
体系结构模式 描述 意图
上下文
问题
解决方案
体系结构描述Biblioteka 4:组合3:应用 体系结构模式
图4 模式驱动的体系结构设计的概念模型
16
3. 系统的管理端业务处理模块
3.1 总的网络拓补结构
系统管理员
数据库 和
Web程序 都在这上
导师
导师
导师
17
3. 系统的管理端业务处理模块
在该系统中采用面向对
象分析作为主要的系统
建模方法,用不同的设
计角度描述角色(管理
有所不同。
3
客户
领域知识
捕捉需求 需求规格 说明书
提取解决方 案的结构
领域知识 工作
解决方案抽象
体系结构 规格说明
领域知识
体系结构
图1 体系结构设计方法的元模型 4
2.软件体系结构设计方法的分析
为了获取对体系结构设计的抽象,人们已经提出 了许多方法。
2.1 体系结构设计方法的分类
(1)工件驱动(Artifact-Driven)的方法 (2)用例驱动(Use-Case-Driven)的方法 (3)模式驱动(Pattern-Driven)的方法 (4)领域驱动(Domain-Driven)的方法
*
者)与系统的其它的 管理员
构件是如何联系的。管
管理端子系统 *
理端的主用例图如右图:
教学课件PPT软件工程软件过程
Database design, where you design the system data structures and how these are to be represented in a database.
14
两步设计
总体设计:体系结构
阶段性产品
概要设计规格说明书 数据库或数据结构设计说明书 集成测试计划
Feasibility study
Is it technically and financially feasible to build the system?
Requirements elicitation and analysis
What do the system stakeholders require or expect from the system?
19
Software evolution
Software is inherently flexible and can change. As requirements change through changing business
circumstances, the software that supports the business must also evolve and change. Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new.
Interface design, where you define the interfaces between system components.
14
两步设计
总体设计:体系结构
阶段性产品
概要设计规格说明书 数据库或数据结构设计说明书 集成测试计划
Feasibility study
Is it technically and financially feasible to build the system?
Requirements elicitation and analysis
What do the system stakeholders require or expect from the system?
19
Software evolution
Software is inherently flexible and can change. As requirements change through changing business
circumstances, the software that supports the business must also evolve and change. Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new.
Interface design, where you define the interfaces between system components.
第四章 面向过程的软件设计方法
分区 常规 的第 8 页
一般采用两个准则度量模块独立性。即模块间耦合和模块内聚(高内聚,低耦合)
数据耦合(Data Coupling) 如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。 标记耦合(Stamp coupling) 如果一组模块通过参数表传递记录信息,就是标记耦合。 控制耦合(Control Coupling) 如果一个模块通过传送开关,标志,名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
数据设计的原则 文件设计
分区 常规 的第 20 页
文件设计 数据设计的原则 1、用于软件的系统化方法也适用于数据 2、确定所有的数据结构和在每种数据结构上施加的操作 3、应当建立一个数据词典并用它来定义数据和软件的设计 4、底层数据设计的决策应推迟到设计过程的后期进行 5、数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能知道。 6、应当建立一个存放有效数据结构及相关操作的库 7、软件设计和程序设计语言应当支持抽象数据类型的定义和实现。 以上原则适用于软件工程的定义阶段和开发阶段。 文件设计 文件设计的过程主要分两个阶段。第一阶段是文件的逻辑设计,主要在概要设计阶段实施。 1、整理必须的数据元素 2、分析数据间的关系 3、确定文件的逻辑设计 4、理解文件的特性 5、确定文件的组织方式
进行二级分解,设计输入、输出和中心变换部分的中、下层模块
分区 常规 的第 16 页
事务分析 与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统到结构图
分区 常规 的第 17 页
事务分析过程 1、识别事务源 2、规定适当的事务型结构 3、识别各种事务和它们定义的操作 4、注意利用公用模块 5、对每一事务,或对联系密切的一组事务,建立一个事务处理模块 6、对事务处理模块规定它们全部的下层操作模块 7、对操作模块规定它们的全部细节模块
一般采用两个准则度量模块独立性。即模块间耦合和模块内聚(高内聚,低耦合)
数据耦合(Data Coupling) 如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。 标记耦合(Stamp coupling) 如果一组模块通过参数表传递记录信息,就是标记耦合。 控制耦合(Control Coupling) 如果一个模块通过传送开关,标志,名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
数据设计的原则 文件设计
分区 常规 的第 20 页
文件设计 数据设计的原则 1、用于软件的系统化方法也适用于数据 2、确定所有的数据结构和在每种数据结构上施加的操作 3、应当建立一个数据词典并用它来定义数据和软件的设计 4、底层数据设计的决策应推迟到设计过程的后期进行 5、数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能知道。 6、应当建立一个存放有效数据结构及相关操作的库 7、软件设计和程序设计语言应当支持抽象数据类型的定义和实现。 以上原则适用于软件工程的定义阶段和开发阶段。 文件设计 文件设计的过程主要分两个阶段。第一阶段是文件的逻辑设计,主要在概要设计阶段实施。 1、整理必须的数据元素 2、分析数据间的关系 3、确定文件的逻辑设计 4、理解文件的特性 5、确定文件的组织方式
进行二级分解,设计输入、输出和中心变换部分的中、下层模块
分区 常规 的第 16 页
事务分析 与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统到结构图
分区 常规 的第 17 页
事务分析过程 1、识别事务源 2、规定适当的事务型结构 3、识别各种事务和它们定义的操作 4、注意利用公用模块 5、对每一事务,或对联系密切的一组事务,建立一个事务处理模块 6、对事务处理模块规定它们全部的下层操作模块 7、对操作模块规定它们的全部细节模块
软考 面向过程方法
软考面向过程方法
面向过程的方法是一种软件设计方法,其核心思想是将软件开发过程分解为一系列独立的步骤,每个步骤都有明确的任务和输出结果。
面向过程的方法包括结构化方法(面向过程方法)和面向数据流、面向数据结构和面向对象的方法等。
结构化方法(面向过程方法)由结构化分析(Structured Analysis, SA)、结构化设计(Structured Design, SD)和结构化程序设计(Structured Programming, SP)三部分有机组合而成,其精髓是自顶向下、逐步求精和模块化设计。
特点包括开发目标清晰、开发工作分阶段、文档规范、设计方法结构化(分解、汇总逐步实现)。
从技术角度来看,面向过程的设计方法主要涉及系统结构设计、过程设计和数据设计。
它通过自顶向下的方式逐步细化,将软件的体系结构按层次进行详细描述,包括模块结构和数据结构。
在过程中,要特别注意模块间的耦合和内聚,以确保软件的可维护性和可扩展性。
面向过程的设计方法有许多优点,如提高软件的可维护性和可扩展性、降低软件开发的复杂性和风险等。
然而,它也有一些局限性,例如对系统动态行为的描述较为困难,不易适应需求变化等。
如需了解更多关于软考中面向过程方法的有关信息,建议查阅相关资料或咨询专业人士。
软件设计模式ppt课件
*
* @author Administrator
*
*/
精选ppt
42
创建型模式之一(工厂方法模式)
package com.demo.factory;
import com.demo.factory.itf.ISwordFactory; import com.demo.factory.model.AbstractSword; import com.demo.factory.model.object.QixingSword;
实例二(多文档)
精选ppt
25
接口的作用
接口的定义方面来说,接口其实就是类和类之间的一种 协定,一种约束(安全性).
方便统一管理.另一个是方便调用
提高模块内的内聚性,降低模块间的耦合性.
扩展性
使用方便,可读性强,结构清晰的特点。
interface IBark { void Bark(); }
够有静态的不能被修改的数据成员(也就是必须 是static final的,不过在 interface中一般不定义 数据成员),所有的成员方法都是abstract的。
abstract class和interface所反映出的设计理念不
同。其实abstract class表示的是"is-a"关系,
精选ppt
精选ppt
3
设计模式的基本概念-软件危 机
软件危机的产生原因
✓ 与软件本身的特点有关。软件不同于硬件,它是计算机 系统中的逻辑部件而不是物理部件;软件不会因使用时 间过长而“老化”或“用坏”;在写出程序代码并在计 算机上试运行之前,软件开发过程的进展情况较难衡量, 软件质量也较难评价,因此管理和控制软件开发过程十 分困难;软件质量不是根据大量制造的相同实体的质量 来度量,而是与每一个组成部分的不同实体的质量紧密 相关,因此,在运行时所出现的软件错误几乎都是在开 发时期就存在而一直未被发现的,改正这类错误通常意 味着改正或修改原来的设计,这就在客观上使得软件维 护远比硬件维护困难;软件是一种信息产品,具有可延 展性,属于精柔选p性pt 生产,与通用性强的硬件相比,软件更 4
软件工程课件:软件详细设计
软件详细设计
当具有往解的方向更进一步细化的方法,且不断重复该 步骤即能解决问题,最终达到完全解,则应该采用循环的求 精技术(构造循环)。这时一定要弄清循环的初始条件、结束 条件和有限进展的每一步都是什么。
当问题的某步解法与前边高层次的某步解法具有相同性 质,只是某些参数不同时,可采用递归的求精技术。这时应 注意递归的参数变化规律以及递归出口。
软件详细设计
总体设计是详细设计的基础,必须经复查确认后才可以 开始详细设计。总体设计的重点是确定构成系统的模块及其 之间的联系,详细设计则是根据总体设计提供的文档,对各 模块给出详细的过程性描述及其他具体设计等。
在程序过程设计阶段,要决定各个模块的实现算法,并 精确地表达这些算法。表达程序处理过程的工具叫做详细设 计工具,也称作程序算法设计工具。它可以分为以下三类:
软件详细设计
4.2.1 黄金规则 1997年,Theo Mandel在其关于界面设计的著作中提出
了三条用于用户界面设计的“黄金规则”: • 置用户操作于控制之下; • 减少用户的记忆负担; • 保持界面一致。
软件详细设计
1.置用户操作于控制之下 (1) 以不强迫用户进入不必要的或不希望的动作的方式 来定义交互方式。交互模式是界面的当前状态。例如,用户 在字处理菜单中选择拼写检查,软件将转移到拼音检查模式。 如果用户在这种情况下又希望进行一些文本编辑,则没有理 由强迫用户停留在拼写检查模式,用户能够几乎不需做如何 动作就进入和退出该模式。
软件详细设计
(2) 提供灵活的交互方式。不同用户有不同的偏好,界 面中应该给用户提供不同的选择。例如,允许用户通过键盘 命令、鼠标移动、多触摸屏或语音识别命令等方式进行交互。
(3) 用户交互可以被中断和撤消。当陷入到一系列动作 之中时,用户应该能够中断动作序列去做某些其他事情。用 户应该能够“撤销”任何动作。
软件设计与体系结构 第四章 面向对象的软件设计方法ppt课件
1精化软件架构2调整软件构成的类3精化交互模型4精化类之间关系在层次结构中较高层次的包可以依赖较低层次的包但应尽量在相邻的层次间发生如果针对某些子系统专门划分了接口包和实现包那么其他与该子系统相关的包吸能依赖于接口包不能依赖于实现包设计精化精化软件架构用户交互层包精化后的模型设计精化精化软件架构用户交互层中子包精化后的模型设计精化调整软件构成类若类的属性和操作简单但与其他类通信非常用频繁即耦合度很高这样的类可以合并到其他类中若一个类的属性可以区分为常用和罕用为提高效率拆分为常用类和数个罕用类建立聚合关系若一个类既要负责业务逻辑又要实现与外部数据通信那么可以拆分为业务逻辑类和通信类设计精化精化过程中新增加的类设计精化精化交互模型软件架构的组成类被迫调整之后对交互模型产生的影响新出现的对象可拆分后的对象如何参与交互过程在其中起到什么样的作用交互过程是否需要细化例如如增加必要的消息或对局部引用一个更加具体的交互图设计精化精化后的withdrawal顺序图根据软件复用的要求及软件结构简洁化清晰化的要求优化类之间的关系连接关系主要是构筑消息通道
l 设计的精化: u 对上面的逻辑、界面、数据模型等不同侧重点的设计结果进行整理,合并相似的类,保证各 模型之间的一到处性,并消除冗余,为了提高整全后模型的质量,可能需要引入继承、聚集 等关系对类设计进行组织和精化,并可能需要引入新的关键类和控制类。交互图等设计模型 进行精华,以更具体地描述场景交互过程。
些外部行为? l 系统将通告参与者哪些事件? .
用例的分析与设计 确定用例—确认参与者和责任
l 不同的参与者 u 系统管理员、程序员、会计、出纳员 u 与系统通信的其他系统
l 不同的责任 u 系统配置、程序设计、财务管理、现金管理
l 分析参与者的工作:使用案例 u 各种使用过程、步骤
l 设计的精化: u 对上面的逻辑、界面、数据模型等不同侧重点的设计结果进行整理,合并相似的类,保证各 模型之间的一到处性,并消除冗余,为了提高整全后模型的质量,可能需要引入继承、聚集 等关系对类设计进行组织和精化,并可能需要引入新的关键类和控制类。交互图等设计模型 进行精华,以更具体地描述场景交互过程。
些外部行为? l 系统将通告参与者哪些事件? .
用例的分析与设计 确定用例—确认参与者和责任
l 不同的参与者 u 系统管理员、程序员、会计、出纳员 u 与系统通信的其他系统
l 不同的责任 u 系统配置、程序设计、财务管理、现金管理
l 分析参与者的工作:使用案例 u 各种使用过程、步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
阅读和理解软件需求说明书,确 认用户要求能否实现,明确实现 的条件,从而确定设计的目标, 以及它们的优先顺序
根据目标确定最合适的设计方法 规定设计文档的编制标准 规定编码的信息形式,与硬件, 操作系统的接口规约,命名规则
10
2. 软件系统结构的总体设计
基于功能层次结构建立系统。 采用某种设计方法,将系统按功
20
详细设计
在详细设计过程中,需要完成的 工作是:
1.确定软件各个组成部分内的 算法以及各部分的内部数据组织
2.选定某种过程的表达形式来 描述各种算法。
3.进行详细设计的评审
21
软件设计基础
自顶向下,逐步细化 软件结构 程序结构 结构图 模块化 抽象化 信息隐蔽
22
自顶向下,逐步细化
将软件的体系结构按自顶向下方 式,对各个层次的过程细节和数 据细节逐层细化,直到用程序设 计语言的语句能够实现为止,从 而最后确立整个的体系结构。
12
4. 数据结构设计
确定软件涉及的文件系统的结构以 及数据库的模式、子模式,进行数 据完整性和安全性的设计 确定输入,输出文件的详细的数据 结构 结合算法设计,确定算法所必需的 逻辑数据结构及其操作 确定对逻辑数据结构所必需的那些 操作的程序模块(软件包)
13
限制和确定各个数据设计决策的影 响范围 若需要与操作系统或调度程序接口 所必须的控制表等数据时,确定其 详细的数据结构和使用规则 数据的保护性设计
18
实用性:确认该设计对于需求的解 决方案是否实用 技术清晰度:确认该设计是否以一 种易于翻译成代码的形式表达 可维护性:确认该设计是否考虑了 方便未来的维护 质量:确认该设计是否表现出良好 的质量特征
19
各种选择方案:看是否考虑过其 它方案,比较各种选择方案的标 准是什么 限制:评估对该软件的限制是否 现实,是否与需求一致 其它具体问题:对于文档、可测 试性、设计过程..等进行评估
15
5.可靠性设计
可靠性设计也叫做质量设计 在运行过程中,为了适应环境的 变化和用户新的要求,需经常对 软件进行改造和修正。在软件开 发的一开始就要确定软件可靠性 和其它质量指标,考虑相应措施, 以使得软件易于修改和易于维护
16
6.编写概要设计阶段的文档
概要设计阶段完成时应编写以下 文档:
概要设计说明书 数据库设计说明书 用户手册 制定初步的测试计划
31
程序的系统结构图
32
模块化
软件系统的模块化是指整个软件 被划分成若干单独命名和可编址 的部分,称之为模块。这些模块 可以被组装起来以满足整个问题 的需求。 把问题/子问题的分解与软件开 发中的系统/子系统或系统/模 块对应起来,就能够把一个大而 复杂的软件系统划分成易于理解 的比较单纯的模块结构。
17
7.概要设计评审
可追溯性:确认该设计是否复盖了 所有已确定的软件需求,软件每一 成份是否可追溯到某一项需求 接口:确认该软件的内部接口与外 部接口是否已经明确定义。模块是 否满足高内聚和低耦合的要求。模 块作用范围是否在其控制范围之内 风险:确认该设计在现有技术条件 下和预算范围内是否能按时实现
29
③ 模块间的信息传递:当一个模块 调用另一个模块时,调用模块把数 据或控制信息传送给被调用模块, 以使被调用模块能够运行。而被调 用模块在执行过程中又把它产生的 数据或控制信息回送给调用模块
30
④ 在模块A的箭头尾部标以一个菱 形符号,表示模块A有条件地调用 另一个模块B。当一个在调用箭头 尾部标以一个弧形符号,表示模块 A反复调用模块C和模块D。
23
软件结构
软件结构包括两部分。程序的模块 结构和数据的结构 软件的体系结构通过一个划分过程 来完成。该划分过程从需求分析确 立的目标系统的模型出发,对整个 问题进行分割,使其每个部分用一 个或几个软件成份加以解决,整个 问题就解决了
24
25
程序结构
程序结构表明了程序各个部件(模块) 的组织情况,是软件的过程表示。
6
软件设计任务
从工程管理的角度来看,软件设 计分两步完成。
概要设计,将软件需求转化 为数据结构和软件的系统结构。 详细设计,即过程设计。通 过对结构表示进行细化,得到 软件的详细的数据结构和算法。
7
8
软件设计过程
1. 制定规范
在进入软件开发阶段之初,首先 应为软件开发组制定在设计时应 该共同遵守的标准,以便协调组 内各成员的工作。包括:
防卫性设计:在软件设计中就插 入自动检错,报错和纠错的功能
14
一致性设计:
保证软件运行过程中所使用的数 据的类型和取值范围不变
在并发处理过程中使用封锁和解 除封锁机制保持数据不被破坏
冗余性设计:针对同一问题,由两 个开发者采用不同的程序设计风格 不同的算法设计软件,当两者运行 结果之差不在允许范围内时,利用 检错系统予以纠正,或使用表决技 术决定一个正确结果。
能划分成模块的层次结构 确定每个模块的功能 建立与已确定的软件需求的对应
关系 确定模块间的调用关系 确定模块间的接口 评估模块划分的质量
11
3. 处理方式设计
确定为实现系统的功能需求所必需 的算法,评估算法的性能 确定为满足系统的性能需求所必需 的算法和模块间的控制方式
周转时间 响应时间 吞吐量 精度 确定外部信号的接收发送形式
数据设计 系统结构设计 过程设计。
3
数据设计侧重于数据结构的定义。 系统结构设计定义软件系统各主 要成份之间的关系。 过程设计则是把结构成份转换成 软件的过程性描述。在编码步骤, 根据这种过程性描述,生成源程 序代码,然后通过测试最终得到 完整有效的软件。
4
开发阶段的信息流
5
软件设计是后续开发步骤及软件维 护工作的基础。如果没有设计,只 能建立一个不稳定的系统结构
第四章 面向过程的 软件设计方法
软件设计的目标和任务 软件设计基础 模块独立性 结构化设计方法 数据设计和文件设计 过程设计
1
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
2
进行
26
结构图
结构图反映程序中模块之间的层 次调用关系和联系:它以特定的 符号表示模块、模块间的调用关 系和模块间信息的传递
27
① 模块:模块用矩形框表示,并用 模块的名字标记它。
28
② 模块的调用关系和接口:模块之 间用单向箭头联结,箭头从调用模 块指向被调用模块,表示调用模块 调用了被调用模块。
阅读和理解软件需求说明书,确 认用户要求能否实现,明确实现 的条件,从而确定设计的目标, 以及它们的优先顺序
根据目标确定最合适的设计方法 规定设计文档的编制标准 规定编码的信息形式,与硬件, 操作系统的接口规约,命名规则
10
2. 软件系统结构的总体设计
基于功能层次结构建立系统。 采用某种设计方法,将系统按功
20
详细设计
在详细设计过程中,需要完成的 工作是:
1.确定软件各个组成部分内的 算法以及各部分的内部数据组织
2.选定某种过程的表达形式来 描述各种算法。
3.进行详细设计的评审
21
软件设计基础
自顶向下,逐步细化 软件结构 程序结构 结构图 模块化 抽象化 信息隐蔽
22
自顶向下,逐步细化
将软件的体系结构按自顶向下方 式,对各个层次的过程细节和数 据细节逐层细化,直到用程序设 计语言的语句能够实现为止,从 而最后确立整个的体系结构。
12
4. 数据结构设计
确定软件涉及的文件系统的结构以 及数据库的模式、子模式,进行数 据完整性和安全性的设计 确定输入,输出文件的详细的数据 结构 结合算法设计,确定算法所必需的 逻辑数据结构及其操作 确定对逻辑数据结构所必需的那些 操作的程序模块(软件包)
13
限制和确定各个数据设计决策的影 响范围 若需要与操作系统或调度程序接口 所必须的控制表等数据时,确定其 详细的数据结构和使用规则 数据的保护性设计
18
实用性:确认该设计对于需求的解 决方案是否实用 技术清晰度:确认该设计是否以一 种易于翻译成代码的形式表达 可维护性:确认该设计是否考虑了 方便未来的维护 质量:确认该设计是否表现出良好 的质量特征
19
各种选择方案:看是否考虑过其 它方案,比较各种选择方案的标 准是什么 限制:评估对该软件的限制是否 现实,是否与需求一致 其它具体问题:对于文档、可测 试性、设计过程..等进行评估
15
5.可靠性设计
可靠性设计也叫做质量设计 在运行过程中,为了适应环境的 变化和用户新的要求,需经常对 软件进行改造和修正。在软件开 发的一开始就要确定软件可靠性 和其它质量指标,考虑相应措施, 以使得软件易于修改和易于维护
16
6.编写概要设计阶段的文档
概要设计阶段完成时应编写以下 文档:
概要设计说明书 数据库设计说明书 用户手册 制定初步的测试计划
31
程序的系统结构图
32
模块化
软件系统的模块化是指整个软件 被划分成若干单独命名和可编址 的部分,称之为模块。这些模块 可以被组装起来以满足整个问题 的需求。 把问题/子问题的分解与软件开 发中的系统/子系统或系统/模 块对应起来,就能够把一个大而 复杂的软件系统划分成易于理解 的比较单纯的模块结构。
17
7.概要设计评审
可追溯性:确认该设计是否复盖了 所有已确定的软件需求,软件每一 成份是否可追溯到某一项需求 接口:确认该软件的内部接口与外 部接口是否已经明确定义。模块是 否满足高内聚和低耦合的要求。模 块作用范围是否在其控制范围之内 风险:确认该设计在现有技术条件 下和预算范围内是否能按时实现
29
③ 模块间的信息传递:当一个模块 调用另一个模块时,调用模块把数 据或控制信息传送给被调用模块, 以使被调用模块能够运行。而被调 用模块在执行过程中又把它产生的 数据或控制信息回送给调用模块
30
④ 在模块A的箭头尾部标以一个菱 形符号,表示模块A有条件地调用 另一个模块B。当一个在调用箭头 尾部标以一个弧形符号,表示模块 A反复调用模块C和模块D。
23
软件结构
软件结构包括两部分。程序的模块 结构和数据的结构 软件的体系结构通过一个划分过程 来完成。该划分过程从需求分析确 立的目标系统的模型出发,对整个 问题进行分割,使其每个部分用一 个或几个软件成份加以解决,整个 问题就解决了
24
25
程序结构
程序结构表明了程序各个部件(模块) 的组织情况,是软件的过程表示。
6
软件设计任务
从工程管理的角度来看,软件设 计分两步完成。
概要设计,将软件需求转化 为数据结构和软件的系统结构。 详细设计,即过程设计。通 过对结构表示进行细化,得到 软件的详细的数据结构和算法。
7
8
软件设计过程
1. 制定规范
在进入软件开发阶段之初,首先 应为软件开发组制定在设计时应 该共同遵守的标准,以便协调组 内各成员的工作。包括:
防卫性设计:在软件设计中就插 入自动检错,报错和纠错的功能
14
一致性设计:
保证软件运行过程中所使用的数 据的类型和取值范围不变
在并发处理过程中使用封锁和解 除封锁机制保持数据不被破坏
冗余性设计:针对同一问题,由两 个开发者采用不同的程序设计风格 不同的算法设计软件,当两者运行 结果之差不在允许范围内时,利用 检错系统予以纠正,或使用表决技 术决定一个正确结果。
能划分成模块的层次结构 确定每个模块的功能 建立与已确定的软件需求的对应
关系 确定模块间的调用关系 确定模块间的接口 评估模块划分的质量
11
3. 处理方式设计
确定为实现系统的功能需求所必需 的算法,评估算法的性能 确定为满足系统的性能需求所必需 的算法和模块间的控制方式
周转时间 响应时间 吞吐量 精度 确定外部信号的接收发送形式
数据设计 系统结构设计 过程设计。
3
数据设计侧重于数据结构的定义。 系统结构设计定义软件系统各主 要成份之间的关系。 过程设计则是把结构成份转换成 软件的过程性描述。在编码步骤, 根据这种过程性描述,生成源程 序代码,然后通过测试最终得到 完整有效的软件。
4
开发阶段的信息流
5
软件设计是后续开发步骤及软件维 护工作的基础。如果没有设计,只 能建立一个不稳定的系统结构
第四章 面向过程的 软件设计方法
软件设计的目标和任务 软件设计基础 模块独立性 结构化设计方法 数据设计和文件设计 过程设计
1
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
2
进行
26
结构图
结构图反映程序中模块之间的层 次调用关系和联系:它以特定的 符号表示模块、模块间的调用关 系和模块间信息的传递
27
① 模块:模块用矩形框表示,并用 模块的名字标记它。
28
② 模块的调用关系和接口:模块之 间用单向箭头联结,箭头从调用模 块指向被调用模块,表示调用模块 调用了被调用模块。