【文档说明】软件工程实践者的研究方法chapter06cn建模流程行为与模式课件.pptx,共(33)页,153.770 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45054.html
以下为本文档部分文字说明:
软件工程实践者的研究方法chapter06cn建模流程行为与模式课件需求建模策略•Oneviewofrequirementsmodeling,calledstructuredanalysis,considersdataandtheprocessesthattran
sformthedataasseparateentities.–Dataobjectsaremodeledinawaythatdefinestheirattributesandrelationships.–Processesthatmanipulatedataobjects
aremodeledinamannerthatshowshowtheytransformdataasdataobjectsflowthroughthesystem.•Asecondapproachtoanalysismod
eled,calledobject-orientedanalysis,focuseson–thedefinitionofclassesand–themannerinwhichtheycollaboratewithoneanothertoeffectcustomerrequirements.
需求建模策略•一种考虑数据和处理的分析建模方法被称作结构化分析,其中数据作为独立实体转换。数据对象建模定义了对象的属性和关系,操作数据对象的处理建模应表明当数据对象在系统内流动时处理如何转换数据。•第二种方法
称作面向对象的分析,这种方法关注于定义类和影响客户需求的类之间的协作方式。UML和统一过程主要是基于流的模型表示数据对象在系统间流动时,是如何转换的一个数据流图(DFD)是一种图形格式,是最为广泛使用的一种方法。流模型每个基于计算机的系统都是一种信息转换....compu
terbasedsysteminputoutput流模型的符号表示外部实体处理数据流数据存储外部实体数据的构造者或消费者例如:人,设备,传感器另外一个例子:基于计算机的系统数据必须总是从某个地方起源,然后必须被送到另外一个
地方。处理数据转换者(将输入转换成输出)例子:计算税收,确定区域,格式化报表,展示图形为了获得某些系统功能,数据必须被处理数据流流经一个系统的数据,开始作为输入,被转换为输出computetriangleareabasehe
ightarea数据存储数据通常被存储,用于将来使用look-upsensordatasensor#reportrequiredsensor#,type,location,agesensordatasensornumbertype,location,age数据流图:原则•所有图标必须有有
意义的名字•DFD可以分层•总是从一个上下文图开始(也称为0层次图)•总是在第0层展示外部实体•数据流箭头需要有标识•不表示过程型的逻辑构造一个DFD—I•复审数据模型,将数据对象分离出来,使用一个语法解
析器将操作分解出来。•确定外层实体(数据的构造者和消费者)•构造0层DFD0层DFD的例子userprocessingrequestvideosourceNTSCvideosignaldigitalvideoprocessorrequestedvideosignalmon
itor构造一个DFD—II•对转换写一个描述•解析以确定下一层的转换•“平衡”页面流,以维护数据流的连续性•构造一个1层DFD•使用1:5(近似)扩展率数据流层次Pabxyp1p2p3p45abcdefg第0层第1层流模型注意事项•所
有泡泡都被精化,直到每个泡泡只做一件事情•当层次增加的时候,扩展率不断降低•对于一个描述比较充分的数据流模型,大多数系统需要3到7层•当层次增加时,一个单一的数据流对象条目(箭头)会被扩充(数据字典提供了信息)处理规格说明(PSPEC)PSPECnarrativepseudo
code(PDL)equationstablesdiagramsand/orcharts泡泡数据流图的转换:预先看一眼映射到分析模型设计模型ControlFlowModeling•Represents―events‖andtheprocessesth
atmanageevents•An―event‖isaBooleanconditionthatcanbeascertainedby:•listingallsensorsthatare"read"bythesoftware.
•listingallinterruptconditions.•listingall"switches"thatareactuatedbyanoperator.•listingalldataconditions.•recallingthenoun/verbparsethatwa
sappliedtotheprocessingnarrative,reviewall"controlitems"aspossibleCSPECinputs/outputs.创建控制流模型事件或控制项可以实现为布尔值(例如,
true或false,on或off,1或0)或条件的离散列表(空、拥挤、满)。为了选择潜在的候选事件,建议使用如下的指导原则:•列出所有被软件“读”的传感器。•列出所有的中断条件。•列出操作人员能够启动的所有“开关”。•列出所有的数据条件。控制流图读取操作员输入createuse
rdisplays执行问题诊断reloadprocess复制beeperon/offstartcopiesdonedisplaypanelenabledfullproblemlightemptyjammed控制规范(CSPEC)CSPEC可以是:状态图(sequen
tialspec)状态变迁表判定表激活表组合规范构造CSPEC的一些方法列出软件“读”的所有传感器列出所有中断条件列出所有由操作员控制的"开关"列出所有数据条件基于原始系统描述,复查所有“控制项”,作为可能的CSPEC输入/输出。通过识别系统状态描述系统行为,识别状态如何达到
以及状态之间的变迁寻找可能的遗漏„有其他方法到达或者离开这个状态吗?行为模型•行为模型表示软件如何对外部事件或激励做出响应。为构造该模型,分析员必须执行下列步骤:•Evaluatealluse-casestofullyunderstandthese
quenceofinteractionwithinthesystem.•Identifyeventsthatdrivetheinteractionsequenceandunderstandhowthe
seeventsrelatetospecificobjects.•Createasequenceforeachuse-case.•Buildastatediagramforthesystem.•Reviewthebehavior
almodeltoverifyaccuracyandconsistency.行为建模•列出一个系统不同的状态•表明系统如何从一个状态转换成另外一个状态(系统状态是如何变化的?)–表明事件–表明动作•构造一个状态图或序列图识别用例事件•用例表
现了涉及的参与者和系统的活动顺序。一般而言,只要系统和参与者之间交换了信息就发生事件。•一旦确定了所有的事件,这些事件将被分配到所涉及的对象,对象负责生成事件或识别已经在其他地方发生的事件。状态表示•在行为建模中,必须考虑两种不同的状态:–当系统执行功能的时候,每个类的状态–当系统执行功能的时
候,从外部观测到的系统状态。•一个类的状态同时有passive和active特征[CHA93].–一个passivestate是对象所有属性的当前状态–Theactivestateofanobjectindicatesthecur
rentstatusoftheobjectasitundergoesacontinuingtransformationorprocessing.ControlPanel类的状态图readinglockedselectingpasswordenteredcompar
ingpassword=incorrect&numberOfTries<maxTriespassword=correctactivationsuccessfulkeyhitdo:validatePasswordnumberOf
Tries>maxTriestimer<lockedTimetimer>lockedTime一个系统的状态模型•状态•状态变迁—从一个状态转换到另外一个状态•事件•动作序列图homeownercontrolpanelsensorssystemsensorssystemreadyreadingr
equestlookupcomparingresultpasswordenteredpassword=correctrequestactivationactivationsuccessfullockednumberOfTries>maxTriesselec
tingtimer>lockedTimeAAFigure8.27Sequencediagram(partial)forSafeHomesecurityfunctionactivationsuccessful需求建模的模式•软件模式是获取领域知识的一种机制从而遇到新问题时可以反复使用。在某
些情况下,领域知识在同一应用领域中用于解决新问题。在另外一些情况下,通过模式获取的领域知识可借助模拟用于完全不同的应用领域。•分析模式的最初创作者没有“创建”模式,但在需求工程工作中发现了模式。一旦发现模式则记载“明确的常见问题:哪种模式适用、规定的解决方案、在Beh
avioralModeling•makealistofthedifferentstatesofasystem(Howdoesthesystembehave?)•indicatehowthesystemm
akesatransitionfromonestatetoanother(Howdoesthesystemchangestate?)–indicateevent–indicateaction•drawastatediagramorasequence
diagram