软件工程软件需要分析lyh_第1页
软件工程软件需要分析lyh_第2页
软件工程软件需要分析lyh_第3页
软件工程软件需要分析lyh_第4页
软件工程软件需要分析lyh_第5页
已阅读5页,还剩231页未读 继续免费阅读

下载本文档

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

文档简介

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

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

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

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

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

6、常用方法19举例:某出版社系统调查表编号提出问题1您在哪个部门工作?2出版业务流程是什么?3您每日都处理那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效率的问题有哪些?6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?20举例:某出版社系统调查表编号提出问题7您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解决的?11出版社计算机管理信息系统需要解决什么问题?21软件需求分析的通信途径22需求分析流程234. 需求获取的内容(1)功

7、能性需求: 定义了系统做什么(描述系统必须支持的功能和过程) (2)非功能性需求(技术需求): 定义了系统工作时的特性(描述操作环境和性能目标)用户需求分类24两类需求包括的内容(1) 功能(2) 性能(3) 环境(4) 界面(5) 用户或人的因素(6) 文档 (7) 数据(8) 资源(9) 安全保密(10)软件成本消耗与开发进度(11)质量保证4. 需求获取的内容25(1) 功能需求 系统做什么?系统何时做什么?系统何时及如何修改或升级?(2) 性能需求 软件开发的技术性指标例如: 存储容量限制 执行速度、相应时间 吞吐量(3) 环境需求 硬件设备:机型、外设、接口、地 点、分布、温度、湿度

8、、磁场干扰等软件: 操作系统 网络 数据库(4) 界面需求 有来自其它系统的输入吗?到自其它系统的输出吗?对数据格式有规定吗?对数据存储介质有规定吗?需求包括的内容26(5) 用户或人的因素 用户类型?各种用户熟练程度?需受何种训练?用户理解、使用系统的难度?用户错误操作系统的可能性?(6) 文档需求 需哪些文档?文档针对哪些读者?(7) 数据需求 输入、输出数据的格式?接收、发送数据的频率?数据的准确性和精度?数据流量?数据需保持的时间?(8) 资源需求 软件运行时所需的数据、软件、内存空间等资源。软件开发、维护所需的人力、支撑软件、开发设备等。需求包括的内容27(9) 安全保密要求 需对访

9、问系统或系统信息加以控制吗?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?系统备份要求? (10) 软件成本消耗与开发进度需求开发有规定的时间表吗?软硬件投资有无限制?(11) 质量保证系统的可靠性要求?系统必须监测和隔离错误吗?规定系统平均出错时间?出错后,重启系统允许的时间?系统变化如何反映到设计中?维护是否包括对系统的改进?系统的可移植性?需求包括的内容28 原型(原型指“快速软件原型” )是一个可实地运行的模型,有正式产品的主要特征,但不是全部特征。 软件原型是软件系统的最初版本,以最少的费用,最短的时间开发出的、以反映最后软件的主要特征的系统。5. 快速原型法在需求分

10、析中的应用29 原型开发指的是建立一个系统的早期版本的演习(practice),它不必反映最终产品的所有性能,而只要反映感兴趣的一些方面。原型的定义原型的作用 问题:开发初期很难确定用户需求规格解决:用户与开发者之间的鸿沟以原型(软件产品的样品)为共同语言,实现用户与开发者双向沟通。30原型的特性 是一个可实际工作的系统; 没有固定的生存期,结局可能是用后立即被抛弃,或可能成为最终系统; 可服务于不同的目的, 从需求分析到最终产品都可做原型; 建立必须快,便宜; 是包含修改、评价在内的完整重复过程 需求分析和定义规格说明 作为软件设计的一种工具 作为一种解决不确定性的工具 作为一种实验工具 系

11、统开发同时,作为同步培训工具 作为开发方法,利用原型演化为最终系统 作为软件维护的辅助工具原型化开发的应用领域31原型开发的步骤(1) 利用各种分析技术和方法,生成一个建华的需求规格说明。(2) 对需求规格说明进行必要的检查和修改后,确定原型的软件结构、用户界面和数据结构等。(3) 在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试、改进;(4)将原型提交给用户评估并征求用户的修改意见;(5)重复上述过程,直到原型得到用户的认可。原型化的开发环境 (1)试验性原型 原型用来确认对需求的理解是否正确,应在与实际产品环境相近的环境上开发原型。 (2) 试用性原型 原型用来帮助用户在试用中

