软件工程软件需要分析lyh.ppt

上传人:本田雅阁 文档编号:2615516 上传时间:2019-04-19 格式:PPT 页数:236 大小:1.54MB
返回 下载 相关 举报
软件工程软件需要分析lyh.ppt_第1页
第1页 / 共236页
软件工程软件需要分析lyh.ppt_第2页
第2页 / 共236页
软件工程软件需要分析lyh.ppt_第3页
第3页 / 共236页
亲,该文档总共236页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、第三章 软件需求分析,为什么要进行需求分析?,目的:对开发者进行指导 开发人员对用户的要求理解 用户理解开发人员 测试部门有理可依,原因:信息收集不全 功能不明确 需求文档不完善 开发者急于求成,教学内容, 3.1 需求分析的任务和步骤 3.2 需求获取的常用方法 3.3 分析建模 3.4 软件需求说明 3.5 结构化分析方法 3.6 面向对象分析方法,教学目的及要求,深刻理解需求分析阶段的概念和任务; 熟练掌握数据流图; 了解面向过程分析方法和面向对象的分析方法。,1.需求分析的任务: 准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。 让用

2、户和开发者共同明确将要开发的是一个什么样的系统(做什么:What)。具体而言,两个任务: 建立分析模型 编写需求说明(P30-P31),3.1 需求分析的任务和步骤,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。,需求分析的任务,对象 系统,模型 系统,抽象(映射),模型应用,模型构造的过程,逻辑模型和物理模型,模型是对对象系统的形式化的特征抽象,概括性或近似地表示; 形式化语言、数学语言、图形等构造模型的过程是一个抽象、分析的过程。,逻辑模型和物理模型,2.需求分析的步骤,需求获取 需求提炼:分析建模 需求描述:编写 需求验证,3.1

3、需求分析的任务和步骤,需求分析过程示意,学 生,购 书 申 请,购 书 单,发 票,领 书 单,书,107 刘,教务科,206 王,会计室,206 李,出纳员,303 赵,教材,学生购买教材的具体模型,(1) 通过对现实环境的调查,获当前系统的具体模型(物理模型),学 生,需求分析过程示意,(2) 去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型,学生购买教材的逻辑模型,需求分析过程示意,(3) 分析当前系统与目标系统的差别,建立目标系统的逻辑模型。,计算机售书系统的逻辑模型,学 生,学 生,购书单,发票,领书单,审查并 开发票,开领,书单,无效书单,需求分析过程示意,(4) 对目标系统进

4、行完善和补充,并写出完整的需求说明; (5) 对需求说明进行复审,直到确认文档齐全,并且符合用户的全部需求为止。,3.2 需求获取的常用方法,1.需求获取的目的 清楚地理解所要解决的问题 完整地获取用户需求,2.需求获取面临的挑战,问题的复杂性和对问题空间理解的不完 备性与不一致性 交流障碍 需求易变性,3.2 需求获取的常用方法,3.需求获取的常用方法(P34-P35),建立联合分析小组 客户访谈 问题分析与确认,3.2 需求获取的常用方法,建立联合分析小组,1)联合分析小组的人员主要包括:用户、领域专家、 系统分析员 2)通过联合分析小组的工作,可以极大地方便系统开发人员和用户之间的沟通。

5、,3.需求获取的常用方法,客户访谈,在与用户接触之前,先要进行充分的准备:,注意:在与用户交流时,应遵循循序渐进、逐步逼近的原则, 切不可急于求成否则欲速则不达。,3.需求获取的常用方法,首先,必须对问题的背景和问题所在系统的环境有全面的了解; 其次,尽可能了解将要会谈用户的个性特点及任务状况; 第三,事先准备一些问题。,问题分析与确认,不能期望用户在一两次交谈中,就会对目标软件的要求阐述清楚,也不能限制用户在回答问题过程中的自由发挥。 在每次访谈之后,要及时进行整理,分析用户提供的信息,去掉错误的、无关的部分,整理有用的内容,以便在下一次与用户见面时由用户确认;同时,准备下一次访谈时的进一步

