Outline for a Software Requirements Specification without section numbers Label each requirement so that you can refer to it in your source code. Introduction Purpose Scope Definitions, Acronyms, Abbreviations References Overview General Description Product Perspective (Marketing Context) Product Functions User Characteristics General Constraints Assumptions and Dependencies Functional Requirements Overview UseCase Diagrams Class Diagrams UseCase 1 Name Actors and Goals(pre and post conditions) Scenarios Relation to other UseCases Sequence or Collaboration Diagrams ... others as appropriate Class Specification 1 Name and Type Attributes Operations/Functions/Responsibilities Relations to other Classes Constraints ... others as appropriate External Interface Requirements User Interfaces Graphical Command Lines Application Programmer Hardware Interfaces Communications Interfaces Software Interfaces Performance Requirements Design Constraints Standards Compliance Hardware Limitations Platform Limitations ... others as appropriate Attributes Security Binary Compatibility Reliability Maintainability Portability Extensibility Reusability Application Affinity/Compatibility Resource Utilization Serviceability