Page 155 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 155

Unit 7: Introduction to Verification



            independence requires that the services provider not organizationally be or have been, nor use   Notes
            personnel who are or were, involved in the software development or implementation effort,
            or for that matter participated in the project’s initial planning and/or subsequent design. Such
            technical independence helps ensure every review report is free of personal or professional bias,
            posturing, or gold plating. Secondly, managerial independence is required of the services provider
            to ensure that the effort is vested in an organization departmentally and hierarchically separate
            from  the  software  development  and  program  management  organizations.  Such  managerial
            independence helps ensure that the service provider is able to deliver to both State and Federal
            executive leadership and management, findings and recommendations of an review without
            restriction, fear of retaliation, or coercion.
            The terms verification and validation are related to software quality checking. Very often we
            have heard various comments and debates concerning the question if static analysis of program
            source code should be referred to verification and validation and in what way these notions
            differ. On a whole, it seems that everyone means something different by these terms and it leads
            to a mutual misunderstanding.
            We decided to make it clear in order to stick to the most proper understanding of these notions.
            “Software verification methods” it gives a thorough description of the terms and we decided to
            further rely upon the definitions provided in this work. Here are some extracts from it related
            to verification and validation.
            Verification and validation are the types of activity intended for checking the quality of software
            and detecting errors in it. Having the same goal, they differ in the origin of the properties, rules
            and limitations (whose violation is considered an error) being tested during these processes.
            The term can be defined as “an artefact of software life-cycle”. By artefacts of software life-cycle
            we appreciate various information entities, documents and models created or used during the
            process of software development and maintenance. Thus, requirements specification, architecture
            description, domain model in some graphics language, source code, user documentation etc.
            are artefacts. Various models used by single developers during software creation and analysis
            but not fixed in the form of documents available to other people are not considered artefacts.
            Verification checks if some artefacts being created while developing and maintaining software
            correspond to some other artefacts created earlier or being used as source data and also if these
            artefacts and processes of their development correspond to the rules and standards. In particular,
            verification checks if standards, software requirements specification, design decisions, source
            code, user documentation and operation of the software itself correspond to each other. Besides,
            it checks if the requirements, design decisions, documentation and the code are arranged in
            correspondence with the software development rules and standards accepted in a particular
            country,  branch  and  organization,  and  also  if  all  the  operations  stated  in  the  standards  are
            executed and in the appropriate sequence. Defects and errors detected during verification are
            divergences between some of the listed documents, between documents and actual program
            operation or between standards and actual processes of software development and maintenance.
            Making a decision what document must be corrected (if not both of them) is a separate task.
            Validation checks if any artefacts being created or used in the process of software development
            and maintenance correspond to the needs of the users and customers of this software, with taking
            into account the laws of the domain and limitations of software usage context. These needs
            are usually not fixed in the form of a document - when they are, they turn into a requirements
            specification, i.e. one of the artefacts of the software development process. That is why validation
            is a less formal activity than verification. It is always carried out in the presence of customers’,
            users’,  business-analysts’  or  domain  experts’  representatives  -  those  whose  opinion  can  be
            considered a rather good expression of the needs of users, customers and other persons concerned.
            The methods of its execution often involve specific techniques of discovering knowledge and
            actual needs of the participants.



                                             LOVELY PROFESSIONAL UNIVERSITY                                   149
   150   151   152   153   154   155   156   157   158   159   160