12、使自己的模糊的需求明确起来确,可在与实际产品环境完全 无关的环境上开发运行。32仅对屏幕的原型化使用购买的软件系统作为初始模型可行性分析中的原型子系统原型化 原型化策略功能原型开发用户界面原型开发 原型开发技术 原型化工具面向应用的第四代语言(4GL) Delphi VBPowerBuilder Visual C+ 等33原型法效果保证产品有较好的可维护性改善用户与开发人员的信息交流和思想沟通,给用户修改的机会减少或消灭下游返工的可能,改进了瀑布模型的弊病原型系统可作为培训环境,有利于用户培训和开发同步。开发成本降低,周期缩短。34原型法局限性需工具支持,否则开发工作量大;只能缩短用户与软件需

13、求定义间的距离,并不能消灭这个距离;考虑你的项目是否适合用原型法来开发时,有几个因素是要权衡的。Boehm,Gray,和Seewaldt(1984) 研究了项目是否适合用原型来开发的问题。他们发现用原型法开发项目,可以少花费45%的努力,还可以减少40%的代码。而且,开发出的产品的速度和效率与用传统方法开发出的差不多。35是否要选择原型法? 由于开发一个原型需要花费一定的人力、物力、财力和时间,而且用于确定需求的原型在完成使命后一般就被丢弃。因此,是否使用快速原型法必须考虑软件系统的特点、可用的开发技术和工具等方面。 Andriole提出的一下6个问题,可用来帮助判断是否要选择原型法。需求已经

14、建立,并且可以预见是相当稳定吗?(肯定回答,不采用原型法)软件开发人员和用户已经理解了目标软件的应用领域吗?问题是否可被模型化?用户能否清楚地确定基本的系统需求?有任何需求是含糊的吗?已知的需求中存在矛盾吗?(以上5个问题肯定回答,用原型法)363.3 分析建模 两种分析模型结构化分析模型面向对象分析模型37计算机世界现实世界结构化开发方法结构化分析结构化设计结构化编程OOAOODOOP面向对象开发方法38结构化分析模型的组成结构数据流图 (DFD)E-R图状态变迁图(STD图)加工说明控制说明数据对象说 明数据字典(DD)39结构化分析模型的组成结构模型的核心是DD(Data Diction

15、ary,数据字典),它是系统所涉及的各种数据对象的总和。 从DD出发可构建3种图:E-R图(Entity-Relation Diagram,实体-关系图)用于描述数据对象间的关系,他代表软件的数据模型,在实体-关系图中出现的每个数据对象的属性均可用数据对象说明来描述;DFD图(Data Flow Diagram,数据流图),其主要作用是指明系统中数据是如何流动和变换的,以及描述是数据流进行变换的功能,在DFD图中出现的每个功能的描述则写在(PSPEC)中,它们一起构成功能模型;STD(Status Transfer Diaram,状态-变迁图),用于指明系统在外部时间的作用下将会如何动作,表明

16、了系统的各种状态以及各种状态间的变迁,从而构成为行为模型的基础,关于软件控制方面的附加信息则包含在控制说明(CSPEC)。40面向对象分析模型的组成结构对象-关系模型类/对象 模型对象-行为模型使用实例(Use Case)操作、属性、协作者41面向对象分析模型的组成结构使用实例,处于OOA模型核心的是“使用实例”(Use Case ),简称“用例”。获得软件的需求后,软件分析员既可据此创建一组“场景”(Scenario),每个场景包含一个使用实例。从这些用例出发,进一步抽取和定义OOA模型的3种模型,即类-对象模型,描述系统所涉及的全部类-对象,每个类-对象都通过属性、操作和写作者来进行进一步

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

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

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

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

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

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

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

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

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

