Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

ICT Class System Life Cycle.  Large systems development projects may involve dozens of people working over several months or even years, so they cannot.
Software Quality Assurance Plan
Lecture # 2 : Process Models
CS487 Software Engineering Omar Aldawud
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
Information Resources Management January 23, 2001.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,
Software Engineering 1. Software development – the grand view 2. Requirements engineering.
Alternate Software Development Methodologies
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
Program Flow Charting How to tackle the beginning stage a program design.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Connecting with Computer Science, 2e
Software Life Cycle Model
Introduction to Computer Technology
Your Interactive Guide to the Digital World Discovering Computers 2012.
The Software Development Cycle Defining and understanding the problem.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Extreme Programming Software Development Written by Sanjay Kumar.
PHASE 4 SYSTEMS IMPLEMENTATION Application Development SYSTEMS ANALYSIS & DESIGN.
1 Shawlands Academy Higher Computing Software Development Unit.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Chapter 2 The process Process, Methods, and Tools
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
Managing the development and purchase of information systems (Part 1)
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Quality Control Project Management Unit Credit Value : 4 Essential
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Systems Analysis and Design
Computers Are Your Future Tenth Edition Chapter 13: Systems Analysis & Design Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall1.
Systems Analysis and Design in a Changing World, Fourth Edition
Topics Covered Phase 1: Preliminary investigation Phase 1: Preliminary investigation Phase 2: Feasibility Study Phase 2: Feasibility Study Phase 3: System.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
The Software Development Process
Developed by Reneta Barneva, SUNY Fredonia The Process.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Program Development Cycle
Software Engineering Lecture # 1.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
CHAPTER ONE Problem Solving © Prepared By: Razif Razali1.
Software Development Life Cycle (SDLC)
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Modern Systems Analysis and Design Hoffer, George & Valacich Chapter 13 Finalizing Design Specifications Course: Physical System Design and Implementation.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Software Design and Development Development Methodoligies Computing Science.
MANAGEMENT INFORMATION SYSTEM
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 Testing.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Life Cycle “What happens in the ‘life’ of software”
CS701 SOFTWARE ENGINEERING
Maintaining software solutions
Software Life Cycle Models
Introduction to Software Engineering
Introduction to Problem Solving
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Information Systems Development (ISD) Systems Development Life Cycle
Presentation transcript:

Software Development Cycle

What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures enable the programs to adequately manipulate information Documents that describe the operation and use of the program Software engineering : A Practitioner's Approach Software engineering : A Practitioner's Approach

A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development, operation, and maintenance of software.

Who’s Who CUSTOMER Sponsors system development USER Uses system DEVELOPER Builds system Contractual obligation $$$, needs Software system Needs

What is the Software Life Cycle Software Engineering is a series of steps for producing software. Methods, procedures, and tools are defined. Engineering discipline Metrics and measures - prediction

Classic Life Cycle Models Linear sequential (Waterfall) Prototyping Rapid Application Development (RAD) Incremental (Block Release) Spiral Component Assembly Concurrent Development Fourth Generation techniques

Rapid Application Development (RAD) A good model for small VB systems The IDE is designed to allow us to develop the small system.

Waterfall Model REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING UNIT & INTE- GRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE

“Interactive” (Chaotic) Model REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN PROGRAM IMPLEMENTATION UNIT TESTING INTEGRATION TESTING SYSTEM TESTING DELIVERY MAINTENANCE

Waterfall with Prototyping REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING UNIT & INTE- GRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE PROTOTYPING Verify Validate

Prototyping Cycles LIST OF REVISIONS LIST OF REVISIONS LIST OF REVISIONS PROTOTYPE REQUIREMENTS PROTOTYPE DESIGN PROTOTYPE SYSTEM TEST DELIVERED SYSTEM REQUIREMENTS (sometimes informal or incomplete) revise prototype user/ customer review

Multiple Builds Development systems Production systems DEVELOPERS USERS Build Release 1 Use Release 1 Build Release 2 Use Release 2 Build Release 3 Use Release 3 Time

Spiral Model Start Axis Customer Communication Planning Risk Analysis Development Integration Customer Evaluation

Process Metrics Process Assessment Document review Document review Peer reviews: Peer reviews: completed vs scheduled results reported Problem report status Problem report status Product Quality Defect characteristics Defect characteristics Difficulty of accurate measurement Difficulty of accurate measurement

Let us Examine the Classic Waterfall Model Linear sequential model Tries to define each part of the cycle Very good method for developing large systems

