Ref
ASPICE V3.1
1. Survery
ASPICE V3.1 level 1UML 需求表示方法,待续。SysML,需求表示方法,待续。
2. Question
Q1. What’s the Contents of SW requirements ? Q2. Why Q3. Who Q4. When Q5. How
3. Read
3.1 Process Reference Model
#mermaid-svg-O4bzZnGUy17epQ4n .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-O4bzZnGUy17epQ4n .label text{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n .node rect,#mermaid-svg-O4bzZnGUy17epQ4n .node circle,#mermaid-svg-O4bzZnGUy17epQ4n .node ellipse,#mermaid-svg-O4bzZnGUy17epQ4n .node polygon,#mermaid-svg-O4bzZnGUy17epQ4n .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-O4bzZnGUy17epQ4n .node .label{text-align:center;fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n .node.clickable{cursor:pointer}#mermaid-svg-O4bzZnGUy17epQ4n .arrowheadPath{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-O4bzZnGUy17epQ4n .flowchart-link{stroke:#333;fill:none}#mermaid-svg-O4bzZnGUy17epQ4n .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-O4bzZnGUy17epQ4n .edgeLabel rect{opacity:0.9}#mermaid-svg-O4bzZnGUy17epQ4n .edgeLabel span{color:#333}#mermaid-svg-O4bzZnGUy17epQ4n .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-O4bzZnGUy17epQ4n .cluster text{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-O4bzZnGUy17epQ4n .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-O4bzZnGUy17epQ4n text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-O4bzZnGUy17epQ4n .actor-line{stroke:grey}#mermaid-svg-O4bzZnGUy17epQ4n .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-O4bzZnGUy17epQ4n .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-O4bzZnGUy17epQ4n #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-O4bzZnGUy17epQ4n .sequenceNumber{fill:#fff}#mermaid-svg-O4bzZnGUy17epQ4n #sequencenumber{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n #crosshead path{fill:#333;stroke:#333}#mermaid-svg-O4bzZnGUy17epQ4n .messageText{fill:#333;stroke:#333}#mermaid-svg-O4bzZnGUy17epQ4n .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-O4bzZnGUy17epQ4n .labelText,#mermaid-svg-O4bzZnGUy17epQ4n .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-O4bzZnGUy17epQ4n .loopText,#mermaid-svg-O4bzZnGUy17epQ4n .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-O4bzZnGUy17epQ4n .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-O4bzZnGUy17epQ4n .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-O4bzZnGUy17epQ4n .noteText,#mermaid-svg-O4bzZnGUy17epQ4n .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-O4bzZnGUy17epQ4n .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-O4bzZnGUy17epQ4n .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-O4bzZnGUy17epQ4n .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-O4bzZnGUy17epQ4n .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n .section{stroke:none;opacity:0.2}#mermaid-svg-O4bzZnGUy17epQ4n .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-O4bzZnGUy17epQ4n .section2{fill:#fff400}#mermaid-svg-O4bzZnGUy17epQ4n .section1,#mermaid-svg-O4bzZnGUy17epQ4n .section3{fill:#fff;opacity:0.2}#mermaid-svg-O4bzZnGUy17epQ4n .sectionTitle0{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n .sectionTitle1{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n .sectionTitle2{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n .sectionTitle3{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-O4bzZnGUy17epQ4n .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n .grid path{stroke-width:0}#mermaid-svg-O4bzZnGUy17epQ4n .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-O4bzZnGUy17epQ4n .task{stroke-width:2}#mermaid-svg-O4bzZnGUy17epQ4n .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n .taskText:not([font-size]){font-size:11px}#mermaid-svg-O4bzZnGUy17epQ4n .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-O4bzZnGUy17epQ4n .task.clickable{cursor:pointer}#mermaid-svg-O4bzZnGUy17epQ4n .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-O4bzZnGUy17epQ4n .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-O4bzZnGUy17epQ4n .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-O4bzZnGUy17epQ4n .taskText0,#mermaid-svg-O4bzZnGUy17epQ4n .taskText1,#mermaid-svg-O4bzZnGUy17epQ4n .taskText2,#mermaid-svg-O4bzZnGUy17epQ4n .taskText3{fill:#fff}#mermaid-svg-O4bzZnGUy17epQ4n .task0,#mermaid-svg-O4bzZnGUy17epQ4n .task1,#mermaid-svg-O4bzZnGUy17epQ4n .task2,#mermaid-svg-O4bzZnGUy17epQ4n .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-O4bzZnGUy17epQ4n .taskTextOutside0,#mermaid-svg-O4bzZnGUy17epQ4n .taskTextOutside2{fill:#000}#mermaid-svg-O4bzZnGUy17epQ4n .taskTextOutside1,#mermaid-svg-O4bzZnGUy17epQ4n .taskTextOutside3{fill:#000}#mermaid-svg-O4bzZnGUy17epQ4n .active0,#mermaid-svg-O4bzZnGUy17epQ4n .active1,#mermaid-svg-O4bzZnGUy17epQ4n .active2,#mermaid-svg-O4bzZnGUy17epQ4n .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-O4bzZnGUy17epQ4n .activeText0,#mermaid-svg-O4bzZnGUy17epQ4n .activeText1,#mermaid-svg-O4bzZnGUy17epQ4n .activeText2,#mermaid-svg-O4bzZnGUy17epQ4n .activeText3{fill:#000 !important}#mermaid-svg-O4bzZnGUy17epQ4n .done0,#mermaid-svg-O4bzZnGUy17epQ4n .done1,#mermaid-svg-O4bzZnGUy17epQ4n .done2,#mermaid-svg-O4bzZnGUy17epQ4n .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-O4bzZnGUy17epQ4n .doneText0,#mermaid-svg-O4bzZnGUy17epQ4n .doneText1,#mermaid-svg-O4bzZnGUy17epQ4n .doneText2,#mermaid-svg-O4bzZnGUy17epQ4n .doneText3{fill:#000 !important}#mermaid-svg-O4bzZnGUy17epQ4n .crit0,#mermaid-svg-O4bzZnGUy17epQ4n .crit1,#mermaid-svg-O4bzZnGUy17epQ4n .crit2,#mermaid-svg-O4bzZnGUy17epQ4n .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-O4bzZnGUy17epQ4n .activeCrit0,#mermaid-svg-O4bzZnGUy17epQ4n .activeCrit1,#mermaid-svg-O4bzZnGUy17epQ4n .activeCrit2,#mermaid-svg-O4bzZnGUy17epQ4n .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-O4bzZnGUy17epQ4n .doneCrit0,#mermaid-svg-O4bzZnGUy17epQ4n .doneCrit1,#mermaid-svg-O4bzZnGUy17epQ4n .doneCrit2,#mermaid-svg-O4bzZnGUy17epQ4n .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-O4bzZnGUy17epQ4n .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-O4bzZnGUy17epQ4n .milestoneText{font-style:italic}#mermaid-svg-O4bzZnGUy17epQ4n .doneCritText0,#mermaid-svg-O4bzZnGUy17epQ4n .doneCritText1,#mermaid-svg-O4bzZnGUy17epQ4n .doneCritText2,#mermaid-svg-O4bzZnGUy17epQ4n .doneCritText3{fill:#000 !important}#mermaid-svg-O4bzZnGUy17epQ4n .activeCritText0,#mermaid-svg-O4bzZnGUy17epQ4n .activeCritText1,#mermaid-svg-O4bzZnGUy17epQ4n .activeCritText2,#mermaid-svg-O4bzZnGUy17epQ4n .activeCritText3{fill:#000 !important}#mermaid-svg-O4bzZnGUy17epQ4n .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-O4bzZnGUy17epQ4n g.classGroup text .title{font-weight:bolder}#mermaid-svg-O4bzZnGUy17epQ4n g.clickable{cursor:pointer}#mermaid-svg-O4bzZnGUy17epQ4n g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-O4bzZnGUy17epQ4n g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-O4bzZnGUy17epQ4n .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-O4bzZnGUy17epQ4n .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-O4bzZnGUy17epQ4n .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-O4bzZnGUy17epQ4n .dashed-line{stroke-dasharray:3}#mermaid-svg-O4bzZnGUy17epQ4n #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-O4bzZnGUy17epQ4n #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-O4bzZnGUy17epQ4n #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-O4bzZnGUy17epQ4n #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-O4bzZnGUy17epQ4n #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-O4bzZnGUy17epQ4n #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-O4bzZnGUy17epQ4n #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-O4bzZnGUy17epQ4n #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-O4bzZnGUy17epQ4n .commit-id,#mermaid-svg-O4bzZnGUy17epQ4n .commit-msg,#mermaid-svg-O4bzZnGUy17epQ4n .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-O4bzZnGUy17epQ4n g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-O4bzZnGUy17epQ4n g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-O4bzZnGUy17epQ4n g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-O4bzZnGUy17epQ4n .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-O4bzZnGUy17epQ4n .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-O4bzZnGUy17epQ4n .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-O4bzZnGUy17epQ4n .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-O4bzZnGUy17epQ4n .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-O4bzZnGUy17epQ4n .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-O4bzZnGUy17epQ4n .edgeLabel text{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-O4bzZnGUy17epQ4n .node circle.state-start{fill:black;stroke:black}#mermaid-svg-O4bzZnGUy17epQ4n .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-O4bzZnGUy17epQ4n #statediagram-barbEnd{fill:#9370db}#mermaid-svg-O4bzZnGUy17epQ4n .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-O4bzZnGUy17epQ4n .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-O4bzZnGUy17epQ4n .statediagram-state .divider{stroke:#9370db}#mermaid-svg-O4bzZnGUy17epQ4n .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-O4bzZnGUy17epQ4n .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-O4bzZnGUy17epQ4n .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-O4bzZnGUy17epQ4n .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-O4bzZnGUy17epQ4n .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-O4bzZnGUy17epQ4n .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-O4bzZnGUy17epQ4n .note-edge{stroke-dasharray:5}#mermaid-svg-O4bzZnGUy17epQ4n .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-O4bzZnGUy17epQ4n .error-icon{fill:#522}#mermaid-svg-O4bzZnGUy17epQ4n .error-text{fill:#522;stroke:#522}#mermaid-svg-O4bzZnGUy17epQ4n .edge-thickness-normal{stroke-width:2px}#mermaid-svg-O4bzZnGUy17epQ4n .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-O4bzZnGUy17epQ4n .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-O4bzZnGUy17epQ4n .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-O4bzZnGUy17epQ4n .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-O4bzZnGUy17epQ4n .marker{fill:#333}#mermaid-svg-O4bzZnGUy17epQ4n .marker.cross{stroke:#333}
:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}
#mermaid-svg-O4bzZnGUy17epQ4n {
color: rgba(0, 0, 0, 0.75);
font: ;
}
SWE.1_level1
Purpose
Outcome
PerformanceAttributes
BPs
WPs
3.1.1 Process purpose
The purpose of the Software requirements analysis process is to transform software related System requirements to a set of software requirements.
3.1.2 Process outcome
The software requirements to be allocated to the software elements of the system and their interfaces are definedsoftware requirements are catogrized and analyzed for correctness and verifiabilityThe impact of Software requirements on operating environment is analyzedPrioritization for implementing the software requirements is definedConsistency and bidirectional traceability are established between system requirements and software requirements; Consistency and bidirectionaly traceability are established between system architectural design and software requirementsSoftware requirements are evaluated for cost, schedule and technical impactThe software requirements are agreeed and communicated to all affected parties
3.2 Process performance process attribute
3.2.1 BP, Base Practice
BP1. Specify SW requirements SW requirements may address
Functional parts to be implemented in software including safety and/or security related functionsHardware related functionsReceving signals from electronic sensorsProcessing of signalsControl of electronic hardware(actuators)Strucuture and storage dataParameters defining the software behaviorNon-functional requirements(e.g. safety, security, quality requirements) SW requirements have to begranularunderstandable SW requirements shouldn’t beUnclear
BP2. Structure SW requirements Software requirements are structured by grouping, sorting and categorizing to support a priorization and to map the required functionality to future release. The structure and categorization of the software specification enables the project to manage the requirements in terms of e.g. organization, technical, legal and internal topics.
BP3. Analyze SW requirements
BP4. Analyze the impact on the operating environment The analysis of the impact on the operating environment covers the impact on the software in scope as well as the impact on other software parts, other system or the entire vehicle considering the following possible aspect:
Interfaces
signals and signal qualityVoltage and current Environment
TemperatureEMC Performance
Interface response time(signal response, sample time, cycle, bus load, signal delay, jitter)Micro contrller response time(processing time) Resources
RAM/ROM memory usageEEPROM/DataFlash memory usage
BP5. Develop verification criteria
BP6. Establish bidirectional traceability
BP7. Ensure consistency
BP8. Communicate agreed SW requirements
3.2.2 WP, work product
13-04 Communication Record13-19 Review Record13-21 Change Control Board13-22 Traceability record15-01 Analysis report17-08 Interface requirements specificationSoftware requirements specificationVerification criteria
4. Recite
此过程之主旨,在于将系统需求中关于软件的部分转换为软件需求。
软件需求分析过程,需要对软件进行以下分析
正确可测试性对运行环境的影响
此过程工作流如下图所示
4.1 需求定义阶段
总体要求
详细说明软件需求
结构化软件需求
Input doc
Software related part of system requirementSystem architectural design to be allocated to SW
Output work product
SW requirement specificationInterface requirement specification
4.2 需求分析阶段
分析软件需求的正确性,可测试性
能否实现,相互依赖关系是否可以验证? 分析软件对运行环境的影响, 运行环境包括
其他软件部分其他系统整车资源
计算资源,CPU load存储资源
RAMROM
4.3 确定需求测试标准
确定需求测试通过的标准
identification of the requirement to be specifiedverification method
testinspectionpeer reviewauditwalkthroughanalysis Verification environmentPrecondition or special conditionConstraintsSuccess Criteria
4.4 评估软件需求分析工作
保证软件需求与上游输入需求的一致性,双向追溯性。上游需求包括
Software related part of System requirementsSystem architectural design
4.5 发布
已沟通好的软件需求应及时发布给相关人员,包括软件架构,软件测试。
5. Review
软件需求分析过程主要包含以下几步
做 定义好软件需求,并要分组,结构化
分析 分析定义好的软件需求,内容包括软件需求内容本身正确性,可测试性,以及其对运行环境的影响
开发软件需求验证标准,确定如何测试可以满足需求的条件
评估上述软件需求分析过程是否完整覆盖了上游需求,数量上有追溯,质量上保持内容一致
发布 若上述过程执行顺利,向相关人员发布定义好的软件需求,进入下一阶段工作。