This is a "Quick-n-Dirty" SQEM (Software Quality Engineering Manual) flow chart: (NOTE: Most "software engineers" only bother with the 'red' portions)
Software Quality Engineering Manual Flow Chart .----------------. | System Spec. | | (EICD) | (Electrical Interface Control Drawing) '----------------' | V .--------------. .----------------. .----------------. | Schedule | | Software Dev. | | System Req. | | (Gantt Chart)|<---------| Plan (SDP) |----------------->| Analysis (SRA) | '--------------' '----------------' '----------------' | | | V V V .--------------. .------------------. .----------------. | Resources | | Software Product |<---------------| System Design | |(People/Equip)| | Specification | | Document (SSDD)| '--------------' | (SPP) |>--------. '----------------' '------------------' | | | | .-----|--------' | V | | V .------------------. | | .-----------------. | Interface Req. |--------------->| Hardware Config | | Specification | | .---------| Interface (HWCI)|>----. | (IRS) | | | | '-----------------' | '------------------' | | | | | | | | | .--------------. V | | | | | Comp Systems | .------------------. | | | .------------------. | | Op Manual |<---------| Interface Design |<-----' | | Computer Resource| | | (CSCM) | | | Document (IDD) | | .---------| Integration and | | '--------------' | '------------------' | | | | Integration Doc | | | | | | | | (CRISD) | | | | | | | '------------------' | | | | | | | | V | | | | .--------------. | .------------------. | | | .------------------. | | Software User|<---' | Software Req. |<--' | '----->| Use Case | | | Manual | | Specification |<-----' | Document | | | (SUM) |<---------| (SRS) |<---------------| (UCD) | | '--------------' | '------------------' '------------------' | | | \ | | | V \ V | .--------------. | .------------------. \ .------------------. | | Software | | | Software Design | '----------->| System Test | | | Program |<---' .---| Document(s) |--------------->| Description | | | Manual (SPM)| | | (SDDs) | .----------->| (STD) |<---' '--------------' | '------------------' | /'------------------' | | | / | | V | / V .--------------. | .------------------. | / .------------------. | Data Item |<-----' | Computer Software| | / | Software | | Description | | Components/Units |---' / | Test Proceure |----. | (DID) |<-------->| CSCs & CSUs | / | (STP) | | '--------------' '------------------' / '------------------' | | / | V / | .--------------. .------------------. / .------------------. | | "Software" |<---------| Software Coding |>---' | Coding Guidelines| | | (CSCI) | | "Code Monkeys" |<---------------| "Rule Book for | | | Executable |------. '------------------' | Code-Monkeys | | '--------------' | | | (CGRBFCM) | | /|\ | | '------------------' | | | V | | | .----------------------. | | | | Formal Qualification |<-----------------------------------' | | | Testing (FQT)) | | | | '----------------------' | | | | | | | | | \|/ | V | .--------------. | .-------------------. .------------------. | | Firmware | | |Version Description| | Software Test |<---' | Support | | | Document (VDD) |<--------------| Report (STR)or | | Manual (FSM)| | '-------------------' '------------------' '--------------' | | | | .------------------. '-->| Release to the | | Customer | '------------------'
(NOTE: ASCII art isn't fun)
The above is an iterative process.
--Cpt. Vince Foster 2nd Cannon Place Fort Marcy Park, VA
A summary of documents:
EICD = Electrical Interface Control Document SDP = Software Development Plan SRA = System Requirements Analysis SPP = Software Product Specification SSDD = System Design Document HWCI = Hardware Configuration Interface IRS = Interface Requirements Specification IDD = Interface Design Document CRISD = Computer Resource Integration Support Document SRS = Software Requirements Specification UCD = Use Case Document SDD(s) = Software Design Document(s) STD = System Test Desecription STP = Software Test Procedure STR - Software Test Report CSC = Computer Software Component (higher level than CSU) CSU = Computer Software Unit (low level psuedo code) SCM = Supid Code-Monkey CGRBFCM = Coding Guidlines Rule Book for Coding Monkeys SCM = Stupid Code Monkeying in "C", Assebly, etc VDD = Version Description Document CSCM = Computer System's Operations Manual SUM = Software User's Manual SPM = Software Programmers Manual DID = Data Item Description CSCI = Computer Software Configuration Item (the executable) FSM = Firmware Support Manual
Well, at least that is what it takes to be a 'software engineer.'
There are plenty of omitted documents, and not all of them may apply to your application: just know they exists.
RCB = Repealing Client Bullshit.
CGRBFCM is in there.
...which, of course, the diagram doesn't show.
And, surely, the EICD should feed the STD - otherwise there is no verification that you've actually met the initial requirements!
similarly, no link at all is shown to customer requirements - which must, surely, feed the EICD??
Actually, that's just a list of their titles (& abbreviations) - it doesn't describe the purpose & what should be in each of those documents!
In particular, "Electrical Interface Control Document" doesn't sound a very apt name for the root specification of life, the universe, and everything - as the project sees it...
Hey ASCII art sucks. I may have missed a couple of connections.
Andy,
Each one of those acronyms can be searched "googled" and you'll get what each is to contain.
"...and you'll get what each is to contain."
No, you won't, I'm afraid. What you'll get is a whole bunch of different peoples different interpretations of them for different contexts; eg, I can immediately think of at least three unrelated definitions of "STD"
You need to give a consistent set of definitions in the context of your diagram/process.
Yikes! I didn't mean to upset you Andy.
Yes, you can find them:
google Software Test Document
en.wikipedia.org/.../Software_testing
It would appear that some people have far too much spare time.
You'd be amazed, then, at the amount of time companies spend discussing this type of stuff internally!
Or the money they spend on consultants to do it...
"You'd be amazed, then, at the amount of time companies spend discussing this type of stuff internally!
Or the money they spend on consultants to do it..."
Agreed, but I happened to have written this late last night (past midnight) from my home office... not billing anybody either.
I just thought it might help out the Junior Engineer or hobbyist that doing embedded code properly involves a whole lot more than "coding." (That's why I refer them as code monkeys... the documentation should be so obvious that even a monkey could write the code; or even a sardine.
Some workplaces make you do all of that documentation and [a lot] more, and some don't even know they are supposed to document their IP (I've worked for one of the later... idiots).
Software Quality Engineering Manual Flow Chart .----------------. | Customer | | "Needs" | | Software | '----------------' | V .--------------. .----------------. .----------------. | Schedule | | Software Dev. | | System Req. | | (Gantt Chart)|<---------| Plan. AKA me |----------------->| Analysis. AKA | |No need as | | thinking about| | me asking | |project | | how to code | | management | |should always | | monkey through | | what this | |be done using | | the project. | | widget has to | |the ASAP model| | | | do to sell. | '--------------' '----------------' '----------------' | | | | | | | | | V V V .--------------. .------------------. .----------------. | Resources | | Software Product |<---------------| System Design | |(People/Equip)| | Specification. | | Document (SSDD)| | Me and my | | AKA me telling | | AKA. Me | |computer. | | management what | | thinking about | |Always ask | | can be done given| | what kinda | |for a better | | lack of srceens | | hardware might | |computer with | | and ASAP model | | work with this | |more screens. | | that has been | | software. | '--------------' | choosen. | | | | |>--------. '----------------' '------------------' | | | | .-----|--------' | V | | V .------------------. | | .-----------------. | Interface Req. |--------------->| Hardware Config | | AKA read any | | | | AKA. Me | | protocol | | | | realizing that | | documents of | | | | no new hardware | | other devices | | | | is needed just | | that you may be | | | | lots of fudgin | | interfacing to | | | | on the old | '------------------' | | | hardware | | | | | platform. Bonus | | | .---------| to management |>----. | | | | '-----------------' | | | | | | | | | | | .--------------. V | | | | | Comp Systems | .------------------. | | | .------------------. | | Op Manual |<---------| Interface Design |<-----' | | Computer Resource| | |To be written | | | Document (IDD) | | .---------| Integration and | | |by software | | | Already written | | | | | Integration Doc | | |testers after | | | as protocol I | | | | | Management says | | |implementation| | | just read. | | | | | Lifecycle is as | | |This is to be | | '------------------' | | | | long as | | |sure manuals | | | | | | | profitable. | | |represent what| | | | | | | No changes | | |our product | | | | | | | should ever be | | |does not what | | | | | | | needed if project| | |we wanted it | | | | | | | is done "right" | | |to do. | | | | | | | | | '--------------' | | | | | '------------------' | | | | | | | | V | | | | .--------------. | .------------------. | | | .------------------. | | Software User|<---' | Software Req. |<--' | '----->| Use Case | | | Manual | | | Specification |<-----' | Document | | |To be written | | |AKA Me trying to | |Play with MS paint| | |by software | | |remember what the | |for a day until | | |testers after | | |initial goal of | |I get yelled at | | |implementation| | |product was. And | |for playing with | | |for same | | |when I remember | |paint instead of | | |reason as | | |write on post-it | |doing my real job | | |above |<---------|and stick on edge | |of coding :( | | | | | |of single too | |Then no more stick| | '--------------' | |small screen. | |figures. | | | | | |<---------------| (UCD) | | | | '------------------' '------------------' | | | | \ | |
The way it works at most places
| | V \ V | .--------------. | .------------------. \ .------------------. | | Software | | | Software Design | '----------->| System Test | | | Program |<---' .---| Document(s) |--------------->| Description | | | Manual (SPM)| | | (SDDs) | .----------->| (STD) |<---' |Skip this one | | |Written as the | | |AKA Tell Dave the | |management | | |overall module | | |test guy that new | |says we alreay| | |comments that | | |firmware is almost| |have too many | | |apear at the top | | |ready. Give him | |manuals | | |of each filethat | | |the stickey note | | | | |makes up the code | | |from screen and | '--------------' | |for the project | | |tell him to test | | | | | |for "this stuf" | | '------------------' | -------'------------------' | | | | | | V | | V .--------------. | .------------------. | | .------------------. | Data Item |<-----' | Computer Software| | | | Software | | Description | | Components/Units |---' | | Test Proceure |----. |AKA Use | | Written as | | | Use black box | | |descriptive | | comment above | | | testing as to | | |vaiable names | | each function | | | not waste time | | | |<-------->| CSCs & CSUs | | | showing Dave how | | '--------------' '------------------' | | things actually | | | | | work. | | | | '------------------' | | | | | | | V | | .--------------. .------------------. | .------------------. | | "Software" |<---------| Software Coding |>--------' | Coding Guidelines| | | (CSCI) | | "Code Monkeys" |<---------------| "Rule Book for | | | Outputed | | Spend %90 project| | Code-Monkeys | | | by compiler | | work here as it | | AKA | | | unless there | | is very important| | ALWAYS | | | are syntax | | and screens are | | Follow | | | errors avoid | | too few and too | | Cpt Vince's | | | these at all | | small | | advice. | | | costs. |------. '------------------' | (CGRBFCM) | | '--------------' | | '------------------' | /|\ | | | | | V | | | .----------------------. | | | | Formal Qualification |<-----------------------------------' | | | Testing (FQT)) | | | | | Dave does the actual | | | testing. | | | | '----------------------' | | | | | | | | | \|/ | V | .--------------. | .-------------------. .------------------. | | Firmware | | |Version Description| | Software Test |<---' | Support | | | Document (VDD) |<--------------| Report (STR) | | Manual (FSM)| | |Make sure to update| | Dave gives the | |Dont even | | |version number in | | thumbs up. | |bother asking | | |code or you might | '------------------' |as we are way | | |think you have the | |behind our | | |wrong version. | |original ASAP | | '-------------------' |plan. | | '--------------' | | | | .------------------. '-->| Release to the | | Customer | '------------------'
2nd half
"Look at the big brain on Brad"! (ref Pulp Fiction) Cyril comes through loud and clear. Yup, some companies just don't get it.
Good job describing it!