交通软件系统分析与设计2016.03_第1页
交通软件系统分析与设计2016.03_第2页
交通软件系统分析与设计2016.03_第3页
交通软件系统分析与设计2016.03_第4页
交通软件系统分析与设计2016.03_第5页
已阅读5页,还剩163页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、交通软件系统分析与设计李志慧 E_mail:电话考教材 张海藩编著,软件工程导论,清华大学出版社 郑人杰编,实用软件工程,清华大学出版社,1997年 数据结构,严蔚敏等编著,清华大学出版社 数据结构,殷人坤,清华大学出版社第一章 绪论 交通软件系统分析与设计关注的问题: 1、 软件系统开发过程 2、 数据结构+算法 数据结构:相互之间存在一种或多种特点关系的数据元素的结合。 由某一数据对象及该对象中所有数据成员之间的关系组成,表示为 data_structure=D,R数据结构 线性表栈和队列串数组和广义表二叉树树和森林图算法 查找 排序 算法评价:空间复杂度 时间复

2、杂度 (1)问题定义)问题定义 问题定义阶段必须回答的关键问题是:问题定义阶段必须回答的关键问题是:”要解决的问题是什么要解决的问题是什么?”通过通过问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。标和规模的书面报告。 (2 2)可行性研究)可行性研究该阶段要回答的关键问题是:该阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得对于上一个阶段所确定的问题有行得通的解决办法吗通的解决办法吗? ?” 可行性研究的结果是使用部门负责人做出是否继续进行这项工程的决可行性研究的结果是使用部门负责人做出是否继续

3、进行这项工程的决定的重要依据。定的重要依据。 (3 3)需求分析)需求分析该阶段的任务不是具体地解决问题,而是准确地确定该阶段的任务不是具体地解决问题,而是准确地确定“为下解决这个为下解决这个问题,目标系统必须做什么问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些,主要是确定目标系统必须具备哪些功能。功能。 (4 4)总体设计)总体设计 该阶段必须回答的关键问题是:该阶段必须回答的关键问题是:“概括地说,应该如何解决这个问题概括地说,应该如何解决这个问题? (5) 5) 详细设计详细设计 总体设计阶段以比较抽象概括的方式提出了解决问题的办法。总体设计阶段以比较抽象概括的方式提出了解决

4、问题的办法。详细设计阶段的任务就是把解法具体化,也就是回答下面这详细设计阶段的任务就是把解法具体化,也就是回答下面这个关键问题:个关键问题:“应该怎样具体地实现这个系统呢应该怎样具体地实现这个系统呢?” (6 6)编码和单元测试)编码和单元测试 该阶段的关键任务是写出正确的容易理解、容易维护的程序模该阶段的关键任务是写出正确的容易理解、容易维护的程序模块。块。 (7 7)综合测试)综合测试该阶段的关键任务是通过各种类型的测试该阶段的关键任务是通过各种类型的测试(及相应的调试及相应的调试)使软件使软件达到预定的要求。达到预定的要求。 (8)软件维护)软件维护 维护阶段的关键任务是,通过各种必要的

5、维护活动使系统持维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。久地满足用户的需要。 阶阶 段段关键问题关键问题结束标准结束标准问题定义问题定义问题是什么问题是什么关于规模和目标的报告书关于规模和目标的报告书可行性研究可行性研究有可行的解吗有可行的解吗?系统的高层逻辑模型:系统的高层逻辑模型: 数据流图、成本效益分析数据流图、成本效益分析需求分析需求分析系统必须做什系统必须做什么么?系统的逻辑模型:系统的逻辑模型: 数据流因、数据字典、算法描述数据流因、数据字典、算法描述总体设计总体设计概括地说,应概括地说,应该如何解决这该如何解决这个问题个问题?可能的解法:可能的解法

6、: 系统硫程图、成本效益分析系统硫程图、成本效益分析推荐的系统结构:推荐的系统结构: 层次图或结构图层次图或结构图详细设计详细设计怎样具体地实怎样具体地实现这个系统?现这个系统?编码规格说明:编码规格说明: HIPO图或图或PDL编码和单元编码和单元测试测试正确的程序模正确的程序模块块源程序清单源程序清单单元测试方案和结果单元测试方案和结果综合测试综合测试符合要求的软符合要求的软件件综合测试方案和结果;完整一致的软件配置综合测试方案和结果;完整一致的软件配置维护维护持久地满足用持久地满足用户需要的软件户需要的软件完整准确的维护记录完整准确的维护记录特点:特点:(1)为一个整体开发模型)为一个整

7、体开发模型(2)开发前可完整、准确地定义系统各个阶)开发前可完整、准确地定义系统各个阶段段 适用条件:适用条件: 适用开发,如:编译系统,数据库系统于功适用开发,如:编译系统,数据库系统于功能和性能明确、完整、无重大变化地软件等能和性能明确、完整、无重大变化地软件等 特点:特点: (1)降低软件开发风险)降低软件开发风险 (2)按照软件的演化规律进行开发)按照软件的演化规律进行开发 (3)开发初期不要求开发人员准确、无二)开发初期不要求开发人员准确、无二义了解系统义了解系统适用:适用:适用与复杂系统的开发或系统目标不明确的情适用与复杂系统的开发或系统目标不明确的情况况 喷泉模型是一种以用户需求

