SlideShare a Scribd company logo
1 of 33
Download to read offline
Software Engineering
By:
      Ashok Mohanty
      Reader, Dept. of Mechanical Engg.
      College of Engg. & technology, Bhubaneswar


This ppt is based on:
  1. Software Engineering, Jibitesh Mishra & Ashok Mohanty, Pearson
     Education
  2. Software Engineering, Pressman, McGrawHill
  3. Guide to Software Engineering Body of Knowledge (SWEBOK),
     IEEE Computer Society’s Professional Practices Committee, 2004

                                                    ŠAshok Mohanty,
                                                    <amohanty01@yahoo.com>   1
Topics to be discussed
• Characteristics of commercial software
• Emergence of Software Engineering
• Core aspects of software engineering

• Software processes
• Software Development Life Cycle Models

• Types of software requirements
• Methods and Activities in Requirement Engineering
• Structure of Software Requirement Specification (SRS)

• Approaches to Software Engineering
       • Function Oriented (FO) approach
       • Object Oriented (OO) approach
                                                ŠAshok Mohanty,
                                                <amohanty01@yahoo.com>   2
Software is a general term for Programs & Data
Characteristics of commercial Software
• Developed for some clients under formal contracts
• Software is designed based on some specification
• Developed in teams and not by individuals
• Includes detailed documentation
• Meant for users
• Requires some modification from time to time.
• Does not wear out but has a lifespan, after which it becomes
  obsolete.
• Software failure may create catastrophe. So software is designed
  for utmost reliability.
• A computer system is prone to misuse or sabotage. So software
  is designed to be temper-proof

                                                   ŠAshok Mohanty,
                                                   <amohanty01@yahoo.com>   3
Software Development
Design and development of software requires great amount of
effort, time and money
             Computer programming is just one part of the process.
It requires a systematic approach that includes
     • Comprehensive methods
     • Tools for efficient execution of methods
     • Procedures for quality assurance
     • Coordination and control
It also involves people and their management.

All these engineering aspects relating to software development
have combined together to evolve as a discipline
called Software Engineering.

   Manufactured product     Industrial Engineering
   Software product     Software Engineering ŠAshok Mohanty,
                                                <amohanty01@yahoo.com>   4
Software Crisis
   During 1970s, large numbers of software projects failed mostly
   due to human factors. This problem was referred to as the
   “software crisis”.

Study by Comptroller General of the United States (1979):
   2% of software worked on delivery
   3% worked only after some corrections
   45% delivered, but never successfully used
   20% used, only after major modification/ reworked
   30% were paid for, never completed/ delivered
Software Crisis led to Software Engineering
Software Engineering
    •   Systematic approach to software development
    •   Application of engineering principles
    •   Provides a set of methods, tools, and procedures
    •   Ensures consistent software quality          ©Ashok Mohanty,
                                                     <amohanty01@yahoo.com>   5
Core Aspects of SE
The subject ‘Software Engineering’ is
                    inter-disciplinary in nature.
Software development requires
   active involvement and participation of software
           users and developers.
It requires domain knowledge of various fields including
   computer science and area for which software being made.

Product, Process, People, and Project are the four core
  aspects of software development.


                                               ŠAshok Mohanty,
                                               <amohanty01@yahoo.com>   6
SE includes 10 Knowledge Areas
1. Software requirements   6. Software configuration mgmt.
2. Software design         7. Software engg. Management
3. Software construction   8. Software engg. process
4. Software testing        9. Software engg. tools &methods
5. Software maintenance    10. Software quality


SE knowledge derived from 8 subject areas
1. Computer Engineering    5. Project Management
2. Computer Science        6. Quality Management
3. Management              7. Software Ergonomics
4. Mathematics             8. Systems Engineering
                                             ŠAshok Mohanty,
                                             <amohanty01@yahoo.com>   7
Software Process
             refers to methods of developing software

It has four major component processes
    1. Software Development Process
    2. Software Project Management Process
    3. Software Configuration Management Process
    4. Software Process Management Process

Software Development Process
      It is a structured set of activities that transform the user
      requirements into a quality software product.


                                                   ŠAshok Mohanty,
                                                   <amohanty01@yahoo.com>   8
Process Model
 Sequential Process Model              Iterative Process Model




 Sequential Process Models           Iterative Process Models
Software is developed      in   a A prototype is developed using the
sequence of stages                sequential process.
Stages are:                       After one part is completed, all
  Analysis, Design,               activities   are    repeated   for
                                  developing the next part.
  Coding, Testing, etc.

                                                    ŠAshok Mohanty,
                                                    <amohanty01@yahoo.com>   9
Sequential Process Models
The Waterfall model
Traditional sequential process model
Software development takes place in well defined phases

 1. System Engineering            4. Implementation or Coding
 2. Requirement Analysis          5. Verification or testing
 3. Design                        6. Maintenance


The V-model
Extension of Waterfall model
Stipulates various kinds of testing, like unit (module) testing and
integration testing.
Information from earlier phases also used for testing
                                                   ŠAshok Mohanty,
                                                   <amohanty01@yahoo.com>   10
