软件需求分析与设计-业务建模和需求细化_第1页
软件需求分析与设计-业务建模和需求细化_第2页
软件需求分析与设计-业务建模和需求细化_第3页
软件需求分析与设计-业务建模和需求细化_第4页
软件需求分析与设计-业务建模和需求细化_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、软件需求分析与设计业务建模和需求细化业务建模和需求细化主要内容迭代1根底领域模型系统顺序图操作契约9/22/20222初始不是需求阶段细化阶段的迭代1强调的是根底范围和在构建对象系统中所使用的常见OOA/D技术构件软件其他技术也要涉及数据库设计可用性工程UI设计在迭代开发中,并非一次实现所有需求在屡次迭代里对同一用例进行增量式开发9/22/20223用例的实现可能在多个迭代中展开9/22/20224初始阶段的工作简单的需求讨论会大多数参与者、目标和用例名称大多数以摘要形式编写的用例确定大多数具有影响和风险的质量需求编写设想和补充性规格说明的第一个版本风险列表技术上的概念验证原型和其他调查,用于

2、揭示特殊需求的技术可行性面向用户界面的原型,用于确定对功能需求的设想对购置/构建/复用构件的建议对候选的高层架构和构件给出建议9/22/20225细化工作细化是核心架构、解决高风险元素、定义大局部需求,以及预计总体进度和资源对核心、有风险的软件架构进行编程和测试发现并稳定需求的主题局部躲避主要风险细化通常有两个或多个阶段细化不是设计阶段9/22/20226细化最正确实践实行短时间定量、风险驱动的迭代及早开始编程对架构的核心和风险局部进行适应性的设计、实现和测试尽早、频繁、实际地测试基于来自测试、用户、开发者的反响进行调整通过一系列讨论会,详细编写大局部用例和其他需求,每个细化迭代举行一次9/2

3、2/20227细化阶段的制品样例制品说明领域模型领域概念的可视化,类似于领域实体的静态信息模型设计模型描述逻辑设计的一组图,包括软件类图、对象交互图、包图等软件架构文档学习辅助工具,概括关键架构问题及其在设计中的解决方案。该文档是对重要设计思想及其在系统中动机的概要数据模型包括数据库方案,以及在对象和非对象表示之间的映射的策略用例示意板,用户界面模型描述用户界面、导航路径、可用性模型等9/22/20228何时知道自己并没有理解细化阶段对于大局部工程,细化阶段都比“几个月更长只有一次迭代在细化开始之前就定义了大局部需求没有处理具有风险的元素和核心架构没有产生可执行架构,没有进行产品代码的编写认为

4、细化阶段主要是需求和设计阶段,为构造阶段的实现进行准备试图在编程之前进行彻底和细致的设计只有少量的反响和调整;用户没有持续地参与评估和反响没有尽早和实际的测试在编程之前推测地结束架构设计认为细化阶段是进行概念验证编程阶段,而不是对产品核心架构编程阶段9/22/20229领域模型是对领域内的概念类或现实世界中对象的可视化表示也称概念模型、领域对象模型和分析对象模型在UP中,是对现实世界概念类的表示,而非软件对象的表示,该术语并不是指用来描述软件类、软件构架类领域层或有职责软件对象的一组图UP领域模型是UP业务对象模型的特化UML,领域模型被描述为一组没有定义操作的类图,它提供了概念透视图领域对象

5、或概念类概念类之间的关联概念类的属性9/22/202210用例制品关系样例9/22/202211领域模型概念或领域对象关联属性SalesLineItemquantity ItemSaledata time Storeaddress name Payment amount RegisterRecords-sale-of0.111.*1*1Stocked-in11Paid-by11.*HousesCaptured-on1Contained-in 9/22/202212领域模型是对所关注的现实世界领域中事物的可视化,以下元素不适用于领域模型软件制品,如窗口或数据库责任和方法9/22/202213领域

6、模型表示真实世界概念类,不是软件类SaledateTime对领域内所关注的真实世界概念的可视化并非表示软件类9/22/202214领域模型并非表示软件制品或类SalesDatabase软件制品,不属于领域模型避 免Saledatatimeprint()软件类,不属于领域模型避 免9/22/202215领域模型传统含义“软件对象的领域层在表示层或UI层之下的软件对象层是由领域对象组成的领域对象是表示问题领域空间事物的软件对象与“业务逻辑或“领域逻辑方法有关在本课中用“领域层表示上述含义9/22/202216概念类概念类是思想、事物或对象符号,表示概念类的词语或图形内涵,概念类的定义外延,概念类所

