Detailed Design Document Template
Detailed Design Document Template
[Final/Draft]
[Version Date (MM/DD/YYYY)]
Table of Contents
Detailed Design Document Template..............................................................................................v Executive Summary......................................................................................................................viii Section 1. Introduction.....................................................................................................................1
1.1 PURPOSE..................................................................................................................................................................1 1.2 SCOPE.....................................................................................................................................................................1 1.3 INTENDED AUDIENCE.................................................................................................................................................1 1.4DOCUMENT ORGANIZATION.........................................................................................................................................2 1.5REFERENCES AND RELATED DOCUMENTS......................................................................................................................2
Section 3. Key Design Decisions....................................................................................................5 Section 4. Application Framework..................................................................................................6 Section 5. Package Extension and Modification Designs................................................................7 Section 6. User Interface Design.....................................................................................................8
6.1INFORMATION ARCHITECTURE......................................................................................................................................8 6.2USER INTERFACE APPLICATION ARCHITECTURE..............................................................................................................8 6.3USER INTERFACE SCREENS..........................................................................................................................................8 6.4USER INTERFACE TECHNICAL COMPONENTS...................................................................................................................9 6.5DEVELOPMENT ARTIFACTS LIST...................................................................................................................................9 6.6OTHER DESIGN CONSIDERATIONS...............................................................................................................................10
Table of Contents
7.2.6Lookups and References..............................................................................................................................16 7.2.7Data Mapping, Transformations and Formatting......................................................................................17 7.2.8Component Detailed Design and Framework Extensions..........................................................................17 7.2.9Supporting Scripts.......................................................................................................................................17 7.2.10Error Handling, Logging, Monitoring and Recovery...............................................................................17 7.2.11Interface Design Considerations...............................................................................................................17 7.2.12Interface Configurations...........................................................................................................................17 7.2.13Interface Deployment Considerations.......................................................................................................17 7.2.14Unit Test Verification for <interface name>............................................................................................17
Section 11. Enterprise Services......................................................................................................23 Section 12. Use Case Walk Through.............................................................................................24
12.1<USE CASE NAME> USE CASE REALIZATION...........................................................................................................24 12.1.1Component Interaction..............................................................................................................................24 12.1.2Walkthrough Narrative.............................................................................................................................24 12.2<USE CASE NAME> USE CASE REALIZATION...........................................................................................................24 12.2.1Component Interaction..............................................................................................................................24 12.2.2Walkthrough Narrative.............................................................................................................................24
Section 14. Configuration.............................................................................................................28 Section 15. Physical Packaging....................................................................................................29 Appendix A: Acronyms and Abbreviations.....................................................................................2 Appendix B: Glossary......................................................................................................................2
List of Figures
iii
Table of Contents
List of Tables
Table 0-1: Intended Audience and Document Uses......................................................................vii Table 1-2: Intended Audience and Document Uses........................................................................1 Table 2-3: High Level Component Diagram Description................................................................4 Table 3-4: Key Design Decision Format.........................................................................................5 Table 7-5: Error handling, Logging and Monitoring Information.................................................14 Table 7-6: Key Interface Non-Functional Requirements...............................................................14 Table 9-7: Transactions Table.......................................................................................................20
iv
Project Name
[TEMPLATE GUIDANCE Light-blue text is explanatory and should be deleted from the final document. Before you start filling out the content of the new document, go to File/Properties/Custom. Enter the Document Name, Version Date (in DD/MM/YYYY format), and Version Number (in x.x format) in the custom properties that bear these respective names. In the document, press CTRL+A, then F9, and click OK. Go into every footer for each section, press CTRL+A, then F9, and click OK. If a section marked Optional is deemed unnecessary or inapplicable to the document, the section should be retained and the content for the section should be Not applicable. Body Text The text in the document is the body text style, TNR (Times New Roman) 12, color-black; leftjustified. Numbered Lists (for Sections): Numbering for lists should follow the [lower-case letter].[number].[number] pattern. All levels in the list will be flush-left with the main text in the section. Example: 1. List item a. List item i. List sub-item
Bulleted Lists (Do not change the font once it is set) Bulleted Lists: Level 1 bullets should be Symbol 9 (Format, Bullets & Numbering, Customize, Font-Symbol, Size-9) for level 1 of indentation black bullet symbol (Two spaces in between bullet and first letter of sentencesee ruler at top of document.) Indent first bullet three spaces from left margin.)
Project Name
Level 2 bullets should be dash symbol for level 2 of indentation. (FontSymbol, Size-9.) (Two spaces in between bullet and first letter of sentencesee ruler at top of document.) Indent second bullet three spaces from start of Level 1 bullet.
Level 3 should be open bullet symbol for level 3 of indentation. (Font-Symbol, Size-9) (Two spaces in between bullet and first letter of sentencesee ruler at top of document.) Indent level 3 bullets three spaces from start of Level 2 bullets.
Page setup: Margins: 1 inch Top, Bottom, Left, and Right; From Edge= .5 header, .5 footer. Section Style Data: Sections should start on their own page. Heading 1
Font: Arial 16 pt., bold, black Paragraph spacing: 12 pt spaces Before, 18 pt After Keep with next, Level 1, Outline numbered, tabs 0.5
Heading 2
Font: Arial 14 pt., bold, black Paragraph spacing: 12 pt spaces Before, 12 pt After Keep with next, Level 2, Outline numbered, tabs 0.5
Heading 3
Font Arial 13 pt, unbold Paragraph spacing: 6 pt spaces Before, 6 spaces After Keep with next, Level 3, outline numbered, tabs 0.5, Indent: 0.5
All major section headings (Heading 1) should be in numerical order (e.g., Section 1, Section ...................................................................2, Section 3, etc.) Secondary headings (Heading 2) should be in numerical order (e.g., 1.1, 1.2, 2.1, 2.2, 3.1, ................................................................................................3.2, etc.) Sub-secondary headings (Heading 3) should be in numerical order (e.g., 1.1.1, 1.1.2, 2.1.2, ...................................................................2.1.3, 3.1.1, 3.1.2, etc.)
Tables You may utilize a few styles for table text and table headings.
Project Name
Caption: Table Caption Heading style: Arial Bold, TNR 12, paragraph spacing 18 pt Before, 3 pt After Table Heading: Arial 11, Bold, paragraph spacing 18 pt Before, 3 pt After Table Text: Can vary from TNR 9-11 (because documents can vary in size and length, the author may choose which is suitable for his/her document) (The author may choose from Table Text 9, Table Text 10, and Table Text 11 styles.) Bullets within tables: Font of bullet is 6 pt; bullet position: indent at .1, text position: indent at .15 Table 0-1: Intended Audience and Document Uses
Users Relevant Sections
table text TNR 10 table text is TNR 10
Uses
table text is TNR 9 table text is TNR 9
Headers The header contains the title of the document on the left, and the section on the right. How to add section titles in the header: 1. Create a section break in the page ahead of the page of the header you want to change. 2. Click View, Headers and Footers. 3. Put your cursor in the header. Ensure that Same as Previous is turned off. 4. Click Insert, Cross-Reference. a. In the drop-down box, ensure it states Heading and that the Insert Reference To states Heading Text; then, select the heading in the dialog box that reflects the heading you want to insert. b. Click Insert. Footers The footers contain the version number of the document on the left, page numbers in the middle, and the version date on the right. (Regarding version numbers, keep the numbering system to a 1.1, 1.2, etc., and 2.1, 2.1, etc. (For in-house, you may use alternate numbering systems like 1.1.1 and so forth.)
Executive Summary
Executive Summary
[Optional A one-page high-level introduction describing, in brief: Document purpose Document users Document uses (what, when, how) Document owners Document main point of contact for questions or feedback]
viii
Section 1. Introduction
Section 1. Introduction
[This section, including all sub-sections except intended audience, is mandatory. This information is provided in every Federal Student Aid deliverable in the Work Products Guide. This part of section one should capture background information on the project and this detailed design to provide background and context to the reader. The remaining sub-sections of the introduction should provide the purpose, scope, and the intended audience for this design document, as well as the document organization and a list of document references for any documents supporting this design or referred to in this design document.] [GENERAL DETAILED DESIGN TEMPLATE GUIDANCE: Detailed Design document contents are typically specific to the system being designed and the technologies being utilized. This detailed design template provides foundation for detailed design documents working with the core Federal Student Aid technologies. However, any given project may need to significantly alter this template based on the specific solution being designed, package being implemented or tools being utilized. Therefore, this detailed design template may be customized on a design by design or project by project basis. Any changes should be reviewed and agreed upon by the project team and the Federal Student Aid Technical Architecture Support Services (TASS) team. Obtaining buy-in on the details of a customized template ensures all parties agree the necessary information will be captured at an appropriate level of detail, thereby enabling Federal Student Aid to effectively evaluate the detailed design. Additionally, the technical quality control review criteria must be adjusted to account for agreed upon changes to the template.]
1.1 Purpose
[This section defines the intended goals of this design document.]
1.2 Scope
[This section provides a brief description of the boundaries of this design document, what this design document applies to, and what is affected or influenced by this design document.]
Section 1. Introduction
Section 2. Overview
2.2.1
Component Diagram
[This section should contain the component diagram identifying the components in scope for this detailed design document. If this document is one of multiple detailed design documents for this solution, it may be helpful to the reader to provide a high level component diagram depicting the entire solution, and identifying which component(s) from the high level diagram are in scope for this document. This could then be followed by a lower level component diagram illustrating further detail on the component within the scope of this detailed design document.]
Section 2. Overview
2.2.2
Component Descriptions
[This section should communicate the description information supporting the component diagram. An example of a table that may be used to capture the description information is below.] Table 2-3: High Level Component Diagram Description Component Description Services Provided
A description and graphical depiction of each screen This section may reference the User Interface Specification document for the graphical representations of each screen. Key attributes of each screen Wiring information for each screen Mapping of applicable data attributes (attributes not captured in components detailed in the following section) Please refer to sections 6.3 and 6.4 of the Exemplar Detailed Design Document for a WebSphere Portal based example of this section.]
10
7.1.1
Overview
[This intent of this section is to provide the reader a description of the interface that this detailed design pertains to, highlighting key information from the context model and interface control document, and providing some context with regard to how this interface fits into the application as a whole.]
11
7.1.2
Design Approach
[This intent of this section is to detail the summary approach to the overall design of this interface or conversion. For instance, sub-section may outline how the data will be provided by the source system, what type of technologies will be used in the interface design (ETL, ftp, MQ, etc.), how the source system will consume the data, key timing or scheduling elements, and any outputs the source system might produce after consuming the data. Please refer to the exemplar detailed design for an example. Note that in the exemplar detailed design there is no approach section. However, the approach is laid out in the single paragraph under section 6.1.]
7.1.3
Logical Design
[This section should contain a logical diagram and associated narrative illustrating the logical interface components and flow from source to target. The diagram should show the source and target system(s), middleware, and other key components to provide readers a general understanding of the interface. This may be as simple as a context diagram depicting the interface program in scope for this document as a black box. Generally, it is effective if the major components in the end-to-end data movement are all depicted here, with the component(s) in the scope of this document highlighted for clarity. For instance, if the source system is a legacy system responsible for producing the input file and moving it to a given location, the diagram may show that for completeness, but also indicate it is not in the scope of this detailed design. Please refer to the exemplar detailed design for and example.]
7.1.4
[This section is optional. Depending on the amount of processing taking place within the interface program, it may be helpful to provide a data flow diagram and narrative for the reader. Where as the Logical Diagram may depict the interface program as a black box, the data flow diagram can provide detail depicting the process flow and decision points taking place within the interface program itself.]
7.1.5
[While this should have been captured in the interface control document, it is reiterated here for convenience when passing this detailed design to the interface developer. Alternately, this section may reference the interface control document containing this information.]
7.1.6
[While this should have been captured in the interface control document, it is reiterated here for convenience when passing this detailed design to the interface developer. Alternately, this section may reference the interface control document containing this information. If the required lookups and references were not defined as a part of the interface control document, they must be defined here. Please refer to the interface control document for template instructions.]
12
7.1.7
[While this should have been captured in the interface control document, it is reiterated here for convenience when passing this detailed design to the interface developer. Alternately, this section may reference the interface control document containing this information. If the Data Mapping was not defined as a part of the interface control document, it must be defined here Please refer to the interface control document for template instructions.]
7.1.9
Supporting Scripts
[Often an end-to-end interface or conversion requires various shell scripts, jcl scripts or other types of scripts to support the interface. Any necessary scripts which must be written in order for the interface to function correctly should be identified and described here.]
13
Value Please indicate the requirements in case that the interface fails Indicate the log file, error message Indicate conditions how to compensate the interface (retry, re-execute, cancel)
Remarks
Should the process simply be restarted after any issues are resolved? Can the message(s) be re-sent? Is there checkpoint, restart processing that needs to be implemented? Is there parallel processing of data (batch) taking place? What exactly should be monitored and how? What should happen in the event of failure?
Exception Monitoring
7.1.11
[The intent of this section is to restate key non-functional requirements (i.e. security, availability, capacity, etc.) and demonstrate how the design of the interface supports those requirements. The non-functional requirement related to the table below should have been captured in the associated interface control document or other requirements documentation. However, it may help to restate them here for convenience. Please refer to the to the design considerations section 14 of the exemplar detailed design for a general example of how to document this information.] Table 7-6: Key Interface Non-Functional Requirements
Category Availability Average Volume Exchanged Value Normal the same as infrastructure availability HA Highly Available Estimated volume in normal conditions. For ETL this is typically expressed by number of records per run and an estimate of total size of data per run. For Messaging this is typically
14
Remarks Other pertinent constraints, conditions or observations regarding this requirement. Other pertinent constraints, conditions or observations regarding this requirement.
Category
Value expressed in number or messages per hour or minute (depending on frequency) and average and maximum message sizes. Estimated peak volume 1. On-Demand, 2. NRT, 3. Daily/Nightly 4. One-Time Load Job Name or Process Name Provide information for required start time (for scheduled interfaces) or state On-request Estimated duration for the execution in normal conditions (Minutes) Estimate the allowable delay for this interface before it has a major impact on business operations or dependent interfaces or process flows. Describe any other procedures, processes or jobs to be executed prior to running this interface, or any other interfaces or jobs are to be initiated after successful or unsuccessful run of the current job. Describe any processes, jobs or interfaces that need to be started after this interface completes (normally or abnormally). Specify Authentication Specify authorization
Remarks
Other pertinent constraints, conditions or observations regarding this requirement. On-demand, Near Real-time, Daily/Nightly, Weekly, Periodically, Data Migration For batch interfaces that will be executed as part of an Job Stream (running in Job Scheduling infrastructure)
Pre-Run-time dependencies
7.1.12
Interface Configurations
[Any necessary configurations that must be made in order for the interface to run correctly should be detailed here. This includes items such as configuration files, environment variables, or configurations stored in a database. Each configuration file, variable, constant and value or set of values should be identified here. Ultimately this information will greatly aid those responsible for configuration management and deployments.]
[Version Number (x.xx)] 15 [Version Date (MM/DD/YYYY)]
7.1.14
[The intent of this section is to capture: Whom is responsible for unit test How it will be performed, including what any tool that will be used A list of transaction types or scenarios that must be tested in order to verify the interface program is working as designed]
Overview Design Approach Logical Design Data Flow Diagram and Narrative Data Sources and Targets Lookups and References
16
7.2.7
7.2.8 Component Detailed Design and Framework Extensions 7.2.9 Supporting Scripts
7.2.10 Error Handling, Logging, Monitoring and Recovery 7.2.11 7.2.12 7.2.13 7.2.14 Interface Design Considerations Interface Configurations Interface Deployment Considerations Unit Test Verification for <interface name>
17
18
19
SV-0XX.1
BasketCheckoutS ervice
Delete Delete Update Create Submit If all items are deleted If all items are not deleted Multiple orders created SPICS transaction DPO-XXX
20
21
An assessment of the activity by system component (e.g. workstation, application server, database server, etc.) associated with the execution of the business process. This assessment could include: - The number of data retrieval requests by type generated by the process. This could be the number of SQL calls by type (e.g. SELECT, FETCH, UPDATE, etc) issued to the database server, the number of HTML page requests issued to the WEB server, the number of file I/Os by type (e.g. Sequential READ, Random READ, etc.) issued to the file server, etc. - Number of data store requests by type generated by the process. This could be the number of SQL INSERT calls issued to the database server, the number of file Write I/Os issued to the file server, etc. - The processing cost involved in composing, and subsequently post processing the result set data from, the data retrieval requests. This will be estimated from an assessment of the application, middleware, and OS elements of that overall cost. - The processing cost involved in composing the source data associated with the data store requests. This will be estimated from an assessment of the application, middleware, and OS elements of that overall cost. An assessment of the number of message pairs exchanged between the individual system components during execution of the process, along with an estimate of the typical message sizes involved. An assessment of the working set size required by component to support execution of the business process. The technical volumetrics for a given business process are then derived from a combination of the business volumetric information captured within the Non Functional Requirements, along with the technical profile information captured within the Technical Transaction Map for each of those business processes. When producing this information, as in all of the performance estimation activities, it is recommended the 80:20 principle be employed. That is, focus in detail on the key business processes only - those that are high volume, business significant, or complex. These by definition contribute most to the overall system requirements. Each of the non-key processes can then be mapped to a representative candidate from the selected key process list. Without well-understood technical transaction maps, the performance model is unlikely to provide an accurate estimate of the system resource requirements for a bespoke application. In such cases, there is therefore an increased risk that a system based on those requirements will fail to deliver the required level of performance once deployed.]
22
23
12.1.1
Component Interaction
[This section should contain a sequence diagram which demonstrates the interaction of the key components involved in realizing the basic flow of the use case from the previous section.]
12.1.2
Walkthrough Narrative
[This section should narrative walking through the diagram in the previous sub-section. The walkthrough should clearly demonstrate how the use case is realized through component interaction.]
12.2.1
Component Interaction
[This section should contain a sequence diagram which demonstrates the interaction of the key components involved in realizing the basic flow of the use case from the previous section.]
12.2.2
Walkthrough Narrative
[This section should narrative walking through the diagram in the previous sub-section. The walkthrough should clearly demonstrate how the use case is realized through component interaction.]
24
13.1 Prototype(s)
[Describe what prototypes or proof of concepts, if any, were used in developing this design, and how was it used in making design decisions.]
13.2 Performance
[Describe the major characteristics of the software that impact the design, as well as the target performance constraints. Example items to discuss are: Discuss the performance significance for this function (critical, unimportant, etc.) Describe the high-level performance characteristics of this system (change to existing function, new function) List and discuss the specific performance goals including metrics by which it could be measured What is being done to optimize the performance of this design/implementation? List and discuss any performance considerations or open questions that need to be addressed Describe how the Number of users, Number of elements, etc. may affect performance What profiling should be done? What statistics need to be collected? Describe network performance, system performance, throughput, utilization (memory, CPU), etc.]
Example items to discuss are: Under what (external as well as internal) conditions are design elements likely to experience failure? How will the failure manifest itself to the user? How does the design recover from or work around failure conditions? What instrumentation is needed to isolate failing areas or to diagnose failure conditions? Redundancy Events, Notifications and Exceptions: Specify what events or notifications are consumed or produced by the design elements. Exception handling can also be unusual conditions, but not necessarily error conditions.]
13.4 Maintainability
[Describe the concepts that will enable the design elements to be easily maintained. Example items to discuss are: Modularity and Reuse: Describe the modularity of the resulting implementation, componentization of this design, design considerations for reuse of this design, reuse of other components for this design, etc. Conversion/Reversion (Backward Compatibility): Conversion/Reversion refers to any meta-data whose structure may need to change in support of the version or release defined by this design document. For instance, consider a database that represents an inventory of files. If the record layout in that database needs to be converted to a new format, how is that conversion accomplished? Will it be automatically done upon first use of the new version? If the customer needs to revert to an earlier version of the product or component, how is that record layout converted back (reversion)? ]
13.5 Serviceability
[Describe the design points needed in order to enable design elements to be easily serviced once its available for external use. Example items to discuss: How will the user know or determine design element failures and report it to service organizations?]
13.6 Privacy
[Privacy is about purpose-based access control to Personal Information. Whereas security provides general access control to data, Privacy relates to particular pieces of data. In this section, describe who has access to see certain parts of your data and what methods are used to ensure that they are the only ones who can access it.]
26
13.7 Security
[Use this section to illustrate how the overall design accommodated security requirements such as authentication and authorization requirements.]
13.8 Accessibility
[Use this section to identify if accessibility requirements were met. Section 508 of the US Rehabilitation Act requires that all federal government agencies purchase accessible solutions unless none exist. ]
13.9 Globalization
[Indicate whether design elements will be enabled for National Language Support. Consider all externals, such as messages, commands, panels, and documentation. Describe how design element will be enabled to support its use in other languages and customs. Identify what languages or groups of languages are supported.]
27
A list of all configuration files, the configurations available within each file, and a description of the options available Any configuration or metadata stored in database tables that must be setup in order for the application to run as desired Any environment variables or constants that need to be created and/or set to specific values Any product configurations such as Oracle performance tuning settings or WebSphere ESB configurations that must be made. Any users (application users, database users, operating system level users, etc.) or directories that must be created, including user groups and permission settings that must be configured in order for the application to function correctly.
In some cases, some configuration information may be captured in separate documents. Those documents should be referenced here. Additionally, and other deployment related setup information which may be helpful to those charge with creating and deployment new environments (i.e. testing, training, production) may be captured here. Example of items to capture here are:
What things will aid the testing effort? Dependencies Test Data requirements Other environment related setup requirements
Please refer to the exemplar detailed design document for an example of this section.]
28
Build instructions List of installation files (i.e. WAR, EAR files, stubs, etc.) Database create (DDL) scripts]
29
Guidance: Insert a cover page before each Appendix. (Heading 7, TNR 12, centered, paragraph spacing 156 pt before.)
A-1
Additional Appendices should be in sequence to the previous (e.g., Appendix A, B, C, D, etc.) A and B are reserved for Acronyms and a Glossary, and any appendices after that are document-specific. Footers: restart page numbering (e.g., if you create an Appendix D, the page numbers in the footers should read D-1, D-2, etc.) Describe all associated terms for this project / document / methodology, etc.]
A-2
Appendix B - Glossary
Appendix B - Glossary
Guidance: Insert a cover page before each Appendix. (Heading 7, TNR 12, centered, paragraph spacing 156 pt before.)
B-1
Appendix B: Glossary
[List all the glossary terms used in the document. Example:
Term Common Origination and Disbursement (COD) Definition Initiative designed to put in place more common processes across financial aid programs. FSAs participating schools use a common process, platform, and record to originate and disburse Title IV federal aid funds. Funding request document describing the business case for an investment, financials, performance measures, SRM and TRM mappings. Short for File Transfer Protocol, the protocol used on the Internet for exchanging files. FTP works in the same way as HTTP for transferring Web pages from a server to a users browser and SMTP for transferring electronic mail across the Internet in that, like these technologies, FTP uses the Internets TCP/IP protocols to enable data transfer. FTP is most commonly used to download a file from a server using the Internet or to upload a file to a server (e.g., uploading a Web page file to a server). Integrated Technical Architecture (ITA) Infrastructure that will reduce the number of stove piped applications within FSA that are costly to update. FSA applications use this infrastructure to reduce performance bottlenecks and resolve issues. The Work Products Guide seeks to provide project managers with access to a knowledge base of guidelines, procedures, and templates for all critical project activities.
Exhibit 300
FTP
B-2