SlideShare una empresa de Scribd logo
1 de 50
Software Processes




©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 4   Slide 1
Objectives
            To introduce software process models
            To describe three generic process models and
            when they may be used
            To describe outline process models for
            requirements engineering, software
            development, testing and evolution
            To explain the Rational Unified Process model
            To introduce CASE technology to support
            software process activities



©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 2
Topics covered

            Software process models
            Process iteration
            Process activities
            The Rational Unified Process
            Computer-aided software engineering




©Ian Sommerville 2004     Software Engineering, 7th edition. Chapter 4   Slide 3
The software process
            A structured set of activities required to develop a
            software system
              •     Specification;
              •     Design;
              •     Validation;
              •     Evolution.
            A software process model is an abstract
            representation of a process. It presents a description
            of a process from some particular perspective.




©Ian Sommerville 2004          Software Engineering, 7th edition. Chapter 4   Slide 4
Generic software process models
            The waterfall model
              •     Separate and distinct phases of specification and
                    development.
            Evolutionary development
              •     Specification, development and validation are
                    interleaved.
            Component-based software engineering
              •     The system is assembled from existing components.
            There are many variants of these models e.g. formal
            development where a waterfall-like process is used but
            the specification is a formal specification that is refined
            through several stages to an implementable design.


©Ian Sommerville 2004         Software Engineering, 7th edition. Chapter 4   Slide 5
Rquir
                        esoftw
                        ement
                        definit
                         SImpl
                         yand
                          stem
                        Waterfall model




                           tion
                           Inte
                            rOp
                            am
                            tio
                           sys
©Ian Sommerville 2004
                             aio
                             t
                          Software Engineering, 7th edition. Chapter 4   Slide 6
Waterfall model phases
            Requirements analysis and definition
            System and software design
            Implementation and unit testing
            Integration and system testing
            Operation and maintenance
            The main drawback of the waterfall model is
            the difficulty of accommodating change after
            the process is underway. One phase has to be
            complete before moving onto the next phase.


©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 7
Waterfall model problems
            Inflexible partitioning of the project into distinct stages
            makes it difficult to respond to changing customer
            requirements.
            Therefore, this model is only appropriate when the
            requirements are well-understood and changes will be
            fairly limited during the design process.
            Few business systems have stable requirements.
            The waterfall model is mostly used for large systems
            engineering projects where a system is developed at
            several sites.



©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 4   Slide 8
Evolutionary development

            Exploratory development
              •     Objective is to work with customers and to evolve
                    a final system from an initial outline specification.
                    Should start with well-understood requirements
                    and add new features as proposed by the
                    customer.
            Throw-away prototyping
              •     Objective is to understand the system
                    requirements. Should start with poorly understood
                    requirements to clarify what is really needed.



©Ian Sommerville 2004         Software Engineering, 7th edition. Chapter 4   Slide 9
Conc
               entr
               acti
               vitie
                  In
               Spec
               tion
                  vr
                  e
               Evolutionary development




                 Int
                  m
             Outlin
               Devr
               elop
               Vv
               a eete
               vlida
             descrip
                  Fi
               tion
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 10
Evolutionary development
            Problems
              •     Lack of process visibility;
              •     Systems are often poorly structured;
              •     Special skills (e.g. in languages for rapid
                    prototyping) may be required.
            Applicability
              •     For small or medium-size interactive systems;
              •     For parts of large systems (e.g. the user
                    interface);
              •     For short-lifetime systems.


©Ian Sommerville 2004         Software Engineering, 7th edition. Chapter 4   Slide 11
Component-based software engineering

            Based on systematic reuse where systems are
            integrated from existing components or COTS
            (Commercial-off-the-shelf) systems.
            Process stages
              •     Component analysis;
              •     Requirements modification;
              •     System design with reuse;
              •     Development and integration.
            This approach is becoming increasingly used
            as component standards have emerged.


©Ian Sommerville 2004        Software Engineering, 7th edition. Chapter 4   Slide 12
Reuse-oriented development


         Requirem
           Compo
            Requ
              Sva
              yste
         specifica
           analysi
            modi
              with
             Dev
             ands
                S
                y
              ratio
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 13
Process iteration

            System requirements ALWAYS evolve in the
            course of a project so process iteration where
            earlier stages are reworked is always part of
            the process for large systems.
            Iteration can be applied to any of the generic
            process models.
            Two (related) approaches
              •     Incremental delivery;
              •     Spiral development.