7、适用的一组例如9/22/202217概念类具有符号、内涵和外延SaledateTime概念符号“Sale表示购买交易的事件,具有日期和时间“概念内涵概念外延sale-1sale-2sale-3sale-49/22/202218领域模型领域模型不是数据类允许没有明确要求记录其相关信息的类允许没有属性的概念类如纯行为角色的概念类9/22/202219OO建模减少了表示之差9/22/202220领域模型准那么如何创立领域模型寻找概念类将其绘制为UML类图中的类添加关联和属性如何找到概念类重用和修改现有的模型使用分类列表确定名词短语9/22/202221概念类的类别准则示例业务交易十分关键(涉及金钱)

8、,所以为起点Sale, Payment, Reservation交易项目交易中通常会涉及项目,所以置为二SalesLineItem与交易或交易项目相关的产品服务(产品或服务)是交易的对象。所以置为第三Flight, Seat, Meal交易记录在何处重要Register, Ledger FlightMainifest与交易相关的人或组织的角色;用例的参与者我们通常要知道交易所涉及的各方Cashier, Customer, Store MonopolyPlayer Passenger, Airline交易的地点;服务的地点Store Airport, Plane, Seat重要事件,通常包括我们

9、需要记录的时间或地点Sale, Payment MonopolyGame Flight物理对象特别是在创建设备控制软件或进行仿真时非常有用Item, Register, Board, Piece, airplane表91 概念类分类列表9/22/202222概念类的类别准则示例事物的描述ProductDescription FlightDescription 类别描述通常有类别ProductCatalog事务(物理或信息)的容器FlightCat Store, Bin Board Airplane容器中的事物Item Square Passenger其他协作的系统CreiditAuthoriz

10、ationSystem AirTrafficControl金融、工作、合约、法律材料记录Receipt, Ledger MaintenanceLog金融手段Cash Check LineOfCredit TicketCredit执行工作所需的进度表、手册、文档等DailyPriceChangeList RepairSchedule表91 概念类分类列表9/22/202223主成功场景1、顾客携带所购商品或效劳到POS机付款处进行购置交易2、收银员开始一次新的销售交易3、收银员输入商品标识4、系统逐条记录出售的商品,并显示该商品工程的描述、价格和累计额。价格通过一组价格规那么来计算收银员重复34

11、步,直到结束5、系统显示总额和所计算的税金6、收银员告知顾客总额,并提请付款7、顾客支付,系统处理支付8、系统记录完整的销售信息,并将销售和支付信息发送到外部的帐务系统进行帐务处理和提成和库存系统更新库存9、系统打印票据10、顾客携带商品和票据如果有离开扩展7a. 现金支付1、收银员输入收取的现金额2、系统显示找零金额,并弹出现金抽屉3、收银员放入收取的现金,并给顾客找零4、系统记录该次现金支付9/22/202224寻找和描绘概念类9/22/202225业务建模准那么敏捷建模绘制类图的草图敏捷建模是否要实用工具维护模型报表对象模型中是否要包含“票据一般来说,在领域模型中显示其他信息的报表并没有

12、意义,因为其所有的信息都是源于或复制于其他信息源的像地图绘制者一样思考;使用领域术语使用地域中现有的名称排除无关或超出范围的特性不要凭空增加事物如何对非现实世界建模吸取领域专家所使用的核心词汇和概念9/22/202226业务建模准那么属性与类的常见错误如果我们认为某概念类不是现实世界中的数字或文本,那么X可能是概念类而不是属性SaleStoreSaleStorephoneNumberFlightdestinationFlightAirportname或?或?9/22/202227何时使用描述类建模描述类包含描述其他事物的信息产品描述ProductDescription在以下情况下需要增加描述类

