软件全程建模.doc

上传人:cl****1 文档编号:559844469 上传时间:2024-02-14 格式:DOC 页数:15 大小:532.51KB
返回 下载 相关 举报
软件全程建模.doc_第1页
第1页 / 共15页
软件全程建模.doc_第2页
第2页 / 共15页
软件全程建模.doc_第3页
第3页 / 共15页
软件全程建模.doc_第4页
第4页 / 共15页
软件全程建模.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《软件全程建模.doc》由会员分享,可在线阅读,更多相关《软件全程建模.doc(15页珍藏版)》请在金锄头文库上搜索。

1、软件全程建模 2008-01-25 作者:gddsky 来源:CSDN 在软件工程的全部实施过程中都采用模型的方式而非文字的表达方式来进行描述,这样的实现过程称之为全程建模。全 程建模的特点是:模型相互之间是有关联的,模型成为软件工程过程各阶段展现的主体而不是文字描述作为主体存在。通过建模的方式将原来纯文字加图形描述的各 种文档模型化,使得从需求到代码能够统一起来,实现需求的变动直接影响到代码的变化。提高代码对需求的有效性联系,同时,解决过去经常出现的:编码改动, 文档就失效的问题。软件建模方法有很多种,至今为止最广泛使用的是UML。UML是 UnifiedModelingLanguage,统

2、一建模语言,主要由Booch、Rumbaugh及Jacobson三人提出,他们三人把自己分 别提出的建模方法Booch、OMT、OOSE融合为一种方法称为UML。Booch在 TheUnifiedModelingLanguageUserGuide中对UML的定义是“UML是对软件密集型系统中的制品进行可视 化、详述、构造和文档化的语言”。可以简单的理解UML是软件建模的一种语言,它的特色是使用图形化的方法来进行软件建模。UML的特点如下:统一的标 准,UML已经被OMG接受为标准的建模语言,而且越来越多的开发人员使用ULM语言进行开发;UML是支持面向对象技术的建模语言;可视化、表示能力强 大

3、;独立于过程,UML不依赖于特定的软件开发过程;概念明确,建模表示法简洁,图形结构清晰,容易掌握和使用。UML能够用来为系统进 行面向对象建模,但是并没有指定应用UML的过程,它仅仅是一种语言,它是独立于任何过程的。如果想要成功的应用UML一个好的过程是必要的。合理的过程 能够有效的测度工作进度,控制和改善工作效率。RUP是一个很好的软件过程,它的核心就是解决可操作性的问题,可以帮助开发人员完成使用UML全程建模的 问题。RUP虽好,但是RUP十分庞大对于一些小的项目实施起来比较困难。所以有很多人一直在探讨敏捷建模的方法。本人参考了RUP、青润的软件工程之 全程建模实现及尤克滨的UML应用建模

4、实践过程并结合自己的工作经验形成敏捷建模的过程,在此将它分享出来,希望对大家有所帮助,另外也希望大家多 提包括意见,让我成长。这个过程应用在以前我参与的一个软件项目开发过程中,为了方便表达将该系统称为A系统。下面的内容包括5节:需求模型、分析模型、 设计模型、物理架构模型、代码导出。由于内容太长将分几次上传。1需求模型1.1用例模型1.用例及用例图用 例是一个角色使用系统的某项功能时交互过程的文字描述。用例的本质是系统中各个相关人员之间就系统的行为所达成的契约,是系统的功能性需求。用例从使用系 统的角度描述系统中的信息,即站在系统外部观看系统的功能,而不考虑系统内部对该功能的具体实现方式。用例

5、描述了用户提出的一些可能需求,对应一个具体的 用户目标,用例可以促进与用户沟通、理解正确的需求,同时也可以用来划分系统与外部实体的界限,是面向对象系统设计的起点,是类、对象、操作的来源。用例 图主要用于描述拟建系统和外部环境的关系。用例图中主要包括用例、角色及用例间的关系。用例间的关系通常有包含、范化、扩展。如何实现用例模型呢?用例图包括角色、系统边界、用例以及元素间的关联。首先识别出角色,根据角色再识别用例。建立用例模型的主要工作:找出角色;找出用例;描述用例;用例间的关系处理;验证模型,通过这样的一些步骤就可以建立用例模型。2.识别角色角色不仅仅是使用系统的用户也可以是硬件、外部系统等等。

