ICONIX与MDA过程及其特征_第1页
ICONIX与MDA过程及其特征_第2页
ICONIX与MDA过程及其特征_第3页
ICONIX与MDA过程及其特征_第4页
ICONIX与MDA过程及其特征_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程第1章 ICONIX与MDA过程范型及其特征 宁夏医科大学 理学院 杨德仁大纲 ICONIX过程范型 介绍 综述 关键特征 要解决的几个关键问题 过程概括 设计原则 MDA过程范型 介绍 综述 什么是模型? 为什么用模型? 关键特征 设计原则 两种过程范型的比较ICONIX过程范型:介绍 适中 位于复杂的RUP和简单的XP(没有分析和设计)之间 流水线化使用UML图,同时,保持可追踪性 使用UML的最小集,而且足够用! 用例驱动。ICONIX过程范型:综述 如何过渡?ICONIX过程范型:综述 OO:CLASS 属性(对应系统的数据) 操作(对应系统的功能) 问题 如何分配行为?ICO

2、NIX过程范型:综述 方案 序列图:通过传递消息实现对象之间的交互 把操作分配给类,顶部是对象,对象出现的唐突! 把功能分配给对象的行为ICONIX过程范型:综述 如何从需求阶段的用例图(what)到详细设计阶段的序列图(how)? ICONIX的核心! 鲁棒图,初步设计 填补设计鸿沟,是桥梁,发现对象! 精化用例图 为类增加属性ICONIX过程范型:综述ICONIX过程范型:综述 鲁棒图的要素 边界对象 实体对象,在那里? 控制对象ICONIX过程范型:综述 实体对象的出处 域模型(domain model), 抽象的词汇,问题域中的名词称为域对象 鲁棒图中的实体对象,总被映射成数据库表 是

3、简化了的类图:没有属性和操作 分析阶段的、词汇级的类图,ICONIX过程范型:综述ICONIX过程范型:综述ICONIX过程范型:综述 步骤 需求确认(用例驱动!) 画出原型,界面草图 识别用例,画出用例图 分析(初步设计) 写出用例简述, 建立域模型 用鲁棒图精化用例简述,确认需求! 详细设计阶段 画序列图 精化类图ICONIX过程范型:关键特征 流水线方法,利用最小UML集,三个主要特征: 流水线化使用UML 可追溯性 迭代和增量性ICONIX过程范型:要解决的几个问题 谁是用户?要做什么? 问题域对象及其关联 每个用例需要那些对象?对象之间如何交互? 如何处理实时控制问题? 如何在“螺母

4、和螺栓 ”级构建系统?ICONIX过程范型:过程描述 路线图及其里程碑 识别和描述使用场景 从场景中抽象出 域模型 确认功能需求 如何分配行为 用到设计原理ICONIX过程范型:过程概括ICONIX过程范型:过程概括ICONIX过程范型:过程概括ICONIX过程范型:过程概括ICONIX过程范型:三个原则ICONIX过程范型:三个原则MDA过程范型:介绍 The new software crisis First crisis: 1965 Main problem: collective programming Solutions: (NATO Summer School 1967 & 196

5、8 in Garmisch-Partenkirchen) Software engineering“ Structured programming“ Top-down approaches“ Mass produced software components by M. D. McIlroy, Bell Labs Second crisis: 2000 Main problem: rapid platform evolution Solutions: (OMG November 2000): MDA : Decouple neutral business models from variabl

6、e platforms From code-centric to model-centric approaches Transformations as assetsMDA过程范型:介绍 Systems are becoming more complex Increasing Volume:Data,Code,Aspects (functional and non-functional) Increasing evolutivity of the business part (globalization, concentrations,reorganizations, increasing c

7、ompetition, ) of the execution platform Increasing heterogeneity languages and paradigms data handling and access protocols operating systems and middleware platforms Technologies The arrival rate of new technologies is increasing This rate is not likely to decrease in the future Old technologies do

8、nt die, they just hide within deep software layersMDA过程范型:介绍Objects have failed (Richard Gabriel, OOPSLA 2002)The object-oriented approach does not adequately address the computing requirements of the future.Object-oriented languages have lost the simplicitysome would say puritythat made them specia

