SlideShare a Scribd company logo
1 of 72
Software Engineering
                   (LECT 1)




        Dr. M. Sarma




                              1
Organization of this Lecture:
• What is Software Engineering?
• Programs vs. Software Products
• Evolution of Software Engineering
• Notable Changes In Software
  Development Practices
• Introduction to Life Cycle Models
• Summary

                                      2
What is Software Engineering?

• Engineering approach to develop
  software.
  –Building Construction Analogy.
• Systematic collection of past
  experience:
  –techniques,
  –methodologies,
  –guidelines.

                                    3
Engineering Practice

  Heavy use of past experience:
    Past experience is systematically
    arranged.
  Theoretical basis and quantitative
  techniques provided.
  Many are just thumb rules.
  Tradeoff between alternatives
  Pragmatic approach to cost-
  effectiveness                         4
Technology Development Pattern

                                      Engineering


Technology

                    Craft
    Esoteric                       Systematic Use of Past
    Past                           Experience and Scientific
    Experience                     Basis
                 Unorganized Use
                 of
     Art         Past Experience
                     Time




                                                               5
Why Study Software Engineering? (1)

• To acquire skills to develop large
  programs.
  – Exponential growth in complexity and
    difficulty level with size.
  – The ad hoc approach breaks down when
    size of software increases



                                           6
Why Study Software Engineering? (2)

• Ability to solve complex programming
  problems:
  – How to break large projects into smaller and
    manageable parts?
• Learn techniques of:
  – specification, design, interface
    development, testing, project
    management, etc.

                                                   7
Why Study Software Engineering? (3)


• To acquire skills to be a
  better programmer:
    • Higher Productivity
    • Better Quality Programs




                                        8
Software Crisis
• Software products:
  –fail to meet user requirements.
  –frequently crash.
  –expensive.
  –difficult to alter, debug, and enhance.
  –often delivered late.
  –use resources non-optimally.



                                             9
Software Crisis (cont.)


Hw cost
Sw cost




  1960                  Year                      1999
         Relative Cost of Hardware and Software



                                                         10
Factors contributing to the software crisis


 • Larger problems,
 • Lack of adequate training in
   software engineering,
 • Increasing skill shortage,
 • Low productivity improvements.


                                              11
Programs versus Software Products

• Usually small in size    •   Large
• Author himself is sole   •   Large number of users
  user                     •   Team of developers
• Single developer         •   Well-designed interface
• Lacks proper user        •   Well documented &
  interface                    user-manual prepared
• Lacks proper             • Systematic development
  documentation
• Ad hoc development.

                                                         12
Emergence of Software Engineering

• Early Computer Programming
  (1950s):
 –Programs were being written in
  assembly language.
 –Programs were limited to about a
  few hundreds of lines of assembly
  code.

                                      13
Early Computer Programming (50s)

• Every programmer developed his
  own style of writing programs:
  –according to his intuition
   (exploratory programming).




                                   14
High-Level Language
Programming (Early 60s)

   High-level languages such as
      FORTRAN, ALGOL, and
     COBOL were introduced:
     This reduced software
     development efforts greatly.


                                    15
High-Level Language
Programming (Early 60s)


    Software development style
        was still exploratory.
     Typical program sizes were limited to a few thousands of lines of
     source code.




                                                                         16
Control Flow-Based Design (late 60s)
• Size and complexity of programs
  increased further:
  –exploratory programming style
   proved to be insufficient.
• Programmers found:
  –very difficult to write cost-effective
   and correct programs.

                                            17
Control Flow-Based Design (late 60s)
• Programmers found:
   – programs written by others very difficult
    to understand and maintain.
• To cope up with this problem,
  experienced programmers advised:
  ``Pay particular attention to the
  design of the program's control
  structure.'’

                                                 18
Control Flow-Based Design (late 60s)

• A program's control structure indicates:
  – the sequence in which the program's
   instructions are executed.
• To help design programs having good
  control structure:
  – flow charting technique was developed.


                                             19
Control Flow-Based Design (late 60s)

• Using flow charting technique:
 –one can represent and design a
  program's control structure.
 –Usually one understands a
  program:
    • by mentally simulating the
      program's execution sequence.

                                         20
Control Flow-Based Design
                                 (Late 60s)




• A program having a messy
  flow chart representation:
 –difficult to understand and
  debug.


                  111                         21
Control Flow-Based Design (Late 60s)

• It was found:
  –GO TO statements makes control
   structure of a program messy
  –GO TO statements alter the flow of
   control arbitrarily.
  –The need to restrict use of GO TO
   statements was recognized.

                                          22
