THE SOFTWARE DEVELOPMENT LIFE CYCLE *The following was adapted from Glencoe s Introduction to Computer Science Using Java



Similar documents
11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

Chapter 13: Program Development and Programming Languages

Module 7 Human Resources Management PMP Exam Questions

Appendix H Software Development Plan Template

Custom Web Development Guidelines

Chapter 13: Program Development and Programming Languages

Testing, What is it Good For? Absolutely Everything!

SECURE BACKUP SYSTEM DESKTOP AND MOBILE-PHONE SECURE BACKUP SYSTEM HOSTED ON A STORAGE CLOUD

Carnegie Mellon University Master of Science in Information Technology Software Engineering (MSIT-SE) MSIT Project (17-677) Approval Form

TO BUILD OR BUY BUSINESS SOFTWARE?

Accelerating software testing effectiveness using Agile methodologies..

Software Development. Topic 1 The Software Development Process

Outsourcing WordPress Development

HOW TO CREATE USEFUL SOFTWARE PROCESS DOCUMENTATION ABSTRACT

An elearning platform for distanced collaborative programming

Waterfall vs. Agile Methodology

The Value of Application Audits Douglas Welker

Software Development Phases

Development Methodologies Compared

Mobile Application. Development Life Cycle. A Definative Guide to Controlling your App Development

How To Design An Information System

Project Development & Software Design

SCORM Users Guide for Instructional Designers. Version 8

(Refer Slide Time: 3:21)

Android Based Mobile Gaming Based on Web Page Content Imagery

Sistemi ICT per il Business Networking

Bob Kibbee, Map & GIS Librarian, Olin Library, rk14@cornell.edu

Failing to research your options before purchasing.

Interactive Application Security Testing (IAST)

15 Principles of Project Management Success

Importance of Project Schedules. matter what happens on a project. projects, especially during the second half of projects

How$Spotify$builds$products$

Top 10 Tips for Successful Software Development Management

A Guide for Goal Setting and Employee Feedback

Useful Automated Software Testing Metrics

Finally, Article 4, Creating the Project Plan describes how to use your insight into project cost and schedule to create a complete project plan.

White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1

Power Tools for Pivotal Tracker

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1

Sign up for give away events. Because there is a single error, that means the likelihood of additional errors is even greater. A domain name should

(Refer Slide Time: 01:52)

HP ITSM best practices for HP OpenView Service Desk. HP Services

Application Security in the Software Development Lifecycle

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

The Importance of Defect Tracking in Software Development

EXPERIENTIAL LEARNING FOCUSED ON THE FUTURE

Structured Application Development

Project Roles and Responsibilities

Chapter 3, Project Organization and Communication

Critical analysis. Be more critical! More analysis needed! That s what my tutors say about my essays. I m not really sure what they mean.

Change Management Plan

What to base your Brand Portal on: SharePoint, custom build it or buy Brandworkz offthe shelf

CS3813 Performance Monitoring Project

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

Manual Tester s Guide to Automated Testing Contents

Developing a Project. Management System. Using Project Agency Template. Approach. - the Process and the Benefits

Custom Development Methodology Appendix

How To Model Software Development Life Cycle Models

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools

WHITE PAPER DEVELOPING A SUCCESSFUL WEBSITE RFP. Find the Right Web Development Partner through an Engaging and Informative RFP.

Lab 0 (Setting up your Development Environment) Week 1

Just FoodERP Whitepaper Series: BUYING VERSUS BUILDING SOFTWARE: A guide for food businesses that are experiencing growth

Chapter 8 Approaches to System Development

If you have questions, stop me and ask. I ll do my best to answer them.

Using Both Incremental and Iterative Development Dr. Alistair Cockburn, Humans and Technology

The Software Lifecycle. Software Lifecycles

Software Development: An Introduction

Effective strategies for managing SAS applications development Christopher A. Roper, Qualex Consulting Services, Inc., Apex, NC

Gild: An Integrated Learning and Development plug-in for Eclipse

SELECTING ECOMMERCE WEB HOSTING & SUPPORT

Encoding Text with a Small Alphabet

Introduction to Software Paradigms & Procedural Programming Paradigm

Getting Started with Kanban Paul Klipp

Making the Right Choice

Website Maintenance and Support Contracts in Yorkshire

Make Learning Fun with Programming

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

How to Outsource Without Being a Ninnyhammer

EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR

Using Karel with Eclipse

CONTENT MARKETING AND SEO

Assignment 2: Microsoft Project Toolset. Eric Palmer & Mahindra Bheodari. Kennesaw State University. IS 8100 Spring 2015

Customer Deliverable C0 Request for Proposals (RFP)

Activity Builder TP-1908-V02

Faster, Easier and Cheaper Software Development: Is It Possible?

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

1 INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN

Minnesota Health Insurance Exchange (MNHIX)

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Schedule A Support and Maintenance Agreement

TARGETPROCESS BURNDOWN CHARTS

UML basics: An introduction to the Unified Modeling Language

Software Development In the Cloud Cloud management and ALM

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

Five Steps to Getting Started with Contract Management

Kathy Au Billy Yi Fan Zhou Department of Electrical and Computer Engineering University of Toronto { kathy.au, billy.zhou }@utoronto.