©Ian Sommerville 2004         Software Engineering, 7th edition. Chapter 4   Slide 14
Incremental delivery
        Rather than deliver the system as a single delivery, the
        development and delivery is broken down into
        increments with each increment delivering part of the
        required functionality.
        User requirements are prioritised and the highest
        priority requirements are included in early increments.
        Once the development of an increment is started, the
        requirements are frozen though requirements for later
        increments can continue to evolve.




©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 4   Slide 15
Assign
         Desi
    Defineli
     requireo
                Incremental development



         arto
         chit
    DevelopeV
      Vincr y
       alidas
       teeme
         Integ
         resy
         a aF
          t te
    incrstem
    ement
      incr
       ement
       S
       y
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 16
Incremental development advantages

            Customer value can be delivered with each
            increment so system functionality is available
            earlier.
            Early increments act as a prototype to help
            elicit requirements for later increments.
            Lower risk of overall project failure.
            The highest priority system services tend to
            receive the most testing.



©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 17
Extreme programming

            An approach to development based on the
            development and delivery of very small
            increments of functionality.
            Relies on constant code improvement, user
            involvement in the development team and
            pairwise programming.
            Covered in Chapter 17




©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 4   Slide 18
Spiral development

            Process is represented as a spiral rather than
            as a sequence of activities with backtracking.
            Each loop in the spiral represents a phase in
            the process.
            No fixed phases such as specification or
            design - loops in the spiral are chosen
            depending on what is required.
            Risks are explicitly assessed and resolved
            throughout the process.


©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 4   Slide 19
DeterEvs,
               mineiden
               v s,Risk
                v Risk
                e ysis
               tis and a
               alternar r
                e anal
               constrOp
                aintsPr  obj
                        alua
                        te
                         ti
                         v
                         e
                        ,e
                        eso
                      Risk
                      anal
                      ysis
Spiral model of the software process



                    anal
                    ysis
                     Prpra-
                       otot
                         tio
                         oto
                         yp
                      ototy
                   Risk
                     Pr, ks
                     oto-
                  Rysisbe
                   anal
                  EaS/W
                  EWmo
                     VI
                     type
                 Rquir
                 e Conce
                  ements
                  cleula
                      Sim
                   Oper
                 Dequirtion
                       ,Cod
                 Life-cy
                    trion
                       Pr
                   Rlida
                   etest
                    emen
                  ephase
                   lopme pla
                       odu
                     eInteg
                      emen
                       quir
                         De
                       desi
                  viondes
                   v testp
                    a retes
                    tion
                  planlop
                xt AcceUni
                  aDesig
                 Integl
                  rServic
                  t V&V
               Plan a,erif
                 andtv vion
                       ne
                       De
                        xt-l
                        v
                        eodu
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 20
Spiral model sectors
            Objective setting
              •     Specific objectives for the phase are identified.
            Risk assessment and reduction
              •     Risks are assessed and activities put in place to reduce
                    the key risks.
            Development and validation
              •     A development model for the system is chosen which
                    can be any of the generic models.
            Planning
              •     The project is reviewed and the next phase of the spiral
                    is planned.



©Ian Sommerville 2004          Software Engineering, 7th edition. Chapter 4   Slide 21
Process activities

            Software specification
            Software design and implementation
            Software validation
            Software evolution




©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 4   Slide 22
Software specification

            The process of establishing what services are
            required and the constraints on the system’s
            operation and development.
            Requirements engineering process
              •     Feasibility study;
              •     Requirements elicitation and analysis;
              •     Requirements specification;
              •     Requirements validation.




©Ian Sommerville 2004        Software Engineering, 7th edition. Chapter 4   Slide 23
Rquir
         e Rqu
         emen
      Fasibili
      easibil
         elicita
      stud Rq
       ypor e
         anal
         ysis
           e va
           em
           spec
      F SUse
      e mode em
   The requirements engineering process




      rt ystem
           requ
             Rq
             e
             em
             do
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 24
Software design and implementation

            The process of converting the system
            specification into an executable system.
            Software design
              •     Design a software structure that realises the
                    specification;
            Implementation
              •     Translate this structure into an executable
                    program;
            The activities of design and implementation
            are closely related and may be inter-leaved.


©Ian Sommerville 2004         Software Engineering, 7th edition. Chapter 4   Slide 25
Design process activities

            Architectural design
            Abstract specification
            Interface design
            Component design
            Data structure design
            Algorithm design