8、为动力,以对象作为驱动的模喷泉模型是一种以用户需求为动力,以对象作为驱动的模型型 它以面向对象的软件开发方法为基础,以用户需求作为喷它以面向对象的软件开发方法为基础,以用户需求作为喷泉模型的源泉。泉模型的源泉。 特点特点(1)喷泉模型规定软件开发过程有喷泉模型规定软件开发过程有4个阶段,即分析、系统个阶段,即分析、系统设计、软件设计和实现设计、软件设计和实现(2)喷泉模型的各阶段相互重叠,它反映了软件过程并行)喷泉模型的各阶段相互重叠,它反映了软件过程并行性的特点。性的特点。(3)喷泉模型以分析为基础,资源消耗呈塔型,在分析阶)喷泉模型以分析为基础,资源消耗呈塔型,在分析阶段消耗的资源最多段消

9、耗的资源最多(4)喷泉模型反映了软件过程迭代的自然特性,从高层返)喷泉模型反映了软件过程迭代的自然特性,从高层返回低层无资源消耗回低层无资源消耗 结构化方法结构化方法 结构化方法由结构化分析、结构化设计和结构化程序设结构化方法由结构化分析、结构化设计和结构化程序设计构成,它是一种计构成,它是一种面向数据流面向数据流的开发方法的开发方法 Jackson方法方法一种面向数据结构的开发方法一种面向数据结构的开发方法 维也纳开发方法维也纳开发方法一种一种形式化形式化的开发方法,软件的需求用严格的形式语言描述的开发方法,软件的需求用严格的形式语言描述,把描述模型逐步变换成目标系统,把描述模型逐步变换成目

10、标系统 面向对象的开发方法面向对象的开发方法 面向对象开发方法包括面向对象分析(面向对象开发方法包括面向对象分析(OOA) 、面向对、面向对象设计(象设计(OOD)和面向对象实现。和面向对象实现。 其包括其包括Booch、Coad、OMT方法方法 统一建模语言统一建模语言UML 可行性分析的任务 1)“问题是否可行?” 2)目的:可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 3)首先需要进一步分析和澄清问题定义。在澄清了问题定义之后,分析员应该导出系统的逻辑模型。然后从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案)。对每种解法都应该仔细研究它的可行

11、性,一般说来,至少应该从下述三方面研究每种解法的可行性: (1)技术可行性 使用现有的技术能实现这个系统吗? (2)经济可行性 这个系统的经济效益能超过它的开发成本吗? (3)操作可行性 系统的操作方式在这个用户组织内行得通吗?可行性研究的步骤 (1) 复查系统规模和目标 (2) 研究目前正在使用的系统 (3) 导出新系统的高层逻辑模型 (4) 重新定义问题 (5)导出和评价供选择的解法 (6)推荐行动方针 (7)草拟开发计划 (8)书写文档提交审查 系统流程图 系统流程图的作用:系统流程图是描述物理系统的工具。所谓物理系统,就是一个具体实现的系统,也就是描述一个单位、组织的信息处理的具体实现

12、的系统。在进行可行性研究过程中,要以概括的形式描述现有系统的高层逻辑模型,并通过概要的设计变成所建议系统的物理模型,可以用系统流程图来描述所建议系统的物理模型。 系统流程图可用图形符号来表示系统中的各个元素,表达了系统中各个元素之间的信息流动的情况 画系统流程图时,首先要搞清业务处理过程以及处理中的各个元素,同时要理解系统的流程图的各个符号的含义,选择相应的符号来代表系统中的各个元素。所画的系统流程图要反映出系统的处理流程。系统流程图的符号系统流程图的符号例子 某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化

13、时,应该及时修改库存清单主文件,如果那种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。 该装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。零件库存量的每一次变化称为一个事务,由放在仓库中的CRT终端输入到计算机中;系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的定货信息写在磁带上。最后,每天由报告生成程序读一次磁带,并且打印出定货报告 分层 面对复杂的系统时,一个比较好的方法是分层次地描绘这个系统。首先用一张高层次的系统流程图描绘系统总体格朗,表明系统的关键功能。然后分别把每个关键功能扩展

14、到适当的详细程度,面在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。系统流程图与程序流程图 系统流程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程,因此尽管系统流程图使用的某些符号和程序流程图中用的符号相同,但是它却是物理数据流因而不是程序流程图。 数据流图 数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。 设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点。符号例子 假设一家工厂的采购部每天需要一张定

15、货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务、通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。 数据流图有四种成分:源点或终点,处理,数据存储和数据流。分析方法:数据字典 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元柬的定义的集合。 数据流图和数据字典共同构成系统的逻辑模型 般说来,数据字典由四类元素组成: 1)数据流 2)数据流分量(即,数据元素) 3)数据存储 4)处理。数据