6、更细节的问题。如此循环,一般需要2-5个来回。,3.需求获取的常用方法,举例:某出版社系统调查表,举例:某出版社系统调查表,软件需求分析的通信途径,需求分析流程,4. 需求获取的内容,(1)功能性需求: 定义了系统做什么(描述系统必须支持的功能和过程) (2)非功能性需求(技术需求): 定义了系统工作时的特性(描述操作环境和性能目标),用户需求分类,两类需求包括的内容,(1) 功能 (2) 性能 (3) 环境 (4) 界面 (5) 用户或人的因素 (6) 文档 (7) 数据 (8) 资源 (9) 安全保密 (10)软件成本消耗与开发进度 (11)质量保证,4. 需求获取的内容,(1) 功能需求

7、,系统做什么? 系统何时做什么? 系统何时及如何修改或升级?,(2) 性能需求,软件开发的技术性指标 例如: 存储容量限制 执行速度、相应时间 吞吐量,(3) 环境需求,硬件设备:机型、外设、接口、地 点、分布、温度、湿度、磁场干扰等 软件: 操作系统 网络 数据库,(4) 界面需求,有来自其它系统的输入吗? 到自其它系统的输出吗? 对数据格式有规定吗? 对数据存储介质有规定吗?,需求包括的内容,(5) 用户或人的因素,用户类型? 各种用户熟练程度? 需受何种训练? 用户理解、使用系统的难度? 用户错误操作系统的可能性?,(6) 文档需求,需哪些文档? 文档针对哪些读者?,(7) 数据需求,输

8、入、输出数据的格式? 接收、发送数据的频率? 数据的准确性和精度? 数据流量? 数据需保持的时间?,(8) 资源需求,软件运行时所需的数据、软件、内存空间等资源。 软件开发、维护所需的人力、支撑软件、开发设备等。,需求包括的内容,(9) 安全保密要求,需对访问系统或系统信息加以控制吗? 如何隔离用户之间的数据? 用户程序如何与其它程序和操作系统隔离? 系统备份要求?,(10) 软件成本消耗与开发进度需求,开发有规定的时间表吗? 软硬件投资有无限制?,(11) 质量保证,系统的可靠性要求? 系统必须监测和隔离错误吗? 规定系统平均出错时间? 出错后,重启系统允许的时间? 系统变化如何反映到设计中

9、? 维护是否包括对系统的改进? 系统的可移植性?,需求包括的内容,原型(原型指“快速软件原型” )是一个可实地运行的模型,有正式产品的主要特征,但不是全部特征。 软件原型是软件系统的最初版本,以最少的费用,最短的时间开发出的、以反映最后软件的主要特征的系统。,5. 快速原型法在需求分析中的应用,原型开发指的是建立一个系统的早期版本的演习(practice),它不必反映最终产品的所有性能,而只要反映感兴趣的一些方面。,原型的定义,原型的作用,问题:开发初期很难确定用户需求规格解决:用户与开发者之间的鸿沟以原型(软件产品的样品)为共同语言,实现用户与开发者双向沟通。,原型的特性,是一个可实际工作的

10、系统; 没有固定的生存期,结局可能是用后立即被抛弃,或可能成为最终系统; 可服务于不同的目的, 从需求分析到最终产品都可做原型; 建立必须快,便宜; 是包含修改、评价在内的完整重复过程,需求分析和定义规格说明 作为软件设计的一种工具 作为一种解决不确定性的工具 作为一种实验工具 系统开发同时,作为同步培训工具 作为开发方法,利用原型演化为最终系统 作为软件维护的辅助工具,原型化开发的应用领域,原型开发的步骤,(1) 利用各种分析技术和方法,生成一个建华的需求规格说明。 (2) 对需求规格说明进行必要的检查和修改后,确定原型的软件结构、用户界面和数据结构等。 (3) 在现有的工具和环境的帮助下快

