@startuml '!theme mono header Software Development Process !$HR_Planning = ": << 1 - Planning >> ]" !$TO_Planning = ":To 1 - Planning ]" !$FR_Planning = ":From 1 - Planning ]" !$HR_Requirement = ": << 2 - Requirement >> ]" !$TO_Requirement = ":To 2 - Requirement ]" !$FR_Requirement = ":From 2 - Requirement ]" !$HR_Design = ": << 3 - Design >> ]" !$TO_Design = ":To 3 - Design ]" !$FR_Design = ":From 3 - Design ]" !$HR_Implementation = ": << 4 - Implementation >> ]" !$TO_Implementation = ":To 4 - Implementation ]" !$FR_Implementation = ":From 4 - Implementation ]" !$HR_Testing = ": << 5 - Testing >> ]" !$TO_Testing = ":To 5 - Testing ]" !$FR_Testing = ":From 5 - Testing ]" !$HR_Integration = ": << 6 - Integration >> ]" !$TO_Integration = ":To 6 - Integration ]" !$FR_Integration = ":From 6 - Integration ]" !$HR_Deployment = ": << 7 - Deployment >> ]" !$TO_Deployment = ":To 7 - Deployment ]" !$FR_Deployment = ":From 7 - Deployment ]" 'order |System\nTeam| |Jira| |Review\nMeeting| |SW/FW Team\nDeveloper| |VV Team| |Scripts| |Bamboo| '------------------------------------------------------------------------------ |SW/FW Team\nDeveloper| $HR_Planning detach |System\nTeam| start |System\nTeam| :Creates Epic; |Jira| :Creates System Storis; |System\nTeam| :Update PRS/SSRS Requirements; :Update Sys Architecture; :Update Sys Hazard Analysis; :Update Sys Verification Test Cases; |Review\nMeeting| :Define the - Scope of Epic - Titles of stories; |Scripts| :Creates - SW Stories (18) - FW Stories (12) - VV Stories (3 + 3) - SW Packages (3); |Review\nMeeting| :Creates Sprint; |Review\nMeeting| :Assigning **STORIES** to active **SPRINT**; |Review\nMeeting| (1) detach $TO_Requirement detach '------------------------------------------------------------------------------ |SW/FW Team\nDeveloper| $HR_Requirement detach |Review\nMeeting| $FR_Planning detach (1) repeat |SW/FW Team\nDeveloper| :01: SRS - Software Requirement Specifications - Jama; |Review\nMeeting| :01: SRS Review; |VV Team| repeat while (SRS Review approved?) is (no) not (yes) |VV Team| split :02: Test Protocols Outline - Jama; :03: Test Protocols Implementation, Identify missing items; detach split again label spacer label spacer label spacer label spacer |VV Team| (2) detach $TO_Design detach end split '------------------------------------------------------------------------------ |SW/FW Team\nDeveloper| $HR_Design detach |VV Team| $FR_Requirement detach (2) |SW/FW Team\nDeveloper| :02: SWA - Software Architecture - Visio/Word; repeat |SW/FW Team\nDeveloper| :03: SDD - Design Diagram - plantuml; |Review\nMeeting| fork group SW :04: SDR - Design Review; endgroup fork again group FW :03: SDD - Design Diagram - Review; endgroup end fork |SW/FW Team\nDeveloper| repeat while (Design approved?) is (No) not (Yes) |SW/FW Team\nDeveloper| (3) detach $TO_Implementation detach '------------------------------------------------------------------------------ |SW/FW Team\nDeveloper| $HR_Implementation detach |SW/FW Team\nDeveloper| $FR_Design detach (3) ' TODO breakdown this one from here |SW/FW Team\nDeveloper| :Creates **Feature Branch** by **Jira Story** with **story title** as **Feature Branch Name** from **staging** ---------- BRANCH NAME: -; |Jira| :Creates **Feature Branch** in Bitbucket; :Creates **Code Review** in Crucible; |SW/FW Team\nDeveloper| ' repeat ' repeat ' repeat ' repeat (X) repeat :Checks out on **Feature Branch**; fork group SW :05: DEV - Feature Implementation; :05: DEV - Feature Implementation - ; :06: DEV - Diagnostic - if needed; :07: DEV - Modularize - if needed; :08: DEV - Dialin Implementation; :09: SDD - Functions Documentation; :10: DVT - Simulator Implementation & Dev Test; endgroup fork again group FW :04: DEV - Feature Implementation; :04: DEV - Feature Implementation - ; :05: DEV - Dialin Implementation; endgroup end fork :Commit on **Feature Branch** with **sub-task title** as **commit titile** and adding **description** of work; :push **Feature Branch**; repeat while (ready for test) is (no) not (yes) |SW/FW Team\nDeveloper| :push **develop**; |Bamboo| :**develop** build; |SW/FW Team\nDeveloper| fork group SW :11: BLD - **develop** Build - version & release notes; endgroup fork again group FW :06: BLD - **develop** Build - version & release notes; endgroup end fork |SW/FW Team\nDeveloper| (4) detach $TO_Testing detach '------------------------------------------------------------------------------ |SW/FW Team\nDeveloper| $HR_Testing detach |SW/FW Team\nDeveloper| $FR_Implementation detach (4) |Scripts| if (There are compatible SW/FW **develop** builds?) then (Yes) :Creates **develop** Package; :Updates 01: PKG - **develop**; else (No) endif |VV Team| :01: Dry Run - **develop**; if (Test Failed?) then (Yes) :Create **BUG** ticket; |Jira| fork |Jira| :**Bug** ticket; fork again |Review\nMeeting| :Prioritize **Bug**s; |Jira| endfork label spacer else (No) |VV Team| label spacer stop end if |SW/FW Team\nDeveloper| ' repeat while (Critical BUG?) is (Yes 1: (DEV) FIX THE BUG) not (No) if (Critical BUG?) then (Yes (DEV) FIX) (X) detach else (No) endif |SW/FW Team\nDeveloper| fork group SW :10: DVT - Simulator Implementation & Dev Test; endgroup fork again group FW :07: DVT - Dev Test; endgroup end fork ' repeat while (Feature is complete?) is (No - (DEV) CONTUNUE) not (yes) if (Feature is complete?) then (No - (DEV) ...) (X) detach else (yes) endif repeat |Review\nMeeting| fork group SW :12: SCR - Code Review; endgroup fork again group FW :08: SCR - Code Review; endgroup end fork backward:Address comments; repeat while (Unresolved comment?) is (Yes) not (No) ' is (No - (DEV) CONTUNUE) not (yes) |SW/FW Team\nDeveloper| 'repeat while (unresolved comment needs a fix?) is (Yes - (DEV) FIX) not (No) if (unresolved comment needs a fix?) then (Yes - (DEV) FIX) (X) detach else (No) endif |SW/FW Team\nDeveloper| :push **staging**; |Bamboo| :Generates SDD doxygen pdf; :**staging** build; |Scripts| if (There are compatible SW/FW **staging** builds?) then (Yes) :Creates **staging** Package; :Updates 02: PKG - **staging**; else (No) endif |SW/FW Team\nDeveloper| fork group SW :13: BLD - **staging** Build - version & release notes; endgroup fork again group FW :09: BLD - **staging** Build - version & release notes; endgroup end fork |SW/FW Team\nDeveloper| (5) detach $TO_Integration detach '------------------------------------------------------------------------------ |SW/FW Team\nDeveloper| $HR_Integration detach $FR_Testing detach |SW/FW Team\nDeveloper| (5) fork |SW/FW Team\nDeveloper| repeat fork group SW :14: SUT - Software Unit Tests - QtTest; :15: SIT - Software Integration Tests - SquishQt; endgroup fork again group FW :10: SUT - Software Unit Tests; :11: SIT - Software Integration Tests; endgroup end fork label spacer label spacer :16: COC - Code Coverage - SquishCoco; repeat while (All tests passed and Coverage % completed?) is (No) not (Yes) |Bamboo| :17: CQR - Code Quality Report - SUIT+SIT+COC; |SW/FW Team\nDeveloper| fork again |VV Team| :02: Dry Run - **staging**; if (Test Failed?) then (Yes) :Create **BUG** ticket; |Jira| fork |Jira| :**Bug** ticket; fork again |Review\nMeeting| :Prioritize **Bug**s; |Jira| endfork label spacer else (No) |VV Team| label spacer stop end if |SW/FW Team\nDeveloper| end fork '|Review\nMeeting| ' repeat while (Critical BUG?) is (Yes - (DEV) FIX THE BUG) not (No) if (Critical BUG?) then (Yes - (DEV) FIX) (X) detach else (No) endif |SW/FW Team\nDeveloper| (6) detach $TO_Deployment detach '------------------------------------------------------------------------------ |SW/FW Team\nDeveloper| $HR_Deployment detach |SW/FW Team\nDeveloper| $FR_Integration detach (6) |SW/FW Team\nDeveloper| :**master/release** push; |Bamboo| :Generates SDD doxygen pdf; :**master/release** build; |Scripts| if (There are compatible SW/FW **master/release** builds?) then (Yes) :Creates **master/release** Package; :Updates 03: PKG - **master/release**; else (No) endif |SW/FW Team\nDeveloper| fork group SW :18: BLD - **master/release** Build - version & release notes; endgroup fork again group FW :12: BLD - **master/release** Build - version & release notes; endgroup end fork |VV Team| :03: Dry Run - **master/release**; if (test failed?) then (Yes) :Create **LeaBug** ticket; |Jira| fork |Jira| :**LeaBug** ticket; |Review\nMeeting| fork again :Prioritize **LeaBug**s; |Jira| endfork else (No) endif |System\nTeam| :Dry Run System Verification Tests; |System\nTeam| stop @enduml