©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 26
Rquirstru
 eAbstr A
 ements
 specific
  tion des
           The software design process



     Desig
      vitie
Ar InterA
chitecturDa
         ta
 aleInterd
   actdesi
     face
      Com
designesti
  specific
   tionstru
     design
ystemDa
Sspecific
  Softw p
   artion
     face
      Com
artionspe
chitectur
 e specifta
         e
      spec
       tion
         tio
     Desig
      oduc
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 27
Structured methods
            Systematic approaches to developing a
            software design.
            The design is usually documented as a set of
            graphical models.
            Possible models
              •     Object model;
              •     Sequence model;
              •     State transition model;
              •     Structural model;
              •     Data-flow model.


©Ian Sommerville 2004         Software Engineering, 7th edition. Chapter 4   Slide 28
Programming and debugging

            Translating a design into a program and
            removing errors from that program.
            Programming is a personal activity - there is
            no generic programming process.
            Programmers carry out some program testing
            to discover faults in the program and remove
            these faults in the debugging process.




©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 29
DRpa
             esig
         Locapr
         teepair
             erR-
               em
                   The debugging process




          err o
           or g
         err err
         or orar
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 30
Software validation
            Verification and validation (V & V) is intended
            to show that a system conforms to its
            specification and meets the requirements of
            the system customer.
            Involves checking and review processes and
            system testing.
            System testing involves executing the system
            with test cases that are derived from the
            specification of the real data to be processed
            by the system.


©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 4   Slide 31
Sste
           yA
         Comp
           test
              te
         testin
                        The testing process




©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 4   Slide 32
Testing stages
        Component or unit testing
         •      Individual components are tested independently;
         •      Components may be functions or objects or
                coherent groupings of these entities.
        System testing
         •      Testing of the system as a whole. Testing of
                emergent properties is particularly important.
        Acceptance testing
         •      Testing with customer data to check that the
                system meets the customer’s needs.



©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 4   Slide 33
Testing phases


 RquirrDet
 eAccepta
 ementsun
    SySades
    ySytion
       stem
 specifica
  tionstemstem
    specific
     tion pl
        desig
         Sub-
            M
   testinteg
     integ t
      rinteg
      ayion
       tSstem
 Serviceionan
          plan
      testion
         test
    AcceptSub
    testinte
        rr
        aa
        t t
©Ian Sommerville 2004     Software Engineering, 7th edition. Chapter 4   Slide 34
Software evolution

            Software is inherently flexible and can change.
            As requirements change through changing
            business circumstances, the software that
            supports the business must also evolve and
            change.
            Although there has been a demarcation
            between development and evolution
            (maintenance) this is increasingly irrelevant as
            fewer and fewer systems are completely new.


©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 4   Slide 35
Define
      Asse
       Pro
         M
                        System evolution




    require
      syste
       cha
         sy
     Exist
         N
     syste
         sy
©Ian Sommerville 2004     Software Engineering, 7th edition. Chapter 4   Slide 36
The Rational Unified Process

            A modern process model derived from the
            work on the UML and associated process.
            Normally described from 3 perspectives
              •     A dynamic perspective that shows phases over
                    time;
              •     A static perspective that shows process activities;
              •     A practive perspective that suggests good
                    practice.




©Ian Sommerville 2004         Software Engineering, 7th edition. Chapter 4   Slide 37
RUP phase model



         Phase
       Inceptio
        Elabor
          Con
            T
            ra
©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 4   Slide 38
RUP phases

            Inception
              •     Establish the business case for the system.
            Elaboration
              •     Develop an understanding of the problem domain
                    and the system architecture.
            Construction
              •     System design, programming and testing.
            Transition
              •     Deploy the system in its operating environment.


©Ian Sommerville 2004        Software Engineering, 7th edition. Chapter 4   Slide 39
RUP good practice

            Develop software iteratively
            Manage requirements
            Use component-based architectures
            Visually model software
            Verify software quality
            Control changes to software