26、键字是专业和班编号66数据项条目说明举例数据项名:系编号别名:取值:2数字2注释:* 例如: 01,12 *67数据项条目说明举例数据项名:专业和班编号别名:取值: 3数字3注释:* 例如: 305 *68数据项条目说明举例数据项名:年级别名:取值及含义: freshmen, 一年级 sophomore,二年级 junjor, 三年级 senior, 四年级注释:F,M,J,S可分别用1,2,3,4代替69数据项条目说明举例数据项名:书号别名:取值: 字母数字注释:* 例如:, *70对数据流图的每一个基本加工,必须有一个基本加工逻辑说明基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输

27、出数据流的加工规则加工逻辑说明必须描述实现加工的策略而不是实现加工的细节加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的基本加工逻辑说明71用于写加工逻辑说明的工具结构化英语 判定表 判定树72结构化英语 结构化英语的词汇表由 英语命令动词 数据词典中定义的名字 有限的自定义词 逻辑关系词 IF_THEN_ELSE、 CASE_OF 、 WHILE_DO、 REPEAT_UNTIL等组成。73是一种介于自然语言和形式化语言之间的语言语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示其基本控制结构有三种:简单陈述句结构:避免复合语句;重复结构:while_do 或 r

28、epeat_until 结构。判定结构:if_then_else 或 case_of 结构;74商店业务处理系统中“检查发货单”if 发货单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else (欠款未超期) 发批准书,发货单 else (发货单金额未超过$500) if 欠款超过60天 then 发批准书,发货单及赊欠报告 else (欠款未超期) 发批准书,发货单 75判定表如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适76以“检查发货单”为例77判定树判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。检查发货单

29、金额$500金额$500 欠款60天不发出批准书 欠款60天发货单发出批准书、 欠款60天发出批准书、发货单及赊欠报告 欠款60天发出批准书、发货单78控制流图(CFD)与控制说明(CSPEC) CFD是为了适应实施系统地分析而提出的,通常与DFD配合使用,目的使CSPEC分析员在用DFD和PSPEC表示数据流和加工的同时,也能够用CFD和CSPEC表示控制流和控制加工。(P45-P47)79数据流和控制流举例动作警告监控固件和操作接口每个固件状态机器人初始化控制操作命令部件状态缓冲器位置命令开始/停止处理机器人命令机器人命令文件操作设置处理活动记录机器人动作位串80数据和控制模型的关系 DF

30、D加工规约加工模型DFD控制规约控制模型数据输出数据条件数据输入控制输入控制输出加工激活者81SafeHome的控制面板与用户交互SAFEHOMEARMED POWER01123456789*0#OFF ARAY STAYMAX TEST BYPASSINSTANT CODE CHIMEREADYpanicalarmcheckfireawaystayinstantbypassnot ready82SafeHome的第0层SafeHomede软件系统用户命令和数据显示信息控制面板传感器状态警告类型电话号码拨音传感器电话线警铃控制面板显示83SafeHome的第1层控制面板与用户交互控制面板显示密

31、码电话号码拨音传感器状态显示信息配置请求用户命令和数据配置系统警铃电话线传感器配置信息显示信息和状态监控传感器激活不激活系统传感器信息密码处理警告类型检验id信息开始停止状态信息84监控传感器的第2层电话号码拨音传感器状态配置数据显示格式配置信息产生警告信息拨号评估设置传感器信息读传感器警告类型传感器id类型传感器id类型定位85SafeHome的第一层控制面板与用户交互控制面板显示显示活动状态(完成、在处理中)配置系统警铃电话线传感器配置信息显示信息和状态监控传感器激活不激活系统警告信号密码处理传感器事件警告状态超时闪烁标志开关切换86状态转换图(STD) 描述软件状态的变迁,它是在CSPE

32、C中常用的一种重要描述工具。(P48)87 电梯状态图举例在一楼上升停滞下降回到一楼回一楼想要到达楼层想要到达楼层电梯行程开始向上向上向下88概念模型和规范化 用户的数据要求-需要哪些数据,数据之间有哪些联系,数据本身有哪些性质,数据的结构 等)。 用户的处理要求-对数据进行哪些处理,每个处理的逻辑功能。 概念性模型(信息模型)-一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。表示概念性数据模型的最常用方法是实体-联系方法,采用用 ER图的方式,这种表示又称为ER模型。 ER模型 实体: 客观世界中存在的且可区分的事物。 联系: 客观事物之间的联系(三类-1:1,1:N,M:N)

