IV. Software Lifecycles IV. Software Lifecycles Software processes - - PDF document

iv software lifecycles iv software lifecycles
SMART_READER_LITE
LIVE PREVIEW

IV. Software Lifecycles IV. Software Lifecycles Software processes - - PDF document

Basi di Dati e Sistemi Informativi II IV. Software Lifecycles IV. Software Lifecycles Software processes and lifecycles Software processes and lifecycles Relative costs of lifecycle phases Relative costs of lifecycle phases Examples of


slide-1
SLIDE 1

Page 1

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 1

  • IV. Software Lifecycles
  • IV. Software Lifecycles

Software processes and lifecycles Software processes and lifecycles Relative costs of lifecycle phases Relative costs of lifecycle phases Examples of lifecycles and processes Examples of lifecycles and processes Process maturity scale Process maturity scale Information system development lifecycle Information system development lifecycle Lifecycle phases Lifecycle phases

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 2

The Software System Lifecycle The Software System Lifecycle

A software process

software process is a partially ordered collection of actions, carried out by one or more software engineers, software users, or other software systems. The software system lifecycle software system lifecycle is a software process by which a software system is developed, tested, installed and maintained throughout its useful history. The concept of software lifecycle is a useful project management tool. A lifecycle consists of phases phases, each of which is a software process. Think of lifecycles as coarse-grain software processes. There is a lot of work on fine-grain software processes, such as fixing a bug, extending a module, testing a module, etc. We focus here on We focus here on information system development lifecycles information system development lifecycles

slide-2
SLIDE 2

Page 2

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 3

The Software Lifecycle The Software Lifecycle

  • For large software systems, involving >10K lines of code

(LOC), the breakdown of costs between different phases is as follows: Requirements Analysis Requirements Analysis 5% 5% Design Design 10% 10% Programming Programming-

  • in

in-

  • the

the-

  • small

small 15% 15% Integration Integration 10% 10% Maintenance and Evolution Maintenance and Evolution 60% 60%

  • The breakdown of costs per phase for small software systems

(<5K LOC) has as follows: Specification Specification 10% 10% Decomposition Decomposition 20% 20% Coding Coding 20% 20% Optimization Optimization 15% 15% Testing Testing 25% 25% Validation Validation 10% 10% Systems analysis and design more important than coding! Systems analysis and design more important than coding!

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 4

What is Described by a Lifecycle? What is Described by a Lifecycle?

The lifecycle describes the temporal, causal and I/O

relationships between different lifecycle phases

The lifecycle concept includes the concept of feedback

(returning to a previous phase) as well as moving forward to the next phase

In the past, the lifecycle concept was applied to the

management of complex systems that had some sort of physical hardware as their end product, e.g., missiles, communication networks, spacecraft, etc.

However, for hardware systems there is a tangible end

product that can be measured and observed,... It is not as easy to measure and observe It is not as easy to measure and observe the results of information systems analysis and design the results of information systems analysis and design

slide-3
SLIDE 3

Page 3

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 5

Lifecycle Models Lifecycle Models

History of lifecycle models Stage-wise (Benington, 1956) Waterfall (Royce, 1970) Transformational, automatic (Balzer, 1973; Balzer, Cheatham and Turner, 1983) Evolutionary (Basili & Turner, 1975) Transformational, specification to implementation (Lehman, Stenning and Turski, 1984) Spiral (Boehm, 1986) Benefits of lifecycle models Process awareness and understanding Order of global activities Improvement in product quality Reduction of software costs Deficiencies of lifecycle models Too coarse-grained -- they hide important process detail

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 6

The Waterfall Lifecycle Model The Waterfall Lifecycle Model

System reqs System design Software reqs Preliminary design Detailed design Coding & testing Integration testing System testing

slide-4
SLIDE 4

Page 4

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 7

Waterfall Life Cycle Deliverables

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 8

Criticisms of the Waterfall Life Cycle Model

Advantages The tasks in a particular stage may be assigned to specialized teams; The progress of the project can be evaluated at the end of each phase and an assessment made as to whether the project should proceed; Criticisms Inflexible partitioning of the project into distinct stages -- real projects rarely follow it! Iterations are inevitable; It may take too long; Difficult to respond to changing customer requirements. Generally, this lifecycle model is appropriate when the requirements for a given system are well-understood.

slide-5
SLIDE 5

Page 5

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 9

The Waterfall Life Cycle with Iteration

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 10

Prototyping

Built something quickly to explore some aspect of the systems requirements The prototype is not intended as the final working system; among

  • ther things, it may be incomplete. less resilient (ex. poor

performance) than a production system. In building a prototype, the objective is to investigate user requirements, in particular: What data should be presented and what data should be captured; To investigate suitable forms of interfaces; Also to determine whether a particular implementation platform is appropriate, as well as the efficacy of a language, DBMS or communication infrastructure.

slide-6
SLIDE 6

Page 6

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 11

Prototyping Prototyping

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 12

Evaluation of Prototyping Evaluation of Prototyping

