| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Drasil.SRSDocument
Description
Re-export functions common to all SRS-related examples.
This aims to reduce clutter at the top of every Body.hs file in the Drasil examples.
If an import is changed here, it will be changed for every example.
Synopsis
- data ChunkDB
- data System where
- SI :: forall a e h i j. (CommonIdea a, Idea a, Quantity e, Eq e, MayHaveUnit e, Concept e, Quantity h, MayHaveUnit h, Concept h, Quantity i, MayHaveUnit i, Concept i, HasUID j, Constrained j) => {..} -> System
- data PrintingInformation
- defaultConfiguration :: PrintingConfiguration
- piSys :: ChunkDB -> Stage -> PrintingConfiguration -> PrintingInformation
- type SRSDecl = [DocSection]
- data DocSection
- newtype ReqrmntSec = ReqsProg [ReqsSub]
- data ReqsSub where
- FReqsSub :: Sentence -> [LabelledContent] -> ReqsSub
- FReqsSub' :: [LabelledContent] -> ReqsSub
- NonFReqsSub :: ReqsSub
- data PDSub where
- TermsAndDefs :: Concept c => Maybe Sentence -> [c] -> PDSub
- PhySysDesc :: Idea a => a -> [Sentence] -> LabelledContent -> [Contents] -> PDSub
- Goals :: [Sentence] -> PDSub
- data ProblemDescription where
- PDProg :: Sentence -> [Section] -> [PDSub] -> ProblemDescription
- newtype SSDSec = SSDProg [SSDSub]
- data SSDSub where
- SSDProblem :: ProblemDescription -> SSDSub
- SSDSolChSpec :: SolChSpec -> SSDSub
- data SCSSub where
- Assumptions :: SCSSub
- TMs :: [Sentence] -> Fields -> SCSSub
- GDs :: [Sentence] -> Fields -> DerivationDisplay -> SCSSub
- DDs :: [Sentence] -> Fields -> DerivationDisplay -> SCSSub
- IMs :: [Sentence] -> Fields -> DerivationDisplay -> SCSSub
- Constraints :: (HasUncertainty c, Quantity c, Constrained c, HasReasVal c, MayHaveUnit c) => Sentence -> [c] -> SCSSub
- CorrSolnPpties :: (Quantity c, Constrained c) => [c] -> [Contents] -> SCSSub
- data SolChSpec where
- newtype AppndxSec = AppndxProg [Contents]
- data AuxConstntSec = AuxConsProg CI [ConstQDef]
- data DerivationDisplay
- data Emphasis
- newtype OffShelfSolnsSec = OffShelfSolnsProg [Contents]
- newtype GSDSec = GSDProg [GSDSub]
- data GSDSub where
- data IntroSec = IntroProg Sentence Sentence [IntroSub]
- data IntroSub where
- data LFunc where
- Term :: LFunc
- Defn :: LFunc
- TermExcept :: [DefinedQuantityDict] -> LFunc
- DefnExcept :: [DefinedQuantityDict] -> LFunc
- TAD :: LFunc
- data Literature
- data RefSec = RefProg Contents [RefTab]
- data RefTab where
- newtype StkhldrSec = StkhldrProg [StkhldrSub]
- data StkhldrSub where
- Client :: CI -> Sentence -> StkhldrSub
- Cstmr :: CI -> StkhldrSub
- data TConvention
- newtype TraceabilitySec = TraceabilityProg [TraceConfig]
- data TSIntro
- data TUIntro
- data Field
- type Fields = [Field]
- data InclUnits = IncludeUnits
- data Verbosity
- mkDoc :: SRSDecl -> (IdeaDict -> IdeaDict -> Sentence) -> System -> Document
- fillcdbSRS :: SRSDecl -> System -> System
- intro :: Contents
- traceMatStandard :: System -> [TraceConfig]
- tsymb :: [TSIntro] -> RefTab
- tsymb'' :: [TSIntro] -> LFunc -> RefTab
- purpDoc :: CI -> Verbosity -> [Sentence]
Chunk database types and functions
Imported from Database.Drasil
Data structure for holding all of the requisite information about a system to be used in artifact generation.
Constructors
| SI | |
Fields
| |
Instances
| HasSystem System | |
Defined in Drasil.System Methods system :: Lens' System System # authors :: Lens' System People # background :: Lens' System Background # configFiles :: Lens' System [String] # constants :: Lens' System [ConstQDef] # dataDefns :: Lens' System [DataDefinition] # genDefns :: Lens' System [GenDefn] # instModels :: Lens' System [InstanceModel] # kind :: Lens' System SystemKind # motivation :: Lens' System Motivation # purpose :: Lens' System Purpose # systemdb :: Lens' System ChunkDB # theoryModels :: Lens' System [TheoryModel] # | |
Printing Information needed to generate all documents
Imported from Language.Drasil.Printers
data PrintingInformation #
Printing information contains a database, a stage, and a printing configuration.
Instances
| HasPrintingOptions PrintingInformation | Finds the notation used for the |
Defined in Language.Drasil.Printing.PrintingInformation Methods getSetting :: Lens' PrintingInformation Notation # | |
defaultConfiguration :: PrintingConfiguration #
Default configuration is for engineering.
piSys :: ChunkDB -> Stage -> PrintingConfiguration -> PrintingInformation #
Builds a document's printing information based on the system information.
Document section types needed for a SRS
Imported from Drasil.DocDecl
type SRSDecl = [DocSection] Source #
A Software Requirements Specification Declaration is made up of all necessary sections (DocSections).
data DocSection Source #
Contains all the different sections needed for a full SRS (SRSDecl).
Constructors
| TableOfContents | Table of Contents |
| RefSec RefSec | Reference. |
| IntroSec IntroSec | Introduction. |
| StkhldrSec StkhldrSec | Stakeholders. |
| GSDSec GSDSec | General System Description. |
| SSDSec SSDSec | Specific System Description. |
| ReqrmntSec ReqrmntSec | Requirements. |
| LCsSec | Likely Changes. |
| UCsSec | Unlikely Changes. |
| TraceabilitySec TraceabilitySec | Traceability. |
| AuxConstntSec AuxConstntSec | Auxiliary Constants. |
| Bibliography | Bibliography. |
| AppndxSec AppndxSec | Appendix. |
| OffShelfSolnsSec OffShelfSolnsSec | Off the Shelf Solutions. |
newtype ReqrmntSec Source #
Requirements section (wraps ReqsSub subsections).
Requirements subsections.
Constructors
| FReqsSub :: Sentence -> [LabelledContent] -> ReqsSub | Functional requirements. |
| FReqsSub' :: [LabelledContent] -> ReqsSub | Functional requirements. |
| NonFReqsSub :: ReqsSub | Non-Functional requirements. |
Problem Description subsections.
Constructors
| TermsAndDefs :: Concept c => Maybe Sentence -> [c] -> PDSub | Terms and Definitions. |
| PhySysDesc :: Idea a => a -> [Sentence] -> LabelledContent -> [Contents] -> PDSub | Physical System Description. |
| Goals :: [Sentence] -> PDSub | Goals. |
data ProblemDescription where Source #
Problem Description section.
Constructors
| PDProg :: Sentence -> [Section] -> [PDSub] -> ProblemDescription |
Specific System Description section (wraps SSDSub subsections).
Specific System Description subsections.
Constructors
| SSDProblem :: ProblemDescription -> SSDSub | Problem description. |
| SSDSolChSpec :: SolChSpec -> SSDSub | Solution characteristics. |
Solution Characteristics Specification subsections.
Constructors
| Assumptions :: SCSSub | Assumptions. |
| TMs :: [Sentence] -> Fields -> SCSSub | Theory models. |
| GDs :: [Sentence] -> Fields -> DerivationDisplay -> SCSSub | General definitions. |
| DDs :: [Sentence] -> Fields -> DerivationDisplay -> SCSSub | Data definitions. |
| IMs :: [Sentence] -> Fields -> DerivationDisplay -> SCSSub | Instance models. |
| Constraints :: (HasUncertainty c, Quantity c, Constrained c, HasReasVal c, MayHaveUnit c) => Sentence -> [c] -> SCSSub | Constraints. |
| CorrSolnPpties :: (Quantity c, Constrained c) => [c] -> [Contents] -> SCSSub | Properties of a correct solution. |
Solution Characteristics Specification section (wraps SCSSub subsections).
Document subsection types needed for a SRS
Imported from Drasil.DocumentLanguage.Core
data AuxConstntSec Source #
Values of Auxiliary Constants section.
Constructors
| AuxConsProg CI [ConstQDef] |
data DerivationDisplay Source #
Choose whether to show or hide the derivation of an expression.
Constructors
| ShowDerivation | |
| HideDerivation |
How to handle emphasis of words.
newtype OffShelfSolnsSec Source #
Off-The-Shelf Solutions section.
Constructors
| OffShelfSolnsProg [Contents] |
General System Description section (wraps GSDSub subsections).
General System Description subsections.
Introduction section. Contents are top level followed by a list of subsections.
Introduction subsections.
Constructors
| IPurpose :: [Sentence] -> IntroSub | Describes purpose of the system. |
| IScope :: Sentence -> IntroSub | Describes scope of the system. |
| IChar :: [Sentence] -> [Sentence] -> [Sentence] -> IntroSub | Describes characteristics of the system. |
| IOrgSec :: CI -> Section -> Sentence -> IntroSub | Organises the section. |
Lens (lookup) functions (currently for TSymb).
Constructors
| Term :: LFunc | |
| Defn :: LFunc | |
| TermExcept :: [DefinedQuantityDict] -> LFunc | |
| DefnExcept :: [DefinedQuantityDict] -> LFunc | |
| TAD | |
Fields
| |
data Literature Source #
Types of literature.
Reference section. Contents are top level followed by a list of subsections.
Reference subsections (tables) made out of units or symbols (can be customized).
Constructors
| TUnits :: RefTab | Default table of units. |
| TUnits' :: [TUIntro] -> ([UnitDefn] -> LabelledContent) -> RefTab | Customized introduction. |
| TSymb :: [TSIntro] -> RefTab | Adds an introduction for a table of symbols. |
| TSymb' :: LFunc -> [TSIntro] -> RefTab | Allows Lens functions in addition to an introduction for a table of symbols. |
| TAandA :: [IdeaDict] -> RefTab | Default. |
newtype StkhldrSec Source #
Stakeholders section (wraps stakeholders subsections StkhldrSub).
Constructors
| StkhldrProg [StkhldrSub] |
data StkhldrSub where Source #
Stakeholders subsections.
Constructors
| Client :: CI -> Sentence -> StkhldrSub | May have a client. |
| Cstmr :: CI -> StkhldrSub | May have a customer. |
data TConvention Source #
Possible typographic conventions.
newtype TraceabilitySec Source #
Traceability Matices and Graphs section. Contains configurations (TraceConfig).
Constructors
| TraceabilityProg [TraceConfig] |
For creating a table of symbols introduction
Constructors
| TypogConvention [TConvention] | Typographic conventions used. |
| SymbOrder | Symbol ordering (defaults to alphabetical). |
| SymbConvention [Literature] | Symbol conventions match specified literature. |
| TSPurpose | Purpose of the Table of Symbols. |
| VectorUnits | Definition of vector components. |
For creating the table of units introduction.
Document subsection helper types
Imported from Drasil.DocumentLanguage.Definitions
Fields that should be displayed in definitions.
Determines whether to include or ignore units.
Constructors
| IncludeUnits | In description field (for other symbols). |
Refers to the verbosity of statements.
SRS Document creator functions
Imported from Drasil.DocumentLanguage
mkDoc :: SRSDecl -> (IdeaDict -> IdeaDict -> Sentence) -> System -> Document Source #
Creates a document from a document description, a title combinator function, and system information.
Helper functions to make an SRS Document
Imports from various sections of drasil-docLang
traceMatStandard :: System -> [TraceConfig] Source #
Helpers to check if given argument has more than one peice of information
Contains traceability matrix assumptions, other assumptions, refinement, and other requirements.
tsymb :: [TSIntro] -> RefTab Source #
Default is term and given introduction.
Table of symbols constructor.