33、属性: 实体或联系所具有的性质。教师姓名性别职称职务教师号教1课程N课程号课名学时学分学M学生N学号姓名性别系年级成绩 范式通常用范式定义消除数据的冗余度(略)E-R图89数据及数据库需求在数据词典中,强调对数据存储结构的逻辑设计,并用数据结构表达数据项之间的逻辑关系。但任何一个软件系统都可能有成千上万个数据项,仅仅描述这些数据项是不够的,更重要的是如何把它们以最优的方式组织起来,以满足系统对数据的要求。90E-R方法 ( Entity-Relationship Approach) 和实体模型在需求分析阶段进行数据库逻辑设计过程中,使用E-R图,可定义一 个实体模型。实体模型是现实世界的纯表示

34、,它不涉及数据世界的数据结构、存取路径、存取效率等问题。因此,它可以转换成数据库中的数据模型。91E-R图中的基数表示:92在E-R图中,每个方框表示实体型或属性,方框之间的连线表示实体之间,或实体与属性之间的联系。出现在连线上的短竖线可以看成是“1”,而圆圈隐含表示“0”。例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体型)有学生、教师和课程。93用E-R图描述它们之间的联系,得下图。其中,学生与课程是多对多的联系,而教师与课程的联系是零、一对多。94进一步,要确定属性。例如,学生具有学号、姓名、性别、年龄、专业(其它略)

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

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

37、销售系统用例图购买商品登录退货收款员POS顾客购买商品退货商店顾客以商店作为系统边界以POS作为系统边界103POS系统用例图购买商品登录退货收款员POS顾客启动/关闭管理用户其他管理员系统管理员104参与者与它们所发起执行的过程(简要描述)现金结算登录收款员退货购买商品顾客关闭系统启动系统管理员增加新用户系统管理员105用例描述实例用例: 购买商品参与者:顾客(发起者)、收款员类型: 主要的描述: 顾客带着所要购买商品到付款处,收款员 记录商品信息并收款。用例: 启动/关闭系统参与者:管理员类型: 主要的描述: 管理员接通一台POS机电源,检查时间、 日期正确性,检查完成后,系统处于就绪 状

38、态,以备收款员使用。106对象关系图(Object-Relationship,O-R)对象关系图是由E-R图演变而来的。对象通过制定的关系和其他对象连接,规定连接的基数并建立整体的对象-关系网络。107 金融机构类图举例 :所有人财产人员金融机构信贷银行银行抵押本金利率到期*有次序的*借方债权人房屋108保险机构类图举例 : 109销售代表 0 . 1定货nameaddress顾客creditRating( ):String产品雇员1dataReceivedisPrepaidnumber:Stringprice:Money协作顾客contactNamecreditRatingcreditLim

39、itcreditCard#个人顾客creditRating( )=“poor”定货作业线dispatch( )close( )remind( )billForMonth( )Quantity:Integerprice:MoneyisSatisfied:Boolean1*1物品网上商店对象模型(部分)示例(UML)110对象行为图 对象行为模型用于描述对象动态行为,通常由对象状态转换图、事件轨迹图和事件流图等来描述。(P52-P53)111 电梯状态转换图在一楼上升停滞下降回到一楼回一楼想要到达楼层想要到达楼层电梯行程开始向上向上向下112 接电话的的部分事件轨迹图 :受话者交换机远程交换机受话

40、者拿起话筒听通话声拨号码.铃响信号铃响铃响停止信号拿起话筒铃响停止10 deabcb-a1e-d5c-b10路径113 文档打印系统的部分事件流图打印机忙保存打印文件队列计算机打印机空闲打印文件打印机打印服务器打印文件1144、软件需求说明书 (SRS) (Software Requirement Specification) SRS的作用:开发者与用户间事实上的技术合同书开发者下一步设计和编码的基础测试验收目标系统的依据115软件需求说明(SRS) 引言 信息描述 功能描述 行为描述 质量保证 接口描述 其他描述1.需求规格说明书1162. 编制需求分析阶段的文档软件需求说明书数据要求说明书