16、处理工具(如IPO图或PDL)描述成本效益分析第三章 需要分析 需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。 需求分析的任务是对目标系统提出完整、准确、清晰、具体的要求。 可行性研究阶段产生的文档,持别是数据流图,是需求分折的出发点。 需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证。需求分析的需求分析的任务任务 1、确定对系统的综合要求、确定对系统的综合要求 1)系统功能要求)系统功能要求 2)系统性能要求)系统性能要求 3)运行要求)运行要求 4)将来可能提出的要求)将来

17、可能提出的要求 2、分析系统的数据要求、分析系统的数据要求 数据结构表示数据元素之间的逻辑关系数据结构表示数据元素之间的逻辑关系3、导出系统的逻辑模型、导出系统的逻辑模型 导出系统的详细的逻辑模型,通常用数据流导出系统的详细的逻辑模型,通常用数据流 图、图、 数据字典和主要的处理算法描述这个逻辑模型。数据字典和主要的处理算法描述这个逻辑模型。4、修正系统开发计划、修正系统开发计划5、开发原型系统、开发原型系统需求分析的特点需求分析的特点 1、问题的复杂性。 2、交流障碍 3、不完备性和不一致性 4、需求易变性 需求分析的原则需求分析的原则 1、必须能够表达相理解问题的数据域和功能域。 2、可以

18、把一个复杂问题按功能进行分解并可逐层细化 3、建模需求分析的方法需求分析的方法 1、功能分解方法 2、结构化分析方法 3、信息建模方法 4、面向对象分析方法需求说明书的主要内容需求说明书的主要内容 (1)前言:说明项目的目的、范围,所用的术语的定义;用到的缩略语和缩写词;资料。 (2)项目概述:产品的描述;产品的功能;用户的特点,一般的约束等。 (3)具体需求:说明每个功能的输入、处理和输出;外部接口需求,包括用户接口、软件接口、硬件接口相通信接口;性能需求;设计约束;共他需求,包括数据库、操作等第二节第二节 需求分析过程需求分析过程 分析步骤: 1、建立用例关系图 2 、细化数据流图 3、用

19、户复查 4、细化数据流图 5、修正开发计划 6、书写文档 7、审查和复审(Use case diagram) (Use case diagram) 从用户角度描述系统功能从用户角度描述系统功能, ,并指并指出各功能的操作者出各功能的操作者用例模型描述的是外部执行者用例模型描述的是外部执行者(Actor)(Actor)所理解的系统功能。所理解的系统功能。 它描述了待开发系统的功能需求。它描述了待开发系统的功能需求。用例模型用例模型若干个若干个在在UMLUML中中, ,构成用例图的主要元素是用例和构成用例图的主要元素是用例和执行者及其它们之间的联系。执行者及其它们之间的联系。 定义系统、确定执行者

20、和用例、描述用例、定义用例间的定义系统、确定执行者和用例、描述用例、定义用例间的关系、确认模型。关系、确认模型。执行者是指用户在系统中所扮演的角色。执行者在用例执行者是指用户在系统中所扮演的角色。执行者在用例图中是用类似人的图形来表示图中是用类似人的图形来表示, , 但执行者可以是人,也可以但执行者可以是人,也可以是一个外界系统。是一个外界系统。()一、执行者一、执行者5.3.2 5.3.2 用例模型用例模型供货供货买饮料买饮料取货款取货款客户客户供货人供货人收银员收银员图5.15自动售货系统二、 用例 从本质上讲从本质上讲, ,一个用例是用户与计算机之间的一次典型交一个用例是用户与计算机之间

21、的一次典型交互作用。在互作用。在UML中中, ,用例被定义成系统执行的一系列动作用例被定义成系统执行的一系列动作(功能)。(功能)。用例有以下特点用例有以下特点: :用例捕获某些用户可见的需求用例捕获某些用户可见的需求, ,实现一个具体的用户目标。实现一个具体的用户目标。用例由执行者激活用例由执行者激活, ,并将结果值反馈给执行者。并将结果值反馈给执行者。用例必须具有功能上的完整描述。用例必须具有功能上的完整描述。1 1、与系统实现有关的主要问题是什么?、与系统实现有关的主要问题是什么?2 2、系统需要哪些输入、系统需要哪些输入/ /输出?这些输入输出?这些输入/ /输出从何而来?到哪输出从何

22、而来?到哪里去?里去?3 3、执行者需要系统提供哪些功能?、执行者需要系统提供哪些功能?4 4、执行者是否需要对系统中的信息进行读、创建、修改、删、执行者是否需要对系统中的信息进行读、创建、修改、删除或存储?除或存储?二、用例5.3.2 5.3.2 用例模型用例模型5.3.3用例图图5.16 用例图的元素用例图描述了系统的功能需求,它是从执行者的角度来理用例图描述了系统的功能需求,它是从执行者的角度来理解系统,由解系统,由“执行者执行者”、“用例用例”和和“用例之间的关系用例之间的关系”3 3类类模型元素构成。模型元素构成。图中还有另外两种类型的连接图中还有另外两种类型的连接, ,即即使用使用

