• 静思
  • 吴言片语
    • 吴言
    • 片语
    • 杂七杂八
  • 死于青春
    • 一路走好
  • 乌合麒麟
  • 纪念
    • 5.12
    • 3.23
  • GitHub
    • A List of Post-mortems
    • The Art of Command Line
  • 关于
    • Privacy Policy

程序员的信仰

金鳞岂是池中物,一遇风云便化龙

HOME » 技术生活 » Object Modeling Strategies (I)

Object Modeling Strategies (I)

2005 年 9 月 8 日 @ 上午 10:12 by Jay | 被踩了 2,864 脚

Activities and model components

Str#1. “Four Major Activities, Four Major Components” Strategy // activities and model components

– Organize your work around four major activities, within four major components:

– Four major activities:

. Standard: Identify purpose and features, select objects, establish responsibilities, work out dynamics with scenarios.

. Variation 1: You may find it helpful to focus on working out dynamics with scenarios, establishing responsibilities along the way. This is especially suitable for real-time applications.

. Variation 2: You may find it helpful to select transaction, aggregate, and plan objects, then use the corresponding patterns to guide you through selecting additional objects, establishing responsibilities, and working out dynamics with scenarios.

– Four major components:

. Standard: Problem domain, human interaction, data management, system interaction.

. Variation 1: You may find it helpful to begin with human interaction, followed by problem domain, data management, and system interaction. This is especially suitable when your domain experts want to talk in terms of human interaction from the very start.

. Variation 2: You may find it helpful to begin with problem domain and system interaction, followed by human interaction and data management. This is especially suitable for real-time applications, when your domain experts are keenly interested in the data acquisition and control aspects of the system under consideration.


Str#1a. “Build an Initial Object Model, then Proceed Feature-by-Feature” Strategy // activities and model components

– Here is a very helpful path for building object models.

– Identify purpose and features.

. Purpose statement. Prioritized list of features.

– Build an initial object model, working with domain experts.

. Select initial objects (using strategies; include participants, transactions, places, items, specific items).

. Establish initial responsibilities (using strategy #86 and the stereotypical responsibilities expressed by object-model patterns).

– Work out dynamics with scenarios, feature-by-feature.

a. Develop a scenario view for the feature.

b. Add objects and responsibilities that you need for the scenario.


Str#1b. “Use Feature Milestones” Strategy // activities and model components

– Use your prioritized features list to plan, build, and measure.

– Early in the development effort, use your prioritized features list day-by-day, while developing an initial object model and scenario views (one scenario view for each feature).

– For the rest of the development effort, use your prioritized features list to plan, build, and measure what you produce — namely, the frequent, tangible, working results.

– Some notes:

. How frequent is “frequent”?

. . Each week, each month, or each quarter — depends upon the size of the project and the amount of added effort required to make working results available to others.

– Why use features milestones — and measure features completed, using frequent, tangible, working results?

. In two words: risk reduction.

– How do you estimate percent completion?

. Take the features list, assign a weight to each feature (based upon level of difficulty, relative number of lines of code, and level of skill of the person who will do the work), and then make your estimates.

. Your estimates will improve over time, as you deliver more and more tangible results along the way.


Str#1c. “Take Multiple Paths” Strategy // activities and model components

– For each outcome, consider multiple paths for reaching that goal. Travel down one of those paths. When your progress slows somewhat, move to another path, for awhile.

– “All features, all classes, then the top ten classes”

. features -> classes -> top 10 classes -> responsibilities, scenarios for the top 10

– “One feature at a time”

. feature -> small object model -> scenario view

– “Key players first”

. 1-2 participants + 1-2 transactions + line items, items -> responsibilities, scenarios

– “Key transactions first”

. transaction – subsequent transaction – subsequent transaction -> participants, line items, items -> attributes, services


-- EOF --

除非注明(如“转载”、“[zz]”等),本博文章皆为原创内容,转载时请注明: 「转载自程序员的信仰©」
本文链接地址:Object Modeling Strategies (I)

分享

  • 点击分享到 Facebook (在新窗口中打开) Facebook
  • 点击以分享到 X(在新窗口中打开) X
  • 更多
  • 点击分享到Reddit(在新窗口中打开) Reddit
  • 点击分享到Telegram(在新窗口中打开) Telegram
  • 点击以在 Mastodon 上共享(在新窗口中打开) Mastodon

赞过:

赞 正在加载……

相关

Today on history:

【2025】思想殖民——美国认知战的手段、根源及国际危害
【2011】Learn Vim Progressively
【2009】老上海,儿时的记忆 [zz]
【2007】我的软件列表(二)
Posted in: 技术生活 Tagged: oo
← resume
MSN Space的几个新插件 →

android (9) apple (20) augmentum (9) Beijing (21) bt (8) career (28) coding (38) firefox (10) google (36) hibernate (11) ibm (11) iphone (10) java (93) linux (16) m$ (26) mac (58) macos (27) nazca (9) olympics (8) oo (8) playstation (10) rip (8) Shanghai (39) spring (9) tips (45) tommy emmanuel (8) ubuntu (12) usa (23) windows (9) 北航 (17) 博客 (29) 吐槽 (8) 周末 (9) 和谐社会 (26) 小资 (11) 愤青 (40) 方言 (10) 朋友 (77) 歌词 (8) 烟酒不分家 (18) 爱国 (19) 爱情 (8) 犯二 (15) 破解 (8) 足球 (11)

烫手山芋

  • 再谈苹果的输入法:这一次是靠OS X自带的输入法来翻身的~ - 被踩了 27,817 脚
  • 生活,就是一个期待跟着一个期待 - 被踩了 21,386 脚
  • 星巴克饮品缩写大全(Starbucks Drink ID Codes)[zz] - 被踩了 18,467 脚
  • 从一个全角冒号说一下我为什么不感冒iOS - 被踩了 14,400 脚
  • 有关Character.isLetter()和Character.isLetterOrDigit() - 被踩了 13,619 脚

刚拍的砖

  • leo 发表在《再谈苹果的输入法:这一次是靠OS X自带的输入法来翻身的~》
  • 花 发表在《再谈苹果的输入法:这一次是靠OS X自带的输入法来翻身的~》
  • 无名氏 发表在《从一个全角冒号说一下我为什么不感冒iOS》
  • Jay 发表在《Mac OS geek级问题》
  • Wei Wang 发表在《再谈苹果的输入法:这一次是靠OS X自带的输入法来翻身的~》

随便看看

  • 在Ubuntu下配置L2TP9 年 ago
  • “软件危机”时总结的坏的编程习惯——我们是否依旧守着古风?9 年 ago
  • 我的软件列表(二)4 年 ago
  • 在Linux下设置ntp服务14 年 ago
  • Google Earth(上海市延安中学(高中),详尽标注版)14 年 ago

文以类聚

光阴似箭

其他操作

  • 登录
  • 条目 feed
  • 评论 feed
  • WordPress.org

Copyright © 2025 程序员的信仰.

Jay's Omega WordPress Theme by Jay

 

正在加载评论...
 

    %d