湘潭大学第5章需求工程与需求分析软件需求过程需求分析与建模需求获取的常用方法需求模型软件需求描述需求管理需求建模示例5.1软件需求工程•软件需求的定义•一个软件系统必须遵循的条件或具备的能力。•用户解决问题或达到目标所需的条件或能力,即系统的外部行为。•系统为满足合同、规范等所需具备的条件或能力,即系统的内部特性。•软件需求三个层次•业务需求:从业务角度分析项目成功的预期效果。•用户需求:从使用角度描述软件产品必须完成的任务。•功能需求:定义必须实现的软件功能。这些功能必须达到的非功能性要求、约束条件等。软件需求的层次关系业务需求项目愿景与范围用户需求质量属性用例模型文档功能需求非功能需求和约束条件软件需求规格说明软件需求的特性•软件需求包括以下6个特性:•功能性:分为普通功能和全局性功能。•可用性:泛指能使最终用户方便使用软件的相关需求。•可靠性:包括与系统可靠性相关的各种指标。•性能:记录与系统性能相关的各种指标。•可支持性:定义所有与系统的可支持性或可维护性相关的需求。•设计约束:代表已经批准并必须遵循的设计决定。需求工程的由来•代码编写-〉生存周期-〉需求工程•软件需求工程•可以定义为应用有效的技术和方法,合适的工具和符号,来确定、管理和描述目标系统及其外部行为特征的学科。5.2需求分析与建模•需求分析的步骤•需求分析是迭代过程需求获取需求建模需求描述规格说明需求验证5.3需求获取的常用方法•常规的需求获取方法•组成联合分析小组•成员:用户代表、领域专家和系统分析员•用户访谈•充分准备,寻找共同语言。•循循序渐进、逐步逼近。•问题分析与确认•与用户交流和问题分析需要多个来回。需求获取的常用方法•用快速原型法获取需求•快速原型法实施的步骤:1.利用各种分析技术和方法,生成一个简化的需求规格说明;2.对需求规格说明进行必要的检查和修改后,确定原型的软件结构、用户界面和数据结构等;3.在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试、改进;4.将原型提交给用户评估并征求用户的修改意见;5.重复上述过程,直到原型得到用户的认可。5.4需求模型•需求模型概述•结构化需求模型•面向对象需求模型•面向对象的需求建模•画用例图•写用例规约•描述补充规约•编写术语表结构化需求模型数据字典数据流图判定树判定表PDL加工说明数据定义......E-R图行为模型状态转换图控制流图和控制说明功能模型数据模型面向对象需求模型用例规约参与者用例图用例模型补充规约术语表全局性功能、非功能需求用例建模•确定参与者•存在于系统外部、与系统交互的人、硬件、其他系统•通过回答问题确定参与者•系统开发完成之后,有哪些人会使用这个系统?•系统需要从哪些人或其他系统中获得数据?•系统会为哪些人或其他系统提供数据?•系统会与哪些其他系统相关联?•系统是由谁来维护和管理的?•确定用例•考察每个参与者与系统的交互和需要系统提供的服务•针对每一个参与者,通过回答问题确定用例•参与者为什么要使用该系统?•参与者是否会在系统中创建、修改、删除、访问、存储数据?如果是的话,参与者又是如何来完成这些操作的?•参与者是否会将外部的某些事件通知给该系统?•系统是否会将内部的某些事件通知该参与者?•第一步,确定参与者。•第二步,确定用例。通常规则是:用例应该典型地描绘系统功能中某个从开始到结束的过程。•绘制和检查用例图•按UML标准画用例图•检查用例图•细化每个用例的用例规约•内容包括:•简要说明•事件流•特殊需求•前置条件和后置条件•用例模型的检查•功能需求的完备性•模型是否易于理解•是否存在不一致性•避免二义性语义用例建模示例•选课系统问题陈述开发一个学生选课系统。通过这个系统,学生可以选课和查看成绩报告单,教授可以选择所教的课和记录学生的成绩。学校保留原有的“课程目录”数据库系统来维护课程信息,但该系统的性能是有限的。所以新系统必须确保能及时访问旧系统上的数据。但新系统只能读取旧系统的课程信息,不能更新。用例建模示例每学期开始时,学生请求查看本学期开设的课程目录。有关课程的信息,包括教授名和所开设的系等,将帮助学生做出决定。系统允许学生每学期选择4门课,如果学生没有选到主要的课程,还有两门备选课程可选。每门课的学生人数限3到10人。不满3人的课程将被取消。另外,每个学期有一段时间让学生更改课程表。学生可在该时段内访问系统并添加/删除课程。用例建模示例某个学生的选课一旦结束,选课系统即将此学生本学期的账单信息送到财务系统。如果在选课时某门课已经人满,学生在提交信息前必须被告知。学期结束,学生可进入系统查看自己的成绩。成绩属于隐秘信息,系统必须提供额外的安全措施阻止未授权的访问。教授必须能访问系统查询他们主讲课程。他们也需要知道是哪些学生选择了自己的课程。另外,教授也能登记学生的成绩。用例建模示例•确定参与者学生要注册课程;教授要选择课程来教;注册管理人员要维护关于教授和学生的所有信息;财务系统要从注册系统获得学生的费用情况;课程目录系统维护课程信息。用例建模示例•确定用例无论是学生,教授还是注册员都需要登录到系统;学生需要使用系统来选课,也能查看自己的成绩;教授需要使用系统来选择课程,也能记录学生的成绩;注册员必须维护学生、教授的所有信息,并在适当时候关闭注册系统;当选择课程的过程完成后,收费系统必须获得收费信息;学生和教授选择课程,需要启动课程目录系统。用例建模示例•选课系统用例图查看报告学生注册课程登录选择所教的课程提交成绩教授注册员财务系统维护教授信息维护学生信息关闭注册课程目录系统用例建模示例—选课用例规约1.简要说明•本用例允许学生选本学期提供的课程。在学期开始的添加/删除时期,学生可以修改或删除选择的课程。课程目录系统提供了当前学期开设的所有课程的列表。2.事件流2.1基本事件流•用例开始于学生选择选课,或修改已存在的课程表。1)系统要求学生指出要执行的操作(创建,修改或删除课程表)2)一旦学生提供了所需要的信息,以下的一条子事件流将被执行如果选择的是“创建课程表”,创建课程表子事件流将被执行如果选择的是“修改课程表”,修改课程表子事件流将被执行如果选择的是“删除课程表”,删除课程表子事件流将被执行2.2备选事件流……3.特殊需求•无4.前置条件•本用例开始前学生必须已经登录进系统。5.后置条件•如果用例成功,学生的课程表被创建,修改,删除。否则系统状态不变。描述补充规约示例选课系统的补充规约1.目标本文档的目的是定义选课系统的需求。本补充规约列出了不便于在用例模型的用例中获取的系统需求。它和用例模型一起记录关于系统的一整套需求。2.范围本补充规约适用于选课系统,除定义了在许多用例中所共有的功能性需求以外,还定义了系统的非功能性需求,例如:可靠性、可用性、性能和可支持性等。(功能性需求在用例规约中定义。)描述补充规约示例3.参考——无4.功能多个用户必须能同时执行操作。如果某个学生所建的课程表中包含人数已满的课程,必须通知这位学生。5.可行性桌面用户界面应与Windows98/2000/XP兼容。6.可靠性选课系统在每周7天,每天24小时内都应是可用的。宕机的时间应少于10%。7.性能……术语表示例选课系统的术语表1.简介这份文档是用来对一些术语进行定义的,同时将用例说明或其他文档中读者不太熟悉的术语进行解释性的描述。通常来说,这份文档对一些数据信息进行一些定义,从而使得用例规约和其他的文档显得简洁易懂。2.定义这份术语表包含了选课系统中核心概念的定义。课程:大学提供的某一门课。开设课程:某一课程的具体安排情况,包括一周上课的天数、时间和教授。课程目录:大学所开设的所有课程的完整目录。教员:所有在此大学内任教的教授。财务系统:用来处理收费信息的系统。成绩:学生某门课程的成绩。……5.5软件需求描述•软件需求规格说明书•SoftwareRequirementSpecification•引言•信息描述•功能描述•行为描述•质量保证•接口描述•其他5.6需求管理•需求管理的特定实践•需求管理的流程•需求确认•需求跟踪•需求变更•需求变更控制•需求变更的利弊•需求变更的流程需求变更状态转换需求管理工具•IBMRationalRequisitePro•TelelogicDOORSreg•BorlandCaliberRM5.7需求建模示例—网上购物系统•当今,网上购物已成为一种时尚。本示例作为WEB应用的一例,主要为普通购物用户和管理员服务。•普通购物用户在使用本系统的购物功能前,必须先注册账号。在注册页面中填写个人信息,如使用本系统的账号名和密码,联系地址等。在提交表单、完成注册后,系统将保存信息,以方便管理员管理用户信息、联系用户。•如果用户已经在系统中注册过,可以在登录页面输入账号名和密码。如果密码正确,用户就可以购物,否则只能做一般的页面浏览。•进入系统后,用户也可选择维护自己的信息,比如修改账号名,密码,联系地址等。如果直接进行购物,系统可让用户首先浏览商品信息,使之对商品的数量、种类有一个大概的了解。如果用户对某件商品感兴趣,就可以选择特定商品查看其详细信息,接着选择将商品加入购物车,或继续查看其他商品。当购物结束时,用户首先要浏览一下已经存在于购物车中的商品项目,包括数量、单价及总价。这时用户可以更改任何已存在购物车中的商品数量。如果确定要购买购物车内的商品,系统即生成一份订购商品的订单(包括所有商品的名字,单价,小计,总价),然后由用户填写包括用户姓名、家庭地址、信用卡号码、电子邮件地址等信息,并提交订单。以后,系统自动将用户信息、信用卡信息和购物总价发送到银联系统,由银联系统验证信用卡信息并执行扣款,并将银联系统操作成功与否的信息返回到系统。系统根据银联系统的操作结果,向用户发送E-MAIL,提示用户操作成功与否的消息。如果扣款成功,就与物流系统接口,安排给用户派送购买的商品。•管理员进入系统时,首先要输入口令。如果检查通过,就可以对系统中的信息进行维护和管理,包括:⑴管理用户信息。当有些用户有不正常操作时,如填写订单时使用不存在的信用卡号,可以将此用户账号冻结,也可以启用用户账号。但管理员无权修改客户信息;⑵管理系统中的商品信息,例如有新的商品时,管理员可向系统中添加此商品。当商品的价格或规格发生浮动时,管理员也可以对它们作修改,使用户及时了解商品的最新情况。若某件商品没有存货或不再出售时,管理员可删除系统中的此项商品记录。⑶管理客户定单。及时获得客户的资料(资料中有电子邮件地址),以便与客户联系。•要求系统对数据库的存取速度要尽量快,并保证系统在配置完成以后一天24小时都可用。还要求系统有较高的安全性,当生成订单时,用户的信用卡号码要在网上传输,所以必须提供额外的安全措施。用例模型•用例规约•补充规约•术语表小结•需求分析由需求获取、需求建模、规格说明和需求验证四个步骤组成•建立需求模型是需求分析的核心,它通过各种图形及符号,可视化地从各个侧面描述系统需求•需求规格说明书以各方共同认可的文档形式表述出来,是软件设计、系统验收的可靠依据•面向对象的用例模型,由用例模型、补充规约和术语表一起组成•随着人们对需求重要性的认识逐渐深入,软件需求管理应运而生