23、和和扩展扩展关关系,是两种不同形式的泛化关系。系,是两种不同形式的泛化关系。 用例用例2用例用例A用例用例执行者执行者用例用例1用例用例3用例用例B使用使用使用使用扩展扩展(a)(b)(c)UseUse表示一个用例使用另一个用例。表示一个用例使用另一个用例。ExtendExtend通过向被扩展的用例添加动作来扩展用例。通过向被扩展的用例添加动作来扩展用例。用例图实例贸易经理贸易经理风险分析风险分析设置边界设置边界进行交易进行交易交易估价交易估价更新帐目更新帐目使用使用使用使用扩展扩展营销人员营销人员超越边界超越边界评价评价记帐系统记帐系统销售人员销售人员5.3.4 5.3.4 用例图实例用例图

24、实例5.3.4 5.3.4 用例图实例用例图实例 系统的主要功能是:项目管理,资源管理和系统管理。项系统的主要功能是:项目管理,资源管理和系统管理。项目管理包括项目的增加、删除、更新。资源管理包括对资源和目管理包括项目的增加、删除、更新。资源管理包括对资源和技能的添加、删除和更新。系统管理包括系统的启动和关闭,技能的添加、删除和更新。系统管理包括系统的启动和关闭,数据的存储和备份等功能。数据的存储和备份等功能。 项目管理员、资源管理员、系统管理员、备份数据系统。项目管理员、资源管理员、系统管理员、备份数据系统。项目管理,资源管理和系统管理。项目管理,资源管理和系统管理。对上层的用例进行分解对上

25、层的用例进行分解, ,并将执行者分配并将执行者分配到各层次的到各层次的Use caseUse case图中。图中。角色:角色:角色职责:角色职责:角色职责识别:角色职责识别:图5.19角色描述模板 还应画出相应的执行者描述模板及用例还应画出相应的执行者描述模板及用例描述模板。描述模板。添加技能添加技能删除技能删除技能更新技能更新技能资源管理员资源管理员添加资源添加资源删除资源删除资源更新资源更新资源查找技能查找技能Use查找资源查找资源UseUseUse把技能指把技能指定给资源定给资源从资源中从资源中清除技能清除技能ExtendExtend图可以自顶而下不图可以自顶而下不断精化,抽象出不同层次

26、的断精化,抽象出不同层次的图。图。5.3.4 5.3.4 用例图实例用例图实例系统管理员系统管理员项目管理员项目管理员资源管理员资源管理员资源管理资源管理项目管理项目管理系统管理系统管理项目项目管理员管理员添加项目添加项目删除项目删除项目更新项目更新项目添加活动添加活动删除活动删除活动更新活动更新活动查找项目查找项目Use添加任务添加任务Use把技能指把技能指定给资源定给资源从资源中从资源中清除技能清除技能ExtendExtend删除任务删除任务更新任务更新任务ExtendExtendExtendExtendExtendExtend5.3.4 5.3.4 用例图实例用例图实例系统管理系统管理员

27、员添加技能添加技能存储数据存储数据启动系统启动系统关闭系统关闭系统查找技能查找技能UseUseUse备份资备份资源数据源数据备份项备份项目数据目数据 Extend Extend Use备份数据备份数据备份系统备份系统 现有一医院病房监护系统,病症监视器安置在每个病现有一医院病房监护系统,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析房,将病人的病症信号实时传送到中央监视系统进行分析处理。在中心值班室里,值班护士使用中央监视系统对病处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情员的情况进行监控,根据医生的要求随时打印

28、病人的病情报告,定期更新病历,当病症出现异常时,系统会立即自报告,定期更新病历,当病症出现异常时,系统会立即自动报警动报警, 并实时打印病人的病情报告,立及更新病历。并实时打印病人的病情报告,立及更新病历。 要求根据现场情景,对医院病房监护系统进行需求分要求根据现场情景,对医院病房监护系统进行需求分析,析, 建立系统的建立系统的请对系统需求进行分析!请对系统需求进行分析!经过初步的需求分析,得到系统功能要求:经过初步的需求分析,得到系统功能要求:1 1、监视病员的病症(血压、体温、脉搏等)、监视病员的病症(血压、体温、脉搏等)2 2、定时更新病历、定时更新病历3 3、病员出现异常情况时报警。、

29、病员出现异常情况时报警。4 4、随机地产生某一病员的病情报告。、随机地产生某一病员的病情报告。 例例2 2 医院病房监护系统医院病房监护系统产生产生病情报告病情报告监视病情监视病情更新病历更新病历情景教学情景教学 系统名称:医院病房监护系统系统名称:医院病房监护系统 根据分析系统主要实现以下功能:根据分析系统主要实现以下功能:1、病症监视器可以将采集到的病症信号(组合),格、病症监视器可以将采集到的病症信号(组合),格式化后实时的传送到中央监护系统。式化后实时的传送到中央监护系统。2、中央监护系统将病人的病症信号开解后与标准的病、中央监护系统将病人的病症信号开解后与标准的病症信号库里的病症信号