Control Flow-Based Design (Late 60s)

• Many programmers had extensively
  used assembly languages.
  – JUMP instructions are frequently used
    for program branching in assembly
    languages,
  – programmers considered use of GO TO
    statements inevitable.

                                            23
Control-flow Based Design (Late 60s)

• At that time, Dijkstra published his
  article:
  –“Goto Statement Considered
   Harmful” Comm. of ACM, 1969.
• Many programmers were unhappy
  to read his article.

                                          24
Control Flow-Based Design (Late 60s)


• They published several counter
  articles:
 –highlighting the advantages and
  inevitability of GO TO statements.



                                         25
Control Flow-Based Design         (Late 60s)




• But, soon it was conclusively proved:
  – only three programming constructs are
    sufficient to express any programming
    logic:
     • sequence (e.g. a=0;b=5;)
     • selection (e.g.if(c=true) k=5 else m=5;)
     • iteration (e.g. while(k>0) k=j-k;)


                                                  26
Control-flow Based Design   (Late 60s)




• Everyone accepted:
 –it is possible to solve any
  programming problem without
  using GO TO statements.
 –This formed the basis of
  Structured Programming
  methodology.

                                            27
Structured programs

  Unstructured control flows
  are avoided.
  Consist of a neat set of modules.
  Use single-entry, single-exit
  program constructs.


                                  28
Structured Programming

  A program is called structured
   when it uses only the following
   types of constructs:
     sequence,
     selection,
     iteration

                                   29
Structured programs

  However, violations to this
  feature are permitted:
   due to practical considerations
   such as:
     premature loop exit to support
     exception handling.

                                      30
Structured programs

  Structured programs are:
   Easier to read and understand,
   easier to maintain,
   require less effort and time for
   development.


                                  31
Structured Programming

   Research experience
  shows:
   programmers commit less
   number of errors
    while using structured if-then-
    else and do-while statements
    compared to test-and-branch
    constructs.                       32
Data Structure-Oriented
Design (Early 70s)

  Soon it was discovered:
   it is important to pay more
   attention to the design of data
   structures of a program
     than to the design of its control
     structure.

                                         33
Data Structure-Oriented
Design (Early 70s)

  Techniques which
  emphasize designing the
  data structure:
   derive program structure from
   it:
      are called data
      structure-oriented
                                   34
Data Structure Oriented
Design (Early 70s)

  Example of data structure-
  oriented design technique:
   Jackson's Structured
   Programming(JSP)
   methodology
     developed by Michael Jackson in
     1970s.
                                   35
Data Structure Oriented
Design (Early 70s)

 JSP technique:
    program code structure
   should correspond to the
   data structure.


                              36
Data Structure Oriented
Design (Early 70s)

  Several other data structure-
  oriented Methodologies also
  exist:
   e.g., Warnier-Orr
   Methodology.


                                  37
Data Flow-Oriented Design            (Late

70s)



       Data flow-oriented
       techniques advocate:
        the data items input to a system
        must first be identified,
        processing required on the data
        items to produce the required
        outputs should be determined.
                                             38
Data Flow-Oriented Design (Late
70s)



       Data flow technique
       identifies:
        different processing stations
        (functions) in a system
        the items (data) that flow
        between processing stations.
                                        39
Data Flow-Oriented Design              (Late
70s)



       Data flow technique is a generic
       technique:
        can be used to model the working of
        any system
          not just software systems.
        A major advantage of the data
       flow technique is its simplicity.
                                               40
Data Flow Model of a Car
Assembly Unit
  Engine Store           Door Store


               Chassis        Partly
               with Engine    Assembled
       Fit             Fit    Car          Fit               Paint and   Car
      Engine          Doors               Wheels Assembled    Test
                                                 Car



    Chassis                   Wheel Store
    Store




                                                                               41
Object-Oriented Design         (80s)


  Object-oriented technique:
   an intuitively appealing design
   approach:
   natural objects (such as
   employees, pay-roll-register, etc.)
   occurring in a problem are first
   identified.
                                         42
Object-Oriented Design         (80s)


  Relationships among objects:
   such as composition, reference,
   and inheritance are determined.
  Each object essentially acts as
   a data hiding (or data abstraction)
   entity.

                                       43
Object-Oriented Design   (80s)


  Object-Oriented Techniques
  have gained wide acceptance:
   Simplicity
   Reuse possibilities
   Lower development time and cost
   More robust code
   Easy maintenance



                                     44
