04章软件需求工程_第1页
04章软件需求工程_第2页
04章软件需求工程_第3页
04章软件需求工程_第4页
04章软件需求工程_第5页
已阅读5页,还剩187页未读 继续免费阅读

下载本文档

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

文档简介

第四章软件需求工程软件工程课件1第四章软软件需求工程4.1软件需求求工程基基础4.2软件需求求获取4.3传统的需需求分析析方法4.4面向对象象的需求求分析4.5快速原型型化方法法4.6软件需求求规格说说明4.7软件需求求评审4.8软件需求求管理2软件工程程4.1软件需求求工程基基础软件需求求工程的的基本任任务是准准确地回回答“软软件系统统必须做做什么??”这个个问题。。它在系系统工程程和软件件设计之之间起到到桥梁的的作用。。软件需求求工程是是软件生生存周期期中重要要的一步步,也是是决定性性的一步步。只有有通过软软件需求求工程的的活动才才能把软软件功能能和性能能的总体体概念描描述为具具体的软软件需求求规格说说明,从从而奠定定软件开开发的基基础。系统工程软件需求工程软件设计工程3软件工程程软件需求求的定义义和层次次1997年IEEE在《软件工程程标准词汇表》对需求((requirement)所作出出的定义义为:用户为解解决某一一问题或或为达到到某个目目标所需需要的条条件或能能力。(需方))系统或系系统部件件为满足足合同、、标准、、规格说说明或其其他正式式的强制制性文档档所必须须具有的的条件或或能力。。(供方))对在a)和b)中所描述述的条件件或能力力的文档档化说明明。4软件工程程GB/T11457―2006《《信息技术术软件件工程术术语》等同采用用了这个个定义。。它从两两个方面面阐述了了需求的的含义::从用户角角度要求求系统应应具有的的外部行行为从开发者者角度要要求系统统应具有有的内部部特性最后强调调了需求求一定要要文档化化。软件需求求包括3个不同的的层次::业务需求求、用户需求求、功能需求求和非功功能需求求。不同层次次是从不不同角度度与不同同程度反反映着细细节问题题。5软件工程程业务需求求(BusinessRequirement)业务需求求反映了了组织或或客户高高层次的的目标要要求。业务需求求主要来来自于项项目的投投资人、、购买产产品的客客户、实实际用户户的管理理者、市市场营销销部门或或产品策策划部门门。业务需求求描述了了组织的的愿景,,即为什么要要开发一一个系统统;系统的业业务范围围、业务对象象、客户、特性、价值和各种特特性的优优先级别别等。6软件工程程用户需求求描述了了要求系系统必须须完成的的任务,,即用户户对系统统的目标标要求。。用户需求求通常只只涉及系系统的外外部可见见行为,,不涉及及系统的的内部特特性。用户需要要是用户真真正需要要的东西西,用户需求求是用户对对其需要要的一种种陈述,,但这种种陈述可可能与它它们的需需要不一一致。用户需求求一般采采用自然然语言和和直观图图形相结结合的方方式描述述,例如如采用用用例(UseCase)文档或或场景((Scenario)等方式式说明。。用户需求求(userRequirement)7软件工程程功能需求求和非功功能需求求功能需求求定义了了开发者者应提供供的软件件功能或或服务,,但不涉涉及这些些功能或或服务的的实现。。非功能需需求则是是对功能能需求的的补充,,包括了了对系统统的各种种限制和和用户对对系统的的质量要要求。特性是指指逻辑上上相关的的功能需需求的集集合以满满足业务务需求。。功能需求求记录在在软件需需求规格格说明((SRS)中。非功能需需求的描描述如下下:8软件工程程产品需求性能实时性;其他时间限制,包括响应时间、处理时间、包传送时间等;资源配置需求,包括内存容量、磁盘容量、缓存容量、硬软件支持等;处理精度、单位时间处理量、网络流通量等。接口相关硬件接口、软件接口、人机接口可靠性可用性(系统无故障运行时间所占总运行时间的百分比)完整性(系统的行为遵从用户需求所期望行为的百分比)安全性系统一旦发生故障降低损失防止严重危害的能力保密性防止非法访问保证信息不泄露的能力9软件工程程产品需求运行限制使用频度、运行期限;控制方式(如本地控制还是远程控制);对操作员的需求;物理限制对系统的规模等限制。过程需求开发类型(实用型开发还是试验型开发?是有机型、嵌入型还是半独立型项目?)开发工作量估计对资源、开发时间及交付的安排开发方法应遵循的规范和标准(如开发规范、文档规范、专业标准等)里程碑和评审(如对阶段制品设置检查点和评审内容)质量控制标准及验收标准(如质量检验指标)10软件工程程系统需求求来自于于系统分分析和结结构设计计。例如,有有一个电电信计费费系统,,它包括括许多业业务规则则,这些些业务规规则与企企业方针针、政府府条例、、会计准准则、计计算方法法有关,,它们本本身并非非软件需需求,因因为它们们不属于于任何特特定的软软件系统统的范围围,它们们属于系系统需求求。过程需求建立可理解性、可修改性、可移植性、可测试性、效率等质量需求并设置优先级可维护性系统需求求11软件工程程功能需求非功能需求系统需求软件需求规格说明质量属性外部接口约束业务需求愿景和范围文档用户需求用例文档功能需求业务需求12软件工程程所有的用用户需求求必须与与业务需需求一致致。功能需求求必须从从用户需需求中提提取,以以满足用用户对产产品的要要求从而而完成其其任务。。开发人员员应根据据功能需需求来设设计软件件以实现现必须的的功能。。功能需求求从外部部(用户户角度))描述了了软件系系统所应应具有的的行为。。对一个复复杂产品品来说,,软件功功能需求求也许只只是系统统需求的的一个子子集。各种需求求的关系系13软件工程程非功能需需求作为为功能需需求的补补充,包包括产品必须须遵从的的标准、、规范和和合约;;外部接口口的具体体细节;;性能要求求;设计或实实现的约约束条件件及质量量属性。。约束是指指在软件件产品设设计和构构造上的的限制。。质量属性性是通过过多种角角度对产产品的特特点进行行描述,,从而反反映产品品功能。。多角度描描述产品品对用户户和开发发者都极极为重要要。14软件工程程软件需求求工程过过程软件需求求工程阶阶段研究究的对象象是软件件项目的的用户需需要。需需要注意意的是,,必须全面地理理解用户的各各种需求求分析和澄澄清模糊的用用户需求求准确地表表达被接受的的用户需需求只有经过过确切描描述的软软件需求求才能成成为软件件设计的的基础。。软件需求求工程需需要执行行的活动动包括::15软件工程程1)确定目标标系统将将要面对对的各类类用户;;2)从各类用用户的代代表那里里收集需需求;3)了解用户户的任务务和目标标,以及及这些任任务要实实现的业业务目标标;4)分析从用用户那里里得到的的信息,,将用户户的任务务和目标标与软件件的功能能需求、、非功能能需求、、业务规规则、解解决方案案建议及及其他无无关信息息区分开开来;5)将顶层的的需求分分配到软软件系统统构架内内定义好好的软件件成分中中;6)了解各个个质量属属性的相相对重要要性;16软件工程程8)协商需求求的实现现优先级级;9)将收集的的用户需需求表述述为书面面的需求求规格说说明和模模型;10)审阅需求求文档,,以确保保在认识识上与用用户需求求相一致致。应在在开发组组接受需需求之前前解决所所有分岐岐。软件开发发的目标标是实现现目标系统统的物理理模型,即确定定待开发发系统的的各种软软件成分分,并将将功能和和信息结结构分配配到这些些软件成成分中。。但是目目标系统统的具体体物理模模型是由由当前系统统的具体体物理模模型经过过一系列列的转换换得到的。。17软件工程程软件需求求工程的的任务就就是借助助于当前系统统的逻辑辑模型导导出目标标系统的的逻辑模模型,解决目目标系统统“做什么”的问问题。目标系统当前系统物理模型逻辑模型模型化抽象化物理模型逻辑模型具体化实例化理解需求导出怎么做做什么18软件工程程Abran和Moore的软件需需求工程程过程模模型(未未包括需需求管理理)用户需求和系统需求需求规格说明用户需求草稿分析模型可行性研究分析建模需求获取需求描述需求有效性验证19软件工程程需求获取取1)定义需求求开发过过程2)定义项目目愿景和和范围3)确定用户户群4)选择用户户代理人人5)确定用例例6)确定系统统事件和和响应7)描述软件件的功能和性能8)指明软件件与其他他系统元元素的接口9)建立软件件必须满满足的约束20软件工程程分析建模模分析可行行性确定需求求优先级级为需求建建模创建数据据字典将需求分分配至各各子系统统应用质量量功能进进行调整整分析模型型为日后后软件设设计提供供了可被被翻译成成数据、体系结构构、接口和处理过程程设计的模模型。21软件工程程需求描述述需求规格格说明为为开发人人员和用用户提供供软件开开发完成成时质量量评价的的依据。。采用SRS模板确定需求求来源唯一标识识每项需需求记录业务务规范定义质量量属性需求有效效性验证证审查需求求文档,,确定合合格标准准22软件工程程4.2软件需求求获取需求获取取的目标标是确定定用户“需要”什么样的的软件产产品,即即新的软件件必须能能够做什什么。没有专业业的系统统分析人人员,用用户很难难了解到到需要开开发什么么相关信信息和功功能;另另一方面面,没有有与用户户的交流流,系统统分析人人员也很很难弄清清客户真真正需要要什么。。发现用户户需求的的过程称称为需求获取取。一旦提提出了最最初的需需求,进进一步推推敲、细细化和扩扩充的过过程称为为分析建模模。23软件工程程需求获取取过程需求获取取包括以以下活动动:发现和分分析问题题发现问题题症结,,并分析析问题的的原因/结果关系系。获取需求根据对问问题的理理解定义义需求。。使用调查查研究方方法收集集信息;;遵循需求求获取框框架,按按照三个个成分观观察:即即数据、过程和接口。需求归档档以草稿形形式归档档调查结结果。形形式有用用例、决决策表、、需求表表等。24软件工程程需求获取取技术的的基本特特征好的需求求获取技技术,对对于规范范需求获获取活动动,高效效准确地地获取需需求定义义,是十十分重要要的。好的需求求获取技技术,应应具有如如下基本本特征::提供便于于沟通的的工具,,如易于于理解的的语言和和直观的的图表;;提供定义义系统边边界(交交互)的的方法;;提供支持持抽象的的机制,,如“分分解”、、“映射射”等;;25软件工程程鼓励分析析员使用用面向问问题的术术语思考考问题,,编写文文档;为分析员员提供多多种可供供选择的的解决方方案;适应需求求的变化化。适于以上上特征的的需求获获取方法法:基于数据据流图的的结构化化分析方方法;基于用例例(usecase)的建模方法法。需求获取取技术的的关键点点在于::深入浅出出需求获取取要尽可可能全面面、细致致。26软件工程程获取的需需求是个个全集,系统真真正实现现的是个个子集。分析时时的调研研内容并并不都纳纳入到新新系统中中,目的的在于以以后的扩扩充。以流程为为主线在与用户户交流的的过程中中,应该该用流程程将所有有的内容容串起来来。如信信息、组组织结构构、处理理规则等等。这样样便于交交流沟通通。流程描述述有宏观观,也有有微观。。既要强强调总体体的业务务流程、、全生存存周期的的业务流流程,又又要对流流程细化化,有分分支的业业务流程程。27软件工程程需求获取取的主要要步骤开发高层层的业务务模型理解应用用领域,即目标标软件的的应用环环境。如如银行、、电信公公司、书书店等。。一旦系统统分析人人员对该该领域有有了充分分了解,,就可以以建立一个个业务模模型,描述用用户的业业务过程程,确定定用户的的初始需需求。分析出企企业的业业务实体体,开发发或选取取必需的的构件,,建立稳稳定的软软件体系系结构。。通过迭代代,更深深入了解解应用领领域,再再回过头头来推敲敲业务模模型。28软件工程程定义项目目的视图图和范围围在项目开开始之前前,在所所有干系系人中竖竖立一个个共同的的愿景,,明确供供需各方方的权利利和义务务,并发发布得到到共识的的、对项项目目标标的理解解。在共同愿愿景的确确立过程程中要做做两件事事情:定义项目目范围:项目范范围描述述项目该该做什么么,不该该做什么么,可通通过陈述述和图表表(如用用例图或或数据流流图)来来表达;;定义高层层需求:高层需需求不涉涉及过多多的细节节,主要要通过它它表示系系统的概概貌,从从而建立立需求模模型。29软件工程程寻求需求求的来源源软件需求求的来源源取决于于目标系系统的性性质和开开发环境境。典型型的需求求来源是是:与潜在用用户进行行交谈和和讨论描述现有有产品或或竞争产产品的文文档系统需求求规格说说明当前系统统的问题题报告和和改进要要求市场调查查和用户户问卷调调查观察用户户如何工工作用户工作作的场景景分析事件和响响应30软件工程程根据所受受限制不不同,不不同类型型的应用用系统能能够从用用户那里里获取需需求的比比例也不不同。所谓限制制,是指指受客观观物理规规律的限限制。相对低的相对高的从人群获取需求的大概百分比应用的类型高度受限的不受限制的导弹制导系统航班控制系统公司财务系统增强版制造控制系统公司财务系统视频游戏军事战略决策支持系统31软件工程程如导弹制制导系统统更多地地受物理理运动定定律的限限制,而而非人的的决策。。视频游游戏的大大部分需需求依赖赖人,因因为它是是一个想想象出来来的产品品。应用受到到的限制制越少,,能从人人们那里里获得的的需求比比例越大大。识别用户户类和用用户代表表确定目标标系统的的不同用用户类型型;挑选出每每一类用用户和其其他项目目相关者者的代表表并与他他们一起起工作;商定谁是是项目需需求的决决策者。。32软件工程程不同用户户类可能能还有不不同的非非功能需需求。不同用户户类的需需求甚至至可能发发生冲突突,导致致需求不不一致。。即使所有有利益相相关者的的需求一一致,也也可能由由于实现现代价高高昂,需需求不能能得到完完全满足足。用户类可可以是人人,也可可以是与与系统打打交道的的其他应应用程序序或硬件件部件。。分析员必必须在项项目初期期便确定定产品有有哪些不不同的用用户类,,并描述述它们的的特点,,这样就就能从每每个重要要用户类类的代表表那里获获取用户户需求。。33软件工程程每一个项项目,包包括企业业信息系系统、商商业应用用软件、、数据包包、集成成系统、、嵌入式式系统、、互联网网Internet应用程序序等,都都需要有有合适的的用户来来提供用用户需求求。确定目标标系统的的业务工工作流具体到当当前待开开发的应应用系统统,确定定系统的的业务工作作流和主要的的业务规则则。例如,针针对信息息系统的的需求调调研方法法如下::1)调研用户户组织结结构、岗岗位设置置、职责责定义,,从功能能上区分分子系统统,明确确系统范范围和目目标。34软件工程程调研每个个子系统的处理流程程、功能与处处理规则则,收集原原始信息息资料,,用数据流来表示物物流、资资金流、、信息流流三者的的关系。。对调研内内容事先先准备,,针对不同同管理层层次的用用户询问问不同的的问题,列出问问题清单单。将操作层、管理层、决策层的需求既既联系又又区分开开来,形形成一个个需求的的层次。。对与用户户沟通的的情况及及时总结结归纳,,整理调调研结果果,初步步构成需需求基线线。需求调研研的形式式可根据据需求的的来源来来确定。。35软件工程程访谈和文文档记录录大部分需需求获取取是人与与人沟通通的活动动,这些些活动经经过精心心组织,,以准确确获得最最好的效效果。准备和访访谈客户户的过程程如下::访谈之前前策划访谈谈的目标标和内容容:通过查阅阅组织的的组织结结构图,,搞清业业务部门门的各种种角色,,选择访访谈的主主要对象象预约访谈谈时间准备访谈谈内容,,拟定一一些具体体问题36软件工程程访谈过程程中引导访谈谈对象。。发现业业务流程程背后的的用户需需求:What:系统要要处理的的业务内内容是什什么。When:系统业业务过程程的主要要活动什什么时候候发生,,持续时时间有多多长。Who:系统业业务过程程的各个个活动中中会有哪哪些相关关的人、、物、事事(系统统)。Why:为什么么会出现现这样的的问题。。How:为完成成系统的的业务目目标所采采用的方方法。37软件工程程不管用户户说什么么,分析析员首先先要分析析,然后后置疑,,从而引引导用户户说出他他们真正正的需求求所在。。访谈之后后根据标准准模版撰撰写软件件需求规规格说明明SRS,打客户户需求草草稿通过电子子邮件征征求客户户意见需求的整整理与描描述开发反映映主要业业务规则则的用例例(或数数据流图图或状态态图),,与用户户沟通。。38软件工程程收集用户户的质量量属性信信息和其其他非功功能需求求,将性能能、安全全性、可可靠性等等需求和和其他设设计约束束结合业业务规则则,形成成功能需需求。分类在用用例(或或数据流流图)中中涉及的的数据,包括数数据的组组成和数数据之间间的关系系。详细拟订订用例((或数据据流图))的规格格说明,建立功功能模型型,并进进行审查查。开发并评评估界面面原型,建立接接口规范范和信息息流传输输规则。。从功能描描述中开开发概念念测试用用例,验证用用例(或或数据流流图)、、功能需需求和原原型。39软件工程程描述用户户需求需求可以以看成是是应用与与应用的的外部代代理(如如用户))之间的的交互。。可利用用用例作作为表达达工具。。用例描述述了系统统外的参参与者((Actor)与应用用之间的的交互情情况。主主要注重重用户对对系统的的看法。。描述客户户需求的的过程如如下:1)标识参与与者标识目标标系统将将支持的的不同类类型的用用户,可可以是人人、事件件或其他他系统。。2)标识场景景用场景描描述目标标系统典典型功能能的活动动细节,,并与用用户沟通通,加深深开发人人员对应应用领域域的理解解。40软件工程程3)标识用例例当双方确确定了一一组场景景后,开开发人员员从该场场景抽象象出一组组用例,,描述所所有可能能的情况况。用例例表达了了系统的的范围。。4)求精用例例细化每一一个用例例。引入入带有出出错处理理或带有有异常处处理的用用例,描描述系统统的行为为,保证证需求的的描述是是完全的的。5)标识用例例之间的的关系描述用例例之间的的依赖关关系,提提取相同同功能,,建立用用例模型型。6)标识非功功能需求求包括系统统性能上上的约束束、文档档、使用用资源、、安全性性和质量量等需求求。41软件工程程需求获取取期间,,开发人人员需要要访问一一些不同同的信息息资源::客户提供供的与应应用领域域相关的的文档和和手册。。将被目标标系统替替代的遗遗留系统统的技术术文档。。最终用户户和客户户本人。。以“图书书管理系系统”为为例,首首先标识识参与者者:Librarian图书管理理员:创建、、修改、、删除读读者信息息;添加加、编辑辑、删除除书目信信息;添添加、编编辑、删删除图书书信息。。Borrower读者:借阅、、预约、、归还图图书,以以及取消消书目预预约。42软件工程程图书(Book)是指某某种书目目(Title)的某一一流通中中的复本本。例如如“数学学分析教教程第二二册”的的5本馆藏复复本中的的第3本。识别用例例:BorrowBook:借阅图图书ReturnBook:返还图图书RecerveTitle:预约某某种书目目CancelReservation:取消预预约MaintainBorrowerInfo:维护读读者信息息,包括括创建、、修改、、取消读读者账户户MaintainTitleInfo:维护书书目信息息,包括括添加43软件工程程修改、删删除书目目信息MaintainBookInfo:维护图图书信息息,包括括添加、、修改、、删除图图书信息息Login:登录识别参与与者与用用例之间间的关系系(场景景)Borrower执行BorrowBook、ReturnBook、ReserveTitle、CancelReservation等用例。。Borrower是通过Librarian完成上述述用例的的工作。。则Borrower与Librarian存在依赖赖关系。。Librarian还与MaintainBorrowerInfo、Main-tainTitleInfo、MaintainBookInfo交互。44软件工程程Librarian还需要与与用例Login交互。画出用例例图BorrowerLibrarianBorrowBookReturnBookReserveTitleCancelReservation<<uses>>45软件工程程用例BorrowBook的规格说说明1.1前置条件件:在此此用例开开始之前前,Librarian必须登录录到系统统中。LibrarianLoginMaintainTitleInfoMaintainBookInfoMaintainBorrowerInfo46软件工程程1.2后置条件件:如果果此用例例执行成成功,在在系统中中建立并并存储一一条借阅阅记录,,必须时时需要删删除预约约记录。。如果执执行不成成功,系系统状态态不变。。1.3事件流基本流当Borrower借阅某种种书目,,且Librarian选择“借借书”,,则此用用例启动动。提供书目目和读者者信息。。检索书目目(E-1)。确定该书书目的物物理复本本(图书书)是否否在架上上(E-2)。47软件工程程检索读者者(E-3)。将图书交交给读者者。创建并存存储借阅阅记录。。删除预约约记录。。候补流E-1:若该种种书目不不存在,,系统显显示提示示信息,,用例终终止。E-2:若该种种图书都都已借出出,系统统显示提提示信息息,用例例终止。。E-3:系统中中不存在在该读者者,系统统显示提提示信息息,用例例终止。。48软件工程程与用户沟沟通的其其他工具具1)数据流图图某些需求求可以很很自然地地表述为为处理元元素之间间的数据据流。顶层图即即为系统统与外部部实体的的交互。。2)状态图有时把应应用看作作是几个个状态下下的应用用,而在在某一确确定时刻刻的应用用始终明明确地处处于某个个状态中中。这种种状态划划分对理理解系统统比较有有益。状态的具具体内容容到实现现阶段会会有确切切的定义义。49软件工程程借书过程程的数据据流图外部实体体、数据据流和数数据存储储都为候候选对象象管理员