13、需要有关商品或效劳的描述,独立于任何商品或效劳的现有实例删除其所有描述事物的实例后,导致信息丧失,而这些信息是需要维护的,但是被错误地与所删除的事物关联起来减少冗余或重复信息9/22/202228关于其他事物的描述较好较差9/22/202229关联关联association是类之间的关系,表示有意义和值得关注的链接 UML中,关联被定义为“两个或多个类元之间的语义联系,设计这些类元实例之间的连接9/22/202230关联准那么何时表示关联如果存在需要保持一段时间的关系,将这种语义表示为关联从常见关联列表中派生的关联重点关注需要记住的关联n*(n-1)/2关联是否会在软件中实现领域模型不是数据模

14、型,添加关联是为了突出对重要关系的大致理解,而非记录对象或数据结构9/22/202231应用UML关联表示法以“类名动词短语类名格式为关联命名,其中的动词短语构成了可读的和有意义的顺序 阅读方向箭头 没有其他含义,只是表示阅读关联标记的方向 通常省略RegisterSaleRecords-current1 0.1 关联名称 多重性图9-12 关联的UML表示法9/22/202232应用UML角色关联的每一端为角色多重性表达名称导航9/22/202233应用UML多重性定义了类A有多少个实例可以和类B的一个实例关联多重性的值表示在特定时刻有效关联的实例数量多重性的值和建模者和软件开发者的关注角度

15、有关,因为他表达了将要或可能早软件中反映的领域约束多重性是与语境有关联的9/22/202234StoreItem角色的多重性Stocks1TTTTT1. 1.4053,5,80或更多,“多”1或更多140精确的为5精确的为3、5或8关联的多重性多重性的值应用UML多重性9/22/202235应用UML两个类之间的多重性关联9/22/202236类型示例A是与交易B相关联的交易CashPayment-Sale Cancelation-ReservationA是交易B中的一个项目SaleLineItem-SaleA是交易B 的产品或服务Item-SalesLineItem(Sale) Flight

16、-ReservationA是与交易B相关的角色Customer-Payment Passenger-PaymentA是B的物理或逻辑部分Drawer-Register Square-Board Seat-AirplaneA被逻辑地或物理地包含在B中Register-Store, Item-Shelf Square-Board Passenger-AirplaneA是B的描述ProductDescription-Item FlightDescription-FlightA在B中被感知/记日记/记录/生成报表/捕获Sale-Register Piece-Square Reservation-Fli

17、ghtmainfestA是B的成员 Cashier-Store Player-MonopolyGame pilot-AirlineA是B的组织化单元Department-Store Maintenance-AirlineA使用/管理/拥有BCashier-Register Player-Price Pilot-Airplane A与B相邻SalesLineItems-SalesLineItem Square-Square City-City9/22/202237NextGen Pos局部领域模型9/22/202238属性属性是对象的逻辑数据值当需求建议或暗示需要记住信息时,引入属性大局部建模者

18、会假设属性的可见性为私有的,除非有另外的表示导出属性信息由其他信息计算出来表示法visibility name :type multiplicity = defaultproperty-sting9/22/202239表示法9/22/202240属性的类型领域模型中的属性应该是数据类型Boolean, Date , Number, Character, string, TimeAddress, Color, Geometrics(Point, rect) PhoneNumber/Social Security Number, Universal Product Code (UPC), 邮政编码

19、、枚举类型通过关联而不是属性来表示概念类之间的关系9/22/202241较好较差非“数据类型“数据使用关联而不是属性表示关系9/22/202242数据类型数据类型是“根本类型,通常对内容区分没有实际意义数据类型值往往时恒定不变的何时增加新的类型由不同的小节组成具有与之相关的操作具有其他属性单位的数量具有以上性的一个或多个类型的抽象9/22/202243表示对象的数据类型特性的两种方式9/22/202244属性应使用关联而不是属性来将类型关联起来较差较好“简单属性,但是用作外键与其他对象关联9/22/202245对数量建模用数字表示数量不应该表示为纯数字给数量加上单位可以把数量表示为单独的Qua

20、ntity类,并且关联到Unit9/22/202246对数量建模无效有效9/22/202247NextGen Pos局部领域模型9/22/202248UP制品及其时限例如s:开始,r:精化科目制品迭代初始I1细化E1.En构造C1.Cn移交T1.Tn业务建模领域模型s需求用例模型sr设想sr补充性规格说明sr词汇表sr设计设计模型sr软件架构文档s数据模型sr9/22/202249UP制品关系例如领域模型saledate.11.* quantitySalesLineItem. . . . . . . . .用例模型Process Sale1.Custom arrives2.Cashier ma