11、速生成可运行的软件原型并进行测试、改进; (4)将原型提交给用户评估并征求用户的修改意见; (5)重复上述过程,直到原型得到用户的认可。,原型化的开发环境,(1)试验性原型 原型用来确认对需求的理解是否正确,应在与实际产品环境相近的环境上开发原型。 (2) 试用性原型 原型用来帮助用户在试用中使自己的模糊的需求明确起来确,可在与实际产品环境完全 无关的环境上开发运行。,仅对屏幕的原型化 使用购买的软件系统作为初始模型 可行性分析中的原型 子系统原型化,原型化策略,功能原型开发 用户界面原型开发,原型开发技术,原型化工具,面向应用的第四代语言(4GL) Delphi VB PowerBuilde

12、r Visual C+ 等,原型法效果,保证产品有较好的可维护性 改善用户与开发人员的信息交流和思想沟通,给用户修改的机会 减少或消灭下游返工的可能,改进了瀑布模型的弊病 原型系统可作为培训环境,有利于用户培训和开发同步。 开发成本降低,周期缩短。,原型法局限性,需工具支持,否则开发工作量大; 只能缩短用户与软件需求定义间的距离,并不能消灭这个距离; 考虑你的项目是否适合用原型法来开发时,有几个因素是要权衡的。Boehm,Gray,和Seewaldt(1984) 研究了项目是否适合用原型来开发的问题。他们发现用原型法开发项目,可以少花费45%的努力,还可以减少40%的代码。而且,开发出的产品的

13、速度和效率与用传统方法开发出的差不多。,是否要选择原型法?,由于开发一个原型需要花费一定的人力、物力、财力和时间,而且用于确定需求的原型在完成使命后一般就被丢弃。因此,是否使用快速原型法必须考虑软件系统的特点、可用的开发技术和工具等方面。,Andriole提出的一下6个问题,可用来帮助判断是否要选择原型法。,需求已经建立,并且可以预见是相当稳定吗?(肯定回答,不采用原型法) 软件开发人员和用户已经理解了目标软件的应用领域吗? 问题是否可被模型化? 用户能否清楚地确定基本的系统需求? 有任何需求是含糊的吗? 已知的需求中存在矛盾吗? (以上5个问题肯定回答,用原型法),3.3 分析建模,两种分析

14、模型 结构化分析模型 面向对象分析模型,结构化分析模型的组成结构,结构化分析模型的组成结构,模型的核心是DD(Data Dictionary,数据字典),它是系统所涉及的各种数据对象的总和。 从DD出发可构建3种图: E-R图(Entity-Relation Diagram,实体-关系图)用于描述数据对象间的关系,他代表软件的数据模型,在实体-关系图中出现的每个数据对象的属性均可用数据对象说明来描述; DFD图(Data Flow Diagram,数据流图),其主要作用是指明系统中数据是如何流动和变换的,以及描述是数据流进行变换的功能,在DFD图中出现的每个功能的描述则写在(PSPEC)中,它

15、们一起构成功能模型; STD(Status Transfer Diaram,状态-变迁图),用于指明系统在外部时间的作用下将会如何动作,表明了系统的各种状态以及各种状态间的变迁,从而构成为行为模型的基础,关于软件控制方面的附加信息则包含在控制说明(CSPEC)。,面向对象分析模型的组成结构,面向对象分析模型的组成结构,使用实例,处于OOA模型核心的是“使用实例”(Use Case ),简称“用例”。获得软件的需求后,软件分析员既可据此创建一组“场景”(Scenario),每个场景包含一个使用实例。从这些用例出发,进一步抽取和定义OOA模型的3种模型,即 类-对象模型,描述系统所涉及的全部类-对

16、象,每个类-对象都通过属性、操作和写作者来进行进一步描述; 对象-关系模型,描述对象之间的静态关系,同时定义了系统中所有重要的消息路径,它也可以具体化到对象的属性、操作和协作者; 对象-行为模型,描述了系统的动态行为,即对湘杂特定的状态下如何反映外界的事件。,数据流图(DFD) 数据字典(DD) 加工说明 控制流图(CFD)与控制说明( CSPEC ) 状态转换图(STD) E-R图 用例图 对象关系图(Object-Relationship,O-R) 对象行为图,2.分析模型的组成与描述工具,分析模型的组成与描述工具,DFD、DD和PSPEC:是早期结构化分析模型 的基本组成部分; CFD、