41、初步的用户手册修改、完善与确定软件开发实施计划117需求说明书由以下几部分组成:一套分层的数据流图一本数据字典一组小说明补充材料118常用的分析方法面向数据流的结构化分析方法 (SA)面向数据结构的Jackson方法 (JSD)面向对象的分析方法 (OOA) 等1193.5 结构化分析方法(Structured Analisys, SA) 结构化分析就是使用DFD,DD,结构化语言,判定表和判定树等工具,来建立一种新的,称为结构化说明书的目标文档。120结构化分析的基本步骤:由顶向下对系统进行功能分解,画出分层DF图;由后向前定义系统的数据和加工,编制DD,PSPEC;最终写出SRS.121结

42、构化分析方法使用工具: 数据流图 数据词典 结构化英语 判定表与判定树122描述银行取款过程的数据流图123画分层数据流图软件工程技术中,控制复杂性的两个基本手段是“分解”和“抽象”。 分解? 为了将复杂性降低到人可以掌握的程度,可以把大问题分割成若干个问题,然后分别解决。抽象?分解也可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容。124 DFD可以用来表示一个系统或软件在任何层次上的抽象。 较大型软件系统DFD分成多层(子图、父图概念),可以表示数据流和功能的进一步的细节。数据流图的层次结构 为了表达数据处理过程的数据加工情况,需要采用层次结

43、构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。125分层的数据流图126在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。127结构化分析方法步骤示例 商店业务处理系统128这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能数据流图绘制步骤 首先确定系统的输入和输出 根据商店业务,画出顶层数据流图,以反映最主要业务处理流程1

44、29 经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。 然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图130第一层数据流图131加细每一个加工框 销售细化132采购细化133需求分析示例教材购销管理系统(1) 问题描述:学校教材科根据业务的需要,建立一个学校教材购销管理系统,提高教材采购、销售和信息管理的效率。学生张秘书购书申请王会计李出纳赵保管学生购书证明购书申请购书申请书学生审 查有效性购书单开发票开领书单发书学生有 效购书单发票领书单书学生审查并开发票购书单开领书单发书学生发

45、票领书单书2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型1)通过对现实环境的调查研究,获得当前系统的具体模型3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。134需求分析示例教材购销管理系统(2)学生审查并开发票购书单开领书单学生发票领书单无效书单4)对目标系统进行补充和完善,并写出完整的需求说明。学生1 审查并开发票购书单2 开领书单学生发票领书单无效书单各班学生用书表教材存量表5)对需求说明进行复审,直到确认文档齐全,并且符合用户的全部需求为止135需求分析示例教材购销管理系统(3)学生教材购销管理系统书 库保管员1. 教材购销管理系统的顶层DFD学生书 库保管员2.

46、第二层DFD图教材购销系统购书单领书单缺书单进书通知购书单领书单1销 售2采购进书通知F2: 缺书登记表F1: 教材存量表缺书单进书通知136需求分析示例教材购销管理系统(4)1.1 审 查有效性1.2 开发票有效 购书单1.3 领书并 开领书单发票1.4 登记缺书1.5 补售教材F2: 缺书登记表学生学生无效书单领书单领书单F3: 各班学生用书表F4: 售书登记表 补售书单 暂缺书单采购3. 第三层DFD图销售子系统F1: 教材存量表137需求分析示例教材购销管理系统(5)2.3 修改教材库存和待购量2.1 按 书 号 汇总缺书F2: 缺书登记表销售子系统书库保管员F1: 教材存量表进书通知

47、3. 第三层DFD图采购子系统2.2 按出版社 统计缺书F5: 待购教材表F6: 教材一览表进书通知138需求分析示例教材购销管理系统(6)数据字典(Data Directory-DD)领书单 = 学院+专业+班级+学号+姓名+书号+书名+数量+日期有效购书单 = 领书单发票= 学号+姓名+书号+书名+单价+数量+总价+书费合计教材存量表 = 书号+单价+数量暂缺书单 = 学号+姓名+ 书号+数量补售书单 = 学号+姓名+ 书号+数量139人事工资管理系统的顶层DFD(概图)范例人事部门人事工资管理系统会计部门职工出缺勤报表职工出缺勤信息职工工资信息职工工资报表职工职工基本信息职工工资单140

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

