Page 237 - DCAP104_EXPOSURE_TO_COMPUTER_DISCPLINES
P. 237
Exposure to Computer Disciplines
Notes
ISO 15504
ISO 15504, also known as Software Process Improvement Capability Determination (SPICE), is
a “framework for the assessment of software processes”. This standard is aimed at setting out
a clear model for process comparison. SPICE is used much like CMMI. It models processes to
manage, control, guide and monitor software development. This model is then used to measure
what a development organization or project team actually does during software development.
This information is analyzed to identify weaknesses and drive improvement. It also identifies
strengths that can be continued or integrated into common practice for that organization or team.
12.5.1 Formal Methods
Formal methods are mathematical approaches to solving software (and hardware) problems at the
requirements, specification and design levels. Examples of formal methods include the B-Method,
Petri nets, Automated theorem proving, RAISE and VDM. Various formal specification notations
are available, such as the Z notation. More generally, automata theory can be used to build up
and validate application behavior by designing a system of finite state machines.
Finite state machine (FSM) based methodologies allow executable software specification and by-
passing of conventional coding (see virtual finite state machine or event driven finite state machine).
Formal methods are most likely to be applied in avionics software, particularly where the software
is safety critical. Software safety assurance standards, such as DO178B demand formal methods at
the highest level of categorization (Level A). Formalization of software development is creeping
in, in other places, with the application of Object Constraint Language (and specializations such
as Java Modeling Language) and especially with Model-driven architecture allowing execution
of designs, if not specifications.
Another emerging trend in software development is to write a specification in some form of logic
(usually a variation of FOL), and then to directly execute the logic as though it were a program. The
OWL language, based on Description Logic, is an example. There is also work on mapping some
version of English (or another natural language) automatically to and from logic, and executing
the logic directly. Examples are Attempto Controlled English, and Internet Business Logic, which
does not seek to control the vocabulary or syntax. A feature of systems that support bidirectional
English-logic mapping and direct execution of the logic is that they can be made to explain their
results, in English, at the business or scientific level.
The Government Accountability Office, in a 2003 report on one of the Federal Aviation
Administration’s air traffic control modernization programs, recommends following the agency’s
guidance for managing major acquisition systems by
— establishing, maintaining, and controlling an accurate, valid, and current performance
measurement baseline, which would include negotiating all authorized, unpriced work
within 3 months;
— conducting an integrated baseline review of any major contract modifications within 6
months; and
— preparing a rigorous life-cycle cost estimate, including a risk assessment, in accordance
with the Acquisition System Toolset’s guidance and identifying the level of uncertainty
inherent in the estimate.
230 LOVELY PROFESSIONAL UNIVERSITY