17、CSPEC和STD是扩展成分用以适应实时的建模需要; E-R图:适用于描述具有复杂数据结构的软件数据模型; 用例图、对象关系图和对象行为图适用于OOA的分析模型。,数据流图(DFD),任何软件系统(或计算机系统)从根本上说,都是对数据进行加工或变换的工具,指明数据在系统中移动时如何被变换; 描述对数据流进行变换的功能; DFD中每个功能的描述包含在加工规约小说明)中。,数据存储 (文件或数据库),数据流图的四个基本成分,数据流(数据对象),位于被建模系统之外的信息生产者或消费者,称为外部项。 说明数据输入的源点(数据源)或数据输出的汇点(数据池),数据处理(加工),数据流,表示数据和数据流向,

18、三个重要属性: 流向(从加工出发或流向加工) 数据组成 数据流名字,数据流命名方法和注意事项,用名词或名词词组,不要使用意义空洞的名词; 尽量使用现实系统已有名字,当命名出现困难,考虑是否数据流划分不恰当; 不要把控制流作为数据流指明作为外部事件的结果,系统将如何动作。,举例:,数据字典(DD,Data Dictionary) 模型核心(中心库),一个软件系统含有许多数据。数据字典的作用,就是对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。 由字典统一给出的所有数据的定义与属性,已成为结构化分析中分析建模的基础。,数据词典与数据流图配合,能清楚地表达数据处理的要求 词条描述 对

19、于在数据流图中每一个被命名的图形元素,均加以定义,其内容有: 名字,别名或编号,分类,描述,定义,位置,其它,等,数据字典,DD是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解,DFD中的数据流、数据存储表示某个有组织的数据集合,它们要由SA的其他描述工具-需求字典(数据字典)来描述,包括: 词条描述、 数据结构描述、 加工逻辑说明,作用:,数据字典,数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合,数据字典的内容,数据流 数据流分量 数据存储 处理,数据处理:用 IPO图或P

20、DL描述比较方便直观。 数据元素的别名:,定义数据的方法,由数据元素组成数据的方式的三种基本类型 顺序 +: 以确定次序连接两个或多个分量 a+b+c 选择 |, : 从两个或多个可能的元素中选取一个 a | b | c 重复 : 把指定的分量重复零次或多次 a 可选:一个分量是可有可无的(重复零次或一次), (a),例子,定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者 零件编号=8字符8 定货数量=1数字5,数据流词条描述,数据流名: 说明:简要介绍作用即它产生的原因和结果 数据流来源:来自何方 数据流去向:去向何处 数据流组成:数据结构 数据量流通量:数据量,流通

21、量,数据元素词条描述,数据元素名: 类型:数字(离散值,连续值),文字(编码类型) 长度: 取值范围: 相关的数据元素及数据结构:,数据文件词条描述,数据文件名: 简述:存放的是什么数据 输入数据: 输出数据: 数据文件组成:数据结构 存储方式:顺序,直接,关键码 存取频率:,加工逻辑词条描述,加工名: 加工编号:反映该加工的层次 简要描述:加工逻辑及功能简述 输入数据流: 输出数据流: 加工逻辑:简述加工程序,加工顺序,F1:航班信息文件航空公司名称航班号 起点终点日期 起飞时间降落时间 航空公司名称2字母4 航班号3十进制数字3 字母“A”“Z” 十进制数字“0”“9” 起点终点1汉字10