Evolution of Design
Techniques
                                   Object-Oriented

                           Data flow-based

              Data structure-
              based

       Control flow-
       based


  Ad hoc




                                                     45
Evolution of Other Software
Engineering Techniques

  The improvements to the
  software design methodologies
   are indeed very conspicuous.
  In additions to the software
  design techniques:
   several other techniques evolved.

                                       46
Evolution of Other Software
Engineering Techniques
   specification techniques,
   project management techniques,
   testing techniques,
   debugging techniques,
   quality assurance techniques,
   software measurement
   techniques,
   CASE tools, etc.

                                    47
Differences between the exploratory
style and modern software
development practices

   Use of Life Cycle Models
   Software is developed through
   several well-defined stages:
     requirements analysis and
     specification,
     design,
     coding,
     testing, etc.
                                      48
Differences between the exploratory
style and modern software
development practices

   Emphasis has shifted
      from error correction to error
     prevention.
   Modern practices emphasize:
     detection of errors as close to
     their point of introduction as
     possible.
                                       49
Differences between the exploratory
style and modern software
development practices (CONT.)

   In exploratory style,
     errors are detected only during
     testing,
   Now,
      focus is on detecting as many
     errors as possible in each
     phase of development.
                                      50
Differences between the exploratory
style and modern software
development practices (CONT.)

   In exploratory style,
     coding is synonymous with
     program development.
   Now,
     coding is considered only a
     small part of program
     development effort.
                                      51
Differences between the exploratory
style and modern software
development practices (CONT.)

   A lot of effort and attention is now
   being paid to:
     requirements specification.
   Also, now there is a distinct design
   phase:
     standard design techniques are being
     used.

                                            52
Differences between the exploratory
style and modern software
development practices (CONT.)
   During all stages of
   development process:
     Periodic reviews are being carried
     out
   Software testing has become
   systematic:
     standard testing techniques are
     available.
                                          53
Differences between the exploratory
style and modern software
development practices (CONT.)

   There is better visibility of design and
   code:
     visibility means production of good quality,
     consistent and standard documents.
     In the past, very little attention was being
     given to producing good quality and
     consistent documents.
     We will see later that increased visibility
     makes software project management easier.

                                                54
Differences between the exploratory
style and modern software
development practices (CONT.)

   Because of good documentation:
     fault diagnosis and maintenance are
     smoother now.
   Several metrics are being used:
     help in software project management,
     quality assurance, etc.



                                            55
Differences between the exploratory
style and modern software
development practices (CONT.)

   Projects are being thoroughly
   planned:
     estimation,
     scheduling,
     monitoring mechanisms.
   Use of CASE tools.


                                      56
Software Life Cycle
  Software life cycle (or software
  process):
    series of identifiable stages
    that a software product
    undergoes during its life time:
      Feasibility study
      requirements analysis and specification,
      design,
      coding,
      testing
                                                 57
Life Cycle Model
  A software life cycle model (or
  process model):
    a descriptive and diagrammatic model
    of software life cycle:
    identifies all the activities required for
    product development,
    establishes a precedence ordering among
    the different activities,
    Divides life cycle into phases.
                                                 58
Why Model Life Cycle ?
  A written description:
    forms a common understanding of
    activities among the software
    developers.
    helps in identifying inconsistencies,
    redundancies, and omissions in the
    development process.
    Helps in tailoring a process model for
    specific projects.
                                             59
Life Cycle Model          (CONT.)




  The development team must
  identify a suitable life cycle model:
    and then adhere to it.
    Primary advantage of adhering to a
    life cycle model:
      helps development of software in a
      systematic and disciplined manner.


                                           60
Life Cycle Model     (CONT.)




  When a program is developed
  by a single programmer ---
   he has the freedom to decide his
   exact steps.




                                      61
Life Cycle Model      (CONT.)




  When a software product is being
  developed by a team:
   there must be a precise understanding
   among team members as to when to
   do what,
   otherwise it would lead to chaos and
   project failure.


                                       62
Life Cycle Model        (CONT.)




   A software project will never
  succeed if:
   one engineer starts writing code,
   another concentrates on writing the
   test document first,
   yet another engineer first defines the
   file structure
   another defines the I/O for his portion
   first.
                                             63
Life Cycle Model         (CONT.)




  A life cycle model:
   defines entry and exit criteria for
   every phase.
   A phase is considered to be
   complete:
     only when all its exit criteria are
     satisfied.


                                           64
Life Cycle Model            (CONT.)




  The phase exit criteria for the software
  requirements specification phase:
    Software Requirements Specification (SRS)
    document is complete, reviewed, and
    approved by the customer.
  A phase can start:
    only if its phase-entry criteria have been
    satisfied.

                                                 65
