Markdown Editor

Software Design Description Template (IEEE 1016)

Full SDD per IEEE 1016-2009 – design concerns, 12 design viewpoints and views, rationale, overlays, requirements traceability

आर्किटेक्चर और सिस्टम डिज़ाइनपूर्णIEEE 1016-2009softwaredesigndescriptionmath
एडिटर में खोलें.md डाउनलोड करें

उपयोग कैसे करें: Detailed design baselines for regulated or contract work. List design stakeholders and concerns in section 2 first, then keep only the viewpoints that frame them. The usual pitfall is views with no concern behind them and requirements left untraced in section 7.

प्रीव्यू

Software Design Description: [System or component name]

Complete software design description (SDD) for one software system or component. The structure follows the concepts of IEEE 1016-2009: design stakeholders raise design concerns, design viewpoints frame those concerns, and each viewpoint is realised by one design view. Replace every [bracketed] value and every row marked Example.

Document control

FieldValue
Document ID[SDD-SYSTEM-001]
Design subject[System or component name]
Software release described[vX.Y]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Issuing organisation[Organisation or team]
Author / design owner[@designer]
Classification[Internal / Confidential / Public]
Date of issueYYYY-MM-DD

Approvals

RoleNameDecisionDate
Lead designer[@name][Approved / Approved with comments / Rejected]YYYY-MM-DD
Software architect[@name][Decision]YYYY-MM-DD
Quality assurance[@name][Decision]YYYY-MM-DD
Product owner[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]Initial design description
0.2YYYY-MM-DD[@name]Example: Added state dynamics view for order lifecycle; rationale DR-003
1.0YYYY-MM-DD[@name]Example: Baselined after design review DRV-02

Contents

1. Identification and overview

1.1 Identification

ItemValue
Design subject[System or component name and short identifier]
Version of the design subject[vX.Y]
Date of issue and statusYYYY-MM-DD, [status]
Scope of this SDD[Whole system / subsystem / single component]
Issuing organisation[Organisation]
Authorship[@name, @name]
Change historySee Revision history

1.2 Purpose and scope

This SDD describes how [System name] is designed to satisfy the requirements in [SRS reference]. It is the main communication vehicle between [designers, developers, testers, maintainers and reviewers] and the baseline for [implementation, verification and maintenance]. It covers [the components in scope] and excludes [items described elsewhere].

1.3 Design context

[Two or three paragraphs: the problem the software solves, the users and neighbouring systems, the platform it runs on, and the major constraints (regulation, legacy interfaces, team, schedule) that shaped the design.]

1.4 Design languages used

Language or notationUsed forConventions
Example: Mermaid flowchartContext, composition, dependency viewsArrows point from user to provider
Example: Mermaid classDiagramLogical and structure viewsOne diagram per package
Example: Mermaid stateDiagram-v2State dynamics viewStates in PascalCase, events in lower case
Example: PseudocodeAlgorithm viewIndented, no language-specific syntax
[Language][Purpose][Conventions]

2. Design stakeholders and concerns

2.1 Design stakeholders

IDStakeholderInterest in the design
DS-01Example: DevelopersHow to implement and extend each component
DS-02Example: TestersInterfaces, states and error paths to verify
DS-03Example: MaintainersDependencies, impact of change
DS-04Example: OperationsResource needs, deployment, failure behaviour
DS-05Example: Security reviewerTrust boundaries, data handling
[DS-nn][Stakeholder][Interest]

2.2 Design concerns

IDDesign concernRaised byPriority
DC-01Example: What are the system boundaries and external interfaces?DS-01, DS-05High
DC-02Example: How is the software decomposed and what does each part do?DS-01, DS-03High
DC-03Example: Which components depend on which, and what breaks if one changes?DS-03High
DC-04Example: What data is stored, in what form, and who may access it?DS-01, DS-05High
DC-05Example: How does an order move through its lifecycle?DS-02Medium
DC-06Example: How much memory, CPU and storage does the system need?DS-04Medium
[DC-nn][Concern as a question][DS IDs][High / Medium / Low]

3. Design viewpoints

3.1 Viewpoint selection

