软件工程SoftwareEngineeringppt课件.ppt

上传人:本田雅阁 文档编号:3301900 上传时间:2019-08-09 格式:PPT 页数:70 大小:2.62MB
返回 下载 相关 举报
软件工程SoftwareEngineeringppt课件.ppt_第1页
第1页 / 共70页
软件工程SoftwareEngineeringppt课件.ppt_第2页
第2页 / 共70页
软件工程SoftwareEngineeringppt课件.ppt_第3页
第3页 / 共70页
软件工程SoftwareEngineeringppt课件.ppt_第4页
第4页 / 共70页
软件工程SoftwareEngineeringppt课件.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《软件工程SoftwareEngineeringppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程SoftwareEngineeringppt课件.ppt(70页珍藏版)》请在三一文库上搜索。

1、 软件工程 Software Engineering 国防科技大学计算机学院 2004.07 齐治昌齐治昌 教授,教授, 谭庆平谭庆平 教授,教授, 宁洪宁洪 教授,教授, 董威董威 博士博士 Date1国防科技大学计算机学院 第七章 面向数据的分析方法与 形式化方法 前面介绍的面向数据流和面向对象的分析是目 前被广泛采用并具有较好发展潜力的需求分析 方法 。然而,在软件开发实践中仍有其它一些方法可供 分析人员选择,它们在各自适用的领域也表现出了 一定的优越性和生命力。这些方法包括面向数据结 构的系统开发方法(DSSD), Jackson系统开发方法 (JSD)以及形式化软件规格说明技术。前两

2、种统称为 面向数据的需求分析方法。 Date2国防科技大学计算机学院 面向数据的分析方法与形式化方法 特点 o以信息对象及其操作为核心进行需求分析,与面向 对象分析相似。 o复合信息对象具有层次结构,并且可按顺序、选择 、重复三种结构分解为成员信息对象。 o提供将层次信息结构映射为程序结构的机制,从而 为软件设计奠定较好的基础。 第七章 面向数据的分析方法与形式化方法 Date3国防科技大学计算机学院 7.1 面向数据结构的系统开发方法 oDSSD起源于七十年代Warnier在信息领域分析方面的杰出工 作。 o利用顺序、选择、 重复 三种结构表示信息的层次分解,并 指出可以从信息层次结构推导出

3、程序结构。 oKen Orr 对Warnier的工作进行了扩充,引进了数据流和处 理功能,从而发展成为一种需求分析方法。 o本节介绍 Warnier图 DSSD方法 创建实体图、信息过程图、Warnier-Orr原型图。 第七章 面向数据的分析方法与形式化方法 Date4国防科技大学计算机学院 面向数据结构的系统开发方法 (1)首版 标题新闻 国内新闻 本地新闻 (2)商业金融版 股市行情 商业新闻 广告 (3)文化体育版 文化、体育新闻 散文 新书评论 7.1面向数据结构的系统开发方法 Date5国防科技大学计算机学院 7.1.1 Warnier图 oWarnier图是一种表示信息层次结 构

4、的紧致机制。 oWarnier图具有树形层次结构,可 以用另外一些Warnier图继续分解 图中的叶结点。 例 报纸自动组版系统 图,花括符内的信息条目构成顺序 关系,园括符内的数字表示重复 次数,如,广告 可以有1至5条, 股市行情出现0到1次。 符号“ ”表示不可兼具的选择关 系。 7.1面向数据结构的系统开发方法 Date6国防科技大学计算机学院 7.1.2 DSSD方法 基于DSSD需求分析方法的步骤 (1)标识与应用问题有关的实体。 (2)创建一种类似于数据流图的信息过程图。 (3)创建Warnier-Err原型图。 在详细介绍DSSD的具体步骤之前,首先用数据流图描 述一个基于计算