6、角色应该和系统具有交互行为,即角色向用例发送消息或者接收用例反馈的消息。角色之间存在继承关系。通过回答以下6个问题来识别A系统的角色:(1)谁使用系统的主要功能。 回答:质监人员。(2)谁需要系统的支持以完成日常工作。 回答:质监人员。(3)谁负责维护、管理并保持系统正常运行。 回答:质量监督结构的管理员。(4)系统需要应付哪些设备。 回答:不需要。(5)系统需要和哪些外部系统交互。 回答:无。(6)谁或什么对系统运行结果感兴趣。 回答:质监人员。综上所述我们分析出来的A系统角色有质监人员、管理员。3.识别用例识别用例时由于角色已经识别出来,所以我们主要根据角色来识别用例,识别用例的人为因素很

7、大,不同的人针对同一个需求识别出的用例不一定是相同的,用例识别和经验关系很大。我们以角色“管理员”为例,根据这个角色来识别相关的用例。(1)某个角色要求系统为其提供什么功能?该角色需要做哪些工作? 回答:管理员登录软件以后主要进行用户管理。另外系统的新建数据库、连接数据库这些工作也主要由管理员来做。(2)角色需要阅读、创建、销毁、更新或存储系统中某些信息吗? 回答:管理员需要创建、删除、修改用户信息,进行用户管理。将这个角色涉及到的用例进行分析得到和这个角色相关的用例:管理用户、选择数据库、建立数据库、登录。采用类似的方法还可以分析出系统的其他用例。4.用例图通过上面的分析我们获得初步的用例图

8、。我们还需要对用例进行拆分或合并。根据以上分析的结果绘制该软件的用例图。软件的用例图如图1所示。图1用例图1.2用例描述用 例描述是通过文字语言描述用户的实际需求,用例采用自然语言描述角色和系统进行交互时双方的行为,不追求形式化的语言。用例描述没有一个统一的标准,但一 般应该包括以下的内容:用例的目的;用例是怎样启动的;角色和用例之间的消息是如何传送的;用例中除了主要路径外,其他路径是什么;用例结束后系统的状 态;其他需要描述的内容。表1是一个用例描述的示例。表1“选择建设项目”用例描述用例名称:选择建设项目综述:所有建设项目的数据保存在同一个数据库中,当用户登录后需要选择某个建设项目或者新建

9、建设项目。前置条件:登录成功,打算对某个项目进行操作后置条件:进入软件主界面基本操作流:1、系统提供已有建设项目供用户选择。2、用户从系统提供的项目列表中选中某个建设项目。3、系统对当前选中的建设项目进行标识,进入主界面。可选操作流:可选流1:1、系统提供查询条件,查询条件包括公里等级、项目名称。2、用户输入查询条件3、系统提供满足条件的项目,如果用户没有输入系统提示,并不进行查询操作。4、用户选中建设项目。5、系统对当前选中的建设项目进行标识,进入主界面。可选流2:1、用户选择建设项目的界面上提供新建建设项目功能。2、系统提供新建建设项目页面3、用户输入建设项目信息3、系统导航到新建建设项目

10、界面1.3界面建模在 青润的软件工程之全程建模实现一文中提出将界面设计作为需要分析阶段的一项工作。我以前也曾在需求分析阶段进行了界面建模,并用界面模型和用户进行交 流,取得了良好的效果。界面建模是需求工作中重要的步骤,同时又属于设计工作的内容,所有很多人在争论界面建模应该在什么时间开始。我很赞同做将界面建模 放在需求分析阶段,一方面软件界面的需求也是用户需求的一部分,另一方面使用界面模型和用户交流系统的功能需求直观、明确,用户很容易理解。界面就结合自 己以前开发的一个项目谈谈软件界面建模的事情。1、界面设计的基本要求*界面设计要完整的体现出用户需求的表现形式。*界面设计要美观大方,一般来说界面