22、 起飞时间降落时间时分 时“00”“23” 分“00”“59” 日期年月日 年2000200120022004 月“01”“12” 日“01”“31”,重复项:起点终点1汉字10 航空公司名称2字母4 航班号3十进制数字3 组合项:日期年月日 起飞时间降落时间时分 选择项:年2000200120022004 原数据项:字母“A”“Z” 十进制数字“0”“9” 时“00”“23” 分“00”“59” 月“01”“12” 日“01”“31”,定义式中使用的符号,操作符 含义描述 定义为 与(顺序结构) . 重复(循环结构) 或(选择结构) , ( . ) 任选 mn 界域 ., 注释符,限制重复次

23、数举例:,3,5 或,5,3, 表示允许重复3-5次, ,3,3 或,3,3, 表示恰好重复 3 次, , , ,1,表示至少出现 1 次,表示允许重复0至任意次,源点及汇(终)点词条描述,简名称:外部实体名 要描述:什么外部实体 有关数据流: 数目:,数据结构的描述,符 号 含 义 举 例 被定义为 与 x = ab .,. 或 .|. 或 x = a , b,x = a | b . 或 m.n 重复 x = a, x = 3a8 (.) 可选 x = (a) “.” 基本数据元素 x = “a” 连结符 x = 19,存折格式,存折户名所号帐号开户日性质(印密)1存取行50 户名2字母24

24、 所号“001”“999” 帐号“00000001”“99999999” 开户日年月日 性质“1”“6” 注:“1”表示普通户,“5”表示工资户等 印密“0” 注:印密在存折上不显示 存取行日期(摘要)支出存入余额操作复核,出现在软件中的数据可分为3种情况:,只含一个数据的数据项(或数据元素); 由多个相关数据向组成的数据流; 数据文件或数据库。,举例说明怎样编写各类数据的字典条目:,数据流 数据文件 数据项,数据流条目说明举例,数据流名:发票 别名: 购书发票 组成:(学号)姓名书号单价数量总价 书费合计 数据量:100次/天 高峰值:开学期间400次/天,数据存储条目说明举例,文件名:各班

25、学生用书表 别名: 组成:系编号专业和班编号 年级书号 组织:按系、专业和班编号从小到大 排列 存取要求:关键字是专业和班编号,数据项条目说明举例,数据项名:系编号 别名: 取值:2数字2 注释:,* 例如: 01,12 *,数据项条目说明举例,数据项名:专业和班编号 别名: 取值: 3数字3 注释:,* 例如: 305 *,数据项条目说明举例,数据项名:年级 别名: 取值及含义: freshmen, 一年级 sophomore,二年级 junjor, 三年级 senior, 四年级 注释:F,M,J,S可分别用1,2,3,4代替,数据项条目说明举例,数据项名:书号 别名: 取值: 字母数字

26、注释:,* 例如:, *,对数据流图的每一个基本加工,必须有一个基本加工逻辑说明 基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则 加工逻辑说明必须描述实现加工的策略而不是实现加工的细节 加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的,基本加工逻辑说明,用于写加工逻辑说明的工具,结构化英语 判定表 判定树,结构化英语,结构化英语的词汇表由 英语命令动词 数据词典中定义的名字 有限的自定义词 逻辑关系词 IF_THEN_ELSE、 CASE_OF 、 WHILE_DO、 REPEAT_UNTIL等组成。,是一种介于自然语言和形式化语言之间的语言 语言的正文

27、用基本控制结构进行分割,加工中的操作用自然语言短语来表示 其基本控制结构有三种: 简单陈述句结构:避免复合语句; 重复结构:while_do 或 repeat_until 结构。 判定结构:if_then_else 或 case_of 结构;,商店业务处理系统中“检查发货单”,if 发货单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else (欠款未超期) 发批准书,发货单 else (发货单金额未超过$500) if 欠款超过60天 then 发批准书,发货单及赊欠报告 else (欠款未超期) 发批准书,发货单,判定表,如果数据流图的加工需要依赖于多

