Your SlideShare is downloading. ×
Software Architectural And Detailed Design Description Template
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Software Architectural And Detailed Design Description Template

7,272
views

Published on

A comprehensive template for describing software architecture and detailed design. I wrote it based on the IEEE 1471 and IEEE 1016 specifications. Visit http://orphanware.blogspot.com/ for more …

A comprehensive template for describing software architecture and detailed design. I wrote it based on the IEEE 1471 and IEEE 1016 specifications. Visit http://orphanware.blogspot.com/ for more technical reading.

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,272
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
303
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. [Company] System and Software Architectural and Detailed Design Description [System name and version - Feature Name] [Company Logo] [Name] [Pick the date]
  • 2. System and Software Architectural and Detailed Design Description [System name and version - Feature Name] [Name] Table of Contents Table of Contents........................................................................................................................................2 1 Introduction..............................................................................................................................................5 1.1 Prerequisite........................................................................................................................................5 1.2 Architectural and Design Drivers........................................................................................................5 2 References................................................................................................................................................5 3 Architectural and Detailed Design Decomposition...................................................................................6 3.1 System Macro-Architecture Decomposition......................................................................................6 3.1.1 Level I View - [Name]..................................................................................................................6 3.1.1.1 Introduction......................................................................................................................6 3.1.1.2 Constraints........................................................................................................................6 3.1.1.3 Logical Deployment Model View......................................................................................6 3.1.1.4 Physical Deployment Model View.....................................................................................6 3.1.1.5 Design Driver Allocation...................................................................................................6 3.1.1.6 Communication Interfaces................................................................................................6 3.1.2 Level II View - [Name].................................................................................................................6 3.1.2.1 Introduction......................................................................................................................6 3.1.2.2 Constraints........................................................................................................................7 3.1.2.3 Logical Deployment Model View......................................................................................7 3.1.2.4 Physical Deployment Model View.....................................................................................7 3.1.2.5 Design Driver Allocation...................................................................................................7 3.1.2.6 Communication Interfaces................................................................................................7 3.1.3 ....................................................................................................................................................7 3.2 System Micro-Architectural Decomposition.......................................................................................7 3.2.1 Level I - [Name]...........................................................................................................................7 3.2.1.1 Introduction......................................................................................................................7 2
  • 3. System and Software Architectural and Detailed Design Description [System name and version - Feature Name] [Name] 3.2.1.2 Constraints........................................................................................................................8 3.2.1.3 Structural Model View......................................................................................................8 3.2.1.4 Design Driver Allocation...................................................................................................8 3.2.1.5 Communication Interfaces................................................................................................8 3.2.2 Level II View - [Name].................................................................................................................8 3.2.2.1 Introduction......................................................................................................................8 3.2.2.2 Constraints........................................................................................................................8 3.2.2.3 Structural Model View......................................................................................................8 3.2.2.4 Design Driver Allocation...................................................................................................8 3.2.2.5 Communication Interfaces................................................................................................9 3.2.3 ....................................................................................................................................................9 3.3 Module Detailed Design.....................................................................................................................9 3.3.1 Module I - [Name].......................................................................................................................9 3.3.1.1 Introduction......................................................................................................................9 3.3.1.2 Constraints........................................................................................................................9 3.3.1.3 Design Driver Allocation...................................................................................................9 3.3.1.4 Structural Model View......................................................................................................9 3.3.1.5 Logical Model View...........................................................................................................9 3.3.1.6 Data Model View.............................................................................................................9 3.3.1.7 Design Summary.............................................................................................................10 3.3.1.8 API Documentation Reference........................................................................................10 3.3.2 ..................................................................................................................................................10 4 Conclusion..............................................................................................................................................10 3
  • 4. System and Software Architectural and Detailed Design Description [System name and version - Feature Name] [Name] Change Log Name Date Reason For Changes Version 4
  • 5. System and Software Architectural and Detailed Design Description [System name and version - Feature Name] [Name] 1Introduction [Quick introduction of the purpose of the document. Could be as little as one or two sentences or it could be as long as a few paragraphs. Do not go overboard here just refer to the vision and scope document or software requirement specification if needed.] 1.1Prerequisite [List the prerequisites for reading this document. If a vision and scope document or a software requirement specification exists list those documents. In software terms, what is the input criteria for this document.] 1.2Architectural and Design Drivers [Architectural and Design Drivers are a combination of functional requirements (use cases) and quality attributes. Quality scenarios should be part of the quality attribute section of the software requirement specification. The systems architecture and to an extent it's detailed design should be a manifestation of its functional and quality attribute requirements. Nothing more and nothing less. There should be traceability of each driver to each architectural component to each design decision. This section should contain two tables like the ones provided below.] Driver ID (DID) Use Case ID Use Case Name Driver ID (DID) Quality Attribute ID Quality Attribute Reference 2References •IEEE. IEEE Std. 1471-2000 IEEE Recommended Practice for Architectural Description of Software- Intensive Systems. IEEE Computer Society, 2000. •IEEE, IEEE Std.1016-1998 Recommended Practice for Software Design Descriptions, IEEE Computer Society, 1998 •SEI. Attribute Driven Design v2.0. Software Engineering Institute, 2006 •[SRS for this system] •[...] 5
  • 6. System and Software Architectural and Detailed Design Description [System name and version - Feature Name] [Name] 3Architectural and Detailed Design Decomposition [Here is where you decompose your design and trace it from the drivers to the system from a really high level down to the detailed design. If the design spec being written is for an existing system you can reuse a lot of the macro and micro architecture and only do detailed design of your module as it relates to the rest of the system as a whole] 3.1System Macro-Architecture Decomposition 3.1.1Level I View - [Name] 3.1.1.1Introduction [Here pick the highest level. If it's a brand new system, start with the hardware and software interfaces such as platforms, web servers, application servers, database servers, etc. If it's an existing system start at the highest level that you know of that relates directly to what your designing.] 3.1.1.2Constraints [Here we describe the constraints and why we chose one solution over another solution if there was a more straight forward solution to begin with. If the design is for an existing system then the constraints of the existing system as they relate to the design should be listed] 3.1.1.3Logical Deployment Model View [insert a deployment diagram here] 3.1.1.4Physical Deployment Model View [insert a deployment diagram here] 3.1.1.5Design Driver Allocation Macro-Element ID (Macro-EID) Allocated Driver ID(s) ... ... 3.1.1.6Communication Interfaces [Define how the different elements communicate. This should not be the API calls as that is too much detail at this point. It should be on a much more general level such as the protocol that is used.] 3.1.2Level II View - [Name] 3.1.2.1Introduction [Here you pick the architectural element that is related to the feature you are adding and recursively do the same activities as in Level I View, but only for this element instead of the system as a whole.] 6
  • 7. System and Software Architectural and Detailed Design Description [System name and version - Feature Name] [Name] 3.1.2.2Constraints [Here we describe the constraints and why we chose one solution over another solution if there was a more straight forward solution to begin with. If the design is for an existing system then the constraints of the existing system as they relate to the design should be listed] 3.1.2.3Logical Deployment Model View [insert a deployment diagram here] 3.1.2.4Physical Deployment Model View [insert a deployment diagram here] 3.1.2.5Design Driver Allocation Macro-Element ID (Macro-EID) Allocated Driver ID(s) ... ... 3.1.2.6Communication Interfaces [Define how the different elements communicate. This should not be the API calls as that is too much detail at this point. It should be on a much more general level such as the protocol that is used.] 3.1.3.. [Do this recursive decomposition process enough to show the tracing of your drivers down to the micro- architecture in a logical way. There is no right or wrong way for this decomposition process. Only well decomposed and poorly decomposed descriptions. Some systems 2 levels of decomposition is enough. Some systems you need many levels of decompositions] 3.2System Micro-Architectural Decomposition 3.2.1Level I - [Name] 3.2.1.1Introduction [For the first level of micro-architecture, start with the use of any micro-architecture frameworks. Don't go into specifics of it, but maybe give a reference to it in the reference section and link it form here. Give the breakup of the components or modules and how they relate to each other] 7
  • 8. System and Software Architectural and Detailed Design Description [System name and version - Feature Name] [Name] 3.2.1.2Constraints [Here we describe the constraints and why we chose one solution over another solution if there was a more straight forward solution to begin with. If the design is for an existing system then the constraints of the existing system as they relate to the design should be listed] 3.2.1.3Structural Model View [insert component connector diagram here] 3.2.1.4Design Driver Allocation Micro-Element ID (Micro-EID) Allocated Driver ID(s) ... ... 3.2.1.5Communication Interfaces [Define how the different elements communicate. This should not be the API calls as that is too much detail at this point. It should be on a slightly less general level than the descriptions made for the macro- architecture. Maybe XML is used between elements written in different languages. Maybe events are used to loosely couple elements written in the same language.] 3.2.2Level II View - [Name] 3.2.2.1Introduction [For the second level and any level that comes after, you should pick an element in the previous level that is a direct parent to your design. This level might not be needed depending on the system.] 3.2.2.2Constraints [Here we describe the constraints and why we chose one solution over another solution if there was a more straight forward solution to begin with. If the design is for an existing system then the constraints of the existing system as they relate to the design should be listed] 3.2.2.3Structural Model View [insert component connector diagram here] 3.2.2.4 Design Driver Allocation Micro-Element ID (Micro-EID) Allocated Driver ID(s) ... ... 8
  • 9. System and Software Architectural and Detailed Design Description [System name and version - Feature Name] [Name] 3.2.2.5Communication Interfaces [Define how the different elements communicate. This should not be the API calls as that is too much detail at this point. It should be on a slightly less general level than the descriptions made for the macro- architecture. Maybe XML is used between elements written in different languages. Maybe events are used to loosely couple elements written in the same language.] 3.2.3.. 3.3Module Detailed Design 3.3.1Module I - [Name] 3.3.1.1Introduction [Brief description of the module your designing. A module could be a single class or a collection of classes that related to the same chunk of logic. State the design goals.] 3.3.1.2Constraints [list the design constraints, or any obstacles that you have come across. Remember a design doc should be made before implementation and re-factored throughout implementation when things become more clear. Problems that you ran into during implementation in which you had to change your design are also good candidates for this section] 3.3.1.3Design Driver Allocation Module ID (MID) Allocated Driver ID(s) ... ... 3.3.1.4Structural Model View [Insert class diagram here] 3.3.1.5Logical Model View [Insert activity diagram(s) and/or sequence diagram here] 3.3.1.6Data Model View [Insert entity relationship diagram here] 9
  • 10. System and Software Architectural and Detailed Design Description [System name and version - Feature Name] [Name] 3.3.1.7Design Summary [Give a summary of your design and how it captured the requirements] 3.3.1.8API Documentation Reference [Give a reference to any published API documentation. This is the documentation produced by JDoc, ASDoc, PHPDoc, NDoc, etc.] 3.3.2... 4Conclusion [A brief conclusion. This should include any known issues on the design and future suggestions.] 10