©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 4   Slide 40
Static workflows
         Workflow              Description
         Business modelling    The business processes are modelled using business use cases.
         Requirements          Actors who interact with the system are identified and use cases are
                               developed to model the system requirements.
         Analysis and design   A design model is created and documented using architectural
                               models, component models, object models and sequence models.
         Implementation        The components in the system are implemented and structured into
                               implementation sub-systems. Automatic code generation from design
                               models helps accelerate this process.
         Test                  Testing is an iterative process that is carried out in conjunction with
                               implementation. System testing follows the completion of the
                               implementation.
         Deployment            A product release is created, distributed to users and installed in their
                               workplace.
         Configuration and     This supporting workflow managed changes to the system (see
         change management     Chapter 29).
         Project management    This supporting workflow manages the system development (see
                               Chapter 5).
         Environment           This workflow is concerned with making appropriate software tools
                               available to the software development team.


©Ian Sommerville 2004                Software Engineering, 7th edition. Chapter 4                          Slide 41
Computer-aided software engineering

            Computer-aided software engineering (CASE) is
            software to support software development and
            evolution processes.
            Activity automation
              •     Graphical editors for system model development;
              •     Data dictionary to manage design entities;
              •     Graphical UI builder for user interface construction;
              •     Debuggers to support program fault finding;
              •     Automated translators to generate new versions of a
                    program.



©Ian Sommerville 2004          Software Engineering, 7th edition. Chapter 4   Slide 42
Case technology

            Case technology has led to significant
            improvements in the software process.
            However, these are not the order of magnitude
            improvements that were once predicted
              •     Software engineering requires creative thought -
                    this is not readily automated;
              •     Software engineering is a team activity and, for
                    large projects, much time is spent in team
                    interactions. CASE technology does not really
                    support these.


©Ian Sommerville 2004        Software Engineering, 7th edition. Chapter 4   Slide 43
CASE classification
            Classification helps us understand the different types
            of CASE tools and their support for process activities.
            Functional perspective
              •     Tools are classified according to their specific function.
            Process perspective
              •     Tools are classified according to process activities that
                    are supported.
            Integration perspective
              •     Tools are classified according to their organisation into
                    integrated units.



©Ian Sommerville 2004          Software Engineering, 7th edition. Chapter 4   Slide 44
Functional tool classification
 Tool type                        Examples
 Planning tools                   PERT tools, estimation tools, spreadsheets
 Editing tools                    Text editors, diagram editors, word processors
 Change management tools          Requirements traceability tools, change control systems
 Configuration management tools   Version management systems, system building tools
 Prototyping tools                Very high-level languages, user interface generators
 Method-support tools             Design editors, data dictionaries, code generators
 Language-processing tools        Compilers, interpreters
 Program analysis tools           Cross reference generators, static analysers, dynamic analysers
 Testing tools                    Test data generators, file comparators
 Debugging tools                  Interactive debugging systems
 Documentation tools              Page layout programs, image editors
 Re-engineering tools             Cross-reference systems, program re-structuring systems



©Ian Sommerville 2004              Software Engineering, 7th edition. Chapter 4                     Slide 45
Re-eng
                 ineering
                Tsting too
                e tools
       Activity-based tool classification

                Debugg
                 ing analy
                Prog su
                ram
                Language
                tools
                Method
                  t tools
                Prototypin
                Configura
                managem
                Change to
                Documen   m
                Editingrifi
                Planning
                   Specific
                     Design
                      Imple
                       V
                       elida
©Ian Sommerville 2004
                       aand
                        Software Engineering, 7th edition. Chapter 4   Slide 46
CASE integration
            Tools
              •     Support individual process tasks such as design
                    consistency checking, text editing, etc.
            Workbenches
              •     Support a process phase such as specification or
                    design, Normally include a number of integrated
                    tools.
            Environments
              •     Support all or a substantial part of an entire
                    software process. Normally include several
                    integrated workbenches.


©Ian Sommerville 2004         Software Engineering, 7th edition. Chapter 4   Slide 47
C SE
                A
                techn
                 gEn
                 yvir
  Tools, workbenches, environments


             oolsonm
                Wed
                oInteg
                kbenc
                  r Pr
             Tcompa
            Editorsed
               Filean
                  r en
                  aoce
                  t vir
             Compil
               aaen
               tPr onm
                 ors
                  vir
                  onm
              Anal
              ysisLan
                oal-pu
                gmm
                rGene
                  Tstin
                  ege-
              design
             Multi-m
             o Single
             wrororor
             kbenche
               www
               kbenc
                 kben
                    kbe
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 4   Slide 48
Key points
            Software processes are the activities involved in
            producing and evolving a software system.
            Software process models are abstract representations
            of these processes.
            General activities are specification, design and
            implementation, validation and evolution.
            Generic process models describe the organisation of
            software processes. Examples include the waterfall
            model, evolutionary development and component-
            based software engineering.
            Iterative process models describe the software
            process as a cycle of activities.