Iterative Process Models
Prototyping Model
                           It is of two types
 Throw-away prototyping                   Evolutionary prototyping
Used for checking software           Initial working model of software based
  requirement specification          on outline specification. This prototype
                                     is evaluated and refined in number of
                                     stages to get final product.

Spiral model: Each cycle consists of four step
1. Planning    2. Risk Analysis 3. Engineering 4.Validation
              Spiral model emphasizes on risk management.
Iterative Waterfall Model:                    It overcomes the limitations of
Waterfall Model by adding an “iterative” loop. After end of each phase, its
previous phases are revisited to modify requirements and to remove errors.

                                                          ŠAshok Mohanty,
                                                          <amohanty01@yahoo.com>   11
Software is developed to perform certain Functions.
Functions is stipulated by Software requirements
                       (It provides the basis for software development.)


                  Requirement Engineering (RE)
                 is a systematic approach for determining
            Software Requirement Specifications (SRS)


6 types of software requirement specifications
     •   Functional requirement
     •   Design requirement
     •   Implementation requirement
     •   Interface requirement
     •   Performance requirement
     •   Physical requirement.
                                                            ŠAshok Mohanty,
                                                            <amohanty01@yahoo.com>   12
Requirement Engineering Activities
1. Inception     Understanding the situation that have initiated
                 the software project
                 Identification of stakeholders
2. Elicitation   Seeking information about the software,
                 system and business (through interview,
                 questionnaire, record review, observation, etc).
                 Provides initial user requirements
3. Elaboration   Developing a refined technical model of
                 software functions, features & constraints
4. Negotiation   Making tradeoff & fixing priorities
5. Validation    Requirement specification             assessed          for
                 correctness & quality

                                                     ŠAshok Mohanty,
                                                     <amohanty01@yahoo.com>   13
Requirement Engineering Process




                         ŠAshok Mohanty,
                         <amohanty01@yahoo.com>   14
Typical Structure of SRS Document
1. Introduction
  1.1 Name & purpose of software; 1.2 Scope, benefits, objectives, and goals; 1.3 Types
   of audience/ users
2. Overall Description
  2.1 Product Perspective: Context and origin (how initiated?); Block diagram of overall
   system to which software relates; 2.2 Product Features: Major features and significant
   functions; Organization of functions/ modules; 2.3 Category/ types of users; 2.4
   Performance Requirements; 2.5 Operating Environment: Hardware platform, operating
   system, database system, etc.; 2.6 Design and Implementation Constraints; 2.7 Security,
   safety and privacy Requirements; 2.8 User Documentation; 2.9 Assumptions

3. Software Features: (Detailed software features)
   3.1 Name of feature; 3.2 Description of feature & its priority; 3.3 Sequences of user
   actions & system responses; 3.4 Functional Requirements
4. External Interface Requirements
  4.1 User Interfaces;       4.2 Hardware Interfaces; 4.3 Software Interfaces;       4.4
   Communications Interfaces
5. Other Non-functional Requirements
  5.1 Performance Requirements; 5.2 Safety and Security Requirements; 5.3 Software
   quality attributes; 5.4 Other requirements if any
6. Appendix:
                                                     ŠAshok Mohanty,
  6.1 Glossary of terms; 6.2 List of issues; 6.3 Figures and diagrams
                                                     <amohanty01@yahoo.com>            15
Software development process

Comprises of following activities.
     System Analysis or Requirement Analysis
     Software Design
     Implementation or Coding
     Testing or Inspection
     Maintenance or Adaptation

Activities are performed according to a plan.

                                            ŠAshok Mohanty,
                                            <amohanty01@yahoo.com>   16
Approaches to Software
Engineering
System for which software is to be developed is
successively broken down (decomposed) into parts
and arranged in to hierarchy.
Decomposition is a convenient way of handling any
complex problem.

TWO approaches to Software Engineering
    1. Function-Oriented (FO) Approach
    2. Object-Oriented (OO) Approach
Similarity: System factored into parts in both approaches
Difference: lies in the basis on which the system is factored
                                                                17
Function Oriented vs Object Orient
FO approach focus is on functions or processes
Functions Sub-functions more Sub-functions

OO approach focus is on objects or entities
Object Parts (child-objects) more parts (child-objects)

FO emphasis on ‘what system does (verb)
OO emphasis on ‘what system consists of (noun)’.


                                               ŠAshok Mohanty,
                                               <amohanty01@yahoo.com>   18
Example of academic institution
Functions                      Entities that do the functions


Impart teaching on theory      Teachers, Classroom, Syllabus
Impart teaching on practical   Teachers, Laboratories, Syllabus
Conduct examination            Examination section, Classroom,
                               Question-setter, Invigilators, etc.
Evaluate students’             Examination section, Examiners,
performance                    etc.


          FO approach concentrates on functions.
     OO approach focuses on objects that do the functions.
                                                    ŠAshok Mohanty,
                                                    <amohanty01@yahoo.com>   19