30、的正常值进行比较,当病症出现异常症信号库里的病症信号的正常值进行比较,当病症出现异常时系统自动报警。时系统自动报警。3、当病症信号异常时,系统自动更新病历并打印病情、当病症信号异常时,系统自动更新病历并打印病情报告。报告。4、值班护士可以查看病情报告并进行打印。、值班护士可以查看病情报告并进行打印。5、医生可以查看病情报告,要求打印病情报告,也可、医生可以查看病情报告,要求打印病情报告,也可以查看或要求打印病历。以查看或要求打印病历。6、系统定期自动更新病历。、系统定期自动更新病历。需求分析 (一)建立系统的用例图(一)建立系统的用例图1、通过以下六个问题识别角色、通过以下六个问题识别角色(1

31、)谁使用系统的主要功能?谁使用系统的主要功能?(2)谁需要系统的支持以完成日常工作任务?谁需要系统的支持以完成日常工作任务?(3)谁负责维护,管理并保持系统正常运行?谁负责维护,管理并保持系统正常运行?(4)系统需要应付(或处理)哪些硬设备?系统需要应付(或处理)哪些硬设备?(5)系统需要和哪些外部系统交互?系统需要和哪些外部系统交互?(6)谁(或什么)对系统运行产生的结果(值)感兴趣?谁(或什么)对系统运行产生的结果(值)感兴趣?需求分析通过回答这六个问题以后,再进一步分析可以识别出本系统的四个通过回答这六个问题以后,再进一步分析可以识别出本系统的四个角色:角色:。角色描述模板角色描述模板角

32、色:病 人角色职责:提供病症信号角色职责识别:负责生成、实时提供各种病症信号。角色:值班护士角色职责:负责监视病人的病情变化角色职责识别: (1)使用系统主要功能 (2)对系统运行结果感兴趣角色:标准病症信号库角色职责:负责向系统提供病症信号的正常值角色职责识别: (1)负责保持系统正常运行 (2)与系统交互角色:医 生角色职责:对病人负责,负责处理病情的变化角色职责识别: (1)需要系统支持以完成其日常工作 (2)对系统运行结果感兴趣通过分析可以初步识别出系统的用例为:中央监护,病症通过分析可以初步识别出系统的用例为:中央监护,病症监护,提供标准病症信号,病历管理,病情报告管理。顶层用监护,

33、提供标准病症信号,病历管理,病情报告管理。顶层用例图为:例图为:角色描述 通过分析可以初步识别出系统的用例为:中央监护,病症监通过分析可以初步识别出系统的用例为:中央监护,病症监护,提供标准病症信号,病历管理,病情报告管理。顶层用例护,提供标准病症信号,病历管理,病情报告管理。顶层用例图为:图为:提供标准提供标准病症信号病症信号病历管理病历管理病人病人标准病症标准病症信号库信号库 医生医生值班护士值班护士病症监护病症监护病情报病情报告管理告管理中央监护中央监护使用使用使用角色描述将用例细化,可以得到分解的用例:将用例细化,可以得到分解的用例: 分解为:分解为: 将从病症监护器传送来的组合病症信

34、号分解为系统将从病症监护器传送来的组合病症信号分解为系统可以处理的信号。可以处理的信号。 将病人的病症信号与标准信号比较将病人的病症信号与标准信号比较 。 如果病症信号发生异常(即高于峰值),发出报警信号。如果病症信号发生异常(即高于峰值),发出报警信号。 将处理后的数据格式化以便写入病历库将处理后的数据格式化以便写入病历库 。 分解为:分解为: 采集病人的病症信号。采集病人的病症信号。 将采集来的模拟信号转化为数字信号。将采集来的模拟信号转化为数字信号。 将采集到的脉搏,血压等信号数据组合为一组将采集到的脉搏,血压等信号数据组合为一组信号数据。信号数据。 根据病人的情况改变监视器采样频率。根

35、据病人的情况改变监视器采样频率。 i(此用例不分解)(此用例不分解)用例细化 分解为:分解为: 分解为分解为: 在显示器上显示病情在显示器上显示病情 在打印机打印病情报告在打印机打印病情报告用例细化病人病人模数转化模数转化数据格式化数据格式化值班护士值班护士报警报警信号采集信号采集比较信号比较信号标准病症标准病症信号库信号库 医生医生信号数据组合信号数据组合采样频率采样频率改变改变提供标准提供标准病症信号病症信号生成病历生成病历查看病历查看病历更新病历更新病历打印病历打印病历显示病情报告显示病情报告打印病情报告打印病情报告分解信号分解信号 Extend Extend Extend use us

36、e use use use use use use细化的用例图第三节第三节 概念模型和规范化概念模型和规范化 用户的数据要求-需要哪些数据,数据之间有哪些联系,数据本身有哪些性质,数据的结构 等)。 用户的处理要求-对数据进行哪些处理,每个处理的逻辑功能。 概念性模型(信息模型)-一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。表示概念性数据模型的最常用方法是实体-联系方法,采用用 ER图的方式,这种表示又称为ER模型。 ER模型 实体: 客观世界中存在的且可区分的事物。 联系: 客观事物之间的联系(三类-1:1,1:N,M:N) 属性: 实体或联系所具有的性质。教师姓名性别职称职

