0% found this document useful (0 votes)
95 views13 pages

Formal Method in Software Engineering: Raheem Ullah

The document discusses software engineering and formal methods. It defines software and software engineering, and discusses some of the challenges in software engineering like rapid technology advancement and changing customer demands. The document also describes common software development life cycles like the waterfall model and agile development. It explains the key aspects of these models including their processes, phases, and principles. Finally, the document provides an introduction to formal methods in software engineering.

Uploaded by

Shehzad Khan
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)
95 views13 pages

Formal Method in Software Engineering: Raheem Ullah

The document discusses software engineering and formal methods. It defines software and software engineering, and discusses some of the challenges in software engineering like rapid technology advancement and changing customer demands. The document also describes common software development life cycles like the waterfall model and agile development. It explains the key aspects of these models including their processes, phases, and principles. Finally, the document provides an introduction to formal methods in software engineering.

Uploaded by

Shehzad Khan
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/ 13

1

Formal Method in
Software Engineering
 
                                                                                               RAHEEM ULLAH
Today Topics: 2

 
 What is software?
  What is software Engineering ?
 Challenges in software Engineering?
 Software process and Life Cycle
          i) waterfall Life Cycle
         ii) Agile Development
 Formal Method Introduction
What is software ? 3

 Software is a set of instructions 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.

 Two type of software

      1) System Software

      2) Application Software (Custom Software)


   
     
Software Engineering ? 4
 Software engineering is defined as a process of analyzing user requirements and then
     designing, building, and testing software application which will satisfy those requirements.

  Software engineers need education  on specification, design, turning designs into


      programs, software inspections and testing. The education should enable the software
      engineer to produce well-structured programs that are fit for purpose.
Challenges in software Engineering? 5

 Software engineering employs a well defined and systematic approach to develop


      software. This approach is considered to be the most effective way of producing high-quality
      software. However, despite this systematic approach in software development, there are still
      some serious challenges faced by software engineering. Some of these challenges are listed
      below.
      1) Rapid technology advancement
      2) Increasing customer demands (Changes from customer)
     3) Time limitations
      4) Limited infrastructure/resources
      5) Conflicts with software testing teams
Software process and Life Cycle ? 6

 Software development process is the process of dividing


    software  development work into smaller, parallel or sequential steps or
     subprocesses to improve design , product management  and project
     management . It is also known as a software development life
    cycle (SDLC).

     The processes steps such as defining requirements, processes for project   


       estimation and planning, processes for design, implementation, testing. 
Continued 7
     The software process assets in an organization generally consist of: 
 –  A software development policy for the organization 
  a)  The software development policy helps to regulate software development and code management in your                     
           organization. A disorganized software development process can result in wasted time and wasted developer 
           resources. Creating a software development practice with an eye to efficiency and reuse is key to cost savings.
 –  Process maps that describe the flow of activities 
        A process map is a planning and management tool that visually describes the flow of work. Using process mapping   
            software, process maps show a series of events that produce an end result.
 –  Procedures and guidelines that describe the processes in more detail 
 –  Checklists to assist with the performance of the process 
 –  Templates for the performance of specific activities (e.g. design, testing) 
 –  Training Materials 
Continued  8
         The processes employed to develop high-quality software generally include: 
 –  Project management process 
 –  Requirements process 
 –  Design process 
 –  Coding process 
 –  Peer-review process 
 –  Testing process 
 –  Supplier selection and management processes 
 –  Configuration management process 
 –  Audit process 
 –  Measurement process 
 –  Improvement process 
 Customer support and maintenance processes 
Process Model 9
 A software process model is an abstraction (a technique for arranging complexity of
     computer systems) of the actual process, which is being described. It
    can also be defined as a simplified representation of a software process. Each model represents
    a process from a specific perspective.

    1) Waterfall Model
         The Waterfall Model was the first Process Model to be introduced. It is also referred to as
        a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall
       model, each phase must be completed before the next phase can begin and there is no
       overlapping in the phases. The Waterfall model is the earliest SDLC approach that was used for
      software development.

  
Waterfall Model Design 10
Agile philosophy  11

 Philosophy : a theory or attitude that acts as a guiding principle for behaviour. (17 people)
 Values  : basic and fundamental beliefs that guide or motivate attitudes or actions.
  principles: a basic truth or law or assumption.

 Agile Fours Values are :


        1) Individuals and Interactions
        2) working software
         3) Customer Collaboration
          4) Responding to Changes 
Agile 12 Priciples 12
 1) Customer satisfaction by early and continuous delivery of valuable software
 2) Welcome changing requirements, even in late development
 3) working software is deliverd frequently (weeks rather than months)
 4) close, daily cooperation between business people and developers
 5) projects are built around motivated individuals, who should be truested 
 6) fact to face conversation is the best form of communication(co-location)
 7) working software is the principal measure of progress
 8) sustainable development, able to maintain a costant pace
 9) continuous attention to technical excellence and good design
 10) simplicity—the art of maximizing the amount of work not done----- is essential
 11) best architectures, requirements, and desing emerge from self organizing teams
 12) Regularly, the team reflects on how to become more effective, and adjusts accordingly
13

         

                  Thank you

You might also like