0% found this document useful (0 votes)
46 views28 pages

FMiSE Lecture 1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views28 pages

FMiSE Lecture 1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28

FORMAL METHODS IN

SOFTWARE ENGINEERING
LECTURE: 1
INSTRUCTOR: MARIA MEMON
INTRODUCTION TO FORMAL METHODS

1. SDLC
2. Formal Method
3. Advantage
4. Disadvantage
5. Critical Software
6. Integrity Level
WHAT IS SOFTWARE…..

Software is a set of instructions, data or programs used to operate computers and execute

specific tasks. It is the opposite of hardware, which describes the physical aspects of a

computer. Software is a generic term used to refer to applications, scripts and programs that

run on a device. It can be thought of as the variable part of a computer, while hardware is

the invariable part.


SOFTWARE ENGINEERING

• Software engineering is the branch of computer science that deals with the design,

development, testing, and maintenance of software applications. Software engineers

apply engineering principles and knowledge of programming languages to build software

solutions for end users.

• Software engineers design and develop computer games, business applications, operating

systems, network control systems, and middleware—to name just a few of the many

career paths available.


1. INITIAL STUDY (PLANNING)

This is the first time the system development team meets the clients to

collective information regarding the problem. Normally this stage delivers

the proposal and quotation to the clients.


2. ANALYSIS

After the client has agreed to the proposal and price, the team will go in and

study the current system with the intention to discover the source of the

problem. The System analyst will use diagrams and data collection

techniques (observation, inspections, interview, etc) to aid them. Normally

this stage delivers a report stating the source of the problem and more then

one alternative solutions.


3. DESIGN

After the client agrees with the analysis findings, the client will choose one

(1) solution. From this one solution the system designer will create the

specification. Take note that different IT section will require different

specification. For the software section, the deliverables will take the form of

a screen design, logic design, representation of the codes, etc.


4. DEVELOPMENT

Base on the given specification, the respective IT section will develop the

solution. For the software section, the deliverables will be a full running

software program created from the specification.


5. TESTING

The test documents (Test Plan and Test Case) are normally created by the

System Analyst during the development stages. The tester (normally a 3rd

party) will use the Test Plan and Test Case to complete the testing. The

deliverables will be a letter from the tester stating the outcome of the test.
6. IMPLEMENTATION

At this stage onward the software is no longer a concern, the main objective
now will be to prepare the environment. The implementation plan will list
the tasks necessary to prepare the environment to accept new software, such
as installation, training, conversion of data, change over method, etc. There
are many deliverables here depending on what is listed in the implantation
plan. For example for user training a user manual is normally created
7. REVIEW

This is the final stage where the software user and team will sit down to

review the software performance and to decide negotiate on the maintenance

contract. If all goes well normally but not necessary a sign off letter will be

the last deliverables.


FORMAL METHOD

• Formal Method Formal method is a way to takes the specification (written


in natural language) and converts it into its mathematical equivalent. Thus
it is normally used in the SDLC Analysis and Design stages. The natural
language usually contains ambiguous, incomplete and inconsistent
statement.

• Once a specification in English for example is translated to a mathematical


form, it will remove all ambiguity and uncertainty in that statement.
 Formal method will also bring to light all different probable perspective to any given
variables and functions that could have been hidden behind the English language.

 This can be done using a number of formal languages such as Z notation, VDM, Algebra,
Functional Programming, etc.

 Creating software need not use formal method, having said that, having formal method
imbedded into the SDLC does give the software huge advantages and also a new set of
disadvantages
ADVANTAGE OF FORMAL METHOD

Formal Method forces the System Analyst and Designer to think carefully

about the specification as it enforce proper engineering approach using

discrete mathematics. Formal Method forces the System Analyst and

Designer to see all the different possible states for any given variables and

functions thus will avoid many faults and therefore reduces the bugs and

errors from the design stage onward.


DISADVANTAGE OF FORMAL METHOD
Formal Method requires the person to know how to apply discrete mathematics. It will obviously
slow down the analysis and design stage resources and time therefore also the cost of the project.

There are too many different formal methods and most of them are not compatible with each
other.

Formal methods do not guarantee that a specification is complete. For each variable and function,
it just forces the System Analyst and Designer to view the specification from a different
perspectives but it does not guarantee that variable and functions will not be left out.
CRITICAL SOFTWARE

Having known the advantages and disadvantages, most clients will see the

justification to use formal methods for critical systems, but this thinking is

now slowly fading as most clients realize the important and cost saving and

convenience of having a good specification initially in the SDLC.


There are basically three (3) different types of critical systems;

1. Business Critical System Business Critical System refers to a system where the honesty

and integrity of the business is paramount. All data kept in the system must be accurate at all

times. If a fault is found the entire process must be stop to allow correction. Most government,

business and manufacturing company that requires payment are business critical.
2. Mission Critical System

Mission Critical System refers to a system where the continuous running of

the system is paramount. Accurate takes a lower priority compare to the

running of the system. Auto Teller Machine, Car ticketing system, Alarm

Systems are mission critical.


3. Safety Critical System

Safety Critical System refers to a system where the safety of everyone directly or indirectly affected by the system

is paramount. Functionality and Accurate takes a lower priority compare to the safety of the users. Most medical,

construction and oil rig systems are safety critical system.

Many organizations today require a combination of the above as such you may have a business mission critical

system, a business safety critical system, etc.


INTEGRITY LEVEL

Integrity Level Integrity level refers to how much cost is an organization is willing to spend
and how much risk is an organization is willing to take when developing software.
STAGES IN FORMAL METHOD
1. FORMAL SPECIFICATION

This is where normal system specification is use and translated using a formal language into a formal
specification. There are basically two type of formal language; Model Oriented (VDM, Z, etc) and
Properties Oriented (Algebraic Logic, Temporal Logic, etc). This is the cheapest way to handle formal
method.

The formal specification generally does the following process.

1. Get user requirement usually from the specification written in the natural language.

2. Clarify the requirement using mathematical approach. This is to remove all ambiguous, incomplete
and inconsistent statement.
3. After statements are clearly identified. Then find all assumptions (Things that must be in
place before something can happen) that is state or not stated within the clarified
requirement.
4. Then expose every possible logic defect (fault) or omission in the clarified requirement.
5. Identify what are the exceptions (bad things) that will arise if the defects are not
corrected. Chapter 1- Formal Methods
10/64 .
6. Find a way to test for all the possible each exception. Only when you can test for an
exception can you be able to stop that exception from happening.
2. FORMAL PROOF

This level studies the formal specification and retrieves the goals of the formal specific.

Then fixed rules are created and with these rules step by step instructions are listed to

achieve the specified goals. This is relatively cheaper but there are more task steps.
3. MODEL CHECKING

This level studies the formal specification and formal proof deliverables to make sure that

the system or software contains ALL possible properties to be able to handle all possible

scenarios that could happen for a given specification. This stage is beginning to be more

expensive.
4. ABSTRACTION

This level uses mathematical and physical models to create a prototype of the entire system

for simulation. This prototype is use to focus on the properties and characteristic of the

system. This is the most expensive formal method.


INTEGRITY LEVEL AND FORMAL METHOD STAGES

The integrity level decided by the organization will determine how deep to go into the
Formal Method stage.
Remember that the deeper into the formal method means more time and resources thus
more cost will be incurred.
THANK YOU

You might also like