9、l and which were the source of their expressive and development power.Powerful concepts like encapsulation were supposed to save people from themselves while developing software, but encapsulation fails for global properties or when software evolution and wholesale changes are needed. Objects promis

10、ed reuse, and we have not seen much success. People enthused by objects hogged the road, would not get out of the way,would not allow alternatives to be explorednot through malice but through exuberanceand now resources that could be used to move ahead are drying up. But sometimes this exuberance wa

11、s out-and-out lying to push others out of the way.MDA过程范型:介绍 We promised simplicity; We delivered increasing complexityMDA过程范型:介绍 We lied about objects Object technology failed to achieve its promises of simplification. We promised simplicity; We delivered increasing complexity Seamlessness consider

12、ed harmful:Impedance mismatch between business and software Exact correspondance? Analysis model to Design model to code model? Where are objects coming from? Patterns are not objects,Services are not objects,Aspects are not objects,Plugins are not objects,Methods are not objects etc. The missed mar

13、riages: Objects and databases,Objects and processes,Objects and transactions,Objects and the Web etc.MDA过程范型:介绍 Object technology realized some promises but failed to achieve others Stopping the search for generality may be a cause for this Model engineering is making many promises today Will it be

14、able to deliver correspondingly? Sticking with the principle that everything is a model is a good way to make progressesMDA过程范型:介绍 If MDA is the solution, then what is the problem? MDA aims to solve a set of problems with a set of techniques Need to delimit carefully the exact boundaries of the prob

15、lem space and the solution space Multiple elements in each of these Necessary if we want to evaluate success ratio What are the promises we are making today? When are we supposed to deliver? Structured programming or object technology did not? address only one unique problem MDA tries to solve more

16、than only the platform independence problemMDA过程范型:介绍MDA过程范型:介绍MDA guides architects and developers to more effectively define models at various levels of abstraction and to develop transformations among models, code, and other artifacts of the software lifecycle.What is the MDA? Model Driven Archit

17、ecture (MDA) is an emerging set of standards and technologies focused on a particular software development paradigm. The MDA provides a conceptual framework and set of standards Express models, Model relationships, Model-to-model transformations Model is our code - Code is our model MDA established

18、by Object Management Group (OMG), a non-profit consortium of 800+ organizations that produces/maintains computer industry specifications for interoperable enterprise applications MDA过程范型:介绍MDA(Model Driven Architecture)是由OMG定义的一个软件开发框架。它标志着通用软件建模开始走向成熟。其关键之处是模型在软件过程中扮演非常重要角色。软件过程是由建模行为驱动的。 One aim o

19、f MDA is to separate design from architecture. As concepts and technologies used to realize designs and those used to realize architectures is not same things, The design addresses the functional(use case) requirements while architecture provides the infrastructure through which non-functional requi

20、rements like scalability, reliability and performance are realized. MDA envisages PIM, which represents a conceptual design realizing the functional requirements, will survive changes in realization technologies and software architectures.和UML相比,MDA能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储存。MDA把建模语言用作编

21、程语言而不仅仅是设计语言。为此,OMG把UML升级为2.0版本(可执行的UML)MDA过程范型:介绍基于基于MDAMDA开发首先关注系统的功能和行为,而不是具体开发首先关注系统的功能和行为,而不是具体的实现技术。的实现技术。MDAMDA开发过程着重于模型的建立和精化,开发过程着重于模型的建立和精化, 模型被看作是软件过程的重要角色。模型被看作是软件过程的重要角色。MDAMDA对系统的关键模型从不同视角进行描述,使业务逻对系统的关键模型从不同视角进行描述,使业务逻辑和实现细节分离,通过将模型置于一个统一结构中辑和实现细节分离,通过将模型置于一个统一结构中来提升模型的抽象层次,来提升模型的抽象层次

22、, IvarIvar Jacobson Jacobson声称:软件开发就是建模。声称:软件开发就是建模。 MDA ExplainedMDA Explained作者指出:代码就是模型。作者指出:代码就是模型。 MDA过程范型:综述 MDAMDA是关注系统在不同抽象层次的模型,以及在这些模型是关注系统在不同抽象层次的模型,以及在这些模型基础上定义良好的模型变换规则,以实现自动化。基础上定义良好的模型变换规则,以实现自动化。MDAMDA的变换都是由工具自动完成的。从的变换都是由工具自动完成的。从PIMPIM到到PSMPSM,再从,再从PSMPSM到代码到代码都可以由工具实现。都可以由工具实现。传统上

