MSF Design Example • Conceptual Design • Logical Design • Physical Design
Conceptual Design • Identify Usage Scenarios • Identify Relationships • Show Cumulative Design
Logical Design • Identify Objects • Identify Behaviors • Identify Attributes • Identify Relationships
Identifying Behaviors • The user selects a catalog to browse. • The categories and products in the root of the selected catalog are displayed. • The user can then select a product to view its details or select a category and view the products and sub-categories in the selected category.
Catalogs Object Added • Behaviors that have no apparent objects associated with them must be derived from the scenario. • It follows that because the user selects a catalog, there must be some sort of mechanism that allows a catalog to be selected from a list of catalogs. • You could then logically assume that a Catalogs object, which manages the collection of Catalog objects, is present. • You should add this new object to the list of objects that were defined.
Identify Attributes • Attributes are elements that the solution needs to keep track of. • They are placeholders in which data is retained, or persisted. • You can identify attributes by analyzing the behaviors in the scenario and extracting what elements have to be persisted, or tracked. • For example, when a product is viewed, those elements that are shown to the user are attributes of the product.
Identify Class Relationships • Relationships are logical associations between objects. • To identify relationships, it is necessary to analyze how the objects interact with each other. • For example, the Categories object has a relationship with the Category object because the Categories object, which manages the collection, contains Category objects. • Another type of relationship known as inheritance • For example, if the solution being designed was going to sell food and books but the designers wanted to logically differentiate between them, then a relationship might be defined where both Book and Food objects are a type of Product object. That is, they both inherit from the Product object.
Completed Design Objects • Authentication – The authentication object handles user registration and authentication. • Catalog – The catalog object persists information about a specific catalog and manages the collection of products within that catalog. • Catalog manager – The catalog manager object manages the collection of catalogs. • Category – The category object persists information about specific categories. • Categorymanager – The category manager object manages the collection of categories. • Configuration – The configuration object persists application configuration information and handles configuration-related tasks. • Data functions – The data functions object performs data-specific functions, such as opening a connection to a database.
Design Objects (continued) • E-mail – The e-mail object is used to send electronic mail messages, such as order confirmation messages, to the users. • Error handler – The error handler object is called when an error occurs. It handles the user-friendly error translation and log errors. • Order – The order object persists information about specific orders. • Product – The product object persists information about specific products. • Search – The search object is used to search the catalogs and return the results of product searches. • User – The user object provides a means by which information is persisted about specific users. In addition, it manages the collection of user orders. • User manager – The user manager object manages the collection of users.
Physical Model • Authentication Models • Presentation • Clustering • Network Load Balancing