37、务教师号教1课程N课程号课名学时学分学M学生N学号姓名性别系年级成绩 范式通常用范式定义消除数据的冗余度(略)ER关系图与数据库映射关系描述关系数据库关系数据库数据以2维表的形式进行表示,每个表的列表示字段、行表示数据库表的一个记录 Primary key(主键)(主键): 字段的唯一标识字段的唯一标识w Foreign key(外键)(外键): 其它表的主键在该表的其它表的主键在该表的参考参考SQL(结构化查询语言):可以进行数据库表记录的操作.SQL 语言基础 1、创建数据库 CREATE DATABASE database-name 2、删除数据库 drop database dbnam

38、e3、创建新表 create table tabname(col1 type1 not null primary key,col2 type2 not null,.)4、删除新表 drop table tabname 5、添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 6、创建索引:create unique index idxname on tabname(col.) 删除索引:drop index idxnameSQL 语言基础 7、创建视图:cre

39、ate view viewname as select statement 删除视图:drop view viewname8、 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围ER 与数据库映射与数据库映射E-R模型映射为数据库表:属性的映射w 每个实体映射为一个表每个实体映射为一个表w 实体的每个属性映射为一个字

40、段实体的每个属性映射为一个字段w 每个实体的个体映射为数据库的一个记录每个实体的个体映射为数据库的一个记录w N:M关系映射为一个单独的表关系映射为一个单独的表w 1:N关系利用外键进行映射关系利用外键进行映射例子:例子: ER 关系模型与数据库表的映射关系模型与数据库表的映射 ICitycityNameAirportairportCodeairportName*ServescityNameHoustonAlbanyMunichHamburgCity TablecityNameHoustonHoustonAlbanyMunichHamburgServes TableairportCodeIAH

41、HOUALBMUCHAMAirport TableairportCodeIAHHOUALBMUCHAMairportNameIntercontinentalHobbyAlbany CountyMunich AirportHamburg AirportPrimary KeyN:M(多对多关系):将关系映射为单个表Separate Table例子:例子: ER 关系模型与数据库表的映射关系模型与数据库表的映射 II 会议会议transactionID职员职员portfolioID.NportfolioID .Portfolio TabletransactionIDTransaction Table

42、portfolioIDForeign Key1:N 或N:1关系 : 隐藏外键的处理1例子:例子: ER 关系模型与数据库表的映射关系模型与数据库表的映射 doordoorIDskyskyID.*doorIDTransaction TabledoorID1-To-1 关系门与钥匙关系 习题 给出E_R的数据库设计教师姓名性别职称职务教师号教1课程N课程号课名学时学分学M学生N学号姓名性别系年级E_R 与数据结构映射关系 数据元素四种基本结构: (1)集合结构 (2)线性结构 (3) 树状结构 (4)图状结构 应用举例 线性表、树、图数据内存的存储 顺序存储结构、链式存储问题数据结构的核心:(1

43、)关注数据元素在计算机内存的存储问题;(2)根据数据关系,利用数据基本操作来描述与表达算法数据结构基本形式 线性表 :n个数据元素的有限序列如: 树:n个节点的有限集 图C语言描述C语言描述 Typedef struct 数据类型 属性1; 数据类型 属性2; 数据类型 属性n; structname;如: typedef struct Int i; char s; Course;Course traffic100,*signal,;线性表 顺序存储: 数组描述 链式存储:指针动态分配 如线性表的元素 若将上例改为合并为一个新的非递减的集合,则算法为线性链表循环链表双向链表栈:先进后出链栈链栈

44、解决内存空间预分配不足问题如何出栈和入栈?队列:先进先出第四节第四节. 图形工具图形工具 层次方框图: 用树形结构的一系列多层次的矩形框描绘数据的层次结构。 产 品 硬 件 软 件 服 务 处理机 存储器外部设备系统软件应用软件软件服务硬件维修培训操作系统编译程序软件工具层次方框图的一个例子 注意:层次方框图即可以表示数据的层次结构,也可以表示程序的层次结构4. 图形工具(续) Warnier Warnier 图图: 用树形结构描绘数据的层次结构。软件 产品系统软件操作系统(P1)编译程序 (P2)软件工具编辑程序(P3)测试驱动程序(P4)设计辅助程序(P5)应用软件5. 验证软件需求 从哪

45、几个方面验证软件需求的正确性(四个方面)一致性: 任何一条需求不能和其他需求互相矛盾。完整性: 规格说明书应该包括用户需要的每一个功能和性能。现实性: 指定的需求是用现有的硬件、软件技术可以实现的。有效性: 需求是正确有效的,确实能解决用户面对的问题。 验证软件需求的方法一致性:人工审查-形式化描述软件需求,软件工具自动验证。现实性: 参考以往的开发经验,分析,仿真或模拟完整性和一致性:原型系统第四章第四章 总体设计总体设计 总体设计的基本目的基本目的就是回答“概括地说,系统应该如何系统应该如何实现实现?”这个问题。 总体设计总体设计又称为概要设计概要设计或初步设计初步设计,其任务: (1)划

