系统需求分析与定义.ppt
《系统需求分析与定义.ppt》由会员分享,可在线阅读,更多相关《系统需求分析与定义.ppt(207页珍藏版)》请在三一办公上搜索。
1、软件工程,1,系统需求分析与定义,一、计算机系统分析二、软件需求分析三、结构化分析方法四、快速原型化方法五、面向对象分析方法六、需求分析文档的原则和评审,软件工程,2,一、计算机系统分析,基于计算机的系统基于计算机的系统的系统元素包括硬件、软件、人、数据库、文档和过程。软件 计算机程序、数据结构、相关文档;硬件 电子计算设备(如CPU,存储器)和外部机电设备(如传感器、马达等);人 硬件和软件的用户;数据库 一个大型的有组织的信息集合;,软件工程,3,基于计算机系统的系统元素,软件工程,4,文档 手册、表格和其它用以描述系统使用和操作的信息;过程 定义每一种系统元素的特定使用步骤,或系统驻留的
2、过程性环境。,系统的层次结构,基于计算机的系统本身可以成为一个更大的基于计算机系统中的一个元素,并称为那个更大系统的宏元素。,软件工程,5,工厂自动化系统,软件工程,6,2.系统分析,系统分析是一个问题求解活动,目的是揭示、分析所期望的功能,并把它们分配到各个单独的系统元素中去。与用户合作确认用户的目标和约束;导出功能、性能、接口、设计约束和信息结构的表示;将它们分配到每一个系统元素中。,软件工程,7,系统分析的任务,识别用户要求评价系统的可行性进行经济分析和技术分析把功能分配给硬件、软件、人、数据库和其他系统元素建立成本和进度限制生成系统规格说明,形成所有后续工程的基础。,软件工程,8,1)
3、识别用户要求,分析员必须考虑以下问题:,功能和性能 可靠性和质量 总的系统目标 成本与进度限制,制造需求 市场与竞争情况 有效的技术 将来可能的扩充,识别希望的功能和性能范围;确定系统的功能、性能、约束和接口;,软件工程,9,2)可行性研究,可行性研究经济可行性技术可行性法律可行性用户操作可行性可行性研究的步骤确定项目的规模和目标研究当前正在运行的系统建立新系统的高层逻辑模型,软件工程,10,导出和评价各种方案推荐可行的方案编写可行性研究报告,经济可行性 成本效益分析,成本估算专家估算技术(Delphi技术)成本估算模型(COCOMO)效益估算投资回收期,软件工程,11,纯收入投资回收率,技术
4、可行性 技术风险分析,技术解决方案的实用性使用的技术实用化程度技术解决方案合理程度技术资源的可用性参与人员的工作基础基础硬件/软件的可用性软件工具实用性,软件工程,12,法律可行性 侵权和责任问题,专利法著作权法软件保护条例,用户操作可行性,用户类型:外行型熟练型专家型操作习惯使用单位的计算机使用情况使用单位的规章制度,软件工程,13,3)功能分配给系统元素的原则,对同一功能,可以分配不同的系统元素。为选取最有效的分配方案,使用一组权衡准则进行评价项目考虑 在预估的成本与进度范围内所选的系统配置能否实现?与成本与进度估算相关的风险有哪些?商业考虑所选的系统配置是最可能有效益的解决方案吗?,软件
5、工程,14,能否成功地占领市场?最终的报偿是否能表明所冒的开发风险是值得的?技术分析是否具备开发所有系统元素的技术实力?能否确保功能和性能得到满足?能否对系统配置进行充分的维护?是否具备技术资源?与技术相关的风险有哪些?生产评估,软件工程,15,生产工具与设备是否有效?必需的过程是否短缺?是否充分地实施了质量保证?人员问题开发人员是否得到培训?用户是否了解这个系统将要做什么?环境接口所提交的系统配置与系统的外部环境的接口是否合适?,软件工程,16,机器与机器、人与机器之间的通信是否以智能方式处理?法律考虑这种配置是否会引入违法的责任风险?对责任问题是否给予了足够的保护?是否存在潜在的破坏问题?
6、,软件工程,17,二、软件需求分析,需求分析是一项软件工程活动,其目的是:清楚地理解所要解决的问题,完整地获取用户要求;刻划出软件的功能和性能;指明软件与其他系统元素的接口;建立软件必须满足的约束。,1.软件需求分析的目的,软件工程,18,需求分析是一项软件工程活动,它包括:需求获取刻划出软件的功能和性能;指明软件与其他系统元素的接口;建立软件必须满足的约束。需求建模需求分析建立起来的模型为日后软件设计人员提供了可被翻译成数据、体系结构、接口和处理过程设计的模型。,2.需求分析的任务,软件工程,19,需求规格说明需求规格说明为开发人员和用户提供软件开发完成时质量评价的依据。需求评审需求分析研究
7、的对象是用户的要求。必须全面理解用户的各项要求,准确表达被接受的用户要求。只有经过确切描述的软件需求才能成为软件设计的基础。,软件工程,20,软件开发是要实现目标系统的物理模型。需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题。,软件工程,21,软件工程,22,需求分析的过程可以分成四个阶段:需求获取研究系统的可行性分析报告和软件项目实施计划。从系统角度来理解软件并评审用于产生计划估算的软件范围是否恰当;通过调研确定对目标系统的需求;提出这些需求实现条件,以及需求应达到的标准。,3.需求分析的过程,软件工程,23,建立分析所需要的沟通途径,以保证能
8、顺利地对问题进行分析。,管理人员,用户,分析人员,软件开发组,软件需求说明,软件实施计划,原型,软件实施计划,软件实施计划,软件需求说明,软件需求说明,原型,原型,软件工程,24,需求建模 进行各种要求的一致性检查;逐步细化所有的软件功能;分解数据域,分配给各个子功能;找出系统各成分之间的联系、接口特性和设计限制。判断是否存在不合理的用户要求或用户尚未提出的潜在要求。综合成系统的解决方案,给出目标系统的详细逻辑模型。,软件工程,25,常用的分析方法,面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)面向对象的分析方法(O
9、OA)等,软件工程,26,编制需求分析阶段的文档软件需求规格说明;初步的用户手册;确认测试计划;修改和完善软件开发计划。需求评审(确认)作为需求分析阶段工作的复查手段,应该对功能的正确性、文档的一致性、完备性、准确性和清晰性,以及其他需求给予评价。,软件工程,27,需要能够表达和理解问题的信息域和功能域信息流:数据和控制通过一个系统时的变化方式。两个功能之间的数据/控制传递就确定了功能间的接口。信息内容:单个数据或控制对象,它们构成了某个更大的由软件变换生成的信息的集合。信息结构:各种数据和控制项的内部组织。,4.需求分析的原则,软件工程,28,以层次化的方式对问题进行分解和不断细化,软件工程
10、,29,给出系统的逻辑视图和物理视图软件需求的逻辑视图给出的是软件要达到的功能和要处理的数据之间的关系,而不是实现的细节。软件需求的逻辑描述是软件设计的基础。软件需求的物理视图给出的是处理功能和数据结构的实际表现形式,这往往是由设备本身决定的,因此推迟到设计阶段考虑。,软件工程,30,5.需求获取,需求获取是在问题及其最终解决方案之间架设桥梁的第一步。获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析人员、开发人员和客户就能探索出描述这些需求的多种解决方案。需求获取技术包括两方面的工作:建立获取用户要求的方法的框架;支持和监控需求获取的过程的机制。,软件工程,
11、31,1)软件需求的层次,业务需求反映了组织或客户开展相关业务的工作流和业务规则,是对系统、产品高层次的目标要求,与该组织或客户的业务领域有关。用户需求 描述用户使用软件需要完成哪些任务,可通过用例(use case)图或场景说明加以阐明。功能非功能需求 定义了开发人员必须实现的软件功能,而非功能需求如表所示:,软件工程,32,软件工程,33,2)需求获取技术的基本特征,一种好的需求获取技术,对于规范需求获取活动,高效准确地获取需求定义,是十分重要的。好的需求获取技术,应具有如下基本特征:提供便于沟通的工具,如易于理解的语言;提供定义系统边界的方法;提供支持抽象的机制,如“分解”、“映射”等;
12、,软件工程,34,鼓励分析员使用面向问题的术语思考问题,编写文档;为分析员提供多种可供选择的解决方案;适应需求的变化。适于以上特征的需求获取方法:基于数据流图的结构化分析方法;基于用例(use case)的建模方法。需求获取技术的关键点在于:深入浅出 需求获取要尽可能全面、细致。,软件工程,35,获取的需求是个全集,系统真正实现的是个子集。细致地调研并不表明在分析时将调研内容都纳入到新系统中,但有利于以后的扩充。以流程为主线 在与用户交流的过程中,应该用流程将所有的内容串起来。如信息、组织结构、处理规则等。这样便于交流沟通。流程的描述既要有宏观,又要有微观。即要强调总体的业务流程、全生存期的业
13、务流程,又要对流程细化,有分支的业务流程。,软件工程,36,3)需求获取应遵循的原则,抽象和分解是在人们认识世界和改造世界的长期实践中总结出来的行之有效的原则,在需求获取的过程中需遵循的三个原则:分解:捕获问题空间的整体部分关系。如问题子问题分解;抽象:捕获问题空间的一般化特殊化关系。如问题的不同变型;投影:捕获问题空间的多维视图。即从不同角度考察。,软件工程,37,4)需求获取的步骤,软件开发项目和组织文化的不同,对于需求开发没有一个简单的、公式化的途径。下面列出9个步骤,用以指导需求获取活动。定义项目的视图和范围 包括组织结构图、各部门的岗位/角色列表。确定用户类 包括人员/责任矩阵。确定
14、目标系统的业务工作流 包括物流、资金流、信息流,建立业务工作流模型。,软件工程,38,运用需求获取技术开发用例(或数据流图)并设置优先级 用以掌握主要业务规则。收集来自用户的质量特性信息和其他非功能需求 将性能、安全性、可靠性等需求和其他设计约束结合业务规则,形成功能需求。分类在用例(或数据流图)中涉及的数据 包括数据的组成和数据之间的关系。详细拟订用例(或数据流图)建立功能模型,并进行审查,用以澄清需求获取的参与者对需求的理解。,软件工程,39,开发并评估界面原型 设想输入设备、输出设备、显示风格、显示方式、输出格式等,建立接口规范和信息流传输规则。从功能描述中开发概念测试用例 用测试用例来
15、验证用例(或数据流图)、功能需求和原型。,软件工程,40,需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。表现在:需求的不稳定性:在整个软件生存周期内软件需求会随着时间的推移发生变化;需求的不准确性:用户和开发人员的认识会随着使用系统实现业务流程的实践逐步提高,一开始不可能设想得面面俱到。需求获取只有通过有效的客户/开发者的合作才能成功。,软件工程,41,5)针对信息系统的需求调研方法,调研用户的组织结构、岗位设置、职责定义,从功能上区分有多少个子系统,划分系统的大致范围,明确系统的目标。调研每个子系统的工作流程、功能与处理规则,收集原始信息资料,用数据流来表示物流、资金流
16、、信息流三者的关系。对调研内容事先准备,针对不同管理层次的用户询问不同的问题,列出问题清单。将操作层、管理层、决策层的需求既联系又区分开来,形成一个需求的层次。,软件工程,42,对与用户沟通的情况及时总结归纳,整理调研结果,初步构成需求基线。若基线符合要求,则需求获取完成。需求调研的主要手段:发调查表;召开调查会;向用户领域的专家个别咨询;实地考察,跟踪现场业务流程;查阅与待开发系统有关的资料;使用各种调查工具等。,软件工程,43,6)需求整理与表达的方法,采用穷举方法可以避免遗漏。采用归纳方法,通过对各种情况进行综合分类可以使问题条理化。采用抽象方法,可以发现问题的实质,抓住问题的主要矛盾,
17、忽略其次要矛盾。需求整理可以多种手段共用,如组织结构图、业务流程图、多叉树、关系矩阵、文字叙述、表格、图形等。需求描述包括组织结构与岗位定义、业务流程、处理规则、数据项、功能以及上述 5 个方面的关系。,软件工程,44,结构化分析方法最初只是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。扩充后,将建模技术扩展到数据建模、功能建模和行为建模,以实体-关系图、数据流图和控制流图、状态-迁移图为工具,数据字典为核心,从不同视点建立系统的分析模型。,三、结构化分析方法,软件工程,45,结构化分析的分析模型,软件工程,46,1.数据建模,数据模
18、型包括三种互相关联的信息:数据对象,描述对象的属性,描述对象间相互连接的关系。在需求分析阶段描述数据对象和它们之间的关系,使用了E-R图。例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体型)有学生、教师和课程。,软件工程,47,软件工程,48,实例的关联有三种:一对一(1:1);一对多(1:m);多对多(n:m)。这种实例的关联称为“基数”。基数表明了“重复性”。,软件工程,49,E-R图中表示实体关联的符号如下:,一个X与一个Y相关联,一个X与一个或多个Y相关联,一个X与零个或一个Y相关联,一个X与零个,一个或多个Y相关联
19、,一个X与一个Y或Z相关联,一个X与一个Y与Z相关联,软件工程,50,2.功能建模和数据流图,最初,结构化分析方法仅讨论数据流建模。目标系统被表示成如图所示的数据变换流程图。系统的功能体现在核心的数据变换中。,软件工程,51,1)功能建模的思想,功能建模就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。根据DeMarco的论述,功能模型使用了数据流图来表达系统内数据的运动情况,而数据流的变换则用结构化英语、判定表与判定树来描述。,软件工程,52,2)数据流图中的主要图形元素,软件工程,53,分层的数据流图,软件工程,54,3)
20、数据流图的层次结构,为了表达数据处理过程,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,软件工程,55,4)功能建模的步骤,对考生送来的报名单进行检查;对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;制作考生通知单(含成绩及合格
21、/不合格标志)送给考生;按地区进行成绩分类统计和试题难度分析,产生统计分析表。,实例 考务处理系统的功能,软件工程,56,顶层图封闭在外部实体之间,反映系统与外部的交互。,软件工程,57,这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能以及系统与外界的关系。该图或称为上下文环境图或语境图(Context Diagram)数据流图绘制步骤首先确定系统的输入和输出根据考务处理业务,画出顶层数据流图,以反映最主要业务处理流程经过分析,考务业务处理的主要功能应当,软件工程,58,有登记报名单、统计成绩两大项。主要数据流输入的源点和输出终点是考生、考试中心和阅卷站。然后从输入端开始,
22、根据考务业务工作流,画出数据流流经的各加工框,逐步画到输出端,得到第1层数据流图。画加工的内部:用画第1层图同样的方法画出每个加工的DFD子图。重复第 5 步,直至图中的尚未分解的加工都足够简单。至此得到分层数据流图。,软件工程,59,软件工程,60,软件工程,61,软件工程,62,5)绘制数据流图的原则,数据流图上所有图形符号只限于前述四种基本图形元素,它们的命名应反映其实际含义;数据流图的顶层图上的数据流必须封闭在外部实体之间;每个加工至少有一个输入数据流和一个输出数据流;允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出数据流流向两个不同的加工。,软件工程,63,在数
23、据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系;规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡;如果一个数据文件仅在展开的数据流子图中使用,可以在父图中不画出;可以在数据流图中加入物质流,帮助用户理解数据流图;数据流图中不可夹带控制流,但针对实时系统可以加入控制流,成为数据流图的扩展形式。,软件工程,64,软件工程,65,软件工程,66,3.行为建模,行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这种建模的符号。状态迁移图Petri网,软件工程,67,1)状态迁移图,例如,有关
24、CPU分配的进程的状态迁移。,软件工程,68,状态迁移图是描述系统的状态如何响应外部的事件进行推移的一种图形表示。“”表示可得到的系统状态“”表示从一种状态向另一种状态的迁移。,软件工程,69,2)Petri网,Petri网已广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。Petri网简称PNG(Petri Net Graph),它有两种结点:位置:符号“”,表示系统状态。转移:符号“|”,表示系统中的事件。有向边“”表示向转移的输入,或从转移的输出。,软件工程,70,标记,或称令牌(token),是表明系统当前处于什么状态的标志。
25、Petri网可能的变化有:,软件工程,71,例如,处理两个进程PR1和PR2的同步问题(此时两个进程共用一个资源R):,软件工程,72,软件工程,73,4.数据字典,数据字典是结构化分析方法的核心。与各模型的图形表示配合,能清楚地表达数据处理的要求词条描述 对于在模型中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等。,软件工程,74,(1)数据流词条描述数据流名:说明:简要介绍它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构数据量流通量:数据量,流通量,1)词条描述,软件工程,75,(2)数据元素词条描述类型:数字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 需求 分析 定义
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4935953.html