1借书检验2借书登记索书单借书证检验错误借书信息日历

借阅记录

读者信息

图书信息

借书证图书50软件工程程还书过程程的数据据流图系统与外外部实体体、系统统与数据据存储的的交互,,构成系系统的接接口。相相应数据据流构成成接口数数据。读者

3还书检验4还书登记检验错误误还书信息息日历

借阅记录

图书51软件工程程图书(对对象)的的状态图图借出在架丢失修补报废出借返还丢失丢失注销损坏上架52软件工程程图书管理理员借书书操作的的状态图图登记读者信息登记借书信息findTitle(检索图书)login(登录)findBorrower(查找读者)reserve(预约)借书预约图书手续完成检验图书borrow(借阅)检查图书状态取消findBook(检索复本)setLoan(设借阅状态)cancel(取消)close(关闭)检验读者借书53软件工程程草拟用户户界面和和其他接接口建立初始始用户界界面,是是原型方方法的一一种,目目的是快快速与客客户沟通通。客户通常常在看到到应用的的图形用用户界面(GUI)才能相像到这这个应用用未来的的样子。。开发用户户界面的的步骤如如下:1)了解客户户深入了解解最终用用户的想想法。根根据用户户的层次次,提供供多种用用户界面面。知识和经经验层次次:计算机机素养、、系统经经验、使使用类似似应用的的经验、、教育水水平、阅阅读水平平、打字字技能等等。54软件工程程用户的生生理特征征:年龄、、性别、、左右手手习惯、、生理障障碍等。。2)理解业务务功能根据应用用的整体体意图来来理解特特定用户户界面的的目的。。功能界界面出现现的顺序序通常可以以反映用用户处理理日常业业务的方方式。用户的任任务和工工作特征征:应用的的使用方方式、使使用频率率、雇员员的流动动率、任任务的重重要性、、任务的的重复性性、对培培训的期期望、工工作类型型等。用户的心心理特征征:工作态态度、能能动性、、认知方方式等。。55软件工程程3)理解优秀秀界面设设计的原原则目的是加加强视觉觉效果。。确保应用用的各个个界面之之间风格格的一致致性:习惯、、步骤、、视觉和和感觉、、位置等等。揣测用户户通常开开始操作作的地点点导航系统统尽量简简捷使用分组组和分层层来强调调重要性性级别4)选择合适适的窗口口类型五类窗口口:属性窗口口:展示实实体的属属性对话窗口口:完成特特定任务务或命令令的信息息56软件工程程消息窗口口:提供信信息面板窗口口:展示一一组控件件弹出窗口口:突出显显示信息息5)制作系统统菜单为用户提提供一个个稳定的的、易于于理解的的使用环环境,可可以方便便地搜寻寻需要的的选项。。提供一个个主菜单单显示所有有相关选选择(仅仅局限于于此)将菜单结结构与应应用要完完成的任任务对应应起来尽量减少少菜单的的级数57软件工程程6)选择合适适的基于于设备的的控件提供给用用户,向向系统发发送指示示的实际际手段,,包括鼠标、键盘、触摸屏、绘图板、轨迹球、麦克风等。7)选择合适适的基于于界面的的控件即出现在在屏幕上上的符号号。用户户通过这这些符号号向系统统提出他他的输入入和操作作意图,,包括图标、按钮、复选框、单选框等。8)组织和安安排窗口口布局多窗口的的排列规规则,如如平铺、、层叠等等。9)选择合适适的颜色色尽量保持持简捷和和低调。。颜色需需要和谐谐。58软件工程程需求获取取可能是是软件开开发中最最困难、、最关键键、最易易出错及及最需要要交流的的方面。。表现在在:需求的不不稳定性性:在整个个软件生生存周期期内软件件需求会会随着时时间的推推移发生生变化;;需求的不不准确性性:用户和和开发人人员的认认识会随随着使用用系统实实现业务务流程的的实践逐逐步提高高,一开开始不可可能设想想得面面面俱到。。需求获取取只有通通过有效效的客户户/开发者的的合作才才能成功功。59软件工程程分析建模模分析建模模是为了了分析需需求,以以确定项项目的确确切需求求。常用用的分析析模型有有数据建建模、功功能建模模和过程程建模,,从不同同视角描描述目标标系统。。常用的分分析方法法面向数据据流的结结构化分分析方法法(SA))面向数据据结构的的Jackson方法(JSD)面向数据据结构的的结构化化数据系系统开发发方法(DSSD)面向对象象的分析析方法(OOA)等60软件工程程结构化分分析方法法最初只只是着眼眼于数据据流,自顶向下下,逐层层分解,建立系系统的处处理流程程,以数据流图图和数据字典典为主要工工具,建建立系统统的逻辑辑模型。。扩充后,,将建模模技术扩扩展到数据建模模、功能建模模和行为建模模,以实体体-关系图、、数据流流图和控控制流图图、状态态-迁移图为为工具,,数据字字典为核核心,从从不同视视点建立立系统的的分析模模型。结构化分分析方法法61软件工程程结构化分分析的分分析模型型实体—关系图状态—迁移图数据流图图数据对象象描述加工规格格说明数据字典控制规格格说明62软件工程程数据建模模数据模型型包括三三种互相相关联的的信息::数据对对象,描描述对象象的属性性,描述述对象间间相互连连接的关关系。在需求分分析阶段段描述数数据对象象和它们们之间的的关系,,使用了了E-R图。例如,在在教学管管理中,,一个教教师可以以教授零零门、一一门或多多门课程程,每位位学生也也需要学学习几门门课程。。因此,,教学管管理中涉涉及的对对象有学学生、教教师和课课程。63软件工程程教学数据据模型学号姓名专业性别……学生职工号姓名专业职称年龄教师课程号课程名学分学时……课程学号课程号成绩选课64软件工程程实例的关关联有三三种:一一对一(1:1);一对多多(1:m);多对多(n:m)。这种实例例的关联联称为““基数””,基数数表明了了“重复复性”。。教师学生教授基数:一位教师基数:多位学生参与度:必须参与度:可选65软件工程程XY一个X与一个Y相关联一个X与一个或多个Y相关联XY一个X与零个或一个Y相关联XY一个X与零个,一个或多个Y相关联XY一个X与一个Y或Z相关联XYZ一个X与一个Y与Z相关联XYZ66软件工程程功能建模模和数据据流最初,结构化分分析方法法仅讨论论数据流流建模,,目标系系统被表表示成如如图所示示的数据据变换流流程图。。系统的的功能体体现在核核心的数数据变换换中。外部实体外部实体外部实体外部实体目标系统输入信息输入信息输出信息输出信息顶层数据据流图((上下文文环境图图)67软件工程程数据流图图中的主主要图形形元素数据加工(数据变换)数据源或数据潭(外部实体)数据流数据存储文件或或68软件工程程分层的数数据流图图69软件工程程实例:考考务处理理系统的的功能问题陈述述对考生送送来的报报名单进进行检查查;对合格的的报名单单编好准准考证号号后将准准考证送送给考生生,并将将汇总后后的考生生名单送送给阅卷卷站;对阅卷站站送来的的成绩单单进行检检查,并并根据考考试中心心制定的的合格标标准审定定合格者者;制作考生生通知单单(含成成绩及合合格/不合格标标志)送给考生生;按地区进进行成绩绩分类统统计和试试题难度度分析,,产生统统计分析析表。70软件工程程功能建模模的步骤骤首先确定定与系统统有交互互关系的的外部实实体。这这些外部部实体即即为系统统的数据据源和数数据潭,,它们与与系统的的交互构构成系统统的输入入和输出出。外部实体体有考生生、阅卷卷站和考考试中心心考生:填填交报名名表,退退还不合合规定的的报名表表,得到到准考证证,得到到考试通通知单。。阅卷站::得到考考生名单单,提交交考试成成绩单,,退还有有误成绩绩单。考试中心心:提供供合格标标准,得得到成绩绩分类统统计表和和试题难难度分析析表。画出顶层层数据流流图。顶顶层数据据流图描描述了系系统与外外部实体体的交互互,反映映了最主主要业务务处理流流程。上例的顶顶层数据据流图如如图4.19所示。其其中的加加工只有有一个,,它代表表了系统统本身。。它的输输入数据据流和输输出数据据流就是是系统的的输入和和输出。。71软件工程程功能建模模的步骤骤确定与系系统有交交互关系系的外部实体体。这些外外部实体体即为系系统的数数据源和和数据潭潭,它们们与系统统的交互互构成系系统的输输入和输输出。本本例外部部实体有有:考生:填交报报名表,,退还不不合规定定的报名名表,得得到准考考证,得得到考试试通知单单。阅卷站:得到考考生名单单,提交交考试成成绩单,,退还有有误成绩绩单。考试中心:提提供合格格标准,,得到成成绩分类类统计表表和试题题难度分分析表。。画出顶层数据据流图。72软件工程程考生考务处理系统考试中心阅卷站不合格报名表报名表准考证考生通知单成绩单合格标准错误成绩单考生名单统计分析表顶层数据据流图描描述了系系统与外外部实体体的交互互,界定定了系统统的边界界。73软件工程程分析考试试业务处处理的主主要功能能,建立立第0层数据流流图。第第0层数据流流图细化化了顶层层数据流流图。它从输入入端开始始,根据据考试业业务工作作流程,,画出数数据流流流经的各各个加工工,逐步步画到输输出端,,以反映映数据的的实际处处理过程程。本例有两两个加工工“登记报名名表”和“统计成绩绩”是系统统的主要要功能。。对每一个个加工继继续细化化。如果果加工内内还有数数据流,,可将该该加工再再细分成成几个子子加工,,并在各各子加工工之间画画出数据据流,形形成第1层数据流流图。74软件工程程报名表准考证1登记报名表2统计成绩不合格报名表考生通知单成绩单统计分析表第0层数据流图考生名册合格标准考生名单错误成绩单75软件工程程第1层数据流图(a)1.1

检查报名表报名表准考证1.2编准考证号码不合格报名表考生名册考生名单合格报名表1.3登记考生合格报名表76软件工程程第1层数据流图(b)2.1检查成绩单2.2审定合格者考生名册正确成绩单2.3制作通知单2.4分析统计成绩2.5分析试题难度试题得分表考生通知单难度分析表合格标准分类统计表成绩单错误成绩单经审定的成绩单77软件工程程绘制分层层数据流流图的原原则数据流图图上所有有图形符符号只限限于前述述四种基基本图形形元素,,它们的的命名应应反映其其实际含含义;数据流图图的顶层层图上的的数据流流必须封封闭在外外部实体体之间;;每个加工工至少有有一个输输入数据据流和一一个输出出数据流流;允许一个个加工有有多条数数据流流流向另一一个加工工,也允允许一个个加工有有两个相相同的输输出数据据流流向向两个不不同的加加工;78软件工程程在数据流流图中须须按层给给加工框框编号,,编号表表明该加加工所处处层次及及上下层层的亲子子关系;;规定任何何一个数数据流子子图必须须与它上上一层的的一个加加工对应应,两者者的输入入数据流流和输出出数据流流必须一一致,此此即父图图与子图图的平衡衡;如果一个个数据存存储仅在在展开的的数据流流子图中中使用,,可以在在父图中中不画出出;可以在数数据流图图中加入入物质流流,帮助助用户理理解数据据流图;;数据流图图中不可可夹带控控制流,,但针对对实时系系统可以以加入控控制流,,成为数数据流图图的扩展展形式。。79软件工程程行为建模模行为建模模给出需需求分析析方法的的所有操操作原则则,但只只有结构构化分析析方法的的扩充版版本才提提供这种种建模的的符号。。数据流图图不描述述时序关关系,控控制和事事件流通通过行为为模型描描述。在描述系系统或各各个数据据对象的的行为时时,采用用状态迁迁移图。。通过描描述系统统或对象象的状态,以及引引起系统统或对象象状态转转换的事件来表示系系统或对对象的行行为。80软件工程程状态迁移移图状态迁移移图是描描述系统统的状态态如何相相应外部部的信号号进行推推移的一一种图形形表示。。例如,有有关处理理器分配配的进程程状态迁迁移。t2t3t4t1运行就绪等待81软件工程程在状态迁迁移图中中,“○”表示可得得到的系系统状态“→”表示从一一种状态态向另一一种状态态的迁移。在箭头上上要写上上导致迁迁移的信信号或事事件的名名字。S2S1S3t1t2t3t4t4t3t2t1事件状态S1S2S3S3S2S3S182软件工程程Petri网Petri网已广泛泛地应用用于硬件件与软件件系统的的开发中中,它适适用于描描述相互互独立、、协同操操作的处处理系统统,也就就是并发发执行的的处理系系统。Petri网简称PNG(PetriNetGraph),它有两种种结点::库所:符号““○”,表示系系统状态。变迁:符号““|”,表示系统统中的事件。有向边““”表示向变迁的的输入,或从变迁的的输出。83软件工程程令牌(token),是表明系系统当前前处于什什么状态态的标志志。Petri网可能的变变化有::84软件工程程例如,处处理两个个进程PR1和PR2的同步问问题(此此时两个个进程共共用一个个资源R):该资源R在系统运运行的某某一时刻刻只能为为一个进进程所占占用。为为了解决决两个进进程在运运行中可可能会同同时申请请资源的的矛盾,,要用原原语LOCK和UNLOCK控制R的使用,,保证进进程间的的同步。。进程得到资源占用资源运行释放资源不用资源运行PR1LOCKR处理11UNLOCKR处理12PR2LOCKR处理21UNLOCKR处理2285软件工程程p1p2p3p4p5p7p6t1t2t3t4t5t6等待R等待RR空闲处理11处理12处理21处理22进程1进程286软件工程程数据字典典数据字典典是结构构化分析析方法的的核心,,与各模模型的图图形表示示配合,,能清楚楚地表达达数据处处理的要要求。词条描述述——对于在模模型中每每一个被被命名的的图形元元素,均均加以定定义,其其内容有有:名字,别别名或编编号,分分类,描描述,定定义,位位置,其其它,等等。数据流词词条描述述数据流名名:说明:简简要介绍绍它产生生的原因因和结果果87软件工程程数据流来来源:来来自何方方数据流去去向:去去向何处处数据流组组成:数数据结构构数据量流流通量::数据量量,流通通量数据元素素词条描描述类型:数数字(离散值,,连续值值),文字(编码类型型)长度取值范围围相关的数数据元素素及数据据结构3)数据文件件词条描描述88软件工程程数据文件件名:简述:存存放的是是什么数数据输入/输输出数据据:数据文件件组成::数据结结构存储方式式:顺序序,直接接,关键键码存取频率率:加工逻辑辑词条描描述加工名::加工编号号:反映映该加工工的层次次简要描述述:加工工逻辑及及功能简简述89软件工程程输入/输输出数据据流:加工逻辑辑:简述述加工程程序,加加工顺序序数据源及及数据谭谭词条描描述名称:外外部实体体名简要描述述:什么么外部实实体有关数据据流:数目:90软件工程程数据结构构的描述述符号含义举例例=被定义为为+与x=a+b[....,....]或[....|....]或x=[[a,,b]],x=[[a||b]{....}或m{....}n重复x={{a}},x=3{a}8(....)可选x=((a))“....”基本数据据元素x=""a""..连结符x=1...991软件工程程存折=户户名+所所号+帐帐号+开开户日++性质++(印密)+1{存取行}50户名=2{字母}24所号=001...999帐号=00000001...99999999开户日==年+月月+日性质=““1”...“6””注:“1”表示普通通户,““5”表示工资资户等印密=““0”注:印密密在存折折上不显显示存取行==日期++(摘要要)+支支出+存存入+余余额+操操作+复复核92软件工程程基本加工工逻辑说说明

对数据流流图的每每一个基基本加工工,必须须有一个个基本加加工逻辑辑说明。。基本加工工逻辑说说明必须须描述基基本加工工如何把把输入数据据流变换换为输出出数据流流的加工规规则。加工逻辑辑说明必必须描述述实现加加工的策策略而不不是实现现加工的的细节。。加工逻辑辑说明中中包含的的信息应应是充足足的,完完备的,,有用的的,无冗冗余的。。描述加工工逻辑说说明的工工具:结结构化语语言、决决策表、、决策树树。93软件工程程结构化语语言结构化语语言是一一种伪码码,它的的词汇表表由原形动词词数据字典典中定义义的名字字有限的自自定义词词逻辑关系系词if_then_else、switch__case、for、while_do、do_while等组成。。它是一种种介于自自然语言言和形式式化语言言之间的的语言。。用以消消除在语语法上的的歧义性性。94软件工程程语言的正文用基基本控制制结构进进行分割割,加工中中的操作用自自然语言言短语来来表示。其基本控控制结构构有三种种:简单陈述述句结构构:避免复合合语句;;重复结构构:while_do、for__do或do_while结构。判定结构构:if_then_else或switch__do结构;用结构化化语言描描述的规规格说明明的正文文可以在在计算机机上编辑辑,不必必过多地地考虑语语言的在在语法上上的限制制,使得得分析员员可以集集中考虑虑加工的的策略或或规则。。95软件工程程if发货单金金额超过过$500thenif欠款超过过了60天then在偿还欠欠款前不不予批准准else(欠款未超超期)发批准书书,发货货单else(发货单金金额未超超过$500)if欠款超过过60天then发批准书书,发货货单及赊赊欠报告告else(欠款未超超期)发批准书书,发货货单商店业务务处理系系统中“检查发发货单””96软件工程程条件茬条件项动作茬动作项规则单个条件件单个动作作判定表如果数据据流图的的加工需需要依赖赖于多个逻辑辑条件的的取值,使用判判定表来来描述比比较合适适。97软件工程程以“检查发发货单””为例操在偿还欠款前不予批准作发出批准书发出发货单发出赊欠报告1234条发货单金额>$500>$500≤$500≤$500件赊欠情况>60天≤60天>60天≤60天98软件工程程判定树检查发货单金额>$500金额$500

欠款>60天不发出批准书

欠款60天发货单发出批准书、

欠款>60天发出批准书、发货单及赊欠报告

欠款60天发出批准书、发货单判定树也也是用来来表达加加工逻辑辑的一种种工具。。有时侯侯它比判判定表更更直观。。99软件工程程4.4面向对象象的需求求分析典型的面面向对象象分析((OOA)建模方方法有以以下几种种。每种种方法都都有各自的分分析过程程和符号体系系。Booch方法Booch方法包含含“微开开发过程程”和““宏开发发过程””。微开发过过程定义了一一组任务务,并在在宏开发过过程的每一步步骤中反反复使用用它们以以维持演演进途径径。Booch的OOA宏开发过过程的任务包包括标识识类和对对象、标标识类和和对象的的语义、、定义类类与对象象间的关关系,以以及进行行一系列列求精实实现分析析模型。。100软件工程程Rumbaugh方法又称为对对象模型型化技术术OMT,用于分分析、系系统设计计和对象象级设计计。分析析活动建建立三个个模型::1)对象模型型描述对象象、类、、层次和和关系2)动态模型型描述对象象和系统统的行为为3)功能模型型类似于高高层的DFD,描述穿穿越系统统的信息息流Coad和Yourdon方法其OOA过程概述述如下::1)使用“要要找什么么”准则则标识对对象;101软件工程程2)定义对象象之间的的一般化化∕特殊殊化结构构(又称称为分类类结构));3)定义对象象之间的的整体∕∕部分结结构(又又称为组组装结构构);4)标识主题题(系统统构件的的表示));5)定义对象象的属性性及对象象之间的的实例连连接;6)定义服务务及对象象之间的的消息连接。Jacobson方法又称为OOSE(面向对对象软件件工程))。特色是强强调用例例(UseCase)。102软件工程程Jacobson方法概述述如下::标识系统统的用户户和它们们的整体体责任;;通过定义义参与者者及其职职责、用用例、对对象和关关系的初初步视图图,建立立需求模模型;通过标识识界面对对象、建建立界面面对象的的结构视视图、表表示对象象行为、、分离出出每个对对象的子子系统和和模型,,建立分分析模型型。Wirfs―Brock方法不明确地地区分分分析和设设计任务务。从评评估客户户规格说说明到设设计完成成,是一一个连续续的过程程。103软件工程程与Wirfs―Brock分析有关关的任务务如下::1)评估客户户规格说说明;2)使用语法法分析从从规格说说明中提提取候选选类;3)将类分组组以标识识超类;;4)定义每一一个类的的职责;;5)将职责赋赋予每个个类;6)标识类之之间的关关系;7)基于职责责定义类类之间的的协作;;8)建立类的的层次表表示;9)构造系统统的协作作图。104软件工程程UML的OOA方法用5种不同的的视图,,从不同同的侧面面来描述述系统。。这些视视图概述述如下::1)用户模型型视图:从用户户(参与与者)角角度来表表示系统统。它通通过用例例(UseCase)来建立立模型,,并用它它来描述述来自终终端用户户方面的的可用场场景。2)结构模型型视图:从系统统内部来来看数据据和功能能性。即即对系统统的静态态结构((类、对对象和关关系)建建模。105软件工程程3)行为模型型视图:描述系系统的动动态和行行为。以以及在用用户模型型视图和和结构模模型视图图中所描描述的各各种结构构元素之之间的交交互和协协作。4)实现模型型视图:将系统统的结构构和行为为表达成成为易于于转换为为实现的的方式。。5)环境模型型视图:描述系系统实现现环境的的结构和和行为。。通常,UML分析建模模的注意意力放在在系统的的用户模模型和结结构模型型视图,,而UML设计建模模则定位位在行为为模型、、实现模模型和环环境模型型。106软件工程程面向对象象分析模模型由三三个独立立的模型型构成::由用例和和场景表表示的功能模型型;用类和对对象表示示的分析对象象模型;由状态图图和顺序序图表示示的动态模型型。在需求获获取阶段段得到的的用例模模型就是是功能模模型。据据此可导导出分析析对象模模型和动动态模型型。需要注意意,这些些模型代代表的是是来自客户户的概念念,而非实实际软件件类或实实际构件件。分析中的的类可以以看作是是高层抽象象。识别类或或对象107软件工程程在分析对对象模型型中的对对象类分分为有实体对象象、边界对象象和控制对象象等三种类类型。实体对象象表示系统统将跟踪踪的持久久信息;;边界对象象表示参与与者与系系统之间间的交互互(接口口);控制对象象负责用例例的实现现。可用UML提供的衍衍型机制制,区分分不同类类型对象象。ControlEntityActorBoundary参与者边界对象控制对象实体对象图示108软件工程程具有两个个按钮的的手表的的分析对对象使用实体对象象、边界对象象和控制对象象等对系统统建模时时,常常常需要提提供一些些简单的的启发式式规则来来指导开开发人员员使用这这些概念念,可以以使用相相应的类类来跟踪踪。<<entity>>Day<<entity>>Month<<entity>>Year<<control>>ChangeDateControl<<boundary>>ButtonBoundary<<boundary>>LCDDisplayBoundary109软件工程程分析建模模活动包包括以下下步骤。。标识实体体对象自然语言言分析法法利用Abbott启发式准准则,将将语言成成分映射射为模型型成分。。语言成分模型成分示例专有名词实例李未普通名词类院士Doing动词操作创建、提交、选择Being动词继承是…的一种,是…中的一个Having动词聚合有…,由…组成,包括…情态动词约束必须是形容词属性事件描述110软件工程程自然语言言分析法法主要关关注用户户术语。

温馨提示

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

评论

0/150

提交评论