46、分出组成系统的物理元素划分出组成系统的物理元素-程序、文件、数据库、程序、文件、数据库、人工过程和文档人工过程和文档 通过这个阶段的工作将划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。 (2)总体设计阶段的另一项重要任务是设计软件的结构)总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。1 总体设计的过程(两个主要阶段): 系统设计:确定系统的具体实现方案。 结构设计:确定软件结构。设想供选择的方案选 取 合理的方案推荐最佳方案

47、功能分解设计软件结构数据库设 计制订测试计划书写文档数据流图 系统流程图 组成系统的物理元素清单 成本/效益分析 实现系统的进度计划 系统说明 用户手册 测试计划 详细的实现计划 数据库设计结果 审查和复 审2 软件设计的概念和原理模块是数据说明、可执行语句等程序对象的说明。 (1)模块化:把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,满足问题的功能。C(P1+P2) C(P1)+C(P2)E(P1+P2) E(P1)+E(P2)成本模块数目成本/模块接口成本最小成本区 (2)抽象 (3)信息隐蔽和局部化 信息隐蔽原理信息隐蔽原理指出:使得

48、一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。 所谓局部化局部化是指把一些关系密切的软件元素物理地放得彼此靠近。模块化和软件成本耦合:一个软件结构内不同模块之间互连程度的度量,耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。 数据耦合:模块之间通过参数交换数据信息。 控制耦合:模块之间传递的参数含有控制信息。 公共环境耦合:两个或多个模块通过一个公共数据环境相互作用。 内容耦合:如果出现下列情况之一,两个模块间就发生了内容耦(1)一个模块访问另一个模块的内部数据;2)一个模块不通过正常入口而转到另一个模块的内部;3)两个模块有一部

49、分程序代码重叠4)一个模块有多个入口。 设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合,完全不用内容耦合。数据耦合 控制耦合 公共环境耦合 内容耦合低高(4)模块独立-每个模块完成一个相对独立的子功能,并且和其他模块之间的关系很简单。 模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果,独立的优点:(1)有效的模块化的软件比较容易开发 (2)独立的模块比较容易测试和维护模块的独立程度两个定性标准度量:内聚和耦合耦合衡量不同模块彼此间互相依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。2 软件设计的概念和原理 - 耦合非直接耦合数据耦合特征耦合控制耦合外部耦

50、合公共耦合内容耦合弱耦合中耦合较强耦合强耦合模块1模块2模块3模块4数据耦合通过简单变量交换数据特征耦合通过数据结构交换数据非直接耦合模块之间没有信息传递模块A模块B模块C模块D模块L模块N全局性数据结构公共耦合Flag=1?S1S2模块1控制耦合模块之间传递的是控制信息TF全 局 性简单变量外部耦合模块A 模块B内容耦合 访问其它模块的内部数据 直接跳到其他模块内部执行2 软件设计的概念和原理(续1)内聚:一个模块内各个元素彼此结合的紧密程度。偶然内聚:一个模块完成一组任务,任务之间的关系很松散。公共语句。逻辑内聚:若干个逻辑功能类似的任务组成一个模块。(如模板函数)时间内聚:若干个任务必须

51、在同一段时间内执行。如初始化工作。低内聚中内聚高内聚过程内聚:模块内的处理元素是相关的,且必须以特定次序执行。通信内聚:模块中所有元素都使用同一个输入数据,和/或产生同一个 输出数据。顺序内聚:模块中所有处理元素和同一个功能密切相关,且这些处理必 须顺序执行。功能内聚:所有处理元素属于一个整体,完成一个单一的功能。模块A模块B模块CS1;S2;模块A模块B模块C模块A模块B模块C模块D2 软件设计的概念和原理(续2) 改进软件结构提高模块独立性 模块规模应该适中 深度、宽度、扇入、扇出都应适当扇入扇入:一个模块的扇人表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多。扇出扇

52、出:扇出是一个模块直接控制(调用)的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块。 模块的作用域应该在控制域之内模块的作用域作用域:为受该模块内一个判定影响的所有模块的集合。模块的控制域控制域:这个模块本身以及所有直接或间接从属于它的模块的集合。 力争降低模块接口的复杂程度 设计单入口单出口的模块 模块的功能应该可以预测3 启发式规则4 图形工具 层次图和HIPO图层次图用来描述软件结构,层次图+IPO图= HIPO图正文加工系统输入输出编辑加标题存储检索编目录格式化添加删除插入修改合并列表 结构图方框之间的箭头表示模块的调用关系,带注释的箭头表示模块间来回传递的信息:空

