diff --git a/code/drasil-data/lib/Data/Drasil/Concepts/Documentation.hs b/code/drasil-data/lib/Data/Drasil/Concepts/Documentation.hs index f92308f00ac..5e4cd1eb07b 100644 --- a/code/drasil-data/lib/Data/Drasil/Concepts/Documentation.hs +++ b/code/drasil-data/lib/Data/Drasil/Concepts/Documentation.hs @@ -53,8 +53,8 @@ doccon = [abbAcc, abbreviation, acronym, analysis, appendix, aspect, body, -- | Collects all documentation-related common ideas (like a concept, but with no definition). doccon' :: [CI] doccon' = [assumption, dataConst, dataDefn, desSpec, genDefn, goalStmt, inModel, - likelyChg, learnObj, mg, mis, notebook, physSyst, requirement, srs, thModel, typUnc, - unlikelyChg] + likelyChg, learnObj, mg, mis, physSyst, requirement, srs, thModel, typUnc, + unlikelyChg, notebook, refBy, refName] assumption, desSpec, goalStmt, dataConst, likelyChg, learnObj, unlikelyChg, physSyst, mg, mis, typUnc, sec, refBy, refName :: CI @@ -74,7 +74,7 @@ unlikelyChg = commonIdeaWithDict "unlikelyChg" (cn' "unlikely change") physSyst = commonIdeaWithDict "physSyst" (combineNINI physicalSystem description) "PS" [softEng] mis = commonIdeaWithDict "mis" (fterms compoundPhrase moduleInterface specification) "MIS" [softEng] mg = commonIdeaWithDict "mg" (fterms compoundPhrase module_ guide) "MG" [softEng] -typUnc = commonIdeaWithDict "typUnc" (cn' "typical uncertainty") "Uncert." [softEng] +typUnc = commonIdeaWithDict "typUnc" (cnIES "typical uncertainty") "Uncert." [softEng] sec = commonIdeaWithDict "section" (cn' "section") "Sec" [documentc] refBy = commonIdeaWithDict "refBy" (cn "referenced by") "RefBy" [documentc] refName = commonIdeaWithDict "refName" (cn' "reference name") "Refname" [documentc] diff --git a/code/drasil-docLang/lib/Drasil/DocumentLanguage.hs b/code/drasil-docLang/lib/Drasil/DocumentLanguage.hs index 6d4fc0c78f5..3d29ee3e901 100644 --- a/code/drasil-docLang/lib/Drasil/DocumentLanguage.hs +++ b/code/drasil-docLang/lib/Drasil/DocumentLanguage.hs @@ -1,4 +1,4 @@ -{-# Language TupleSections #-} +{-# Language TupleSections, LambdaCase #-} --------------------------------------------------------------------------- -- | Start the process of moving away from Document as the main internal -- representation of information, to something more informative. @@ -10,7 +10,7 @@ module Drasil.DocumentLanguage (mkDoc, findAllRefs) where import Control.Lens ((^.), set) import Data.Function (on) import Data.List (nub, sortBy) -import Data.Maybe (maybeToList, mapMaybe) +import Data.Maybe (maybeToList, mapMaybe, isJust) import qualified Data.Map as Map (keys) import Drasil.DocDecl (SRSDecl, mkDocDesc) @@ -25,15 +25,17 @@ import Drasil.DocumentLanguage.Core (AppndxSec(..), AuxConstntSec(..), import Drasil.DocumentLanguage.Definitions (ddefn, derivation, instanceModel, gdefn, tmodel) import Drasil.Document.Contents(mkEnumSimpleD, foldlSP) -import Drasil.ExtractDocDesc (getDocDesc, egetDocDesc) +import Drasil.ExtractDocDesc (getDocDesc, egetDocDesc, getSec) import Drasil.TraceTable (generateTraceMap) import Language.Drasil import Language.Drasil.Display (compsy) +import Utils.Drasil (splitAtAll, mergeAll) import Drasil.Database (findOrErr, ChunkDB, insertAll, UID, HasUID(..), invert) import Drasil.Database.SearchTools (findAllDataDefns, findAllGenDefns, - findAllInstMods, findAllTheoryMods, findAllConcInsts, findAllLabelledContent) + findAllInstMods, findAllTheoryMods, findAllConcInsts, TermAbbr, shortForm, + termResolve', findAllLabelledContent) import Drasil.System (System(SI), whatsTheBigIdea, _systemdb, HasSystem(..)) import Drasil.GetChunks (ccss, ccss', citeDB) @@ -66,11 +68,12 @@ import Drasil.DocumentLanguage.TraceabilityGraph (traceyGraphGetRefs, genTraceGr import Drasil.Sections.TraceabilityMandGs (traceMatStandard) import Drasil.Sections.ReferenceMaterial (emptySectSentPlu) -import Drasil.Metadata as Doc (software) -import qualified Data.Drasil.Concepts.Documentation as Doc (likelyChg, section_, - unlikelyChg) +import Drasil.Metadata (software, dataDefn, genDefn, inModel, thModel, requirement) +import Data.Drasil.Concepts.Documentation (likelyChg, section_, unlikelyChg, assumption, goalStmt, refName, refBy) import qualified Data.Map.Strict as M +import Language.Drasil.Development (shortdep) + -- * Main Function -- | Creates a document from a 'System', a document description ('SRSDecl'), and @@ -177,11 +180,27 @@ getUnitLup m c = getUnit (findOrErr (c ^. uid) m :: DefinedQuantityDict) -- | Helper for creating the different document sections. mkSections :: System -> DocDesc -> [Section] -mkSections si dd = map doit dd +mkSections si dd = + let + splitByTAandA :: [[DocSection]] + refSecPlans :: [DocSection] + (splitByTAandA, refSecPlans) = splitAtAll (\case {RefSec _ -> True; _ -> False}) dd + + splitSecs :: [[Section]] + splitSecs = map (map doit) splitByTAandA + + refSecs :: [Section] + refSecs = map + (\case { + RefSec rs -> mkRefSec si dd rs $ concat splitSecs; + _ -> error "A non-RefSec got captured in the RefSecs list!"}) + refSecPlans + in + mergeAll splitSecs refSecs where doit :: DocSection -> Section doit TableOfContents = mkToC dd - doit (RefSec rs) = mkRefSec si dd rs + doit (RefSec _) = error "RefSecs should have been filtered out!" doit (IntroSec is) = mkIntroSec si is doit (StkhldrSec sts) = mkStkhldrSec sts doit (SSDSec ss) = mkSSDSec si ss @@ -207,8 +226,8 @@ mkToC dd = SRS.tOfCont [intro, UlC $ ulcc $ Enumeration $ Bullet $ map ((, Nothi -- | Helper for creating the reference section and subsections. -- Includes Table of Symbols, Units and Abbreviations and Acronyms. -mkRefSec :: System -> DocDesc -> RefSec -> Section -mkRefSec si dd (RefProg c l) = SRS.refMat [c] (map (mkSubRef si) l) +mkRefSec :: System -> DocDesc -> RefSec -> [Section] -> Section +mkRefSec si dd (RefProg c l) renderedSecs = SRS.refMat [c] (map (mkSubRef si) l) where mkSubRef :: System -> RefTab -> Section mkSubRef si' TUnits = mkSubRef si' $ TUnits' defaultTUI tOfUnitSIName @@ -224,11 +243,24 @@ mkRefSec si dd (RefProg c l) = SRS.refMat [c] (map (mkSubRef si) l) mkSubRef SI {_systemdb = cdb} (TSymb' f con) = mkTSymb (ccss (getDocDesc dd) (egetDocDesc dd) cdb) f con - mkSubRef _ (TAandA ideas) = + mkSubRef SI {_systemdb = cdb} TAandA = SRS.tOfAbbAcc - [LlC $ tableAbbAccGen $ nub ideas] + [LlC $ tableAbbAccGen $ collectDocumentAbbreviations renderedSecs cdb] [] +collectDocumentAbbreviations :: [Section] -> ChunkDB -> [TermAbbr] +collectDocumentAbbreviations renderedSecs cdb = + filter (isJust . shortForm) allTerms + where + -- Terms found in the document using the list of `Sentence`s extracted from + -- the sections. + foundInDoc = concatMap shortdep $ concatMap getSec renderedSecs + -- Terms that could not be found in `Sentence`s, but are important to + -- include in the table of abbreviations and acronyms. + missingFromDocHACK = map (^. uid) [assumption, dataDefn, genDefn, goalStmt, + inModel, requirement, thModel, refName, refBy] + allTerms = map (termResolve' cdb) $ nub (foundInDoc ++ missingFromDocHACK) + -- | Helper for creating the table of symbols. mkTSymb :: (Quantity e, Concept e, Eq e, MayHaveUnit e) => [e] -> LFunc -> [TSIntro] -> Section @@ -344,19 +376,19 @@ mkReqrmntSec (ReqsProg l) = R.reqF $ map mkSubs l -- | Helper for making the Likely Changes section. mkLCsSec :: LCsSec -> Section -mkLCsSec (LCsProg c) = SRS.likeChg (introChgs Doc.likelyChg c: mkEnumSimpleD c) [] +mkLCsSec (LCsProg c) = SRS.likeChg (introChgs likelyChg c: mkEnumSimpleD c) [] -- ** Unlikely Changes -- | Helper for making the Unikely Changes section. mkUCsSec :: UCsSec -> Section -mkUCsSec (UCsProg c) = SRS.unlikeChg (introChgs Doc.unlikelyChg c : mkEnumSimpleD c) [] +mkUCsSec (UCsProg c) = SRS.unlikeChg (introChgs unlikelyChg c : mkEnumSimpleD c) [] -- | Intro paragraph for likely and unlikely changes -introChgs :: NamedIdea n => n -> [ConceptInstance] -> Contents +introChgs :: Idea n => n -> [ConceptInstance] -> Contents introChgs xs [] = mkParagraph $ emptySectSentPlu [xs] -introChgs xs _ = foldlSP [S "This", phrase Doc.section_, S "lists the", - plural xs, S "to be made to the", phrase Doc.software] +introChgs xs _ = foldlSP [S "This", phrase section_, S "lists the", + introduceAbbPlrl xs, S "to be made to the", phrase software] -- ** Traceability diff --git a/code/drasil-docLang/lib/Drasil/DocumentLanguage/Core.hs b/code/drasil-docLang/lib/Drasil/DocumentLanguage/Core.hs index 53df0f5d84e..46cdec62e42 100644 --- a/code/drasil-docLang/lib/Drasil/DocumentLanguage/Core.hs +++ b/code/drasil-docLang/lib/Drasil/DocumentLanguage/Core.hs @@ -53,7 +53,7 @@ data RefTab where -- | Allows Lens functions in addition to an introduction for a table of symbols. TSymb' :: LFunc -> [TSIntro] -> RefTab -- | Default. - TAandA :: [IdeaDict] -> RefTab + TAandA :: RefTab -- add more here -- | For creating a table of symbols introduction @@ -113,7 +113,7 @@ data IntroSub where -- | Describes characteristics of the system. IChar :: [Sentence] -> [Sentence] -> [Sentence] -> IntroSub -- | Organises the section. - IOrgSec :: CI -> Section -> Sentence -> IntroSub + IOrgSec :: CI -> Section -> Maybe Sentence -> IntroSub -- ** Stakeholders Section diff --git a/code/drasil-docLang/lib/Drasil/ExtractDocDesc.hs b/code/drasil-docLang/lib/Drasil/ExtractDocDesc.hs index 4600093c01a..ef3eab83d7b 100644 --- a/code/drasil-docLang/lib/Drasil/ExtractDocDesc.hs +++ b/code/drasil-docLang/lib/Drasil/ExtractDocDesc.hs @@ -1,16 +1,21 @@ {-# LANGUAGE LambdaCase, Rank2Types #-} -- | Defines functions to extract certain kinds of information from a document. -- Mainly used to pull the 'UID's of chunks out of 'Sentence's and 'Expr's. -module Drasil.ExtractDocDesc (getDocDesc, egetDocDesc, sentencePlate) where +module Drasil.ExtractDocDesc ( + getDocDesc, egetDocDesc, + sentencePlate, + getSec +) where import Control.Lens((^.)) +import Data.Functor.Constant (Constant(Constant)) +import Data.Generics.Multiplate (appendPlate, foldFor, purePlate, preorderFold) + import Drasil.DocumentLanguage.Core import Drasil.Sections.SpecificSystemDescription (inDataConstTbl, outDataConstTbl) import Language.Drasil hiding (Manual, Verb) import Theory.Drasil - -import Data.Functor.Constant (Constant(Constant)) -import Data.Generics.Multiplate (appendPlate, foldFor, purePlate, preorderFold) +import Data.Maybe (maybeToList) -- | Creates a section contents plate that contains diferrent system subsections. secConPlate :: Monoid b => (forall a. HasContents a => [a] -> b) -> @@ -20,8 +25,6 @@ secConPlate mCon mSec = preorderFold $ purePlate { introSub = Constant <$> \case (IOrgSec _ s _) -> mSec [s] _ -> mempty, - --gsdSec = Constant <$> \case - -- (GSDProg _) -> mempty, gsdSub = Constant <$> \case (SysCntxt c) -> mCon c (UsrChars c) -> mCon c @@ -100,20 +103,20 @@ egetCon _ = [] sentencePlate :: Monoid a => ([Sentence] -> a) -> DLPlate (Constant a) sentencePlate f = appendPlate (secConPlate (f . concatMap getCon') $ f . concatMap getSec) $ preorderFold $ purePlate { - introSec = Constant . f <$> \(IntroProg s1 s2 _) -> [s1, s2], + introSec = Constant . f <$> \(IntroProg s1 s2 s3) -> [s1, s2] ++ concatMap getIntroSub s3, introSub = Constant . f <$> \case (IPurpose s) -> s (IScope s) -> [s] (IChar s1 s2 s3) -> concat [s1, s2, s3] - (IOrgSec _ _ s1) -> [s1], + (IOrgSec _ s1 s2) -> maybeToList s2 ++ getSec s1, stkSub = Constant . f <$> \case (Client _ s) -> [s] (Cstmr _) -> [], - pdSec = Constant . f <$> \(PDProg s _ _) -> [s], + pdSec = Constant . f <$> \(PDProg s secs pds) -> s : concatMap getSec secs ++ concatMap getPDSub pds, pdSub = Constant . f <$> \case (TermsAndDefs Nothing cs) -> def cs (TermsAndDefs (Just s) cs) -> s : def cs - (PhySysDesc _ s _ _) -> s + (PhySysDesc _ s lc cs) -> s ++ getLC lc ++ getC cs (Goals s c) -> s ++ def c, scsSub = Constant . f <$> \case (Assumptions c) -> def c @@ -121,12 +124,12 @@ sentencePlate f = appendPlate (secConPlate (f . concatMap getCon') $ f . concatM def (x ^. defined_quant) ++ notes [x] ++ r (x ^. valid_context)) in r t (DDs s _ d _) -> s ++ der d ++ notes d - (GDs s _ d _) -> def d ++ s ++ der d ++ notes d + (GDs s _ d _) -> s ++ def d ++ der d ++ notes d (IMs s _ d _) -> s ++ der d ++ notes d (Constraints s _) -> [s] - (CorrSolnPpties _ _) -> [], + (CorrSolnPpties _ cs) -> getC cs, reqSub = Constant . f <$> \case - (FReqsSub c _) -> def c + (FReqsSub c lcs) -> def c ++ concatMap getLC lcs (NonFReqsSub c) -> def c, lcsSec = Constant . f <$> \(LCsProg c) -> def c, ucsSec = Constant . f <$> \(UCsProg c) -> def c, @@ -136,17 +139,41 @@ sentencePlate f = appendPlate (secConPlate (f . concatMap getCon') $ f . concatM } where def :: Definition a => [a] -> [Sentence] def = map (^. defn) + + getIntroSub :: IntroSub -> [Sentence] + getIntroSub (IPurpose ss) = ss + getIntroSub (IScope s) = [s] + getIntroSub (IChar s1 s2 s3) = s1 ++ s2 ++ s3 + getIntroSub (IOrgSec _ s1 s2) = maybeToList s2 ++ getSec s1 + der :: MayHaveDerivation a => [a] -> [Sentence] der = concatMap (getDerivSent . (^. derivations)) + getDerivSent :: Maybe Derivation -> [Sentence] getDerivSent Nothing = [] getDerivSent (Just (Derivation h s)) = h : s + notes :: HasAdditionalNotes a => [a] -> [Sentence] notes = concatMap (^. getNotes) + getPDSub :: PDSub -> [Sentence] + getPDSub (TermsAndDefs ms c) = def c ++ maybe [] pure ms + getPDSub (PhySysDesc _ s lc cs) = s ++ getLC lc ++ getC cs + getPDSub (Goals s c) = s ++ def c + + getC :: [Contents] -> [Sentence] + getC = concatMap getCon' + + getLC :: LabelledContent -> [Sentence] + getLC = getCon . (^. accessContents) + -- | Extracts 'Sentence's from a document description. getDocDesc :: DocDesc -> [Sentence] getDocDesc = fmGetDocDesc (sentencePlate id) +-- ^ FIXME: We want all Sentences from a document (not necessarily a document +-- description), so we use this function. But 'sentencePlate' does not include +-- all 'Sentence's! Some only appear when rendering (at least, after +-- `mkSections` is used on a `DocDesc` to create `[Section]`). -- | Extracts 'Sentence's from a 'Section'. getSec :: Section -> [Sentence] @@ -171,10 +198,9 @@ getCon (DerivBlock h d) = h : concatMap getCon d getCon (Enumeration lst) = getLT lst getCon (Figure l _ _ _) = [l] getCon (Bib bref) = getBib bref -getCon (Graph [(s1, s2)] _ _ l) = [s1, s2, l] -getCon Graph{} = [] -getCon (Defini _ []) = [] -getCon (Defini dt (hd:fs)) = concatMap getCon' (snd hd) ++ getCon (Defini dt fs) +getCon (Graph sss _ _ l) = let (ls, rs) = unzip sss + in l : ls ++ rs +getCon (Defini _ ics) = concatMap (concatMap getCon' . snd) ics -- | Get the bibliography from something that has a field. getBib :: (HasFields c) => [c] -> [Sentence] @@ -206,10 +232,10 @@ getField Year{} = EmptyS -- | Translates different types of lists into a 'Sentence' form. getLT :: ListType -> [Sentence] -getLT (Bullet it) = concatMap (getIL . fst) it -getLT (Numeric it) = concatMap (getIL . fst) it -getLT (Simple lp) = concatMap getLP lp -getLT (Desc lp) = concatMap getLP lp +getLT (Bullet it) = concatMap (getIL . fst) it +getLT (Numeric it) = concatMap (getIL . fst) it +getLT (Simple lp) = concatMap getLP lp +getLT (Desc lp) = concatMap getLP lp getLT (Definitions lp) = concatMap getLP lp -- | Translates a 'ListTuple' into 'Sentence's. diff --git a/code/drasil-docLang/lib/Drasil/Sections/Introduction.hs b/code/drasil-docLang/lib/Drasil/Sections/Introduction.hs index 166a69b55b5..7a655d4faa2 100644 --- a/code/drasil-docLang/lib/Drasil/Sections/Introduction.hs +++ b/code/drasil-docLang/lib/Drasil/Sections/Introduction.hs @@ -3,11 +3,13 @@ module Drasil.Sections.Introduction (orgSec, introductionSection, purposeOfDoc, scopeOfRequirements, charIntRdrF, purpDoc) where -import Language.Drasil +import Data.Maybe (maybeToList) + +import Language.Drasil hiding (organization) import qualified Drasil.DocLang.SRS as SRS (intro, prpsOfDoc, scpOfReq, charOfIR, orgOfDoc, goalStmt, thModel, inModel, sysCon) import Drasil.DocumentLanguage.Definitions(Verbosity(..)) -import Language.Drasil.Chunk.Concept.NamedCombinators +import Language.Drasil.Chunk.Concept.NamedCombinators (andThe, the) import Drasil.DocumentLanguage.Core (IntroSub(..)) import qualified Language.Drasil.Development as D import qualified Language.Drasil.Sentence.Combinators as S @@ -15,17 +17,16 @@ import Drasil.Sections.ReferenceMaterial(emptySectSentPlu, emptySectSentSing) import Drasil.Sentence.Combinators (refineChain) import Drasil.Document.Contents (foldlSP, foldlSP_) -import Drasil.Metadata (inModel, thModel, requirement, srs) +import Drasil.Metadata (requirement, srs, inModel, thModel) import Data.Drasil.Concepts.Computation (algorithm) -import Data.Drasil.Concepts.Documentation as Doc (assumption, characteristic, - decision, definition, desSpec, design, designDoc, document, documentation, - environment, goal, goalStmt, implementation, intReader, model, - organization, purpose, scope, section_, softwareDoc, - softwareVAV, theory, user, vavPlan, problem, problemIntro, - information, systemConstraint, template) +import Data.Drasil.Concepts.Documentation (assumption, characteristic, decision, + definition, desSpec, design, designDoc, document, documentation, environment, + goal, goalStmt, implementation, information, intReader, model, organization, + problem, problemIntro, purpose, scope, section_, softwareDoc, softwareVAV, + systemConstraint, template, theory, user, vavPlan) import Data.Drasil.Citations (parnasClements1986, smithEtAl2007, smithKoothoor2016, smithLai2005, koothoor2013) -import Data.Drasil.Software.Products +import Data.Drasil.Software.Products (sciCompS) ----------------------- -- Constants -- @@ -51,8 +52,8 @@ developmentProcessParagraph = foldlSent [S "This", phrase document, S "is still to", Quote (S "fake"), S "a rational", phrase design, S "process"] --- | 'Sentence' containing the subsections of the Introduction. --- Takes a list of IntroSub and generates a sentence listing only the subsections that exist. +-- | 'Sentence' containing the subsections of the Introduction. Takes a list of +-- IntroSub and generates a sentence listing only the subsections that exist. introductionSubsections :: [IntroSub] -> Sentence introductionSubsections subs = let subDescriptions = concatMap introSubToSentence subs @@ -65,7 +66,7 @@ introSubToSentence :: IntroSub -> [Sentence] introSubToSentence (IPurpose _) = [] -- Purpose is already mentioned as "purpose of this document" introSubToSentence (IScope _) = [S.the_ofThe (phrase scope) (plural requirement)] introSubToSentence IChar {} = [S.the_ofThe (plural characteristic) (phrase intReader)] -introSubToSentence IOrgSec {} = [S.the_ofThe (phrase Doc.organization) (phrase document)] +introSubToSentence IOrgSec {} = [S.the_ofThe (phrase organization) (phrase document)] ------------------------- -- -- @@ -170,29 +171,33 @@ intReaderIntro progName assumed topic asset sectionRef = -- | Constructor for the Organization of the Document section. Parameters should be -- an introduction ('Sentence'), a resource for a bottom up approach ('NamedIdea'), reference to that resource ('Section'), -- and any other relevant information ('Sentence'). -orgSec :: NamedIdea c => c -> Section -> Sentence -> Section +orgSec :: NamedIdea c => c -> Section -> Maybe Sentence -> Section orgSec b s t = SRS.orgOfDoc (orgIntro b s t) [] --- | Helper function that creates the introduction for the Organization of the Document section. Parameters should be --- an introduction ('Sentence'), a resource for a bottom up approach ('NamedIdea'), reference to that resource ('Section'), --- and any other relevant information ('Sentence'). -orgIntro :: NamedIdea c => c -> Section -> Sentence -> [Contents] -orgIntro bottom bottomSec trailingSentence = [foldlSP [ - orgOfDocIntro, S "The presentation follows the standard pattern of presenting" +:+. - foldlList Comma List (map plural [nw Doc.goal, nw theory, nw definition, nw assumption]), - S "For readers that would like a more bottom up approach" `sC` - S "they can start reading the", namedRef bottomSec (plural bottom)`S.and_` - S "trace back to find any additional information they require"], - folder [refineChain (zip [goalStmt, thModel, inModel] - [SRS.goalStmt [] [], SRS.thModel [] [], SRS.inModel [] []]), trailingSentence]] +-- | Helper function that creates the introduction for the Organization of the +-- Document section. Parameters should be an introduction ('Sentence'), a +-- resource for a bottom up approach ('NamedIdea'), reference to that resource +-- ('Section'), and any other relevant information ('Sentence'). +orgIntro :: NamedIdea c => c -> Section -> Maybe Sentence -> [Contents] +orgIntro bottom bottomSec trailingSentence = + [ foldlSP [ + orgOfDocIntro, S "The presentation follows the standard pattern of presenting" +:+. + foldlList Comma List (map plural [nw goal, nw theory, nw definition, nw assumption]), + S "For readers that would like a more bottom up approach" `sC` + S "they can start reading the", namedRef bottomSec (plural bottom)`S.and_` + S "trace back to find any additional information they require" + ] + , foldlSP_ (introS : maybeToList trailingSentence) + ] where - folder = case trailingSentence of - EmptyS -> foldlSP_ - _ -> foldlSP + -- FIXME: The below abuses `SRS.goalStmt`, `SRS.thModel`, etc. + introS = refineChain (zip + [goalStmt, thModel, inModel] + [SRS.goalStmt [] [], SRS.thModel [] [], SRS.inModel [] []]) orgOfDocIntro :: Sentence orgOfDocIntro = foldlSent - [D.toSent $ atStartNP (the Doc.organization), S "of this", phrase document, + [D.toSent $ atStartNP (the organization), S "of this", phrase document, S "follows the", phrase template, S "for an", short srs, S "for", phrase sciCompS, S "proposed by", foldlList Comma List $ map refS [koothoor2013, smithLai2005, smithEtAl2007 , smithKoothoor2016]] diff --git a/code/drasil-docLang/lib/Drasil/Sections/Requirements.hs b/code/drasil-docLang/lib/Drasil/Sections/Requirements.hs index 9a56d560468..2dc76c5678c 100644 --- a/code/drasil-docLang/lib/Drasil/Sections/Requirements.hs +++ b/code/drasil-docLang/lib/Drasil/Sections/Requirements.hs @@ -28,7 +28,7 @@ import Theory.Drasil (HasOutput(output)) import Drasil.Metadata (software) import Data.Drasil.Concepts.Documentation (description, funcReqDom, nonFuncReqDom, functionalRequirement, input_, nonfunctionalRequirement, output_, section_, - symbol_, value, reqInput, code, propOfCorSol, vavPlan, mg, mis) + symbol_, value, reqInput, code, propOfCorSol, vavPlan, mg, mis, likelyChg) import Data.Drasil.Concepts.Math (unit_) import qualified Drasil.DocLang.SRS as SRS @@ -96,7 +96,7 @@ nfReqIntro _ = mkParagraph $ reqIntroStart +:+. nfrReqIntroBody -- and a label ('String'). mkMaintainableNFR :: String -> Integer -> String -> ConceptInstance mkMaintainableNFR refAddress percent lbl = cic refAddress (foldlSent [ - S "If a likely change is made" `S.toThe` + S "If a", phrase likelyChg, S "is made" `S.toThe` S "finished software, it will take at most", addPercent percent `S.ofThe` S "original development time,", S "assuming the same development resources are available" diff --git a/code/drasil-docLang/lib/Drasil/Sections/SpecificSystemDescription.hs b/code/drasil-docLang/lib/Drasil/Sections/SpecificSystemDescription.hs index 6fadec6ab3a..88fd7b95ba8 100644 --- a/code/drasil-docLang/lib/Drasil/Sections/SpecificSystemDescription.hs +++ b/code/drasil-docLang/lib/Drasil/Sections/SpecificSystemDescription.hs @@ -31,11 +31,12 @@ import Data.Drasil.Concepts.Documentation (assumption, column, constraint, datum, datumConstraint, inDatumConstraint, outDatumConstraint, definition, element, general, goalStmt, information, input_, limitation, model, output_, physical, physicalConstraint, physicalSystem, physSyst, problem, - problemDescription, propOfCorSol, purpose, quantity, scope, + problemDescription, propOfCorSol, purpose, quantity, refBy, scope, section_, softwareConstraint, solutionCharacteristic, symbol_, system, table_, term_, theory, typUnc, uncertainty, user, value, variable) import qualified Data.Drasil.Concepts.Documentation as DCD (sec) import Data.Drasil.Concepts.Math (equation, parameter) +import Drasil.Document.Contents (enumBulletU, enumSimpleU, foldlSP, foldlSP_) import Drasil.Metadata (inModel, thModel, dataDefn, genDefn, requirement, specification) import Drasil.System (System) import Language.Drasil hiding (variable) @@ -44,8 +45,6 @@ import qualified Language.Drasil.NounPhrase.Combinators as NP import qualified Language.Drasil.Sentence.Combinators as S import qualified Language.Drasil.Development as D --- local -import Drasil.Document.Contents (enumBulletU, enumSimpleU, foldlSP, foldlSP_) import Drasil.DocumentLanguage.Definitions (helperRefs) import qualified Drasil.DocLang.SRS as SRS import Drasil.Sections.ReferenceMaterial(emptySectSentPlu) @@ -246,6 +245,7 @@ auxSpecSent :: Sentence auxSpecSent = foldlSent [S "The", namedRef (SRS.valsOfAuxCons [] []) $ S "auxiliary constants", S "give", plural value `S.the_ofThe` phrase specification, plural parameter, S "used in the", namedRef (inDataConstTbl ([] :: [UncertQ])) $ titleize' inDatumConstraint +:+ titleize table_] + -- FIXME: inDataConstTbl is abused to get a table reference label. -- | Creates a Data Constraints table. Takes in Columns, reference, and a label. mkDataConstraintTable :: [(Sentence, [Sentence])] -> UID -> Sentence -> LabelledContent @@ -306,7 +306,7 @@ helperCI :: ConceptInstance -> System -> ConceptInstance helperCI a c = over defn (\x -> foldlSent_ [x, refby $ helperRefs a c]) a where refby EmptyS = EmptyS - refby sent = sParen $ S "RefBy:" +:+. sent + refby sent = sParen $ short refBy :+: S ":" +:+. sent -- | Section stubs for implicit referencing of different models and definitions. tmStub, ddStub, gdStub, imStub, pdStub :: Section diff --git a/code/drasil-docLang/lib/Drasil/Sections/TableOfAbbAndAcronyms.hs b/code/drasil-docLang/lib/Drasil/Sections/TableOfAbbAndAcronyms.hs index ce22eef9a20..ccf07410616 100644 --- a/code/drasil-docLang/lib/Drasil/Sections/TableOfAbbAndAcronyms.hs +++ b/code/drasil-docLang/lib/Drasil/Sections/TableOfAbbAndAcronyms.hs @@ -6,28 +6,25 @@ import Control.Lens ((^.)) import Data.Function (on) import Data.List (sortBy) -import Data.Drasil.Concepts.Documentation (abbreviation, fullForm, abbAcc) -import Drasil.Database (HasUID(..)) import Language.Drasil -import Utils.Drasil (mkTable) - +import Language.Drasil.Development (toSent) +import Drasil.Database (HasUID(..)) +import Drasil.Database.SearchTools (TermAbbr (shortForm), longForm) +import Data.Drasil.Concepts.Documentation (abbreviation, fullForm, abbAcc) import Drasil.Sections.ReferenceMaterial (emptySectSentPlu) +import Utils.Drasil (mkTable) --- | Helper function that gets the acronym out of an 'Idea'. -select :: (Idea s) => [s] -> [(String, s)] -select [] = [] -select (x:xs) = case getA x of - Nothing -> select xs - Just y -> (y, x) : select xs - --- | The actual table creation function. -tableAbbAccGen :: (Idea s) => [s] -> LabelledContent +-- | Create a table of abbreviations from the given 'TermAbbr's. If the list is +-- empty, it will return a paragraph saying there are no abbreviations or +-- acronyms. It is assumed that the provided 'TermAbbr's are unique and all have +-- a short form. +tableAbbAccGen :: [TermAbbr] -> LabelledContent tableAbbAccGen [] = mkRawLC (Paragraph $ emptySectSentPlu [abbAcc]) tableAbbAccRef -tableAbbAccGen ls = let chunks = sortBy (compare `on` fst) $ select ls in +tableAbbAccGen ls = let chunks = sortBy (compare `on` shortForm) ls in mkRawLC (Table (map titleize [abbreviation, fullForm]) (mkTable - [\(a,_) -> S a, - \(_,b) -> titleize b] + [maybe EmptyS S . shortForm, + toSent . titleizeNP . longForm] chunks) (titleize' abbAcc) True) tableAbbAccRef diff --git a/code/drasil-docLang/lib/Drasil/Sections/TableOfContents.hs b/code/drasil-docLang/lib/Drasil/Sections/TableOfContents.hs index 9aefd9585fd..940805eecd8 100644 --- a/code/drasil-docLang/lib/Drasil/Sections/TableOfContents.hs +++ b/code/drasil-docLang/lib/Drasil/Sections/TableOfContents.hs @@ -95,7 +95,7 @@ mktRefSec (RefProg _ l) = mktSubRef (TUnits' _ _) = namedRef SRS.tOfUnitLabel $ titleize' Doc.tOfUnit mktSubRef (TSymb _) = namedRef SRS.tOfSymbLabel $ titleize' Doc.tOfSymb mktSubRef (TSymb' _ _) = namedRef SRS.tOfSymbLabel $ titleize' Doc.tOfSymb - mktSubRef (TAandA _) = namedRef SRS.tOfAbbAccLabel $ titleize' Doc.abbAcc + mktSubRef TAandA = namedRef SRS.tOfAbbAccLabel $ titleize' Doc.abbAcc -- | Helper for creating the 'Introduction' section ToC entry mktIntroSec :: IntroSec -> ItemType diff --git a/code/drasil-example/dblpend/lib/Drasil/DblPend/Body.hs b/code/drasil-example/dblpend/lib/Drasil/DblPend/Body.hs index ff13f496020..ad5f4385417 100644 --- a/code/drasil-example/dblpend/lib/Drasil/DblPend/Body.hs +++ b/code/drasil-example/dblpend/lib/Drasil/DblPend/Body.hs @@ -40,7 +40,7 @@ import Drasil.DblPend.GenDefs (genDefns) import Drasil.DblPend.LabelledContent (figMotion, sysCtxFig1, labelledContent) import Drasil.DblPend.MetaConcepts (progName) import Drasil.DblPend.Unitals (lenRod_1, lenRod_2, symbols, inputs, outputs, - inConstraints, outConstraints, acronyms, constants) + inConstraints, outConstraints, constants) import Drasil.DblPend.Requirements (funcReqs, nonFuncReqs, funcReqsTables) import Drasil.DblPend.References (citations) @@ -51,14 +51,14 @@ mkSRS = [TableOfContents, -- This creates the Table of Contents [ TUnits -- Adds table of unit section with a table frame , tsymb [TSPurpose, TypogConvention [Vector Bold], SymbOrder, VectorUnits] -- Adds table of symbol section with a table frame -- introductory blob (TSPurpose), TypogConvention, bolds vector parameters (Vector Bold), orders the symbol, and adds units to symbols - , TAandA abbreviationsList -- Add table of abbreviation and acronym section + , TAandA -- Add table of abbreviation and acronym section ], IntroSec $ IntroProg (justification progName) (phrase progName) [IPurpose $ purpDoc progName Verbose, IScope scope, IChar [] charsOfReader [], - IOrgSec inModel (SRS.inModel [] []) EmptyS], + IOrgSec inModel (SRS.inModel [] []) Nothing], GSDSec $ GSDProg [ SysCntxt [sysCtxIntro progName, LlC sysCtxFig1, sysCtxDesc, sysCtxList progName], @@ -118,13 +118,6 @@ ideaDicts = -- CIs nw progName : map nw mathcon' ++ map nw physicCon' -abbreviationsList :: [IdeaDict] -abbreviationsList = - -- DefinedQuantityDict abbreviations - map nw symbols ++ - -- Other acronyms/abbreviations - nw progName : map nw acronyms - conceptChunks :: [ConceptChunk] conceptChunks = -- ConceptChunks diff --git a/code/drasil-example/gamephysics/lib/Drasil/GamePhysics/Body.hs b/code/drasil-example/gamephysics/lib/Drasil/GamePhysics/Body.hs index 47fcf04a0c6..7570c24d94d 100644 --- a/code/drasil-example/gamephysics/lib/Drasil/GamePhysics/Body.hs +++ b/code/drasil-example/gamephysics/lib/Drasil/GamePhysics/Body.hs @@ -34,7 +34,7 @@ import qualified Data.Drasil.Quantities.Physics as QP (force, time) import Drasil.GamePhysics.Assumptions (assumptions) import Drasil.GamePhysics.Changes (likelyChgs, unlikelyChgs) -import Drasil.GamePhysics.Concepts (acronyms, threeD, twoD, centreMass) +import Drasil.GamePhysics.Concepts (threeD, twoD, centreMass) import Drasil.GamePhysics.DataDefs (dataDefs) import Drasil.GamePhysics.Goals (goals) import Drasil.GamePhysics.LabelledContent (labelledContent, sysCtxFig1) @@ -49,12 +49,12 @@ import Drasil.GamePhysics.GenDefs (generalDefns) mkSRS :: SRSDecl mkSRS = [TableOfContents, - RefSec $ RefProg intro [TUnits, tsymb tableOfSymbols, TAandA abbreviationsList], + RefSec $ RefProg intro [TUnits, tsymb tableOfSymbols, TAandA ], IntroSec $ IntroProg para1_introduction_intro (short progName) [IPurpose $ purpDoc progName Verbose, IScope scope, IChar [] [S "rigid body dynamics", phrase highSchoolCalculus] [], - IOrgSec inModel (SRS.inModel [] []) EmptyS], + IOrgSec inModel (SRS.inModel [] []) Nothing], GSDSec $ GSDProg [ SysCntxt [sysCtxIntro, LlC sysCtxFig1, sysCtxDesc, sysCtxList], UsrChars [userCharacteristicsIntro], SystCons [] []], @@ -128,13 +128,6 @@ symbMap :: ChunkDB symbMap = cdb symbols ideaDicts conceptChunks [] dataDefs iMods generalDefns tMods concIns citations labelledContent -abbreviationsList :: [IdeaDict] -abbreviationsList = - -- QuantityDicts - map nw symbols ++ - -- CIs - map nw acronyms - -- | Holds all references and links used in the document. allRefs :: [Reference] allRefs = [externalLinkRef, pymunk] ++ uriReferences ++ offShelfSolRefs diff --git a/code/drasil-example/glassbr/lib/Drasil/GlassBR/Assumptions.hs b/code/drasil-example/glassbr/lib/Drasil/GlassBR/Assumptions.hs index 1708e83df86..552e24220f8 100644 --- a/code/drasil-example/glassbr/lib/Drasil/GlassBR/Assumptions.hs +++ b/code/drasil-example/glassbr/lib/Drasil/GlassBR/Assumptions.hs @@ -38,7 +38,7 @@ assumpSV = cic "assumpSV" (standardValuesDesc loadDur) "standar assumpGL = cic "assumpGL" glassLiteDesc "glassLite" Doc.assumpDom assumpBC = cic "assumpBC" boundaryConditionsDesc "boundaryConditions" Doc.assumpDom assumpRT = cic "assumpRT" responseTypeDesc "responseType" Doc.assumpDom -assumpLDFC = cic "assumpLDFC" (ldfConstantDesc loadDF) "ldfConstant" Doc.assumpDom +assumpLDFC = cic "assumpLDFC" ldfConstantDesc "ldfConstant" Doc.assumpDom glassTypeDesc :: Sentence glassTypeDesc = foldlSent [S "The standard E1300-09a for", @@ -84,8 +84,8 @@ responseTypeDesc :: Sentence responseTypeDesc = foldlSent [D.toSent $ atStartNP (the responseTy), S "considered in", short progName, S "is flexural"] -ldfConstantDesc :: (HasSymbol c, NamedIdea c) => c -> Sentence -ldfConstantDesc mainConcept = foldlSent [S "With", phrase reference, S "to", +ldfConstantDesc :: Sentence +ldfConstantDesc = foldlSent [S "With", phrase reference, S "to", refS assumpSV `sC` D.toSent (phraseNP (NP.the (value `of_` - mainConcept))), sParen (ch mainConcept) `S.is` D.toSent (phraseNP (a_ constant)) + loadDF))), sParen (short loadDF) `S.is` D.toSent (phraseNP (a_ constant)) `S.in_` short progName] diff --git a/code/drasil-example/glassbr/lib/Drasil/GlassBR/Body.hs b/code/drasil-example/glassbr/lib/Drasil/GlassBR/Body.hs index 595b9bf75b0..c4eb691fc17 100644 --- a/code/drasil-example/glassbr/lib/Drasil/GlassBR/Body.hs +++ b/code/drasil-example/glassbr/lib/Drasil/GlassBR/Body.hs @@ -38,7 +38,7 @@ import Data.Drasil.People (mCampidelli, nikitha, spencerSmith) import Drasil.GlassBR.Assumptions (assumptionConstants, assumptions) import Drasil.GlassBR.Changes (likelyChgs, unlikelyChgs) -import Drasil.GlassBR.Concepts (acronyms, blastRisk, glaPlane, glaSlab, +import Drasil.GlassBR.Concepts (blastRisk, glaPlane, glaSlab, ptOfExplsn, con', glass, iGlass, lGlass) import qualified Drasil.GlassBR.DataDefs as GB (dataDefs) import Drasil.GlassBR.LabelledContent @@ -64,14 +64,14 @@ si = mkSystem progName Specification mkSRS :: SRSDecl mkSRS = [TableOfContents, - RefSec $ RefProg intro [TUnits, tsymb [TSPurpose, SymbOrder], TAandA abbreviationsList], + RefSec $ RefProg intro [TUnits, tsymb [TSPurpose, SymbOrder], TAandA ], IntroSec $ IntroProg (startIntro M.software blstRskInvWGlassSlab progName) (short progName) [IPurpose $ purpDoc progName Verbose, IScope scope, IChar [] (undIR ++ appStanddIR) [], - IOrgSec M.dataDefn (SRS.inModel [] []) orgOfDocIntroEnd], + IOrgSec M.dataDefn (SRS.inModel [] []) (Just orgOfDocIntroEnd)], StkhldrSec $ StkhldrProg [Client progName $ D.toSent (phraseNP (a_ company)) @@ -130,11 +130,6 @@ conceptChunks = -- DefinedQuantityDicts map cw mathquants -abbreviationsList :: [IdeaDict] -abbreviationsList = - -- CIs - map nw acronyms - symbMap :: ChunkDB symbMap = cdb symbolsWCodeSymbols ideaDicts conceptChunks ([] :: [UnitDefn]) GB.dataDefs iMods [] tMods concIns citations labCon @@ -234,7 +229,7 @@ scope = foldlSent_ [S "determining the safety" `S.ofA` phrase glaSlab, {--Organization of Document--} orgOfDocIntroEnd :: Sentence -orgOfDocIntroEnd = foldlSent_ [D.toSent (atStartNP' (the dataDefn)) `S.are` +orgOfDocIntroEnd = foldlSent [D.toSent (atStartNP' (the dataDefn)) `S.are` S "used to support", plural definition `S.the_ofThe` S "different", plural model] {--STAKEHOLDERS--} diff --git a/code/drasil-example/pdcontroller/lib/Drasil/PDController/Body.hs b/code/drasil-example/pdcontroller/lib/Drasil/PDController/Body.hs index ec1d948ed59..6f7b1d43329 100644 --- a/code/drasil-example/pdcontroller/lib/Drasil/PDController/Body.hs +++ b/code/drasil-example/pdcontroller/lib/Drasil/PDController/Body.hs @@ -17,7 +17,7 @@ import Data.Drasil.Quantities.Math (posInf, negInf) import Drasil.PDController.Assumptions (assumptions) import Drasil.PDController.Changes (likelyChgs) -import Drasil.PDController.Concepts (acronyms, pidC, concepts, defs) +import Drasil.PDController.Concepts (pidC, concepts, defs, pidCI, proportionalCI, acronyms, pdControllerCI) import Drasil.PDController.DataDefs (dataDefinitions) import Drasil.PDController.GenDefs (genDefns) import Drasil.PDController.LabelledContent (labelledContent, gsdSysContextFig, sysFigure) @@ -41,17 +41,12 @@ naveen = person "Naveen Ganesh" "Muralidharan" mkSRS :: SRSDecl mkSRS = [TableOfContents, - RefSec $ RefProg intro [TUnits, tsymb [TSPurpose, SymbOrder], TAandA abbreviationsList], + RefSec $ RefProg intro [TUnits, tsymb [TSPurpose, SymbOrder], TAandA ], IntroSec $ IntroProg introPara (phrase progName) [IPurpose [introPurposeOfDoc], IScope introscopeOfReq, IChar introUserChar1 introUserChar2 [], - IOrgSec dataDefn (SRS.inModel [] []) - (S "The instance model referred as" +:+ refS imPD +:+ - S "provides an" - +:+ titleize ode +:+ sParen (short ode) - +:+ S "that models the" - +:+ phrase pidC)], + IOrgSec dataDefn (SRS.inModel [] []) (Just orgSecEnd)], GSDSec $ GSDProg [SysCntxt @@ -97,16 +92,24 @@ motivation = foldlSent_ [S "The gains of a controller in an application" +:+ S "must be tuned before the controller is ready for production"] background :: Sentence -background = foldlSent_ [S "Automatic process control with a controller (P/PI/PD/PID) is used", - S "in a variety of applications such as thermostats, automobile", - S "cruise-control, etc"] +background = foldlSent_ [ + S "Automatic process control with a controller (" + :+: short proportionalCI :+: S "/PI/" :+: short pdControllerCI :+: S "/" :+: short pidCI :+: S ") is used", + S "in a variety of applications such as thermostats, automobile", + S "cruise-control, etc"] + +orgSecEnd :: Sentence +orgSecEnd = foldlSent [ + S "The instance model referred as", refS imPD, S "provides an", + titleize ode, sParen (short ode), S "that models the", phrase pidC + ] ideaDicts :: [IdeaDict] ideaDicts = -- Actual IdeaDicts concepts ++ -- CIs - nw progName : map nw mathcon' + nw progName : map nw mathcon' ++ map nw acronyms conceptChunks :: [ConceptChunk] conceptChunks = @@ -133,13 +136,6 @@ symbMap = cdb allRefs :: [Reference] allRefs = [externalLinkRef] -abbreviationsList :: [IdeaDict] -abbreviationsList = - -- CIs - map nw acronyms ++ - -- QuantityDicts - map nw symbols - conceptInstances :: [ConceptInstance] conceptInstances = assumptions ++ goals ++ funcReqs ++ nonfuncReqs ++ likelyChgs diff --git a/code/drasil-example/pdcontroller/lib/Drasil/PDController/Concepts.hs b/code/drasil-example/pdcontroller/lib/Drasil/PDController/Concepts.hs index f806256bd56..a5729b2e965 100644 --- a/code/drasil-example/pdcontroller/lib/Drasil/PDController/Concepts.hs +++ b/code/drasil-example/pdcontroller/lib/Drasil/PDController/Concepts.hs @@ -1,17 +1,11 @@ module Drasil.PDController.Concepts where -import Drasil.Metadata import Language.Drasil -import Data.Drasil.Concepts.Documentation - (assumption, goalStmt, physSyst, refBy, refName, typUnc) - acronyms :: [CI] -acronyms - = [assumption, dataDefn, genDefn, goalStmt, inModel, physSyst, requirement, refBy, - refName, srs, thModel, typUnc, pdControllerCI, proportionalCI, pidCI] -pdControllerCI, proportionalCI, pidCI :: CI +acronyms = [pdControllerCI, proportionalCI, pidCI] +pdControllerCI, proportionalCI, pidCI :: CI pdControllerCI = commonIdeaWithDict "pdControllerCI" (pn "proportional derivative") "PD" [] proportionalCI = commonIdeaWithDict "proportionalCI" (pn "proportional") "P" [] pidCI = commonIdeaWithDict "pidCI" (pn "proportional integral derivative") "PID" [] diff --git a/code/drasil-example/pdcontroller/lib/Drasil/PDController/IntroSection.hs b/code/drasil-example/pdcontroller/lib/Drasil/PDController/IntroSection.hs index 0f008439b12..9cddacad048 100644 --- a/code/drasil-example/pdcontroller/lib/Drasil/PDController/IntroSection.hs +++ b/code/drasil-example/pdcontroller/lib/Drasil/PDController/IntroSection.hs @@ -10,7 +10,8 @@ import Drasil.PDController.Concepts introPara, introPurposeOfDoc, introscopeOfReq :: Sentence introPara = foldlSent - [S "Automatic process control with a controller (P/PI/PD/PID) is used", + [S "Automatic process control with a controller (" :+: + short proportionalCI :+: S "/PI/" :+: short pdControllerCI :+: S "/" :+: short pidCI :+: S ") is used", S "in a variety of applications such as thermostats, automobile", S "cruise-control, etc. The gains" `S.ofA` S "controller in an application" +:+. S "must be tuned before the controller is ready for production", diff --git a/code/drasil-example/projectile/lib/Drasil/Projectile/Body.hs b/code/drasil-example/projectile/lib/Drasil/Projectile/Body.hs index 7b4c0d73bf4..c7f4832d831 100644 --- a/code/drasil-example/projectile/lib/Drasil/Projectile/Body.hs +++ b/code/drasil-example/projectile/lib/Drasil/Projectile/Body.hs @@ -12,18 +12,17 @@ import Drasil.Document.Contents (foldlSP, foldlSPCol) import Drasil.Sentence.Combinators (bulletNested, bulletFlat) import Drasil.System (SystemKind(Specification), mkSystem) -import Drasil.Metadata (dataDefn, genDefn, inModel, thModel, software, requirement, srs) +import Drasil.Metadata (inModel, software) import Data.Drasil.Concepts.Computation (inDatum) -import Data.Drasil.Concepts.Documentation (analysis, physics, - problem, assumption, goalStmt, physSyst, sysCont, user, - refBy, refName, typUnc, example, softwareSys, system, environment, +import Data.Drasil.Concepts.Documentation (analysis, physics, problem, + assumption, sysCont, user, example, softwareSys, system, environment, product_, interface, condition, physical, datum, input_, softwareConstraint, output_, endUser) import qualified Data.Drasil.Concepts.Documentation as Doc (physics, variable) import Data.Drasil.Concepts.Math (cartesian) import Data.Drasil.Concepts.PhysicalProperties (mass) import Data.Drasil.Concepts.Physics (gravity, physicCon', - rectilinear, oneD, twoD, motion, distance, collision, positionVec) + rectilinear, twoD, motion, distance, collision, positionVec) import Data.Drasil.Concepts.Software (program) import Data.Drasil.Quantities.Math (pi_, piConst) @@ -58,14 +57,14 @@ mkSRS = [TableOfContents, RefProg intro [ TUnits , tsymb [TSPurpose, TypogConvention [Vector Bold], SymbOrder, VectorUnits] - , TAandA abbreviationsList + , TAandA ], IntroSec $ IntroProg justification (phrase progName) [ IPurpose $ purpDoc progName Verbose , IScope scope , IChar [] charsOfReader [] - , IOrgSec inModel (SRS.inModel [] []) EmptyS], + , IOrgSec inModel (SRS.inModel [] []) Nothing], GSDSec $ GSDProg [ SysCntxt [sysCtxIntro, LlC sysCtxFig1, sysCtxDesc, sysCtxList] @@ -165,13 +164,6 @@ symbMap = cdb (pi_ : symbols) ideaDicts conceptChunks ([] :: [UnitDefn]) dataDefs iMods genDefns tMods concIns citations (labelledContent ++ funcReqsTables) -abbreviationsList :: [IdeaDict] -abbreviationsList = - -- CIs - map nw acronyms ++ - -- DefinedQuantityDicts - map nw symbols - -- | Holds all references and links used in the document. allRefs :: [Reference] allRefs = [externalLinkRef] @@ -292,7 +284,3 @@ outConstraints = [landPosUnc, offsetUnc, flightDurUnc] constrained :: [ConstrConcept] constrained = [flightDur, landPos, launAngle, launSpeed, offset, targPos] - -acronyms :: [CI] -acronyms = [oneD, twoD, assumption, dataDefn, genDefn, goalStmt, inModel, - physSyst, requirement, srs, refBy, refName, thModel, typUnc] diff --git a/code/drasil-example/sglpend/lib/Drasil/SglPend/Body.hs b/code/drasil-example/sglpend/lib/Drasil/SglPend/Body.hs index f180fe65e99..a1e13fde0ed 100644 --- a/code/drasil-example/sglpend/lib/Drasil/SglPend/Body.hs +++ b/code/drasil-example/sglpend/lib/Drasil/SglPend/Body.hs @@ -27,7 +27,6 @@ import Drasil.DblPend.Body (justification, externalLinkRef, charsOfReader, import qualified Drasil.DblPend.Body as DPD (tMods) import Drasil.DblPend.Concepts (concepts, rod) import Drasil.DblPend.Requirements (nonFuncReqs) -import Drasil.DblPend.Unitals (acronyms) import Drasil.DblPend.References (citations) import Drasil.SglPend.Assumptions (assumpSingle) @@ -47,14 +46,14 @@ mkSRS = [TableOfContents, -- This creates the Table of Contents [ TUnits -- Adds table of unit section with a table frame , tsymb [TSPurpose, TypogConvention [Vector Bold], SymbOrder, VectorUnits] -- Adds table of symbol section with a table frame --introductory blob (TSPurpose), TypogConvention, bolds vector parameters (Vector Bold), orders the symbol, and adds units to symbols - , TAandA abbreviationsList -- Add table of abbreviation and acronym section + , TAandA -- Add table of abbreviation and acronym section ], IntroSec $ IntroProg (justification progName) (phrase progName) [IPurpose $ purpDoc progName Verbose, IScope scope, IChar [] charsOfReader [], - IOrgSec inModel (SRS.inModel [] []) EmptyS], + IOrgSec inModel (SRS.inModel [] []) Nothing], GSDSec $ GSDProg [ SysCntxt [sysCtxIntro progName, LlC sysCtxFig1, sysCtxDesc, sysCtxList progName], @@ -112,13 +111,6 @@ conceptChunks = -- Unital Chunks [cw len] -abbreviationsList :: [IdeaDict] -abbreviationsList = - -- CIs - nw progName : map nw acronyms ++ - -- QuantityDicts - map nw symbols - symbMap :: ChunkDB symbMap = cdb (map (^. output) iMods ++ symbols) ideaDicts conceptChunks [] dataDefs iMods genDefns tMods concIns citations diff --git a/code/drasil-example/ssp/lib/Drasil/SSP/Body.hs b/code/drasil-example/ssp/lib/Drasil/SSP/Body.hs index 1bb61e090d3..bdf5f8a7a7f 100644 --- a/code/drasil-example/ssp/lib/Drasil/SSP/Body.hs +++ b/code/drasil-example/ssp/lib/Drasil/SSP/Body.hs @@ -40,7 +40,7 @@ import Data.Drasil.SI_Units (degree) import Drasil.SSP.Assumptions (assumptions) import Drasil.SSP.Changes (likelyChgs, unlikelyChgs) import Drasil.SSP.DataDefs (dataDefs) -import Drasil.SSP.Defs (acronyms, crtSlpSrf, defs, defs', effFandS, factor, fsConcept, +import Drasil.SSP.Defs (crtSlpSrf, defs, defs', effFandS, factor, fsConcept, intrslce, layer, morPrice, mtrlPrpty, plnStrn, slice, slip, slope, slpSrf, soil, soilLyr, soilMechanics, soilPrpty, ssa, stabAnalysis, waterTable) import Drasil.SSP.GenDefs (generalDefinitions) @@ -67,7 +67,7 @@ si = mkSystem mkSRS :: SRSDecl mkSRS = [TableOfContents, RefSec $ RefProg intro - [TUnits, tsymb'' tableOfSymbIntro TAD, TAandA abbreviationsList], + [TUnits, tsymb'' tableOfSymbIntro TAD, TAandA ], IntroSec $ IntroProg startIntro kSent [ IPurpose $ purpDoc progName Verbose , IScope scope @@ -75,7 +75,7 @@ mkSRS = [TableOfContents, [phrase undergraduate +:+ S "level 4" +:+ phrase Doc.physics, phrase undergraduate +:+ S "level 2 or higher" +:+ phrase solidMechanics] [phrase soilMechanics] - , IOrgSec inModel (SRS.inModel [] []) orgSecEnd + , IOrgSec inModel (SRS.inModel [] []) (Just orgSecEnd) ], --FIXME: issue #235 GSDSec $ GSDProg @@ -144,15 +144,6 @@ symbMap :: ChunkDB symbMap = cdb symbols ideaDicts conceptChunks [degree] dataDefs iMods generalDefinitions tMods concIns citations labCon -abbreviationsList :: [IdeaDict] -abbreviationsList = - -- CIs - map nw acronyms ++ - -- ConceptChunks - nw progName : - -- DefinedQuantityDicts - map nw symbols - -- | Holds all references and links used in the document. allRefs :: [Reference] allRefs = [externalLinkRef, weightSrc, hsPressureSrc] @@ -226,7 +217,7 @@ scope = foldlSent_ [D.toSent (phraseNP (stabAnalysis `ofA` twoD)), sParen (short -- SECTION 2.4 -- -- Organization automatically generated in IOrgSec orgSecEnd :: Sentence -orgSecEnd = foldlSent_ [D.toSent (atStartNP' (the inModel)), S "provide the set of", +orgSecEnd = foldlSent [D.toSent (atStartNP' (the inModel)), S "provide the set of", S "algebraic", plural equation, S "that must be solved"] -- SECTION 3 -- diff --git a/code/drasil-example/swhs/lib/Drasil/SWHS/Body.hs b/code/drasil-example/swhs/lib/Drasil/SWHS/Body.hs index 2e20835b731..d639bd538a2 100755 --- a/code/drasil-example/swhs/lib/Drasil/SWHS/Body.hs +++ b/code/drasil-example/swhs/lib/Drasil/SWHS/Body.hs @@ -38,7 +38,7 @@ import Data.Drasil.People (brooks, spencerSmith, thulasi) import Drasil.SWHS.Assumptions (assumpPIS, assumptions) import Drasil.SWHS.Changes (likelyChgs, unlikelyChgs) -import Drasil.SWHS.Concepts (acronymsFull, coil, con, phaseChangeMaterial, +import Drasil.SWHS.Concepts (coil, con, phaseChangeMaterial, phsChgMtrl, sWHT, tank, tankPCM, transient, water) import qualified Drasil.SWHS.DataDefs as SWHS (dataDefs) import Drasil.SWHS.GenDefs (genDefs, htFluxWaterFromCoil, htFluxPCMFromWater) @@ -92,13 +92,6 @@ symbMap :: ChunkDB symbMap = cdb symbols ideaDicts conceptChunks [] SWHS.dataDefs insModel genDefs tMods concIns citations (labelledContent ++ funcReqsTables) -abbreviationsList :: [IdeaDict] -abbreviationsList = - -- CIs - nw progName : map nw acronymsFull ++ - -- DefinedQuantityDicts - map nw symbols - -- | Holds all references and links used in the document. allRefs :: [Reference] allRefs = externalLinkRef : uriReferences @@ -108,13 +101,13 @@ mkSRS = [TableOfContents, RefSec $ RefProg intro [ TUnits, tsymb'' tSymbIntro $ TermExcept [uNormalVect], - TAandA abbreviationsList], + TAandA ], IntroSec $ IntroProg (introStart +:+ introStartSWHS) (introEnd (plural progName') progName) [IPurpose $ purpDoc progName Verbose, IScope scope, IChar [] charsOfReader [], - IOrgSec inModel (SRS.inModel [] []) orgDocEnd + IOrgSec inModel (SRS.inModel [] []) (Just orgDocEnd) ], GSDSec $ GSDProg [ SysCntxt [sysCntxtDesc progName, LlC sysCntxtFig, sysCntxtRespIntro progName, systContRespBullets progName] @@ -241,7 +234,7 @@ charReaderDE = plural de +:+ S "from level 1 and 2" +:+ phrase calculus -- 2.4 : Organization of Document -- ------------------------------------ orgDocEnd :: Sentence -orgDocEnd = foldlSent_ [D.toSent (atStartNP' (the inModel)), +orgDocEnd = foldlSent [D.toSent (atStartNP' (the inModel)), S "to be solved" `S.are` S "referred to as" +:+. foldlList Comma List (map refS iMods), S "The", plural inModel, S "provide the", plural ode, sParen (short ode :+: S "s") `S.and_` diff --git a/code/drasil-example/swhsnopcm/lib/Drasil/SWHSNoPCM/Body.hs b/code/drasil-example/swhsnopcm/lib/Drasil/SWHSNoPCM/Body.hs index c624f0eaee6..fa03466cfe1 100644 --- a/code/drasil-example/swhsnopcm/lib/Drasil/SWHSNoPCM/Body.hs +++ b/code/drasil-example/swhsnopcm/lib/Drasil/SWHSNoPCM/Body.hs @@ -36,7 +36,7 @@ import Drasil.SWHS.Body (charsOfReader, dataContMid, motivation, introStart, externalLinkRef, physSyst1, physSyst2, sysCntxtDesc, systContRespBullets, sysCntxtRespIntro, userChars) import Drasil.SWHS.Changes (likeChgTCVOD, likeChgTCVOL, likeChgTLH) -import Drasil.SWHS.Concepts (acronyms, coil, sWHT, tank, transient, water, con, phsChgMtrl) +import Drasil.SWHS.Concepts (coil, sWHT, tank, transient, water, con, phsChgMtrl) import Drasil.SWHS.Requirements (nfRequirements) import Drasil.SWHS.TMods (PhaseChange(Liquid), consThermE, nwtnCooling, sensHtETemplate) import Drasil.SWHS.Unitals (deltaT, htFluxC, htFluxIn, @@ -87,13 +87,13 @@ mkSRS = [TableOfContents, RefSec $ RefProg intro [TUnits, tsymb [TSPurpose, SymbConvention [Lit $ nw htTrans, Doc' $ nw progName], SymbOrder, VectorUnits], - TAandA abbreviationsList], + TAandA ], IntroSec $ IntroProg (introStart +:+ introStartNoPCM) (introEnd (plural progName) progName) [ IPurpose $ purpDoc progName Verbose , IScope scope , IChar [] charsOfReader [] - , IOrgSec inModel (SRS.inModel [] []) orgDocEnd + , IOrgSec inModel (SRS.inModel [] []) (Just orgDocEnd) ], GSDSec $ GSDProg @@ -167,13 +167,6 @@ symbMap = cdb symbols ideaDicts conceptChunks ([] :: [UnitDefn]) NoPCM.dataDefs NoPCM.iMods genDefs tMods concIns citations (labelledContent ++ funcReqsTables) -abbreviationsList :: [IdeaDict] -abbreviationsList = - -- CIs - nw progName : map nw acronyms ++ - -- DefinedQuantityDicts - map nw symbols - -- | Holds all references and links used in the document. allRefs :: [Reference] allRefs = [externalLinkRef, externalLinkRef'] ++ uriReferences @@ -217,7 +210,7 @@ scope = phrase thermalAnalysis `S.of_` S "a single" +:+ phrase sWHT --------------------------------------- orgDocEnd :: Sentence -orgDocEnd = foldlSent_ [D.toSent (atStartNP (the inModel)), +orgDocEnd = foldlSent [D.toSent (atStartNP (the inModel)), S "to be solved" `S.is` S "referred to as" +:+. refS eBalanceOnWtr, D.toSent (atStartNP (the inModel)), S "provides the", titleize ode, sParen (short ode), S "that models the" +:+. phrase progName, diff --git a/code/drasil-example/template/lib/Drasil/Template/Body.hs b/code/drasil-example/template/lib/Drasil/Template/Body.hs index cee771a395e..985f6d56cbb 100644 --- a/code/drasil-example/template/lib/Drasil/Template/Body.hs +++ b/code/drasil-example/template/lib/Drasil/Template/Body.hs @@ -30,7 +30,7 @@ mkSRS = [TableOfContents, [ IPurpose $ purpDoc progName Verbose, IScope EmptyS, IChar [] [] [], - IOrgSec inModel (SRS.inModel [] []) EmptyS + IOrgSec inModel (SRS.inModel [] []) Nothing ], GSDSec $ GSDProg diff --git a/code/drasil-lang/lib/Language/Drasil.hs b/code/drasil-lang/lib/Language/Drasil.hs index 2c2336431f0..cdf1bcec4c3 100644 --- a/code/drasil-lang/lib/Language/Drasil.hs +++ b/code/drasil-lang/lib/Language/Drasil.hs @@ -181,7 +181,7 @@ module Language.Drasil ( , compoundPhrase, compoundPhrase', compoundPhrase'', compoundPhrase''', compoundPhraseP1 , titleizeNP, titleizeNP', nounPhrase'', nounPhraseSP, nounPhraseSent -- Language.Drasil.Development.Sentence - , introduceAbb, phrase, plural, phrasePoss, pluralPoss, atStart, atStart' + , introduceAbb, introduceAbbPlrl, phrase, plural, phrasePoss, pluralPoss, atStart, atStart' , titleize, titleize', short -- Language.Drasil.ShortName , ShortName, shortname', getSentSN, HasShortName(..) diff --git a/code/drasil-lang/lib/Language/Drasil/Development/Sentence.hs b/code/drasil-lang/lib/Language/Drasil/Development/Sentence.hs index 99edf22542d..14d0f060e33 100644 --- a/code/drasil-lang/lib/Language/Drasil/Development/Sentence.hs +++ b/code/drasil-lang/lib/Language/Drasil/Development/Sentence.hs @@ -11,7 +11,9 @@ module Language.Drasil.Development.Sentence ( -- * from NPStruct to Sentence toSent, -- * Short Form (lowercase) - short, introduceAbb + short, + -- * Introduce with Abbreviation + introduceAbb, introduceAbbPlrl ) where import Control.Lens ((^.)) @@ -23,7 +25,7 @@ import Language.Drasil.Sentence ((+:+), sParen, sentenceTerm, sentencePlural, sentenceShort) import qualified Language.Drasil.Sentence as S import qualified Language.Drasil.NounPhrase as NP -import Language.Drasil.NounPhrase.Core (NPStruct(..)) +import Language.Drasil.NounPhrase.Types (NPStruct(..)) -- | Translate from NPStruct to Sentence toSent :: NPStruct -> S.Sentence @@ -40,11 +42,13 @@ toSent (P p) = S.P p short :: Idea c => c -> S.Sentence short c = sentenceShort (c ^. uid) --- | Helper for common pattern of introducing the title-case version of a --- noun phrase (from an Idea) --- followed by its abbreviation in parentheses. +-- | Introduce a noun phrase and its (parenthesized) abbreviation. introduceAbb :: Idea n => n -> S.Sentence -introduceAbb n = toSent (NP.titleizeNP (n ^. term)) +:+ sParen (short n) +introduceAbb n = phrase n +:+ sParen (short n) + +-- | Introduce a plural noun phrase and its (parenthesized) abbreviation. +introduceAbbPlrl :: Idea n => n -> S.Sentence +introduceAbbPlrl n = plural n +:+ sParen (short n) -- | Helper function for getting the sentence case of a noun phrase from a -- 'NamedIdea'. diff --git a/code/drasil-lang/lib/Language/Drasil/Sentence.hs b/code/drasil-lang/lib/Language/Drasil/Sentence.hs index 54fe3d4d6f0..d1012b1de13 100644 --- a/code/drasil-lang/lib/Language/Drasil/Sentence.hs +++ b/code/drasil-lang/lib/Language/Drasil/Sentence.hs @@ -33,7 +33,7 @@ import qualified Data.Set as Set -- (can record whether something is in plural form, a singular term, or in short form). data SentenceStyle = PluralTerm | TermStyle - | ShortStyle + | ShortStyle -- TODO: Short plural? -- | Used in 'Ch' constructor to determine the capitalization of a term. -- CapF is for capitalizing the first word from the 'UID' of the given term. diff --git a/code/drasil-utils/lib/Utils/Drasil.hs b/code/drasil-utils/lib/Utils/Drasil.hs index 6d290a8c200..84c5129b1be 100644 --- a/code/drasil-utils/lib/Utils/Drasil.hs +++ b/code/drasil-utils/lib/Utils/Drasil.hs @@ -19,7 +19,10 @@ module Utils.Drasil ( -- * Lists -- | From "Utils.Drasil.Lists". General functions involving lists. - replaceAll, subsetOf, nubSort, weave, foldle, foldle1, toColumn, mkTable, + splitAtAll, mergeAll, + replaceAll, subsetOf, nubSort, weave, + foldle, foldle1, + toColumn, mkTable, -- ** Strings toPlainName, repUnd, diff --git a/code/drasil-utils/lib/Utils/Drasil/Lists.hs b/code/drasil-utils/lib/Utils/Drasil/Lists.hs index 54ad4d3ac76..a23acaaa48a 100644 --- a/code/drasil-utils/lib/Utils/Drasil/Lists.hs +++ b/code/drasil-utils/lib/Utils/Drasil/Lists.hs @@ -5,6 +5,32 @@ import Data.List (sort, transpose) import Data.Containers.ListUtils (nubOrd) +-- | Split a list of elements by a delimiter, returning all delimited segments +-- and delimiters. +splitAtAll :: (a -> Bool) -> [a] -> ([[a]], [a]) +splitAtAll = go [] [] [] + where + go :: [a] -> [[a]] -> [a] -> (a -> Bool) -> [a] -> ([[a]], [a]) + -- List ended with delimiter (nothing accumulated) + go [] gacc as _ [] = ([] : reverse gacc, reverse as) + -- List ends with non-delimiter (elements accumulated) + go lacc gacc as _ [] = (reverse (reverse lacc : gacc), reverse as) + go lacc gacc as p (x:xs) + -- Next element is a delimiter (fix ordering of accumulated elements and + -- continue) + | p x = go [] (reverse lacc : gacc) (x:as) p xs + -- Next element is not a delimiter (put element in local segment + -- cache/accumulator [reverse order]) + | otherwise = go (x:lacc) gacc as p xs + +-- | Concatenate a list of list segments given a list of delimiters. +-- +-- e.g., mergeAll [[1,2], [4,5]] [3,6] == [1,2,3,4,5,6] +mergeAll :: [[a]] -> [a] -> [a] +mergeAll [] rs = rs +mergeAll (l:ls) (r:rs) = l ++ r : mergeAll ls rs +mergeAll ls _ = concat ls + -- | Replaces all elements of a target list that belong to a provided "bad" -- input list. replaceAll :: Eq a => [a] -> a -> [a] -> [a] diff --git a/code/stable/dblpend/SRS/HTML/DblPend_SRS.html b/code/stable/dblpend/SRS/HTML/DblPend_SRS.html index c24ee9b2d22..31c55f6c1ff 100644 --- a/code/stable/dblpend/SRS/HTML/DblPend_SRS.html +++ b/code/stable/dblpend/SRS/HTML/DblPend_SRS.html @@ -374,6 +374,10 @@

Abbreviations and Acronyms

IM Instance Model + + ODE + Ordinary Differential Equation + PS Physical System Description @@ -416,7 +420,7 @@

Introduction

A pendulum consists of mass attached to the end of a rod and its moving curve is highly sensitive to initial conditions. Therefore, it is useful to have a program to simulate the motion of the pendulum to exhibit its chaotic characteristics. The document describes the program called Double Pendulum , which is based on the original, manually created version of Double Pendulum.

- The following section provides an overview of the Software Requirements Specification (SRS) for Double Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. + The following section provides an overview of the software requirements specification (SRS) for Double Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.

diff --git a/code/stable/dblpend/SRS/Jupyter/DblPend_SRS.ipynb b/code/stable/dblpend/SRS/Jupyter/DblPend_SRS.ipynb index bbc4a8dcee2..0296a241bc4 100644 --- a/code/stable/dblpend/SRS/Jupyter/DblPend_SRS.ipynb +++ b/code/stable/dblpend/SRS/Jupyter/DblPend_SRS.ipynb @@ -134,6 +134,7 @@ "|GD|General Definition|\n", "|GS|Goal Statement|\n", "|IM|Instance Model|\n", + "|ODE|Ordinary Differential Equation|\n", "|PS|Physical System Description|\n", "|R|Requirement|\n", "|RefBy|Referenced by|\n", @@ -148,7 +149,7 @@ "\n", "A pendulum consists of mass attached to the end of a rod and its moving curve is highly sensitive to initial conditions. Therefore, it is useful to have a program to simulate the motion of the pendulum to exhibit its chaotic characteristics. The document describes the program called Double Pendulum , which is based on the original, manually created version of Double Pendulum.\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for Double Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", + "The following section provides an overview of the software requirements specification (SRS) for Double Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", "\n", "## Purpose of Document\n", "\n", diff --git a/code/stable/dblpend/SRS/PDF/DblPend_SRS.tex b/code/stable/dblpend/SRS/PDF/DblPend_SRS.tex index 4ce0b60b161..fdc5e0c9202 100644 --- a/code/stable/dblpend/SRS/PDF/DblPend_SRS.tex +++ b/code/stable/dblpend/SRS/PDF/DblPend_SRS.tex @@ -155,6 +155,8 @@ \subsection{Abbreviations and Acronyms} \\ IM & Instance Model \\ +ODE & Ordinary Differential Equation +\\ PS & Physical System Description \\ R & Requirement @@ -174,7 +176,7 @@ \section{Introduction} \label{Sec:Intro} A pendulum consists of mass attached to the end of a rod and its moving curve is highly sensitive to initial conditions. Therefore, it is useful to have a program to simulate the motion of the pendulum to exhibit its chaotic characteristics. The document describes the program called Double Pendulum , which is based on the original, manually created version of \hyperref{https://github.com/Zhang-Zhi-ZZ/CAS741Project/tree/master/Double%20Pendulum}{}{}{Double Pendulum}. -The following section provides an overview of the Software Requirements Specification (SRS) for Double Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for Double Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. \subsection{Purpose of Document} \label{Sec:DocPurpose} diff --git a/code/stable/dblpend/SRS/mdBook/src/SecIntro.md b/code/stable/dblpend/SRS/mdBook/src/SecIntro.md index 43904996d64..85ce1e7312d 100644 --- a/code/stable/dblpend/SRS/mdBook/src/SecIntro.md +++ b/code/stable/dblpend/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ A pendulum consists of mass attached to the end of a rod and its moving curve is highly sensitive to initial conditions. Therefore, it is useful to have a program to simulate the motion of the pendulum to exhibit its chaotic characteristics. The document describes the program called Double Pendulum , which is based on the original, manually created version of [Double Pendulum](https://github.com/Zhang-Zhi-ZZ/CAS741Project/tree/master/Double%20Pendulum). -The following section provides an overview of the Software Requirements Specification (SRS) for Double Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for Double Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. diff --git a/code/stable/dblpend/SRS/mdBook/src/SecTAbbAcc.md b/code/stable/dblpend/SRS/mdBook/src/SecTAbbAcc.md index c08d6e3dcae..b45da395776 100644 --- a/code/stable/dblpend/SRS/mdBook/src/SecTAbbAcc.md +++ b/code/stable/dblpend/SRS/mdBook/src/SecTAbbAcc.md @@ -11,6 +11,7 @@ |GD |General Definition | |GS |Goal Statement | |IM |Instance Model | +|ODE |Ordinary Differential Equation | |PS |Physical System Description | |R |Requirement | |RefBy |Referenced by | diff --git a/code/stable/gamephysics/SRS/HTML/GamePhysics_SRS.html b/code/stable/gamephysics/SRS/HTML/GamePhysics_SRS.html index 9d3ca511a3f..da1398ff6d0 100644 --- a/code/stable/gamephysics/SRS/HTML/GamePhysics_SRS.html +++ b/code/stable/gamephysics/SRS/HTML/GamePhysics_SRS.html @@ -545,10 +545,6 @@

Abbreviations and Acronyms

A Assumption - - CM - Centre of Mass - DD Data Definition @@ -561,6 +557,10 @@

Abbreviations and Acronyms

GS Goal Statement + + GamePhysics + GamePhysics + IM Instance Model @@ -615,7 +615,7 @@

Introduction

Due to the rising cost of developing video games, developers are looking for ways to save time and money for their projects. Using an open source physics library that is reliable and free will cut down development costs and lead to better quality products. The document describes the program based on the original, manually created version of GamePhysics.

- The following section provides an overview of the Software Requirements Specification (SRS) for GamePhysics. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. + The following section provides an overview of the software requirements specification (SRS) for GamePhysics. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.

@@ -809,12 +809,12 @@

Assumptions

@@ -824,22 +824,22 @@

Assumptions

- axesDefined: The axes are defined using right-handed coordinate system. (RefBy: GD:impulse, IM:col2D, and IM:rotMot.) + axesDefined: The axes are defined using right-handed coordinate system. (RefBy: GD:impulse, IM:col2D, and IM:rotMot.)

- collisionType: All rigid bodies collisions are vertex-to-edge collisions. (RefBy: GD:impulse, IM:col2D, and LC:Expanded-Collisions.) + collisionType: All rigid bodies collisions are vertex-to-edge collisions. (RefBy: GD:impulse, IM:col2D, and LC:Expanded-Collisions.)

- dampingInvolvement: There is no damping involved throughout the simulation and this implies that there are no friction forces. (RefBy: IM:col2D, IM:transMot, LC:Include-Dampening, DD:potEnergy, and DD:kEnergy.) + dampingInvolvement: There is no damping involved throughout the simulation and this implies that there are no friction forces. (RefBy: IM:col2D, IM:transMot, LC:Include-Dampening, DD:potEnergy, and DD:kEnergy.)

- constraintsAndJointsInvolvement: There are no constraints and joints involved throughout the simulation. (RefBy: IM:col2D, IM:transMot, and LC:Include-Joints-Constraints.) + constraintsAndJointsInvolvement: There are no constraints and joints involved throughout the simulation. (RefBy: IM:col2D, IM:transMot, and LC:Include-Joints-Constraints.)

@@ -2668,7 +2668,7 @@

Non-Functional Requirements

Likely Changes

- This section lists the likely changes to be made to the software. + This section lists the likely changes (LC) to be made to the software.

@@ -2698,7 +2698,7 @@

Likely Changes

Unlikely Changes

- This section lists the unlikely changes to be made to the software. + This section lists the unlikely changes (UC) to be made to the software.

diff --git a/code/stable/gamephysics/SRS/Jupyter/GamePhysics_SRS.ipynb b/code/stable/gamephysics/SRS/Jupyter/GamePhysics_SRS.ipynb index ac938c70e9c..3df19a08661 100644 --- a/code/stable/gamephysics/SRS/Jupyter/GamePhysics_SRS.ipynb +++ b/code/stable/gamephysics/SRS/Jupyter/GamePhysics_SRS.ipynb @@ -167,10 +167,10 @@ "|2D|Two-Dimensional|\n", "|3D|Three-Dimensional|\n", "|A|Assumption|\n", - "|CM|Centre of Mass|\n", "|DD|Data Definition|\n", "|GD|General Definition|\n", "|GS|Goal Statement|\n", + "|GamePhysics|GamePhysics|\n", "|IM|Instance Model|\n", "|LC|Likely Change|\n", "|ODE|Ordinary Differential Equation|\n", @@ -188,7 +188,7 @@ "\n", "Due to the rising cost of developing video games, developers are looking for ways to save time and money for their projects. Using an open source physics library that is reliable and free will cut down development costs and lead to better quality products. The document describes the program based on the original, manually created version of GamePhysics.\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for GamePhysics. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", + "The following section provides an overview of the software requirements specification (SRS) for GamePhysics. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", "\n", "## Purpose of Document\n", "\n", @@ -2153,7 +2153,7 @@ "# Likely Changes\n", "\n", "\n", - "This section lists the likely changes to be made to the software.\n", + "This section lists the likely changes (LC) to be made to the software.\n", "\n", "

\n", "Variable-ODE-Solver: The internal ODE-solving algorithm used by the library may be changed in the future.\n", @@ -2175,7 +2175,7 @@ "# Unlikely Changes\n", "\n", "\n", - "This section lists the unlikely changes to be made to the software.\n", + "This section lists the unlikely changes (UC) to be made to the software.\n", "\n", "
\n", "Simulate-Rigid-Bodies: The goal of the system is to simulate the interactions of rigid bodies.\n", diff --git a/code/stable/gamephysics/SRS/PDF/GamePhysics_SRS.tex b/code/stable/gamephysics/SRS/PDF/GamePhysics_SRS.tex index fa562c78576..aaf010177a7 100644 --- a/code/stable/gamephysics/SRS/PDF/GamePhysics_SRS.tex +++ b/code/stable/gamephysics/SRS/PDF/GamePhysics_SRS.tex @@ -217,14 +217,14 @@ \subsection{Abbreviations and Acronyms} \\ A & Assumption \\ -CM & Centre of Mass -\\ DD & Data Definition \\ GD & General Definition \\ GS & Goal Statement \\ +GamePhysics & GamePhysics +\\ IM & Instance Model \\ LC & Likely Change @@ -250,7 +250,7 @@ \section{Introduction} \label{Sec:Intro} Due to the rising cost of developing video games, developers are looking for ways to save time and money for their projects. Using an open source physics library that is reliable and free will cut down development costs and lead to better quality products. The document describes the program based on the original, manually created version of \hyperref{https://github.com/smiths/caseStudies/blob/master/CaseStudies/gamephys}{}{}{GamePhysics}. -The following section provides an overview of the Software Requirements Specification (SRS) for GamePhysics. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for GamePhysics. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. \subsection{Purpose of Document} \label{Sec:DocPurpose} @@ -1536,7 +1536,7 @@ \subsection{Non-Functional Requirements} \end{description} \section{Likely Changes} \label{Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software. \begin{description}[font=\normalfont] \item[Variable-ODE-Solver:\phantomsection\label{lcVODES}]{The internal ODE-solving algorithm used by the library may be changed in the future.} @@ -1546,7 +1546,7 @@ \section{Likely Changes} \end{description} \section{Unlikely Changes} \label{Sec:UCs} -This section lists the unlikely changes to be made to the software. +This section lists the unlikely changes (UC) to be made to the software. \begin{description}[font=\normalfont] \item[Simulate-Rigid-Bodies:\phantomsection\label{ucSRB}]{The goal of the system is to simulate the interactions of rigid bodies.} diff --git a/code/stable/gamephysics/SRS/mdBook/src/SecIntro.md b/code/stable/gamephysics/SRS/mdBook/src/SecIntro.md index b8d08e99d03..60d856c5fe8 100644 --- a/code/stable/gamephysics/SRS/mdBook/src/SecIntro.md +++ b/code/stable/gamephysics/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ Due to the rising cost of developing video games, developers are looking for ways to save time and money for their projects. Using an open source physics library that is reliable and free will cut down development costs and lead to better quality products. The document describes the program based on the original, manually created version of [GamePhysics](https://github.com/smiths/caseStudies/blob/master/CaseStudies/gamephys). -The following section provides an overview of the Software Requirements Specification (SRS) for GamePhysics. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for GamePhysics. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. diff --git a/code/stable/gamephysics/SRS/mdBook/src/SecLCs.md b/code/stable/gamephysics/SRS/mdBook/src/SecLCs.md index 693f74fa9cf..b50888c41c8 100644 --- a/code/stable/gamephysics/SRS/mdBook/src/SecLCs.md +++ b/code/stable/gamephysics/SRS/mdBook/src/SecLCs.md @@ -1,6 +1,6 @@ # Likely Changes {#Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software.
diff --git a/code/stable/gamephysics/SRS/mdBook/src/SecTAbbAcc.md b/code/stable/gamephysics/SRS/mdBook/src/SecTAbbAcc.md index 94eab7ecb81..649d5fd1f69 100644 --- a/code/stable/gamephysics/SRS/mdBook/src/SecTAbbAcc.md +++ b/code/stable/gamephysics/SRS/mdBook/src/SecTAbbAcc.md @@ -7,10 +7,10 @@ |2D |Two-Dimensional | |3D |Three-Dimensional | |A |Assumption | -|CM |Centre of Mass | |DD |Data Definition | |GD |General Definition | |GS |Goal Statement | +|GamePhysics |GamePhysics | |IM |Instance Model | |LC |Likely Change | |ODE |Ordinary Differential Equation | diff --git a/code/stable/gamephysics/SRS/mdBook/src/SecUCs.md b/code/stable/gamephysics/SRS/mdBook/src/SecUCs.md index 04512ec5c2f..4d7fbce3a1f 100644 --- a/code/stable/gamephysics/SRS/mdBook/src/SecUCs.md +++ b/code/stable/gamephysics/SRS/mdBook/src/SecUCs.md @@ -1,6 +1,6 @@ # Unlikely Changes {#Sec:UCs} -This section lists the unlikely changes to be made to the software. +This section lists the unlikely changes (UC) to be made to the software.
diff --git a/code/stable/glassbr/SRS/HTML/GlassBR_SRS.html b/code/stable/glassbr/SRS/HTML/GlassBR_SRS.html index 033a1e73cf4..87a730bd2d9 100644 --- a/code/stable/glassbr/SRS/HTML/GlassBR_SRS.html +++ b/code/stable/glassbr/SRS/HTML/GlassBR_SRS.html @@ -455,6 +455,10 @@

Abbreviations and Acronyms

FT Fully Tempered + + GD + General Definition + GS Goal Statement @@ -463,6 +467,10 @@

Abbreviations and Acronyms

GTF Glass Type Factor + + GlassBR + GlassBR + HS Heat Strengthened @@ -549,7 +557,7 @@

Introduction

Explosions in downtown areas are dangerous from the blast itself and also potentially from the secondary effect of falling glass. Therefore, software is needed to predict whether a glass slab can withstand a blast under given conditions. For example, we might wish to know whether a pane of glass fails from a gas main explosion or from a small fertilizer truck bomb. The document describes the program called GlassBR , which is based on the original, manually created version of GlassBR.

- The following section provides an overview of the Software Requirements Specification (SRS) for GlassBR. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. + The following section provides an overview of the software requirements specification (SRS) for GlassBR. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.

@@ -835,37 +843,37 @@

Assumptions

- glassCondition: Following astm2009 (pg. 1), this practice does not apply to any form of wired, patterned, etched, sandblasted, drilled, notched, or grooved glass with surface and edge treatments that alter the glass strength. (RefBy: UC:Accommodate-Altered-Glass.) + glassCondition: Following astm2009 (pg. 1), this practice does not apply to any form of wired, patterned, etched, sandblasted, drilled, notched, or grooved glass with surface and edge treatments that alter the glass strength. (RefBy: UC:Accommodate-Altered-Glass.)

- explainScenario: This system only considers the external explosion scenario for its calculations. (RefBy: LC:Calculate-Internal-Blast-Risk.) + explainScenario: This system only considers the external explosion scenario for its calculations. (RefBy: LC:Calculate-Internal-Blast-Risk.)

- standardValues: The values provided in Sec:Values of Auxiliary Constants are assumed for the duration of load (td), and the material properties of m, k, and E. (RefBy: IM:sdfTol, IM:nFL, IM:dimlessLoad, LC:Variable-Values-of-m,k,E, A:ldfConstant, and DD:loadDurFactor.) + standardValues: The values provided in Sec:Values of Auxiliary Constants are assumed for the duration of load (td), and the material properties of m, k, and E. (RefBy: IM:sdfTol, IM:nFL, IM:dimlessLoad, LC:Variable-Values-of-m,k,E, A:ldfConstant, and DD:loadDurFactor.)

- glassLite: Glass under consideration is assumed to be a single lite; hence, the value of LSF is equal to 1 for all calculations in GlassBR. (RefBy: LC:Accomodate-More-than-Single-Lite.) + glassLite: Glass under consideration is assumed to be a single lite; hence, the value of LSF is equal to 1 for all calculations in GlassBR. (RefBy: LC:Accomodate-More-than-Single-Lite.)

- boundaryConditions: Boundary conditions for the glass slab are assumed to be 4-sided support for calculations. (RefBy: LC:Accomodate-More-Boundary-Conditions.) + boundaryConditions: Boundary conditions for the glass slab are assumed to be 4-sided support for calculations. (RefBy: LC:Accomodate-More-Boundary-Conditions.)

- responseType: The response type considered in GlassBR is flexural. (RefBy: LC:Consider-More-than-Flexure-Glass.) + responseType: The response type considered in GlassBR is flexural. (RefBy: LC:Consider-More-than-Flexure-Glass.)

- ldfConstant: With reference to A:standardValues, the value of load duration factor (LDF) is a constant in GlassBR. (RefBy: LC:Variable-Values-of-m,k,E and DD:loadDurFactor.) + ldfConstant: With reference to A:standardValues, the value of load duration factor (LDF) is a constant in GlassBR. (RefBy: LC:Variable-Values-of-m,k,E and DD:loadDurFactor.)

@@ -2669,7 +2677,7 @@

Non-Functional Requirements

Likely Changes

- This section lists the likely changes to be made to the software. + This section lists the likely changes (LC) to be made to the software.

@@ -2704,7 +2712,7 @@

Likely Changes

Unlikely Changes

- This section lists the unlikely changes to be made to the software. + This section lists the unlikely changes (UC) to be made to the software.

diff --git a/code/stable/glassbr/SRS/Jupyter/GlassBR_SRS.ipynb b/code/stable/glassbr/SRS/Jupyter/GlassBR_SRS.ipynb index 887e53b7f21..8425a3b83c5 100644 --- a/code/stable/glassbr/SRS/Jupyter/GlassBR_SRS.ipynb +++ b/code/stable/glassbr/SRS/Jupyter/GlassBR_SRS.ipynb @@ -153,8 +153,10 @@ "|AR|Aspect Ratio|\n", "|DD|Data Definition|\n", "|FT|Fully Tempered|\n", + "|GD|General Definition|\n", "|GS|Goal Statement|\n", "|GTF|Glass Type Factor|\n", + "|GlassBR|GlassBR|\n", "|HS|Heat Strengthened|\n", "|IG|Insulating Glass|\n", "|IM|Instance Model|\n", @@ -180,7 +182,7 @@ "\n", "Explosions in downtown areas are dangerous from the blast itself and also potentially from the secondary effect of falling glass. Therefore, software is needed to predict whether a glass slab can withstand a blast under given conditions. For example, we might wish to know whether a pane of glass fails from a gas main explosion or from a small fertilizer truck bomb. The document describes the program called GlassBR , which is based on the original, manually created version of GlassBR.\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for GlassBR. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", + "The following section provides an overview of the software requirements specification (SRS) for GlassBR. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", "\n", "## Purpose of Document\n", "\n", @@ -359,7 +361,7 @@ "\n", "

\n", "
\n", - "ldfConstant: With reference to [A:standardValues](#assumpSV), the value of load duration factor ($LDF$) is a constant in GlassBR. (RefBy: [LC:Variable-Values-of-m,k,E](#varValsOfmkE) and [DD:loadDurFactor](#DD:loadDurFactor).)\n", + "ldfConstant: With reference to [A:standardValues](#assumpSV), the value of load duration factor (LDF) is a constant in GlassBR. (RefBy: [LC:Variable-Values-of-m,k,E](#varValsOfmkE) and [DD:loadDurFactor](#DD:loadDurFactor).)\n", "\n", "
\n", "\n", @@ -1960,7 +1962,7 @@ "# Likely Changes\n", "\n", "\n", - "This section lists the likely changes to be made to the software.\n", + "This section lists the likely changes (LC) to be made to the software.\n", "\n", "
\n", "Calculate-Internal-Blast-Risk: [A:explainScenario](#assumpES) - The system currently only calculates for external blast risk. In the future, calculations can be added for the internal blast risk.\n", @@ -1986,7 +1988,7 @@ "# Unlikely Changes\n", "\n", "\n", - "This section lists the unlikely changes to be made to the software.\n", + "This section lists the unlikely changes (UC) to be made to the software.\n", "\n", "
\n", "Predict-Withstanding-of-Certain-Degree: The goal of the system is to predict whether the glass slab under consideration can withstand an explosion of a certain degree.\n", diff --git a/code/stable/glassbr/SRS/PDF/GlassBR_SRS.tex b/code/stable/glassbr/SRS/PDF/GlassBR_SRS.tex index 27894d93a32..8c9385c69b9 100644 --- a/code/stable/glassbr/SRS/PDF/GlassBR_SRS.tex +++ b/code/stable/glassbr/SRS/PDF/GlassBR_SRS.tex @@ -183,10 +183,14 @@ \subsection{Abbreviations and Acronyms} \\ FT & Fully Tempered \\ +GD & General Definition +\\ GS & Goal Statement \\ GTF & Glass Type Factor \\ +GlassBR & GlassBR +\\ HS & Heat Strengthened \\ IG & Insulating Glass @@ -228,7 +232,7 @@ \section{Introduction} \label{Sec:Intro} Explosions in downtown areas are dangerous from the blast itself and also potentially from the secondary effect of falling glass. Therefore, software is needed to predict whether a glass slab can withstand a blast under given conditions. For example, we might wish to know whether a pane of glass fails from a gas main explosion or from a small fertilizer truck bomb. The document describes the program called GlassBR , which is based on the original, manually created version of \hyperref{https://github.com/smiths/caseStudies/tree/master/CaseStudies/glass}{}{}{GlassBR}. -The following section provides an overview of the Software Requirements Specification (SRS) for GlassBR. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for GlassBR. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. \subsection{Purpose of Document} \label{Sec:DocPurpose} @@ -382,7 +386,7 @@ \subsubsection{Assumptions} \item[glassLite:\phantomsection\label{assumpGL}]{Glass under consideration is assumed to be a single lite; hence, the value of LSF is equal to 1 for all calculations in GlassBR. (RefBy: \hyperref[accMoreThanSingleLite]{LC:Accomodate-More-than-Single-Lite}.)} \item[boundaryConditions:\phantomsection\label{assumpBC}]{Boundary conditions for the glass slab are assumed to be 4-sided support for calculations. (RefBy: \hyperref[accMoreBoundaryConditions]{LC:Accomodate-More-Boundary-Conditions}.)} \item[responseType:\phantomsection\label{assumpRT}]{The response type considered in GlassBR is flexural. (RefBy: \hyperref[considerMoreThanFlexGlass]{LC:Consider-More-than-Flexure-Glass}.)} -\item[ldfConstant:\phantomsection\label{assumpLDFC}]{With reference to \hyperref[assumpSV]{A:standardValues}, the value of load duration factor ($\mathit{LDF}$) is a constant in GlassBR. (RefBy: \hyperref[varValsOfmkE]{LC:Variable-Values-of-m,k,E} and \hyperref[DD:loadDurFactor]{DD:loadDurFactor}.)} +\item[ldfConstant:\phantomsection\label{assumpLDFC}]{With reference to \hyperref[assumpSV]{A:standardValues}, the value of load duration factor (LDF) is a constant in GlassBR. (RefBy: \hyperref[varValsOfmkE]{LC:Variable-Values-of-m,k,E} and \hyperref[DD:loadDurFactor]{DD:loadDurFactor}.)} \end{description} \subsubsection{Theoretical Models} \label{Sec:TMs} @@ -1450,7 +1454,7 @@ \subsection{Non-Functional Requirements} \end{description} \section{Likely Changes} \label{Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software. \begin{description}[font=\normalfont] \item[Calculate-Internal-Blast-Risk:\phantomsection\label{calcInternalBlastRisk}]{\hyperref[assumpES]{A:explainScenario} - The system currently only calculates for external blast risk. In the future, calculations can be added for the internal blast risk.} @@ -1461,7 +1465,7 @@ \section{Likely Changes} \end{description} \section{Unlikely Changes} \label{Sec:UCs} -This section lists the unlikely changes to be made to the software. +This section lists the unlikely changes (UC) to be made to the software. \begin{description}[font=\normalfont] \item[Predict-Withstanding-of-Certain-Degree:\phantomsection\label{predictWithstandOfCertDeg}]{The goal of the system is to predict whether the glass slab under consideration can withstand an explosion of a certain degree.} diff --git a/code/stable/glassbr/SRS/mdBook/src/SecAssumps.md b/code/stable/glassbr/SRS/mdBook/src/SecAssumps.md index ece52366fe9..3fd14b11628 100644 --- a/code/stable/glassbr/SRS/mdBook/src/SecAssumps.md +++ b/code/stable/glassbr/SRS/mdBook/src/SecAssumps.md @@ -32,4 +32,4 @@ responseType: The response type considered in GlassBR is flexural. (RefBy: [LC:C
-ldfConstant: With reference to [A:standardValues](./SecAssumps.md#assumpSV), the value of load duration factor (\\(\mathit{LDF}\\)) is a constant in GlassBR. (RefBy: [LC:Variable-Values-of-m,k,E](./SecLCs.md#varValsOfmkE) and [DD:loadDurFactor](./SecDDs.md#DD:loadDurFactor).) +ldfConstant: With reference to [A:standardValues](./SecAssumps.md#assumpSV), the value of load duration factor (LDF) is a constant in GlassBR. (RefBy: [LC:Variable-Values-of-m,k,E](./SecLCs.md#varValsOfmkE) and [DD:loadDurFactor](./SecDDs.md#DD:loadDurFactor).) diff --git a/code/stable/glassbr/SRS/mdBook/src/SecIntro.md b/code/stable/glassbr/SRS/mdBook/src/SecIntro.md index 9f32fc96bf5..3533ade3d5e 100644 --- a/code/stable/glassbr/SRS/mdBook/src/SecIntro.md +++ b/code/stable/glassbr/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ Explosions in downtown areas are dangerous from the blast itself and also potentially from the secondary effect of falling glass. Therefore, software is needed to predict whether a glass slab can withstand a blast under given conditions. For example, we might wish to know whether a pane of glass fails from a gas main explosion or from a small fertilizer truck bomb. The document describes the program called GlassBR , which is based on the original, manually created version of [GlassBR](https://github.com/smiths/caseStudies/tree/master/CaseStudies/glass). -The following section provides an overview of the Software Requirements Specification (SRS) for GlassBR. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for GlassBR. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. diff --git a/code/stable/glassbr/SRS/mdBook/src/SecLCs.md b/code/stable/glassbr/SRS/mdBook/src/SecLCs.md index fa12d2cbe31..0ec2f5e7b73 100644 --- a/code/stable/glassbr/SRS/mdBook/src/SecLCs.md +++ b/code/stable/glassbr/SRS/mdBook/src/SecLCs.md @@ -1,6 +1,6 @@ # Likely Changes {#Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software.
diff --git a/code/stable/glassbr/SRS/mdBook/src/SecTAbbAcc.md b/code/stable/glassbr/SRS/mdBook/src/SecTAbbAcc.md index bd2d01b305b..58e4afdd790 100644 --- a/code/stable/glassbr/SRS/mdBook/src/SecTAbbAcc.md +++ b/code/stable/glassbr/SRS/mdBook/src/SecTAbbAcc.md @@ -9,8 +9,10 @@ |AR |Aspect Ratio | |DD |Data Definition | |FT |Fully Tempered | +|GD |General Definition | |GS |Goal Statement | |GTF |Glass Type Factor | +|GlassBR |GlassBR | |HS |Heat Strengthened | |IG |Insulating Glass | |IM |Instance Model | diff --git a/code/stable/glassbr/SRS/mdBook/src/SecUCs.md b/code/stable/glassbr/SRS/mdBook/src/SecUCs.md index 2353f9781e9..ff06724ab6c 100644 --- a/code/stable/glassbr/SRS/mdBook/src/SecUCs.md +++ b/code/stable/glassbr/SRS/mdBook/src/SecUCs.md @@ -1,6 +1,6 @@ # Unlikely Changes {#Sec:UCs} -This section lists the unlikely changes to be made to the software. +This section lists the unlikely changes (UC) to be made to the software.
diff --git a/code/stable/hghc/SRS/HTML/HGHC_SRS.html b/code/stable/hghc/SRS/HTML/HGHC_SRS.html index 16c02a49f42..41a746629f1 100644 --- a/code/stable/hghc/SRS/HTML/HGHC_SRS.html +++ b/code/stable/hghc/SRS/HTML/HGHC_SRS.html @@ -164,7 +164,7 @@

Introduction

Heat transfer through the cladding of a nuclear fuel element influences performance and safety. Engineers therefore rely on dependable calculations of the heat transfer coefficients used for simulating the temperature. This document describes the requirements of a program called HGHC.

- The following section provides an overview of the Software Requirements Specification (SRS) for HGHC. This section explains the purpose of this document. + The following section provides an overview of the software requirements specification (SRS) for HGHC. This section explains the purpose of this document.

diff --git a/code/stable/hghc/SRS/Jupyter/HGHC_SRS.ipynb b/code/stable/hghc/SRS/Jupyter/HGHC_SRS.ipynb index 77063e6ac26..2c0591ade02 100644 --- a/code/stable/hghc/SRS/Jupyter/HGHC_SRS.ipynb +++ b/code/stable/hghc/SRS/Jupyter/HGHC_SRS.ipynb @@ -74,7 +74,7 @@ "\n", "Heat transfer through the cladding of a nuclear fuel element influences performance and safety. Engineers therefore rely on dependable calculations of the heat transfer coefficients used for simulating the temperature. This document describes the requirements of a program called HGHC.\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for HGHC. This section explains the purpose of this document.\n", + "The following section provides an overview of the software requirements specification (SRS) for HGHC. This section explains the purpose of this document.\n", "\n", "# Specific System Description\n", "\n", diff --git a/code/stable/hghc/SRS/PDF/HGHC_SRS.tex b/code/stable/hghc/SRS/PDF/HGHC_SRS.tex index f2e37d43929..7c87cfc5a32 100644 --- a/code/stable/hghc/SRS/PDF/HGHC_SRS.tex +++ b/code/stable/hghc/SRS/PDF/HGHC_SRS.tex @@ -73,7 +73,7 @@ \section{Introduction} \label{Sec:Intro} Heat transfer through the cladding of a nuclear fuel element influences performance and safety. Engineers therefore rely on dependable calculations of the heat transfer coefficients used for simulating the temperature. This document describes the requirements of a program called HGHC. -The following section provides an overview of the Software Requirements Specification (SRS) for HGHC. This section explains the purpose of this document. +The following section provides an overview of the software requirements specification (SRS) for HGHC. This section explains the purpose of this document. \section{Specific System Description} \label{Sec:SpecSystDesc} diff --git a/code/stable/hghc/SRS/mdBook/src/SecIntro.md b/code/stable/hghc/SRS/mdBook/src/SecIntro.md index 5281f1d3f70..0e351ef0612 100644 --- a/code/stable/hghc/SRS/mdBook/src/SecIntro.md +++ b/code/stable/hghc/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ Heat transfer through the cladding of a nuclear fuel element influences performance and safety. Engineers therefore rely on dependable calculations of the heat transfer coefficients used for simulating the temperature. This document describes the requirements of a program called HGHC. -The following section provides an overview of the Software Requirements Specification (SRS) for HGHC. This section explains the purpose of this document. +The following section provides an overview of the software requirements specification (SRS) for HGHC. This section explains the purpose of this document. diff --git a/code/stable/pdcontroller/SRS/HTML/PDController_SRS.html b/code/stable/pdcontroller/SRS/HTML/PDController_SRS.html index 444ba6162e2..1dcb13c1ffb 100644 --- a/code/stable/pdcontroller/SRS/HTML/PDController_SRS.html +++ b/code/stable/pdcontroller/SRS/HTML/PDController_SRS.html @@ -281,6 +281,14 @@

Abbreviations and Acronyms

IM Instance Model + + LC + Likely Change + + + ODE + Ordinary Differential Equation + P proportional @@ -289,6 +297,10 @@

Abbreviations and Acronyms

PD proportional derivative + + PD Controller + PD Controller + PID proportional integral derivative @@ -332,10 +344,10 @@

Abbreviations and Acronyms

Introduction

- Automatic process control with a controller (P/PI/PD/PID) is used in a variety of applications such as thermostats, automobile cruise-control, etc. The gains of a controller in an application must be tuned before the controller is ready for production. Therefore, a simulation of the PD Controller with a Second Order System is created in this project based on the original, manually created version of PD Controller that can be used to tune the gain constants. + Automatic process control with a controller (P/PI/PD/PID) is used in a variety of applications such as thermostats, automobile cruise-control, etc. The gains of a controller in an application must be tuned before the controller is ready for production. Therefore, a simulation of the PD Controller with a Second Order System is created in this project based on the original, manually created version of PD Controller that can be used to tune the gain constants.

- The following section provides an overview of the Software Requirements Specification (SRS) for PD Controller. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. + The following section provides an overview of the software requirements specification (SRS) for PD Controller. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.

@@ -566,57 +578,57 @@

Assumptions

- Power plant: The Power Plant and the Sensor are coupled as a single unit. (RefBy: A:Spring Stiffness Coefficient, A:Transfer Function, A:Spring Mass, and A:Spring Damping Coefficient.) + Power plant: The Power Plant and the Sensor are coupled as a single unit. (RefBy: A:Spring Stiffness Coefficient, A:Transfer Function, A:Spring Mass, and A:Spring Damping Coefficient.)

- Decoupled equation: The decoupled form of the PD Controller equation used in this simulation. (RefBy: DD:ddCtrlVar.) + Decoupled equation: The decoupled form of the PD Controller equation used in this simulation. (RefBy: DD:ddCtrlVar.)

- Set-Point: The Set-Point is constant throughout the simulation. (RefBy: IM:pdEquationIM and DD:ddProcessError.) + Set-Point: The Set-Point is constant throughout the simulation. (RefBy: IM:pdEquationIM and DD:ddProcessError.)

- External disturbance: There are no external disturbances to the Power Plant during the simulation. (RefBy: GD:gdPowerPlant.) + External disturbance: There are no external disturbances to the Power Plant during the simulation. (RefBy: GD:gdPowerPlant.)

- Initial Value: The initial value of the Process Variable is assumed to be zero. (RefBy: DD:ddProcessError.) + Initial Value: The initial value of the Process Variable is assumed to be zero. (RefBy: DD:ddProcessError.)

- Parallel Equation: The Parallel form of the equation is used for the PD Controller. (RefBy: DD:ddCtrlVar.) + Parallel Equation: The Parallel form of the equation is used for the PD Controller. (RefBy: DD:ddCtrlVar.)

- Unfiltered Derivative: A pure derivative function is used for this simulation; there are no filters applied. (RefBy: DD:ddDerivCtrl.) + Unfiltered Derivative: A pure derivative function is used for this simulation; there are no filters applied. (RefBy: DD:ddDerivCtrl.)

- Transfer Function: The combined Power Plant and Sensor (A:Power plant) are characterized by a Second Order mass-spring-damper System. (RefBy: TM:tmSOSystem.) + Transfer Function: The combined Power Plant and Sensor (A:Power plant) are characterized by a Second Order mass-spring-damper System. (RefBy: TM:tmSOSystem.)

- Spring Mass: The mass of the spring in the mass-spring-damper system (A:Power plant) is assumed to be 1 kilogram. (RefBy: GD:gdPowerPlant and LC:DC Gain and Time Constant.) + Spring Mass: The mass of the spring in the mass-spring-damper system (A:Power plant) is assumed to be 1 kilogram. (RefBy: GD:gdPowerPlant and LC:DC Gain and Time Constant.)

- Spring Damping Coefficient: The Damping Coefficient of the spring in the mass-spring-damper system (A:Power plant) is assumed to be 1. (RefBy: GD:gdPowerPlant and LC:DC Gain and Time Constant.) + Spring Damping Coefficient: The Damping Coefficient of the spring in the mass-spring-damper system (A:Power plant) is assumed to be 1. (RefBy: GD:gdPowerPlant and LC:DC Gain and Time Constant.)

- Spring Stiffness Coefficient: The Stiffness coefficient of the spring in the mass-spring-damper system (A:Power plant) is assumed to be 20. (RefBy: GD:gdPowerPlant and LC:DC Gain and Time Constant.) + Spring Stiffness Coefficient: The Stiffness coefficient of the spring in the mass-spring-damper system (A:Power plant) is assumed to be 20. (RefBy: GD:gdPowerPlant and LC:DC Gain and Time Constant.)

@@ -1385,7 +1397,7 @@

Non-Functional Requirements

Likely Changes

- This section lists the likely changes to be made to the software. + This section lists the likely changes (LC) to be made to the software.

diff --git a/code/stable/pdcontroller/SRS/Jupyter/PDController_SRS.ipynb b/code/stable/pdcontroller/SRS/Jupyter/PDController_SRS.ipynb index c3b42429ff7..1bba4237fc7 100644 --- a/code/stable/pdcontroller/SRS/Jupyter/PDController_SRS.ipynb +++ b/code/stable/pdcontroller/SRS/Jupyter/PDController_SRS.ipynb @@ -115,8 +115,11 @@ "|GD|General Definition|\n", "|GS|Goal Statement|\n", "|IM|Instance Model|\n", + "|LC|Likely Change|\n", + "|ODE|Ordinary Differential Equation|\n", "|P|proportional|\n", "|PD|proportional derivative|\n", + "|PD Controller|PD Controller|\n", "|PID|proportional integral derivative|\n", "|PS|Physical System Description|\n", "|R|Requirement|\n", @@ -132,7 +135,7 @@ "\n", "Automatic process control with a controller (P/PI/PD/PID) is used in a variety of applications such as thermostats, automobile cruise-control, etc. The gains of a controller in an application must be tuned before the controller is ready for production. Therefore, a simulation of the PD Controller with a Second Order System is created in this project based on the original, manually created version of PD Controller that can be used to tune the gain constants.\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for PD Controller. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", + "The following section provides an overview of the software requirements specification (SRS) for PD Controller. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", "\n", "## Purpose of Document\n", "\n", @@ -982,7 +985,7 @@ "# Likely Changes\n", "\n", "\n", - "This section lists the likely changes to be made to the software.\n", + "This section lists the likely changes (LC) to be made to the software.\n", "\n", "

\n", "DC Gain and Time Constant: The mass, Damping Coefficient and the Stiffness coefficient may be changed to be supplied by the user (from [A:Spring Mass](#massSpring), [A:Spring Damping Coefficient](#dampingCoeffSpring), and [A:Spring Stiffness Coefficient](#stiffnessCoeffSpring)).\n", diff --git a/code/stable/pdcontroller/SRS/PDF/PDController_SRS.tex b/code/stable/pdcontroller/SRS/PDF/PDController_SRS.tex index adf2e42c3b5..2de8abe0336 100644 --- a/code/stable/pdcontroller/SRS/PDF/PDController_SRS.tex +++ b/code/stable/pdcontroller/SRS/PDF/PDController_SRS.tex @@ -119,10 +119,16 @@ \subsection{Abbreviations and Acronyms} \\ IM & Instance Model \\ +LC & Likely Change +\\ +ODE & Ordinary Differential Equation +\\ P & proportional \\ PD & proportional derivative \\ +PD Controller & PD Controller +\\ PID & proportional integral derivative \\ PS & Physical System Description @@ -144,7 +150,7 @@ \section{Introduction} \label{Sec:Intro} Automatic process control with a controller (P/PI/PD/PID) is used in a variety of applications such as thermostats, automobile cruise-control, etc. The gains of a controller in an application must be tuned before the controller is ready for production. Therefore, a simulation of the PD Controller with a Second Order System is created in this project based on the original, manually created version of \hyperref{https://github.com/muralidn/CAS741-Fall20/tree/master}{}{}{PD Controller} that can be used to tune the gain constants. -The following section provides an overview of the Software Requirements Specification (SRS) for PD Controller. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for PD Controller. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. \subsection{Purpose of Document} \label{Sec:DocPurpose} @@ -725,7 +731,7 @@ \subsection{Non-Functional Requirements} \end{description} \section{Likely Changes} \label{Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software. \begin{description}[font=\normalfont] \item[DC Gain and Time Constant:\phantomsection\label{likeChgPP}]{The mass, Damping Coefficient and the Stiffness coefficient may be changed to be supplied by the user (from \hyperref[massSpring]{A:Spring Mass}, \hyperref[dampingCoeffSpring]{A:Spring Damping Coefficient}, and \hyperref[stiffnessCoeffSpring]{A:Spring Stiffness Coefficient}).} diff --git a/code/stable/pdcontroller/SRS/mdBook/src/SecIntro.md b/code/stable/pdcontroller/SRS/mdBook/src/SecIntro.md index 7cf40606dbb..a52d08b5051 100644 --- a/code/stable/pdcontroller/SRS/mdBook/src/SecIntro.md +++ b/code/stable/pdcontroller/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ Automatic process control with a controller (P/PI/PD/PID) is used in a variety of applications such as thermostats, automobile cruise-control, etc. The gains of a controller in an application must be tuned before the controller is ready for production. Therefore, a simulation of the PD Controller with a Second Order System is created in this project based on the original, manually created version of [PD Controller](https://github.com/muralidn/CAS741-Fall20/tree/master) that can be used to tune the gain constants. -The following section provides an overview of the Software Requirements Specification (SRS) for PD Controller. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for PD Controller. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. diff --git a/code/stable/pdcontroller/SRS/mdBook/src/SecLCs.md b/code/stable/pdcontroller/SRS/mdBook/src/SecLCs.md index 611c8af3257..51bb662d3cb 100644 --- a/code/stable/pdcontroller/SRS/mdBook/src/SecLCs.md +++ b/code/stable/pdcontroller/SRS/mdBook/src/SecLCs.md @@ -1,6 +1,6 @@ # Likely Changes {#Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software.
diff --git a/code/stable/pdcontroller/SRS/mdBook/src/SecTAbbAcc.md b/code/stable/pdcontroller/SRS/mdBook/src/SecTAbbAcc.md index 40efa73e6a8..f93e59a1040 100644 --- a/code/stable/pdcontroller/SRS/mdBook/src/SecTAbbAcc.md +++ b/code/stable/pdcontroller/SRS/mdBook/src/SecTAbbAcc.md @@ -2,22 +2,25 @@
-|Abbreviation|Full Form | -|:-----------|:----------------------------------| -|A |Assumption | -|DD |Data Definition | -|GD |General Definition | -|GS |Goal Statement | -|IM |Instance Model | -|P |proportional | -|PD |proportional derivative | -|PID |proportional integral derivative | -|PS |Physical System Description | -|R |Requirement | -|RefBy |Referenced by | -|Refname |Reference Name | -|SRS |Software Requirements Specification| -|TM |Theoretical Model | -|Uncert. |Typical Uncertainty | +|Abbreviation |Full Form | +|:------------|:----------------------------------| +|A |Assumption | +|DD |Data Definition | +|GD |General Definition | +|GS |Goal Statement | +|IM |Instance Model | +|LC |Likely Change | +|ODE |Ordinary Differential Equation | +|P |proportional | +|PD |proportional derivative | +|PD Controller|PD Controller | +|PID |proportional integral derivative | +|PS |Physical System Description | +|R |Requirement | +|RefBy |Referenced by | +|Refname |Reference Name | +|SRS |Software Requirements Specification| +|TM |Theoretical Model | +|Uncert. |Typical Uncertainty | **

Abbreviations and Acronyms

** diff --git a/code/stable/projectile/SRS/HTML/Projectile_SRS.html b/code/stable/projectile/SRS/HTML/Projectile_SRS.html index 6345f0b3227..bcf172e2b3f 100644 --- a/code/stable/projectile/SRS/HTML/Projectile_SRS.html +++ b/code/stable/projectile/SRS/HTML/Projectile_SRS.html @@ -379,10 +379,18 @@

Abbreviations and Acronyms

IM Instance Model + + LC + Likely Change + PS Physical System Description + + Projectile + Projectile + R Requirement @@ -421,7 +429,7 @@

Introduction

Projectile motion is a common problem in physics. Therefore, it is useful to have a program to solve and model these types of problems. Common examples of projectile motion include ballistics problems (missiles, bullets, etc.) and the flight of balls in various sports (baseball, golf, football, etc.). The document describes the program called Projectile , which is based on the original, manually created version of Projectile.

- The following section provides an overview of the Software Requirements Specification (SRS) for Projectile. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. + The following section provides an overview of the software requirements specification (SRS) for Projectile. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.

@@ -619,77 +627,77 @@

Assumptions

- twoDMotion: The projectile motion is two-dimensional (2D). (RefBy: GD:velVec and GD:posVec.) + twoDMotion: The projectile motion is two-dimensional (2D). (RefBy: GD:velVec and GD:posVec.)

- cartSyst: A Cartesian coordinate system is used (from A:neglectCurv). (RefBy: GD:velVec and GD:posVec.) + cartSyst: A Cartesian coordinate system is used (from A:neglectCurv). (RefBy: GD:velVec and GD:posVec.)

- yAxisGravity: The direction of the y-axis is directed opposite to gravity. (RefBy: IM:calOfLandingDist, IM:calOfLandingTime, and A:accelYGravity.) + yAxisGravity: The direction of the y-axis is directed opposite to gravity. (RefBy: IM:calOfLandingDist, IM:calOfLandingTime, and A:accelYGravity.)

- launchOrigin: The launcher is coincident with the origin. (RefBy: IM:calOfLandingDist and IM:calOfLandingTime.) + launchOrigin: The launcher is coincident with the origin. (RefBy: IM:calOfLandingDist and IM:calOfLandingTime.)

- targetXAxis: The target lies on the x-axis (from A:neglectCurv). (RefBy: IM:calOfLandingTime.) + targetXAxis: The target lies on the x-axis (from A:neglectCurv). (RefBy: IM:calOfLandingTime.)

- posXDirection: The positive x-direction is from the launcher to the target. (RefBy: IM:offsetIM, IM:calOfLandingDist, and IM:calOfLandingTime.) + posXDirection: The positive x-direction is from the launcher to the target. (RefBy: IM:offsetIM, IM:calOfLandingDist, and IM:calOfLandingTime.)

- constAccel: The acceleration is constant (from A:accelXZero, A:accelYGravity, A:neglectDrag, and A:freeFlight). (RefBy: GD:velVec and GD:posVec.) + constAccel: The acceleration is constant (from A:accelXZero, A:accelYGravity, A:neglectDrag, and A:freeFlight). (RefBy: GD:velVec and GD:posVec.)

- accelXZero: The acceleration in the x-direction is zero. (RefBy: IM:calOfLandingDist and A:constAccel.) + accelXZero: The acceleration in the x-direction is zero. (RefBy: IM:calOfLandingDist and A:constAccel.)

- accelYGravity: The acceleration in the y-direction is the acceleration due to gravity (from A:yAxisGravity). (RefBy: IM:calOfLandingTime and A:constAccel.) + accelYGravity: The acceleration in the y-direction is the acceleration due to gravity (from A:yAxisGravity). (RefBy: IM:calOfLandingTime and A:constAccel.)

- neglectDrag: Air drag is neglected. (RefBy: A:constAccel and LC:Consider-Air-Drag.) + neglectDrag: Air drag is neglected. (RefBy: A:constAccel and LC:Consider-Air-Drag.)

- pointMass: The size and shape of the projectile are negligible, so that it can be modelled as a point mass. (RefBy: GD:rectVel and GD:rectPos.) + pointMass: The size and shape of the projectile are negligible, so that it can be modelled as a point mass. (RefBy: GD:rectVel and GD:rectPos.)

- freeFlight: The flight is free; there are no collisions during the trajectory of the projectile. (RefBy: A:constAccel.) + freeFlight: The flight is free; there are no collisions during the trajectory of the projectile. (RefBy: A:constAccel.)

- neglectCurv: The distance is small enough that the curvature of the celestial body can be neglected. (RefBy: A:targetXAxis and A:cartSyst.) + neglectCurv: The distance is small enough that the curvature of the celestial body can be neglected. (RefBy: A:targetXAxis and A:cartSyst.)

- timeStartZero: Time starts at zero. (RefBy: GD:velVec, GD:rectVel, GD:rectPos, GD:posVec, and IM:calOfLandingTime.) + timeStartZero: Time starts at zero. (RefBy: GD:velVec, GD:rectVel, GD:rectPos, GD:posVec, and IM:calOfLandingTime.)

- gravAccelValue: The acceleration due to gravity is assumed to have the value provided in the section for Values of Auxiliary Constants. (RefBy: IM:calOfLandingDist and IM:calOfLandingTime.) + gravAccelValue: The acceleration due to gravity is assumed to have the value provided in the section for Values of Auxiliary Constants. (RefBy: IM:calOfLandingDist and IM:calOfLandingTime.)

@@ -1811,7 +1819,7 @@

Non-Functional Requirements

Likely Changes

- This section lists the likely changes to be made to the software. + This section lists the likely changes (LC) to be made to the software.

diff --git a/code/stable/projectile/SRS/Jupyter/Projectile_SRS.ipynb b/code/stable/projectile/SRS/Jupyter/Projectile_SRS.ipynb index c162d710dbe..c4f106889eb 100644 --- a/code/stable/projectile/SRS/Jupyter/Projectile_SRS.ipynb +++ b/code/stable/projectile/SRS/Jupyter/Projectile_SRS.ipynb @@ -135,7 +135,9 @@ "|GD|General Definition|\n", "|GS|Goal Statement|\n", "|IM|Instance Model|\n", + "|LC|Likely Change|\n", "|PS|Physical System Description|\n", + "|Projectile|Projectile|\n", "|R|Requirement|\n", "|RefBy|Referenced by|\n", "|Refname|Reference Name|\n", @@ -149,7 +151,7 @@ "\n", "Projectile motion is a common problem in physics. Therefore, it is useful to have a program to solve and model these types of problems. Common examples of projectile motion include ballistics problems (missiles, bullets, etc.) and the flight of balls in various sports (baseball, golf, football, etc.). The document describes the program called Projectile , which is based on the original, manually created version of Projectile.\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for Projectile. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", + "The following section provides an overview of the software requirements specification (SRS) for Projectile. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", "\n", "## Purpose of Document\n", "\n", @@ -1288,7 +1290,7 @@ "# Likely Changes\n", "\n", "\n", - "This section lists the likely changes to be made to the software.\n", + "This section lists the likely changes (LC) to be made to the software.\n", "\n", "

\n", "Consider-Air-Drag: [A:neglectDrag](#neglectDrag) - The software may be changed to consider the effect of air drag on the projectile during its flight.\n", diff --git a/code/stable/projectile/SRS/PDF/Projectile_SRS.tex b/code/stable/projectile/SRS/PDF/Projectile_SRS.tex index db5f59e44b0..19049e0522a 100644 --- a/code/stable/projectile/SRS/PDF/Projectile_SRS.tex +++ b/code/stable/projectile/SRS/PDF/Projectile_SRS.tex @@ -155,8 +155,12 @@ \subsection{Abbreviations and Acronyms} \\ IM & Instance Model \\ +LC & Likely Change +\\ PS & Physical System Description \\ +Projectile & Projectile +\\ R & Requirement \\ RefBy & Referenced by @@ -174,7 +178,7 @@ \section{Introduction} \label{Sec:Intro} Projectile motion is a common problem in physics. Therefore, it is useful to have a program to solve and model these types of problems. Common examples of projectile motion include ballistics problems (missiles, bullets, etc.) and the flight of balls in various sports (baseball, golf, football, etc.). The document describes the program called Projectile , which is based on the original, manually created version of \hyperref{https://github.com/smiths/caseStudies/tree/master/CaseStudies/projectile}{}{}{Projectile}. -The following section provides an overview of the Software Requirements Specification (SRS) for Projectile. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for Projectile. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. \subsection{Purpose of Document} \label{Sec:DocPurpose} @@ -1014,7 +1018,7 @@ \subsection{Non-Functional Requirements} \end{description} \section{Likely Changes} \label{Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software. \begin{description}[font=\normalfont] \item[Consider-Air-Drag:\phantomsection\label{considerAirDrag}]{\hyperref[neglectDrag]{A:neglectDrag} - The software may be changed to consider the effect of air drag on the projectile during its flight.} diff --git a/code/stable/projectile/SRS/mdBook/src/SecIntro.md b/code/stable/projectile/SRS/mdBook/src/SecIntro.md index 67f0e772a42..94e2433f6e9 100644 --- a/code/stable/projectile/SRS/mdBook/src/SecIntro.md +++ b/code/stable/projectile/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ Projectile motion is a common problem in physics. Therefore, it is useful to have a program to solve and model these types of problems. Common examples of projectile motion include ballistics problems (missiles, bullets, etc.) and the flight of balls in various sports (baseball, golf, football, etc.). The document describes the program called Projectile , which is based on the original, manually created version of [Projectile](https://github.com/smiths/caseStudies/tree/master/CaseStudies/projectile). -The following section provides an overview of the Software Requirements Specification (SRS) for Projectile. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for Projectile. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. diff --git a/code/stable/projectile/SRS/mdBook/src/SecLCs.md b/code/stable/projectile/SRS/mdBook/src/SecLCs.md index 87eb6a90cf1..e062620c487 100644 --- a/code/stable/projectile/SRS/mdBook/src/SecLCs.md +++ b/code/stable/projectile/SRS/mdBook/src/SecLCs.md @@ -1,6 +1,6 @@ # Likely Changes {#Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software.
diff --git a/code/stable/projectile/SRS/mdBook/src/SecTAbbAcc.md b/code/stable/projectile/SRS/mdBook/src/SecTAbbAcc.md index 227d23f5384..9123a4888d9 100644 --- a/code/stable/projectile/SRS/mdBook/src/SecTAbbAcc.md +++ b/code/stable/projectile/SRS/mdBook/src/SecTAbbAcc.md @@ -11,7 +11,9 @@ |GD |General Definition | |GS |Goal Statement | |IM |Instance Model | +|LC |Likely Change | |PS |Physical System Description | +|Projectile |Projectile | |R |Requirement | |RefBy |Referenced by | |Refname |Reference Name | diff --git a/code/stable/sglpend/SRS/HTML/SglPend_SRS.html b/code/stable/sglpend/SRS/HTML/SglPend_SRS.html index 9b2416eadcc..248350e1954 100644 --- a/code/stable/sglpend/SRS/HTML/SglPend_SRS.html +++ b/code/stable/sglpend/SRS/HTML/SglPend_SRS.html @@ -396,7 +396,7 @@

Introduction

A pendulum consists of mass attached to the end of a rod and its moving curve is highly sensitive to initial conditions. Therefore, it is useful to have a program to simulate the motion of the pendulum to exhibit its chaotic characteristics. The document describes the program called Single Pendulum , which is based on the original, manually created version of Double Pendulum.

- The following section provides an overview of the Software Requirements Specification (SRS) for Single Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. + The following section provides an overview of the software requirements specification (SRS) for Single Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.

diff --git a/code/stable/sglpend/SRS/Jupyter/SglPend_SRS.ipynb b/code/stable/sglpend/SRS/Jupyter/SglPend_SRS.ipynb index 6c729cd6d46..f1fc99aa55b 100644 --- a/code/stable/sglpend/SRS/Jupyter/SglPend_SRS.ipynb +++ b/code/stable/sglpend/SRS/Jupyter/SglPend_SRS.ipynb @@ -144,7 +144,7 @@ "\n", "A pendulum consists of mass attached to the end of a rod and its moving curve is highly sensitive to initial conditions. Therefore, it is useful to have a program to simulate the motion of the pendulum to exhibit its chaotic characteristics. The document describes the program called Single Pendulum , which is based on the original, manually created version of Double Pendulum.\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for Single Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", + "The following section provides an overview of the software requirements specification (SRS) for Single Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", "\n", "## Purpose of Document\n", "\n", diff --git a/code/stable/sglpend/SRS/PDF/SglPend_SRS.tex b/code/stable/sglpend/SRS/PDF/SglPend_SRS.tex index 1e40b82f9cd..64414a60749 100644 --- a/code/stable/sglpend/SRS/PDF/SglPend_SRS.tex +++ b/code/stable/sglpend/SRS/PDF/SglPend_SRS.tex @@ -166,7 +166,7 @@ \section{Introduction} \label{Sec:Intro} A pendulum consists of mass attached to the end of a rod and its moving curve is highly sensitive to initial conditions. Therefore, it is useful to have a program to simulate the motion of the pendulum to exhibit its chaotic characteristics. The document describes the program called Single Pendulum , which is based on the original, manually created version of \hyperref{https://github.com/Zhang-Zhi-ZZ/CAS741Project/tree/master/Double%20Pendulum}{}{}{Double Pendulum}. -The following section provides an overview of the Software Requirements Specification (SRS) for Single Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for Single Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. \subsection{Purpose of Document} \label{Sec:DocPurpose} diff --git a/code/stable/sglpend/SRS/mdBook/src/SecIntro.md b/code/stable/sglpend/SRS/mdBook/src/SecIntro.md index e02bd6a5eda..f15f29b16e0 100644 --- a/code/stable/sglpend/SRS/mdBook/src/SecIntro.md +++ b/code/stable/sglpend/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ A pendulum consists of mass attached to the end of a rod and its moving curve is highly sensitive to initial conditions. Therefore, it is useful to have a program to simulate the motion of the pendulum to exhibit its chaotic characteristics. The document describes the program called Single Pendulum , which is based on the original, manually created version of [Double Pendulum](https://github.com/Zhang-Zhi-ZZ/CAS741Project/tree/master/Double%20Pendulum). -The following section provides an overview of the Software Requirements Specification (SRS) for Single Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for Single Pendulum. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. diff --git a/code/stable/ssp/SRS/HTML/SSP_SRS.html b/code/stable/ssp/SRS/HTML/SSP_SRS.html index e001b02e73b..ee07eb6fe13 100644 --- a/code/stable/ssp/SRS/HTML/SSP_SRS.html +++ b/code/stable/ssp/SRS/HTML/SSP_SRS.html @@ -899,7 +899,7 @@

Introduction

A slope of geological mass, composed of soil and rock and sometimes water, is subject to the influence of gravity on the mass. This can cause instability in the form of soil or rock movement. The effects of soil or rock movement can range from inconvenient to seriously hazardous, resulting in significant life and economic losses. Slope stability is of interest both when analysing natural slopes, and when designing an excavated slope. Slope stability analysis is the assessment of the safety of a slope, identifying the surface most likely to experience slip and an index of its relative stability known as the factor of safety..

- The following section provides an overview of the Software Requirements Specification (SRS) for a slope stability analysis problem. The developed program will be referred to as the Slope Stability analysis Program (SSP) based on the original, manually created version of SSP. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. + The following section provides an overview of the software requirements specification (SRS) for a slope stability analysis problem. The developed program will be referred to as the Slope Stability analysis Program (SSP) based on the original, manually created version of SSP. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.

@@ -1166,82 +1166,82 @@

Assumptions

- Slip-Surface-Concave: The slip surface is concave with respect to the slope surface. The (xslip, yslip) coordinates of a slip surface follow a concave up function. (RefBy: IM:crtSlpId.) + Slip-Surface-Concave: The slip surface is concave with respect to the slope surface. The (xslip, yslip) coordinates of a slip surface follow a concave up function. (RefBy: IM:crtSlpId.)

- Factor-of-Safety: The factor of safety is assumed to be constant across the entire slip surface. (RefBy: GD:mobShr.) + Factor-of-Safety: The factor of safety is assumed to be constant across the entire slip surface. (RefBy: GD:mobShr.)

- Soil-Layer-Homogeneous: The soil mass is homogeneous, with consistent soil properties throughout. (RefBy: GD:sliceWght, GD:resShr, and LC:Calculate-Inhomogeneous-Soil-Layers.) + Soil-Layer-Homogeneous: The soil mass is homogeneous, with consistent soil properties throughout. (RefBy: GD:sliceWght, GD:resShr, and LC:Calculate-Inhomogeneous-Soil-Layers.)

- Soil-Properties: The soil properties are independent of dry or saturated conditions, with the exception of unit weight. (RefBy: GD:resShr.) + Soil-Properties: The soil properties are independent of dry or saturated conditions, with the exception of unit weight. (RefBy: GD:resShr.)

- Soil-Layers-Isotropic: The soil mass is treated as if the effective cohesion and effective angle of friction are isotropic properties. (RefBy: GD:resShr.) + Soil-Layers-Isotropic: The soil mass is treated as if the effective cohesion and effective angle of friction are isotropic properties. (RefBy: GD:resShr.)

- Interslice-Norm-Shear-Forces-Linear: Following the assumption of Morgenstern and Price (morgenstern1965), interslice normal forces and interslice shear forces have a proportional relationship, depending on a proportionality constant (λ) and a function (f) describing variation depending on x position. (RefBy: IM:nrmShrFor, GD:normShrR, IM:fctSfty, and UC:Normal-And-Shear-Linear-Only.) + Interslice-Norm-Shear-Forces-Linear: Following the assumption of Morgenstern and Price (morgenstern1965), interslice normal forces and interslice shear forces have a proportional relationship, depending on a proportionality constant (λ) and a function (f) describing variation depending on x position. (RefBy: IM:nrmShrFor, GD:normShrR, IM:fctSfty, and UC:Normal-And-Shear-Linear-Only.)

- Plane-Strain-Conditions: The slope and slip surface extends far into and out of the geometry (z coordinate). This implies plane strain conditions, making 2D analysis appropriate. (RefBy: GD:srfWtrF, GD:sliceWght, GD:resShr, GD:effNormF, and GD:baseWtrF.) + Plane-Strain-Conditions: The slope and slip surface extends far into and out of the geometry (z coordinate). This implies plane strain conditions, making 2D analysis appropriate. (RefBy: GD:srfWtrF, GD:sliceWght, GD:resShr, GD:effNormF, and GD:baseWtrF.)

- Effective-Norm-Stress-Large: The effective normal stress is large enough that the shear strength to effective normal stress relationship can be approximated as a linear relationship. (RefBy: TM:equilibrium and UC:2D-Analysis-Only.) + Effective-Norm-Stress-Large: The effective normal stress is large enough that the shear strength to effective normal stress relationship can be approximated as a linear relationship. (RefBy: TM:equilibrium and UC:2D-Analysis-Only.)

- Surface-Base-Slice-between-Interslice-Straight-Lines: The surface and base of a slice are approximated as straight lines. (RefBy: GD:srfWtrF, GD:sliceWght, TM:mcShrStrgth, GD:baseWtrF, DD:slcHeight, DD:angleB, and DD:angleA.) + Surface-Base-Slice-between-Interslice-Straight-Lines: The surface and base of a slice are approximated as straight lines. (RefBy: GD:srfWtrF, GD:sliceWght, TM:mcShrStrgth, GD:baseWtrF, DD:slcHeight, DD:angleB, and DD:angleA.)

- Edge-Slices: The interslice forces at the 0th and nth interslice interfaces are zero. (RefBy: IM:nrmShrFor, IM:intsliceFs, and IM:fctSfty.) + Edge-Slices: The interslice forces at the 0th and nth interslice interfaces are zero. (RefBy: IM:nrmShrFor, IM:intsliceFs, and IM:fctSfty.)

- Seismic-Force: There is no seismic force acting on the slope. (RefBy: IM:nrmShrFor, IM:fctSfty, and LC:Calculate-Seismic-Force.) + Seismic-Force: There is no seismic force acting on the slope. (RefBy: IM:nrmShrFor, IM:fctSfty, and LC:Calculate-Seismic-Force.)

- Surface-Load: There is no imposed surface load, and therefore no external forces, acting on the slope. (RefBy: IM:nrmShrFor, IM:fctSfty, and LC:Calculate-External-Force.) + Surface-Load: There is no imposed surface load, and therefore no external forces, acting on the slope. (RefBy: IM:nrmShrFor, IM:fctSfty, and LC:Calculate-External-Force.)

- Water-Intersects-Base-Edge: The water table only intersects the base of a slice at an edge of the slice. (RefBy: GD:sliceWght and GD:baseWtrF.) + Water-Intersects-Base-Edge: The water table only intersects the base of a slice at an edge of the slice. (RefBy: GD:sliceWght and GD:baseWtrF.)

- Water-Intersects-Surface-Edge: The water table only intersects the slope surface at the edge of a slice. (RefBy: GD:srfWtrF and GD:sliceWght.) + Water-Intersects-Surface-Edge: The water table only intersects the slope surface at the edge of a slice. (RefBy: GD:srfWtrF and GD:sliceWght.)

- Negligible-Effect-Surface-Slope-Seismic: The effect of the slope of the surface of the soil on the seismic force is assumed to be negligible. (RefBy: GD:momentEql.) + Negligible-Effect-Surface-Slope-Seismic: The effect of the slope of the surface of the soil on the seismic force is assumed to be negligible. (RefBy: GD:momentEql.)

- Hydrostatic-Force-Slice-Midpoint: The resultant surface hydrostatic forces act into the midpoint of each slice surface and the resultant base hydrostatic forces act into the midpoint of each slice base. (RefBy: GD:srfWtrF, GD:momentEql, and GD:baseWtrF.) + Hydrostatic-Force-Slice-Midpoint: The resultant surface hydrostatic forces act into the midpoint of each slice surface and the resultant base hydrostatic forces act into the midpoint of each slice base. (RefBy: GD:srfWtrF, GD:momentEql, and GD:baseWtrF.)

@@ -4728,7 +4728,7 @@

Non-Functional Requirements

Likely Changes

- This section lists the likely changes to be made to the software. + This section lists the likely changes (LC) to be made to the software.

@@ -4753,7 +4753,7 @@

Likely Changes

Unlikely Changes

- This section lists the unlikely changes to be made to the software. + This section lists the unlikely changes (UC) to be made to the software.

diff --git a/code/stable/ssp/SRS/Jupyter/SSP_SRS.ipynb b/code/stable/ssp/SRS/Jupyter/SSP_SRS.ipynb index 38f7c7dd5d6..266611b941e 100644 --- a/code/stable/ssp/SRS/Jupyter/SSP_SRS.ipynb +++ b/code/stable/ssp/SRS/Jupyter/SSP_SRS.ipynb @@ -213,7 +213,7 @@ "\n", "A slope of geological mass, composed of soil and rock and sometimes water, is subject to the influence of gravity on the mass. This can cause instability in the form of soil or rock movement. The effects of soil or rock movement can range from inconvenient to seriously hazardous, resulting in significant life and economic losses. Slope stability is of interest both when analysing natural slopes, and when designing an excavated slope. Slope stability analysis is the assessment of the safety of a slope, identifying the surface most likely to experience slip and an index of its relative stability known as the factor of safety..\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for a slope stability analysis problem. The developed program will be referred to as the Slope Stability analysis Program (SSP) based on the original, manually created version of SSP. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", + "The following section provides an overview of the software requirements specification (SRS) for a slope stability analysis problem. The developed program will be referred to as the Slope Stability analysis Program (SSP) based on the original, manually created version of SSP. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", "\n", "## Purpose of Document\n", "\n", @@ -3582,7 +3582,7 @@ "# Likely Changes\n", "\n", "\n", - "This section lists the likely changes to be made to the software.\n", + "This section lists the likely changes (LC) to be made to the software.\n", "\n", "

\n", "Calculate-Inhomogeneous-Soil-Layers: [A:Soil-Layer-Homogeneous](#assumpSLH) - The system currently assumes the soil mass is homogeneous. In the future, calculations can be added for inconsistent soil properties throughout.\n", @@ -3600,7 +3600,7 @@ "# Unlikely Changes\n", "\n", "\n", - "This section lists the unlikely changes to be made to the software.\n", + "This section lists the unlikely changes (UC) to be made to the software.\n", "\n", "
\n", "Normal-And-Shear-Linear-Only: Changes related to [A:Interslice-Norm-Shear-Forces-Linear](#assumpINSFL) are not possible due to the dependency of the calculations on the linear relationship between interslice normal forces and interslice shear forces.\n", diff --git a/code/stable/ssp/SRS/PDF/SSP_SRS.tex b/code/stable/ssp/SRS/PDF/SSP_SRS.tex index 88366584046..dfec3cad7a3 100644 --- a/code/stable/ssp/SRS/PDF/SSP_SRS.tex +++ b/code/stable/ssp/SRS/PDF/SSP_SRS.tex @@ -300,7 +300,7 @@ \section{Introduction} \label{Sec:Intro} A slope of geological mass, composed of soil and rock and sometimes water, is subject to the influence of gravity on the mass. This can cause instability in the form of soil or rock movement. The effects of soil or rock movement can range from inconvenient to seriously hazardous, resulting in significant life and economic losses. Slope stability is of interest both when analysing natural slopes, and when designing an excavated slope. Slope stability analysis is the assessment of the safety of a slope, identifying the surface most likely to experience slip and an index of its relative stability known as the factor of safety.. -The following section provides an overview of the Software Requirements Specification (SRS) for a slope stability analysis problem. The developed program will be referred to as the Slope Stability analysis Program (SSP) based on the original, manually created version of \hyperref{https://github.com/smiths/caseStudies/blob/master/CaseStudies/ssp}{}{}{SSP}. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for a slope stability analysis problem. The developed program will be referred to as the Slope Stability analysis Program (SSP) based on the original, manually created version of \hyperref{https://github.com/smiths/caseStudies/blob/master/CaseStudies/ssp}{}{}{SSP}. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. \subsection{Purpose of Document} \label{Sec:DocPurpose} @@ -2674,7 +2674,7 @@ \subsection{Non-Functional Requirements} \end{description} \section{Likely Changes} \label{Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software. \begin{description}[font=\normalfont] \item[Calculate-Inhomogeneous-Soil-Layers:\phantomsection\label{LC_inhomogeneous}]{\hyperref[assumpSLH]{A:Soil-Layer-Homogeneous} - The system currently assumes the soil mass is homogeneous. In the future, calculations can be added for inconsistent soil properties throughout.} @@ -2683,7 +2683,7 @@ \section{Likely Changes} \end{description} \section{Unlikely Changes} \label{Sec:UCs} -This section lists the unlikely changes to be made to the software. +This section lists the unlikely changes (UC) to be made to the software. \begin{description}[font=\normalfont] \item[Normal-And-Shear-Linear-Only:\phantomsection\label{UC_normshearlinear}]{Changes related to \hyperref[assumpINSFL]{A:Interslice-Norm-Shear-Forces-Linear} are not possible due to the dependency of the calculations on the linear relationship between interslice normal forces and interslice shear forces.} diff --git a/code/stable/ssp/SRS/mdBook/src/SecIntro.md b/code/stable/ssp/SRS/mdBook/src/SecIntro.md index cd92c9b275f..bfe7f9262da 100644 --- a/code/stable/ssp/SRS/mdBook/src/SecIntro.md +++ b/code/stable/ssp/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ A slope of geological mass, composed of soil and rock and sometimes water, is subject to the influence of gravity on the mass. This can cause instability in the form of soil or rock movement. The effects of soil or rock movement can range from inconvenient to seriously hazardous, resulting in significant life and economic losses. Slope stability is of interest both when analysing natural slopes, and when designing an excavated slope. Slope stability analysis is the assessment of the safety of a slope, identifying the surface most likely to experience slip and an index of its relative stability known as the factor of safety.. -The following section provides an overview of the Software Requirements Specification (SRS) for a slope stability analysis problem. The developed program will be referred to as the Slope Stability analysis Program (SSP) based on the original, manually created version of [SSP](https://github.com/smiths/caseStudies/blob/master/CaseStudies/ssp). This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for a slope stability analysis problem. The developed program will be referred to as the Slope Stability analysis Program (SSP) based on the original, manually created version of [SSP](https://github.com/smiths/caseStudies/blob/master/CaseStudies/ssp). This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. diff --git a/code/stable/ssp/SRS/mdBook/src/SecLCs.md b/code/stable/ssp/SRS/mdBook/src/SecLCs.md index 7c98fd46049..8e5c92a3ada 100644 --- a/code/stable/ssp/SRS/mdBook/src/SecLCs.md +++ b/code/stable/ssp/SRS/mdBook/src/SecLCs.md @@ -1,6 +1,6 @@ # Likely Changes {#Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software.
diff --git a/code/stable/ssp/SRS/mdBook/src/SecUCs.md b/code/stable/ssp/SRS/mdBook/src/SecUCs.md index 25012f62454..184411f9542 100644 --- a/code/stable/ssp/SRS/mdBook/src/SecUCs.md +++ b/code/stable/ssp/SRS/mdBook/src/SecUCs.md @@ -1,6 +1,6 @@ # Unlikely Changes {#Sec:UCs} -This section lists the unlikely changes to be made to the software. +This section lists the unlikely changes (UC) to be made to the software.
diff --git a/code/stable/swhs/SRS/HTML/SWHS_SRS.html b/code/stable/swhs/SRS/HTML/SWHS_SRS.html index 97b80a78010..9d0cb086141 100644 --- a/code/stable/swhs/SRS/HTML/SWHS_SRS.html +++ b/code/stable/swhs/SRS/HTML/SWHS_SRS.html @@ -745,6 +745,10 @@

Abbreviations and Acronyms

SWHS Solar Water Heating System + + SWHS + Solar Water Heating Systems Incorporating PCM + TM Theoretical Model @@ -771,7 +775,7 @@

Introduction

Due to increasing costs, diminishing availability, and negative environmental impact of fossil fuels, the demand is high for renewable energy sources and energy storage technology. Solar water heating systems incorporating phase change material (PCM) use a renewable energy source and provide a novel way of storing energy. Solar water heating systems incorporating PCM improve over the traditional solar water heating systems because of their smaller size. The smaller size is possible because of the ability of PCM to store thermal energy as latent heat, which allows higher thermal energy storage capacity per unit weight.

- The following section provides an overview of the Software Requirements Specification (SRS) for solar water heating systems incorporating PCM. The developed program will be referred to as Solar Water Heating System (SWHS) based on the original, manually created version of SWHS. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. + The following section provides an overview of the software requirements specification (SRS) for solar water heating systems incorporating PCM. The developed program will be referred to as Solar Water Heating System (SWHS) based on the original, manually created version of SWHS. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.

@@ -986,102 +990,102 @@

Assumptions

- Thermal-Energy-Only: The only form of energy that is relevant for this problem is thermal energy. All other forms of energy, such as mechanical energy, are assumed to be negligible. (RefBy: TM:consThermE.) + Thermal-Energy-Only: The only form of energy that is relevant for this problem is thermal energy. All other forms of energy, such as mechanical energy, are assumed to be negligible. (RefBy: TM:consThermE.)

- Heat-Transfer-Coeffs-Constant: All heat transfer coefficients are constant over time. (RefBy: TM:nwtnCooling.) + Heat-Transfer-Coeffs-Constant: All heat transfer coefficients are constant over time. (RefBy: TM:nwtnCooling.)

- Constant-Water-Temp-Across-Tank: The water in the tank is fully mixed, so the temperature of the water is the same throughout the entire tank. (RefBy: GD:rocTempSimp, IM:eBalanceOnWtr, and IM:eBalanceOnPCM.) + Constant-Water-Temp-Across-Tank: The water in the tank is fully mixed, so the temperature of the water is the same throughout the entire tank. (RefBy: GD:rocTempSimp, IM:eBalanceOnWtr, and IM:eBalanceOnPCM.)

- Temp-PCM-Constant-Across-Volume: The temperature of the phase change material is the same throughout the volume of PCM. (RefBy: GD:rocTempSimp, IM:eBalanceOnWtr, IM:eBalanceOnPCM, and LC:Uniform-Temperature-PCM.) + Temp-PCM-Constant-Across-Volume: The temperature of the phase change material is the same throughout the volume of PCM. (RefBy: GD:rocTempSimp, IM:eBalanceOnWtr, IM:eBalanceOnPCM, and LC:Uniform-Temperature-PCM.)

- Density-Water-PCM-Constant-over-Volume: The density of water and density of PCM have no spatial variation; that is, they are each constant over their entire volume. (RefBy: GD:rocTempSimp.) + Density-Water-PCM-Constant-over-Volume: The density of water and density of PCM have no spatial variation; that is, they are each constant over their entire volume. (RefBy: GD:rocTempSimp.)

- Specific-Heat-Energy-Constant-over-Volume: The specific heat capacity of water, specific heat capacity of PCM as a solid, and specific heat capacity of PCM as a liquid have no spatial variation; that is, they are each constant over their entire volume. (RefBy: GD:rocTempSimp.) + Specific-Heat-Energy-Constant-over-Volume: The specific heat capacity of water, specific heat capacity of PCM as a solid, and specific heat capacity of PCM as a liquid have no spatial variation; that is, they are each constant over their entire volume. (RefBy: GD:rocTempSimp.)

- Newton-Law-Convective-Cooling-Coil-Water: Newton's law of convective cooling applies between the heating coil and the water. (RefBy: GD:htFluxWaterFromCoil.) + Newton-Law-Convective-Cooling-Coil-Water: Newton's law of convective cooling applies between the heating coil and the water. (RefBy: GD:htFluxWaterFromCoil.)

- Temp-Heating-Coil-Constant-over-Time: The temperature of the heating coil is constant over time. (RefBy: GD:htFluxWaterFromCoil and LC:Temperature-Coil-Variable-Over-Day.) + Temp-Heating-Coil-Constant-over-Time: The temperature of the heating coil is constant over time. (RefBy: GD:htFluxWaterFromCoil and LC:Temperature-Coil-Variable-Over-Day.)

- Temp-Heating-Coil-Constant-over-Length: The temperature of the heating coil does not vary along its length. (RefBy: IM:eBalanceOnWtr and LC:Temperature-Coil-Variable-Over-Length.) + Temp-Heating-Coil-Constant-over-Length: The temperature of the heating coil does not vary along its length. (RefBy: IM:eBalanceOnWtr and LC:Temperature-Coil-Variable-Over-Length.)

- Law-Convective-Cooling-Water-PCM: Newton's law of convective cooling applies between the water and the PCM. (RefBy: GD:htFluxPCMFromWater.) + Law-Convective-Cooling-Water-PCM: Newton's law of convective cooling applies between the water and the PCM. (RefBy: GD:htFluxPCMFromWater.)

- Charging-Tank-No-Temp-Discharge: The model only accounts for charging of the tank, not discharging. The temperature of the water and temperature of the phase change material can only increase, or remain constant; they do not decrease. This implies that the initial temperature A:Same-Initial-Temp-Water-PCM is less than (or equal) to the temperature of the heating coil. (RefBy: IM:eBalanceOnWtr and LC:Discharging-Tank.) + Charging-Tank-No-Temp-Discharge: The model only accounts for charging of the tank, not discharging. The temperature of the water and temperature of the phase change material can only increase, or remain constant; they do not decrease. This implies that the initial temperature A:Same-Initial-Temp-Water-PCM is less than (or equal) to the temperature of the heating coil. (RefBy: IM:eBalanceOnWtr and LC:Discharging-Tank.)

- Same-Initial-Temp-Water-PCM: The initial temperature of the water and the PCM is the same. (RefBy: IM:eBalanceOnWtr, IM:eBalanceOnPCM, LC:Different-Initial-Temps-PCM-Water, and A:Charging-Tank-No-Temp-Discharge.) + Same-Initial-Temp-Water-PCM: The initial temperature of the water and the PCM is the same. (RefBy: IM:eBalanceOnWtr, IM:eBalanceOnPCM, LC:Different-Initial-Temps-PCM-Water, and A:Charging-Tank-No-Temp-Discharge.)

- PCM-Initially-Solid: The simulation will start with the PCM in a solid state. (RefBy: IM:heatEInPCM and IM:eBalanceOnPCM.) + PCM-Initially-Solid: The simulation will start with the PCM in a solid state. (RefBy: IM:heatEInPCM and IM:eBalanceOnPCM.)

- Water-Always-Liquid: The operating temperature range of the system is such that the water is always in liquid state. That is, the temperature will not drop below the melting point temperature of water, or rise above its boiling point temperature. (RefBy: IM:heatEInWtr, IM:eBalanceOnWtr, and UC:Water-PCM-Fixed-States.) + Water-Always-Liquid: The operating temperature range of the system is such that the water is always in liquid state. That is, the temperature will not drop below the melting point temperature of water, or rise above its boiling point temperature. (RefBy: IM:heatEInWtr, IM:eBalanceOnWtr, and UC:Water-PCM-Fixed-States.)

- Perfect-Insulation-Tank: The tank is perfectly insulated so that there is no heat loss from the tank. (RefBy: IM:eBalanceOnWtr and LC:Tank-Lose-Heat.) + Perfect-Insulation-Tank: The tank is perfectly insulated so that there is no heat loss from the tank. (RefBy: IM:eBalanceOnWtr and LC:Tank-Lose-Heat.)

- No-Internal-Heat-Generation-By-Water-PCM: No internal heat is generated by either the water or the PCM; therefore, the volumetric heat generation per unit volume is zero. (RefBy: IM:eBalanceOnWtr, IM:eBalanceOnPCM, and UC:No-Internal-Heat-Generation.) + No-Internal-Heat-Generation-By-Water-PCM: No internal heat is generated by either the water or the PCM; therefore, the volumetric heat generation per unit volume is zero. (RefBy: IM:eBalanceOnWtr, IM:eBalanceOnPCM, and UC:No-Internal-Heat-Generation.)

- Volume-Change-Melting-PCM-Negligible: The volume change of the PCM due to melting is negligible. (RefBy: IM:eBalanceOnPCM.) + Volume-Change-Melting-PCM-Negligible: The volume change of the PCM due to melting is negligible. (RefBy: IM:eBalanceOnPCM.)

- No-Gaseous-State-PCM: The PCM is either in a liquid state or a solid state but not a gaseous state. (RefBy: IM:heatEInPCM, IM:eBalanceOnPCM, UC:Water-PCM-Fixed-States, and UC:No-Gaseous-State.) + No-Gaseous-State-PCM: The PCM is either in a liquid state or a solid state but not a gaseous state. (RefBy: IM:heatEInPCM, IM:eBalanceOnPCM, UC:Water-PCM-Fixed-States, and UC:No-Gaseous-State.)

- Atmospheric-Pressure-Tank: The pressure in the tank is atmospheric, so the melting point temperature and boiling point temperature are 0°C and 100°C, respectively. (RefBy: IM:heatEInWtr and IM:eBalanceOnWtr.) + Atmospheric-Pressure-Tank: The pressure in the tank is atmospheric, so the melting point temperature and boiling point temperature are 0°C and 100°C, respectively. (RefBy: IM:heatEInWtr and IM:eBalanceOnWtr.)

- Volume-Coil-Negligible: When considering the volume of water in the tank, the volume of the heating coil is assumed to be negligible. (RefBy: DD:waterVolume_pcm.) + Volume-Coil-Negligible: When considering the volume of water in the tank, the volume of the heating coil is assumed to be negligible. (RefBy: DD:waterVolume_pcm.)

@@ -3136,7 +3140,7 @@

Non-Functional Requirements

Likely Changes

- This section lists the likely changes to be made to the software. + This section lists the likely changes (LC) to be made to the software.

@@ -3176,7 +3180,7 @@

Likely Changes

Unlikely Changes

- This section lists the unlikely changes to be made to the software. + This section lists the unlikely changes (UC) to be made to the software.

diff --git a/code/stable/swhs/SRS/Jupyter/SWHS_SRS.ipynb b/code/stable/swhs/SRS/Jupyter/SWHS_SRS.ipynb index 429c1336831..b9e29d4e25f 100644 --- a/code/stable/swhs/SRS/Jupyter/SWHS_SRS.ipynb +++ b/code/stable/swhs/SRS/Jupyter/SWHS_SRS.ipynb @@ -205,6 +205,7 @@ "|Refname|Reference Name|\n", "|SRS|Software Requirements Specification|\n", "|SWHS|Solar Water Heating System|\n", + "|SWHS|Solar Water Heating Systems Incorporating PCM|\n", "|TM|Theoretical Model|\n", "|UC|Unlikely Change|\n", "|Uncert.|Typical Uncertainty|\n", @@ -215,7 +216,7 @@ "\n", "Due to increasing costs, diminishing availability, and negative environmental impact of fossil fuels, the demand is high for renewable energy sources and energy storage technology. Solar water heating systems incorporating phase change material (PCM) use a renewable energy source and provide a novel way of storing energy. Solar water heating systems incorporating PCM improve over the traditional solar water heating systems because of their smaller size. The smaller size is possible because of the ability of PCM to store thermal energy as latent heat, which allows higher thermal energy storage capacity per unit weight.\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for solar water heating systems incorporating PCM. The developed program will be referred to as Solar Water Heating System (SWHS) based on the original, manually created version of SWHS. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", + "The following section provides an overview of the software requirements specification (SRS) for solar water heating systems incorporating PCM. The developed program will be referred to as Solar Water Heating System (SWHS) based on the original, manually created version of SWHS. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", "\n", "## Purpose of Document\n", "\n", @@ -2079,7 +2080,7 @@ "# Likely Changes\n", "\n", "\n", - "This section lists the likely changes to be made to the software.\n", + "This section lists the likely changes (LC) to be made to the software.\n", "\n", "

\n", "Uniform-Temperature-PCM: [A:Temp-PCM-Constant-Across-Volume](#assumpTPCAV) - PCM is actually a poor thermal conductor, so the assumption of uniform temperature of the phase change material is not likely.\n", @@ -2109,7 +2110,7 @@ "# Unlikely Changes\n", "\n", "\n", - "This section lists the unlikely changes to be made to the software.\n", + "This section lists the unlikely changes (UC) to be made to the software.\n", "\n", "
\n", "Water-PCM-Fixed-States: [A:Water-Always-Liquid](#assumpWAL), [A:No-Gaseous-State-PCM](#assumpNGSP) - It is unlikely for the change of water from liquid to a solid or the state change of the phase change material from a liquid to a gas to be considered.\n", diff --git a/code/stable/swhs/SRS/PDF/SWHS_SRS.tex b/code/stable/swhs/SRS/PDF/SWHS_SRS.tex index 380fe65161f..ba6f782f8b4 100644 --- a/code/stable/swhs/SRS/PDF/SWHS_SRS.tex +++ b/code/stable/swhs/SRS/PDF/SWHS_SRS.tex @@ -293,6 +293,8 @@ \subsection{Abbreviations and Acronyms} \\ SWHS & Solar Water Heating System \\ +SWHS & Solar Water Heating Systems Incorporating PCM +\\ TM & Theoretical Model \\ UC & Unlikely Change @@ -304,7 +306,7 @@ \section{Introduction} \label{Sec:Intro} Due to increasing costs, diminishing availability, and negative environmental impact of fossil fuels, the demand is high for renewable energy sources and energy storage technology. Solar water heating systems incorporating phase change material (PCM) use a renewable energy source and provide a novel way of storing energy. Solar water heating systems incorporating PCM improve over the traditional solar water heating systems because of their smaller size. The smaller size is possible because of the ability of PCM to store thermal energy as latent heat, which allows higher thermal energy storage capacity per unit weight. -The following section provides an overview of the Software Requirements Specification (SRS) for solar water heating systems incorporating PCM. The developed program will be referred to as Solar Water Heating System (SWHS) based on the original, manually created version of \hyperref{https://github.com/smiths/swhs/tree/master}{}{}{SWHS}. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for solar water heating systems incorporating PCM. The developed program will be referred to as Solar Water Heating System (SWHS) based on the original, manually created version of \hyperref{https://github.com/smiths/swhs/tree/master}{}{}{SWHS}. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. \subsection{Purpose of Document} \label{Sec:DocPurpose} @@ -1600,7 +1602,7 @@ \subsection{Non-Functional Requirements} \end{description} \section{Likely Changes} \label{Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software. \begin{description}[font=\normalfont] \item[Uniform-Temperature-PCM:\phantomsection\label{likeChgUTP}]{\hyperref[assumpTPCAV]{A:Temp-PCM-Constant-Across-Volume} - PCM is actually a poor thermal conductor, so the assumption of uniform temperature of the phase change material is not likely.} @@ -1612,7 +1614,7 @@ \section{Likely Changes} \end{description} \section{Unlikely Changes} \label{Sec:UCs} -This section lists the unlikely changes to be made to the software. +This section lists the unlikely changes (UC) to be made to the software. \begin{description}[font=\normalfont] \item[Water-PCM-Fixed-States:\phantomsection\label{unlikeChgWPFS}]{\hyperref[assumpWAL]{A:Water-Always-Liquid}, \hyperref[assumpNGSP]{A:No-Gaseous-State-PCM} - It is unlikely for the change of water from liquid to a solid or the state change of the phase change material from a liquid to a gas to be considered.} diff --git a/code/stable/swhs/SRS/mdBook/src/SecIntro.md b/code/stable/swhs/SRS/mdBook/src/SecIntro.md index fbd6ce600b3..8800c03fbe6 100644 --- a/code/stable/swhs/SRS/mdBook/src/SecIntro.md +++ b/code/stable/swhs/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ Due to increasing costs, diminishing availability, and negative environmental impact of fossil fuels, the demand is high for renewable energy sources and energy storage technology. Solar water heating systems incorporating phase change material (PCM) use a renewable energy source and provide a novel way of storing energy. Solar water heating systems incorporating PCM improve over the traditional solar water heating systems because of their smaller size. The smaller size is possible because of the ability of PCM to store thermal energy as latent heat, which allows higher thermal energy storage capacity per unit weight. -The following section provides an overview of the Software Requirements Specification (SRS) for solar water heating systems incorporating PCM. The developed program will be referred to as Solar Water Heating System (SWHS) based on the original, manually created version of [SWHS](https://github.com/smiths/swhs/tree/master). This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for solar water heating systems incorporating PCM. The developed program will be referred to as Solar Water Heating System (SWHS) based on the original, manually created version of [SWHS](https://github.com/smiths/swhs/tree/master). This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. diff --git a/code/stable/swhs/SRS/mdBook/src/SecLCs.md b/code/stable/swhs/SRS/mdBook/src/SecLCs.md index bf47088d1fc..f241869db98 100644 --- a/code/stable/swhs/SRS/mdBook/src/SecLCs.md +++ b/code/stable/swhs/SRS/mdBook/src/SecLCs.md @@ -1,6 +1,6 @@ # Likely Changes {#Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software.
diff --git a/code/stable/swhs/SRS/mdBook/src/SecTAbbAcc.md b/code/stable/swhs/SRS/mdBook/src/SecTAbbAcc.md index 508daaf0d42..d869b25b439 100644 --- a/code/stable/swhs/SRS/mdBook/src/SecTAbbAcc.md +++ b/code/stable/swhs/SRS/mdBook/src/SecTAbbAcc.md @@ -2,25 +2,26 @@
-|Abbreviation|Full Form | -|:-----------|:----------------------------------| -|A |Assumption | -|DD |Data Definition | -|GD |General Definition | -|GS |Goal Statement | -|IM |Instance Model | -|LC |Likely Change | -|ODE |Ordinary Differential Equation | -|PCM |Phase Change Material | -|PS |Physical System Description | -|R |Requirement | -|RHS |Right-Hand Side | -|RefBy |Referenced by | -|Refname |Reference Name | -|SRS |Software Requirements Specification| -|SWHS |Solar Water Heating System | -|TM |Theoretical Model | -|UC |Unlikely Change | -|Uncert. |Typical Uncertainty | +|Abbreviation|Full Form | +|:-----------|:--------------------------------------------| +|A |Assumption | +|DD |Data Definition | +|GD |General Definition | +|GS |Goal Statement | +|IM |Instance Model | +|LC |Likely Change | +|ODE |Ordinary Differential Equation | +|PCM |Phase Change Material | +|PS |Physical System Description | +|R |Requirement | +|RHS |Right-Hand Side | +|RefBy |Referenced by | +|Refname |Reference Name | +|SRS |Software Requirements Specification | +|SWHS |Solar Water Heating System | +|SWHS |Solar Water Heating Systems Incorporating PCM| +|TM |Theoretical Model | +|UC |Unlikely Change | +|Uncert. |Typical Uncertainty | **

Abbreviations and Acronyms

** diff --git a/code/stable/swhs/SRS/mdBook/src/SecUCs.md b/code/stable/swhs/SRS/mdBook/src/SecUCs.md index 6e8fb21e6bc..976ff4a0cb1 100644 --- a/code/stable/swhs/SRS/mdBook/src/SecUCs.md +++ b/code/stable/swhs/SRS/mdBook/src/SecUCs.md @@ -1,6 +1,6 @@ # Unlikely Changes {#Sec:UCs} -This section lists the unlikely changes to be made to the software. +This section lists the unlikely changes (UC) to be made to the software.
diff --git a/code/stable/swhsnopcm/SRS/HTML/SWHSNoPCM_SRS.html b/code/stable/swhsnopcm/SRS/HTML/SWHSNoPCM_SRS.html index ad17f6ab00f..e07c6afe3fd 100644 --- a/code/stable/swhsnopcm/SRS/HTML/SWHSNoPCM_SRS.html +++ b/code/stable/swhsnopcm/SRS/HTML/SWHSNoPCM_SRS.html @@ -547,7 +547,7 @@

Introduction

Due to increasing costs, diminishing availability, and negative environmental impact of fossil fuels, the demand is high for renewable energy sources and energy storage technology. Solar Water Heating System with no Phase Change Material provide a novel way of storing energy.

- The following section provides an overview of the Software Requirements Specification (SRS) for solar water heating systems with no phase change material The developed program will be referred to as Solar Water Heating System With No Phase Change Material (SWHSNoPCM) based on the original, manually created version of SWHSNoPCM. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. + The following section provides an overview of the software requirements specification (SRS) for solar water heating systems with no phase change material The developed program will be referred to as Solar Water Heating System With No Phase Change Material (SWHSNoPCM) based on the original, manually created version of SWHSNoPCM. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.

@@ -746,72 +746,72 @@

Assumptions

- Thermal-Energy-Only: The only form of energy that is relevant for this problem is thermal energy. All other forms of energy, such as mechanical energy, are assumed to be negligible. (RefBy: TM:consThermE.) + Thermal-Energy-Only: The only form of energy that is relevant for this problem is thermal energy. All other forms of energy, such as mechanical energy, are assumed to be negligible. (RefBy: TM:consThermE.)

- Heat-Transfer-Coeffs-Constant: All heat transfer coefficients are constant over time. (RefBy: TM:nwtnCooling.) + Heat-Transfer-Coeffs-Constant: All heat transfer coefficients are constant over time. (RefBy: TM:nwtnCooling.)

- Constant-Water-Temp-Across-Tank: The water in the tank is fully mixed, so the temperature of the water is the same throughout the entire tank. (RefBy: GD:rocTempSimp.) + Constant-Water-Temp-Across-Tank: The water in the tank is fully mixed, so the temperature of the water is the same throughout the entire tank. (RefBy: GD:rocTempSimp.)

- Density-Water-Constant-over-Volume: The density of water has no spatial variation; that is, it is constant over their entire volume. (RefBy: GD:rocTempSimp.) + Density-Water-Constant-over-Volume: The density of water has no spatial variation; that is, it is constant over their entire volume. (RefBy: GD:rocTempSimp.)

- Specific-Heat-Energy-Constant-over-Volume: The specific heat capacity of water has no spatial variation; that is, it is constant over its entire volume. (RefBy: GD:rocTempSimp.) + Specific-Heat-Energy-Constant-over-Volume: The specific heat capacity of water has no spatial variation; that is, it is constant over its entire volume. (RefBy: GD:rocTempSimp.)

- Newton-Law-Convective-Cooling-Coil-Water: Newton's law of convective cooling applies between the heating coil and the water. (RefBy: GD:htFluxWaterFromCoil.) + Newton-Law-Convective-Cooling-Coil-Water: Newton's law of convective cooling applies between the heating coil and the water. (RefBy: GD:htFluxWaterFromCoil.)

- Temp-Heating-Coil-Constant-over-Time: The temperature of the heating coil is constant over time. (RefBy: GD:htFluxWaterFromCoil and LC:Temperature-Coil-Variable-Over-Day.) + Temp-Heating-Coil-Constant-over-Time: The temperature of the heating coil is constant over time. (RefBy: GD:htFluxWaterFromCoil and LC:Temperature-Coil-Variable-Over-Day.)

- Temp-Heating-Coil-Constant-over-Length: The temperature of the heating coil does not vary along its length. (RefBy: LC:Temperature-Coil-Variable-Over-Length.) + Temp-Heating-Coil-Constant-over-Length: The temperature of the heating coil does not vary along its length. (RefBy: LC:Temperature-Coil-Variable-Over-Length.)

- Charging-Tank-No-Temp-Discharge: The model only accounts for charging the tank, not discharging. The temperature of the water can only increase, or remain constant; it cannot decrease. This implies that the initial temperature is less than (or equal to) the temperature of the heating coil. (RefBy: LC:Discharging-Tank.) + Charging-Tank-No-Temp-Discharge: The model only accounts for charging the tank, not discharging. The temperature of the water can only increase, or remain constant; it cannot decrease. This implies that the initial temperature is less than (or equal to) the temperature of the heating coil. (RefBy: LC:Discharging-Tank.)

- Water-Always-Liquid: The operating temperature range of the system is such that the material (water in this case) is always in liquid state. That is, the temperature will not drop below the melting point temperature of water, or rise above its boiling point temperature. (RefBy: TM:sensHtE, IM:heatEInWtr, IM:eBalanceOnWtr, and UC:Water-Fixed-States.) + Water-Always-Liquid: The operating temperature range of the system is such that the material (water in this case) is always in liquid state. That is, the temperature will not drop below the melting point temperature of water, or rise above its boiling point temperature. (RefBy: TM:sensHtE, IM:heatEInWtr, IM:eBalanceOnWtr, and UC:Water-Fixed-States.)

- Perfect-Insulation-Tank: The tank is perfectly insulated so that there is no heat loss from the tank. (RefBy: IM:eBalanceOnWtr and LC:Tank-Lose-Heat.) + Perfect-Insulation-Tank: The tank is perfectly insulated so that there is no heat loss from the tank. (RefBy: IM:eBalanceOnWtr and LC:Tank-Lose-Heat.)

- No-Internal-Heat-Generation-By-Water: No internal heat is generated by the water; therefore, the volumetric heat generation per unit volume is zero. (RefBy: IM:eBalanceOnWtr and UC:No-Internal-Heat-Generation.) + No-Internal-Heat-Generation-By-Water: No internal heat is generated by the water; therefore, the volumetric heat generation per unit volume is zero. (RefBy: IM:eBalanceOnWtr and UC:No-Internal-Heat-Generation.)

- Atmospheric-Pressure-Tank: The pressure in the tank is atmospheric, so the melting point temperature and boiling point temperature of water are 0°C and 100°C, respectively. (RefBy: IM:heatEInWtr.) + Atmospheric-Pressure-Tank: The pressure in the tank is atmospheric, so the melting point temperature and boiling point temperature of water are 0°C and 100°C, respectively. (RefBy: IM:heatEInWtr.)

- Volume-Coil-Negligible: When considering the volume of water in the tank, the volume of the heating coil is assumed to be negligible. (RefBy: DD:waterVolume_nopcm.) + Volume-Coil-Negligible: When considering the volume of water in the tank, the volume of the heating coil is assumed to be negligible. (RefBy: DD:waterVolume_nopcm.)

@@ -1911,7 +1911,7 @@

Non-Functional Requirements

Likely Changes

- This section lists the likely changes to be made to the software. + This section lists the likely changes (LC) to be made to the software.

@@ -1941,7 +1941,7 @@

Likely Changes

Unlikely Changes

- This section lists the unlikely changes to be made to the software. + This section lists the unlikely changes (UC) to be made to the software.

diff --git a/code/stable/swhsnopcm/SRS/Jupyter/SWHSNoPCM_SRS.ipynb b/code/stable/swhsnopcm/SRS/Jupyter/SWHSNoPCM_SRS.ipynb index 1d9e68a6c74..7b4149db2e3 100644 --- a/code/stable/swhsnopcm/SRS/Jupyter/SWHSNoPCM_SRS.ipynb +++ b/code/stable/swhsnopcm/SRS/Jupyter/SWHSNoPCM_SRS.ipynb @@ -173,7 +173,7 @@ "\n", "Due to increasing costs, diminishing availability, and negative environmental impact of fossil fuels, the demand is high for renewable energy sources and energy storage technology. Solar Water Heating System with no Phase Change Material provide a novel way of storing energy.\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for solar water heating systems with no phase change material The developed program will be referred to as Solar Water Heating System With No Phase Change Material (SWHSNoPCM) based on the original, manually created version of SWHSNoPCM. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", + "The following section provides an overview of the software requirements specification (SRS) for solar water heating systems with no phase change material The developed program will be referred to as Solar Water Heating System With No Phase Change Material (SWHSNoPCM) based on the original, manually created version of SWHSNoPCM. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", "\n", "## Purpose of Document\n", "\n", @@ -1222,7 +1222,7 @@ "# Likely Changes\n", "\n", "\n", - "This section lists the likely changes to be made to the software.\n", + "This section lists the likely changes (LC) to be made to the software.\n", "\n", "

\n", "Temperature-Coil-Variable-Over-Day: [A:Temp-Heating-Coil-Constant-over-Time](#assumpTHCCoT) - The temperature of the heating coil will change over the course of the day, depending on the energy received from the sun.\n", @@ -1244,7 +1244,7 @@ "# Unlikely Changes\n", "\n", "\n", - "This section lists the unlikely changes to be made to the software.\n", + "This section lists the unlikely changes (UC) to be made to the software.\n", "\n", "
\n", "Water-Fixed-States: [A:Water-Always-Liquid](#assumpWAL) - It is unlikely for the change of water from liquid to a solid, or from liquid to gas to be considered.\n", diff --git a/code/stable/swhsnopcm/SRS/PDF/SWHSNoPCM_SRS.tex b/code/stable/swhsnopcm/SRS/PDF/SWHSNoPCM_SRS.tex index 3c49ab2ded5..e47ee750f5c 100644 --- a/code/stable/swhsnopcm/SRS/PDF/SWHSNoPCM_SRS.tex +++ b/code/stable/swhsnopcm/SRS/PDF/SWHSNoPCM_SRS.tex @@ -220,7 +220,7 @@ \section{Introduction} \label{Sec:Intro} Due to increasing costs, diminishing availability, and negative environmental impact of fossil fuels, the demand is high for renewable energy sources and energy storage technology. Solar Water Heating System with no Phase Change Material provide a novel way of storing energy. -The following section provides an overview of the Software Requirements Specification (SRS) for solar water heating systems with no phase change material The developed program will be referred to as Solar Water Heating System With No Phase Change Material (SWHSNoPCM) based on the original, manually created version of \hyperref{https://github.com/smiths/caseStudies/blob/master/CaseStudies/noPCM}{}{}{SWHSNoPCM}. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for solar water heating systems with no phase change material The developed program will be referred to as Solar Water Heating System With No Phase Change Material (SWHSNoPCM) based on the original, manually created version of \hyperref{https://github.com/smiths/caseStudies/blob/master/CaseStudies/noPCM}{}{}{SWHSNoPCM}. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. \subsection{Purpose of Document} \label{Sec:DocPurpose} @@ -952,7 +952,7 @@ \subsection{Non-Functional Requirements} \end{description} \section{Likely Changes} \label{Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software. \begin{description}[font=\normalfont] \item[Temperature-Coil-Variable-Over-Day:\phantomsection\label{likeChgTCVOD}]{\hyperref[assumpTHCCoT]{A:Temp-Heating-Coil-Constant-over-Time} - The temperature of the heating coil will change over the course of the day, depending on the energy received from the sun.} @@ -962,7 +962,7 @@ \section{Likely Changes} \end{description} \section{Unlikely Changes} \label{Sec:UCs} -This section lists the unlikely changes to be made to the software. +This section lists the unlikely changes (UC) to be made to the software. \begin{description}[font=\normalfont] \item[Water-Fixed-States:\phantomsection\label{unlikeChgWFS}]{\hyperref[assumpWAL]{A:Water-Always-Liquid} - It is unlikely for the change of water from liquid to a solid, or from liquid to gas to be considered.} diff --git a/code/stable/swhsnopcm/SRS/mdBook/src/SecIntro.md b/code/stable/swhsnopcm/SRS/mdBook/src/SecIntro.md index 2a3078811c8..0da751090b0 100644 --- a/code/stable/swhsnopcm/SRS/mdBook/src/SecIntro.md +++ b/code/stable/swhsnopcm/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ Due to increasing costs, diminishing availability, and negative environmental impact of fossil fuels, the demand is high for renewable energy sources and energy storage technology. Solar Water Heating System with no Phase Change Material provide a novel way of storing energy. -The following section provides an overview of the Software Requirements Specification (SRS) for solar water heating systems with no phase change material The developed program will be referred to as Solar Water Heating System With No Phase Change Material (SWHSNoPCM) based on the original, manually created version of [SWHSNoPCM](https://github.com/smiths/caseStudies/blob/master/CaseStudies/noPCM). This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for solar water heating systems with no phase change material The developed program will be referred to as Solar Water Heating System With No Phase Change Material (SWHSNoPCM) based on the original, manually created version of [SWHSNoPCM](https://github.com/smiths/caseStudies/blob/master/CaseStudies/noPCM). This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. diff --git a/code/stable/swhsnopcm/SRS/mdBook/src/SecLCs.md b/code/stable/swhsnopcm/SRS/mdBook/src/SecLCs.md index 99dd31947ad..2ed6dbad359 100644 --- a/code/stable/swhsnopcm/SRS/mdBook/src/SecLCs.md +++ b/code/stable/swhsnopcm/SRS/mdBook/src/SecLCs.md @@ -1,6 +1,6 @@ # Likely Changes {#Sec:LCs} -This section lists the likely changes to be made to the software. +This section lists the likely changes (LC) to be made to the software.
diff --git a/code/stable/swhsnopcm/SRS/mdBook/src/SecUCs.md b/code/stable/swhsnopcm/SRS/mdBook/src/SecUCs.md index 3e54a8cb30f..0b46605e68c 100644 --- a/code/stable/swhsnopcm/SRS/mdBook/src/SecUCs.md +++ b/code/stable/swhsnopcm/SRS/mdBook/src/SecUCs.md @@ -1,6 +1,6 @@ # Unlikely Changes {#Sec:UCs} -This section lists the unlikely changes to be made to the software. +This section lists the unlikely changes (UC) to be made to the software.
diff --git a/code/stable/template/SRS/HTML/Template_SRS.html b/code/stable/template/SRS/HTML/Template_SRS.html index b6293c05908..e7dff2d2852 100644 --- a/code/stable/template/SRS/HTML/Template_SRS.html +++ b/code/stable/template/SRS/HTML/Template_SRS.html @@ -131,7 +131,7 @@

Table of Symbols

Introduction

There is no problem introduction.

- The following section provides an overview of the Software Requirements Specification (SRS) for ProgName. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. + The following section provides an overview of the software requirements specification (SRS) for ProgName. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.

diff --git a/code/stable/template/SRS/Jupyter/Template_SRS.ipynb b/code/stable/template/SRS/Jupyter/Template_SRS.ipynb index 41b29425d17..7f2b8330c31 100644 --- a/code/stable/template/SRS/Jupyter/Template_SRS.ipynb +++ b/code/stable/template/SRS/Jupyter/Template_SRS.ipynb @@ -80,7 +80,7 @@ "\n", "There is no problem introduction.\n", "\n", - "The following section provides an overview of the Software Requirements Specification (SRS) for ProgName. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", + "The following section provides an overview of the software requirements specification (SRS) for ProgName. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.\n", "\n", "## Purpose of Document\n", "\n", diff --git a/code/stable/template/SRS/PDF/Template_SRS.tex b/code/stable/template/SRS/PDF/Template_SRS.tex index 3a2c48bdf65..ef58b9cf40d 100644 --- a/code/stable/template/SRS/PDF/Template_SRS.tex +++ b/code/stable/template/SRS/PDF/Template_SRS.tex @@ -38,7 +38,7 @@ \section{Introduction} \label{Sec:Intro} There is no problem introduction. -The following section provides an overview of the Software Requirements Specification (SRS) for ProgName. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for ProgName. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. \subsection{Purpose of Document} \label{Sec:DocPurpose} diff --git a/code/stable/template/SRS/mdBook/src/SecIntro.md b/code/stable/template/SRS/mdBook/src/SecIntro.md index e736cd7ac21..93450d110f4 100644 --- a/code/stable/template/SRS/mdBook/src/SecIntro.md +++ b/code/stable/template/SRS/mdBook/src/SecIntro.md @@ -2,4 +2,4 @@ There is no problem introduction. -The following section provides an overview of the Software Requirements Specification (SRS) for ProgName. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document. +The following section provides an overview of the software requirements specification (SRS) for ProgName. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.