2系统静态分析建模本章介绍:本章主要介绍了系统分析的概念、方法和各种静态模型的相关知识及其建模方法。UML的静态模型主要包括:用例图、类图、对象图、包图、构件图和部署图。学习要求:掌握各种静态模型的相关知识、建模方法。本章导读本章目录2.2系统模型的创建2.3对象和类的分析2.4用例分析2.5包图2.6构件图与部署图本章小结和习题系统分析是一种问题解决技术,它将一个系统分解成各个组成部分,目的是研究各个部分如何工作、如何交互,以实现其系统目标。目前比较流行的系统分析方法是结构化分析、信息工程、获取原型和面向对象分析,这些方法以前被看作是相互竞争、可互相替代的技术,但实际上,这些方法是可以互补的。§2.1系统分析系统开发必须完成四个阶段:系统启动,系统分析,系统设计和系统实现。系统分析的任务是了解现有业务系统,理解其中的问题,定义改进目标,并确定后续技术方案必须实现的详细业务需求。什么时候系统分析结束和什么时候系统设计开始并没有明确的界限。系统分析强调的是业务问题方面,而非技术和实现方面。§2.1.1什么是系统分析(1)结构化分析结构化分析是模型驱动的、以过程为中心的技术,用于分析一个现有系统,定义新系统的业务需求。数据流图是结构化分析方法的核心技术。(2)信息工程(IE)法信息工程(IE)法关注系统中存储的数据结构。实体关系图是建模数据需求的关键工具。(3)面向对象分析面向对象方法把系统看作是一组对象的集合,通过这些对象之间的相互协作,共同完成系统的任务。(UML)的建模工具§2.1.2模型驱动分析方法加速系统分析法强调构造原型,以便更快速地确定系统业务需求。原型通常是一个预期系统的小规模的、不完整的但可工作的示例。(1)获取原型获取原型使用快速开发技术辅助用户获取业务需求。(2)快速架构分析快速架构分析也是一种构建系统模型的加速分析法。通过逆向工程工具,从现有系统或从已获取的原型中导出系统模型。§2.1.3加速系统分析法需求获取就是进行需求收集的一个活动。(1)调查研究技术包括:对现有文档、报告、表单、文件、数据库和备忘录的抽样;研究相关文献、权衡其他方案和实地考察;观察当前系统的运转和工作环境;调查和咨询管理人员和用户团体;同合适的管理人员、用户及技术人员面谈。(2)集体获取方法将很多涉众集中在一起,通过讨论发现需求,并在讨论中达成需求认识的一致。头脑风暴(Brainstorming)、专题讨论会Workshop)、联合需求计划(JRP)。§2.1.4需求获取法§2.1.5业务过程重构法业务过程重构方法(BRP)BRP是全面质量管理和持续过程改进有引发的项目。在系统分析期间对现有业务过程的分析通常是这类项目的一部分。大多数BRP项目检查如何最佳的应用信息技术改进业务过程。BRP也应用于信息系统开发项目中,经常用来研究现有业务过程以确定问题、低效率出现的地方。BRP在基于购买和集成商用现成产品的项目中也常见。2.2.1对象模型对象模型是以对象和类为基础,描述系统中的对象以及这些对象之间的关系,通常体现五个层次,即主题层、类和对象层、结构层、属性和服务层。2.2.2功能模型功能模型是描述业务系统的目标或功能的模型。2.2.3动态模型描述的是对象的动态行为,它描述了系统如何响应外部事件,系统内对象之间如何协作,涉到及到对象的执行顺序以及对象在其生命周期中的状态变化等等。§2.2系统模型的创建§2.3对象和类的分析建立对象模型是面向对象开发的基本任务UML静态机制中的类图与对象图具有强大的表达能力,能够有效地建立专业领域的计算机系统的对象模型。尤其类图,是设计人员关心的核心,更是实现人员关注的核心,建模工具也主要根据类图来产生代码。§2.3.1对象图、类图一、类图类图中,描述了每个类的属性与操作以及类与类之间的关系。Consignee-address-name-moblieNumberDeliverOrder-delliverOrderld+Close()Order-orderDate-destArea-price-paymentType+dispatch()+close()OrderItem-productId-quatity-price-deliverState+stateChange()Customer-name-address+getCreditRating()Peddllery-peddlerld-destAreaProduct-productId-productName-producType-price0..*11..*10..*10..*11..*1§2.3.1对象图、类图一、类图1、类图的组成元素类(Class)接口(Interface)协作(Collaboration)关系:依赖(Dependence)泛化(Generalization)实现(Realize)关联(Association)类图还可以有含有注释、约束。CollaborationInstanceSet1Class2Class3Class4InterfaceinterfaceClass1§2.3.1对象图、类图一、类图2、类图的抽象层次和细化关系类图应用于软件系统建模时,通常用来构建领域模型、分析模型和设计模型。类图分为三个层次:概念层、说明层、实现层。分别对应于领域模型、分析模型和设计模型。领域模型中的类图描述的是现实世界中问题领域的概念。分析阶段的类图,描述软件的接口部分,而不是软件的实现部分。设计模型的类图,揭示软件的实现部分。§2.3.1对象图、类图二、对象图对象图(ObjectDiagram)是显示了一组对象和他们之间的关系。对象图可以看作是类图的一个实例。1.对象图的定义对象图中通常含有:对象和连接。对象图也可以像其他的图一样,包含注解、约束、包或子系统。2.理解对象图的方法(1)识别出对象图中所有的类。(2)了解每个对象的语义及对象之间连接含义。§2.3.1对象图、类图二、对象图大学-名称-地址-电话+取地址()+取电话号()+取名称()部门-部门名教师-编号-姓名+取编号()+取姓名()1..*11..*1..*+院长*10..1*Object1:部门部门名=“分校”Object2:部门部门名=“化工学院”Object3:部门部门名=美术学院univ:大学名称=“太原大学”地址=“五一路”电话=“6016011”te:教师编号=“511”姓名=“王世跃”+院长§2.3.2对象和类的提取和确定一、对象、类对象(Object)我们通常用对象描述客观世界中某个具体的实体。对象可以是事、物、或抽象概念,是将一组数据和使用该数据的一组基本操作(或过程)封装在一起的实体。类(Class)是对一类具有相同特征的对象的抽象描述。类确定了对象的结构和能力。类是对象的模板,而对象是类的实例。可以理解为类就象模子,对象是通过模子塑造的实体。§2.3.2对象和类的提取和二、类的描述类由类名(Name)、属性(Attribute)和操作(Operation)三部分组成。类名属性:用来描述类的特征,表示需要处理的数据。操作(Operation):操作也被称为功能或方法,操作说明了该类能做些什么工作。教师-编号-姓名+确编号()+取姓名()类名属性操作学生§2.3.2对象和类的提取和确定三、类之间的关系1.泛化(继承)关系泛化关系指类之间的“一般与特殊关系”。通常称一般元素为父类,称特殊元素为子类。子类继承父类的特性(属性、操作、关联等),同时可以有自己的特性。单继承多继承继承有传递性客户个人客户团体客户学生大学生中学生小学生§2.3.2对象和类的提取和确定三、类之间的关系2.依赖关系依赖是一种“使用”关系,说明一个模型元素的变化必影响到另一个模型元素,但反之未必。教师课表课程add(c:课程)remove(c:课程)...§2.3.2对象和类的提取和确定2.依赖关系依赖关系的几种衍型:§2.3.2对象和类的提取和确定三、类之间的关系3.关联关系:关联是一种结构关系,代表类的对象(实例)之间的一组连接(链)。(1)关联的属性①名称②角色:人员公司雇用§2.3.2对象和类的提取和确定三、类之间的关系③多重性:通常需要说明一个关联实例中有多少个相互连接的对象,这就是关联的多重性。§2.3.2对象和类的提取和确定三、类之间的关系④导航:从源类的任何对象直接到达目标类的对象。双向关联单向关联⑤限定:给定关联一端的一个对象,并指定限定符内的属性值,能够唯一确定另一端的1个对象或对象集。PersonBank0..1account:Account0..n账户密码§2.3.2对象和类的提取和确三、类之间的关系⑥约束⑦关联类供货商顾客**交易AccountPersonCompany0..*0..*{xor}....................§2.3.2对象和类的提取和确定三、类之间的关系(2)关联的种类①自返关联②二元关联③N元关联(3)特殊关联:聚合和组合①聚合:表示部分与整体的关系。②组合:组合也表示整体与部分的关系。强调部分与整体具有相同的生命周期。计算机显示器CPU内存键盘窗口列表框菜单按钮§2.3.2对象和类的提取和确定三、类之间的关系4.接口和实现关系接口:也是一个类,接口用于描述类或组件必须实现的契约。实现关系:一个类元描述了另一个类元保证实现的契约。InterfaceInterfaceInterfaceinterface传感器接口interface报警器传感器§2.3.3分析阶段类图的构建分析阶段构建类图的一般步骤:①确定类②识别类的属性和操作。③识别类之间的关联。④定义类的结构和层次。§2.3.3分析阶段类图的构建一、确定类1.找出候选类2.审查与筛选类①删除冗余类②去掉无关类③删除模糊的类④去掉应该是类“属性”的候选类⑤所描述的操作不适宜作为类⑥实现结构不宜作为类§2.3.3分析阶段类图的构建二、识别类的属性和操作1.识别类的属性识别属性需要结合需求陈述、领域知识和常识以及经验,也可以借鉴以往分析的成果。(1)从以下角度识别:①常识性②专业性③功能性④存储性⑤操作性⑥标志性⑦关联性§2.3.3分析阶段类图的构建1.识别类的属性(2)筛选类的属性:①应当忽略那些派生属性。②忽略那些不太会影响多数操作的次要属性。③如某属性描述对象本身的特征,从外界是观察不到的,应当删除。④删除对象内与其他属性完全不相关、不一致的属性。⑤删除和系统无关的属性。⑥属性值受到某个关联影响,删除此属性,并把它附加在此关联上。2.识别类的操作§2.3.3分析阶段类图的构建三、组织类并确定其关系第一步,确定关联关系及多重性。第二步,识别继承:自顶向下或自底向上。第三步,考虑是否存在聚合或组合关系。第四步,对于复杂的系统,用包图为其建模。2.3.4在线销售系统类图分析示例候选类的数据字典§2.3.4在线销售系统类图分析示例Member-member_id-member_name-login_pwd-login_name-regdate-last_dateMemberOrder-order_number-order_status-order_subtotal-order_subtax-order_shippingmethodGoods-goods_id-goods_name-instock_quantity-goods_type-goods_price-spriceMemberOrderedGoods-orderedgoods_id-ordered_quantity-shipped_quantity-backordered_quantity-price-credits_earnedPayment-pay_id-payment_method-pa