11、设计的结果要符合用户群的习惯、感官、感觉。*界面设计中的交互操作过程要符合用户习惯性的工作过程。2、界面建模的主要工作首先确定界面元素,通常一个软件界面的元素包括界面主颜色、字体颜色、字体大小、界面布局、界面交互方式、界面功能分布、界面输入输出模式等等。对用户工作 效率有明显影响的元素包括:输入输出方式、交互方式、功能分布。界面元素所要达到的设计目的是让最终用户能够获得美感、提高工作效率、易于操作使用系统。 本项目的这个部分的工作由界面设计人员和美工协同完成,并且以界面设计规范的形式确定下来。再次要通过对软件的背景,使用的行业特点、用 户的使用水平、喜好等方面的了解提出针对用户的一些设计。考虑

12、到本系统的用户为公路行业,计算机应用水平比较低,所以很多部分力求简洁、明了,尽量提供用 户操作、使用上的方便,很多地方尽量模拟用户的手工操作,符合他们的使用习惯。比如在功能布局上以工作流的方式来进行功能布局,这样用户很清楚做完了这个 工作下一步应该怎样做。另外我们专门设计数据录入界面完全和用户实际工作中的表格相同。最后建立用户界面模型,并且同用户进行交互。这个 工作对于界面建模是很重要的,因为用户对于功能的需求相对是比较明确的,对于界面方面的需求却比较模糊,但是当一个系统展现在他们面前的时候,他们却有很 多的要求和想法,通过这个工作可以将用户对界面的需求挖掘出来,而且也比较容易暴露设计中的缺陷

13、。我们在设计完界面模型之后请用户参与了我们的评审会,之 后根据用户的意见进行了界面模型的修改。3、建模工具我选择Visio作为界面建模工具。Visio是微软的一个图表绘 制软件。Visio的模具中提供了Windows界面元素和各种标注元素,能够使我们很方便地建立Windows用户界面模型。另外,Visio还提供了 比较好的发布功能允许我们将Visio文档发布为网页格式。由于UML对界面建模支持的不好,所以使用UML建模工具进行界面建模比较难。4、界面模型示例这 个系统使用Visio来表达界面元素的布局、功能分布、交互方式等,对于不能在该模型中表达的某些内容(比如字体的大小等)用界面设计规范来表

14、达。我们使 用该模型在前期阶段和用户进行交流,帮助测试人员了解系统功能。在后期阶段将界面层对业务层的调用叠加在界面模型中,也就是在界面模型上指明在什么情况下 调用哪个对象的什么方法来实现用户的请求,从而指导开发人员构筑系统。这样做,在某些方面和UML的动态建模机制有异曲同工之妙,而且更加直观有效。2分析模型分析是一个十分关键的过程,它是把需求转化为代码实现的中间阶段。软件分析是将自然语言表达的软件需求进一步进行解析的过程。软件设计就是从分析到软件实现的过程。2.1架构设计1.分层架构架构设计决定了各子系统如何组织以及如何协调工作。架构设计的好坏影响到软件的好坏,系统越大越是这样。在分解复杂的软

15、件系统时,经常使用的一种架构技术就 是分层。分层架构中最困难的问题就是决定建立哪些层以及每层的职责。分层结构的好处主要有:不需要去了解层的实现细节;可以使用另一种技术来改变基础的 层,而不会影响上层的应用;可以减少不同层之间的依赖;容易制定出层标准;底下的层可以用来建立顶上层的多项服务;分层有利于标准化工作的执行。分层只是 将系统各种逻辑进行更有效的组织。分层架构的缺陷也不容忽视,层次不能封装所有东西,有时候会带来级联修改;过多的层间数据传递会影响性能。2.两层结构与三层结构在分层结构中比较常用的有两层结构和以三层结构为代表的多层结构。基于二层架构的应用通常称为Client/Server应用。很多情况下服务器提供的服务 仅仅是数据库服务。在这种模式中客户端负责访问数据,完成业务逻辑处理、接收用户的输入及将结果向用户展示。二层体系结构的主要不利之处是其业务逻辑没有 从表示逻辑中分离开来,程序员很难在二层结构的应用中清楚地将业务逻辑从表示逻辑中分割出来,这样就很难维护、改进,可扩展性差,也很难重用。三层体系结构以传统客户服务器模式为基础,将客户程序和数据库服务器的功能进一步分解,客户程序仅根据需要提出数据请求,数据库服

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号