5、机的软件专卖店管理系统,见图 7.2. 注意,数据流图并非DSSD的组成部分。图7.2仅用于 说明后面将要用到的应用问题实例。 7.1面向数据结构的系统开发方法 Date7国防科技大学计算机学院 软件专卖店管理系统的数据流图表示 7.1面向数据结构的系统开发方法 Date8国防科技大学计算机学院 1. 标识实体图 在DSSD中,与应用问题有关的实体及它们之间的信息 流用实体图表示。它与面向对象分析中 的对象消息 传递图有相似之处,因此,识别实体和信息流的方 法也类似于面向对象分析 。 7.1面向数据结构的系统开发方法 Date9国防科技大学计算机学院 标识实体图 在DSSD中,分析人员可通过对

6、下述问题的回答来生成 实体图 (1)软件系统必须处理哪些信息项? (2)信息项的生产者和消费者分别是哪些实体? o上述问题的有关实体是:客户、订单处理员、邮寄 员、银行、结算员、管理员和邮局,见图7. 3(a)。 订单处理员的实体图如图7. 3(b)所示。 o当所有实体的实体图都构造完成后,将它们综合起 来便形成整个目标软件系统的实体图,见图7. 4。 7.1面向数据结构的系统开发方法 Date10国防科技大学计算机学院 标识实体图 7.1面向数据结构的系统开发方法 Date11国防科技大学计算机学院 标识实体图 7.1面向数据结构的系统开发方法 Date12国防科技大学计算机学院 2. 创建

7、信息过程图 oDSSD中的信息过程图与 数据流图的作用类似,都是 用来表示信息流及其处理功 能的。 o信 息过程图从每个实体 的输出信息流开始,逆向寻 找用于生成该输出信息的输 入信息流及相 应的处理功 能。 7.1面向数据结构的系统开发方法 Date13国防科技大学计算机学院 3. 创建Warnier-Orr原型图 DSSD方法 o分析人员以表格形式给出主要的输出信息元素 o精确地表示为Warnier-Orr图 7.1面向数据结构的系统开发方法 Date14国防科技大学计算机学院 创建Warnier-Orr原型图 7.1面向数据结构的系统开发方法 Date15国防科技大学计算机学院 7.2

8、Jackson系统开发方法 o七十年代Jackson提出了软件工程领域中著名的 Jackson方法,当时它只用于软件设计。 o八十年代初,Jackson又对它进行了多方面的扩充 和完善,最终发展成为一种需求分析方法。 oJackson方法的核心思想是: 根据作用于数据的行为序列的结构(顺序、选择与 重复),建立目标软件系统的模型,然后在软件设计 阶段将模型演化为相应的程序结构。 第七章 面向数据的分析方法与形式化方法 Date16国防科技大学计算机学院 Jackson系统开发方法 Jackson方法在需求分析阶段的主要步骤 (1)标识实体与行为。 (2)生成实体结构图。 (3)创建软件系统模型

9、。 7.2Jackson系统开发方法 Date17国防科技大学计算机学院 7.2.1 标识实体与行为 oJackson方法针对初步需求分析形成的用户需求描 述进行语法分析。 o名词及名词短语是潜在的实体,相关的动词构成实 体的潜在行为。 o分析人员根据应用问题的边界及自己的理解,决定 对潜在实体和行为的取舍。 7.2Jackson系统开发方法 Date18国防科技大学计算机学院 标识实体与行为 例7. 1 o 某大学决定将分处两地的校园用直达交通车连接 起来。在每个校园设一个站,站内配置一个按钮。 学生通过按钮请求交通车搭载。交通车应尽快满足 学生的请求。空闲时,交通车停在 任意站等候。 o

10、分析人员可从“大学”、“校园”、“交通车” 、“车站”、“学生”、“按钮”等名词中选取与 应用问题相关实体、行为、状态。 相关的实体:“交通车”、“车站”、“按钮”。 相关的行为:“到站”、“离站”、“按键”。 “交通车”的状态:“等候”和“运行”。 7.2Jackson系统开发方法 Date19国防科技大学计算机学院 7.2.2 生成实体结构图 在Jackson方法中,实体结构是指实体在时间坐 标系中的行为序列。这种序列以顺序、选择 和重复 三种结构进行复合。 Jackson给出的实体结构图示机制如图7. 7所示 。其中的子结点 既可以是行为,也可以是子实体。 在后一情况下,子实体应该继续分