49、定的合格标准审定合格者;(4)制作考生通知单(含成绩及合格/不合格标志)送给考生;(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。143顶层数据流图考生考务处理系统考试中心阅卷站不合格报名单报名单准考证考生通知单成绩清单合格标准错误成绩清单考生名单统计分析表144二层数据流图登记报名单报名单准考证1统计成绩2不合格报名单考生通知单成统计分析表考生名册绩清单合格标准考生名单成绩清单错误145三层数据流图 (a)检查报名单报名单准考证1.1编准考证号1.2不合格报名单考生名册考生名单合格报名单登记考生1.3146三层数据流图 (b)检查成绩清单2.1审定合格者2.2考生名册正确成绩清单

50、制作通知单2.3分析统计成绩2.4分析试题难度2.5试题得分清单考生通知单难度分析表合格标准分类统计表成绩清单错误成绩清单经审定的成绩清单147检查和修改数据流图的原则数据流图上所有图形符号只限于前述四种基本图形元素;数据流图的主图必须包括前述四种基本元素,缺一不可;数据流图的主图上的数据流必须封闭在外部实体之间;每个加工至少有一个输入数据流和一个输出数据流;148在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系;规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡;可以在数据流图中加入物质流,帮助用户理解数据

51、流图;149图上每个元素都必须有名字;数据流图中不可夹带控制流;初画时可以忽略琐碎的细节,以集中精力于主要数据流。150画分层DFD的指导原则(1) 父图与子图的平衡 模型细化时必须保持数据流的连续性,即每个细化部分的输入和输出必须保持不变(父图和子图输入数据和输出数据应一致)。151父图与子图平衡的特例领书单1.3发票1.3.31.3.2教材1.3.1学生领书单父图子图发票学生教材152(2) 区分局部文件和局部外部项.1.2.31父图子图画分层DFD的指导原则153 (3) 遵守加工的编号原则 子图的编号为父图中相应加工的编号; 子图中加工的编号由子图号、小数点、局部号连接而成。画分层DF

52、D的指导原则154画分层DFD的指导原则(4) 分解的深度与层次 按功能情况定,一般设深度为3-5。原则: 分解应自然,概念上合理、清晰; 只要不影响数据流图的“易理解性”,可以适当地多分解成几部分,这样分层土的层数就可少些; 一般说来,在上层可以分解的快些,而在下层则应分解的慢些,因为上层是一些综合性的描述,“易理解性”相对地说不太重要。155实例:运动会管理系统过程如下: 首先决定日期、地点规模设立那些比赛项目、报名期限等,并作出一些规定,如每人最多可参加多少项目,每个项目每队最多可有多少人参加等。在报名结束后,要给每个运动员编号,统计每个项目有多少运动员以及有哪些运动员参加,并根据每个项

53、目的参加人数等具体情况派出比赛日程表。在运动会进行过程中要按各项比赛的成绩及时公布单项名次并累计团体总分。比赛全部结束后要公布团体名次。1563.6 面向对象分析方法 思考题软件开发中为什么要使用面向对象 方法?面向对象分析方法与结构化分析方 法有哪些相似之处?有何区别?面向对象方法是对过去的一个完全 突破,还是“换汤不换药”?157开发方法的组合分析设计编程结构化结构化面向对象结构化面向对象面向对象面向对象结构化第三代或第四代语言面向对象面向对象第三代或第四代语言面向对象面向对象传统编程与面向对象的混合面向对象面向对象面向对象158传统方法数据与过程是分离的过程1输入输出过程2过程3数据实体

54、属于该对象的数据对象处理数据的方法消息消息对象把数据和处理数据的方法封装成一个单元159传统方法和面向对象方法的比较传统方法系统是过程的集合过程与数据实体交互过程接受输入并产生输出面向对象方法系统是交互对象的集合对象与人或其它对象交互对象发送与响应消息160 传统系统分析方法:面向功能 ,把系统看成一组功能; OOA方法:把问题当作一组相互作用的实体,并确定实体 间关系。传统方法和面向对象方法的比较161结构化分析(传统建模方法)方法 分析模型:数据流图(DFD) 数据字典(DD) 小说明 E-R图(ERD) 状态变迁图(STD) 面向对象分析方法 分析模型:用例模型(用况模型) 对象模型(概

55、念模型) 功能模型(行为模型)分析建模方法与分析模型162分析模型的主要目标描述用户需要建立创建软件设计的基础定义软件完成后可被确认的一组需求163OO方法的开发过程 OO方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开发出来的“部件”都是类,在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。164用例建模用例建模是用于描述一个系统应该做什么的建模技术;用例建模可用于新系统的需求获取,也可用于已有系统的升级。165发现角色(P61)通过回答下列问题,可以帮助建模者发现角色使用系统主要功能的人是谁?需要借助于系统完成日常工作的人是谁?谁来维护、管理系统,

56、保证系统正常工作?系统控制的硬件设备有哪些?系统需要与哪些其它系统交互?对系统产生的结果感兴趣的人或事是哪些?166发现用例(P61)询问以下问题角色需要从系统中获得哪种功能?角色需要做什么?角色需要读取、产生、删除、修改或存储系统中的信息吗?系统中发生的事件需要通知角色吗?如果用系统的新功能处理角色的日常工作是简化了还是提高了工作效率?167用例模型(use case model)一个用例模型可由若干幅用例图组成用例描述了用户和系统之间的交互,其重点是系 统为用户做什么用例模型描述全部的系统功能行为一幅用例图包含的模型元素有:用例参与者(行为者、执行者)系统168用例参与者系统参与者通信关系

57、用例模型169用例图举例签定一份保险单客户保险销售人员销售统计客户统计1702.领域分析 目的:发现或创建一些可广泛应用的类,使它们可以被复用。 具体地说,面向对象领域分析就是以公共对象、类、子集合和框架等形式,在特定的应用领域中表示、分析和规约公共的可复用的能力。举例:(P63)171领域分析的输入输出 领域知识源领域分析领域分析-创建可以广泛地用于整个应用领域范畴的可复用类(构件)航空银行电子设备多媒体视频领域分析 领域 分析 模型技术文件已有应用客户评定专家建议需求提取类复用标准模型语言领域分析活动:定义被调查的领域,相关的设计、规约、代码、政策、标准、规程等项对领域中提取的项,划分种类

58、并提取模式,命名,并且分层。收集领域中应用的代表性样本分析每个样本中的应用,标识对象、说明理由、定义适应性、估算复用率等开发对象分析模型,作为设计和构造类的基础1723.类/对象建模系统的用例一旦确定,即可开始标识类对象。考察系统的使用实例,首先将这些实例中的名词或名词短语汇总起来,得到候选对象;然后考察这些对象的特征,进而确定哪些对象应该包含在分析模型中。举例:(P64)173对象模型是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。174确定需求分析模型中的类/对象对象(object)现实世界中某个具体的物理实体或概念在

59、计算机逻辑中的映射和体现。对象具有的含义: 在现实世界中: 是客观世界中的一个实体 在面向对象程序中: 表达成计算机可理解、可操纵的对象 在计算机世界中:是一个可标识的存储区域175识别概念候选概念类型 举例物理的或实在的对象 POS机飞机规格说明、设计或事物描述 产品规格说明 航班描述地点 商店 机场事务销售、支付、在线销售项预定人的角色出纳员飞行员、乘客系统外部的其他系统或设备信用卡授权系统空中交通控制系统组织销售部176建立概念模型(UML中的类图)确定并定义类建立关联添加属性描述系统行为:系统顺序图等 177类及对象间常见的联系 分类关系 (归纳关系、一般与特殊的关系) 组成关系 (组

60、合关系、整体/部分的关系) 对象属性之间的静态的联系 对象行为的动态联系 定义类的结构与层次178分类关系(一般与特殊的关系)示例学生本科生研究生179 分类结构(一般/特殊结构) 分类是对象抽象的基础 分类结构表现的是事物的一般与特殊的关系,即“is-a”关系。 面向对象术语中常把一般与特殊的关系称为泛化(Generalization)与特化(Specialization)联系180 存户一般/特殊结构举例 一般类(父类、基类、超类) 特殊类(子类、具体类)继承一个特殊类中的所有对象可继承一般类中的属性、服务、关系账号姓名余额存款取款 支票存户 储蓄存户利息率181组成关系(整体与部分的关系

温馨提示

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

最新文档

评论

0/150

提交评论