App Project Worksheet

A Review of an MVC Framework based Software Development

Project Proposal: SAP Big Data Analytics on Mobile Usage Inferring age and gender of a person through his/her phone habits

Transcription:

THE SOFTWARE DEVELOPMENT LIFE CYCLE *The following was adapted from Glencoe s Introduction to Computer Science Using Java Developing software is a very involved process, and it often requires numerous programmers working in teams to create a product. A successful product is the result of a well-defined development process. How do you know if a product was successful? Was the product shipped on time? How difficult is it to maintain the product? Does the product do what it was intended to do? Is the client happy with the finished product? Was the project successful financially? Many software companies have established their own development processes. Most of them follow the same basic steps (search Google Images for other takes on the Software Development Life Cycle). We will use the steps: Analysis (What does the customer want? What are the user specifications?) Design (How will the program work? i.e. Flowcharts, UML diagrams, etc.) Implementation (Write the code) Testing and Documentation (Does it work the way it was supposed to? Add support files/instructions) Maintenance (Fix problems, add features as required) Image from: https://airbrake.io/blog/wpcontent/uploads/2013/07/development_life_cycle.gif As a new programmer, you are working with such small programs that you may question the need to follow all of these steps to produce a solid product. However, it is important that you develop good programming habits early. As your programs grow in complexity, you will be glad that you did.

ANALYSIS During this phase, you and the client define the product. Good communication skills are mandatory. Typically, the analysis of a problem involves listening to the client s needs, asking questions to clarify exactly what is needed, and producing a written document that describes exactly what the program will do. Some of the questions you should ask include: What is the budget for this project? Who will use this product? What should the product do? Is there other software that does this already? What are some good/bad things about the existing product? What hardware or software will this product be run on? Does the product need to meet certain performance or security measures? Are there specific interface requirements (colours, look, tone, etc.)? What is the deadline or launch date for the product? What is your detailed list of deliverables (what must be provided to the client when the project is finished)? Even if the client is you and your program is very simple, you should complete this phase. Your analysis may only require a sentence or two. More complex programs demand more extensive analysis (imagine the analysis documentation for the next version of an operating system).

DESIGN Designing the product involves a detailed examination of what it will take to accomplish the goals set forth in the Analysis phase. Here, you plan the project details and design your solution. The steps to organize the project include: Detailed list of deliverables (what you provide to the client when the project is finished) Project organization (responsibilities of each team on the project, how they will communicate, people responsible for each team) Technical choices (programming language, third-party tools required, version tracking, coding standards, testing processes) Quality assurance (test procedures, problem reporting and resolution) Schedule (major milestones, estimate of time required for deliverables) A programmer must consider the steps that are required in order for the computer to perform its task. It is important to know the order in which the statements will run, from the point at which the computer begins reading statements to the last statement that is executed. Programmers use flowcharts to help determine the steps of a program. A flowchart is like a map of the program. The series of steps plotted in a flowchart is called an algorithm. An algorithm is a specific set of steps that will always lead to a specific solution. We will discuss this in more detail.

IMPLEMENTATION In the implementation phase, you finally get to write the code. During this phase, you make the design into a program. When writing the code, try to break things down to the smallest units possible. Writing small code units makes it easier to test and debug, and also improves your code reusability. Over time, you will develop a library of common objects, or units of code. There is no fun or fortune in reinventing the wheel every time you sit down to write a program. Use meaningful names for methods and variables. Deciphering variable names when you have to maintain the code (months later) is never a good thing. Also, be sure to comment your code. It will help you and other programmers who have to work with your code. Many times, trying to explain a difficult section of code in comment form will help you think of a better way of writing the actual code. TESTING AND DOCUMENTATION The testing phase is a critical one. There is nothing more embarrassing than demonstrating a finished product to your client, only to have it crash during the demonstration. Proper testing is actually a continual process. Depending on the size of the project, your team may conduct individual testing of the component it is responsible for, before other teams integrate it. Once the individual components are tested, they must be tested in combination with the other components. Generally, a detailed plan for testing is required to ensure correct functionality of the product. This phase of the development cycle is generally an iterative one. As bugs are discovered, the program is cycled back to the implementation phase, and then retested. This cycle continues until all or most of the bugs are discovered and fixed. After testing is complete, supporting documentation is created. This may include printed or online instructions, describing how to manage or use the application. Documentation can also include technical information for the programmers who will maintain the application.

MAINTENANCE If you have done your job properly in the testing phase, deployment and maintenance will be much easier. Unfortunately, the reality is that most of the time developing a program is spent maintaining it after it is finished. Virtually no program ever written is 100% bug free. When bugs are detected and reported, you must figure out what is causing the problem and how to fix it. Again, if you have done your programming well (remember when you were supposed to comment your code?), maintenance will be much easier. You may also elect (or be asked by your client) to improve the original version of a program. *Note: This document was adapted from UNDERSTANDING THE CONCEPTS 1. What are the phases of the Software Development Life Cycle? 2. Which phase do you think is the most important and why? 3. How do you know if a product was successful? 4. In which phase of the cycle would you set a schedule for creating the product? 5. What are some important things to consider during the analysis phase? 6. Why is it important to provide users with documentation?