brucef,
The problem still exists with classes with a few number of attributes and methods.
Case in point, I went through a design review today. The design depicts a subsystem that interacts with the Windows Service framework, a SOAP Server and it publishes events through TCP/IP connections.
3 methods for the service-related functions:
- OnStart, OnStop, OnShutdown
2 methods to interact with the SOAP server:
- OnProcessHeader, OnProcessBody
4 methods to publish information
- PublishInService, PublishOutOfService, PublishShutdown
- PublishData
All of these methods are implemented by a class. In this case, it does not make sense to decompose the class into interfaces: the class just has three different roles.
If I want to separate in a diagram the service-related functionality, I can filter only what I need. I guess that my point is that even in smaller designs it is an advantage to have that a view per diagram.
In a different note, JTAPI is a telephony framework. Several of the domain elements provide a lot of functionality, but contrary to your statement, the functionality cannot be moved or factored out of the element because that's what it really does--actually, it's already been factored out ;-) The model itself has 6 domain elements, but each element, at a different abstraction level has additional functionality. For example, a Call object in a callcontrol package can do, let's say, about 10 different things: conference, transfer, drop, offhook, etc. When I try to create diagrams in EA that only make use of transfer and conference capabilities, I have to deal with a class diagram that will not fit in any sheet of paper :-) because all the functions are there.
Regards,
Javier