if you want to remove an article from website contact us from top.

    formal system specification in software engineering

    Mohammed

    Guys, does anyone know the answer?

    get formal system specification in software engineering from screen.

    Formal specification

    Formal specification

    From Wikipedia, the free encyclopedia

    Jump to navigation Jump to search

    In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze its behavior, and to aid in its design by verifying key properties of interest through rigorous and effective reasoning tools.[1][2] These specifications are in the sense that they have a syntax, their semantics fall within one domain, and they are able to be used to infer useful information.[3]

    Contents

    1 Motivation 2 Uses 3 Limitations 4 Paradigms 5 Software tools 6 Examples 7 See also 8 References 9 External links

    Motivation[edit]

    In each passing decade, computer systems have become increasingly more powerful and, as a result, they have become more impactful to society. Because of this, better techniques are needed to assist in the design and implementation of reliable software. Established engineering disciplines use mathematical analysis as the foundation of creating and validating product design. Formal specifications are one such way to achieve this in software engineering reliability as once predicted. Other methods such as testing are more commonly used to enhance code quality.[1]

    Uses[edit]

    Given such a specification, it is possible to use formal verification techniques to demonstrate that a system design is correct with respect to its specification. This allows incorrect system designs to be revised before any major investments have been made into an actual implementation. Another approach is to use probably correct refinement steps to transform a specification into a design, which is ultimately transformed into an implementation that is .

    It is important to note that a formal specification is an implementation, but rather it may be used to develop an implementation. Formal specifications describe a system should do, not the system should do it.

    A good specification must have some of the following attributes: adequate, internally consistent, unambiguous, complete, satisfied, minimal[3]

    A good specification will have:[3]

    Constructability, manageability and evolvability

    Usability Communicability

    Powerful and efficient analysis

    One of the main reasons there is interest in formal specifications is that they will provide an ability to perform proofs on software implementations.[2] These proofs may be used to validate a specification, verify correctness of design, or to prove that a program satisfies a specification.[2]

    Limitations[edit]

    A design (or implementation) cannot ever be declared “correct” on its own. It can only ever be “correct with respect to a given specification”. Whether the formal specification correctly describes the problem to be solved is a separate issue. It is also a difficult issue to address since it ultimately concerns the problem constructing abstracted formal representations of an informal concrete problem domain, and such an abstraction step is not amenable to formal proof. However, it is possible to validate a specification by proving “challenge” theorems concerning properties that the specification is expected to exhibit. If correct, these theorems reinforce the specifier's understanding of the specification and its relationship with the underlying problem domain. If not, the specification probably needs to be changed to better reflect the domain understanding of those involved with producing (and implementing) the specification.

    Formal methods of software development are not widely used in industry. Most companies do not consider it cost-effective to apply them in their software development processes.[4] This may be for a variety of reasons, some of which are:

    Time

    High initial start up cost with low measurable returns

    Flexibility

    A lot of software companies use agile methodologies that focus on flexibility. Doing a formal specification of the whole system up front is often perceived as being the opposite of flexible. However, there is some research into the benefits of using formal specifications with "agile" development[5]

    Complexity

    They require a high level of mathematical expertise and the analytical skills to understand and apply them effectively[5]

    A solution to this would be to develop tools and models that allow for these techniques to be implemented but hide the underlying mathematics[2][5]

    Limited scope[3]

    They do not capture properties of interest for all stakeholders in the project[3]

    They do not do a good job of specifying user interfaces and user interaction[4]

    Not cost-effective

    This is not entirely true, by limiting their use to only core parts of critical systems they have shown to be cost-effective[4]

    Other limitations:[3]

    Isolation

    Low-level ontologies

    Poor guidance

    Poor separation of concerns

    Poor tool feedback

    Paradigms[edit]

    Formal specification techniques have existed in various domains and on various scales for quite some time.[6] Implementations of formal specifications will differ depending on what kind of system they are attempting to model, how they are applied and at what point in the software life cycle they have been introduced.[2] These types of models can be categorized into the following specification paradigms:

    स्रोत : en.wikipedia.org

    What is Formal Specification

    What is Formal Specification? Definition of Formal Specification: A software representation with well-defined syntax and semantics that is usually used to express software requirements or detailed software design.

    स्रोत : www.igi-global.com

    Formal Specification in Software Engineering SE9

    Formal Specification Techniques for the unambiguous specification of software

    Formal Specification in Software Engineering SE9

    koolkampus May. 20, 2007 • 6 likes • 30,087 views

    Next SlideShares 1 of 40 Technology Education Advertisement

    Recommended

    SECh910 Joe Christensen

    Ch10 phanleson

    Mca se chapter_9_formal_methods

    Aman Adhikari

    Language and Processors for Requirements Specification

    kirupasuchi1996

    Formal Methods HendMuhammad

    Functions

    Golda Margret Sheeba J

    Thesis Giani UIC Slides EN

    Marco Santambrogio

    2.1.1 PROBLEM SOLVING & DESIGN

    Buxoo Abdullah Advertisement

    Recommended

    SECh910 Joe Christensen Ch10 phanleson

    Mca se chapter_9_formal_methods

    Aman Adhikari

    Language and Processors for Requirements Specification

    kirupasuchi1996 Formal Methods HendMuhammad Functions

    Golda Margret Sheeba J

    Thesis Giani UIC Slides EN

    Marco Santambrogio

    2.1.1 PROBLEM SOLVING & DESIGN

    Buxoo Abdullah Advertisement

    More Related Content

    Slideshows for you (20)

    Ch 5- Achieving Qualities

    Asmat Zahra

    Generation and Optimization of Test cases for Object-Oriented Software Using ...

    स्रोत : www.slideshare.net

    Do you want to see answer or more ?
    Mohammed 7 day ago
    4

    Guys, does anyone know the answer?

    Click For Answer