第02章软件工程的需求分析_第1页
第02章软件工程的需求分析_第2页
第02章软件工程的需求分析_第3页
第02章软件工程的需求分析_第4页
第02章软件工程的需求分析_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

软件工程,第02章软件项目的需求分析,一、可行性研究,1、可行性研究的任务可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。也就是说,可行性研究的目的不是解决问题,而是确定问题是否可解,是否值得去解。一般来说,可行性研究应该从以下几个方面进行:(1)技术可行性分析:使用现有技术能否实现系统(2)经济可行性分析:开发投入与经济效益(3)操作可行性分析:系统操作方式在该组织内是否可行,是否存在社会问题(4)法律可行性分析:开发过程中涉及的各种合同、侵权、责任以及其他同法律相抵触的内容存在问题的解决:引入资金、引入人员、合作最后给出问题是否可解,是否值得解决,一、可行性研究,2、可行性研究的步骤1)复查系统规模和目标:清晰的描述对系统目标的一切限制和约束,确保解决问题的正确性。2)研究目前正在使用的系统:通过对现有系统的文档资料的阅读、分析和研究,总结出现有系统的优点与不足,解决老系统的问题(修改、增加)。3)导出新系统的高层逻辑模型:告诉用户,系统可以做什么,而不是怎么做4)重新定义问题:定义分析问题导出模型再定义问题5)导出和评价供选择的方案:从逻辑模型出发,导出若干较高层次的解供比较和选择。6)推荐一个方案并说明理由:从技术、经济、操作等方面进行比较,向用户推荐一个方案7)推荐行动方针,一、可行性研究,8)草拟开发计划任务分解,确定负责人进度规划财务预算风险分析与对策:市场、技术、政策9)书写文档提交审查,进行可行性研究,需要对软件项目的开发进行宏观的把握,一般是由技术、财务、人事等多个部门组成的小组来进行的。,一、可行性研究,3、系统流程图在进行可行性研究时需要了解和分析现有系统,并以概括的形式表达对现有系统的认识。进入设计阶段以后应该把设想的新系统的逻辑模型转变成物理模型,因此需要描绘未来的物理系统的概貌。系统流程图是描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等)。系统流程图表达的是部件的信息流程,而不是对信息进行加工处理的控制过程。1)系统流程图的功能如下:制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,它是系统分析员作进一步分析的依据。系统流程图是系统分析员、管理人员、业务操作人员相互交流的工具。系统分析员可以直接利用系统流程图画出可以实现计算机处理的部分可利用系统流程图来分析业务流程的合理性,一、可行性研究,2)系统流程图的符号,一、可行性研究,一、可行性研究,3)系统流程图示例例用系统流程图来分析下述问题。某图书馆闭架借书流程如下:读者须先验明证件后才能进入查询室。读者在查询室内通过检书卡或利用终端检索图书数据库来查找自己所需的图书。找到所需图书并填好索书单后到服务台借书。如果所借图书还有剩余,管理员将填好借书单,从库房中取出图书交于读者。,一、可行性研究,4、可行性研究报告主要内容,一、可行性研究,4、可行性研究报告主要内容,一、可行性研究,4、可行性研究报告主要内容,一、可行性研究,4、可行性研究报告主要内容,一、可行性研究,4、可行性研究报告主要内容,一、可行性研究,4、可行性研究报告主要内容,一、可行性研究,4、可行性研究报告主要内容,一、可行性研究,4、可行性研究报告主要内容,二、需求分析的任务,需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,准确地回答“系统必须做什么?”这个问题。虽然在可行性研究阶段已经粗略了解了用户的需求,甚至还提出了一些可行的方案,但是,可行性研究的基本目的是用较小的成本在较短的时间内确定是否存在可行的解法,因此许多细节被忽略了.需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整,准确,清晰,具体的要求。在这个阶段结束时交出的文档中应该包括详细的数据流图,数据字典和一组简明的算法描述。,二、需求分析的任务,由当前系统建立目标系统模型,需求分析需要借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决系统做什么的问题,二、需求分析的任务,1、确定对系统的综合需求1)系统功能要求应该划分出系统必须完成的所有功能。2)系统性能要求如联机系统的响应时间、系统需要的存储容量以及后援存储、重新启动和安全性等方面的考虑都属于性能要求。3)运行要求这类要求集中表现为对系统运行时所处环境的要求.例如,支持系统运行的系统软件是什么,采用哪种数据库管理系统,需要什么样的外存储器和数据通信接口等。4)将来可能提出的要求应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求.这样做的目的是在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦需要时能比较容易地进行这种扩充和修改。,二、需求分析的任务,2、分析系统的数据要求任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务.分析系统的数据通常采用建立概念模型的方法。复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的逻辑关系.利用数据字典可以全面准确地定义数据,但是数据字典的缺点是不够形象直观.为了提高可理解性,常常利用图形工具辅助描绘数据结构.常用的图形工具有层次方框图和Warnier图。软件系统经常使用各种长期保存的信息,这些信息通常以一定方式组织并存储在数据库或文件中,为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。,二、需求分析的任务,3、导出系统的逻辑模型综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图,数据字典和主要的处理算法描述这个逻辑模型.4、修正系统开发计划根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划.5、开发原型系统建立原型系统作的策略主要理由如下:(1)由于人类认识能力的局限,不能预先指定所有要求;(2)在用户和系统分析员之间存在固有的通信鸿沟;(3)用户需要一个活的系统模型,以便获得实践经验;(4)在开发过程中重复和反复是必要的和不可避免的;(5)目前有快速建立原型系统的工具可供选用.,三、需求分析的步骤,1、调查研究分析人员同程序员研究系统数据的流程及调查用户需求或查阅可行性报告、项目开发计划报告,访问现场,获得当前系统的具体模型,以IPO(输入、处理、输出)图或DFD(数据流图)图表示。系统分析员把沿数据流图回溯过程中所划分出来的数据元素记录在数据字典中,把对算法的简明描述记录在IPO图中,并把通过分析而补充的数据流、数据存储和处理,添加到数据流图的适当位置。用户倾听和复查分析员的报告,确认分析员的认识是否正确、有无遗漏,并及时纠正和补充分析员的认识。跟踪数据流图和复查系统的逻辑模型这两个步骤实质上构成一个循环,分析员在分析过程中必须充分重视和使用数据流图、数据字典和算法工具。,三、需求分析的步骤,2、分析与综合分析员从数据流和数据结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的限制,分析它们是否满足功能要求,是否合理。根据功能需求、性能需求、运行环境需求等,删除不合理部分,增加需要部分,组中综合成系统的解决方案,给出目标系统的详细逻辑模型。3、书写文档系统需求规格说明说修正开发计划4、需求分析评审,三、结构化分析与建模,1、关于建模所谓模型,就是为了理解事务而对事务做出的一种抽象,是对事务的一种无歧义的书面描述。软件需求分析建立起来的模型称为需求模型,分析模型实际上是一组模型,它是一种目标系统逻辑表示技术,可以由一组图形符号和组织这些符号的规则组成。利用需求模型不仅可以把知识规范的表示出来,而且可以降低问题的复杂度,便于问题的理解和设计,同时,可以使开发人员与用户之间易于交流。模型用于描述软件目标系统所有的数据信息、处理功能、用户界面及运行的外部行为等,模型并不涉及到软件的具体实现细节。常用的方法有SA建模、Jackson建模、OO建模等。,三、结构化分析与建模,2、结构化分析介绍结构化分析(SA:StructuredAnalysis)是基于面向数据流的分析方法之一,是具有代表性的一种需求建模方法。结构化方法的基本思想是把系统自上向下逐层分解,逐步求精,它的基本原则是抽象与分解。在结构化分析建模活动中,核心是数据字典,围绕数据字典有3个子模型,即数据模型、功能模型、行为模型。数据模型用于描述数据对象之间的关系,通常采用“实体关系图“(ERD:Entity-RelationshipDiagram)来描述。功能模型常用数据流图(DFD:DataFlowDiagram)来描述,数据流图符号简单实用,是结构化分析技术被广泛使用的原因之一。行为模型常用状态转换图来描述,它通过描述系统的状态以及已经引起系统状态转换的事件来表示系统的行为。,三、结构化分析与建模,3、数据流图3.1含义:数据流图从数据传递和加工的角度,以图形方式描述数据流从输入到输出的传输变换过程。数据流图是结构化分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理功能。3.2特征:抽象性:仅保留信息和数据存储、流动、使用以及加工的情况。概括性:数据流图把系统对各种业务的处理过程联系起来,形成一个总体,具有概括性。层次性,三、结构化分析与建模,3.3数据流图的基本图形符号,三、结构化分析与建模,数据流:用箭头描述,由一组固定的数据项组成,箭头方向表示数据的流向,作为数据在系统内的传输通道。加工:用圆或椭圆描述,又称数据处理,表示输入数据在此进行变换产生输出数据,以数据结构或数据内容作为加工对象。数据存储文件:用双杆描述,在数据流图中起保存数据的作用,又称数据存储或文件,可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可以理解为写入文件或查询文件,从数据存储流出的数据流可以理解为从文件读数据或得到查询结果。数据源点或终点:用方框描述,表示数据流图中要处理数据的输入来源或处理结果要送往的地方,在图中仅作为一个符号,并不需要以任何软件的形式进行设计和实现,是系统外部环境中的实体,故称外部实体。它们作为系统与系统外部环境的接口界面,在实际的问题中可能是人员、组织、其他软硬件系统等。一般只出现在分层数据流的顶层图中。,三、结构化分析与建模,3.4数据流与加工之间的关系图,三、结构化分析与建模,3.5数据流图的画法1)确定系统的输入输出由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。此时,应该向用户了解“系统从外界接受什么数据”、“系统向外界送出什么数据”等信息,然后,根据用户的答复画出数据流图的外围。2)由外向里画系统的顶层数据流图首先,将系统的输人数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方就是一个加工。接着,给各个加工命名。然后,给加工之间的数据命名。最后,给文件命名。3)自顶向下逐层分解,绘出分层数据流图对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。,三、结构化分析与建模,3.6示例:商店业务处理系统,顶层数据流图,三、结构化分析与建模,第一层数据流图,三、结构化分析与建模,销售细化,三、结构化分析与建模,采购细化,三、结构化分析与建模,4、数据字典4.1数据字典的定义数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完成的定义与说明,是数据流程图的补充工具。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,没有数据流图数据字典也难于发挥作用。4.2数据字典的内容数据字典的内容主要是对数据流程图中的数据项、数据结构、数据流、处理逻辑、数据存储和外部实体等六个方面进行具体的定义。,三、结构化分析与建模,1、数据项的定义:数据项又称数据元素,是数据的最小单位。具体包括:(1)数据项的名称、编号、别名和简述;(2)数据项的长度;(3)数据项的取值范围。,三、结构化分析与建模,2、数据结构的定义:数据结构描述某些数据项之间的关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,还可以由若干个数据项和数据结构组成。数据字典中对数据结构的定义包括以下内容:(1)数据结构的名称和编号;(2)简述;(3)数据结构的组成。如果是一个简单的数据结构,只需列出它所包含的数据项。如果是一个嵌套数据结构,只需列出它所包含的数据结构名称,因为这些被包含的数据结构在数据字典其他部分已有定义。,三、结构化分析与建模,3、数据流的定义数据流由一个或一组固定的数据项组成。定义数据流时,不仅要说明数据流的名称、组成等,还应指明它的来源、去向和数据流量等。,三、结构化分析与建模,4、处理逻辑的定义:处理逻辑的定义仅对数据流程图中最底层的处理逻辑加以说明。(常用处理逻辑说明工具有:结构式语言、判断树、判断表等),三、结构化分析与建模,5、数据存储的定义:数据存储在数据字典中只描述数据的逻辑存储结构,而不涉及它的物理组织。,三、结构化分析与建模,6、外部实体的定义:外部实体定义包括外部实体编号、名称、简述及有关数据流的输入和输出。,三、结构化分析与建模,4.3数据的定义1、数据定义的符号,符号含义举例被定义为与x=ab.,.或.|.或x=a,b,x=a|b.或m.n重复x=a,x=3a8(.)可选x=(a)“.”基本数据元素x=“a”.连结符x=1.9,三、结构化分析与建模,2、示例:存折,三、结构化分析与建模,存折户名所号帐号开户日性质(印密)1存取行50户名2字母24所号“001”.“999”帐号“00000001”.“99999999”开户日年月日性质“1”.“6”注:“1”表示普通户,“5”表示工资户等印密“0”注:印密在存折上不显示存取行日期(摘要)支出存入余额操作复核,文件名:各班学生用书表别名:组成:系编号专业和班编号年级书号组织:按系、专业和班编号从小到大排列存取要求:关键字是专业和班编号,三、结构化分析与建模,5、其他图形工具5.1判定表当数据流图的加工需要依赖于多个逻辑条件的取值时,使用判定表来描述比较合适。,三、结构化分析与建模,5.2层次方框图层次方框图通过树型结构的一系列多层次的矩形框描述复杂数据的层次结构,非常适合描述自顶向下的需求分析方法中数据的层次关系。系统分析员可以从对顶层信息的分类开始,沿着层次图中的每条路径逐步细化,直到确定了数据结构的全部细节为止。,三、结构化分析与建模,5.3IPO图IPO图能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。,三、结构化分析与建模,6、实体关系图(E-R图)E-R(Entity-Relation)方法,即实体联系方法是目前最常用的数据建模方法,可以用于在需求分析阶段清晰地表达目标系统中数据之间的联系及其组织方式,建立系统的实体数据模型(E-R模型)。实体模型可以根据需要在软件实现时转换成各种不同数据库管理系统所支持的数据物理模型。实体模型由实体、联系和属性三个基本成分组成。(1)实体:指客观世界存在的且可以相互区分的事物。实体可以是人,也可以是物,还可以是抽象概念。如职工、计算机、产品都是实体。(2)属性:有时也称性质,是指实体某一方面的特征。一个实体通常由多个属性值组成。如学生实体具有学号、姓名、专业、年级等属性。(3)联系:指实体之间的相互关系。实体之间的联系可主要划分为三类:一对一(1:1)、一对多(1:n)和多对多(m:n)。联系也可以具有属性。为了便于实现,在进行数据库设计时通常将多对多的联系转换为一对多的联系。,三、结构化分析与建模,E-R模型中的基本符号,三、结构化分析与建模,学生和课程之间的E-R模型学生和课程之间的多对多联系E-R模型;(b)将多对多联系转换为一对多联系E-R模型,三、结构化分析与建模,库房管理系统的ER图,7、结构化分析实例:教材购销管理系统问题描述:学校教材科根据业务的需要,建立一个学校教材购销管理系统,提高教材采购、销售和信息管理的效率。,学生,审查有效性,购书单,开发票,开领书单,发书,学生,有效购书单,发票,领书单,书,2)去掉具体模型中的非本质因素,抽象

温馨提示

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

最新文档

评论

0/150

提交评论