Software Development Life Cycle (SDLC)

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Lecture # 2 : Process Models
Software Process Models
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Project Management
CEN nd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Software Process Models.
CS487 Software Engineering Omar Aldawud
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
CSE 470 : Software Engineering The Software Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Adapted from a presentation by John Petlicki of DePaul University, USA.
Chapter 2 – Software Processes
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
Alternate Software Development Methodologies
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Life Cycle Model
Chapter 3 Software Processes.
Software Development Life Cycle (SDLC)
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
IT Systems Analysis & Design
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
An Introduction to Software Engineering
Introduction to Software Engineering.  Software Characteristics  Components  Applications  Layered Technologies  Processes  Methods And Tools 
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Software Engineering Lecture # 1.
Week 2: Software Process HNDIT Software Engineering Software Process.
IT2005 System Analysis & Design
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Software Model Process
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Development Life Cycle (SDLC)
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
SE 548 IŞIL ÖZTÜRK.  Software Development Life Cycle (SDLC ) is a framework that describes the activities performed at each stage of a software development.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Software Project Management Unit 1. Evolving role of software S/w now a days resides in the mobile, mainframes The main role of the s/w is to transform.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Software Development - Methodologies
Methodologies and Algorithms
Software Life Cycle “What happens in the ‘life’ of software”
SNS College of Engineering Coimbatore
Software Processes (a)
V-Shaped SDLC Model Lecture-6.
Software development life cycle models
Chapter 2 SW Process Models
Software Process Models
Software Life Cycle Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
IT Systems Analysis & Design
SDLC Model A framework that describes the activities performed at each stage of a software development project.
Software life cycle models
Baisc Of Software Testing
Software Processes Process should be
Software Engineering Lecture 17.
Presentation transcript:

Software Development Life Cycle (SDLC) Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Software is computer programs. What is software ? Software is computer programs. Software products may be developed for a particular customer or may be developed for a general market. Software products may be Generic - developed to be sold to a range of different customers. Bespoke (custom) - developed for a single customer according to their specification.

Costs of Hardware & Software Time 2012 1960

One cannot touch software (Intangibility). What are the distinctive characteristics of software ? One cannot touch software (Intangibility). Increase use will not introduce any defects. Software is configurable (One can build software by combining a basic set of software components in different ways.) One can change the product easily by re - implementing it without changing the design. Custom built (Most software are made upon order.)

Failure curve for hardware Failure rate Infant mortality Deterioration Time

Failure curve for software Increase failure rates due to side effects Failure rate Actual curve change Idealized curve Time

Software development life cycle The software development life cycle (SDLC) (sometimes referred to as the system development life cycle) is the process of creating or altering software systems, and the models and methodologies that people use to develop these systems. In any such lifecycle, people, process and technology all play a role in success.

Requirements capture and Analysis Design Implementation/ Coding Steps of SDLC Requirements capture and Analysis Design Implementation/ Coding Testing Maintenance

Software costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost. Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs. Software engineering is concerned with cost effective software development.

Requirements capture and Analysis Design Implementation/ Coding Distribution of software cost over life cycle Requirements capture and Analysis Design Implementation/ Coding Testing Maintenance 40% 60%

Project manager Systems analyst Designer Programmer Tester Members of a software engineering team Project manager Systems analyst Designer Programmer Tester Technical clerk

Software process models Waterfall model - Separate and distinct phases of specification and development. Spiral model - This model couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model. to arrange in or as if in alternate layers

Rapid Application Development (RAD) - This is a process model that emphasizes an extremely short development cycle. V-Shaped SDLC Model- A variant of the Waterfall that emphasizes the verification and validation of the product.

(1) Waterfall model Requirement analysis Design Coding Testing Maintain

(1) Requirement analysis and specification The system services, constraints and goals are established with the discussion with the users. This includes understanding the information domain of the software, functionality requirements, performance requirements, interface requirements and security requirements. Requirements are then specified in a manner which is understandable by both users and the development staff.

(2) Software design The design process translates requirements into a representation of the software that can be implemented using software development tools. The major objectives of the design process are the identification of, the software components, the software architecture, interfaces and the data structures & algorithms to be used.

(3) Coding / Implementation The design must be translated to a machine readable form. During this stage the software design is realized as a set of programs. (4)Testing The testing process must ensure that the system works correctly and satisfies the specified requirements. After testing the software system is delivered to the customer.

(5) Maintenance Software will undoubtedly undergo changes after it is delivered to the customer. Errors in the system should be corrected (corrective maintenance), the system may need to be adapted to new technologies (adaptive maintenance) and the system may needed to be modified and updated to suit new user requirements (perfective maintenance).

Some Problems with the Waterfall Model It is often very difficult for the customer to state all requirements clearly. The Waterfall model has the difficulty of accommodating the natural uncertainty that exists at the beginning of many projects. The customers must have patience. A working version of the program will not be available until late in the project time span.

Inflexible partitioning of the project into distinct stages (This makes it difficult to respond to changing customer requirements). Thus the Waterfall model is suitable for projects which have clear and stable requirements.

(2) Spiral model Spiral model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. Using the spiral model software is developed in a series of incremental releases. During early iterations the incremental release might be a paper model or prototype. Each loop in the spiral represents a phase in the process.

Spiral model and Test

Spiral model activities : Determine objectives, alternatives and constraints (Specific objectives for the phase are identified). Evaluate alternatives , identify, resolve risks (Risks are assessed and activities put in place to reduce the key risks). Development and test (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).

(3) Rapid application development Rapid Application Development (RAD) is an incremental software development process model that emphasizes an extremely short development cycle. If requirements are well understood and project scope is controlled, the RAD process enables a development team to create a fully functional system within very short time periods.

DEFINITION a software development process that allows usable systems to be built in as little as 60-90 days, often with some compromises. Key Objectives are: High Speed High Quality Low Cost Key Ingredients are: Management Tools Methodology High Skilled People

Principles behind the definition In certain situations, a usable 80% solution can be produced in 20% of the time that would have been required to produce a total solution. In certain situations: The business requirements for a system can be fully satisfied even if some of its operational requirements are not satisfied. The acceptability of a system can be assessed against the agreed minimum useful set of requirements rather than all requirements.

Problems with RAD RAD requires sufficient human resources to create right number of RAD teams. RAD requires developers and customers who are committed to the rapid fire activities necessary to get a system completed in a much abbreviated (shortened )time frame. If a system cannot be properly modularized, building the components necessary for RAD will be problematic.

RAD is not applicable when technical risks are high. This occurs when a new application makes heavy use of new technology or when the new software requires a high degree of interoperability with existing computer programs.

V-Shaped SDLC Model Testing of the product is planned in parallel with a corresponding phase of development

V-Shaped Steps Production, operation and maintenance – provide for enhancement and corrections System and acceptance testing – check the entire software system in its environment Integration and Testing – check that modules interconnect correctly Unit testing – check that each module acts as expected Coding – transform algorithms into software Project and Requirements Planning – allocate resources Product Requirements and Specification Analysis – complete specification of the software system Architecture or High-Level Design – defines how software functions fulfill the design Detailed Design – develop algorithms for each architectural component

V-Shaped Strengths Emphasize planning for verification and validation of the product in early stages of product development Each deliverable must be testable Project management can track progress by milestones Easy to use

V-Shaped Weaknesses Does not easily handle concurrent events Does not handle iterations or phases Does not easily handle dynamic changes in requirements Does not contain risk analysis activities

When to use the V-Shaped Model Excellent choice for systems requiring high reliability – hospital patient control applications All requirements are known up-front When it can be modified to handle changing requirements beyond analysis phase Solution and technology are known