Function Oriented Approach
FO approach           is   traditional.   It   supports       structured
programming
A structured program consists of functions (modules) organized in a
hierarchy.
       Higher level function invokes lower level function.
       Data is either local or global

        Function 1
         Local Data
                Calls
        Function 2
                                   Operates on
         Local Data
                Calls                          Global Data
        Function 3
         Local Data
                                   Operates on
                                                      ŠAshok Mohanty,
                                                      <amohanty01@yahoo.com>   20
FO methodology is also called
‘Structured System Analysis and Design (SSAD)’.


Structured analysis is done to determine:
         – Functions to be performed
         – Data to be manipulated
         – Constraints on functions and data
Functional specification specifies ‘what the software is expected to
do?’ It provides the basis for design of software.

Structured Design                 is   done    to   develop         design
specification.
        Design specification is the blue print for constructing the
        software.
        Design specification is translated into a program code.
                                                       ŠAshok Mohanty,
                                                      <amohanty01@yahoo.com>   21
Tools used in SSAD
          Tools                        Purpose
Data Flow Diagram       Process mapping of system
  (DFD)
Data Dictionary         List of different data items used in
                        system
ER Diagram              Data modelling

Process Specification   Depicts procedures used in system
Tools
State Transition Diagram Depicts chronological events         and
(ST Diagram)             corresponding system states
Structure chart         Depicts modular design of a program

Structured English/     Depicts logic of program
Pseudocode                                                      22
Structured Analysis
      Environmental Model

 • Statement of Purpose                 Structured Design
 • Context Diagram
 • Event List                          Implementation Model


   Behavioural Model                •Structure chart
                                    •Interface design
                                    •Data design
  •   Data Flow Diagram             •Module specification
  •   Data Dictionary
  •   ER diagram
  •   Process specification
  •   State Transition Diagram



Function Oriented Approach to Software Development
                                            ŠAshok Mohanty,
                                                     <amohanty01@yahoo.com>   23
Overview of Object Oriented Approach
World is made up of entities or objects.
So analysis and design a system in terms of objects is closer to the
real world modelling.

The object oriented approach uses object oriented programming
concepts.

Object consists of data structures combined with relevant
functions (method)

An object is invoked by its method.
Invocation of a method may change either the properties of the
object or invoke some other object.
                                                     ŠAshok Mohanty,
                                                     <amohanty01@yahoo.com>   24
Object 1                          Object 2
 Methods                           Methods
  Data                              Data

                             All arrows represent Invokes

 Object 3                          Object 4
 Methods                           Methods
  Data                              Data



Messages passing within Objects
      In OO approach, system functionality is expressed in terms of
      operations or services associated with each object.
Object Oriented Analysis & Design (OOAD)
The OOAD comprises of
   Object Oriented Analysis (OOA)
   Object Oriented Design (OOD)

Documentation Tool
  • Unified Modelling Language (UML)’ is a
    documentation tool used in OOAD methodology
  • UML has evolved from the work of Grady Booch,
    James Rumbaugh, Ivar Jacobsen, and others at
    Rational Corporation in 1997.
  • At present, the UML has almost become an industry
    standard documentation tool.
  • UML comprises of number of diagrams
                                         ŠAshok Mohanty,
                                         <amohanty01@yahoo.com>
Steps of OOA
   •Define User View of Requirements
   •Identify Analysis Objects and their Characteristics
   •Determine Object Dynamics
   •Determine Object Interactions and relationship
                   Diagrams used in OOA.
Use case diagram        Describes how users interact with processes

Class diagram           It is used to refine the use case diagram and define a
                        detailed design of the system
State diagram           Represents different states that objects in the system
                        undergo during their life cycle
Activity diagram        Describes the process flow of the system

Sequence diagram        Represents interaction between objects

Collaboration diagram   Groups together interactions between objects.
                                                                            27
Fundamental questions in OOD
  •What objects do we need?
  •What behaviours are required?
  •How do we distribute behaviour over the set of objects?

Static Modelling’
              Classes, Attributes, Methods
              and Associations

 Identified in OOA                           Designed for
                                             implementation in OOD




Objects also perform some action. Defining the
behaviour (methods) of objects is called the
‘Dynamic Modelling’.                 ©Ashok Mohanty,
                                                      <amohanty01@yahoo.com>   28
Diagrams in OOD
 Name of diagram                     Purpose
Component          Represents high-level parts that make up the
diagram            system.
Deployment         Captures configuration of runtime elements
diagram            of application
Package            Holds model elements such as classes, state
                   machines and use cases.
Subsystem          Represents a portion of a system that can be
                   implemented as a distinct component


                                                 ŠAshok Mohanty,
                                                 <amohanty01@yahoo.com>   29
The OOAD comprises of
   Object Oriented Analysis (OOA)
   Object Oriented Design (OOD)
But there is overlapping of both these phases
    e.g, Class diagram and Object diagram are included in
    OOA. But these are also useful in OOD..




            OO Analysis     OO Design       OO Coding



                                          ŠAshok Mohanty,
                                          <amohanty01@yahoo.com>   30
