软件工程软件需要分析lyh.ppt
《软件工程软件需要分析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)对目标系统进行完善和补充,并写出完整的需求说明;(5)对需求说明进行复审,直到确认
4、文档齐全,并且符合用户的全部需求为止。,3.2 需求获取的常用方法,1.需求获取的目的 清楚地理解所要解决的问题 完整地获取用户需求,2.需求获取面临的挑战,问题的复杂性和对问题空间理解的不完备性与不一致性 交流障碍 需求易变性,3.2 需求获取的常用方法,3.需求获取的常用方法(P34-P35),建立联合分析小组 客户访谈 问题分析与确认,3.2 需求获取的常用方法,建立联合分析小组,1)联合分析小组的人员主要包括:用户、领域专家、系统分析员 2)通过联合分析小组的工作,可以极大地方便系统开发人员和用户之间的沟通。,3.需求获取的常用方法,客户访谈,在与用户接触之前,先要进行充分的准备:,注
5、意:在与用户交流时,应遵循循序渐进、逐步逼近的原则,切不可急于求成否则欲速则不达。,3.需求获取的常用方法,首先,必须对问题的背景和问题所在系统的环境有全面的了解;其次,尽可能了解将要会谈用户的个性特点及任务状况;第三,事先准备一些问题。,问题分析与确认,不能期望用户在一两次交谈中,就会对目标软件的要求阐述清楚,也不能限制用户在回答问题过程中的自由发挥。在每次访谈之后,要及时进行整理,分析用户提供的信息,去掉错误的、无关的部分,整理有用的内容,以便在下一次与用户见面时由用户确认;同时,准备下一次访谈时的进一步更细节的问题。如此循环,一般需要2-5个来回。,3.需求获取的常用方法,举例:某出版社
6、系统调查表,举例:某出版社系统调查表,软件需求分析的通信途径,需求分析流程,4.需求获取的内容,(1)功能性需求:定义了系统做什么(描述系统必须支持的功能和过程)(2)非功能性需求(技术需求):定义了系统工作时的特性(描述操作环境和性能目标),用户需求分类,两类需求包括的内容,(1)功能(2)性能(3)环境(4)界面(5)用户或人的因素(6)文档(7)数据(8)资源(9)安全保密(10)软件成本消耗与开发进度(11)质量保证,4.需求获取的内容,(1)功能需求,系统做什么?系统何时做什么?系统何时及如何修改或升级?,(2)性能需求,软件开发的技术性指标例如:存储容量限制 执行速度、相应时间 吞
7、吐量,(3)环境需求,硬件设备:机型、外设、接口、地 点、分布、温度、湿度、磁场干扰等软件:操作系统 网络 数据库,(4)界面需求,有来自其它系统的输入吗?到自其它系统的输出吗?对数据格式有规定吗?对数据存储介质有规定吗?,需求包括的内容,(5)用户或人的因素,用户类型?各种用户熟练程度?需受何种训练?用户理解、使用系统的难度?用户错误操作系统的可能性?,(6)文档需求,需哪些文档?文档针对哪些读者?,(7)数据需求,输入、输出数据的格式?接收、发送数据的频率?数据的准确性和精度?数据流量?数据需保持的时间?,(8)资源需求,软件运行时所需的数据、软件、内存空间等资源。软件开发、维护所需的人力
8、、支撑软件、开发设备等。,需求包括的内容,(9)安全保密要求,需对访问系统或系统信息加以控制吗?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?系统备份要求?,(10)软件成本消耗与开发进度需求,开发有规定的时间表吗?软硬件投资有无限制?,(11)质量保证,系统的可靠性要求?系统必须监测和隔离错误吗?规定系统平均出错时间?出错后,重启系统允许的时间?系统变化如何反映到设计中?维护是否包括对系统的改进?系统的可移植性?,需求包括的内容,原型(原型指“快速软件原型”)是一个可实地运行的模型,有正式产品的主要特征,但不是全部特征。软件原型是软件系统的最初版本,以最少的费用,最短的时间开
9、发出的、以反映最后软件的主要特征的系统。,5.快速原型法在需求分析中的应用,原型开发指的是建立一个系统的早期版本的演习(practice),它不必反映最终产品的所有性能,而只要反映感兴趣的一些方面。,原型的定义,原型的作用,问题:开发初期很难确定用户需求规格解决:用户与开发者之间的鸿沟以原型(软件产品的样品)为共同语言,实现用户与开发者双向沟通。,原型的特性,是一个可实际工作的系统;没有固定的生存期,结局可能是用后立即被抛弃,或可能成为最终系统;可服务于不同的目的,从需求分析到最终产品都可做原型;建立必须快,便宜;是包含修改、评价在内的完整重复过程,需求分析和定义规格说明 作为软件设计的一种工
10、具 作为一种解决不确定性的工具 作为一种实验工具 系统开发同时,作为同步培训工具 作为开发方法,利用原型演化为最终系统 作为软件维护的辅助工具,原型化开发的应用领域,原型开发的步骤,(1)利用各种分析技术和方法,生成一个建华的需求规格说明。(2)对需求规格说明进行必要的检查和修改后,确定原型的软件结构、用户界面和数据结构等。(3)在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试、改进;(4)将原型提交给用户评估并征求用户的修改意见;(5)重复上述过程,直到原型得到用户的认可。,原型化的开发环境,(1)试验性原型 原型用来确认对需求的理解是否正确,应在与实际产品环境相近的环境上开发原
11、型。(2)试用性原型 原型用来帮助用户在试用中使自己的模糊的需求明确起来确,可在与实际产品环境完全 无关的环境上开发运行。,仅对屏幕的原型化使用购买的软件系统作为初始模型可行性分析中的原型子系统原型化,原型化策略,功能原型开发用户界面原型开发,原型开发技术,原型化工具,面向应用的第四代语言(4GL)Delphi VBPowerBuilder Visual C+等,原型法效果,保证产品有较好的可维护性改善用户与开发人员的信息交流和思想沟通,给用户修改的机会减少或消灭下游返工的可能,改进了瀑布模型的弊病原型系统可作为培训环境,有利于用户培训和开发同步。开发成本降低,周期缩短。,原型法局限性,需工具
12、支持,否则开发工作量大;只能缩短用户与软件需求定义间的距离,并不能消灭这个距离;考虑你的项目是否适合用原型法来开发时,有几个因素是要权衡的。Boehm,Gray,和Seewaldt(1984)研究了项目是否适合用原型来开发的问题。他们发现用原型法开发项目,可以少花费45%的努力,还可以减少40%的代码。而且,开发出的产品的速度和效率与用传统方法开发出的差不多。,是否要选择原型法?,由于开发一个原型需要花费一定的人力、物力、财力和时间,而且用于确定需求的原型在完成使命后一般就被丢弃。因此,是否使用快速原型法必须考虑软件系统的特点、可用的开发技术和工具等方面。,Andriole提出的一下6个问题,
13、可用来帮助判断是否要选择原型法。,需求已经建立,并且可以预见是相当稳定吗?(肯定回答,不采用原型法)软件开发人员和用户已经理解了目标软件的应用领域吗?问题是否可被模型化?用户能否清楚地确定基本的系统需求?有任何需求是含糊的吗?已知的需求中存在矛盾吗?(以上5个问题肯定回答,用原型法),3.3 分析建模,两种分析模型结构化分析模型面向对象分析模型,结构化分析模型的组成结构,结构化分析模型的组成结构,模型的核心是DD(Data Dictionary,数据字典),它是系统所涉及的各种数据对象的总和。从DD出发可构建3种图:E-R图(Entity-Relation Diagram,实体-关系图)用于描
14、述数据对象间的关系,他代表软件的数据模型,在实体-关系图中出现的每个数据对象的属性均可用数据对象说明来描述;DFD图(Data Flow Diagram,数据流图),其主要作用是指明系统中数据是如何流动和变换的,以及描述是数据流进行变换的功能,在DFD图中出现的每个功能的描述则写在(PSPEC)中,它们一起构成功能模型;STD(Status Transfer Diaram,状态-变迁图),用于指明系统在外部时间的作用下将会如何动作,表明了系统的各种状态以及各种状态间的变迁,从而构成为行为模型的基础,关于软件控制方面的附加信息则包含在控制说明(CSPEC)。,面向对象分析模型的组成结构,面向对象
15、分析模型的组成结构,使用实例,处于OOA模型核心的是“使用实例”(Use Case),简称“用例”。获得软件的需求后,软件分析员既可据此创建一组“场景”(Scenario),每个场景包含一个使用实例。从这些用例出发,进一步抽取和定义OOA模型的3种模型,即类-对象模型,描述系统所涉及的全部类-对象,每个类-对象都通过属性、操作和写作者来进行进一步描述;对象-关系模型,描述对象之间的静态关系,同时定义了系统中所有重要的消息路径,它也可以具体化到对象的属性、操作和协作者;对象-行为模型,描述了系统的动态行为,即对湘杂特定的状态下如何反映外界的事件。,数据流图(DFD)数据字典(DD)加工说明控制流
16、图(CFD)与控制说明(CSPEC)状态转换图(STD)E-R图用例图对象关系图(Object-Relationship,O-R)对象行为图,2.分析模型的组成与描述工具,分析模型的组成与描述工具,DFD、DD和PSPEC:是早期结构化分析模型 的基本组成部分;CFD、CSPEC和STD是扩展成分用以适应实时的建模需要;E-R图:适用于描述具有复杂数据结构的软件数据模型;用例图、对象关系图和对象行为图适用于OOA的分析模型。,数据流图(DFD),任何软件系统(或计算机系统)从根本上说,都是对数据进行加工或变换的工具,指明数据在系统中移动时如何被变换;描述对数据流进行变换的功能;DFD中每个功能
17、的描述包含在加工规约小说明)中。,数据存储(文件或数据库),数据流图的四个基本成分,数据流(数据对象),位于被建模系统之外的信息生产者或消费者,称为外部项。说明数据输入的源点(数据源)或数据输出的汇点(数据池),数据处理(加工),数据流,表示数据和数据流向,三个重要属性:流向(从加工出发或流向加工)数据组成数据流名字,数据流命名方法和注意事项,用名词或名词词组,不要使用意义空洞的名词;尽量使用现实系统已有名字,当命名出现困难,考虑是否数据流划分不恰当;不要把控制流作为数据流指明作为外部事件的结果,系统将如何动作。,举例:,数据字典(DD,Data Dictionary)模型核心(中心库),一个
18、软件系统含有许多数据。数据字典的作用,就是对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。由字典统一给出的所有数据的定义与属性,已成为结构化分析中分析建模的基础。,数据词典与数据流图配合,能清楚地表达数据处理的要求词条描述 对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等,数据字典,DD是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解,DFD中的数据流、数据存储表示某个有组织的数据集合,它们要由SA的其他描述工具-需求字典(数
19、据字典)来描述,包括:词条描述、数据结构描述、加工逻辑说明,作用:,数据字典,数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合,数据字典的内容,数据流 数据流分量 数据存储 处理,数据处理:用 IPO图或PDL描述比较方便直观。数据元素的别名:,定义数据的方法,由数据元素组成数据的方式的三种基本类型顺序+:以确定次序连接两个或多个分量 a+b+c 选择|,:从两个或多个可能的元素中选取一个 a|b|c 重复:把指定的分量重复零次或多次 a 可选:一个分量是可有可无的(重复零次或一次),(a),例子,定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供
20、应者零件编号=8字符8定货数量=1数字5,数据流词条描述,数据流名:说明:简要介绍作用即它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构数据量流通量:数据量,流通量,数据元素词条描述,数据元素名:类型:数字(离散值,连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构:,数据文件词条描述,数据文件名:简述:存放的是什么数据输入数据:输出数据:数据文件组成:数据结构存储方式:顺序,直接,关键码存取频率:,加工逻辑词条描述,加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:加工逻辑:简述加工程序,加工顺序,F1:航班信
21、息文件航空公司名称航班号起点终点日期 起飞时间降落时间航空公司名称2字母4 航班号3十进制数字3 字母“A”“Z”十进制数字“0”“9”起点终点1汉字10 起飞时间降落时间时分 时“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”,定义式中使用的符号,操作
22、符 含义描述 定义为 与(顺序结构).重复(循环结构).或(选择结构).,.(.)任选 m.n 界域.,注释符,限制重复次数举例:,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=1.9,存折格式,存折户名所号帐号开户日性质
23、(印密)1存取行50户名2字母24所号“001”.“999”帐号“00000001”.“99999999”开户日年月日性质“1”.“6”注:“1”表示普通户,“5”表示工资户等印密“0”注:印密在存折上不显示存取行日期(摘要)支出存入余额操作复核,出现在软件中的数据可分为3种情况:,只含一个数据的数据项(或数据元素);由多个相关数据向组成的数据流;数据文件或数据库。,举例说明怎样编写各类数据的字典条目:,数据流数据文件数据项,数据流条目说明举例,数据流名:发票别名:购书发票组成:(学号)姓名书号单价数量总价 书费合计数据量:100次/天 高峰值:开学期间400次/天,数据存储条目说明举例,文件
24、名:各班学生用书表别名:组成:系编号专业和班编号 年级书号组织:按系、专业和班编号从小到大 排列存取要求:关键字是专业和班编号,数据项条目说明举例,数据项名:系编号别名:取值:2数字2注释:,*例如:01,12*,数据项条目说明举例,数据项名:专业和班编号别名:取值:3数字3注释:,*例如:305*,数据项条目说明举例,数据项名:年级别名:取值及含义:freshmen,一年级 sophomore,二年级 junjor,三年级 senior,四年级注释:F,M,J,S可分别用1,2,3,4代替,数据项条目说明举例,数据项名:书号别名:取值:字母数字注释:,*例如:,*,对数据流图的每一个基本加工
25、,必须有一个基本加工逻辑说明基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则加工逻辑说明必须描述实现加工的策略而不是实现加工的细节加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的,基本加工逻辑说明,用于写加工逻辑说明的工具,结构化英语 判定表 判定树,结构化英语,结构化英语的词汇表由 英语命令动词 数据词典中定义的名字 有限的自定义词 逻辑关系词 IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。,是一种介于自然语言和形式化语言之间的语言语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示其基本控制结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件 需要 分析 lyh
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5642358.html