28、个逻辑条件的取值,使用判定表来描述比较合适,以“检查发货单”为例,判定树,判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。,检 查 发 货 单,金额$500,金额$500,欠款60天,不发出批准书,欠款60天,发货单,发出批准书、,欠款60天,发出批准书、,发货单及赊欠报告,欠款60天,发出批准书、,发货单,控制流图(CFD)与控制说明(CSPEC),CFD是为了适应实施系统地分析而提出的,通常与DFD配合使用,目的使CSPEC分析员在用DFD和PSPEC表示数据流和加工的同时,也能够用CFD和CSPEC表示控制流和控制加工。(P45-P47),数据流和控制流举例,动作 警告,数

29、据和控制模型的关系,SafeHome的控制面板,与用户 交互,SAFEHOME,ARMED POWER,01,1,2,3,4,5,6,7,8,9,*,0,#,OFF ARAY STAY,MAX TEST BYPASS,INSTANT CODE CHIME,READY,panic,alarm check fire,away stay instant bypass not ready,SafeHome的第0层,SafeHome的第1层,监控传感器的第2层,SafeHome的第一层,状态转换图(STD),描述软件状态的变迁,它是在CSPEC中常用的一种重要描述工具。(P48),电梯状态图举例,概念模

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

31、别,系,年级,成绩,范式,通常用范式定义消除数据的冗余度(略),E-R图,数据及数据库需求,在数据词典中,强调对数据存储结构的逻辑设计,并用数据结构表达数据项之间的逻辑关系。 但任何一个软件系统都可能有成千上万个数据项,仅仅描述这些数据项是不够的,更重要的是如何把它们以最优的方式组织起来,以满足系统对数据的要求。,E-R方法 ( Entity-Relationship Approach) 和实体模型,在需求分析阶段进行数据库逻辑设计过程中,使用E-R图,可定义一 个实体模型。 实体模型是现实世界的纯表示,它不涉及数据世界的数据结构、存取路径、存取效率等问题。因此,它可以转换成数据库中的数据模型

32、。,E-R图中的基数表示:,在E-R图中,每个方框表示实体型或属性,方框之间的连线表示实体之间,或实体与属性之间的联系。出现在连线上的短竖线可以看成是“1”,而圆圈隐含表示“0”。 例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体型)有学生、教师和课程。,用E-R图描述它们之间的联系,得下图。其中,学生与课程是多对多的联系,而教师与课程的联系是零、一对多。,进一步,要确定属性。例如, 学生具有学号、姓名、性别、年龄、专业(其它略)等属性; 课程具有课程号、课程名、学分、学时数等属性; 教师具有职工号、姓名、年龄、职称等属性。

33、 此外,学生通过学号、分数与课程发生联系。如此可得教学实体模型。,教学实体模型,数据库分析的过程,在需求分析阶段进行数据库分析的流程,为开发一个系统所使用的数据库,在开始分析数据库的需求前,分析员必须了解该系统的总目标和范围。然后建立一个完整并高度细化的信息模型。 此信息模型应包括一个综合的数据词典,定义所有在开发数据库时用到的数据项。 接着数据库分析定义数据库的逻辑特性和物理特性。,用例是帮助分析员和用户确定系统使用情况的UML组件; 一组用例就是从用户的角度出发如何使用系统的描述; 可认为用例是系统的一组使用场景; 每个场景描述了一个事件的序列; 每个序列是由一个人、另一个系统、一个硬件设

34、备或某段时间的流逝所发起; 每个发起事件序列的实体叫做参与者(actor)或行动者,什么是用例(use case)?,用例图,用例建模,用例建模是用于描述一个系统应该做什么的建模技术 用例建模可用于新系统的需求获取,也可用于已有系统的升级,用例模型(use case model),一个用例模型可由若干幅用例图组成 用例描述了用户和系统之间的交互,其重点是 系统为用户做什么 用例模型描述全部的系统功能行为 一幅用例图包含的模型元素有: 用例 参与者(行为者、执行者) 系统,用例,参与者,系统,参与者,通信 关系,用例模型表示法,销售系统用例图,POS系统用例图,参与者与它们所发起执行的过程(简要

35、描述),用例描述实例,用例: 购买商品 参与者:顾客(发起者)、收款员 类型: 主要的 描述: 顾客带着所要购买商品到付款处,收款员 记录商品信息并收款。,用例: 启动/关闭系统 参与者:管理员 类型: 主要的 描述: 管理员接通一台POS机电源,检查时间、 日期正确性,检查完成后,系统处于就绪 状态,以备收款员使用。,对象关系图(Object-Relationship,O-R),对象关系图是由E-R图演变而来的。对象通过制定的关系和其他对象连接,规定连接的基数并建立整体的对象-关系网络。,金融机构类图举例 :,保险机构类图举例 :,销售代表 0 1,定货,name address,顾客,cr