SSAD vs OOAD
Same basic steps
   – Understand the problem
   – Specify requirements (WHAT)
   – Design the solution (HOW)
   – Write the code
   – Test and deploy

Similar types of tasks
   – Elicitation of requirements
   – Documentation of requirements
   – Identification of software modules
   – Design of software modules
   – Acceptance tests

Similar project management issues
  e.g. Planning, Estimating, Monitoring & Control, Communicating
                                                                   31
How OO Approach is different?
•   Different View of the System
•   Integration of Data and Method
•   Different Documentation Tools
•   Real World Focus
•   Approach to Project Life Cycle
•   Approach to Program Coding
•   Approach to Component Reuse
•   Approach to Software Maintenance

FO methodology is more suitable for data intensive software
projects, whereas OO methodology is more suitable for
software project that requires complex algorithm/ processing
logic.
                                               ŠAshok Mohanty,
                                               <amohanty01@yahoo.com>   32
References
1. Software Engineering,
   Jibitesh Mishra & Ashok Mohanty,
   Pearson Education

2. Software Engineering,
    Pressman,
   McGrawHill

3. Guide to Software Engineering Body of Knowledge,
   IEEE Computer Society’s Professional Practices Committee, 2004


                                                   ŠAshok Mohanty,
                                                   <amohanty01@yahoo.com>   33

More Related Content

What's hot

Software project management
Software project managementSoftware project management
Software project managementR A Akerkar
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements EngineeringBenoy Ramachandran
 
Introduction to Agile Software Development
Introduction to Agile Software DevelopmentIntroduction to Agile Software Development
Introduction to Agile Software DevelopmentLife Cycle Engineering
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software designPiyush Gogia
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Chapter 5 Agile Software development
Chapter 5 Agile Software developmentChapter 5 Agile Software development
Chapter 5 Agile Software developmentDidarul Amin
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleSlideshare
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSaqib Raza
 
Introduction To Agile
Introduction To AgileIntroduction To Agile
Introduction To AgileKnoldus Inc.
 
Software project management- Software Engineering
Software project management- Software EngineeringSoftware project management- Software Engineering
Software project management- Software EngineeringMuhammad Yousuf Abdul Qadir
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)Simran Kaur
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPTMohit Kumar
 
Software requirements
Software requirementsSoftware requirements
Software requirementsDr. Loganathan R
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)Jayesh Buwa
 
Software quality
Software qualitySoftware quality
Software qualitySara Mehmood
 

What's hot (20)

Software project management
Software project managementSoftware project management
Software project management
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Slides chapter 2
Slides chapter 2Slides chapter 2
Slides chapter 2
 
Introduction to Agile Software Development
Introduction to Agile Software DevelopmentIntroduction to Agile Software Development
Introduction to Agile Software Development
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Chapter 5 Agile Software development
Chapter 5 Agile Software developmentChapter 5 Agile Software development
Chapter 5 Agile Software development
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Sdlc
SdlcSdlc
Sdlc
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Introduction To Agile
Introduction To AgileIntroduction To Agile
Introduction To Agile
 
Software project management- Software Engineering
Software project management- Software EngineeringSoftware project management- Software Engineering
Software project management- Software Engineering
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPT
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)
 
Software quality
Software qualitySoftware quality
Software quality
 

Viewers also liked

Software requirements specification
Software  requirements specificationSoftware  requirements specification
Software requirements specificationKrishnasai Gudavalli
 
Software Engineering UPTU
Software Engineering UPTUSoftware Engineering UPTU
Software Engineering UPTURishi Shukla
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering pptshruths2890
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsNishu Rastogi
 
Requirements engineering process in software engineering
Requirements engineering process in software engineeringRequirements engineering process in software engineering
Requirements engineering process in software engineeringPreeti Mishra
 
Ian Sommerville, Software Engineering, 9th Edition Ch2
Ian Sommerville,  Software Engineering, 9th Edition Ch2Ian Sommerville,  Software Engineering, 9th Edition Ch2
Ian Sommerville, Software Engineering, 9th Edition Ch2Mohammed Romi
 
Software requirement specification
Software requirement specificationSoftware requirement specification
Software requirement specificationAmit Gandhi
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement SpecificationVishal Singh
 
Structured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and DesignStructured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and DesignMotaz Saad
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software EngineeringLeyla Bonilla
 
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSoftware Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSvetlin Nakov
 
Software Engineering - Ch8
Software Engineering - Ch8Software Engineering - Ch8
Software Engineering - Ch8Siddharth Ayer
 
OO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentOO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentRandy Connolly
 
Lecture 02 Software Process Model
Lecture 02 Software Process ModelLecture 02 Software Process Model
Lecture 02 Software Process ModelAchmad Solichin
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7koolkampus
 
Component Based Software Development
Component Based Software DevelopmentComponent Based Software Development
Component Based Software DevelopmentDiego Cardozo
 
