欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件需求分析与设计-业务建模和需求细化.pptx

    • 资源ID:87503428       资源大小:700.76KB        全文页数:65页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件需求分析与设计-业务建模和需求细化.pptx

    2023/3/301初始不是需求阶段细化阶段的迭代1强调的是基础范围和在构建对象系统中所使用的常见OOA/D技术构件软件其他技术也要涉及数据库设计可用性工程UI设计在迭代开发中,并非一次实现所有需求在多次迭代里对同一用例进行增量式开发第1页/共65页2023/3/302用例的实现可能在多个迭代中展开第2页/共65页2023/3/303初始阶段的工作简单的需求讨论会大多数参与者、目标和用例名称大多数以摘要形式编写的用例确定大多数具有影响和风险的质量需求编写设想和补充性规格说明的第一个版本风险列表技术上的概念验证原型和其他调查,用于揭示特殊需求的技术可行性面向用户界面的原型,用于确定对功能需求的设想对购买/构建/复用构件的建议对候选的高层架构和构件给出建议第3页/共65页2023/3/304细化工作细化是核心架构、解决高风险元素、定义大部分需求,以及预计总体进度和资源对核心、有风险的软件架构进行编程和测试发现并稳定需求的主题部分规避主要风险细化通常有两个或多个阶段细化不是设计阶段第4页/共65页2023/3/305细化最佳实践实行短时间定量、风险驱动的迭代及早开始编程对架构的核心和风险部分进行适应性的设计、实现和测试尽早、频繁、实际地测试基于来自测试、用户、开发者的反馈进行调整通过一系列讨论会,详细编写大部分用例和其他需求,每个细化迭代举行一次第5页/共65页2023/3/306细化阶段的制品样例制品说明领域模型领域概念的可视化,类似于领域实体的静态信息模型设计模型描述逻辑设计的一组图,包括软件类图、对象交互图、包图等软件架构文档学习辅助工具,概括关键架构问题及其在设计中的解决方案。该文档是对重要设计思想及其在系统中动机的概要数据模型包括数据库方案,以及在对象和非对象表示之间的映射的策略用例示意板,用户界面模型描述用户界面、导航路径、可用性模型等第6页/共65页2023/3/307何时知道自己并没有理解细化阶段对于大部分项目,细化阶段都比“几个”月更长只有一次迭代在细化开始之前就定义了大部分需求没有处理具有风险的元素和核心架构没有产生可执行架构,没有进行产品代码的编写认为细化阶段主要是需求和设计阶段,为构造阶段的实现进行准备试图在编程之前进行彻底和细致的设计只有少量的反馈和调整;用户没有持续地参与评估和反馈没有尽早和实际的测试在编程之前推测地结束架构设计认为细化阶段是进行概念验证编程阶段,而不是对产品核心架构编程阶段第7页/共65页2023/3/308领域模型是对领域内的概念类或现实世界中对象的可视化表示也称概念模型、领域对象模型和分析对象模型在UP中,是对现实世界概念类的表示,而非软件对象的表示,该术语并不是指用来描述软件类、软件构架类领域层或有职责软件对象的一组图UP领域模型是UP业务对象模型的特化UML,领域模型被描述为一组没有定义操作的类图,它提供了概念透视图领域对象或概念类概念类之间的关联概念类的属性第8页/共65页2023/3/309用例制品关系样例第9页/共65页2023/3/3010领域模型概念或领域对象关联属性SalesLineItemquantity ItemSaledata time Storeaddress name Payment amount RegisterRecords-sale-of0.111.*1*1Stocked-in11Paid-by11.*HousesCaptured-on1Contained-in 第10页/共65页2023/3/3011领域模型是对所关注的现实世界领域中事物的可视化,以下元素不适用于领域模型软件制品,如窗口或数据库责任和方法第11页/共65页2023/3/3012领域模型表示真实世界概念类,不是软件类SaledateTime对领域内所关注的真实世界概念的可视化并非表示软件类第12页/共65页2023/3/3013领域模型并非表示软件制品或类SalesDatabase软件制品,不属于领域模型避 免Saledatatimeprint()软件类,不属于领域模型避 免第13页/共65页2023/3/3014领域模型传统含义“软件对象的领域层”在表示层或UI层之下的软件对象层是由领域对象组成的领域对象是表示问题领域空间事物的软件对象与“业务逻辑”或“领域逻辑”方法有关在本课中用“领域层”表示上述含义第14页/共65页2023/3/3015概念类概念类是思想、事物或对象符号,表示概念类的词语或图形内涵,概念类的定义外延,概念类所适用的一组示例第15页/共65页2023/3/3016概念类具有符号、内涵和外延SaledateTime概念符号“Sale表示购买交易的事件,具有日期和时间“概念内涵概念外延sale-1sale-2sale-3sale-4第16页/共65页2023/3/3017领域模型领域模型不是数据类允许没有明确要求记录其相关信息的类允许没有属性的概念类如纯行为角色的概念类第17页/共65页2023/3/3018OO建模减少了表示之差第18页/共65页2023/3/3019领域模型准则如何创建领域模型寻找概念类将其绘制为UML类图中的类添加关联和属性如何找到概念类重用和修改现有的模型使用分类列表确定名词短语第19页/共65页2023/3/3020概念类的类别准则示例业务交易十分关键(涉及金钱),所以为起点Sale,Payment,Reservation交易项目交易中通常会涉及项目,所以置为二SalesLineItem与交易或交易项目相关的产品服务(产品或服务)是交易的对象。所以置为第三Flight,Seat,Meal交易记录在何处重要Register,Ledger FlightMainifest与交易相关的人或组织的角色;用例的参与者我们通常要知道交易所涉及的各方Cashier,Customer,Store MonopolyPlayer Passenger,Airline交易的地点;服务的地点Store Airport,Plane,Seat重要事件,通常包括我们需要记录的时间或地点Sale,Payment MonopolyGame Flight物理对象特别是在创建设备控制软件或进行仿真时非常有用Item,Register,Board,Piece,airplane表91 概念类分类列表第20页/共65页2023/3/3021概念类的类别准则示例事物的描述ProductDescription FlightDescription 类别描述通常有类别ProductCatalog事务(物理或信息)的容器FlightCat Store,Bin Board Airplane容器中的事物Item Square Passenger其他协作的系统CreiditAuthorizationSystem AirTrafficControl金融、工作、合约、法律材料记录Receipt,Ledger MaintenanceLog金融手段Cash Check LineOfCredit TicketCredit执行工作所需的进度表、手册、文档等DailyPriceChangeList RepairSchedule表91 概念类分类列表第21页/共65页2023/3/3022主成功场景1、顾客携带所购商品或服务到POSPOS机付款处进行购买交易2、收银员开始一次新的销售交易3、收银员输入商品标识4、系统逐条记录出售的商品,并显示该商品项目的描述、价格和累计额。价格通过一组价格规则来计算收银员重复34步,直到结束5、系统显示总额和所计算的税金6、收银员告知顾客总额,并提请付款7、顾客支付,系统处理支付8、系统记录完整的销售信息,并将销售和支付信息发送到外部的帐务系统(进行帐务处理和提成)和库存系统(更新库存)9、系统打印票据10、顾客携带商品和票据(如果有)离开扩展7a.现金支付1、收银员输入收取的现金额2、系统显示找零金额,并弹出现金抽屉3、收银员放入收取的现金,并给顾客找零4、系统记录该次现金支付第22页/共65页2023/3/3023寻找和描绘概念类第23页/共65页2023/3/3024业务建模准则敏捷建模绘制类图的草图敏捷建模是否要实用工具维护模型报表对象模型中是否要包含“票据”一般来说,在领域模型中显示其他信息的报表并没有意义,因为其所有的信息都是源于或复制于其他信息源的像地图绘制者一样思考;使用领域术语使用地域中现有的名称排除无关或超出范围的特性不要凭空增加事物如何对非现实世界建模吸取领域专家所使用的核心词汇和概念第24页/共65页2023/3/3025业务建模准则属性与类的常见错误如果我们认为某概念类不是现实世界中的数字或文本,那么X可能是概念类而不是属性SaleStoreSaleStorephoneNumberFlightdestinationFlightAirportname或?或?第25页/共65页2023/3/3026何时使用”描述”类建模描述类包含描述其他事物的信息产品描述(ProductDescription)在以下情况下需要增加描述类需要有关商品或服务的描述,独立于任何商品或服务的现有实例删除其所有描述事物的实例后,导致信息丢失,而这些信息是需要维护的,但是被错误地与所删除的事物关联起来减少冗余或重复信息第26页/共65页2023/3/3027关于其他事物的描述较好较差第27页/共65页2023/3/3028关联关联(association)是类之间的关系,表示有意义和值得关注的链接 UML中,关联被定义为“两个或多个类元之间的语义联系,设计这些类元实例之间的连接”第28页/共65页2023/3/3029关联准则何时表示关联如果存在需要保持一段时间的关系,将这种语义表示为关联从常见关联列表中派生的关联重点关注需要记住的关联n*(n-1)/2关联是否会在软件中实现领域模型不是数据模型,添加关联是为了突出对重要关系的大致理解,而非记录对象或数据结构第29页/共65页2023/3/3030应用UML关联表示法以“类名动词短语类名”格式为关联命名,其中的动词短语构成了可读的和有意义的顺序 阅读方向箭头 没有其他含义,只是表示阅读关联标记的方向 通常省略RegisterSaleRecords-current1 0.1 关联名称 多重性图9-12 关联的UML表示法第30页/共65页2023/3/3031应用UML角色关联的每一端为角色多重性表达名称导航第31页/共65页2023/3/3032应用UML多重性定义了类A有多少个实例可以和类B的一个实例关联多重性的值表示在特定时刻有效关联的实例数量多重性的值和建模者和软件开发者的关注角度有关,因为他表达了将要(或可能)早软件中反映的领域约束多重性是与语境有关联的第32页/共65页2023/3/3033StoreItem角色的多重性Stocks1TTTTT1.1.4053,5,80或更多,“多”1或更多140精确的为5精确的为3、5或8关联的多重性多重性的值应用UML多重性第33页/共65页2023/3/3034应用UML两个类之间的多重性关联第34页/共65页2023/3/3035类型示例A是与交易B相关联的交易CashPayment-Sale Cancelation-ReservationA是交易B中的一个项目SaleLineItem-SaleA是交易B 的产品或服务Item-SalesLineItem(Sale)Flight-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-FlightmainfestA是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-City第35页/共65页2023/3/3036NextGen Pos部分领域模型第36页/共65页2023/3/3037属性属性是对象的逻辑数据值当需求建议或暗示需要记住信息时,引入属性大部分建模者会假设属性的可见性为私有的,除非有另外的表示导出属性信息由其他信息计算出来表示法visibility name:type multiplicity=defaultproperty-sting第37页/共65页2023/3/3038表示法第38页/共65页2023/3/3039属性的类型领域模型中的属性应该是数据类型Boolean,Date,Number,Character,string,TimeAddress,Color,Geometrics(Point,rect)PhoneNumber/Social Security Number,Universal Product Code(UPC),邮政编码、枚举类型通过关联而不是属性来表示概念类之间的关系第39页/共65页2023/3/3040较好较差非“”数据类型“数据使用关联而不是属性表示关系第40页/共65页2023/3/3041数据类型数据类型是“基本”类型,通常对内容区分没有实际意义数据类型值往往时恒定不变的何时增加新的类型由不同的小节组成具有与之相关的操作具有其他属性单位的数量具有以上性的一个或多个类型的抽象第41页/共65页2023/3/3042表示对象的数据类型特性的两种方式第42页/共65页2023/3/3043属性应使用关联而不是属性来将类型关联起来较差较好“简单”属性,但是用作外键与其他对象关联第43页/共65页2023/3/3044对数量建模用数字表示数量不应该表示为纯数字给数量加上单位可以把数量表示为单独的Quantity类,并且关联到Unit第44页/共65页2023/3/3045对数量建模无效有效第45页/共65页2023/3/3046NextGen Pos部分领域模型第46页/共65页2023/3/3047UP制品及其时限示例(制品及其时限示例(s:开始,开始,r:精化)精化)科目制品迭代初始I1细化E1.En构造C1.Cn移交T1.Tn业务建模领域模型领域模型s需求用例模型sr设想sr补充性规格说明sr词汇表sr设计设计模型sr软件架构文档s数据模型sr第47页/共65页2023/3/3048UP制品关系示例领域模型saledate.11.*quantitySalesLineItem.用例模型Process Sale1.Custom arrives2.Cashier makesnew 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制品影响示例第48页/共65页2023/3/3049loop more items系统的外部参与者UML循环交互图框具有布尔量守护表达式与前一消息关联的返回值;忽略了表现和媒介的抽象;如果没有任何返回,则返回线式可选的具有参数的消息;抽象地表示了以某种机制输入支付数据的系统事件系统作为黑盒,其命名可以是“NextGenPos”,但是“System”保持了简洁性;第49页/共65页2023/3/3050系统顺序图系统顺序图(SSD)是为阐述与所讨论系统相关的输入和输出事件而快速、简单地创建的制品在交互中,参与者对系统发起系统事件,通常需要某些系统操作,对这些事件加以处理系统顺序图表示的是,对于用例的一个特定场景,外部参与者产生的事件,其顺序和系统之内的事件需要处理和响应这些事件来设计软件来自参与者(人或计算机)的外部事件时间事件错误或异常第50页/共65页2023/3/3051loop more items只有现金支付并简化的处理销售场景1、顾客携带所购商品和服务到POS机付款处进行购买交易2、收银员开始一次新的销售交易3、收银员输入商品项目标识4、系统逐条记录出售的商品项目,并显示该商品项目的描述、价格和累计额。价格通过一组价格规则来计算收银员重复步骤34,指导结束5、系统显示总额和所计算的税金6、收银员告知顾客总额并提请付款7、顾客支付,系统处理支付。第51页/共65页2023/3/3052系统事件的命名系统事件应该在意图的抽象级别而非物理的输入设备级别来表达系统事件的名称以动词开始较好的命名较差的命名第52页/共65页2023/3/3053UP制品关系示例领域模型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)系统顺序图系统操作设想词汇表补充性规格说明要设计的启动事件,并包含了软件必须满足的更为细化的需求软件必须满足需求:Register:Product Catalog:Sale设计类型 Enter Item(itemID,quantity)Spec=getProductSpec(itemID)addLineItem(spec,quantity)业务建模需求设计图6-1 UP制品影响示例系统事件用于后置条件的想法经历变化的领域对象、属性和关系第53页/共65页2023/3/3054契约CO2:enterItem操作:enterItem(itemID:ItemID,quantity:integer)交叉引用:用例:处理销售前置条件:正在进行的销售后置条件:l创建了SaleLineItem的实例sli(创建实例)lsli与当前Sale关联(形成关联)lsli.quantity赋值为quantity(修正属性)l基于itemID的匹配,将sli关联到productDescription(形成关联)第54页/共65页2023/3/3055操作契约内容操作:操作的名称和参数交叉引用:会发生操作的用例前置条件:执行操作之前,对系统或领域模型对象状态的重要假设后置条件:最重要的部分,领域模型对象的状态第55页/共65页2023/3/3056定义系统操作系统操作为黑盒构件的系统在其公共接口中提供的操作设计所有用例的系统操作的完整集合将系统视为一个构件或类,定义了公共的系统接口System类的一个对象第56页/共65页2023/3/3057loop more items这些输入系统事件调用系统操作系统事件enterItem调用称为enterItem的系统操作这和在面向对象编程时,我们所说的消息foo调用方法(处理操作)foo是一回事系统操作处理输入的系统事件第57页/共65页2023/3/3058定义后置条件后置条件描述了领域模型内对象状态的变化后置条件不是在操作过程中执行的活动,是对领域模型对象的观察结果,当操作完成后,这些结果为真创建或删除实例属性值的变化形成或消除关联后置条件并不总是需要的,但有时需要更详细和精确的描述,契约正提供了此类描述第58页/共65页2023/3/3059定义契约如果开发者在没有操作契约的情况下,能够准确地理解所需要完成的工作,则可以不编写契约编写契约的指导从SSD中确定系统操作如果系统操作复杂,其结果可能不明显,或者在用例中不清楚,则可以为其构造契约使用一下几种类别来描述后置条件创建和删除实例修改属性形成和清除关联第59页/共65页2023/3/3060契约CO1:makeNewSale操作:makeNewSale()交叉引用:用例:处理销售前置条件:无后置条件:l创建了Sale的实例s(创建实例)ls被关联到Register(形成关联)ls的属性被初始化(修正属性)第60页/共65页2023/3/3061契约CO2:enterItem操作:enterItem(itemID:ItemID,quantity:integer)交叉引用:用例:处理销售前置条件:正在进行的销售后置条件:l创建了SaleLineItem的实例sli(创建实例)lsli与当前Sale关联(形成关联)lsli.quantity赋值为quantity(修正属性)l基于itemID的匹配,将sli关联到productDescription(形成关联)第61页/共65页2023/3/3062契约CO3:endSale操作:endSale()交叉引用:用例:处理销售前置条件:正在进行的销售后置条件:lSale.isComplete被置为真关联第62页/共65页2023/3/3063契约CO4:makePayment操作:makePayment(amount:Money)交叉引用:用例:处理销售前置条件:正在进行的销售后置条件:l创建了Payment的实例p(创建实例)lp.amountTendered被赋值为amount(修改属性)lp被关联到当前的Sale(形成关联)l当前的Sale被关联到Stores(形成关联)(将其加入第63页/共65页2023/3/3064应用UML:操作、契约操作是可以调用对象执行的转换或查询的规格说明操作是抽象而非实现方法是操作的实现,他规定了与操作关联的算法或过程操作具有特征标记(名称和参数),与一组UML约束对象关联(前置、后置条件)操作不能表示算法和解决方案,而只能是状态的变化或操作的效果契约除了可以用于指定整个System的操作外,可以定义子系统的公共操作第64页/共65页2023/3/3065感谢您的观看!第65页/共65页

    注意事项

    本文(软件需求分析与设计-业务建模和需求细化.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开