36、editRating( ):String,产品,雇员,1,dataReceived isPrepaid number:String price:Money,协作顾客,contactName creditRating creditLimit,creditCard#,个人顾客,creditRating( ) =“poor”,定货作业线,dispatch( ) close( ),remind( ) billForMonth( ),Quantity:Integer price:Money isSatisfied:Boolean,1,*,*,*,*,1,物品,网上商店对象模型(部分)示例(UML),对象

37、行为图,对象行为模型用于描述对象动态行为,通常由对象状态转换图、事件轨迹图和事件流图等来描述。(P52-P53),电梯状态转换图,在一楼,上升,停滞,下降,回到一楼,回一楼,想要到 达楼层,想要到 达楼层,电梯行程,开始,向上,向上,向下,接电话的的部分事件轨迹图 :,受话者,交换机,远程交换机,受话者,拿起话筒,听通话声,拨号码,铃响信号,铃响,铃响停止信号,拿起话筒,铃响停止,10 ,d,e,a,b,c,b-a1,e-d5,c-b10,路径,文档打印系统的部分事件流图,打印机忙 保存打印文件,队列,计算机,打印机空闲,打印文件,打印机,打印服务器,打印文件,4、软件需求说明书 (SRS),

38、(Software Requirement Specification) SRS的作用: 开发者与用户间事实上的技术合同书 开发者下一步设计和编码的基础 测试验收目标系统的依据,软件需求说明(SRS),引言 信息描述 功能描述 行为描述 质量保证 接口描述 其他描述,1.需求规格说明书,2. 编制需求分析阶段的文档 软件需求说明书 数据要求说明书 初步的用户手册 修改、完善与确定软件开发实施计划,需求说明书由以下几部分组成:,一套分层的数据流图 一本数据字典 一组小说明 补充材料,常用的分析方法,面向数据流的结构化分析方法 (SA) 面向数据结构的Jackson方法 (JSD) 面向对象的分析

39、方法 (OOA) 等,3.5 结构化分析方法(Structured Analisys, SA),结构化分析就是使用DFD,DD,结构化语言,判定表和判定树等工具,来建立一种新的,称为结构化说明书的目标文档。,结构化分析的基本步骤:,由顶向下对系统进行功能分解,画出分层DF图; 由后向前定义系统的数据和加工,编制DD,PSPEC; 最终写出SRS.,结构化分析方法使用工具:,数据流图 数据词典 结构化英语 判定表与判定树,描述银行取款过程的数据流图,画分层数据流图,软件工程技术中,控制复杂性的两个基本手段是“分解”和“抽象”。,分解?,为了将复杂性降低到人可以掌握的程度,可以把大问题分割成若干个

40、问题,然后分别解决。,抽象?,分解也可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容。,DFD可以用来表示一个系统或软件在任何层次 上的抽象。 较大型软件系统DFD分成多层(子图、 父图概念),可以表示数据流和功能的进一步的细节。,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。,分层的数据流图,在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据 底层

41、流图是指其加工不需再做分解的数据流图,它处在最底层 中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,结构化分析方法步骤示例 商店业务处理系统,这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能 数据流图绘制步骤 首先确定系统的输入和输出 根据商店业务,画出顶层数据流图,以反映最主要业务处理流程,经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。 然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图,第一层数据流图,加细每一个加工框 销售细化,采购