21、kesnew sale.3. 用例名称用例图 用例文本Operation:enter Item()Post-conditions:操作契约:Cashier:SystemMake New Sale()enter Item( id ,quantity)系统顺序图系统操作设想词汇表补充性规格说明要设计的启动事件参数和返回值的细节:Register:Product Catalog:Sale设计类型 Enter Item (itemID, quantity)Spec=getProductSpec(itemID)addLineItem(spec,quantity)业务建模需求设计图6-1 UP制品影响例如

22、9/22/202250loopmore items系统的外部参与者UML循环交互图框具有布尔量守护表达式与前一消息关联的返回值;忽略了表现和媒介的抽象;如果没有任何返回,那么返回线式可选的具有参数的消息;抽象地表示了以某种机制输入支付数据的系统事件系统作为黑盒,其命名可以是“NextGenPos,但是“System保持了简洁性;9/22/202251系统顺序图系统顺序图SSD是为阐述与所讨论系统相关的输入和输出事件而快速、简单地创立的制品在交互中,参与者对系统发起系统事件,通常需要某些系统操作,对这些事件加以处理系统顺序图表示的是,对于用例的一个特定场景,外部参与者产生的事件,其顺序和系统之内

23、的事件需要处理和响应这些事件来设计软件来自参与者人或计算机的外部事件时间事件错误或异常9/22/202252loopmore items只有现金支付并简化的处理销售场景1、顾客携带所购商品和效劳到POS机付款处进行购置交易2、收银员开始一次新的销售交易3、收银员输入商品工程标识4、系统逐条记录出售的商品工程,并显示该商品工程的描述、价格和累计额。价格通过一组价格规那么来计算收银员重复步骤34,指导结束5、系统显示总额和所计算的税金6、收银员告知顾客总额并提请付款7、顾客支付,系统处理支付。9/22/202253系统事件的命名系统事件应该在意图的抽象级别而非物理的输入设备级别来表达系统事件的名称

24、以动词开始较好的命名较差的命名9/22/202254UP制品关系例如领域模型saledate.11.* quantitySalesLineItem. . . . . . . . .用例模型Process Sale1.Custom arrives2.3.Cashier enters item identifier 用例名称用例图 用例文本Operation:enter Item()Post-conditions:操作契约:Cashier:SystemMake New Sale()enter Item( id ,quantity)系统顺序图系统操作设想词汇表补充性规格说明要设计的启动事件,并包含了

25、软件必须满足的更为细化的需求软件必须满足需求:Register:Product Catalog:Sale设计类型 Enter Item (itemID, quantity)Spec=getProductSpec(itemID)addLineItem(spec,quantity)业务建模需求设计图6-1 UP制品影响例如系统事件用于后置条件的想法经历变化的领域对象、属性和关系9/22/202255契约CO2:enterItem操作:enterItem(itemID:ItemID,quantity:integer)交叉引用:用例:处理销售前置条件:正在进行的销售后置条件:创建了SaleLineIt

26、em的实例sli(创建实例)sli与当前Sale关联(形成关联)sli.quantity赋值为quantity(修正属性)基于itemID的匹配,将sli关联到productDescription(形成关联)9/22/202256操作契约内容操作:操作的名称和参数交叉引用:会发生操作的用例前置条件:执行操作之前,对系统或领域模型对象状态的重要假设后置条件:最重要的部分,领域模型对象的状态9/22/202257定义系统操作系统操作为黑盒构件的系统在其公共接口中提供的操作设计所有用例的系统操作的完整集合将系统视为一个构件或类,定义了公共的系统接口System类的一个对象9/22/202258loopmore items这些输入系统事件调用系统操作系统事件enterItem调用称为enterItem的系统操作这和在面向对象编程时,我们所说的消息foo调用方法(处理操作)foo是一回事系统操作处理输入的系统事件9/22/202259定义后置条件后置条件描述了领域模型内对象状态的变化后置条件不是在操作过程中执行的活动,是对领域模型对象的观察结果,当操作完成后,这些结果为真创立或删除实例属性值的变化形成或消除关联后置条件并不总是需要的,但有时需要更详细和精确的描述,契约正提供了此类描述9/22/202260定义契约如果开发者在没有操作契约的情况下,能够准确地

温馨提示

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

评论

0/150

提交评论