ViewpointConcerns framedDesign elementsNotationSelected
ContextDC-01Design subject, actors, external entities, servicesFlowchartYes
CompositionDC-02Subsystems, components, modulesFlowchart, tableYes
LogicalDC-02Classes, interfaces, typesClass diagramYes
DependencyDC-03Uses and depends-on relationsFlowchart, matrixYes
InformationDC-04Entities, attributes, data storesER diagram, tableYes
Patterns useDC-02, DC-03Design patterns, frameworksTableYes
InterfaceDC-01, DC-03Provided and required interfacesTable, signaturesYes
StructureDC-02Internal structure of componentsClass diagramYes
InteractionDC-05Messages between componentsSequence diagramYes
State dynamicsDC-05States, events, transitionsState diagramYes
AlgorithmDC-02Procedures, logic, complexityPseudocode, table[Yes / No, reason]
ResourceDC-06CPU, memory, storage, network, licencesTable, formulaYes

3.2 Viewpoint specification conventions

Each view in section 4 states: the viewpoint that governs it, the concerns it addresses, the design elements it shows, the diagrams and tables it contains, and any known open issues. Elements carry stable identifiers (CMP-nn for components, IF-nn for interfaces, ENT-nn for entities) so other views and the traceability matrix in section 7 can refer to them.

4. Design views

4.1 Context view

Governs: Context viewpoint. Addresses: DC-01. The diagram below shows [System name] and its external entities.

External entityService used or offeredInterface
Example: Payment providerCard authorisation and captureIF-03 (HTTPS REST)
Example: ERPInvoice postingIF-04 (message queue)
[Entity][Service][IF-nn]

4.2 Composition view

Governs: Composition viewpoint. Addresses: DC-02. The software is decomposed into the following components.

[CMP-03 Order module]:

IDComponentResponsibilityRealised as
CMP-03Example: Order moduleValidate orders, compute totals, drive lifecyclePackage orders
CMP-05Example: Payment adapterWrap provider API, map errors, retry idempotentlyPackage payments
[CMP-nn][Component][Responsibility][Package / service / library]

4.3 Logical view

Governs: Logical viewpoint. Addresses: DC-02. Core domain types:

TypeKindPurposeInvariants
Example: OrderAggregate rootHolds lines and lifecycleTotal equals sum of lines; status changes only through methods
[Type][Entity / value / service / interface][Purpose][Invariants]

4.4 Dependency view

Governs: Dependency viewpoint. Addresses: DC-03. Dependency matrix (row depends on column):

Depends on:CMP-02CMP-03CMP-04CMP-05CMP-06CMP-07
CMP-01 Web UIX
CMP-02 API layerXX
CMP-03 Order moduleXXXX
CMP-04 Catalogue moduleX

Change impact notes: [for example "CMP-07 is used by two modules; schema changes need a migration and review by both owners"]. Cycles found: [none / list with remediation].

4.5 Information view

Governs: Information viewpoint. Addresses: DC-04.

IDEntityKey attributesStoreClassificationRetention
ENT-01Example: Customerid, email, namePostgreSQL customersConfidential (personal data)6 years after last order
ENT-04Example: Paymentid, order_id, provider_ref, statusPostgreSQL paymentsConfidential (no card numbers stored)10 years
[ENT-nn][Entity][Attributes][Store][Class][Retention]

4.6 Patterns use view

Governs: Patterns use viewpoint. Addresses: DC-02, DC-03.

Pattern or frameworkApplied inPurpose
Example: Ports and adaptersCMP-03, CMP-05Keep domain logic independent of the payment provider
Example: RepositoryCMP-07Isolate SQL from domain types
Example: OutboxCMP-03 to ERPPublish events atomically with database writes
[Pattern][Components][Purpose]

4.7 Interface view

Governs: Interface viewpoint. Addresses: DC-01, DC-03.

IDInterfaceProviderConsumersOperationsErrorsSpecification
IF-01Example: Orders REST APICMP-02CMP-01, partnersPOST /orders, GET /orders/{id}400, 404, 409, 503[OpenAPI link]
IF-03Example: PaymentPortCMP-05CMP-03authorise(amount, token)Declined, TimeoutSection 4.3
[IF-nn][Interface][CMP][CMPs][Operations][Errors][Link]

4.8 Structure view

Governs: Structure viewpoint. Addresses: DC-02. Internal structure of [CMP-03 Order module]:

PartRoleConnected to
Example: OrderServiceApplication service; transaction boundaryOrderRepository, PaymentPort, Outbox
Example: PricingPolicyComputes discounts and taxOrderService
[Part][Role][Connections]

4.9 Interaction view

Governs: Interaction viewpoint. Addresses: DC-05. Order submission with payment:

