THE RELATIONSHIP LIFECYCLE - A GUIDE FOR SOFTWARE PROFESSIONALS
This handy guide describes man-woman relationships in terms a software professional can easily understand.
SYSTEM REQUIREMENTS ANALYSIS
Both parties shall discuss system requirements and apportion requirements to software and hardware.
PARTITIONING OF REQUIREMENTS
It is usual for hardware requirements to be met by the male, while the female meets software requirements.
DESIGN AND ANALYSIS
Once system requirements are agreed, software and hardware requirements should analysed and a design plan formulated. The duration of the analysis and design phases varies from 30 seconds (in extreme cases) to years (where incompatibility issues are to be resolved).
IMPLEMENTATION AND TESTING
If both parties are agreeable to a full implementation (often this lifecycle terminates during the conceptual stage) then they shall agree upon a suitable test plan for hardware/software integration activities with particular attention to the following points:
- Hardware/software compatibility issues
- Risk analysis, evaluation and mitigation activities
- Test Bed
- Test Harness (in specialised cases only)
- Protective coverings
Risk analysis may require that risk mitigation strategies are implemented - this may require the use of a proprietary interface buffer. Should the software or hardware already have connected systems or attached peripherals, the impact of hardware/software integration activities on these connected systems/peripherals should be considered. They should be protected from damage caused by hardware/software trials.
The test environment should be free of distraction and adequate security shall be provided. Testing may be repeated as often as considered necessary although the hardware will generally need a short reset period before it is able to successfully interface with the software again (reset period varies from 5 minutes through to a period of days on older hardware systems). NB: some interface scenarios operate successfully with firmware instead of hardware.
SAFETY CRITICAL ASPECTS
An analysis into Safety Critical aspects shall be performed and any safety critical items shall be addressed prior to testing. Failure to address this can result in unwanted propagation of viruses.
Testing should be measured and timed. Quality of interface is more important than quantity of download at maximum data rate.
- communications between hardware and software - are multi-level messages understood at both ends?
- before installing new hardware/software, is there a genuine fault with the existing system? The replacement component may have undetected faults not present in the old system.
- what advantages does the new system have over the old system? These may be better hardware or software, economic, efficiency, functionality, availability.
- multi user systems are high risk items, however, the other users may be able to give recommendations and/or guidance for best use. There may be a problem of system availability since most can only handle one task at a time (scheduling/interrupt problems). A few systems can interface with multiple other systems (either hardware or software) but this is uncommon as there will be connectors/ports mismatches.
- hardware interrupts - can the hardware interrupt the software at any time without causing system failure?