©Ian Sommerville 2004    Software Engineering, 7th edition. Chapter 4   Slide 49
Key points
            Requirements engineering is the process of
            developing a software specification.
            Design and implementation processes transform the
            specification to an executable program.
            Validation involves checking that the system meets to
            its specification and user needs.
            Evolution is concerned with modifying the system after
            it is in use.
            The Rational Unified Process is a generic process
            model that separates activities from phases.
            CASE technology supports software process activities.



©Ian Sommerville 2004     Software Engineering, 7th edition. Chapter 4   Slide 50

Más contenido relacionado

La actualidad más candente

Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAtul Karmyal
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del SoftwareJaneth Jimenez
 
Process models
Process modelsProcess models
Process modelsStudent
 
SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process ModelsNana Sarpong
 
Software Project Management
Software Project ManagementSoftware Project Management
Software Project Managementasim78
 
Planificacion De Proyectos De Software
Planificacion De Proyectos De SoftwarePlanificacion De Proyectos De Software
Planificacion De Proyectos De SoftwareIván Sanchez Vera
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Mohamed Sami El-Tahawy
 
Tema 1 -T2: La ingeniería de requisitos de software
Tema 1 -T2: La ingeniería de requisitos de softwareTema 1 -T2: La ingeniería de requisitos de software
Tema 1 -T2: La ingeniería de requisitos de softwareMagemyl Egana
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSuresh Koujalagi
 
TESTING STRATEGY.ppt
TESTING STRATEGY.pptTESTING STRATEGY.ppt
TESTING STRATEGY.pptFawazHussain4
 
Lecture4 requirement engineering
Lecture4 requirement engineeringLecture4 requirement engineering
Lecture4 requirement engineeringShahid Riaz
 
Flawless Execution
Flawless ExecutionFlawless Execution
Flawless ExecutionGlen Alleman
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models Satya P. Joshi
 

La actualidad más candente (20)

Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del Software
 
Process models
Process modelsProcess models
Process models
 
SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process Models
 
Software Project Management
Software Project ManagementSoftware Project Management
Software Project Management
 
Planificacion De Proyectos De Software
Planificacion De Proyectos De SoftwarePlanificacion De Proyectos De Software
Planificacion De Proyectos De Software
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Chapter_07.pptx
Chapter_07.pptxChapter_07.pptx
Chapter_07.pptx
 
Tema 1 -T2: La ingeniería de requisitos de software
Tema 1 -T2: La ingeniería de requisitos de softwareTema 1 -T2: La ingeniería de requisitos de software
Tema 1 -T2: La ingeniería de requisitos de software
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
TESTING STRATEGY.ppt
TESTING STRATEGY.pptTESTING STRATEGY.ppt
TESTING STRATEGY.ppt
 
Lecture4 requirement engineering
Lecture4 requirement engineeringLecture4 requirement engineering
Lecture4 requirement engineering
 
Flawless Execution
Flawless ExecutionFlawless Execution
Flawless Execution
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
Unit1
Unit1Unit1
Unit1
 

Destacado

Destacado (20)

Software Engineering - Ch9
Software Engineering - Ch9Software Engineering - Ch9
Software Engineering - Ch9
 
Software Engineering - Ch12
Software Engineering - Ch12Software Engineering - Ch12
Software Engineering - Ch12
 
Software Engineering - Ch17
Software Engineering - Ch17Software Engineering - Ch17
Software Engineering - Ch17
 
Ch27 (1)
Ch27 (1)Ch27 (1)
Ch27 (1)
 
Ch23
Ch23Ch23
Ch23
 
Introduction to Software Enigneering
Introduction to Software Enigneering Introduction to Software Enigneering
Introduction to Software Enigneering
 
Software Engineering - Ch7
Software Engineering - Ch7Software Engineering - Ch7
Software Engineering - Ch7
 
Ch18
Ch18Ch18
Ch18
 
Verification and validation
Verification and validationVerification and validation
Verification and validation
 
Software Engineering - Ch3
Software Engineering - Ch3Software Engineering - Ch3
Software Engineering - Ch3
 
Software Engineering - Ch6
Software Engineering - Ch6Software Engineering - Ch6
Software Engineering - Ch6
 