11、解,不能作为实 体结构图的叶结点。 7.2Jackson系统开发方法 Date20国防科技大学计算机学院 实体结构图的图形记号 7.2Jackson系统开发方法 Date21国防科技大学计算机学院 实体结构图的图形记号 7.2Jackson系统开发方法 Date22国防科技大学计算机学院 7.2.3 创建软件系统模型 为了创建目标软件系统的模型,Jackson方法要 求分析人员首先用图7.9所示的图形记号建立系统规 格说明图(System Specification Diagram, SSD)。 o“数据流”(Data Stream)记号表示现实世界中的 过程或装置不断地向目标软件系统中的相应

12、过程发 送数据,后者以先进 先出方式消费数据。 o两者之间的缓冲区容量是无限的。 o“状态向量”(State Vector)记号表示在两者之间 存在状态向量,发送方设置状态向量,接收方读取 状态向量。 7.2Jackson系统开发方法 Date23国防科技大学计算机学院 创建软件系统模型 o站内按钮和目标软件中的 按钮处理过程之间以“数据 流” 方式连接 o交通车和交通车控制过程 之间则应以“状态向量”方 式连接。 7.2Jackson系统开发方法 Date24国防科技大学计算机学院 系统规格说明图示例 利用Jackson给出的“结 构正文” (Structure Text)将实体结构图和系

13、统 规格说明图综合起来,并针 对目标软件系统中的每一过 程用正文方式给出更为精确 、更为详尽的描述。 7.2Jackson系统开发方法 Date25国防科技大学计算机学院 正文描述 BUTTON1 read ButtonDown信号 PUSHBODY itr while ButtonDown 循环结构 PUSH 按键处理 read ButtonDown信号 PUSHBODY end BOTTON1 end 7.2Jackson系统开发方法 Date26国防科技大学计算机学院 正文描述 SHUTTLE1 seq 顺序结构 read 状态向量 WAITBODY1 itr while Wait(1)

14、 如果状态向量中等待 标志置位,则循环等待 read 状态向量 WAITBODY1 end Leave(1) 控制交通车离开站1 TRANSITBODY1 itr while Transit(1) 如果状态向量中运行标志 置位,则一直运行 read 状态向量 TRANSITBODY1 end 7.2Jackson系统开发方法 Date27国防科技大学计算机学院 正文描述 SHUTTLEBODY1 itr 往返重复运行 STATION seq Arrive(i) 控制交通车减速,准备停靠站I WAITBODY itr while Wait(i) 如果状态向量中在站i的 等待标志置位,则循环等待

15、read 状态向量 WAITBODY end Leave(i) TRANSITBODY itr while Transit(i) read 状态向量 TRANSITBODY end STATION end SHUTTLEBODY1 end Arrive(1) SHUTTLE1 end 7.2Jackson系统开发方法 Date28国防科技大学计算机学院 正文描述 Wait(i) Transit(i) (i=1,2) 现实世界的交通车 SHUTTLE0 向软件过程 SHUTTLE1 发出的状态向量的一部分。 7.2Jackson系统开发方法 Date29国防科技大学计算机学院 结构正文的结构图

16、7.2Jackson系统开发方法 Date30国防科技大学计算机学院 7.3 形式化方法 o前面对数据流图、面向对象的需求表示图等语言机 制都未给出数学意义上严格的语法和语义说明。因 此,这些需求模型都或多或少地带有不精确性、不 完全性,甚至不一致性。 o许多软件开发实践希望借助于形式化方法严格地定 义用户需求,并通过数学推演确保需求定义的一致 性和完全性。 o对于正确性至关重要的实时嵌入式系统关键部件的 软件开发,形式化方法更是不可或缺的。 第七章 面向数据的分析方法与形式化方法 Date31国防科技大学计算机学院 形式化方法 o主要思想 oZ语言 形式化规格说明语言 o简单实时操作系统内核