Life Cycle Model     (CONT.)




  It becomes easier for software
  project managers:
   to monitor the progress of the
   project.




                                    66
Life Cycle Model          (CONT.)




  When a life cycle model is adhered
  to,
   the project manager can at any time
   fairly accurately tell,
     at which stage (e.g., design, code, test,
     etc. ) of the project is.
   Otherwise, it becomes very difficult to
   track the progress of the project
     the project manager would have to
     depend on the guesses of the team           67
Life Cycle Model    (CONT.)




  This usually leads to a problem:
   known as the 99% complete
   syndrome.




                                     68
Life Cycle Model            (CONT.)




  Many life cycle models have been
  proposed.
  We will confine our attention to a few
  important and commonly used models.
    classical waterfall model
    iterative waterfall,
    evolutionary,
    prototyping, and
    spiral model
                                           69
Summary

 Software engineering is:
  systematic collection of decades
  of programming experience
  together with the innovations
  made by researchers.



                                     70
Summary

 A fundamental necessity while
 developing any large software
 product:
  adoption of a life cycle model.




                                    71
Summary
 Adherence to a software life cycle
 model:
  helps to do various development
  activities in a systematic and
  disciplined manner.
  also makes it easier to manage a
  software development effort.


                                      72

More Related Content

What's hot

What's hot (14)

Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
Sdlc 4
Sdlc 4Sdlc 4
Sdlc 4
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software development life cycle (sdlc)
Software development life cycle (sdlc)Software development life cycle (sdlc)
Software development life cycle (sdlc)
 
System development approaches
System development approachesSystem development approaches
System development approaches
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software Development Life Cycle
Software Development Life Cycle Software Development Life Cycle
Software Development Life Cycle
 
SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process Models
 
Software
SoftwareSoftware
Software
 
1.sdlc
1.sdlc1.sdlc
1.sdlc
 
Space Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign CMC Microsystems Webinar 20150205 unrolledSpace Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign CMC Microsystems Webinar 20150205 unrolled
 
SDLC
SDLCSDLC
SDLC
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
SDLC
SDLCSDLC
SDLC
 

Viewers also liked

الكتاب المقدس العهد الجديد - انجيل لوقا- Slide share
الكتاب المقدس   العهد الجديد - انجيل لوقا- Slide shareالكتاب المقدس   العهد الجديد - انجيل لوقا- Slide share
الكتاب المقدس العهد الجديد - انجيل لوقا- Slide shareIbrahimia Church Ftriends
 
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...Al Baha University
 
库名 外文馆藏期刊题录数据库
库名 外文馆藏期刊题录数据库库名 外文馆藏期刊题录数据库
库名 外文馆藏期刊题录数据库Al Baha University
 
Curriculum Vitae - Loutfy H. Madkour
Curriculum Vitae - Loutfy H. MadkourCurriculum Vitae - Loutfy H. Madkour
Curriculum Vitae - Loutfy H. MadkourAl Baha University
 
Los espiritus del bosque
Los espiritus del bosqueLos espiritus del bosque
Los espiritus del bosqueada48salamanca
 
اسئله الناس البابا شنوده - الجزء السادس
اسئله الناس   البابا شنوده - الجزء السادساسئله الناس   البابا شنوده - الجزء السادس
اسئله الناس البابا شنوده - الجزء السادسIbrahimia Church Ftriends
 
القس راضى عطاالله. أنا أكون معك دراسه سفر يشوع
القس راضى عطاالله.  أنا أكون معك دراسه سفر يشوعالقس راضى عطاالله.  أنا أكون معك دراسه سفر يشوع
القس راضى عطاالله. أنا أكون معك دراسه سفر يشوعIbrahimia Church Ftriends
 
Opinia do rozporzadzenia o halasie w srodowisku
Opinia do rozporzadzenia o  halasie w  srodowiskuOpinia do rozporzadzenia o  halasie w  srodowisku
Opinia do rozporzadzenia o halasie w srodowiskuNowa Stepnica
 
Spectroscopy letters volume 26 issue 3 1993 [doi 10.1080 00387019308011552] s...
Spectroscopy letters volume 26 issue 3 1993 [doi 10.1080 00387019308011552] s...Spectroscopy letters volume 26 issue 3 1993 [doi 10.1080 00387019308011552] s...
Spectroscopy letters volume 26 issue 3 1993 [doi 10.1080 00387019308011552] s...Al Baha University
 