Ch26
Ch26Ch26
Ch26
 
Chapter 25 managing people
Chapter 25 managing peopleChapter 25 managing people
Chapter 25 managing people
 
Software Engineering - Ch2
Software Engineering - Ch2Software Engineering - Ch2
Software Engineering - Ch2
 
Software Engineering - Ch5
Software Engineering - Ch5Software Engineering - Ch5
Software Engineering - Ch5
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11
 
Verifcation and Validation
Verifcation and ValidationVerifcation and Validation
Verifcation and Validation
 
Software Engineering - Ch1
Software Engineering - Ch1Software Engineering - Ch1
Software Engineering - Ch1
 
Software Engineering - Ch8
Software Engineering - Ch8Software Engineering - Ch8
Software Engineering - Ch8
 

Similar a Software Processes

Similar a Software Processes (20)

962 sech04
962 sech04962 sech04
962 sech04
 
Ch1
Ch1Ch1
Ch1
 
Software Processes
Software ProcessesSoftware Processes
Software Processes
 
01 unidad i introduccion
01 unidad i   introduccion01 unidad i   introduccion
01 unidad i introduccion
 
Ch1
Ch1Ch1
Ch1
 
ch1.ppt
ch1.pptch1.ppt
ch1.ppt
 
Ch1
Ch1Ch1
Ch1
 
Ch28
Ch28Ch28
Ch28
 
Software Prototyping
Software PrototypingSoftware Prototyping
Software Prototyping
 
about how software prototyping helps in SDLC
about how software prototyping helps in SDLCabout how software prototyping helps in SDLC
about how software prototyping helps in SDLC
 
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
 
Ch5
Ch5Ch5
Ch5
 
FADHILLA ELITA Ppt testing 3
FADHILLA ELITA Ppt testing 3FADHILLA ELITA Ppt testing 3
FADHILLA ELITA Ppt testing 3
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdm
 
TESTING IMPLEMENTATION SYSTEM
TESTING IMPLEMENTATION SYSTEMTESTING IMPLEMENTATION SYSTEM
TESTING IMPLEMENTATION SYSTEM
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
0273710133 pp01v2
0273710133 pp01v20273710133 pp01v2
0273710133 pp01v2
 
Software Engg. process models
Software Engg. process modelsSoftware Engg. process models
Software Engg. process models
 
Software Development Models
Software Development ModelsSoftware Development Models
Software Development Models
 