17、的形式化需求描述方法。 o形式化方法的现状和发展趋势。 7.3形式化方法 Date32国防科技大学计算机学院 7.3.1 主要思想 o形式化需求分析方法的主要思想是利用形式化规格 说明语言定义用户需求,并采用数学推演的方法证 明需求定义的性质,例如一致性、实时系统的活性 (Liveness)和公平性(Fairness)等。对于复杂的应 用问题,尽管无法验证整个需求定义的完全性,但 仍有可能为避免某些要点的疏漏而建立数学断言, 然后予以形式证明或反驳。 o形式化方法是克服需求分析阶段不精确性、不一致 性和不完全性的有效途径。 7.3形式化方法 Date33国防科技大学计算机学院 主要思想 形式化

18、规格说明语言的组成 语法 语义 数学推演规则 规则不仅说明了某些数学性质在软件规格说明 中是否成立,也说明了软件实现与软件规格说明之 间的关系。 7.3形式化方法 Date34国防科技大学计算机学院 规格说明语言的语法 规格说明语言的语法 集合论 数理逻辑 代数学 Z语言 集合论 属于 不属于 子集关系 集合交 集合并 函数符号 逻辑符号 任意 存在 非 合取 析取 大多数宽谱语言包括,高级程序设计语言的控制 流机制,如顺序、条件、 循环等等。 7.3形式化方法 Date35国防科技大学计算机学院 规格说明语言的语义 规格说明语言的语义 所有语法符号含意的数学描述。 经典语义定义方法: 指称语

19、义 代数语义 操作语义 7.3形式化方法 Date36国防科技大学计算机学院 规格说明语言的语义 o指称语义 数学地确定规格说明语言的语义域,将所有语法成 分映射为语义域中的对象或语义域上的函数。 o代数语义 将软件规格说明中的某些结构化设施(例如抽象数 据类型)解释为多类代数,通过代数工具(例如范畴 论) 研究规格说明的代数性质、模块组装运算以及 软件设计相对于规格说明的实现关系。 o操作语义 形式地定义抽象机,将规格说明的语义解释为抽象 机的动作序列。 7.3形式化方法 Date37国防科技大学计算机学院 形式化规格说明语言的推演规则 形式化规格说明语言的推演规则 o与数学基础和语义定义方

20、法密切相关。 o以集合论和谓词逻辑为基础的Z语言就包含了原数 学系统中有关的规则。 o规则必须在规格说明语言的语义系统中可证。 o规则是派生的语义定义,它们可以直接应用于软件 规格说明的性质证明并简化推演过程。 7.3形式化方法 Date38国防科技大学计算机学院 规则:ifthenelse结构的表示形式 Eval(e,e)表示表达式e可 计值为e。 第一条规则的直观意义 如果 e0能计值为 TRUE,e1能计值 为 e1,则表达式 if e0 then e1 else e2 可计值为e1. 7.3形式化方法 Date39国防科技大学计算机学院 7.3.2 形式化规格说明语言 用形式化规格说明

21、语言描述用户需求 oVDM的Meta,CSP和Z是具有代表性的形式化规 格说明语言 。 oZ语言的语法设施及其语义说明 o实例及需求描述过程 7.3形式化方法 Date40国防科技大学计算机学院 1. 基本语法成分 Z的基本语法成份主要取自带类型的集合论和 一阶逻辑。 7.3形式化方法 Date41国防科技大学计算机学院 基本语法成分 7.3形式化方法 Date42国防科技大学计算机学院 2. 结构化设施框架(Schema) 框架 变元说明 用一阶逻辑公式表示的变元取值约束条件 语法形式 框架名称 变元说明 约束条件 全局常元和函数的语法形式 常元及函数说明 (说明常元及函数的类型) 约束条件