Sean V. Bradley: The Four P's
Sean V. Bradley: The Four P'sSean V. Bradley: The Four P's
Sean V. Bradley: The Four P'sSean Bradley
 
Ryan Leslie: Reputation Management: Revisited
Ryan Leslie: Reputation Management: RevisitedRyan Leslie: Reputation Management: Revisited
Ryan Leslie: Reputation Management: RevisitedSean Bradley
 
Infographics for HP38
Infographics for HP38Infographics for HP38
Infographics for HP38Po-Feng Lee
 
하루15분 정리의 힘
하루15분 정리의 힘하루15분 정리의 힘
하루15분 정리의 힘Ji Young Kim
 
Implement Technology People in Mind
Implement Technology People in MindImplement Technology People in Mind
Implement Technology People in MindHanuman Consulting
 

Viewers also liked (20)

الكتاب المقدس العهد الجديد - انجيل لوقا- Slide share
الكتاب المقدس   العهد الجديد - انجيل لوقا- Slide shareالكتاب المقدس   العهد الجديد - انجيل لوقا- Slide share
الكتاب المقدس العهد الجديد - انجيل لوقا- Slide share
 
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...
 
库名 外文馆藏期刊题录数据库
库名 外文馆藏期刊题录数据库库名 外文馆藏期刊题录数据库
库名 外文馆藏期刊题录数据库
 
v15preprint44(1)
v15preprint44(1)v15preprint44(1)
v15preprint44(1)
 
Curriculum Vitae - Loutfy H. Madkour
Curriculum Vitae - Loutfy H. MadkourCurriculum Vitae - Loutfy H. Madkour
Curriculum Vitae - Loutfy H. Madkour
 
Chemical industry
Chemical industryChemical industry
Chemical industry
 
Evaluación 3
Evaluación 3Evaluación 3
Evaluación 3
 
Los espiritus del bosque
Los espiritus del bosqueLos espiritus del bosque
Los espiritus del bosque
 
اسئله الناس البابا شنوده - الجزء السادس
اسئله الناس   البابا شنوده - الجزء السادساسئله الناس   البابا شنوده - الجزء السادس
اسئله الناس البابا شنوده - الجزء السادس
 
القس راضى عطاالله. أنا أكون معك دراسه سفر يشوع
القس راضى عطاالله.  أنا أكون معك دراسه سفر يشوعالقس راضى عطاالله.  أنا أكون معك دراسه سفر يشوع
القس راضى عطاالله. أنا أكون معك دراسه سفر يشوع
 
Opinia do rozporzadzenia o halasie w srodowisku
Opinia do rozporzadzenia o  halasie w  srodowiskuOpinia do rozporzadzenia o  halasie w  srodowisku
Opinia do rozporzadzenia o halasie w srodowisku
 
Spectroscopy letters volume 26 issue 3 1993 [doi 10.1080 00387019308011552] s...
Spectroscopy letters volume 26 issue 3 1993 [doi 10.1080 00387019308011552] s...Spectroscopy letters volume 26 issue 3 1993 [doi 10.1080 00387019308011552] s...
Spectroscopy letters volume 26 issue 3 1993 [doi 10.1080 00387019308011552] s...
 
Akd motors
Akd motorsAkd motors
Akd motors
 
Sean V. Bradley: The Four P's
Sean V. Bradley: The Four P'sSean V. Bradley: The Four P's
Sean V. Bradley: The Four P's
 
Ryan Leslie: Reputation Management: Revisited
Ryan Leslie: Reputation Management: RevisitedRyan Leslie: Reputation Management: Revisited
Ryan Leslie: Reputation Management: Revisited
 
Infographics for HP38
Infographics for HP38Infographics for HP38
Infographics for HP38
 
하루15분 정리의 힘
하루15분 정리의 힘하루15분 정리의 힘
하루15분 정리의 힘
 
Implement Technology People in Mind
Implement Technology People in MindImplement Technology People in Mind
Implement Technology People in Mind
 
Broom
BroomBroom
Broom
 
Passw
PasswPassw
Passw
 

Similar to Software engg lect1

Kelis king - engineering approach to develop software.
Kelis king -  engineering approach to develop software.Kelis king -  engineering approach to develop software.
Kelis king - engineering approach to develop software.KelisKing
 
Se lect1 btech
Se lect1 btechSe lect1 btech
Se lect1 btechIIITA
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.pptADARSHN40
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptxJAGADEESWARIS6
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)ShudipPal
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsNishu Rastogi
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introductionTaymoor Nazmy
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringMd.Nazmul Islam
 
