Wednesday 20 February 2013

Program or Software Verification, Validation, and Tuning

By Raul Bernardino

Introduction:
Any electronic devices such as starting from refrigerators to electric shavers, ever-greater numbers of consumer goods are being computerized to provide additional benefits to the user. In the products lines, for instance cars, watches, mobile phones, Air Conditioners, and TV-sets, are now increasing their functionality in order to gain and fulfill the market demands. It is also has increased the complexity of the products. The software that powers these features is embedded and has to react in real-time to events from outside (e.g. activating a car air bag in case of an accident, auto drive cars, etc.).

An embedded system is a combination of computer hardware and software, and perhaps additional mechanical or other parts, designed to perform a dedicated function as part of a larger system or product. Embedded software is software designed to perform a dedicated function as part of a larger (software) system. A real-time system is able to response to an external event within a given time.

Embedded systems form the by far the largest part of presently used computer systems. The class of embedded systems includes both, systems which are similar to the present Personal Computer (PC), and smallest systems with a minimal memory and calculator capacity. The development of software systems for such platforms makes by far higher demands than the development of general purpose systems for the use on PC and workstations. However, in this very area, progressive development techniques such as object-oriented design and implementation are only slowly gaining ground. Moreover, the common machine language is to enable machines or parts to work as it is designed can use Assembler the low level machine language, Turbo Pascal, turbo C, and most recently C++. The resulting deficits mainly affect the area of re-usability of existing solutions, and the verification and validation of embedded systems, respectively.

In my own opinion the program or software verification, validation, and tuning will be continuing exist in the future. Why is that, it is because there will be a lot of software applications and programs to be developed wherein to meet to the demands from the customers and business entities in particular. Therefore, system application in this case software needs to have a standard of validation, verification of the system in order to meet the customer needs or including satisfying business requirements. No matter in what approaches it would be, either it is manual approach or automatic approach.

[1]The modeling of Artificial Intelligent can be replaced all manual software testing. At this moment, the automatics algorithm test will be cost effective rather than manuals check in which inspects one by one steps of coding, logic, software development standard, errors detection and etc. [2],[3] The manual testing will be harder and time consuming. It will be using lot recourses (programmers and system analysts, -man power) and at the end it’s becoming an expensive cost.

In some cases, the manual approach of verification and validation still needed as far as those businesses are not on real-time decision making or real-time solution needs. Because the program will be taking a time to solve the problem by his/her owns algorithm and logic. Furthermore, it needs verification and validation test.

In the case above, I am thinking that, there would be no more work of art. What would happen is that, there will be having a lot of system analyst in which is to determine what model is precisely closer to the problem solution that the customer requires.

One of many examples is in Europe the [4]  ‘ESA PSS-05-0 describes the software engineering standards to be applied for all deliverable software implemented for the European Space Agency (ESA), either in-house or by industry’.

The Verification of the software
These are [5] ‘act of reviewing, inspecting, testing, checking, auditing, or otherwise establishing and documenting whether items, processes, services or documents conform to specified requirements’.
The verifier reviews, checks, and tests or audits all relate documents to conform all specified needs. If it is not meet according to what planned, then rework the whole process.

The Validation of the software
These are a processing of the [6] ‘system evaluation or component during, at the end of the development processes in which to determine whether they are satisfying the specified requirements’.
This is a part of appraiser to sign off the project of software development if the software is satisfying the needs otherwise reworks the parts that need to be fixed.

The Walkthrough of the software
[6] ‘A static analysis technique in which a designer or programmer leads members of the development team and other’. This is to allow the designer to check and recheck during developing code, make a comparator to the development standards, find internal errors or defects, and etc.


[7] Picture

The objective of verification and validation are to test the life-cycle of application in which to discover system defects and assess whether or not the system is usable in the operational environment.

REFERENCES:
  1. Shuvendu K. Lahiri and Shaz Qadeer (2007) Back to the Future Revisiting Precise Program Verification using SMT Solvers, Microsoft Research [internet]. Available from: http://research.microsoft.com/pubs/70462/tr-2007-88.pdf (Accessed: 30 October  2010)
  2.  Frank Hutter, Domagoj Babi´c, Holger H. Hoos, and Alan J. Hu, Department of Computer Science, University of British Columbia, Boosting Verification by Automatic Tuning of Decision Procedures [internet]. Available from: http://www.computer.org/portal/web/csdl/doi/10.1109/FAMCAD.2007.9 (Accessed: 30 October  2010)
  3.  Arthur Chargueraud, (2009), Formal Software Verification Through Characteristic Formulae [internet]. Available from: http://www.chargueraud.org/arthur/research/2009/cfg/cfg.pdf  (Accessed: 30 October  2010)
  4.  ESA Software Engineering Standards, ESA PSS-05-0 Issue 2, February 1991, [Internet]. Available from: ftp://ftp.estec.esa.nl/pub/wm/wme/bssc/PSS0510.pdf  (Accessed: 30 October  2010)
  5.  ANSI/ASQC A3-1978, Quality Systems Terminology [Internet]. Available from: ftp://ftp.estec.esa.nl/pub/wm/wme/bssc/PSS0510.pdf (Accessed: 30 October  2010)
  6.  IEEE Standard Glossary of Software Engineering Terminology, ANSI/IEEE Std 610.12-1990, [Internet]. Available from:  ftp://ftp.estec.esa.nl/pub/wm/wme/bssc/PSS0510.pdf (Accessed: 30 October  2010)
  7.  Software Engineering, Edition 6th, Chapter 19



No comments:

Post a Comment