1、LOGO第三章 软件需求分析为什么要进行需求分析?为什么要进行需求分析?目的:对开发者进行指导目的:对开发者进行指导 开发人员对用户的要求理解开发人员对用户的要求理解 用户理解开发人员用户理解开发人员 测试部门有理可依测试部门有理可依原因:信息收集不全原因:信息收集不全 功能不明确功能不明确 需求文档不完善需求文档不完善 开发者急于求成开发者急于求成 3.1 需求分析的任务和步骤 3.2 需求获取的常用方法 3.3 分析建模 3.4 软件需求说明 3.5 结构化分析方法 3.6 面向对象分析方法 深刻理解需求分析阶段的概念和任务;深刻理解需求分析阶段的概念和任务;熟练掌握数据流图;熟练掌握数据
2、流图;了解面向过程分析方法和面向对象的分析方法。了解面向过程分析方法和面向对象的分析方法。需求分析的任务需求分析的任务 对象系统模型模型系统系统逻辑模型和物理模型逻辑模型和物理模型 模型是对对象系统的形式化的特征抽象,概括性或近似地表示;模型是对对象系统的形式化的特征抽象,概括性或近似地表示;形式形式化语言、数学语言、图形等构造模型的过程是一个抽象、分析的过程。化语言、数学语言、图形等构造模型的过程是一个抽象、分析的过程。逻辑模型和物理模型逻辑模型和物理模型逻辑模型逻辑模型 (本质模型、概念模型本质模型、概念模型)物理模型物理模型(实施模型、技术模型实施模型、技术模型)描述重要的业务功能,无论
3、系统是描述重要的业务功能,无论系统是如何实施的如何实施的2.2.需求分析的步骤需求分析的步骤学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书107107刘刘教务科教务科206206王王会计室会计室206206李李出纳员出纳员303303赵赵教材教材(1)(1)通过对现实环境的调查,获当前系统的具体模型通过对现实环境的调查,获当前系统的具体模型(物理模型物理模型)学学生生 (2)(2)去掉具体模型中的非本质因素,去掉具体模型中的非本质因素,抽象抽象出当前系统的逻辑模出当前系统的逻辑模型型 学学生生学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书审查审查有效性有效性开发票开
4、发票开领开领书单书单发书发书 (3)(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模分析当前系统与目标系统的差别,建立目标系统的逻辑模型。型。学学生生学学生生购书单购书单发票发票领书单领书单审查并审查并开发票开发票开领开领书单书单无效书单无效书单 (4)(4)对目标系统进行完善和补充,并写出完整的需求说明;对目标系统进行完善和补充,并写出完整的需求说明;(5)(5)对需求说明进行复审,直到确认文档齐全,并且符合用对需求说明进行复审,直到确认文档齐全,并且符合用户的全部需求为止。户的全部需求为止。清楚地理解所要解决的问题清楚地理解所要解决的问题 完整地获取用户需求完整地获取用户需求 问题
5、的复杂性和对问题空间理解的不完问题的复杂性和对问题空间理解的不完备性与不一致性备性与不一致性 交流障碍交流障碍 需求易变性需求易变性 建立联合分析小组建立联合分析小组 客户访谈客户访谈 问题分析与确认问题分析与确认 1 1)联合分析小组的人员主要包括:用户、领域专家、)联合分析小组的人员主要包括:用户、领域专家、系系统分析员统分析员 2 2)通过联合分析小组的工作,可以极大地方便系统开发)通过联合分析小组的工作,可以极大地方便系统开发人员和用户之间的沟通。人员和用户之间的沟通。l 客户访谈客户访谈在与用户接触之前,先要进行充分的准备:注意:在与用户交流时,应遵循循序渐进、逐步逼近的原则,注意:
6、在与用户交流时,应遵循循序渐进、逐步逼近的原则,切不可急于求成否则欲速则不达。切不可急于求成否则欲速则不达。首先,必须对问题的背景和问题所在系统的环境有全面的了解;首先,必须对问题的背景和问题所在系统的环境有全面的了解;其次,尽可能了解将要会谈用户的个性特点及任务状况;其次,尽可能了解将要会谈用户的个性特点及任务状况;第三,事先准备一些问题。第三,事先准备一些问题。l问题分析与确认问题分析与确认 不能期望用户在一两次交谈中,就会对目标软件的要求阐述清楚,也不能限制用户在回答问题过程中的自由发挥。在每次访谈之后,要及时进行整理,分析用户提供的信息,去掉错误的、无关的部分,整理有用的内容,以便在下
7、一次与用户见面时由用户确认;同时,准备下一次访谈时的进一步更细节的问题。如此循环,一般需要2-5个来回。举例:某出版社系统调查表举例:某出版社系统调查表编号编号提出问题提出问题1您在您在哪个部门工作?哪个部门工作?2 2出版业务流程是什么?出版业务流程是什么?3 3您您每日都处理那些文件、数据、报表?每日都处理那些文件、数据、报表?4 4工作中手工处理特别麻烦的事情是什么?工作中手工处理特别麻烦的事情是什么?5 5工作中手工处理什么问题解决不了?影响效率的问题有哪些?工作中手工处理什么问题解决不了?影响效率的问题有哪些?6 6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些您认为提高工
8、作效率,节省工作时间,减轻工作强度可采取哪些办法?办法?举例:某出版社系统调查表编号编号提出问题提出问题7 7您的部门需要成本核算和统计的内容有哪些?您的部门需要成本核算和统计的内容有哪些?8 8您的部门采用计算机管理工作情况如何?您的部门采用计算机管理工作情况如何?9 9如何改进业务流程使之更合理?如何改进业务流程使之更合理?1010哪些问题是目前传统手工方法根本无法解决的?哪些问题是目前传统手工方法根本无法解决的?1111出版社计算机管理信息系统需要解决什么问题?出版社计算机管理信息系统需要解决什么问题?软件需求分析的通信途径软件需求分析的通信途径(1)(1)功能性需求功能性需求:定义了系
9、统做什么(描述系统必须支持的功能和过程)定义了系统做什么(描述系统必须支持的功能和过程)(2)(2)非功能性需求(技术需求)非功能性需求(技术需求):定义了系统工作时的特性(描述操作环境和性能目标)定义了系统工作时的特性(描述操作环境和性能目标)用户需求分类用户需求分类两类需求包括的内容两类需求包括的内容(1)(1)功能功能(2)(2)性能性能(3)(3)环境环境(4)(4)界面界面(5)(5)用户或人的因素用户或人的因素(6)(6)文档文档 (7)(7)数据数据(8)(8)资源资源(9)(9)安全保密安全保密(10)(10)软件成本消耗与开发进度软件成本消耗与开发进度(11)(11)质量保证
10、质量保证 系统做什么?系统做什么?系统何时做什么?系统何时做什么?系统何时及如何修改或升级?系统何时及如何修改或升级?软件开发的技术性指标软件开发的技术性指标例如:例如:存储容量限制存储容量限制 执行速度、相应时间执行速度、相应时间 吞吐量吞吐量 硬件设备:机型、外设、接口、地硬件设备:机型、外设、接口、地 点、分布、温度、湿度、磁场干扰等点、分布、温度、湿度、磁场干扰等软件:软件:操作系统操作系统 网络网络 数据库数据库 有来自其它系统的输入吗?有来自其它系统的输入吗?到自其它系统的输出吗?到自其它系统的输出吗?对数据格式有规定吗?对数据格式有规定吗?对数据存储介质有规定吗?对数据存储介质有
11、规定吗?需求包括的内容需求包括的内容 用户类型?用户类型?各种用户熟练程度?各种用户熟练程度?需受何种训练?需受何种训练?用户理解、使用系统的难度?用户理解、使用系统的难度?用户错误操作系统的可能性?用户错误操作系统的可能性?需哪些文档?需哪些文档?文档针对哪些读者?文档针对哪些读者?输入、输出数据的格式?输入、输出数据的格式?接收、发送数据的频率?接收、发送数据的频率?数据的准确性和精度?数据的准确性和精度?数据流量?数据流量?数据需保持的时间?数据需保持的时间?软件运行时所需的数据、软件、软件运行时所需的数据、软件、内存空间等资源。内存空间等资源。软件开发、维护所需的人力、支软件开发、维护
12、所需的人力、支撑软件、开发设备等。撑软件、开发设备等。需求包括的内容需求包括的内容 需对访问系统或系统信息加以控制吗?需对访问系统或系统信息加以控制吗?如何隔离用户之间的数据?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?用户程序如何与其它程序和操作系统隔离?系统备份要求?系统备份要求?开发有规定的时间表吗?开发有规定的时间表吗?软硬件投资有无限制?软硬件投资有无限制?系统的可靠性要求?系统的可靠性要求?系统必须监测和隔离错误吗?系统必须监测和隔离错误吗?规定系统平均出错时间?规定系统平均出错时间?出错后,重启系统允许的时间?出错后,重启系统允许的时间?系统变化如何反映到设计中
13、?系统变化如何反映到设计中?维护是否包括对系统的改进?维护是否包括对系统的改进?系统的可移植性?系统的可移植性?需求包括的内容需求包括的内容 原型(原型指原型指“快速软件原型快速软件原型”)是一个可实地运行的模型,有正式产品的主要特征,但不是全部特征。软件原型是软件系统的最初版本,以最少的费用,最短的时间开发出的、以反映最后软件的主要特征的系统。5.快速原型法在需求分析中的应用快速原型法在需求分析中的应用 原型开发指的是建立一个系统的早期版本的演习(practice),它不必反映最终产品的所有性能,而只要反映感兴趣的一些方面。l原型的定义原型的定义l原型的作用原型的作用 问题:开发初期很难确定
14、用户需求规格解决:用户与开发者之间的鸿沟以原型(软件产品的样品)为共同语言,实现用户与开发者双向沟通。l原型的特性原型的特性v 是一个可实际工作的系统;v 没有固定的生存期,结局可能是用后立即被抛弃,或可能成为最终系统;v 可服务于不同的目的,从需求分析到最终产品都可做原型;v 建立必须快,便宜;v 是包含修改、评价在内的完整重复过程v 需求分析和定义规格说明v 作为软件设计的一种工具v 作为一种解决不确定性的工具v 作为一种实验工具v 系统开发同时,作为同步培训工具v 作为开发方法,利用原型演化为最终系统v 作为软件维护的辅助工具l原型化开发的应用领域原型化开发的应用领域(1)利用各种分析技
15、术和方法,生成一个建华的需求规格说明。(2)对需求规格说明进行必要的检查和修改后,确定原型的软件结构、用户界面和数据结构等。(3)在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试、改进;(4)将原型提交给用户评估并征求用户的修改意见;(5)重复上述过程,直到原型得到用户的认可。(1)试验性原型 原型用来确认对需求的理解是否正确,应在与实际产品环境相近的环境上开发原型。(2)试用性原型 原型用来帮助用户在试用中使自己的模糊的需求明确起来确,可在与实际产品环境完全 无关的环境上开发运行。仅对屏幕的原型化 使用购买的软件系统作为初始模型 可行性分析中的原型 子系统原型化l 原型化策略原型
16、化策略 功能原型开发 用户界面原型开发l 原型开发技术原型开发技术l 原型化工具原型化工具面向应用的第四代语言(4GL)Delphi VB PowerBuilder Visual C+等原型法效果原型法效果F保证产品有较好的可维护性F改善用户与开发人员的信息交流和思想沟通,给用户修改的机会F减少或消灭下游返工的可能,改进了瀑布模型的弊病F原型系统可作为培训环境,有利于用户培训和开发同步。F开发成本降低,周期缩短。原型法局限性原型法局限性u 需工具支持,否则开发工作量大;u 只能缩短用户与软件需求定义间的距离,并不能消灭这个距离;u 考虑你的项目是否适合用原型法来开发时,有几个因素是要权衡的。B
17、oehm,Gray,和Seewaldt(1984)研究了项目是否适合用原型来开发的问题。他们发现用原型法开发项目,可以少花费45%的努力,还可以减少40%的代码。而且,开发出的产品的速度和效率与用传统方法开发出的差不多。是否要选择原型法?由于开发一个原型需要花费一定的人力、物力、财力和时间,而且用于确定需求的原型在完成使命后一般就被丢弃。因此,是否使用快速原型法必须考虑软件系统的特点、可用的开发技术和工具等方面。AndrioleAndriole提出的一下提出的一下6 6个问题,可用来帮助判断是个问题,可用来帮助判断是否要选择原型法。否要选择原型法。v 需求已经建立,并且可以预见是相当稳定吗?(
18、肯定回答,不采用原型法)v 软件开发人员和用户已经理解了目标软件的应用领域吗?v 问题是否可被模型化?v 用户能否清楚地确定基本的系统需求?v 有任何需求是含糊的吗?v 已知的需求中存在矛盾吗?(以上5个问题肯定回答,用原型法)3.3 3.3 分析建模分析建模 两种分析模型两种分析模型v 结构化分析模型结构化分析模型v 面向对象分析模型面向对象分析模型OOAOODOOPv 模型的核心是DD(Data Dictionary,数据字典),它是系统所涉及的各种数据对象的总和。从DD出发可构建3种图:v E-RE-R图图(Entity-Relation Diagram,实体-关系图)用于描述数据对象间
19、的关系,他代表软件的数据模型,在实体-关系图中出现的每个数据对象的属性均可用数据对象说明来描述;v DFDDFD图图(Data Flow Diagram,数据流图),其主要作用是指明系统中数据是如何流动和变换的,以及描述是数据流进行变换的功能,在DFD图中出现的每个功能的描述则写在(PSPEC)中,它们一起构成功能模型;v STDSTD(Status Transfer Diaram,状态-变迁图),用于指明系统在外部时间的作用下将会如何动作,表明了系统的各种状态以及各种状态间的变迁,从而构成为行为模型的基础,关于软件控制方面的附加信息则包含在控制说明(CSPEC)。v 使用实例,使用实例,处于
20、OOA模型核心的是“使用实例”(Use Case),简称“用例”。获得软件的需求后,软件分析员既可据此创建一组“场景”(Scenario),每个场景包含一个使用实例。从这些用例出发,进一步抽取和定义OOA模型的3种模型,即v 类类-对象模型对象模型,描述系统所涉及的全部类-对象,每个类-对象都通过属性、操作和写作者来进行进一步描述;v 对象对象-关系模型关系模型,描述对象之间的静态关系,同时定义了系统中所有重要的消息路径,它也可以具体化到对象的属性、操作和协作者;v 对象对象-行为模型行为模型,描述了系统的动态行为,即对湘杂特定的状态下如何反映外界的事件。数据流图数据流图(DFD)(DFD)数
21、据字典数据字典(DD)(DD)加工说明加工说明控制流图(控制流图(CFDCFD)与控制说明()与控制说明(CSPEC CSPEC)状态转换图状态转换图(STD)(STD)E-RE-R图图用例图用例图对象关系图(对象关系图(Object-Object-Relationship,ORelationship,O-R-R)对象行为图对象行为图分析模型的组成与描述工具分析模型的组成与描述工具v DFD、DD和PSPEC:是早期结构化分析模型 的基本组成部分;v CFD、CSPEC和STD是扩展成分用以适应实时的建模需要;v E-R图:适用于描述具有复杂数据结构的软件数据模型;v 用例图、对象关系图和对象
22、行为图适用于OOA的分析模型。数据流图数据流图(DFD)(DFD)任何软件系统(或计算机系统)从根本上说,都是对数据进行加工或变换的工具指明数据在系统中移动时如何被变换;描述对数据流进行变换的功能;DFD中每个功能的描述包含在加工规约小说明)中。数据存储数据存储 (文件或数据库)文件或数据库)数据流图的四个基本成分数据流图的四个基本成分数据流(数据对象)数据流(数据对象)位于被建模系统之外的信息生产者或消费者位于被建模系统之外的信息生产者或消费者,称为外部项。称为外部项。说明数据输入的源点说明数据输入的源点(数据源数据源)或数据输出的或数据输出的汇点汇点(数据池数据池)2 22 2IIII数据
23、处理数据处理(加工加工)数据流数据流表示数据和数据流向,表示数据和数据流向,三个重要属性三个重要属性:v 流向(从加工出发或流向加工)v 数据组成v 数据流名字数据流命名方法和注意事项据流命名方法和注意事项v 用名词或名词词组,不要使用意义空洞的名词;v 尽量使用现实系统已有名字,当命名出现困难,考虑是否数据流划分不恰当;v 不要把控制流作为数据流指明作为外部事件的结果,系统将如何动作。举例举例:购购书书单单发票发票领书单领书单审查并开发票开领开领书单书单无效书单无效书单学生学生1 12 2各班学生各班学生用用 书书 表表学生学生教材存量表教材存量表数据字典数据字典(DD,Data Dicti
24、onary)模型核心模型核心(中心库中心库)一个软件系统含有许多数据。数据字典的作用,就是对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。由字典统一给出的所有数据的定义与属性,已成为结构化分析中分析建模的基础。数据词典与数据流图配合,能清楚地表达数据处理的要求词条描述 对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等 DD是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解 DFD中的数据流、数据存储表示某个有组织的数据集合,它们
25、要由SA的其他描述工具-需求字典(数据字典)来描述,包括:词条描述、数据结构描述、加工逻辑说明作用作用:数据字典数据字典 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合l数据字典的内容 数据流 数据流分量 数据存储 处理数据处理:用 IPO图或PDL描述比较方便直观。数据元素的别名:l定义数据的方法 由数据元素组成数据的方式的三种基本类型顺序+:以确定次序连接两个或多个分量 a+b+c 选择|,:从两个或多个可能的元素中选取一个 a|b|c 重复:把指定的分量重复零次或多次 a 可选:一个分量是可有可无的(重复零次或一次),(a)l例子 定货报表=零件编号+零件名
26、称+定货数量+目前价格+主要供应者+次要供应者零件编号=8字符8定货数量=1数字5v 数据流名:v 说明:简要介绍作用即它产生的原因和结果v 数据流来源:来自何方v 数据流去向:去向何处v 数据流组成:数据结构v 数据量流通量:数据量,流通量v 数据元素名:v 类型:数字(离散值,连续值),文字(编码类型)v 长度:v 取值范围:v 相关的数据元素及数据结构:v 数据文件名:v 简述:存放的是什么数据v 输入数据:v 输出数据:v 数据文件组成:数据结构v 存储方式:顺序,直接,关键码v 存取频率:v 加工名:v 加工编号:反映该加工的层次v 简要描述:加工逻辑及功能简述v 输入数据流:v 输
27、出数据流:v 加工逻辑:简述加工程序,加工顺序F1:F1:航班信息文件航班信息文件 航空公司名称航班号航空公司名称航班号起点终点日期起点终点日期 起飞时间降落时间起飞时间降落时间 航空公司名称航空公司名称22字母字母44 航班号航班号33十进制数字十进制数字33 字母字母“A”“Z”A”“Z”十进制数字十进制数字“0”“9”0”“9”起点终点起点终点11汉字汉字1010 起飞时间降落时间时分起飞时间降落时间时分 时时“00”“23”00”“23”分分“00”“59”00”“59”日期年月日日期年月日 年年20002000200120012002200220042004 月月“01”“12”01
28、”“12”日日“01”“31”01”“31”重复项:重复项:起点终点起点终点11汉字汉字1010 航空公司名称航空公司名称22字母字母44 航班号航班号33十进制数字十进制数字33 组合项:组合项:日期年月日日期年月日 起飞时间降落时间时分起飞时间降落时间时分选择项:选择项:年年20002000200120012002200220042004原数据项:原数据项:字母字母“A”“Z”A”“Z”十进制数字十进制数字“0”“9”0”“9”时时“00”“23”00”“23”分分“00”“59”00”“59”月月“01”“12”01”“12”日日“01”“31”01”“31”定义式中使用的符号定义式中使
29、用的符号 操作符 含义描述 定义为 与(顺序结构).重复(循环结构).或(选择结构).,.(.)任选 m.n 界域 .,注释符限制重复次数举例限制重复次数举例:表示允许重复表示允许重复3-53-5次次 表示恰好重复表示恰好重复 3 3 次次 表示至少出现表示至少出现 1 1 次次表示允许重复表示允许重复0 0至任意次至任意次v 简名称:外部实体名v 要描述:什么外部实体v 有关数据流:v 数目:存折户名所号帐号开户日性质(印密)1存取行50户名2字母24所号“001”.“999”帐号“00000001”.“99999999”开户日年月日性质“1”.“6”注:“1”表示普通户,“5”表示工资户等
30、印密“0”注:印密在存折上不显示存取行日期(摘要)支出存入余额操作复核出现在软件中的数据可分为出现在软件中的数据可分为3 3种情况:种情况:v 只含一个数据的数据项(或数据元素);v 由多个相关数据向组成的数据流;v 数据文件或数据库。举例说明怎样编写各类数据的字典条目:举例说明怎样编写各类数据的字典条目:v数据流v数据文件v数据项数据流条目说明举例数据流条目说明举例数据流名数据流名:发票发票别名别名:购书发票购书发票组成组成:(:(学号学号)姓名书号单价数量总价姓名书号单价数量总价 书费合计书费合计数据量数据量:100:100次次/天天 高峰值:开学期间高峰值:开学期间400400次次/天天
31、 数据存储条目说明举例数据存储条目说明举例文件名文件名:各班学生用书表各班学生用书表别名别名:组成组成:系编号专业和班编号系编号专业和班编号 年级年级 书号书号组织组织:按系、专业和班编号从小到大:按系、专业和班编号从小到大 排列排列存取要求存取要求:关键字是专业和班编号关键字是专业和班编号数据项条目说明举例数据项条目说明举例数据项名数据项名:系编号系编号别名别名:取值:取值:22数字数字22注释注释:数据项条目说明举例数据项条目说明举例数据项名数据项名:专业和班编号专业和班编号别名别名:取值:取值:33数字数字33注释注释:数据项条目说明举例数据项条目说明举例数据项名数据项名:年级年级别名别
32、名:取值及含义取值及含义:freshmen,freshmen,一年级一年级 sophomore,sophomore,二年级二年级 junjorjunjor,三年级三年级 senior,senior,四年级四年级注释注释:F,M,J,SF,M,J,S可分别用可分别用1,2,3,41,2,3,4代替代替数据项条目说明举例数据项条目说明举例数据项名数据项名:书号书号别名别名:取值取值:字母字母 数字数字 注释注释:v 对数据流图的每一个基本加工,必须有一个基本加工逻辑说明v 基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则v 加工逻辑说明必须描述实现加工的策略而不是实现加工
33、的细节v 加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的控制流图(控制流图(CFDCFD)与控制说明()与控制说明(CSPECCSPEC)CFDCFD是为了适应实施系统地分析而提出的,通常与是为了适应实施系统地分析而提出的,通常与DFDDFD配合使用,目的使配合使用,目的使CSPECCSPEC分析员在用分析员在用DFDDFD和和PSPECPSPEC表表示数据流和加工的同时,也能够用示数据流和加工的同时,也能够用CFDCFD和和CSPECCSPEC表示控表示控制流和控制加工。(制流和控制加工。(P45-P47P45-P47)数据流和控制流举例数据流和控制流举例动作动作警告警告监控固
34、件和监控固件和操作接口操作接口每个固件状态每个固件状态机器人初机器人初始化控制始化控制操作命令操作命令部件状态缓冲器部件状态缓冲器位置位置命令命令开始开始/停止停止处理处理机器人命机器人命令令机器人命令文件机器人命令文件操作操作设置设置处理活动处理活动记录机器记录机器人动作人动作位串位串数据和控制模型的关系数据和控制模型的关系 数据输出数据输出数据输入数据输入控制输入控制输入控制输出控制输出SafeHome的的控制面板控制面板与用户与用户交互交互SAFEHOMEARMED POWER1 12 23 34 45 56 67 78 89 9*0 0#OFF ARAY STAYMAX TEST BY
35、PASSINSTANT CODE CHIMEREADYpanicSafeHomeSafeHome的第的第0 0层层SafeHomedeSafeHomede软件系统软件系统用户命令用户命令和数据和数据显示信息显示信息控制面板控制面板传感器传感器状态状态警告类型警告类型电话号电话号码拨音码拨音传感器传感器电话线电话线警铃警铃控制面板显示控制面板显示SafeHomeSafeHome的第的第1 1层层控制控制面板面板与用户与用户交互交互控控制制面面板板显显示示密码密码电话号码拨音电话号码拨音传感器状态传感器状态显示显示信息信息配置请求配置请求用户命令用户命令和数据和数据配置配置系统系统警警铃铃电电话话
36、线线传感器传感器配置信息配置信息显示信息显示信息和状态和状态监控监控传感器传感器激活不激活不激活系统激活系统传感器信息传感器信息密码密码处理处理警告类型警告类型检验检验idid信息信息开始开始停止停止状态信息状态信息监控传感器的第监控传感器的第2 2层层电话号码拨音电话号码拨音传感器状态传感器状态配置数据配置数据显示格式显示格式配置信息配置信息产生警告产生警告信息信息拨号拨号评估设置评估设置传感器信息传感器信息读传感器读传感器警告类型警告类型传感器传感器idid类型类型传感器传感器idid类型定位类型定位SafeHomeSafeHome的第一层的第一层控制面控制面板板与用户与用户交互交互控控制
37、制面面板板显显示示显示活动状态(显示活动状态(完成、在处理中完成、在处理中)配置配置系统系统警警铃铃电电话话线线传感器传感器配置信息配置信息显示信息显示信息和状态和状态监控监控传感器传感器激活不激活不激活系统激活系统警告警告信号信号密码密码处理处理传感器传感器事件事件警告警告状态状态超超时时闪烁标志闪烁标志开关切换开关切换状态转换图状态转换图(STD)(STD)描述软件状态的变迁,它是在描述软件状态的变迁,它是在CSPECCSPEC中常用的一种重要中常用的一种重要描述工具。(描述工具。(P48P48)电梯电梯状态图举例状态图举例在一楼在一楼上升上升停滞停滞下降下降回到一楼回到一楼回一楼回一楼想
38、要到想要到达楼层达楼层想要到想要到达楼层达楼层电梯行程电梯行程开始开始向上向上向上向上向下向下概念模型和规范化概念模型和规范化 用户的数据要求-需要哪些数据,数据之间有哪些联系,数据本身有哪些性质,数据的结构 等)。用户的处理要求-对数据进行哪些处理,每个处理的逻辑功能。概念性模型(信息模型)-一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。表示概念性数据模型的最常用方法是实体-联系方法,采用用 ER图的方式,这种表示又称为ER模型。ER模型 实体:客观世界中存在的且可区分的事物。联系:客观事物之间的联系(三类-1:1,1:N,M:N)属性:实体或联系所具有的性质。教师姓名性别职称
39、职务教师号教1课程N课程号课名学时学分学M学生N学号姓名性别系年级成绩 范式通常用范式定义消除数据的冗余度(略)E-R图图数据及数据库需求数据及数据库需求E-RE-R方法方法 (Entity-Relationship Approach)(Entity-Relationship Approach)和实体模型和实体模型 用例是帮助分析员和用户确定系统使用情况的用例是帮助分析员和用户确定系统使用情况的UMLUML组件;组件;一组用例就是从用户的角度出发如何使用系统的描述;一组用例就是从用户的角度出发如何使用系统的描述;可认为用例是系统的一组使用场景;可认为用例是系统的一组使用场景;每个场景描述了一个
40、事件的序列;每个场景描述了一个事件的序列;每个序列是由一个人、另一个系统、一个硬件设备或某段时间每个序列是由一个人、另一个系统、一个硬件设备或某段时间的流逝所发起;的流逝所发起;每个发起事件序列的实体叫做每个发起事件序列的实体叫做参与者(参与者(actoractor)或或行动者行动者什么是用例(什么是用例(use case)?)?用例图用例图用例建模用例建模q 用例建模是用于描述一个系统应该做什么的建模技术用例建模是用于描述一个系统应该做什么的建模技术q 用例建模可用于新系统的需求获取,也可用于已有系用例建模可用于新系统的需求获取,也可用于已有系统的升级统的升级用例模型(用例模型(use ca
41、se modeluse case model)q 一个用例模型可由若干幅用例图组成一个用例模型可由若干幅用例图组成q 用例描述了用户和系统之间的交互,其重点是用例描述了用户和系统之间的交互,其重点是 系统为系统为用户做什么用户做什么q 用例模型描述全部的用例模型描述全部的系统功能行为系统功能行为q 一幅用例图包含的模型元素有:一幅用例图包含的模型元素有:用例用例参与者(行为者、执行者)参与者(行为者、执行者)系统系统用例模型表示法用例模型表示法销售系统用例图销售系统用例图收款收款POS系统用例图系统用例图收款收款 参与者与它们所发起执行的过程(简要描述)参与者与它们所发起执行的过程(简要描述)
42、现金结算现金结算登录登录收款员收款员退货退货购买商品购买商品顾客顾客关闭系统关闭系统启动系统启动系统管理员管理员增加新用户增加新用户系统管理员系统管理员用例描述实例用例描述实例用例:用例:购买商品购买商品参与者:顾客(发起者)、收款员参与者:顾客(发起者)、收款员类型:类型:主要的主要的描述:描述:顾客带着所要购买商品到付款处,收款员顾客带着所要购买商品到付款处,收款员 记录商品信息并收款。记录商品信息并收款。用例:用例:启动启动/关闭系统关闭系统参与者:管理员参与者:管理员类型:类型:主要的主要的描述:描述:管理员接通一台管理员接通一台POS机电源,检查时间、机电源,检查时间、日期正确性,检
43、查完成后,系统处于就绪日期正确性,检查完成后,系统处于就绪 状态,以备收款员使用。状态,以备收款员使用。对象关系图(对象关系图(Object-Object-Relationship,ORelationship,O-R-R)v 对象关系图是由对象关系图是由E-RE-R图演变而来的。对象通过制定的关系图演变而来的。对象通过制定的关系和其他对象连接,规定连接的基数并建立整体的对象和其他对象连接,规定连接的基数并建立整体的对象-关关系网络。系网络。金融机构类图举例金融机构类图举例:所有人所有人财产财产人员人员金融机构金融机构信贷银行信贷银行银行银行抵押抵押本金本金利率利率到期到期*有次序的有次序的*借
44、方借方债权人债权人房房屋屋保险机构类图举例保险机构类图举例:销售代表销售代表 0.1定货定货nameaddress顾客顾客creditRating():String产品产品雇员雇员1dataReceivedisPrepaidnumber:Stringprice:Money协作顾客协作顾客contactNamecreditRatingcreditLimitcreditCard#个人顾客个人顾客creditRating()=“poor”定货作业线定货作业线dispatch()close()remind()billForMonth()Quantity:Integerprice:MoneyisSati
45、sfied:Boolean1*1物品物品网上商店对象模型网上商店对象模型(部分部分)示例示例(UML)对象行为图对象行为图 对象行为模型用于描述对象动态行为,通常由对象状对象行为模型用于描述对象动态行为,通常由对象状态转换图、事件轨迹图和事件流图等来描述。(态转换图、事件轨迹图和事件流图等来描述。(P52-P53P52-P53)电梯电梯状态转换图状态转换图在一楼在一楼上升上升停滞停滞下降下降回到一楼回到一楼回一楼回一楼想要到想要到达楼层达楼层想要到想要到达楼层达楼层电梯行程电梯行程开始开始向上向上向上向上向下向下 接电话的的部分事件轨迹图接电话的的部分事件轨迹图:受话者受话者交换机交换机远程交
46、换机远程交换机受话者受话者拿起话筒拿起话筒听通话声听通话声拨号码拨号码.铃响信号铃响信号铃响铃响铃响停止信号铃响停止信号拿起话筒拿起话筒铃响停止铃响停止10 deabcb-a1e-d5c-b10路径路径 文档打印系统的部分事件流图文档打印系统的部分事件流图打印机忙打印机忙保存打印文件保存打印文件队列队列计算机计算机 打印机空闲打印机空闲打印文件打印文件 打印机打印机打印服务器打印服务器打印文件打印文件4 4、软件需求说明书、软件需求说明书 (SRS)(SRS)(Software Requirement Specification)SRS SRS的作用:的作用:开发者与用户间事实上的技术合同书开
47、发者与用户间事实上的技术合同书开发者下一步设计和编码的基础开发者下一步设计和编码的基础测试验收目标系统的依据测试验收目标系统的依据软件需求说明(软件需求说明(SRSSRS)引言引言 信息描述信息描述 功能描述功能描述 行为描述行为描述 质量保证质量保证 接口描述接口描述 其他描述其他描述1.需求规格说明书需求规格说明书需求说明书由以下几部分组成:需求说明书由以下几部分组成:一套分层的数据流图一套分层的数据流图 一本数据字典一本数据字典 一组小说明一组小说明 补充材料补充材料3.5 3.5 结构化分析方法结构化分析方法(Structured(Structured AnalisysAnalisys
48、,SA),SA)结构化分析就是使用结构化分析就是使用DFD,DD,DFD,DD,结构化语言,判结构化语言,判定表和判定树等工具,来建立一种新的,称为结构定表和判定树等工具,来建立一种新的,称为结构化说明书的目标文档。化说明书的目标文档。结构化分析的基本步骤结构化分析的基本步骤:由顶向下对系统进行功能分解,画出分层由顶向下对系统进行功能分解,画出分层DFDF图;图;由后向前定义系统的数据和加工,编制由后向前定义系统的数据和加工,编制DDDD,PSPEC;PSPEC;最终写出最终写出SRS.SRS.结构化分析方法使用工具:结构化分析方法使用工具:画分层数据流图v 软件工程技术中,控制复杂性的两个基
49、本手段是软件工程技术中,控制复杂性的两个基本手段是“分解分解”和和“抽象抽象”。分解?分解?为了将复杂性降低到人可以掌握的程度,可以把大问题为了将复杂性降低到人可以掌握的程度,可以把大问题分割成若干个问题,然后分别解决。分割成若干个问题,然后分别解决。抽象?抽象?分解也可以分层进行,即先考虑问题最本质的属性,分解也可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容。详细的内容。DFDDFD可以用来表示一个系统或软件在任何层次可以用来表示一个系统或软件在任何层次上的抽象。上的抽象。较大型软件系统较大型软件
50、系统DFDDFD分成多层分成多层(子图、子图、父图概念父图概念),),可以表示数据流和功能的进一步的细节。可以表示数据流和功能的进一步的细节。需求分析示例需求分析示例教材购销管理系统(教材购销管理系统(1 1)问题描述:学校教材科根据业务的需要,建立一个学校教材购销管理系统,提高教材采购、销售和信息管理的效率。学生张秘书购书申请王会计李出纳赵保管学生购书证明购书申请购书申请书学生审 查有效性购书单开发票开领书单发书学生有 效购书单发票领书单书学生审查并开发票购书单开领书单发书学生发票领书单书2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型1)通过对现实环境的调查研究,获得当前系统的具体
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。