- 浏览: 39311 次
- 性别:
- 来自: 北京
文章分类
最新评论
Object Modeling Strategies (I)
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
发表评论
-
在Java中使用Oracle blob
2005-02-13 22:27 773Oracle中的lob (Large Object)可以存储非 ... -
java.util.StringTokenization
2005-02-13 22:29 642今天室友老七做数据库大作业,其中要实现一个功能,就是输入一个以 ... -
JBuilder 2005中的Servlet mapping
2005-02-13 22:30 699使用JB进行Servlet好像很方便的样子,但是servlet ... -
static与final变量
2005-08-04 12:27 745一、illegal forward refrence 前天写一 ... -
使用策略模式(Strategy)实现多关键字排序
2005-08-04 12:37 791“策略模式”的出现,是为了提供一套相互之间可灵活替换的算法, ... -
Alloy
2005-08-04 13:09 658Alloy look and feel(http:// ... -
IDEA
2005-08-04 13:11 923今天在TSS上看到IntelliJ的IDEA 5.0终于rel ... -
原型模式(Prototype)
2005-08-05 10:54 742一、概述 原型模式属于对象创建模式,通过给出一个原型对象来指明 ... -
IDEA破解过程
2005-08-05 19:11 1805开场白就不说了,直接切入正题吧。本破解的前提是安装了IDEA ... -
适配器模式(Adapter)
2005-08-06 19:39 620一、概述 类的适配器模式把被适配的类的API转换成为目标类的A ... -
A beginners guide to Dependency Injection [转载自TSS]
2005-08-08 22:30 817Scope This article presents a h ... -
Alloy破解过程
2005-08-09 15:42 8691package com.incors.plaf. ... -
接口与Object类的关系?
2005-08-19 13:53 1108今天凌晨coding的时候发现一个很有趣的现象。“Object ... -
缺省适配器模式(Default Adapter)
2005-09-06 12:01 780一、概述 当不需要全部实现适配器接口提供的方法时,可先设计一个 ... -
Joshua Bloch咏Tiger诗八首
2005-09-08 16:59 839“Ease of Development”是J2SE 1.5的 ... -
James Gosling
2005-09-14 22:01 770今天是Java China 2005的最后一天,下午没有去各个 ... -
Object Modeling Strategies (II)
2005-09-19 15:23 622Str#1d. "Invest an Hour&qu ... -
Object Modeling Strategies (III)
2005-09-19 15:26 563Identifying system purpose and ... -
Tomcat 5.5.9 不支持switch(<enum>)?
2005-09-19 18:51 811ServiceExceptionType: package p ... -
“软件危机”时总结的坏的编程习惯——我们是否依旧守着古风?
2005-10-09 14:23 7311、乱用GOTO语句(上下跳转看起来非常方便) 2、大量使用 ...
相关推荐
In this third edition--the first revision in 13 years--readers can learn to apply object-oriented methods using new paradigms such as Java, the Unified Modeling Language (UML) 2.0, and .NET. ...
The stationary background object is described by the color feature,and the moving background object is represented by the color co-occurrence feature. Foreground objects are extracted by fusing the ...
The strategies outlined in this document—object-oriented modeling, object-based modeling, and functional-based modeling—provide flexible options depending on the specific needs and constraints of ...
"I found Real Time UML, Third Edition, to provide an ...Key strategies for object identification Defining object state behavior Representing and identifying threads Mechanistic design patterns
Part I begins with a review of basic concepts used in 3D computer graphics and their representations in Direct3D. The IDirect3D9 interface is introduced and device selection is described. The IDirect3...
Clojure is well suited to financial modeling as it is a functional programming language. Such languages help developers work with high-level mathematical abstractions without having to implement low-...
end J2EE development strategies that promote speed without compromising quality Understanding how your design-time decisions impact overall project schedules Building agile application architectures ...
Cover artificial intelligence-driven strategies to enable a robot to solve games or learn from an environment Generate synthetic data that looks real with generative modeling Become familiar with ...
covering topics from installation from source to designing tables using SQL Power Architect, as well as deciding replication and failover strategies. Who This Book Is For This book is for developers ...
basedonNIOshavebeentheobjectofresearchsincesomedecadesandtheimportanceofthissubject iswidelyrecognized.Inordertoapplyanaturedinspiredalgorithm,...
This part delves deeper into mapping associations between entities in Hibernate, which is crucial for modeling complex relationships in your domain model. - **Mapping the Person Class**: Using a ...
11.10.5 Data Object 11.10.6 Correlation 11.10.7 Error Handling 11.10.8 Housekeeping 11.11 Exercise: Applying Advanced SAP BPM Concepts and Extensions 11.11.1 Exercise Solution Approach 11.11.2 ...
object manipulation in a fluidic environment. Chapter 5 discusses how state-of-theart mobile technologies may be integrated into human-in-the-loop cyber-physical systems and exploited to provide ...
Object-Oriented Programming . . . 147 Classes . . . . . . . . . . 147 Inheritance . . . . . . . 153 Writing Testbenches using SystemVerilog ix Polymorphism . . . . . 156 The Parallel Simulation ...