COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Design Model
Logical Architecture – Simple Layers
Logical Architecture – Layers
Logical Architecture – Layers & Partitions
Domain Model and Domain Layer Low representational gap
SSDs, System Operations & Layers
Model-View Separation Principle (MVC) UI layer has views Domain layer has model
Model-View-Control Architecture (MVC) MVC is an acronym for Model View Controller It represents a software design pattern developed at Xerox PARC in 1978 (!) It explains a method of separating the visual, interaction and data components. Very popular, used extensively in Java and other languages
Model-View-Control Architecture (MVC) Model maintains the state and data of the application - the XML document View A rendering of the XML document Controller The user interface presented to the user to manipulate the application
Why use MVC Makes it very easy to have multiple different displays of the same information. For example: a graph and a table could both display and edit the same data. Essentially provides greater control over the UI and it’s behaviour.
MVC Model The “Model” contains the data Has methods to access and possibly update it’s contents. Often, it implements an interface which defines the allowed model interactions. Implementing an interface enables models to be pulled out and replaced without programming changes.
MVC Controller Users interact with the controller. It interprets mouse movement, clicks, keystrokes, etc Communicates those activities to the model – eg: delete row, insert row, etc It’s interaction with the model indirectly causes the View(s) to update
MVC View The View provides a visual representation of the model. There can be multiple views displaying the model at any one time. For example, a companies finances over time could be represented as a table and a graph. These are just two different views of the same data. When the model is updated, all Views are informed and given a chance to update themselves.
14.4 Design Objects Spend plenty of time on dynamic models (see notation chapter 15)
Jacobson’s Objectory Design Objects
Robustness model has Entity objects Boundary (interface objects) Control objects Essentially UML collaboration (communication) diagram
Jacobson’s Robustness Analysis Bridges Analysis-Design Gap
What are the users doing? (Jacobson) What are the objects in the real world? (Rumbaugh) What objects are needed for each use case? (Jacobson) How do the objects collaborate with each other? (Jacobson and Booch) How will we implement real-time control? (state models) How are we really going to build this system? (Booch)
Traceability