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