Software Engineering course
Software Engineering courseSoftware Engineering course
Software Engineering courseJeremy Rose
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) ModelDamian T. Gordon
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesDamian T. Gordon
 
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...Santhia RK
 

Similar to Software engg lect1 (20)

Kelis king - engineering approach to develop software.
Kelis king -  engineering approach to develop software.Kelis king -  engineering approach to develop software.
Kelis king - engineering approach to develop software.
 
SE1.ppt
SE1.pptSE1.ppt
SE1.ppt
 
Se lect1 btech
Se lect1 btechSe lect1 btech
Se lect1 btech
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.ppt
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptx
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to 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
 
Unit1
Unit1Unit1
Unit1
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software Engineering course
Software Engineering courseSoftware Engineering course
Software Engineering course
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) Model
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 

Recently uploaded

AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 

Recently uploaded (20)

OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 

Software engg lect1

  • 1. Software Engineering (LECT 1) Dr. M. Sarma 1
  • 2. Organization of this Lecture: • What is Software Engineering? • Programs vs. Software Products • Evolution of Software Engineering • Notable Changes In Software Development Practices • Introduction to Life Cycle Models • Summary 2
  • 3. What is Software Engineering? • Engineering approach to develop software. –Building Construction Analogy. • Systematic collection of past experience: –techniques, –methodologies, –guidelines. 3
  • 4. Engineering Practice Heavy use of past experience: Past experience is systematically arranged. Theoretical basis and quantitative techniques provided. Many are just thumb rules. Tradeoff between alternatives Pragmatic approach to cost- effectiveness 4
  • 5. Technology Development Pattern Engineering Technology Craft Esoteric Systematic Use of Past Past Experience and Scientific Experience Basis Unorganized Use of Art Past Experience Time 5
  • 6. Why Study Software Engineering? (1) • To acquire skills to develop large programs. – Exponential growth in complexity and difficulty level with size. – The ad hoc approach breaks down when size of software increases 6
  • 7. Why Study Software Engineering? (2) • Ability to solve complex programming problems: – How to break large projects into smaller and manageable parts? • Learn techniques of: – specification, design, interface development, testing, project management, etc. 7
  • 8. Why Study Software Engineering? (3) • To acquire skills to be a better programmer: • Higher Productivity • Better Quality Programs 8
  • 9. Software Crisis • Software products: –fail to meet user requirements. –frequently crash. –expensive. –difficult to alter, debug, and enhance. –often delivered late. –use resources non-optimally. 9
  • 10. Software Crisis (cont.) Hw cost Sw cost 1960 Year 1999 Relative Cost of Hardware and Software 10
  • 11. Factors contributing to the software crisis • Larger problems, • Lack of adequate training in software engineering, • Increasing skill shortage, • Low productivity improvements. 11
  • 12. Programs versus Software Products • Usually small in size • Large • Author himself is sole • Large number of users user • Team of developers • Single developer • Well-designed interface • Lacks proper user • Well documented & interface user-manual prepared • Lacks proper • Systematic development documentation • Ad hoc development. 12
  • 13. Emergence of Software Engineering • Early Computer Programming (1950s): –Programs were being written in assembly language. –Programs were limited to about a few hundreds of lines of assembly code. 13
  • 14. Early Computer Programming (50s) • Every programmer developed his own style of writing programs: –according to his intuition (exploratory programming). 14
  • 15. High-Level Language Programming (Early 60s) High-level languages such as FORTRAN, ALGOL, and COBOL were introduced: This reduced software development efforts greatly. 15
  • 16. High-Level Language Programming (Early 60s) Software development style was still exploratory. Typical program sizes were limited to a few thousands of lines of source code. 16
  • 17. Control Flow-Based Design (late 60s) • Size and complexity of programs increased further: –exploratory programming style proved to be insufficient. • Programmers found: –very difficult to write cost-effective and correct programs. 17
  • 18. Control Flow-Based Design (late 60s) • Programmers found: – programs written by others very difficult to understand and maintain. • To cope up with this problem, experienced programmers advised: ``Pay particular attention to the design of the program's control structure.'’ 18
  • 19. Control Flow-Based Design (late 60s) • A program's control structure indicates: – the sequence in which the program's instructions are executed. • To help design programs having good control structure: – flow charting technique was developed. 19
  • 20. Control Flow-Based Design (late 60s) • Using flow charting technique: –one can represent and design a program's control structure. –Usually one understands a program: • by mentally simulating the program's execution sequence. 20
  • 21. Control Flow-Based Design (Late 60s) • A program having a messy flow chart representation: –difficult to understand and debug. 111 21
  • 22. Control Flow-Based Design (Late 60s) • It was found: –GO TO statements makes control structure of a program messy –GO TO statements alter the flow of control arbitrarily. –The need to restrict use of GO TO statements was recognized. 22
  • 23. Control Flow-Based Design (Late 60s) • Many programmers had extensively used assembly languages. – JUMP instructions are frequently used for program branching in assembly languages, – programmers considered use of GO TO statements inevitable. 23
  • 24. Control-flow Based Design (Late 60s) • At that time, Dijkstra published his article: –“Goto Statement Considered Harmful” Comm. of ACM, 1969. • Many programmers were unhappy to read his article. 24
  • 25. Control Flow-Based Design (Late 60s) • They published several counter articles: –highlighting the advantages and inevitability of GO TO statements. 25
  • 26. Control Flow-Based Design (Late 60s) • But, soon it was conclusively proved: – only three programming constructs are sufficient to express any programming logic: • sequence (e.g. a=0;b=5;) • selection (e.g.if(c=true) k=5 else m=5;) • iteration (e.g. while(k>0) k=j-k;) 26
  • 27. Control-flow Based Design (Late 60s) • Everyone accepted: –it is possible to solve any programming problem without using GO TO statements. –This formed the basis of Structured Programming methodology. 27
  • 28. Structured programs Unstructured control flows are avoided. Consist of a neat set of modules. Use single-entry, single-exit program constructs. 28
  • 29. Structured Programming A program is called structured when it uses only the following types of constructs: sequence, selection, iteration 29
  • 30. Structured programs However, violations to this feature are permitted: due to practical considerations such as: premature loop exit to support exception handling. 30
  • 31. Structured programs Structured programs are: Easier to read and understand, easier to maintain, require less effort and time for development. 31
  • 32. Structured Programming Research experience shows: programmers commit less number of errors while using structured if-then- else and do-while statements compared to test-and-branch constructs. 32
  • 33. Data Structure-Oriented Design (Early 70s) Soon it was discovered: it is important to pay more attention to the design of data structures of a program than to the design of its control structure. 33
  • 34. Data Structure-Oriented Design (Early 70s) Techniques which emphasize designing the data structure: derive program structure from it: are called data structure-oriented 34
  • 35. Data Structure Oriented Design (Early 70s) Example of data structure- oriented design technique: Jackson's Structured Programming(JSP) methodology developed by Michael Jackson in 1970s. 35
  • 36. Data Structure Oriented Design (Early 70s) JSP technique: program code structure should correspond to the data structure. 36
  • 37. Data Structure Oriented Design (Early 70s) Several other data structure- oriented Methodologies also exist: e.g., Warnier-Orr Methodology. 37
  • 38. Data Flow-Oriented Design (Late 70s) Data flow-oriented techniques advocate: the data items input to a system must first be identified, processing required on the data items to produce the required outputs should be determined. 38
  • 39. Data Flow-Oriented Design (Late 70s) Data flow technique identifies: different processing stations (functions) in a system the items (data) that flow between processing stations. 39
  • 40. Data Flow-Oriented Design (Late 70s) Data flow technique is a generic technique: can be used to model the working of any system not just software systems. A major advantage of the data flow technique is its simplicity. 40
  • 41. Data Flow Model of a Car Assembly Unit Engine Store Door Store Chassis Partly with Engine Assembled Fit Fit Car Fit Paint and Car Engine Doors Wheels Assembled Test Car Chassis Wheel Store Store 41
  • 42. Object-Oriented Design (80s) Object-oriented technique: an intuitively appealing design approach: natural objects (such as employees, pay-roll-register, etc.) occurring in a problem are first identified. 42
  • 43. Object-Oriented Design (80s) Relationships among objects: such as composition, reference, and inheritance are determined. Each object essentially acts as a data hiding (or data abstraction) entity. 43
  • 44. Object-Oriented Design (80s) Object-Oriented Techniques have gained wide acceptance: Simplicity Reuse possibilities Lower development time and cost More robust code Easy maintenance 44
  • 45. Evolution of Design Techniques Object-Oriented Data flow-based Data structure- based Control flow- based Ad hoc 45
  • 46. Evolution of Other Software Engineering Techniques The improvements to the software design methodologies are indeed very conspicuous. In additions to the software design techniques: several other techniques evolved. 46
  • 47. Evolution of Other Software Engineering Techniques specification techniques, project management techniques, testing techniques, debugging techniques, quality assurance techniques, software measurement techniques, CASE tools, etc. 47
  • 48. Differences between the exploratory style and modern software development practices Use of Life Cycle Models Software is developed through several well-defined stages: requirements analysis and specification, design, coding, testing, etc. 48
  • 49. Differences between the exploratory style and modern software development practices Emphasis has shifted from error correction to error prevention. Modern practices emphasize: detection of errors as close to their point of introduction as possible. 49
  • 50. Differences between the exploratory style and modern software development practices (CONT.) In exploratory style, errors are detected only during testing, Now, focus is on detecting as many errors as possible in each phase of development. 50
  • 51. Differences between the exploratory style and modern software development practices (CONT.) In exploratory style, coding is synonymous with program development. Now, coding is considered only a small part of program development effort. 51
  • 52. Differences between the exploratory style and modern software development practices (CONT.) A lot of effort and attention is now being paid to: requirements specification. Also, now there is a distinct design phase: standard design techniques are being used. 52
  • 53. Differences between the exploratory style and modern software development practices (CONT.) During all stages of development process: Periodic reviews are being carried out Software testing has become systematic: standard testing techniques are available. 53
  • 54. Differences between the exploratory style and modern software development practices (CONT.) There is better visibility of design and code: visibility means production of good quality, consistent and standard documents. In the past, very little attention was being given to producing good quality and consistent documents. We will see later that increased visibility makes software project management easier. 54
  • 55. Differences between the exploratory style and modern software development practices (CONT.) Because of good documentation: fault diagnosis and maintenance are smoother now. Several metrics are being used: help in software project management, quality assurance, etc. 55
  • 56. Differences between the exploratory style and modern software development practices (CONT.) Projects are being thoroughly planned: estimation, scheduling, monitoring mechanisms. Use of CASE tools. 56
  • 57. Software Life Cycle Software life cycle (or software process): series of identifiable stages that a software product undergoes during its life time: Feasibility study requirements analysis and specification, design, coding, testing 57
  • 58. Life Cycle Model A software life cycle model (or process model): a descriptive and diagrammatic model of software life cycle: identifies all the activities required for product development, establishes a precedence ordering among the different activities, Divides life cycle into phases. 58
  • 59. Why Model Life Cycle ? A written description: forms a common understanding of activities among the software developers. helps in identifying inconsistencies, redundancies, and omissions in the development process. Helps in tailoring a process model for specific projects. 59
  • 60. Life Cycle Model (CONT.) The development team must identify a suitable life cycle model: and then adhere to it. Primary advantage of adhering to a life cycle model: helps development of software in a systematic and disciplined manner. 60
  • 61. Life Cycle Model (CONT.) When a program is developed by a single programmer --- he has the freedom to decide his exact steps. 61
  • 62. Life Cycle Model (CONT.) When a software product is being developed by a team: there must be a precise understanding among team members as to when to do what, otherwise it would lead to chaos and project failure. 62
  • 63. Life Cycle Model (CONT.) A software project will never succeed if: one engineer starts writing code, another concentrates on writing the test document first, yet another engineer first defines the file structure another defines the I/O for his portion first. 63
  • 64. Life Cycle Model (CONT.) A life cycle model: defines entry and exit criteria for every phase. A phase is considered to be complete: only when all its exit criteria are satisfied. 64
  • 65. Life Cycle Model (CONT.) The phase exit criteria for the software requirements specification phase: Software Requirements Specification (SRS) document is complete, reviewed, and approved by the customer. A phase can start: only if its phase-entry criteria have been satisfied. 65
  • 66. Life Cycle Model (CONT.) It becomes easier for software project managers: to monitor the progress of the project. 66
  • 67. Life Cycle Model (CONT.) When a life cycle model is adhered to, the project manager can at any time fairly accurately tell, at which stage (e.g., design, code, test, etc. ) of the project is. Otherwise, it becomes very difficult to track the progress of the project the project manager would have to depend on the guesses of the team 67
  • 68. Life Cycle Model (CONT.) This usually leads to a problem: known as the 99% complete syndrome. 68
  • 69. Life Cycle Model (CONT.) Many life cycle models have been proposed. We will confine our attention to a few important and commonly used models. classical waterfall model iterative waterfall, evolutionary, prototyping, and spiral model 69
  • 70. Summary Software engineering is: systematic collection of decades of programming experience together with the innovations made by researchers. 70
  • 71. Summary A fundamental necessity while developing any large software product: adoption of a life cycle model. 71
  • 72. Summary Adherence to a software life cycle model: helps to do various development activities in a systematic and disciplined manner. also makes it easier to manage a software development effort. 72