ScenarioTriggerFailure path described
Example: Submit orderClerk submitsPayment declined returns 402 and order stays Draft
[Scenario][Trigger][Failure path]

4.10 State dynamics view

Governs: State dynamics viewpoint. Addresses: DC-05. Lifecycle of an Order:

TransitionGuardAction
Example: Paid to CancelledNot yet dispatchedRefund via CMP-05; notify customer
[Transition][Guard][Action]

4.11 Algorithm view

Governs: Algorithm viewpoint. Addresses: DC-02. Order total calculation:

total(order):
  subtotal = sum(line.quantity * line.unitPrice for line in order.lines)
  discount = PricingPolicy.discount(order.customer, subtotal)
  tax      = round_half_even((subtotal - discount) * taxRate(order.address), 2)
  return subtotal - discount + tax

The cost is linear in the number of lines, O(n)O(n). Rounding happens once, at the end, to avoid accumulated error. Edge cases: [zero lines rejected, negative discount rejected, currency mismatch rejected].

4.12 Resource view

Governs: Resource viewpoint. Addresses: DC-06. Storage growth estimate:

Syear=Norders/day×365×sˉorder=20 000×365×4 KB≈29 GBS_{year} = N_{orders/day} \times 365 \times \bar{s}_{order} = 20\,000 \times 365 \times 4\ \text{KB} \approx 29\ \text{GB}
ResourceBudgetEstimateBasis
Example: API memory per instance512 MB380 MB peakLoad test LT-04
Example: Database storage100 GB over 3 years87 GBFormula above
Example: Payment provider calls50 per second contract limit12 per second peakPeak hour forecast
[Resource][Budget][Estimate][Basis]

5. Design rationale

IDDecisionOptions consideredRationaleConcernsViews affected
DR-001Example: Use an outbox table to publish ERP eventsDirect queue publish; distributed transaction; outboxAvoids lost or phantom events without a two-phase commitDC-03, DC-044.5, 4.6, 4.9
DR-002Example: Hide the payment provider behind a portCall SDK directly; port and adapterProvider may change; enables tests with a fakeDC-034.3, 4.6
[DR-nnn][Decision][Options][Rationale][DC IDs][Views]

Assumptions the rationale depends on: [list, for example "order volume stays below 50,000 per day until YYYY"]. If an assumption fails, revisit the linked decisions.

6. Design overlays

IDOverlayApplies to viewWhat it adds
OV-01Example: Security zones4.2 CompositionMarks CMP-01 as untrusted zone and CMP-05, CMP-07 as restricted zone
OV-02Example: Team ownership4.2 CompositionOwner team per component
[OV-nn][Overlay][View][Added information]

Overlay OV-01, security zones on the composition view:

ComponentZoneControls at boundary
CMP-01 Web UIUntrusted (browser)Input validation in CMP-02, CSRF tokens
CMP-02 API layerDMZAuthentication, rate limiting
CMP-05, CMP-07RestrictedNetwork policy, secrets from vault

7. Traceability to requirements

RequirementSummaryDesign elementsViewVerification
Example: SRS-FR-012Customer can cancel an unshipped orderCMP-03, Order state machine4.10Test TC-112
Example: SRS-NFR-004p95 order submission under 800 msCMP-02, CMP-03, CMP-054.9, 4.12Load test LT-04
Example: SRS-SEC-002No card numbers storedENT-04, IF-034.5, 4.7Code review checklist CR-SEC
[Requirement ID][Summary][CMP / IF / ENT IDs][View][Test or review]

Untraced design elements: [list or "none"]. Unallocated requirements: [list or "none"].

8. Glossary and references

8.1 Glossary

TermMeaning in this document
Design subjectThe software whose design this SDD describes
Design concernA question about the design that matters to a stakeholder
Design viewpointConventions for building and reading one kind of design view
Design viewThe design described from one viewpoint
Design overlayExtra information layered on an existing view
[Term][Meaning]

8.2 References

IDDocumentVersion
REF-01[Software requirements specification][x.y]
REF-02[Architecture description][x.y]
REF-03[API specifications][x.y]
REF-04IEEE 1016-2009, Software Design Descriptions2009

Standard and licence note

Structure aligned with IEEE 1016-2009, IEEE Standard for Information Technology: Systems Design, Software Design Descriptions: identification, design stakeholders and concerns, design viewpoints, design views, design overlays and design rationale. This template is original text written for this collection and reproduces no text from the standard; obtain the standard for its normative requirements. Template licence: MIT.

संबंधित टेम्पलेट