42、细化,需求分析示例教材购销管理系统(1),问题描述:学校教材科根据业务的需要,建立一个学校教材购销管理系统,提高教材采购、销售和信息管理的效率。,学生,张秘书,购书申请,王会计,李出纳,赵保管,学生,购书证明,购书申请,购书申请,书,学生,审 查有效性,购书单,开发票,开领书单,发书,学生,有 效购书单,发票,领书单,书,学生,审查并开发票,购书单,开领书单,发书,学生,发票,领书单,书,2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型,1)通过对现实环境的调查研究,获得当前系统的具体模型,3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。,需求分析示例教材购销管理系统(2),

43、学生,审查并开发票,购书单,开领书单,学生,发票,领书单,无效书单,4)对目标系统进行补充和完善,并写出完整的需求说明。,学生,1 审查并开发票,购书单,2 开领书单,学生,发票,领书单,无效书单,各班学生用书表,教材存量表,5)对需求说明进行复审,直到确认文档齐全,并且符合用户的全部需求为止,需求分析示例教材购销管理系统(3),需求分析示例教材购销管理系统(4),需求分析示例教材购销管理系统(5),2.3 修改教材库存和待购量,2.1 按 书 号 汇总缺书,F2: 缺书登记表,销售 子系统,书库 保管员,F1: 教材存量表,进书通知,3. 第三层DFD图采购子系统,2.2 按出版社 统计缺书

44、,F5: 待购教材表,F6: 教材一览表,进书通知,需求分析示例教材购销管理系统(6),数据字典(Data Directory-DD) 领书单 = 学院+专业+班级+学号+姓名+书号+书名+数量+日期 有效购书单 = 领书单 发票= 学号+姓名+书号+书名+单价+数量+总价+书费合计 教材存量表 = 书号+单价+数量 暂缺书单 = 学号+姓名+ 书号+数量 补售书单 = 学号+姓名+ 书号+数量,人事工资管理系统的顶层DFD(概图)范例,职工基本 信息管理 子系统,1.0,2.0,人事工资管理系统0层DFD范例,职工出缺勤信息,职工工资管理子系统,3.0,职工出缺 勤管理 子系统,职工基本信息

45、,职工工资信息,人 事 部 门,会 计 部 门,职 工,职工出缺勤报表,职工出缺勤信息,职工工资信息,职工工资报表,职工基本信息,职工工资单,建立职工 出缺勤信息,3.1,人事工资管理系统1层DFD:加工3.0的分解图,职工出缺勤信息,3.2,制作职工出缺勤信息 统计表,职工基本信息,职工 出缺勤报表,职工出缺勤信息,实例 考务处理系统功能,(1)对考生送来的报名单进行检查; (2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站; (3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者; (4)制作考生通知单(含成绩及合格/不合格标志)送给考生

46、; (5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。,顶层数据流图,二层数据流图,三层数据流图 (a),三层数据流图 (b),检查和修改数据流图的原则,数据流图上所有图形符号只限于前述四种基本图形元素; 数据流图的主图必须包括前述四种基本元素,缺一不可; 数据流图的主图上的数据流必须封闭在外部实体之间; 每个加工至少有一个输入数据流和一个输出数据流;,在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系; 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡; 可以在数据流图中加入物质流,帮助用户理解数

47、据流图;,图上每个元素都必须有名字; 数据流图中不可夹带控制流; 初画时可以忽略琐碎的细节,以集中精力于主要数据流。,画分层DFD的指导原则,(1) 父图与子图的平衡 模型细化时必须保持数据流的连 续性,即每个细化部分的输入和输出 必须保持不变(父图和子图输入数据 和输出数据应一致)。,父图与子图平衡的特例,(2) 区分局部文件和局部外部项,.1,.2,.3,1,父图,子图,画分层DFD的指导原则,(3) 遵守加工的编号原则 子图的编号为父图中相应加工的编号; 子图中加工的编号由子图号、小数点、局部号连接而成。,画分层DFD的指导原则,画分层DFD的指导原则,(4) 分解的深度与层次 按功能情况定,一般设深度为3-5。 原则: 分解应自然,概念上合理、清晰

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

当前位置:首页 > 其他


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