Stage 1: Defining the problem What Happens in this Stage: To Identify and understand the problem you must look at the: Needs of Users and System Objectives that the solution is to meet Boundaries of solution Feasibility Study Design Specifications User RequirementsSystem Requirements Modelling System

The design specification helps you form the basis for the planning and designing the final solution. You will use this specification throughout the system development to help plan, build and test the final solution. The Design specifications give a workable framework to aid development of the system (and further understanding of the system). Stage 1: Design specification

A quote on the problem of ill-defined system requirements: "the creation of software requirements is reminiscent of hiking in a fog that is gradually lifting” Software Productivity Research Inc (1996) Software Productivity Research Inc (1996) Stage 1:

Stage 1: Design specifications You need to consider the specification for the USER and the System (Developer's) point of view. Developer: Overall design specifications User: Interface design specifications

Stage 1: Activity: Developer's perspective Algorithms, Algorithms, Variables Variables Software design approach Software design approach Modelling the system Modelling the system Documentation Documentation User's perspective Screen design Screen design Ergonomic issues Ergonomic issues Appropriate icons Appropriate icons Appropriate screen messages Appropriate screen messages Social and ethical issues Social and ethical issues Relevant data formats for display Relevant data formats for display

Stage 1: System Documentation: Modelling different aspects of the System Stage 1: System Documentation: Modelling different aspects of the System Modelling tools are part of the documentation to be interpreted by developers, maintainers and users, and are used to represent a system. They use diagrammatic methods and include:  Input Process Output (IPO) diagrams  System Flowcharts  Storyboards  Screen designs  Dataflow diagrams  Prototype

Stage 1: Questions: Stage 1: Questions: Q 1: What are the aims of the first stage of the development cycle? Q 2: Why is the problem specification so important in this stage? Q 3: Why are modelling tools used in this stage?

Stage 2: Planning and Design of Software Solution Documentation and Models developed in previous stage are used to give an overall view of system design and help in the development of data structures and logic necessary to fully develop each module.

Stage 2: Planning and Design of Software Solution What Happens in this Stage: The Planning stage consists of designing a solution. So in this stage you need to: 1: Identify all inputs, outputs and processes 2: Select and describe relevant Data Structures 3: Create the Algorithm for final solution.

Stage 2 : Use structured programming techniques of writing programs. You need to define your system's Data Structures and files You need to be able to recognize the logic in Standard Algorithms You need to test your algorithm Documentation tools used to represent the overall software solution in diagrammatic form Chose your programming language wisely

Stage 2 : Questions: Q 1: Which Documentation tools in the above table are used in "stage one" of the SDC to help you understand and "model" the new system. Q 2: Which Documentation tools in the above table are used in "stage two" of the SDC to help you Represent a Solution to the problem. Q 3: What is the different between customised and standard algorithms? Q 4: What information does a data dictionary hold? Q 5: What is the term used for the ‘computer software’ that the development team uses to help with analysis documentation and development? Q 6: Say the Planning stage is complete and the Programmer is about to start to code. Select any two of the Representation Tools below and describe how they both can complement each other to give the programmer a better description of the system Data dictionary, structure diagram, algorithm, IPO chart

Stage 3: Implementation of Software Solution What happens in this stage: Source code written and tested., Ensure effective user interface

Stage 3: Use tools and techniques that will help correct and detect errors. Understand the Type of errors : Syntax, Logic, Run-time Syntax, Logic, Run-time Consider the Hardware and software requirement of new software.

Stage 3: Questions Q 1: State one documentation prepared in this stage and describe why it is important AND who is it important for?

Stage 4: Testing and Evaluation of Software Solution What happens in this stage: Verify program solution using test data both at program and system level. Testing and Evaluation is integral to all stages. Test that the Systems original “System Requirements and Objectives” are being met. Are we doing the “RIGHT JOB?” Are we doing the “JOB RIGHT?”

Stage 4: Testing and Evaluation of Software Solution To ensure a quality product testing and evaluation is done. Quote: “definitions of software testing, however, boil down to essentially the same thing: software testing is the process of executing software in a controlled manner, in order to answer the question ”Does the software behave as specified?”.”

Stage 4: Questions Q 1: What is the result from stage one of the SDC that is used in this stage to help rest the solution?

Stage 5: Maintenance of Software Solution What happens in this stage: On-going process of corrections and refinement. Modifications to code, macro, and scripts are often required. These modifications do not need to be made by original developers. In these situations, the original documentation is very important. You need to keep in mind the ethical issues associated with assessing and modifying the code of others. For all Changes:  Test changes  Document changes Modify present documentation