Skip repetitive navigation links.
United States Department of AgricultureFarm Services AgencySystem Development Life Cycle (SDLC)
Go to SDLC Home Go to SDLC Home Go to About SDLC Go to News Go to Help Go to Contact Us
Search FSA
Go To Advanced Search
Go To Search Tips
FSA Enterprise Architecture
Go to EA Overview
Go to Enterprise Architecture Program
Go to Enterprise Architecture
Go to FSA Infrastructure
FSA SDLC
Go to SDLC Overview
Go to Background
Go to Development Process
Go to Quick Start Guide
Go to FSA Quality Assurance & Control Process
Go to Project Management Process
Go to Configuration and Change Management
Mainframe & System 36 SDLC
Browse by Subject
Go to Developer Tools Overview
Go to Architectural Decisions/Waivers
Go to FSA Assets and Shared Services
Go to Approved Software
Go to Templates and Documents
Go to Information Bulletins & Memos
Browse by Subject
Go to Learning Overview
Go to Training Schedule
Development Process

Elaborate Design

 

 
During High Level Design, language specific design patterns and mechanisms are incorporated and the overall design is clarified. There is often significant overlap between the Detailed Design and the Construction & Assembly phases. The activities of this phase are often driven by project specific details. Sequence diagrams, pseudo-code, state diagrams, communication diagrams and other techniques can be useful during this process. The following are commonly addressed as the design matures:

 
Define Class & Operation Visibility - Choose the most restricted visibility possible that can still accomplish the objective of the operation. Start with private and then, if necessary, move to a less restricted access as the design matures.

 
Define Class Methods - Specify the implementation of an operation. In many cases where the behavior required by the operation is sufficiently defined by the operation name, description, and parameters, methods are implemented directly in the programming language. Where the implementation of an operation requires the use of a specific algorithm or more information than is presented in the operation's description, a separate method description is required. The method describes how the operation works, not just what it does.

 
Define Class States - For some operations, the behavior of the operation depends upon the state of the receiver object. Describe the states an object can assume and the events that cause the object to move from one state to another.

 
Define Class Attributes - Identify the name, type, default value, visibility, etc.

 
Define Class Dependencies - Identify and document the class dependencies.

 
Define Class Associations - Associations provide the mechanism for objects to communicate with one another. They provide a conduit along which messages can flow. They also document the dependencies between classes, highlighting that changes in one class could be felt among many other classes.

 
Define Class Generalizations - Classes might be organized into a generalization hierarchy to reflect common behavior and common structure. A common superclass can be defined, from which, subclasses can inherit both behavior and structure. Generalization is a notational convenience that allows the developer to define common structure and behavior in one place, and to reuse it for repeated behavior and structure.


Last Modified: 12/12/08 12:07:44 PM


SDLC Home | FSA Home | USDA.gov | Common Questions | Site Map | Policies and Links
FOIA | Accessibility Statement | Privacy Policy | Nondiscrimination Statement | Information Quality | USA.gov | White House