软件工程(2012版)-需求工程与需求分析-面向对象分析(5,6)_第1页
软件工程(2012版)-需求工程与需求分析-面向对象分析(5,6)_第2页
软件工程(2012版)-需求工程与需求分析-面向对象分析(5,6)_第3页
软件工程(2012版)-需求工程与需求分析-面向对象分析(5,6)_第4页
软件工程(2012版)-需求工程与需求分析-面向对象分析(5,6)_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

软件工程,哈尔滨工业大学(威海)计算机科学与技术学院孟凡超Email:Tele参考教材,软件工程-原理、方法与应用(第3版).史济民等,高等教育出版社。软件工程. 张海藩. 人民邮电出版社。Software Engineering: Theory and Practice(软件工程). Shari Lawrence等,人民邮电出版社。UML2 and the Unified Process Practical Object-Oriented Analysis and Design(UML2.0和统一过程).Jim Arlow.机械工业出版社。,1. 绪论2. 软件生存周期与软件过程3. 结构化分析与设计4. 面向对象与UML5. 需求工程与需求分析6. 面向对象分析7. 面向对象设计8. 编码与测试9. 软件维护10. 软件复用11. 软件工程管理,主要内容,需求工程与需求分析,1 软件需求工程软件需求:是指一个软件系统必须遵循的条件或具备的能力。软件需求工程:应用有效的技术和方法、合适的工具和符号,来确定、管理和描述目标系统及其外部行为特征的科学。目前软件需求工程已发展为一门独立学科。软件需求层次业务需求. 客户或市场对软件高层次目标要求。用户需求. 从用户角度描述软件产品必须完成的任务。功能需求. 软件开发人员必须实现的软件功能。,需求工程与需求分析,业务需求,项目愿景与范围,用户需求,质量属性,用例模型文档,功能需求,软件需求规格说明书,非功能需求和约束条件,软件需求的层次关系,需求工程与需求分析,软件需求的特性功能性需求和非功能性需求(可用性、可靠性、性能、可支持性、设计约束等)。可用性:产品在特定适用环境下为特定用户用于特定用途时所具有的有效性、效率和用户主观满意度。简而言之,可从三个指标对软件可用性进行评价:易学、易用、用户满意。可靠性:在规定的条件下,在规定的时间内,软件不引起系统失效的概率;在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。评价可靠性的主要指标有:正常运行率、平均无故障时间、平均修复时间、精确度、最高错误或缺陷率等。,需求工程与需求分析,性能:关注软件在完成其功能时所展现出来的及时性。评价性能的主要指标有:响应时间、吞吐量、并发用户数、资源利用率等。响应时间:是指系统对请求作出响应的时间。吞吐量:是指系统在单位时间内处理请求的数量。并发用户数:是指系统可以同时承载的正常使用系统功能的用户的数量。资源利用率:反映的是在一段时间内资源平均被占用的情况。,需求工程与需求分析,可支持性:定义所有与系统的可支持性或可维护性相关的需求,其中包括编码标准、命名约定、类库以及如何对系统进行维护操作和相应的维护实用工具等。设计约束:设计约束代表已经批准并必须遵循的设计决定,其中包括软件开发流程、开发工具、系统架构、编成语言、第三方构件库、运行平台和数据库等。,需求工程与需求分析,2 需求分析与建模需求分析步骤需求获取. 数据功能质量要求。需求建模. 建立需求模型(结构化需求模型、面向对象需求模型);绘制系统关联图、创建用户接口原型、确定需求优先级。需求描述. 编写需求规格说明书(SRS)。需求验证.检查SRS中的需求不清、不一致等问题。,需求工程与需求分析,需求获取方法建立联合分析小组.由用户、系统分析员和领域专家组成。 用户访谈. 做好准备工作,遵循循序渐进、逐步逼近的原则,切不可急于求成。问题分析与确认.及时分析整理,逐步确认。用快速原型法获取需求.,需求工程与需求分析,3 需求模型结构化需求模型功能模型. 数据流图、加工规格说明。信息模型. 数据字典、实体关系图。行为模型.状态转换图。面向对象需求模型用例模型. 用例图。补充规约. 记录用例模型中不易表达的需求。术语表. 记录软件开发项目中的特定术语。,需求工程与需求分析,画用例图,写用例规约,描述补充规约,编写术语表,调整用例模型,4 面向对象需求建模,面向对象需求建模步骤,需求工程与需求分析,1. 画用例图确定参与者. 参与者泛指存在于系统外部并与系统进行交互的人、硬件或者其他系统。寻找参与者可以从以下问题入手:系统开发完成后,有哪些人会使用这个系统?系统需要从哪些人或其他系统中获得数据?系统会为哪些人或其他系统提供数据?系统会与哪些其他系统相关联?系统是由谁来维护和管理的?,需求工程与需求分析,确定用例. 主要考察各参与者需要系统提供什么样的服务,或者说参与者是如何使用系统的。寻找用例时,可以针对每一个参与者从以下问题入手:参与者为什么要使用该系统?参与者是否会在系统中创建、修改、删除、访问和存储数据?如果是,参与者又是如何完成这些操作的?参与者是否会将外部的某些事件通知该系统?系统是否会将内部的某些事件通知该参与者?,需求工程与需求分析,绘制和检查用例图. 用例和参与者确定后,就可以据此画出用例图。每个用例至少应该涉及一个参与者。参与者和用例的名称是否符合统一的命名约定和风格。用例建模通常属于团队开发。,需求工程与需求分析,例.选课系统1)确定参与者。学生、教师、管理员、课程管理系统学生注册课程教师选择所教课程管理员维护教师和学生的信息课程管理系统维护课程信息2)确定用例。学生。登陆系统、注册课程、查询成绩教师。登陆系统、选择所教课程、录入成绩、提交成绩管理员。登陆系统、维护学生信息、维护教师信息课程管理系统。维护课程信息,需求工程与需求分析,3)绘制用例图。,需求工程与需求分析,2.写用例规约用例规约. 描述每个用例的功能。用例规约包括内容:(1)简要说明:简要介绍该用例的作用和目的。(2)事件流:包括基本流和备选流,基本流是指用例的正常场景,备选流用于描述用例执行过程中的异常或偶尔发生的情况。为了清晰描述事件流,可以采用UML活动图、顺序图、状态图等来辅助说明,或者采用用户界面+流程图方式来描述。(3)特殊需求:描述与该用例相关的非功能需求(可用性、可靠性、性能、支持性需求等)和设计约束。(4)前置条件和后置条件。前置条件是指执行用例之前必须存在的系统状态,后置条件是用例执行完毕后系统可能处于的一组状态。,需求工程与需求分析,3.描述补充规约补充规约用于记录在用例模型中不易表达的包括内容。4.编写术语表术语表主要用于定义软件开发项目特定的术语,它有助于开发人员对项目中所使用的术语有统一的理解并能正确地使用,它也是后继阶段中进行对象抽象的基础。,需求工程与需求分析,5.调整用例模型对用例模型进行精化,提高重用度、增加可维护性,具体可以从如下方面入手:用例之间是否相互独立?如果两个用例以同样的顺序被激活,可能需要将它们合并为一个用例。多个用例之间是否有非常相似的行为或事件流?如果有,可以考虑将它们合并为一个用例。用例事件流的一部分是否已被构建为另一个用例?如果是,可以让该用例包含另一个用例。是否应该应该将一个用例的事件流插入另一个用例的事件流中?如果是,利用与另一个用例的扩展关系来建立次模型。,需求工程与需求分析,图书管理系统1需求建模1.1 确定参与者借阅者(Borrower Actor):借阅者可以借阅、续借、归还物理书刊,可以修改个人信息和查询图书。图书管理员(Librarian):图书管理员可以创建、修改、删除借阅者信息;可以添加、编辑、删除书刊信息,即维护书刊目录;可以添加、编辑、删除物理书刊信息;可以代替借阅者实现借阅和归还图书功能。,需求工程与需求分析,1.2 确定用例1) 借书 (Borrow Books):本用例提供借阅物理书刊的功能。借书由图书管理代替借阅者来执行。2) 还书(Return Books):本用例提供了返还物理书刊的功能。还书由图书管理员代替借阅者来执行。3) 续借 (Renew Books):本用例向借阅者提供续阅物理书刊的功能,该功能由借阅者通过网络自己完成。4) 维护借阅者信息(Maintain Borrowers):本用例向图书管理员提供了创建、修改、取消借阅者帐户信息的功能。5 )修改借阅者信息(Modify Borrower ):本用例向借阅者提供了修改该借阅者自身帐户信息的功能。,需求工程与需求分析,6) 维护书刊信息(Maintain Titles):本用例向图书管理员提供了添加、修改、删除书刊信息的功能。7) 维护物理图书信息(Maintain Books):本用例向图书管理员提供了添加、修改、删除物理书刊信息的功能。8)查询书刊信息(Query Titles):本用例向借阅者提供查询书刊信息功能。9) 登陆(Login):本用例描述了参与者(管理员和借阅者)如何登陆进入系统。,需求工程与需求分析,1.3 绘制用例图,需求工程与需求分析,1.4写用例规约,需求工程与需求分析,1. 绪论2. 软件生存周期与软件过程3. 结构化分析与设计4. 面向对象与UML5. 需求工程与需求分析6. 面向对象分析7. 面向对象设计8. 编码与测试9. 软件维护10. 软件复用11. 软件工程管理,主要内容,面向对象分析,1 软件分析概述面向对象软件分析(Object-Oriented Analysis, OOA):OOA的主要任务理解用户需求分析建模:标识类,定义属性和方法,刻画类层次,表示对象以及对象与对象之间的关系,为对象行为建模。OOA的模型以用例模型为主体的需求模型:类/对象模型、类/对象关系模型、对象行为模型,面向对象分析,OOA模型的结构,面向对象分析,OOA的优点(与传统软件分析方法相比)同时加强了对问题空间和软件系统的理解;改进了包括用户在内的与软件分析有关的各类人员之间的交流;对需求变化具有较强的适应性;很好地支持软件复用;确保从需求模型到设计模型的一致性。,面向对象分析,分析模型的特点全面覆盖软件的功能需求;分析模型与软件的实现无关(平台无关模型);分析模型的表述方法与所采用的分析技术有关。,面向对象分析,2面向对象分析建模,识别与确定分析类,定义类的层次结构,确定主题或子系统,建立对象-行为模型,建立对象-关系模型,面向对象分析,1.识别与确定分析类分析类的类型边界类:边界类提供了对参与者或外部系统交互的接口。一个系统可能有多种边界类:用户界面类、系统接口类、设备接口类。控制类:控制类用于封装一个或几个用例所特有的流程控制行为,通过它可以建立系统地动态行为模型。实体类:实体类用于对必须存储的信息和相关行为建模,其主要职责是存储和管理系统中的信息。,面向对象分析,查找分析类为每对参与者/用例确定边界类。为每个用例设置控制类。确定相关的各个实体类。,边界类,面向对象分析,控制类,实体类,面向对象分析,课程注册用例的分析类,面向对象分析,2.建立对象-行为模型根据用例的事件流,绘制行为模型(顺序图/协作图)。,1)系统从课程管理系统中得到可选择的课程列表,并将列表显示给学生。2)学生从课程列表中选择本学期所要学的课程(必修课程/选修课程)。3)一旦学生决定了选课情况,系统为他们创建一个包含所选课程的课程表。4)执行提交课表子流程。,注册课程顺序图,面向对象分析,:Client,:Supplier,PerformResponsibility,类图,交互图,为分析类分配职责,面向对象分析,课程注册用例的分析类的职责分配,面向对象分析,3.建立对象-关系模型1)分析类的属性:分析类自身的特征。属性名应当是一个名词,其数据类型一般为简单的数据类型。2)分析类的关联:分析类具有指向其他分析类的关联,通过这种关联能够找到其他分析类。在顺序图/通信图中,对象之间的链接是相应分析类之间存在关联关系的动态表现形式。3)分析类图:描述分析类及其之间关系,其中描述某个用例的分析类图称

温馨提示

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

评论

0/150

提交评论