Último

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Último (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Software Processes

  • 1. Software Processes ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1
  • 2. Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software development, testing and evolution To explain the Rational Unified Process model To introduce CASE technology to support software process activities ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 2
  • 3. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 3
  • 4. The software process A structured set of activities required to develop a software system • Specification; • Design; • Validation; • Evolution. A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 4
  • 5. Generic software process models The waterfall model • Separate and distinct phases of specification and development. Evolutionary development • Specification, development and validation are interleaved. Component-based software engineering • The system is assembled from existing components. There are many variants of these models e.g. formal development where a waterfall-like process is used but the specification is a formal specification that is refined through several stages to an implementable design. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 5
  • 6. Rquir esoftw ement definit SImpl yand stem Waterfall model tion Inte rOp am tio sys ©Ian Sommerville 2004 aio t Software Engineering, 7th edition. Chapter 4 Slide 6
  • 7. Waterfall model phases Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. One phase has to be complete before moving onto the next phase. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 7
  • 8. Waterfall model problems Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. Few business systems have stable requirements. The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 8
  • 9. Evolutionary development Exploratory development • Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements and add new features as proposed by the customer. Throw-away prototyping • Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 9
  • 10. Conc entr acti vitie In Spec tion vr e Evolutionary development Int m Outlin Devr elop Vv a eete vlida descrip Fi tion ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 10
  • 11. Evolutionary development Problems • Lack of process visibility; • Systems are often poorly structured; • Special skills (e.g. in languages for rapid prototyping) may be required. Applicability • For small or medium-size interactive systems; • For parts of large systems (e.g. the user interface); • For short-lifetime systems. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 11
  • 12. Component-based software engineering Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. Process stages • Component analysis; • Requirements modification; • System design with reuse; • Development and integration. This approach is becoming increasingly used as component standards have emerged. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 12
  • 13. Reuse-oriented development Requirem Compo Requ Sva yste specifica analysi modi with Dev ands S y ratio ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 13
  • 14. Process iteration System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems. Iteration can be applied to any of the generic process models. Two (related) approaches • Incremental delivery; • Spiral development. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 14
  • 15. Incremental delivery Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality. User requirements are prioritised and the highest priority requirements are included in early increments. Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 15
  • 16. Assign Desi Defineli requireo Incremental development arto chit DevelopeV Vincr y alidas teeme Integ resy a aF t te incrstem ement incr ement S y ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 16
  • 17. Incremental development advantages Customer value can be delivered with each increment so system functionality is available earlier. Early increments act as a prototype to help elicit requirements for later increments. Lower risk of overall project failure. The highest priority system services tend to receive the most testing. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 17
  • 18. Extreme programming An approach to development based on the development and delivery of very small increments of functionality. Relies on constant code improvement, user involvement in the development team and pairwise programming. Covered in Chapter 17 ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 18
  • 19. Spiral development Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. Risks are explicitly assessed and resolved throughout the process. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 19
  • 20. DeterEvs, mineiden v s,Risk v Risk e ysis tis and a alternar r e anal constrOp aintsPr obj alua te ti v e ,e eso Risk anal ysis Spiral model of the software process anal ysis Prpra- otot tio oto yp ototy Risk Pr, ks oto- Rysisbe anal EaS/W EWmo VI type Rquir e Conce ements cleula Sim Oper Dequirtion ,Cod Life-cy trion Pr Rlida etest emen ephase lopme pla odu eInteg emen quir De desi viondes v testp a retes tion planlop xt AcceUni aDesig Integl rServic t V&V Plan a,erif andtv vion ne De xt-l v eodu ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 20
  • 21. Spiral model sectors Objective setting • Specific objectives for the phase are identified. Risk assessment and reduction • Risks are assessed and activities put in place to reduce the key risks. Development and validation • A development model for the system is chosen which can be any of the generic models. Planning • The project is reviewed and the next phase of the spiral is planned. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 21
  • 22. Process activities Software specification Software design and implementation Software validation Software evolution ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 22
  • 23. Software specification The process of establishing what services are required and the constraints on the system’s operation and development. Requirements engineering process • Feasibility study; • Requirements elicitation and analysis; • Requirements specification; • Requirements validation. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 23
  • 24. Rquir e Rqu emen Fasibili easibil elicita stud Rq ypor e anal ysis e va em spec F SUse e mode em The requirements engineering process rt ystem requ Rq e em do ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 24
  • 25. Software design and implementation The process of converting the system specification into an executable system. Software design • Design a software structure that realises the specification; Implementation • Translate this structure into an executable program; The activities of design and implementation are closely related and may be inter-leaved. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 25
  • 26. Design process activities Architectural design Abstract specification Interface design Component design Data structure design Algorithm design ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 26
  • 27. Rquirstru eAbstr A ements specific tion des The software design process Desig vitie Ar InterA chitecturDa ta aleInterd actdesi face Com designesti specific tionstru design ystemDa Sspecific Softw p artion face Com artionspe chitectur e specifta e spec tion tio Desig oduc ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 27
  • 28. Structured methods Systematic approaches to developing a software design. The design is usually documented as a set of graphical models. Possible models • Object model; • Sequence model; • State transition model; • Structural model; • Data-flow model. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 28
  • 29. Programming and debugging Translating a design into a program and removing errors from that program. Programming is a personal activity - there is no generic programming process. Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 29
  • 30. DRpa esig Locapr teepair erR- em The debugging process err o or g err err or orar ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 30
  • 31. Software validation Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the system customer. Involves checking and review processes and system testing. System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 31
  • 32. Sste yA Comp test te testin The testing process ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 32
  • 33. Testing stages Component or unit testing • Individual components are tested independently; • Components may be functions or objects or coherent groupings of these entities. System testing • Testing of the system as a whole. Testing of emergent properties is particularly important. Acceptance testing • Testing with customer data to check that the system meets the customer’s needs. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 33
  • 34. Testing phases RquirrDet eAccepta ementsun SySades ySytion stem specifica tionstemstem specific tion pl desig Sub- M testinteg integ t rinteg ayion tSstem Serviceionan plan testion test AcceptSub testinte rr aa t t ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 34
  • 35. Software evolution Software is inherently flexible and can change. As requirements change through changing business circumstances, the software that supports the business must also evolve and change. Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 35
  • 36. Define Asse Pro M System evolution require syste cha sy Exist N syste sy ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 36
  • 37. The Rational Unified Process A modern process model derived from the work on the UML and associated process. Normally described from 3 perspectives • A dynamic perspective that shows phases over time; • A static perspective that shows process activities; • A practive perspective that suggests good practice. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 37
  • 38. RUP phase model Phase Inceptio Elabor Con T ra ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 38
  • 39. RUP phases Inception • Establish the business case for the system. Elaboration • Develop an understanding of the problem domain and the system architecture. Construction • System design, programming and testing. Transition • Deploy the system in its operating environment. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 39
  • 40. RUP good practice Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 40
  • 41. Static workflows Workflow Description Business modelling The business processes are modelled using business use cases. Requirements Actors who interact with the system are identified and use cases are developed to model the system requirements. Analysis and design A design model is created and documented using architectural models, component models, object models and sequence models. Implementation The components in the system are implemented and structured into implementation sub-systems. Automatic code generation from design models helps accelerate this process. Test Testing is an iterative process that is carried out in conjunction with implementation. System testing follows the completion of the implementation. Deployment A product release is created, distributed to users and installed in their workplace. Configuration and This supporting workflow managed changes to the system (see change management Chapter 29). Project management This supporting workflow manages the system development (see Chapter 5). Environment This workflow is concerned with making appropriate software tools available to the software development team. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 41
  • 42. Computer-aided software engineering Computer-aided software engineering (CASE) is software to support software development and evolution processes. Activity automation • Graphical editors for system model development; • Data dictionary to manage design entities; • Graphical UI builder for user interface construction; • Debuggers to support program fault finding; • Automated translators to generate new versions of a program. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 42
  • 43. Case technology Case technology has led to significant improvements in the software process. However, these are not the order of magnitude improvements that were once predicted • Software engineering requires creative thought - this is not readily automated; • Software engineering is a team activity and, for large projects, much time is spent in team interactions. CASE technology does not really support these. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 43
  • 44. CASE classification Classification helps us understand the different types of CASE tools and their support for process activities. Functional perspective • Tools are classified according to their specific function. Process perspective • Tools are classified according to process activities that are supported. Integration perspective • Tools are classified according to their organisation into integrated units. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 44
  • 45. Functional tool classification Tool type Examples Planning tools PERT tools, estimation tools, spreadsheets Editing tools Text editors, diagram editors, word processors Change management tools Requirements traceability tools, change control systems Configuration management tools Version management systems, system building tools Prototyping tools Very high-level languages, user interface generators Method-support tools Design editors, data dictionaries, code generators Language-processing tools Compilers, interpreters Program analysis tools Cross reference generators, static analysers, dynamic analysers Testing tools Test data generators, file comparators Debugging tools Interactive debugging systems Documentation tools Page layout programs, image editors Re-engineering tools Cross-reference systems, program re-structuring systems ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 45
  • 46. Re-eng ineering Tsting too e tools Activity-based tool classification Debugg ing analy Prog su ram Language tools Method t tools Prototypin Configura managem Change to Documen m Editingrifi Planning Specific Design Imple V elida ©Ian Sommerville 2004 aand Software Engineering, 7th edition. Chapter 4 Slide 46
  • 47. CASE integration Tools • Support individual process tasks such as design consistency checking, text editing, etc. Workbenches • Support a process phase such as specification or design, Normally include a number of integrated tools. Environments • Support all or a substantial part of an entire software process. Normally include several integrated workbenches. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 47
  • 48. C SE A techn gEn yvir Tools, workbenches, environments oolsonm Wed oInteg kbenc r Pr Tcompa Editorsed Filean r en aoce t vir Compil aaen tPr onm ors vir onm Anal ysisLan oal-pu gmm rGene Tstin ege- design Multi-m o Single wrororor kbenche www kbenc kben kbe ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 48
  • 49. Key points Software processes are the activities involved in producing and evolving a software system. Software process models are abstract representations of these processes. General activities are specification, design and implementation, validation and evolution. Generic process models describe the organisation of software processes. Examples include the waterfall model, evolutionary development and component- based software engineering. Iterative process models describe the software process as a cycle of activities. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 49
  • 50. Key points Requirements engineering is the process of developing a software specification. Design and implementation processes transform the specification to an executable program. Validation involves checking that the system meets to its specification and user needs. Evolution is concerned with modifying the system after it is in use. The Rational Unified Process is a generic process model that separates activities from phases. CASE technology supports software process activities. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 50