Software Engineering Tutorial
Dr. Bright Keswani
Learning Centre of Excellence with Google, Suresh Gyan Vihar University, Jaipur, Rajasthan.
[ Ссылка ]
About Tutorial :
Software Quality Assurance (SQA) consists of the means to ensure the quality of the released software by monitoring the software engineering methods and processes. SQA spans across the entire software development lifecycle that includes requirements management, software design, coding, testing, and release management.
Subsystem hazard analysis (SSHA) examines subsystems to determine how their
bullet Normal performance
bullet Operational degradation
bullet Functional failure
bullet Unintended function
bullet Inadvertent function (proper function but at wrong time or in wrong order)
could contribute to system hazards. SSHA also determines how to satisfy design constraints on the subsystem design. Lastly, subsystem hazard analysis validates that the subsystem design satisfies safety design constraints and does not introduce previous unidentified hazardous system behavior.
Software hazard analysis is a form of subsystem hazard analysis. It validates that specified software blackbox behavior satisfies system safety design constraints. Software Hazard Analysis checks that specified software behavior satisfies general software system safety design criteria, as well. This analysis must be performed on all software in the system, including COTS.
Like system hazard analysis, software (subsystem) hazard analysis requires a model of the component's behavior. Using code is too hard, there is too much implementation complexity to look at the specification of behavior. Examination of code is also too late in the process. If changes must be made, by the time the code is written the effort will be too costly. Software is too complex to do analysis entirely in one's head.
Formal models are useful, but they need to be easily readable and usable without graduate-level training in discrete math. Only a small subset of errors are detectable by automated tools: the most important ones require human knowledge and expertise. Mathematical proofs can be developed based on formal systems, but these proofs must be understandable and checkable by application experts. Frequently the proofs produced are more complex and error-prone than the systems they describe. The hazard analysis process requires results that can be openly reviewed and discussed.
Ещё видео!