What is a life cycle model?



Similar documents
Effort and Cost Allocation in Medium to Large Software Development Projects

Classical Software Life Cycle Models

How To Model Software Development Life Cycle Models

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software Engineering Question Bank

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Software Project Models

Process Models and Metrics

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

(Refer Slide Time: 01:52)

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Fundamentals of Information Systems, Fifth Edition. Chapter 8 Systems Development

The Software Life Cycle. CSE 308: Software Engineering

Software Process and Models

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Karunya University Dept. of Information Technology

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Software Engineering Reference Framework

Supporting Workflow Overview. CSC532 Fall06

I219 Software Design Methodology

A Review of an MVC Framework based Software Development

To introduce software process models To describe three generic process models and when they may be used

CSE 435 Software Engineering. Sept 16, 2015

Software Development Life Cycle (SDLC)

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

How To Develop A Telelogic Harmony/Esw Project

Lecture Slides for Managing and Leading Software Projects. Chapter 1: Introduction

Introduction to Software Engineering: Project Management ( Highlights )

Software Test Plan (STP) Template

Appendix H Software Development Plan Template

MANUAL TESTING. (Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info

Computer System Configuration Management and Change Control

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Plan-Driven Methodologies

Chap 1. Introduction to Software Architecture

CDC UNIFIED PROCESS JOB AID

Computer System Configuration Management and Change Control

<name of project> Software Project Management Plan

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

How To Design An Information System

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Introduction to Systems Analysis and Design

Object-Oriented Systems Analysis and Design

How To Develop A Multi Agent System (Mma)

The most suitable system methodology for the proposed system is drawn out.

International Journal of Advance Research in Computer Science and Management Studies

Application of software product quality international standards through software development life cycle

Software Lifecycles Models

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Development Methodologies

2. Analysis, Design and Implementation

The Role of the Software Architect

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Chapter 4 Software Lifecycle and Performance Analysis

Agile Software Development Methodologies and Its Quality Assurance

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

3C05: Unified Software Development Process

Test Cases Design for Software Database Provisioning Development

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

Surveying and evaluating tools for managing processes for software intensive systems

General Problem Solving Model. Software Development Methodology. Chapter 2A

Analysis and Design with UML

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software Engineering

Software Process for QA

A Software Engineering Process for Operational Space Weather Systems. S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies

The Rap on RUP : An Introduction to the Rational Unified Process

Software Engineering. What is a system?

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

From Chaos to Clarity: Embedding Security into the SDLC

Sistemi ICT per il Business Networking

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

COMP 354 Introduction to Software Engineering

Software Configuration Management Plan

A system is a set of integrated components interacting with each other to serve a common purpose.

Use Cases. Massimo Felici. Massimo Felici Use Cases c

System Development Life Cycle Guide

2. Analysis, Design and Implementation

Information Technology Policy

IV. Software Lifecycles

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

A Process Model for Software Architecture

Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

SOFTWARE DEVELOPMENT SD

Example IEEE software project management plan (SPMP)

Master of Science in Software Engineering (MSC)

Appendix 2-A. Application and System Development Requirements

How To Understand Software Engineering

Designing and Developing Microsoft SharePoint Server 2010 Applications (MS10232)

Topics. Software development invariants. Stakeholders. The accidents of software development. The essence of software development

Transcription:

What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each of the phases and their respective deliverables. Efforts of various stakeholders from industry and academia. A successful model: adopted by the software industry and has undergone many modifications and enhancements to improve its efficiency and applicability.

Pre-development activities Prior to embarking into the activities and the phases of the software life cycle development model, there are some pre-development activities and deliverables that must be performed to enable the proper startup of the software development project.

Predevelopment activities Extent of the pre-development activities depend on the complexity and type of software to develop. For a software system to be implemented as a part of a complete system including software, hardware and people, the allocation of functions to the software component of the system and the interactions and boundaries between the software and other system elements must be clearly identified.

What is a life cycle model? An ideal life cycle model is generic, flexible, adaptable and scalable. To be tailored to suit the particular needs of the company and its development team. flexible to allow different emphasis on different phases, activities and deliverables Must scale up to large and complex software systems development projects.

What is a life cycle model? Many industrial-strength and popular models have been used to develop software products of different complexities and in a wide variety of application domains. waterfall or system development life cycle (SDLC) model, the prototyping model, the spiral model, the object-oriented model, the incremental and iterative model, the extreme model, and the component based model.

Software maintenance activities Software maintenance activities include; the management of software improvement requests, the identification, categorization and prioritization of needed improvements, and the scheduling and execution of the needed improvements. The management of requests is facilitated using a user friendly system for requesting software improvements and reporting software faults. This system is used by software users, software developers and the client to report software faults and to request enhancements to the software. Requests and error reports are then analyzed by the maintenance team. The scheduling of the execution of requests depends mainly on their complexity and urgency.

Types of maintenance activities Corrective maintenance activities are triggered by software faults encountered during the use of the software. They involve simple fixes like cosmetic changes to the user interface, or more complex fixes like redesign of a module or the re-introduction of a missing functionality. Preventive maintenance activities involve dealing with weaknesses and vulnerabilities identified by the development team during or after deploying the software and were not dealt with in the installed software.

Software maintenance activities Perfective maintenance activities involve dealing with requests to improve the efficiency of the algorithms and data structures, and user interface interactions used in the design. Adaptive maintenance activities involve requests from software stakeholders to adapt the software to different operating environments, user interface styles, social contexts, or even new government regulations and standards.

Ongoing (umbrella) activities Project management Quality assurance Evaluation and testing Configuration management Technical support Internal training Documentation Operations support and user training

Project management Project manager continuously performs project management related activities. Progress of the activities is closely monitored using an appropriate reporting procedure. Risks are continuously monitored and corrective actions are taken when needed. New risks are identified and monitored. The project schedule is updated regularly if needed. Project and process related metrics are regularly collected. Regular human resource management and project management activities including delegation and evaluation are performed.

Quality assurance During and at the end of each phase, QA group reviews the phase deliverables and ensures the use of and conformance to internal and external standards. Reviews of parts of the deliverables are conducted during the phase execution and after the deliverables are produced. Quality reports and logs are maintained and relevant metrics are collected according to the metrics collection plan. The quality assurance plan is executed and updated if needed. Process improvement recommendations are also provided by the group after completion of the project.

Evaluation and testing Validation and verification activities At the end of each phase, deliverables are evaluated and tested. Once deliverables are approved, the next phase will start. Formal and informal processes can be used for evaluation and testing purposes. performed by the developers and by independent groups like the QA group. Informal evaluation processes include reviews walkthroughs, inspections, and audits.

Evaluation and testing (2) Formal evaluation processes include the use of formal techniques and automated tools for the verification of phase deliverables. Tools and techniques for design verification and code testing can be used for these purposes. Formal product validation techniques can also be used to generate and document effective tests, to automate the validation process and to analyze validation results.

Configuration management CM deals mainly with the management of the software resources and the overall support and control of the software development and maintenance processes. CM activities include: the identification of all software documents, deliverables and artifacts that will be produced, manipulated and maintained during the development and maintenance of the software. CM control activities include revision and version control, process and workflow control, build control and change control. Performed using an integrated and automated configuration management tool for revision, version, build and change management. Periodic CM audit and status report is generated and analyzed by the management team.

Technical support and internal training Developers may require some technical support and training. Support technicians help the developers in solving technical problems that may arise while developing the software. These activities help improve the efficiency and productivity of the development and maintenance teams. A training plan can be devised as part of a project plan to deal with the training of technical staff on the development process, standards to be followed, or new tools and technologies that will be used.

Documentation Documents targeting different audiences are produced. internal and technical documents that are needed for future software maintenance activities. documents target external users and include user, installation and operations manuals. Standards and standard templates are used to guide the writing of these software related documents. Technical writers are normally involved with the production of the external documents. Documents are evaluated by internal review processes involving various stakeholders including software development team members and QA group.

Operations support and user training After installing the software, its operations is supported by providing customer help desk support, technical assistance, user training and consulting. Help desk request logs and fault report logs are maintained and appropriate metrics are generated. Fault reports are used to trigger the appropriate maintenance and process improvement activities.

Prototyped waterfall model Allows visualization of requirements Find out requirements errors earlier Better quality user interface Interactive with client / user Easy and quick to build prototype Prototype to throw away do not use it to continue building the software Use programming language other than the one to be used to develop the software Visual Basic

Object oriented model Object oriented Analysis Identification of problem domain objects, object attributes and methods (operations), object relationships: aggregation (composition), inheritance and communication, scenarios using sequences of interactions Design solution domain classes and interrelationships, entity, interface and control classes. Implementation use Java, C++, C# Use the Unified Modeling Language (UML)

Incremental and iterative model Prioritizing requirements Identify requirements for different releases Use a model to develop each release

Spiral model Introduced by Barry Boehm in 1988. Model addresses the weaknesses of the waterfall model with respect to the treatment of software development risks. Model embeds risk management activities within the development activities. Software risks and the lack of a clear and continuous risk management strategy are the main reason for software project failures. Continuous consideration of risks embedded within the software development process would contribute to enhancing the quality of software.

Spiral model (2) Each cycle in the spiral model involves the repeated execution of 4 steps at each phase Identification of objectives, alternatives and constraints that are relevant at that phase Evaluation and assessment of the alternatives with respect to constraints and identified potential risks Develop the phase deliverable by performing its activities, followed by a review of these deliverables. Preparation and planning for the following phase: may prescribe the partitioning of the remaining work into different sequential or parallel software increments, leading to concurrent spiral model execution of the remaining phases.

Software development and maintenance teams Possible team structures Functional Project Hybrid functional / project Each has its advantages and disadvantages

Software engineering standards

Unified Modeling Language (UML) Joint efforts by object-oriented methodologists De facto standard language for software modeling Visual language for modeling software systems from many aspects and views Modeling software structure, behavior and architecture