Advantages Early demonstrations of system functionality help identify any misunderstandings between developer and client; Helps identify missing client requirements; Problems with user interfaces can be identified; Early testing of feasibility and usefulness of the system (partially) Problems The client may not understand the extra effort needed to produce a working production system; May divert attention from functional to solely interface issues; Requires significant user involvement; Managing the prototyping life cycle is not easy; Applicability For small or medium-size interactive systems For parts of large systems (e.g. user interfaces) For short-lifetime systems.

slide-7
SLIDE 7

Page 7

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 13

The Spiral Lifecycle Model The Spiral Lifecycle Model

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

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 14

The Spiral Lifecycle Model The Spiral Lifecycle Model

Risk analysis Risk analysis Risk analysis Risk analysis Proto- type 1 Prototype 2 Prototype 3 Opera- tional protoype Concept of Operation Simulations, models, benchmarks S/W requirements Requirement validation Design V&V Product design Detailed design Code Unit test Integration test Acceptance test Service Develop, verify next-level product Evaluate alternatives identify, resolve risks Determine objectives alternatives and constraints Plan next phase Integration and test plan Development plan Requirements plan Life-cycle plan REVIEW

Analysis Analysis Design Design Implementation Implementation and validation and validation Planning Planning

slide-8
SLIDE 8

Page 8

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 15

Spiral model sectors 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

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 16

Software Processes: Fixing a Bug Software Processes: Fixing a Bug

Step 1: Problem identification Step 1: Problem identification /* During testing, a problem is identified */

  • A

problem report is created, including problem identification, responsible personnel etc.

  • Responsible personnel is notified

Step 2: Problem analysis Step 2: Problem analysis

  • Perform problem description evaluation, evaluation of

software component etc.

  • Propose solutions and describe technical and operational

implications Step 3: Cost analysis Step 3: Cost analysis

  • Project manager decides whether to use cost analysis

routine

  • If so, perform cost analysis to determine impact in work-

months Step 4: Schedule analysis... Step 4: Schedule analysis... Step 5: Perform change process... Step 5: Perform change process... Step 6: Close problem report... Step 6: Close problem report...

slide-9
SLIDE 9

Page 9

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 17

Software Process Programming Software Process Programming

A Testing process

Func t i

  • n

A l lFunc t i

  • nsnsOK(

execu tab le , t es t s ) ; dec la re execu tab le execu tab leCode , t es t s t es tSe t , r esu l t de r i vedResu l t ; / * execu tab leCode e t c a re t ypes , unde f i ned he re * / A l l

  • f

n

  • OK

:= t r ue ; For case := 1 t

  • #

tes t s do de r i ve (execu tab le , t es t s [ case ] . i npu t , r esu l t ) i f ~ resu l tOK( resu l t , t es t case [case ] .ou tpu t ) t hen A l l

  • f

n

  • OK

:= f a l se ; ex i t ; end l

  • op

; end A l l

  • Fn
  • Pe

r f

  • OK

This only works for highly structured or automated processes This only works for highly structured or automated processes

[Osterweil87]

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 18

Software Process Maturity Software Process Maturity

Level Characteristic Key challenges Result 5

  • ptimizing

4

managed

3

defined

2

repeatable

1

initial

ad hoc/chaotic intuitive proc- ess, dependent

  • n individuals

process defined and institutional- ized process defined quantitatively and measured improvement feedback into process maintain organi- zation at optimi- zing level changing tech- nology; problem prevention process meas- urement and analysis training, process focus project and con- figuration man- agement Productivity

& quality

risk

slide-10
SLIDE 10

Page 10

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 19

Software Process Maturity: Field Study (early Software Process Maturity: Field Study (early ‘90s) ‘90s)

Level USA (167 cases) Japan (196 cases) Result 5

  • ptimizing

4

managed

3

defined

2

repeatable

1

initial

86% 13% 1% 0% 0% 0.5% 0% 0.5% 1% 98% Productivity

& quality

risk

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 20

Information System Information System Development Development Phases Phases

We focus now on the development part of the software lifecycle. There are many ways to divide up an information system development into phases For this course, we identify four major phases: feasibility feasibility study study, requirements analysis requirements analysis, system design system design, implementation implementation All activities associated with each phase must be performed, managed and documented.

  • Development support

Development support -- tools and methodologies that support the performance, management and documentation of all four phases

slide-11
SLIDE 11

Page 11

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 21

The Information System Lifecycle Phases The Information System Lifecycle Phases

Survey project scope & feasibility Study current system Define end user reqs. Select feasible solution Design new system Select & Acquire new S&H/W Construct new system Deliver new system Maintain & improve system project request feasibility study problem statement initial requirements detailed requirements design spec configuration S/W new system delivered system Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 22

Who Are the Players (“Stakeholders”)? Who Are the Players (“Stakeholders”)?

  • Management

Management -- for initiation, approval, control, possibly as users

  • End

End-

  • users

users (persons who actually use the system on a day-to-day basis) -- they provide input during requirements definition and testing, participate in committees and final system evaluation

  • Developers

Developers (analysts and programmers) Analysts Analysts

  • serve as project leaders, perform information