22、 (说明常元及函数的取值约束) 7.3形式化方法 Date43国防科技大学计算机学院 结构化设施框架(Schema) o记号S 如果框架S中的所有变元为v1,vm,所有的约束条件为 P,Pn,那么框架S中的变元为v,vm, v1, , vm, 约束条件为P1,,Pn,P1,Pn,其中vi与 vi的类型相同,Pj是将Pj中所有vi的出现替换为vi得到 的约束条件(i=1,,m, j=1, ,n)。 o单引号“” 用来区分操作发生前、后的变元取值。 o记号s = s 表示在操作发生前、后框架S中的所有成员不发生变化(变 元取值不变,约束条件也保持相同的真假值)。 7.3形式化方法 Date44国防

23、科技大学计算机学院 7.3.3 形式化需求描述 o例 实时操作系统内核 o用Z语言描述软件需求 系统状态的表示 普通进程调度表示 中断处理进程调度表示 7.3形式化方法 Date45国防科技大学计算机学院 1. 实例描述实时操作系统内核 实时操作系统内核的主要任务 提供进程调度和中断处理机制。 o每个进程都有就绪标志,系统从已就绪进程中选择一个作为 当前进程。 o当没有中断请求时,系统运行当前进程直至该进程显式释放 处理器,然后系统再选取当前进程。 o当中断发生时,系统根据优先级高低选择最紧急的中断并运 行相应的中断处理进程。 o优先级高的中断可以打断优先级低的中断。 o普通进程可将自己登录为

24、某一优先级的中断处理进程。 7.3形式化方法 Date46国防科技大学计算机学院 2. 系统状态的表示 o 引进类型PID表示所有进程标识符的集合。 o 虚构的进程标识符none用来表示处理器的空闲状 态。 PID表示不是none的所有进程标识符: none: PID PID1: P PID PID1=PIDnone PID1是除none外的所 有进程标识符的集合 7.3形式化方法 Date47国防科技大学计算机学院 系统状态的表示 进程调度机制框架 Scheduler *框架名称为Scheduler* process: P PID1 *变元process,ready和 current的说明*

25、 ready: P PID1 current: PID ready process *约束条件* currentprocess none 7.3形式化方法 Date48国防科技大学计算机学院 系统状态的表示 o process表示由进程调度机制控制的所有进程的集 合。 o ready是所有就绪进程的集合。 o current是当前进程。 o 框架Scheduler的约束条件ready process表示就绪 进程必须是可调度的进程。 o 约束条件currentprocess none表示当前 进程要么是可调度进程,要么是none. 7.3形式化方法 Date49国防科技大学计算机学院 系统状态

26、的表示 定义中断优先级的有穷集合ILEVEL ILEVEL: FN 0ILEVEL ILEVEL是除0之外的自然数的有穷集 不是中断处理进程的进程称为普通进程,普通进程的优先 级定义为0。 7.3形式化方法 Date50国防科技大学计算机学院 系统状态的表示 中断处理机制的描述 ohandler是内射函数, 所以两个优先级不能共用同一中断处理进程。 o中断可以是活跃的,并且不是未屏蔽的,因为它可以在先前发生,而后 被更高优先级的中断打断并屏蔽。 o集合active不仅包含当前正被处理的中断优先级,也包括那些先前发 生,而后又被打断的中断优。 7.3形式化方法 Date51国防科技大学计算机学院

27、 系统状态的表示 o实时操作系统的内核由进 程调度和中断处理机制综合 构成. oKernel包含了Scheduler和 IntHandler的变元说明和约 束条件。 o新加的约束条件说明普通 进程不能兼为中断处理进程 ,反之亦然。 o系统状态应由正在运行的 进程及其优先级构成。 7.3形式化方法 Date52国防科技大学计算机学院 系统状态的表示 o系统的调度策略 7.3形式化方法 Date53国防科技大学计算机学院 3. 普通进程调度 普通进程调度操作 o启动普通进程(Start) o设置或清除就绪标志(SetReady) o控制进程临时或永久性让出处理器(Detach与Stop) o当处理