23、,从模型到模型的变换或者从模型到代码的变换主要是手传统上,从模型到模型的变换或者从模型到代码的变换主要是手工完成的。工完成的。MDAMDA变换总是由工具执行的,许多工具可以把变换总是由工具执行的,许多工具可以把PSMPSM变换变换成代码,这并不令人惊奇。成代码,这并不令人惊奇。MDAMDA的创新之处是把的创新之处是把PIMPIM到到PSMPSM的变换也的变换也自动化了自动化了 三个阶段 CIM:注重应用环境应用环境,即业务即组织运作 运营目标、实现条件和运作流程 PIM:注重信息系统,抽象抽象平台 PSM:注重信息系统,具体具体平台MDA过程范型:综述MDA过程范型:综述 CIM:聚集于环境及

24、需求,不涉及系统内部结构与运作细节,此阶段有分为3个子阶段。 CIM-1:定义业务流程,此阶段的成果是系统“业务用例”并做简单的描述。 业务用例生成通过分析调研成果分析出客户的为外界提供的服务以及被服务对象的信息生成的。 目的:尽快理清系统范围,以估算系统开发成本及时间, CIM-2:分析业务流程。分析每个业务用例,生成其工作流程。 成果为“活动图”。分析客户完成每个业务用例的步骤生成。 CIM-3:定义系统范围,在此阶段要生成系统用例图 抽取CIM-2阶段“活动图”的每一个动作筛选出系统用例, 再根据CIM-1中的业务执行者以及CIM-2中的动作负责人筛选出系统执行者 。 MDA过程范型:综

25、述 PIM:聚焦于系统内部细节,不涉及实现系统的具体平台。 PIM-1:分析系统流程。 对CIM-3的每个系统用例生成一个用例规约, 用例规约有一定格式,详细说明了每个系统用例的系统过程以及约束和业务规则等。用例规约包含的信息可以根据项目的情况定制。 PIM-2:分析业务规则。企业靠规则来控制整体运作。 分析业务规则通过状态图来表现,通过分析 PIM-1的“用例规约”中的业务规则,以用例为单位生成“状态图”,?以了解PIM-1中的系统用例的实现细节。 PIM-3:定义静态结构(静态结构通过类图及其关系来表现), 类图生成是通过分析PIM-1的用例规约,对规约中的名词进行筛选,筛选出来的名称就是

26、类,再筛选规约中的动词以分析类之间的关系。 PIM-4:定义操作及方法 通过分析PIM-1阶段的用例规约和PIM-3阶段的类图生成序列图,通过序列图就能找到类的方法,再为类赋予职责。MDA过程范型:what a model? What is a model? A model M is a simplified representation of the world, as a matter of fact of only a part S of the world called the system. A model is a formal specification of the funct

27、ion, structure and/or behavior of a system. A model is a representation of a system A model is written in the language of its unique meta model A model is a constrained graph A model has a graphical representation A model pertains to one technological space Here model usually means MDA model“MDA过程范型

28、:what a model? Modeling, in the broadest sense, is the cost- effective use of something in place of something else for some cognitive purpose. It allows us to use something that is simpler, safer or cheaper than reality instead of reality for some purpose. A model represents reality for the given pu

29、rpose; the model is an abstraction of reality in the sense that it cannot represent all aspects of reality. This allows us to deal with the world in a simplified manner, avoiding the complexity, danger and irreversibility of reality. The purpose of a model is always to be able to answer some questio

30、ns in place of the system, exactly in the same way the system itself would have answered similar questions.MDA过程范型:why model? Why model? All forms of engineering rely on models to understand complex,real-world systems Models facilitate the communication of key system characteristics and complexities

31、 to various stakeholders Models provide abstractions of a physical system that allow engineers to reason about the system by ignoring extraneous details while focusing on relevant ones Models are used to reason about specific properties of the system when aspects of the system change and can assist in predicting system qualities Depending on the context, different elements can be modeled which provide different views which ultimately facilitates: analyzing problems and proposing

温馨提示

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

评论

0/150

提交评论