Ch5- Software Engineering 9
Ch5- Software Engineering 9Ch5- Software Engineering 9
Ch5- Software Engineering 9Ian Sommerville
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelmohamed khalaf alla mohamedain
 

Viewers also liked (20)

Software requirements specification
Software  requirements specificationSoftware  requirements specification
Software requirements specification
 
Software Engineering UPTU
Software Engineering UPTUSoftware Engineering UPTU
Software Engineering UPTU
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering ppt
 
software engineering
 software engineering software engineering
software engineering
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
Requirements engineering process in software engineering
Requirements engineering process in software engineeringRequirements engineering process in software engineering
Requirements engineering process in software engineering
 
Ian Sommerville, Software Engineering, 9th Edition Ch2
Ian Sommerville,  Software Engineering, 9th Edition Ch2Ian Sommerville,  Software Engineering, 9th Edition Ch2
Ian Sommerville, Software Engineering, 9th Edition Ch2
 
Software requirement specification
Software requirement specificationSoftware requirement specification
Software requirement specification
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Structured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and DesignStructured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and Design
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software Engineering
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSoftware Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin Nakov
 
Software Engineering - Ch8
Software Engineering - Ch8Software Engineering - Ch8
Software Engineering - Ch8
 
OO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentOO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented Development
 
Lecture 02 Software Process Model
Lecture 02 Software Process ModelLecture 02 Software Process Model
Lecture 02 Software Process Model
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7
 
Component Based Software Development
Component Based Software DevelopmentComponent Based Software Development
Component Based Software Development
 
Ch5- Software Engineering 9
Ch5- Software Engineering 9Ch5- Software Engineering 9
Ch5- Software Engineering 9
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 

Similar to software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Soft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxSoft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxKalpna Saharan
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materialssmruti sarangi
 
Short Notes Of Software Engineering .pptx
Short Notes Of Software Engineering .pptxShort Notes Of Software Engineering .pptx
Short Notes Of Software Engineering .pptxvickychauhan73802
 
construction management system final year report
construction management system final year reportconstruction management system final year report
construction management system final year reportchiragbarasiya
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt23017156038
 
Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineeringMadhav Suratkar
 
Software engineering tutorial
Software engineering tutorial Software engineering tutorial
Software engineering tutorial Ahmed Elshal
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfVijayakumarKadumbadi
 
Software lifecycle model report
Software lifecycle model reportSoftware lifecycle model report
Software lifecycle model reportAshutosh Singh
 
SDLC and Software Process Models Introduction ppt
SDLC and Software Process Models Introduction pptSDLC and Software Process Models Introduction ppt
SDLC and Software Process Models Introduction pptSushDeshmukh
 
Software engineering introduction
Software engineering   introductionSoftware engineering   introduction
Software engineering introductionDr. Loganathan R
 
Unit-1 EMBEDDED SYSTEM PROJECT MANAGEMENT.pptx
Unit-1 EMBEDDED SYSTEM PROJECT MANAGEMENT.pptxUnit-1 EMBEDDED SYSTEM PROJECT MANAGEMENT.pptx
Unit-1 EMBEDDED SYSTEM PROJECT MANAGEMENT.pptxTahminaTabassum1
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxomgadekar25
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03YousefYassin5
 
SE UNIT-1 Revised.pdf
SE UNIT-1 Revised.pdfSE UNIT-1 Revised.pdf
SE UNIT-1 Revised.pdfDr. Radhey Shyam
 

Similar to software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc (20)

Soft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxSoft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptx
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materials
 
7 5-94-101
7 5-94-1017 5-94-101
7 5-94-101
 
7 5-94-101
7 5-94-1017 5-94-101
7 5-94-101
 
Short Notes Of Software Engineering .pptx
Short Notes Of Software Engineering .pptxShort Notes Of Software Engineering .pptx
Short Notes Of Software Engineering .pptx
 
construction management system final year report
construction management system final year reportconstruction management system final year report
construction management system final year report
 
SE
SESE
SE
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
 
Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineering
 
Software engineering tutorial
Software engineering tutorial Software engineering tutorial
Software engineering tutorial
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdf
 
Software lifecycle model report
Software lifecycle model reportSoftware lifecycle model report
Software lifecycle model report
 
SDLC and Software Process Models Introduction ppt
SDLC and Software Process Models Introduction pptSDLC and Software Process Models Introduction ppt
SDLC and Software Process Models Introduction ppt
 
Software engineering introduction
Software engineering   introductionSoftware engineering   introduction
Software engineering introduction
 
Unit-1 EMBEDDED SYSTEM PROJECT MANAGEMENT.pptx
Unit-1 EMBEDDED SYSTEM PROJECT MANAGEMENT.pptxUnit-1 EMBEDDED SYSTEM PROJECT MANAGEMENT.pptx
Unit-1 EMBEDDED SYSTEM PROJECT MANAGEMENT.pptx
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
 
Week_02.pptx
Week_02.pptxWeek_02.pptx
Week_02.pptx
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03
 