53、心圆数据,实心圆控制信息。结构图还可以表示模块的选择调用或循环调用参见:P645 面向数据流的设计方法1) 变换流2) 事务流3) 设计过程时间输入流输出流变换流外部表示内部表示信息变换流变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些持征时,这种信息流就叫作变换流。 这种数据流是“以事务为中心的”也就是说,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。事务T事务中心活动通路事务中心 T 完

54、成下述任务:接受输入数据(事务)分析每个事务以确定它的类型根据事务类型选取一条活动通路变换流与事务流三要素 变换流三要素变换流三要素 输入、输出、变换中心 事务流三要素事务流三要素 事务、事务中心、活动通路5 面向数据流的设计方法(续)精化数据流图流类型区分事务中心和数据接收通路映射成事务结构区分输入和输出分支映射成变换结构用启发式设计规则精化软件结构导出接口描述和全程数据结构复查详细设计事务分析变换分析5 面向数据流的设计方法(续) 变换分析: 汽车数字仪表板功能: 1) 通过A/D 转换实现传感器和微处理器接口, 2) 在发光二极管面板上显示数据, 3) 指示每小时英里数(mph),行驶的

55、里程,每加伦油行驶的英里数(mpg)等等。 4) 指示加速或减速; 5) 超速警告:如果车速超过55英里/小时,则发出超速警告铃声。A/D转数计数器流量传感器微处理机里程表车速表油效表油管系统加速/减速指示超速报警5 面向数据流的设计方法(续)读旋转信号收集和求平均转换成转/分( rpm)计算里程确定加速 / 减速产生加速/减速显示产生里程显示计算mph和超速值计算燃料消耗发出铃声产生mph显示产生 mpg显示读和校核计算gph旋转信号信号/秒 SPSSPSSPSrpmrpm箭头指示上箭头水平线下箭头英里超速值显示铃声mphmphmpggph燃料流燃料流传感器信号Mpg 显示数字仪表板 控 制

56、接受传感器 信 号数据转换控制驱动仪表 板输入控制变换控制输入控制5 面向数据流的设计方法(续)设计步骤:复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,划分变换或事务中心完成 “第一级分解”CmCaCtCe第一级分解的方法5 面向数据流的设计方法(续)ADBCCmCaCBDA接受传感器 信 号转换成rpm收集SPS读旋转信号计算gph读燃料流数字仪表板 控 制确 定加/减速计算mph计算gpg计算里程驱动仪表板加速/减速显示显示mpg显示mph显示里程发出铃声发光二极管显示5 面向数据流的设计方法(续)数字仪表板 控 制接受传感器 信 号转换成

57、rpm读旋转信号计算gph读燃料流数字仪表板 控 制确 定加/减速计算mph计算gpg计算里程驱动仪表板加速/减速显示显示mpg显示mph显示里程发出铃声发光二极管显示数字仪表板软件系统经过调整后的结构图注意:红色模块的位置有所调整5 面向数据流的设计方法(续) 事务分析432总 控接收通路C通路B通路A通路调 度A_CTL1 4 2+1 3 2 1 B_CTLC_CTL 设计优化设计优化设计优化应该力求做到在有效的模块化的前提下使用最少量的模块,以及在能够满足信息要求的前提下使用最简单的数据结构。 数据流图软件结构总体设计说明书的主要内容如下: (1)引言:编写目的,背景,定义,参考资料。

58、(2)总体设计:需求规定,运行环境,基本设计概念和处理流程,结构。 (3)接口设计:用户接口,外部接口,内部接口。 (4)运行设计:运行模块组合运行控制,运行时间。 (5)系统数据结构设计:逻辑结构设计,物理结构设计,数据结构与程序的关系, (6)系统出错处理设计:出错信息,补救措施系统恢复设计。第五章第五章 详细设计详细设计详细设计:过程设计设计方法:结构程序设计结构序设计结构序设计:一种程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构详细设计阶段的目标目标: 确定应该怎样具体地实现所要求的系统。 精确地描述整个目标系统,从而在编码阶段可以把这个描述翻译成用某种程序设计

59、语言书写的程序。详细设计的基本任务详细设计的基本任务1算法设计算法设计 用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来2数据结构设计数据结构设计 对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。 3物理设计物理设计 对数据库进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。 4其他设计其他设计 根据软件系统的类型,还可能要进行以下设计: (1)代码设计;为了提高数据的输入、分类、存储及检索等操作的效率空间,对数据库中的某些数据项的值要进行代码设计。(2)输入输出格式设计。(3)人机

60、对话设计:对于一个实时系统,用户与计算机颠蟹对话,因此要进行对话方式、内容及格式的具体设计。5编写详细设计说明书编写详细设计说明书 详细设计说明书有下列的主要内容: (1)引言:包括编写目的、背景、定义 (2)程序系统的组织结构。(3)程序l(标识符)设计说明:(4)程序2(标识符)设计说明。(5)程序N(标识符)设计说明6评审评审结构程序设计顺序、选择、循环三种基本结构BexpAABexpAAexpTFTTFF顺序结构选择结构循环结构1)“While”型循环2)Do .Until 型循环结构程序设计技术好处:(1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律。(2) 先全局后局部、先

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论