28、器空闲时选择新的进程运行(Select) 7.3形式化方法 Date54国防科技大学计算机学院 普通进程调度 启动普通进程(Start) 7.3形式化方法 Date55国防科技大学计算机学院 普通进程调度 当处理器空闲时选择新的进程运行(Select) 7.3形式化方法 Date56国防科技大学计算机学院 普通进程调度 o控制进程临时或永久性让出处理器(Detach与Stop) 7.3形式化方法 Date57国防科技大学计算机学院 普通进程调度 Stop操作将永久性终止当前进程的运行 Stop 7.3形式化方法 Date58国防科技大学计算机学院 普通进程调度 设置或清除就绪标志(SetRea

29、dy) 7.3形式化方法 Date59国防科技大学计算机学院 4. 中断处理进程调度 中断处理进程调度操作 o将普通进程登录为中断处理进程IntEnter o中断屏蔽的设置与清除Mask o中断响应Interrupt o中断处理完成后相应的中断处理程序挂起IntWait o将自身降格为普通进程IntExit 7.3形式化方法 Date60国防科技大学计算机学院 中断处理进程调度 IntEnter操作定义 7.3形式化方法 Date61国防科技大学计算机学院 中断处理进程调度 用于设置或清除中断屏蔽标志的操作 7.3形式化方法 Date62国防科技大学计算机学院 中断处理进程调度 Interru

30、pt操作定义 7.3形式化方法 Date63国防科技大学计算机学院 中断处理进程调度 7.3形式化方法 Date64国防科技大学计算机学院 中断处理进程调度 当中断处理完成后,中断处理进程可调用IntWait操作将自 己挂起。 IntWait State 7.3形式化方法 Date65国防科技大学计算机学院 中断处理进程调度 中断处理进程还可调用IntExit将自己降格为普通进程 7.3形式化方法 Date66国防科技大学计算机学院 7.3.4形式化方法的现状与发展趋势 o形式化方法的优点性 能够数学地表述和研究应用问题及其软件实现。 o要求分析人员具备良好的数学素质。 o用形式化语言书写的大

31、型应用问题的软件规格说明 往往过于细化,难于为用户和软件设计人员所理解 。 o形式化方法在目前的软件开发实践中并未得到普遍 应用。 7.3形式化方法 Date67国防科技大学计算机学院 形式化方法的现状与发展趋势 近年来形式化方法在两方面改善了实用性 (1)形式化方法与图形语言机制相结合。 为图形语言机制赋予形式化的语法和语义,从 而兼具了图形表示的直观、简洁,以及形式化方法 的严谨、精确等优点。 (2)用CASE工具支持形式化软件开发。 CASE工具不仅可以简化需求分析和需求描述工 作, 而且还可以利用自动定理证明技术帮助分析人 员验证软件规格说明的数学性质。 7.3形式化方法 Date68

32、国防科技大学计算机学院 小结 本章介绍了面向数据结构的系统开发方法(DSSD)和 Jackson系统开发方法(JSD)。 面向数据分析方法,首先描述问题域中的信息项及相关行 为,然后根据信息项具有的层次结构建造需求模型。 面向数据分析方法的适应面不如结构化分析方法和面向对 象的分析方法广泛,但在某些领域中仍具有一定的优越性。 形式化需求描述方法具有精确、无歧义、可数学推演等优 点,软件系统中的某些关键部分采用形式化方法将有助于提高 软件质量。 为了克服形式化方法难于理解、难于使用的缺点,可视形 式化以及形式化方法和CASE工具相结合是行之有效的技术途径 。 第七章 面向数据的分析方法与形式化方法 Date69国防科技大学计算机学院 谢谢谢谢 Date70国防科技大学计算机学院

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1