Sketchlet Widgets: Cascading UML

Cascading UML is a simple textual languge for creation of UML diagrams. It builds on the UML graph project.

Usage

Examples

Car
   composed: Tyre[1 - 4], Engine[1 - 1], Body[1 - 1]
		
node Server
 note: Located in the %n machine room
 note: Sun Blade 6048
 depend: MapLocation, DataMine

component MapLocation
component DataMine

note CPU-munching%n components that must%n run on this server
 assoc: MapLocation, DataMine
		
class Structural Things
   note: Notes can%n be extended to%n span multiple lines

component  spelling.java : Structural Things
   note: Component

node Node: Structural Things

collaboration Chain of%n responsibility : Structural Things
   note: Collaboration

usecase Place order : Structural Things
   note: Use Case

package Business rules
   note: Package

class Counter : Structural Things
   fields: static public int counter
   methods: getCounter()
   note: Class

activeclass RunningCounter : Counter
   note: Active Class

default:
    nodefontcolor:"blue"
		
class Asset
class InterestBearingItem
class InsurableItem

class BankAccount : Asset, InsurableItem, InterestBearingItem

class RealEstate : Asset, InsurableItem
class Security : Asset

class Stock, Bond : Security

class CheckingAccount, SavingsAccount : BankAccount
		
Asset
   Security
   RealEstate
   BankAccount
   
InsurableItem
   RealEstate
   BankAccount

InterestBearingItem
   BankAccount

Security
   Bond
   Stock
   
BankAccount
   CheckingAccount
   SavingAccount
   
class Controller
class EmbeddedAgent
class PowerManager

class  SetTopController 
   implements: URLStreamHandler 
   extends: Controller, EmbeddedAgent
   navassoc: PowerManager
   fields: int authorizationLevel
   methods: void startUp(),  void shutDown(),  void connect()

class ChannelIterator
   depend: SetTopController[- <friend> -]

interface URLStreamHandler
   methods: void openConnection(), void parseURL(), void setURL(), void toExternalForm();
   
class Name
   opt:hidden
class Number
   opt:hidden

class School
   has: Student[1..* Member *]
   composed: Department[1..* Has 1..*]
   attributes:
        Name name
        String address
        Number phone
   operations:
        addStudent()
        removeStudent()
        getStudent()
        getAllStudents()
        addDepartment()
        removeDepartment()
        getDepartment()
        getAllDepartments()

class Department
   has: Instructor[1..* AssignedTo 1..*]
   assoc: Course[1..* - 1..*]
   assoc: Instructor[0..* - "0..1 chairperson"]
   attributes: Name name
   operations:
        void addInstructor()
        void removeInstructor()
        void getInstructor()
        void getAllInstructors()

class Student
   assoc: Course[* Attends *]
   attributes:
        Name name
        Number studentID

class Course
   attributes:
        Name name;
        Number courseID;

class Instructor
   assoc: Course[1..* Teaches *]
   attributes: Name name
   
default:
   opt:visibility

class Tool
   opt:hidden

class Toolbar
   attributes:
        protected Tool currentSelection
        protected Integer toolCount
   operations:
        public void pickItem(Integer i)
        public void addTool(Tool t)
        public void removeTool(Integer i)
        public Tool getTool()
        protected void checkOrphans()
        private void compact()

   
HttpResponseBase
   extends: ResponseBase
   implements: HttpResponse, HttpServletResponse

abstract class HttpResponseWrapper
   extends: ResponseWrapper
   implements: HttpResponse

class HttpResponseFacade
   extends: ResponseFacade
   implements: HttpServletResponse

abstract class ResponseWrapper 
   implements: Response

interface HttpResponse
   extends: Response
   
abstract class ResponseBase 
   implements: Response, ServletResponse

interface HttpServletResponse

class ResponseFacade
   implements: ServletResponse

interface ServletResponse
interface Response
   
Pixel
   attributes: int x, int y
   operations: public void setColor(ColorValue v)
   composed: Red, Green, Blue
   opt:attributes
ColorValue
   opt:hidden


# color and font settings 

Red
   color:red
Green
   color:green
Blue
   color:blue
Pixel
   opt:nodefontname "Helvetica-Bold"
   opt:nodefontcolor "white"

default:
   opt:edgecolor "yellow"
   opt:nodefontname "Times"
   opt:bgcolor ".7 .9 1"
   color:"#a0a0a0"
   opt:nodefontsize 14
   opt:visibility