An Overview of FormalMethods and future Perspective Javed Iqbal: VU-ID: MS160400306ComputerScience, Virtual University of [email protected]@hotmail.com Abstract—This document is a comprehensiveoverview of formal method in simple and easy manner, so that one who want tosee the whole picture of formal method use this document. In this document Formal method brief introductionand current work and it contribution to software industry and futureperspective is given.
Formal method is used to formally define the any systembehavior either it software or hardware system. Formally mean where mathematicsis used to define something as we know mathematics is only the concrete toolwhich has no ambiguity. Computer Science is going to be very big field infuture so, it need treatments like mathematics because mathematics have veryrigorous in its nature.
In Software Engineering software development is the mainstream in computer science, so it need some formal kind of treatment or amethodological treatment for software development usually for very crucial softwaresystems i.e. missile control, atomic system and x-ray control system. Such asalgebraic specification in Formal method first defines some abstract data typeand then possible operations on the abstract data type. In this document stepby step approach is followed to understand the concept of Formal method.Related technical stuff or material also is given to give some technical flavorto this document. Now in this age an increasing need of computer systems to useof rigorous formal process. Formal Methods comprise of mathematical model andtreat software requirements and designs of systems in very formal way.
Thisdocument gives a whole picture of formal methods in perspective of future offormal methods. This document is made for computer science geeks to give thesense of use of formal methods in software development, very important withrespect to the requirement engineering. Keywords—Algebraic;Specification; Abstract Data; Formal; Hardware; Software; RequirementEngineering I. IntroductionFormal method is used to specify abstract data type.Abstract Data type is type of data container which type is specified at time ofusing at dynamic run time of software program. As we know computer science isgoing to be increasing day by day in few years and influence the society indramatic way. The use of software in human life is on the increase and asresult complex software programs are developed on the large scale. That is whydeveloping large and complex software is tedious task and cumbersome process.
If there is no way to specify the software before its construction then thereis great chances that program is not constructed as desired and malfunctions. Nowin this era of business environment main goal of software project is to fulfillthe requirement purpose of client. However, there is a great competitionbetween Software Companies to build high quality software in short time withlow cost. Software Industry deal with big problem that is releasing software ontime and with require quality on decided budget. If problems are identified onearly stage of development of software it will not took costly to rectify themwhich in turn reduce the cost of overall budget. If error found at later stageof development then it will effects the overall budget of software project.
If during testing of software products any error isreported in requirement engineering phase then software engineer need tocorrect it in requirement and all other places such as in design and in codingwhich is very cumbersome process. Then again test the software products. Toavoid such kind of situations if software projects we need some ways or methodsthat will resolve these problems in software products and gives us full proofof confidence as in mathematics which in turn reduce the overall cost ofsoftware project and time bound.The solution to the above problemsof software systems use of Formal methods. This is some kind of mathematicalways to specify the software specification or requirement called Formalmethods. In Formal methods to represent the specification of software systemswe use formal specification languages.Writing formal specifications andanalyzing those specifications and some others specification belongs to thesystem at hand comes in domain of Formal methods. Formal methods are used indifferent stages of development process in software project.
Formal methods arenow considered to be part of standards because it involves mathematics, like inother engineering fields. This document describes different aspects of formalmethods especially in requirement engineering phase of development process ofsoftware project systems in the physical world. One thing very important aboutFormal Specification only talks about what, not talk about why this actuallydone at implementation level. In this document formal method achievements arediscussed in section 2 and formal specification styles and types of methods areexplain in section 3. In section 4 of this document limitation of formalmethods are presented and in section 5 many benefits of formal methods aregiven and in section 6 future of formalmethod is touched with conclusion and . A. ACHIEVMENTOF FORMAL METHODSInsoftware development life cycle Formal methods can be used at many stages.There are following achievements are given below:1.
Formal methods help to produce specificationthat gives the actual client requirement in very formal way like mathematicsthat looks different from simple requirement specification. This type ofspecification has no ambiguity in it and easily verify with the help of certainmethods.2.
Formalmethods make requirement specification complete in all respect that fully implementsthe system at hand either hardware or software.3. TheseFormal methods come when we are going to design very critical systems whichmust provide reliability and take less time and give us a sense ofcompleteness. Formal Methods has proved that security, bug free and right systemsare only possible with the use of formal techniques in software development.4. AutomaticCode Generation is another key factor in formal specification.
A typicalprogrammer write 15 lines of code on the average but automation can do betterstuff like code generation.B. FormalSpecification Styles:The Formal Specification Styles are specified as follows:1. Model BasedLanguages:In formal methods, model the system likemathematical object and apply mathematical operation like we perform on set,and functions. In algebraic specification system state is hidden but in VDM(Vienna Development Method), B and Z (Zed specification) are two main modalbased specification languages. Model based languages are a way to write aspecification.
The operations on states are defined in term of pre and postconditions and some invariant conditions.2. AlgebraicSpecificationAlgebraic technique was initially designedfor the defining of abstract data types and interface. In algebraicspecification we specify the system behaviour of abstract data type usingabstract algebra. There is famous family of language for algebraicspecification which LARCH and OBJ family of languages.
3. Process Oriented:The process based formal specificationlanguage is basically build the specific modal for concurrent systems. In these languages processes are representedby expression and use the help of elementary expression. In these languagesprocesses are denoted by expressions and are built up with the help ofelementary expressions which intern yield more complex process.
There are manylanguages but the most popular is CSP (Communicating Sequential Processes).. II.
Useof Formal Languages in SDLCThere are two places whereformal languages are used given below:1.Requirement Gathering:(Specification)SRS (software requirementspecification) document describe the software system and it’s characteristicswhich client need. Formal languages describe the system and it functioncharacteristics with the internal detail also.Z, VDM and Larch are utilized for specification ofsequential systems while other formal techniques, for example, CSP, CCS, Statediagrams, Temporal Logic, Lamport and I/O automata, concentrate on indicatingthe conduct of concurrent systems. RAISE is utilized for dealing with richstate spaces what’s more, LOTOS is one of the dialects for dealing withcomplicated nature because of simultaneousness.
2.Testing (Verification):When we write formalspecifications we can check or verify it through formal Verification which isthe process to prove or disprove the completeness and correctness of proposedsystem specification in mathematical way. There are two ways to verify thegiven below: a. ModelChecking In model checking, a finite state model of thesystem isbuild and its state space is mechanically investigated.Two well-known and equivalent model checkers are SPIN and NuSMV.b.
Theorem Prover Theorem proving is another approach forverification ofa specification or checking the correctness of aprogram. A model of the system is described in amathematical language and desired properties of themodel can be proven by a theorem prover. It ismechanization of a logical proof. The specification tobe checked by a theorem prover is written in amathematical notation. Z (pronounced ‘Zed’) is its well-known example.
A. LIMITATIONSOF FORMAL METHODSAlthough Formal methods hassignificant place in software development process but there are some limitationalso which in turn create some problems. These are discussed below:a.Correctness of requirement Specifications: Incommon situation client demands changes with time and there is no way ofcatching all changing requirement in formal way of specification. Hence thereis no such a way that assure us how much complete our specification are and correctat what extent. There are some way although in literature to handle this kindof problem of getting complete requirements but at starting point we need to beinformal to gather requirement.
So there is chance of missing some keyrequirement. b.Correctness of Implementation: Thetask of identifying whether the program satisfies the written requirement. Toperform this identification we can use Hoare logic where we must find theinvariant of loop or invariant condition which is very crucial step and timetaking. It is also not possible to give proof for some programs which are notwritten with the view of correctness. c.
Correctness of Proofs:Rightnessof proofs play an basic part in formal techniques. Rightness proofs increasethe probabilities that the program is correct. It is generally hard to ensureabout the rightness of detail and likewise execution. Thereare following reasons of failure of proof:a) The program is wrong require some correction. b) The program is correct, but there is way ofproofing it not found.c) The program is correct, but there is nocorrectness proofBENEFITSOF FORMAL METHODSThe early exercises in theproduction of software lifecycle i.e. requirements investigation and detail, isthe most essential.
As indicated by one of the Standish Chaos report 9, halfof all task frustrations happen because of poor prerequisites detail. The bestutilization of formal techniques is at these beginning periods. It is strong tocompose a determination formally as opposed to composing a casual determinationand after that interpreting it. To distinguish irregularity furthermore, lack,it is proficient to break down the formal determination as start of schedule aspossible 10. Along the benefits talked about above, there are differentadvantages which are talked about as below:a.Measure of correctness: Theutilization of formal techniques gives a measure of the accuracy of aframework, as restricted to the present procedure of quality measures.
b.Early defect detection: FormalMethods can be associated to the earliest plan step in software production,with this earlier detection of error in design can be caught more error atearly stage of SDLC.c.Guarantees of correctness:Formalinvestigation tools such as Model checkers think about all possible paths ofexecution through the system. In the event that there is any probability of an error/mistake,a model checker will discover it. In a multithreaded framework where concurrencyis an issue, formal analysis can investigate all conceivable interleaving andoccasion orderings. This level of coverage of all path is difficult toaccomplish through testing. d.
Error Prone: Formalspecification detail compel the writer to find all types of queries that may beleaved up to the coding. This lessens the mistakes that happen during orsubsequent to coding. Formal strategies have the property of fulfillment, i.
e.it covers all angles of the System.e.Abstraction: Abstractionis the concept in software engineering to cope with the problem of complexity byconsidering the only related stuff of object under consideration and neglectingthe all other stuff. For small scale software code is written straight away,however this is not true there are lots of programs with plenty of code, whichnot understandable easily, we need some detailed information about the code tounderstand. We can achieve complete picture of system by using FormalSpecification of system. f.Rigorous Analysis: Theformality of the descriptionallows us to carry out rigorous analysis.
Formaldescriptions are generally written from different pointsof view, by which one can determine importantproperties such as satisfaction of high levelrequirements or correctness of a proposed design.Using the TemplateAfter the text edit has been completed, the paper is readyfor the template. Duplicate the template file by using the Save As command, anduse the naming convention prescribed by your conference for the name of yourpaper. In this newly created file, highlight all of the contents and importyour prepared text file. You are now ready to style your paper; use the scrolldown window on the left of the MS Word Formatting toolbar.Fig. 1.
)Acknowledgment (Heading5)FUTURE OF FORMAL METHOD FM (Formal Methods) is an exceptionally dynamic research placewith a wide range of strategies and numerical models. In current situation,there isn’t available any one strategy that satisfies all the security relatedrequirements of building a safe formal determination. Analysts and experts arepersistently working around there and subsequently picking up the advantages ofutilizing formal techniques. There so many future trends in formal method ofsoftware Engineering but most probable are given below:a. Workmight be started to build up a formal technique that joins different advantagesof different techniques that core interest in building secure formal specification.b.
Workmight be done to reduce the cost of utilizing formal strategies in various stagesof SDLC.c. It isexpected to scale up the documentations of formal techniques what’s more, the toolsupport to make it simple to utilize. d.
Workmight be started on enhancing techniques and tools for discovering mistakeswith the goal that accuracy to the system is distinguished.CONCLUSIONIn this document, I have tried to show diverse view of formaltechniques. The significant irregularities arise in programming / softwareprojects because of poor requirement Specification. Hence, formal methods arethe only answer to this kind of issue related to requirement engineering inSDLC and combining small specification to make big and complex specifications.The research paper is arranged in manner so that software engineer that want tostart his career of software industry may gain some knowledge in one place. Enormousneed in programming advancement is expected to make every one of the techniquesto be more particular for the requirement engineering stage since prerequisitesare essential building check on which the whole programming can be made-up. Thiswork inspire software engineers to work in formal methods to achieve quality ofsystem and security. ReferencesThe template will number citations consecutively withinbrackets 1.
The sentence punctuation follows the bracket 2. Refer simply tothe reference number, as in 3—do not use “Ref. 3” or “reference 3” exceptat the beginning of a sentence: “Reference 3 was the first …
“Number footnotes separately in superscripts. Place theactual footnote at the bottom of the column in which it was cited. Do not putfootnotes in the reference list. Use letters for table footnotes.Unless there are six authors or more give all authors’names; do not use “et al.
“. Papers that have not been published, even if theyhave been submitted for publication, should be cited as “unpublished” 4.Papers that have been accepted for publication should be cited as “in press”5. Capitalize only the first word in a paper title, except for proper nounsand element symbols.For papers published in translation journals, please givethe English citation first, followed by the original foreign-language citation6.
1 G.Eason, B. Noble, and I.N. Sneddon, “On certain integrals of Lipschitz-Hankeltype involving products of Bessel functions,” Phil.
Trans. Roy. Soc. London,vol.
A247, pp. 529-551, April 1955. (references)2 J.Clerk Maxwell, A Treatise on Electricity and Magnetism, 3rd ed., vol. 2.Oxford: Clarendon, 1892, pp.68-73.
3 I.S.Jacobs and C.P. Bean, “Fine particles, thin films and exchange anisotropy,” inMagnetism, vol. III, G.
T. Rado and H. Suhl, Eds. New York: Academic, 1963, pp.
271-350.4 K.Elissa, “Title of paper if known,” unpublished.
5 R.Nicole, “Title of paper with only first word capitalized,” J. Name Stand.Abbrev., in press.
6 Y.Yorozu, M. Hirano, K. Oka, and Y. Tagawa, “Electron spectroscopy studies onmagneto-optical media and plastic substrate interface,” IEEE Transl. J. Magn.Japan, vol.
2, pp. 740-741, August 1987 Digests 9th Annual Conf. MagneticsJapan, p. 301, 1982.7 M.
Young, The Technical Writer’s Handbook. Mill Valley, CA: University Science,1989.