SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specificationDeepak Sharma
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleGurban Daniel
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleSlideshare
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement SpecificationVishal Singh
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
6 basic steps of software development process
6 basic steps of software development process6 basic steps of software development process
6 basic steps of software development processRiant Soft
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRupesh Vaishnav
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysisasimnawaz54
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelssaurabhshertukde
 
System requirements specification (srs)
System requirements specification (srs)System requirements specification (srs)
System requirements specification (srs)Savyasachi14
 
RE processes and process models
RE processes and process modelsRE processes and process models
RE processes and process modelsSyed Zaid Irshad
 
Requirements engineering process in software engineering
Requirements engineering process in software engineeringRequirements engineering process in software engineering
Requirements engineering process in software engineeringPreeti Mishra
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)ShudipPal
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationAjit Nayak
 

Was ist angesagt? (20)

2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specification
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
6 basic steps of software development process
6 basic steps of software development process6 basic steps of software development process
6 basic steps of software development process
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysis
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
System requirements specification (srs)
System requirements specification (srs)System requirements specification (srs)
System requirements specification (srs)
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
RE processes and process models
RE processes and process modelsRE processes and process models
RE processes and process models
 
SDD-FinalYearProject
SDD-FinalYearProjectSDD-FinalYearProject
SDD-FinalYearProject
 
Requirements engineering process in software engineering
Requirements engineering process in software engineeringRequirements engineering process in software engineering
Requirements engineering process in software engineering
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 
software architecture
software architecturesoftware architecture
software architecture
 
Case tools
Case toolsCase tools
Case tools
 

Andere mochten auch

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
 
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 engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
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
 

Andere mochten auch (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
Requirements EngineeringRequirements Engineering
Requirements 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 engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
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
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
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
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
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
 
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
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 

Kürzlich hochgeladen (20)

Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.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
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
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
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
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...
 
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
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 

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