COMET软件工程方法导读

《软件建模与设计:UML、用例、模式和软件体系结构》一书介绍了一种被称为协作的对象建模和设计方法(COMET)的软件系统设计方法论。COMET基于用例将软件系统设计分为需求,分析和设计建模三个部分。本文对COMET软件工程方法论进行简要概括,并提供全书的阅读导览。

一. 软件设计的关键要素

建模就是在编码之前对软件应用的设计。

一个好的软件设计方法通常包含以下4个关键要素:

  1. 软件设计表示法

  2. 软件设计思想

  3. 软件设计策略

  4. 软件结构组织准则

软件设计表示法就是使用图形或者文本或者图形+文本的形式对软件设计进行描述的方法。比如伪代码就是一种文本形式的描述方法,而UML则是一种图形形式的描述方法。但光有表示法是不够的,因为它没有提供一种系统化的,分步骤的方法来阐述如何从无到有设计和实现软件系统。软件设计思想则是指设计系统的根本性思想。比如我们说的信息隐藏,它使得系统模块独立,具有更好的可修改和可维护性;类和继承可以以一种系统化的方式对类进行调整。软件设计策略对设计的整体规划和方向性提供指导,例如面向对象的分解就是一种软件设计策略。软件结构组织准则是一组将软件系统组织为构件的启发式规则或指导方针。

软件设计方法是一种在需求的基础上创建设计方案的系统化方法,它基于一组设计思想,使用一种或多种设计策略,并采用某种设计表示法来描述所得到的设计,最后提供一组结构设计准则来帮助架构师将系统分解为构件。

二. COMET:协作的对象建模和设计方法

COMET是一种软件设计方法,它使用UML2描述设计,采用信息隐藏,类,继承和并发任务等设计思想,使用并发对象设计的策略,并提供结构设计准则将系统结构组织为对象。

comet.png

2.1 COMET软件生存周期

2.1.1 需求建模

在需求建模阶段,需要以参与者结合用例的方式来描述功能性需求,并陈述非功能性需求。在这个阶段软件系统的相关干系人(比如用户或者客户)要积极参与帮助澄清需求。如果需求没有被很好理解,则需要采用抛弃型原型的方法来确认需求。

2.1.2 分析建模

分析建模的输出包含静态模型和动态模型。静态建模定义问题域类之间的结构关系,对象的组织准则决定分析模型中要考虑哪些对象;动态建模包含两个部分:动态交互建模用于实现来自需求模型的用例,分为无状态的动态建模和状态有关的交互建模,动态状态机建模定义了状态相关的对象。

2.1.3 设计建模

分析模型强调的是问题域,而设计模型强调的是解域。设计建模就是设计软件系统的体系结构。软件体系结构将系统的总体结构(包括构件及其连接关系)与各个构件内部细节相分离。先进行全局性编程:提供子系统组织准则来将系统组织为子系统,设计构件及其连接关系;再进行局部性编程:子系统被视为聚合或者复合对象,设计每个子系统,对单个构件进行详细设计。在较高细节层次上,体系结构描述软件系统如何分解为子系统;在较低细节层次上,体系结构描述子系统如何分解为模块或构件。设计软件体系结构还要考虑与非功能性需求有关的软件质量属性,如性能,安全性和可维护性。对顺序系统的设计要考虑信息隐藏,类和继承;对并发系统的设计除了考虑面向对象,还要考虑并发任务。

2.1.4 增量软件构建

每个软件增量由增量软件构建增量软件集成构成。增量软件构建为每次增量选择系统的一个子集进行构建,包括包含在该增量中的用例和参与这些用例的对象。要完成的活动有类的详细设计编码以及单元测试

2.1.5 增量软件集成

增量软件集成要完成软件增量的集成测试(白盒测试),需要为每个用例开发测试用例,然后对参与每个用例的对象之间的接口进行测试。

2.1.6 系统测试

发布给客户的任何软件增量都要经历系统测试阶段。它是一种功能测试(黑盒测试):为每一个黑盒用例构建功能测试用例,针对系统的功能性需求测试系统。系统测试应该由分离的测试团队来承担。

五. 软件建模的成果:多视图软件架构

软件体系结构可以从不同的视图进行描述,重要的是要同时保证体系结构的功能性(软件必须做什么)和非功能性需求(软件应当做得多好)。软件体系结构是详细设计和实现的出发点。在用例建模阶段产生用例视图,它是一种功能性需求视图,是软件体系结构的输入,每个用例描述一个或多个参与者(外部用户)与系统之间的交互序列。分析建模阶段首先产生静态视图,该视图用类以及类之间的关系描述体系结构,关系包括关联、整体/部分(组合或聚合),泛化/特化关系,表示为UML类图;然后动态交互视图通过对象和对象之间的消息通信来描述体系结构,表示为UML通信图;最后动态状态机视图用来描述控制构件的内部控制和定序,表示为UML状态图。设计建模阶段产生结构构件视图,用构件描述软件体系结构,表示为UML结构化类图;动态并发视图将软件体系结构描述为在分布式结点上执行并通过消息进行通信的并发构件,表示为UML并发通信图;部署视图描述分布式体系结构中构件如何分配到不同硬件结点上的特定配置,表示为UML部署图。

六. 阅读指南

全书分为概述,需求建模,分析建模,设计建模和案例研究5个部分。

概述

  1. 第2章:UML表示法
  2. 第3章:各种常见的软件过程模型
  3. 第4章:COMET用到的软件设计思想。

需求建模

  1. 第6章:功能性需求分析
  2. 第20章:非功能性需求相关的软件质量指标

分析建模

  1. 第7章:静态建模
  2. 第8章:对象和类组织
  3. 第9章:动态交互建模中的无状态的动态建模
  4. 第10章:动态状态机建模
  5. 第11章:状态相关的动态交互建模

设计建模

  1. 第13章:集成对象的通信模型,关于子系统结构和接口的决策

  2. 第12,15,16,17和18章:软件体系结构模式和设计模式决策

  3. 第14章:类接口决策和类的设计

  4. 第13,15,16和17章:分布式应用组织为分布式子系统的决策

  5. 第18章:关于对象特性的决策

  6. 第12,13,15,16,17和18章:关于消息特性的决策

案例研究

  1. 第21章:以银行系统为例介绍C/S架构
  2. 第22章:以电商为例介绍SOA架构
  3. 第23章:以应急监控系统为例介绍基于构件的架构
  4. 第24章:通过自动引导车辆系统介绍实时软件架构
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容