Process Models IN software Engineering
Process Models IN software EngineeringProcess Models IN software Engineering
Process Models IN software Engineering
 
SE UNIT-1 Revised.pdf
SE UNIT-1 Revised.pdfSE UNIT-1 Revised.pdf
SE UNIT-1 Revised.pdf
 

Recently uploaded

Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...Pooja Nehwal
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Dr. Mazin Mohamed alkathiri
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 

Recently uploaded (20)

Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 

software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

  • 1. Software Engineering By: Ashok Mohanty Reader, Dept. of Mechanical Engg. College of Engg. & technology, Bhubaneswar This ppt is based on: 1. Software Engineering, Jibitesh Mishra & Ashok Mohanty, Pearson Education 2. Software Engineering, Pressman, McGrawHill 3. Guide to Software Engineering Body of Knowledge (SWEBOK), IEEE Computer Society’s Professional Practices Committee, 2004 ŠAshok Mohanty, <amohanty01@yahoo.com> 1
  • 2. Topics to be discussed • Characteristics of commercial software • Emergence of Software Engineering • Core aspects of software engineering • Software processes • Software Development Life Cycle Models • Types of software requirements • Methods and Activities in Requirement Engineering • Structure of Software Requirement Specification (SRS) • Approaches to Software Engineering • Function Oriented (FO) approach • Object Oriented (OO) approach ŠAshok Mohanty, <amohanty01@yahoo.com> 2
  • 3. Software is a general term for Programs & Data Characteristics of commercial Software • Developed for some clients under formal contracts • Software is designed based on some specification • Developed in teams and not by individuals • Includes detailed documentation • Meant for users • Requires some modification from time to time. • Does not wear out but has a lifespan, after which it becomes obsolete. • Software failure may create catastrophe. So software is designed for utmost reliability. • A computer system is prone to misuse or sabotage. So software is designed to be temper-proof ŠAshok Mohanty, <amohanty01@yahoo.com> 3
  • 4. Software Development Design and development of software requires great amount of effort, time and money Computer programming is just one part of the process. It requires a systematic approach that includes • Comprehensive methods • Tools for efficient execution of methods • Procedures for quality assurance • Coordination and control It also involves people and their management. All these engineering aspects relating to software development have combined together to evolve as a discipline called Software Engineering. Manufactured product Industrial Engineering Software product Software Engineering ŠAshok Mohanty, <amohanty01@yahoo.com> 4
  • 5. Software Crisis During 1970s, large numbers of software projects failed mostly due to human factors. This problem was referred to as the “software crisis”. Study by Comptroller General of the United States (1979): 2% of software worked on delivery 3% worked only after some corrections 45% delivered, but never successfully used 20% used, only after major modification/ reworked 30% were paid for, never completed/ delivered Software Crisis led to Software Engineering Software Engineering • Systematic approach to software development • Application of engineering principles • Provides a set of methods, tools, and procedures • Ensures consistent software quality ŠAshok Mohanty, <amohanty01@yahoo.com> 5
  • 6. Core Aspects of SE The subject ‘Software Engineering’ is inter-disciplinary in nature. Software development requires active involvement and participation of software users and developers. It requires domain knowledge of various fields including computer science and area for which software being made. Product, Process, People, and Project are the four core aspects of software development. ŠAshok Mohanty, <amohanty01@yahoo.com> 6
  • 7. SE includes 10 Knowledge Areas 1. Software requirements 6. Software configuration mgmt. 2. Software design 7. Software engg. Management 3. Software construction 8. Software engg. process 4. Software testing 9. Software engg. tools &methods 5. Software maintenance 10. Software quality SE knowledge derived from 8 subject areas 1. Computer Engineering 5. Project Management 2. Computer Science 6. Quality Management 3. Management 7. Software Ergonomics 4. Mathematics 8. Systems Engineering ŠAshok Mohanty, <amohanty01@yahoo.com> 7
  • 8. Software Process refers to methods of developing software It has four major component processes 1. Software Development Process 2. Software Project Management Process 3. Software Configuration Management Process 4. Software Process Management Process Software Development Process It is a structured set of activities that transform the user requirements into a quality software product. ŠAshok Mohanty, <amohanty01@yahoo.com> 8
  • 9. Process Model Sequential Process Model Iterative Process Model Sequential Process Models Iterative Process Models Software is developed in a A prototype is developed using the sequence of stages sequential process. Stages are: After one part is completed, all Analysis, Design, activities are repeated for developing the next part. Coding, Testing, etc. ŠAshok Mohanty, <amohanty01@yahoo.com> 9
  • 10. Sequential Process Models The Waterfall model Traditional sequential process model Software development takes place in well defined phases 1. System Engineering 4. Implementation or Coding 2. Requirement Analysis 5. Verification or testing 3. Design 6. Maintenance The V-model Extension of Waterfall model Stipulates various kinds of testing, like unit (module) testing and integration testing. Information from earlier phases also used for testing ŠAshok Mohanty, <amohanty01@yahoo.com> 10
  • 11. Iterative Process Models Prototyping Model It is of two types Throw-away prototyping Evolutionary prototyping Used for checking software Initial working model of software based requirement specification on outline specification. This prototype is evaluated and refined in number of stages to get final product. Spiral model: Each cycle consists of four step 1. Planning 2. Risk Analysis 3. Engineering 4.Validation Spiral model emphasizes on risk management. Iterative Waterfall Model: It overcomes the limitations of Waterfall Model by adding an “iterative” loop. After end of each phase, its previous phases are revisited to modify requirements and to remove errors. ŠAshok Mohanty, <amohanty01@yahoo.com> 11
  • 12. Software is developed to perform certain Functions. Functions is stipulated by Software requirements (It provides the basis for software development.) Requirement Engineering (RE) is a systematic approach for determining Software Requirement Specifications (SRS) 6 types of software requirement specifications • Functional requirement • Design requirement • Implementation requirement • Interface requirement • Performance requirement • Physical requirement. ŠAshok Mohanty, <amohanty01@yahoo.com> 12
  • 13. Requirement Engineering Activities 1. Inception Understanding the situation that have initiated the software project Identification of stakeholders 2. Elicitation Seeking information about the software, system and business (through interview, questionnaire, record review, observation, etc). Provides initial user requirements 3. Elaboration Developing a refined technical model of software functions, features & constraints 4. Negotiation Making tradeoff & fixing priorities 5. Validation Requirement specification assessed for correctness & quality ŠAshok Mohanty, <amohanty01@yahoo.com> 13
  • 14. Requirement Engineering Process ŠAshok Mohanty, <amohanty01@yahoo.com> 14
  • 15. Typical Structure of SRS Document 1. Introduction 1.1 Name & purpose of software; 1.2 Scope, benefits, objectives, and goals; 1.3 Types of audience/ users 2. Overall Description 2.1 Product Perspective: Context and origin (how initiated?); Block diagram of overall system to which software relates; 2.2 Product Features: Major features and significant functions; Organization of functions/ modules; 2.3 Category/ types of users; 2.4 Performance Requirements; 2.5 Operating Environment: Hardware platform, operating system, database system, etc.; 2.6 Design and Implementation Constraints; 2.7 Security, safety and privacy Requirements; 2.8 User Documentation; 2.9 Assumptions 3. Software Features: (Detailed software features) 3.1 Name of feature; 3.2 Description of feature & its priority; 3.3 Sequences of user actions & system responses; 3.4 Functional Requirements 4. External Interface Requirements 4.1 User Interfaces; 4.2 Hardware Interfaces; 4.3 Software Interfaces; 4.4 Communications Interfaces 5. Other Non-functional Requirements 5.1 Performance Requirements; 5.2 Safety and Security Requirements; 5.3 Software quality attributes; 5.4 Other requirements if any 6. Appendix: ŠAshok Mohanty, 6.1 Glossary of terms; 6.2 List of issues; 6.3 Figures and diagrams <amohanty01@yahoo.com> 15
  • 16. Software development process Comprises of following activities. System Analysis or Requirement Analysis Software Design Implementation or Coding Testing or Inspection Maintenance or Adaptation Activities are performed according to a plan. ŠAshok Mohanty, <amohanty01@yahoo.com> 16
  • 17. Approaches to Software Engineering System for which software is to be developed is successively broken down (decomposed) into parts and arranged in to hierarchy. Decomposition is a convenient way of handling any complex problem. TWO approaches to Software Engineering 1. Function-Oriented (FO) Approach 2. Object-Oriented (OO) Approach Similarity: System factored into parts in both approaches Difference: lies in the basis on which the system is factored 17
  • 18. Function Oriented vs Object Orient FO approach focus is on functions or processes Functions Sub-functions more Sub-functions OO approach focus is on objects or entities Object Parts (child-objects) more parts (child-objects) FO emphasis on ‘what system does (verb) OO emphasis on ‘what system consists of (noun)’. ŠAshok Mohanty, <amohanty01@yahoo.com> 18
  • 19. Example of academic institution Functions Entities that do the functions Impart teaching on theory Teachers, Classroom, Syllabus Impart teaching on practical Teachers, Laboratories, Syllabus Conduct examination Examination section, Classroom, Question-setter, Invigilators, etc. Evaluate students’ Examination section, Examiners, performance etc. FO approach concentrates on functions. OO approach focuses on objects that do the functions. ŠAshok Mohanty, <amohanty01@yahoo.com> 19
  • 20. Function Oriented Approach FO approach is traditional. It supports structured programming A structured program consists of functions (modules) organized in a hierarchy. Higher level function invokes lower level function. Data is either local or global Function 1 Local Data Calls Function 2 Operates on Local Data Calls Global Data Function 3 Local Data Operates on ŠAshok Mohanty, <amohanty01@yahoo.com> 20
  • 21. FO methodology is also called ‘Structured System Analysis and Design (SSAD)’. Structured analysis is done to determine: – Functions to be performed – Data to be manipulated – Constraints on functions and data Functional specification specifies ‘what the software is expected to do?’ It provides the basis for design of software. Structured Design is done to develop design specification. Design specification is the blue print for constructing the software. Design specification is translated into a program code. ŠAshok Mohanty, <amohanty01@yahoo.com> 21
  • 22. Tools used in SSAD Tools Purpose Data Flow Diagram Process mapping of system (DFD) Data Dictionary List of different data items used in system ER Diagram Data modelling Process Specification Depicts procedures used in system Tools State Transition Diagram Depicts chronological events and (ST Diagram) corresponding system states Structure chart Depicts modular design of a program Structured English/ Depicts logic of program Pseudocode 22
  • 23. Structured Analysis Environmental Model • Statement of Purpose Structured Design • Context Diagram • Event List Implementation Model Behavioural Model •Structure chart •Interface design •Data design • Data Flow Diagram •Module specification • Data Dictionary • ER diagram • Process specification • State Transition Diagram Function Oriented Approach to Software Development ŠAshok Mohanty, <amohanty01@yahoo.com> 23
  • 24. Overview of Object Oriented Approach World is made up of entities or objects. So analysis and design a system in terms of objects is closer to the real world modelling. The object oriented approach uses object oriented programming concepts. Object consists of data structures combined with relevant functions (method) An object is invoked by its method. Invocation of a method may change either the properties of the object or invoke some other object. ŠAshok Mohanty, <amohanty01@yahoo.com> 24
  • 25. Object 1 Object 2 Methods Methods Data Data All arrows represent Invokes Object 3 Object 4 Methods Methods Data Data Messages passing within Objects In OO approach, system functionality is expressed in terms of operations or services associated with each object.
  • 26. Object Oriented Analysis & Design (OOAD) The OOAD comprises of Object Oriented Analysis (OOA) Object Oriented Design (OOD) Documentation Tool • Unified Modelling Language (UML)’ is a documentation tool used in OOAD methodology • UML has evolved from the work of Grady Booch, James Rumbaugh, Ivar Jacobsen, and others at Rational Corporation in 1997. • At present, the UML has almost become an industry standard documentation tool. • UML comprises of number of diagrams ŠAshok Mohanty, <amohanty01@yahoo.com>
  • 27. Steps of OOA •Define User View of Requirements •Identify Analysis Objects and their Characteristics •Determine Object Dynamics •Determine Object Interactions and relationship Diagrams used in OOA. Use case diagram Describes how users interact with processes Class diagram It is used to refine the use case diagram and define a detailed design of the system State diagram Represents different states that objects in the system undergo during their life cycle Activity diagram Describes the process flow of the system Sequence diagram Represents interaction between objects Collaboration diagram Groups together interactions between objects. 27
  • 28. Fundamental questions in OOD •What objects do we need? •What behaviours are required? •How do we distribute behaviour over the set of objects? Static Modelling’ Classes, Attributes, Methods and Associations Identified in OOA Designed for implementation in OOD Objects also perform some action. Defining the behaviour (methods) of objects is called the ‘Dynamic Modelling’. ŠAshok Mohanty, <amohanty01@yahoo.com> 28
  • 29. Diagrams in OOD Name of diagram Purpose Component Represents high-level parts that make up the diagram system. Deployment Captures configuration of runtime elements diagram of application Package Holds model elements such as classes, state machines and use cases. Subsystem Represents a portion of a system that can be implemented as a distinct component ŠAshok Mohanty, <amohanty01@yahoo.com> 29
  • 30. The OOAD comprises of Object Oriented Analysis (OOA) Object Oriented Design (OOD) But there is overlapping of both these phases e.g, Class diagram and Object diagram are included in OOA. But these are also useful in OOD.. OO Analysis OO Design OO Coding ŠAshok Mohanty, <amohanty01@yahoo.com> 30
  • 31. SSAD vs OOAD Same basic steps – Understand the problem – Specify requirements (WHAT) – Design the solution (HOW) – Write the code – Test and deploy Similar types of tasks – Elicitation of requirements – Documentation of requirements – Identification of software modules – Design of software modules – Acceptance tests Similar project management issues e.g. Planning, Estimating, Monitoring & Control, Communicating 31
  • 32. How OO Approach is different? • Different View of the System • Integration of Data and Method • Different Documentation Tools • Real World Focus • Approach to Project Life Cycle • Approach to Program Coding • Approach to Component Reuse • Approach to Software Maintenance FO methodology is more suitable for data intensive software projects, whereas OO methodology is more suitable for software project that requires complex algorithm/ processing logic. ŠAshok Mohanty, <amohanty01@yahoo.com> 32
  • 33. References 1. Software Engineering, Jibitesh Mishra & Ashok Mohanty, Pearson Education 2. Software Engineering, Pressman, McGrawHill 3. Guide to Software Engineering Body of Knowledge, IEEE Computer Society’s Professional Practices Committee, 2004 ŠAshok Mohanty, <amohanty01@yahoo.com> 33