analysis, create system requirements and design Programmers Programmers -- program, test, document, maintain

  • System support group

System support group -- they are responsible for system maintenance

  • Database administrator

Database administrator -- responsible for design and control of

  • ne or more databases
  • Program

librarian Program librarian

  • keeps

track

  • f all program files,

documentation

  • Steering committee

Steering committee -- oversees project to ensure that objectives have been met

slide-12
SLIDE 12

Page 12

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 23

Phase I: The Feasibility Study Phase Phase I: The Feasibility Study Phase

Deciding What to Do: Deciding What to Do: Confirm that a problem exists Carry out a study to determine if a system can be developed to solve the problem (2 days - 4 weeks) A feasibility study looks at the problem at a high level (only takes into account few details) The study provides cost and savings estimates for the proposed solution. The feasibility study is reviewed by the customer (usually through a manager) and if the review is positive, then a more detailed requirements study is undertaken.

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 24

Phase II: The Requirements Analysis Phase Phase II: The Requirements Analysis Phase

  • Study

Study existing procedures and computerized information systems in detail and document them.

  • Define

Define goals to be achieved by the new system

  • Propose

Propose alternate (possibly several) business processes that might better fit organizational goals and objectives. Discuss these with the customer and get feedback on what is the most desirable alternative.

  • Define

Define the boundaries of the information system to be built as part

  • f the collection of business processes.
  • Define

Define non-functional requirements on the proposed system, including input/output requirements, response requirements, file requirements, etc. Collect statistics on volumes, amounts of data handled by the system.

slide-13
SLIDE 13

Page 13

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 25

Phase III: The Design Phase Phase III: The Design Phase

Specify an architecture and a detailed design for the proposed information system Ideal system specified first, meeting all functional requirements, then modified to meet non-functional requirements and other constraints Resources allocated for hardware equipment, personnel tasks and programming tasks Technical specifications are prepared for: system architecture (components, system interfaces to existing systems), processing logic (how does the system do what it is supposed to?), database design (what information does the system handle?), input/output (what do the users see?), platform requirements (on what systems does the system run?) and manual procedures (how do people use the system?)

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 26

Phase IV: The Implementation Phase Phase IV: The Implementation Phase (Not Covered in this Course) (Not Covered in this Course)

The system is implemented on the basis of the design specification. Programming of the system is carried out Testing of the system, both as individual parts and as a whole, are conducted (acceptance test) Equipment is acquired and installed Procedures, system manuals, software specifications and documentation are completed Staff is trained

slide-14
SLIDE 14

Page 14

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 27

Managing Managing Information Systems Development Information Systems Development

As project proceeds more details become available as to what the proposed system should do and how to operate it At each stage identify risks to the organization and determine their significance If there is a risk of catastrophic failure then either the system should be redesigned or the project to be cancelled. User involvement Ensure that there is continued and effective user involvement throughout the project Users can be involved at various levels and play many different roles Direct involvement Fact gathering Consultative Carefully explain their role Provide training as required Give sufficient time

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 28

Methodological Approaches Methodological Approaches

Approach to software development (ex. OO) A set of techniques and notation (ex. UML) A life cycle model (ex. Spiral incremental) A unifying set of procedures and philosophy In this course we do not follow a particular methodology – We only apply OO techniques in a coordinated fashion using UML

slide-15
SLIDE 15

Page 15

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 29

Automated process support (CASE) Automated process support (CASE)

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

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 30

CASE support for diagram preparation CASE support for diagram preparation

Checks for syntactic correctness Data dictionary support Checks for consistency and completeness Navigation to linked diagrams Layering Traceability Report generation System simulation Performance analysis

slide-16
SLIDE 16

Page 16

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 31

CASE support for Software Construction CASE support for Software Construction

Code generators Debuggers Maintenance tools Etc Case technology has led to significant improvements in the software process though not the order of magnitude improvements that were

  • nce predicted

– Software development requires creative thought - this is not readily automatable – Software development is a team activity and, for large projects, much time is spent in team interactions. CASE technology does not really support these

CASE Technology CASE Technology

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 32

CASE Benefits CASE Benefits

Standardizing the notation and diagramming standards Performing automatic checks on the quality of the models Reducing time in retrieving data about the system Reducing the time and effort to produce code Promoting reuse of models Limitations in the flexibility of the documentation provided The need to work in the particular way False sense of correctness Costs attached to installation and training

CASE CASE Disavantages Disavantages

slide-17
SLIDE 17

Page 17

Basi di Dati e Sistemi Informativi II 2003 Giorgini Lifecycles -- 33

Additional Readings Additional Readings

[Humphrey89] Humphrey, W. and Kellner, M., "Software Process Modelling: Principles of Entity Process Models", Proceedings Eleventh International Conference

  • n

Software Engineering, Pittsburgh, May 1989. [Humphrey90] Humphrey, W., Managing the Software Process, Addison-Wesley, 1990. [Osterweil87] Osterweil, L., "Software Processes are Software Too", Proceedings Ninth International Conference

  • n

Software Engineering, Monterey, 1987.