The Software Development Cycle

Slides:



Advertisements
Similar presentations
Unit Five – Transforming Organizations
Advertisements

CHAPTER 19 Building Software.
Introduction to Computers and Programming
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Software Development Concepts ITEC Software Development Software Development refers to all that is involved between the conception of the desired.
6 Steps of the Programming Process
Technology in Action Chapter 10 Behind the Scenes: Software Programming Copyright © 2014 Pearson Education, Inc. Publishing as Prentice Hall.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Programming Lifecycle
Program Development Life Cycle (PDLC)
 Once the system has been installed it will be monitored to check whether it is working correctly. Sometimes problems with a system will not be found.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
Practice and Evaluation. Practice Develop a java class called: SumCalculator.java which computes a sum of all integer from 1 to 100 and displays the result.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
2. Program Development Intro Programming in C++ Computer Science Dept Va Tech August 2001 ©2001 Barnette ND & McQuain WD 1 Top-Down Design:A solution method.
1 Program Planning and Design Important stages before actual program is written.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Program Development Cycle
How to Program? -- Part 1 Part 1: Problem Solving –Analyze a problem –Decide what steps need to be taken to solve it. –Take into consideration any special.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
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.
Chapter 1 The Phases of Software Development. Software Development Phases ● Specification of the task ● Design of a solution ● Implementation of solution.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
 Programming methodology: ◦ is a process of developing programs that involves strategically dividing important tasks into functions to be utilized by.
Software Development.
ICS 3UI - Introduction to Computer Science
Component 1.6.
ME 142 Engineering Computation I
Data Types Variables are used in programs to store items of data e.g a name, a high score, an exam mark. The data stored in a variable is entered from.
C++ Plus Data Structures
Transforming Organizations
Algorithm and Ambiguity
Chapter 6: Design of Expert Systems
Lecture 2 Introduction to Programming
Programming Problem steps must be able to be fully & unambiguously described Problem types; Can be clearly described Cannot be clearly described (e.g.
Object oriented system development life cycle
Software Life Cycle Models
Algorithm and Ambiguity
Understand the Programming Process
MBI 630: Systems Analysis and Design
Unit# 9: Computer Program Development
Introduction to Computer Programming
PROGRAMMING METHODOLOGY
Chapter 2- Visual Basic Schneider
Chapter 1 Introduction(1.1)
Chapter 2- Visual Basic Schneider
Understand the Programming Process
Lesson 1 Understanding Software Quality Assurance
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Algorithm and Ambiguity
Software Development Process
ICT Gaming Lesson 2.
Learning Intention I will learn about the different types of programming errors.
Basic Concepts of Algorithm
SOFTWARE DEVELOPMENT LIFE CYCLE
Review of Previous Lesson
King Saud University College of Engineering IE – 462: “Industrial Information Systems” Fall – 2018 (1st Sem H) Chapter 2 Information System.
The Software Development Cycle
Presentation transcript:

The Software Development Cycle

Software Engineering The study of designing, developing, and maintaining software Margaret Hamilton, a computer scientist who helped develop the on-board flight software for the Apollo space program, coined the phrase “software engineering.” Her code prevented an abort of a moon landing! The software engineer oversees the life cycle of software development: initiation of the project, analysis of the specification, and design of the program, as well as implementation, testing, and maintenance of the final project.

Software Development Models Prototyping Incremental Development Rapid Application Development Agile Software Development Waterfall Model There isn’t one correct way to design a computer program. How you write the program depends on the application.

Prototyping An application of a final system is built, tested, and reworked until it is acceptable. The complete system is then developed from the prototype.

Incremental Development The software is designed, implemented, and tested a little bit at a time until the product is finished.

Rapid Application Development The user is actively involved in the evaluation of the product and modifications are made immediately as the problems are found. Radical changes in the system are likely at any moment in the process.

Agile Software Development The developers offer frequent releases of the software to the customer and new requirements are generated by the users. Short development cycles are common in this type of development

Waterfall Model The process of development is sequential and flows downward like a waterfall. Steps include: Conception Initiation Analysis Design Construction Testing Implementation Maintenance The waterfall model of software development came about in the 1960’s in order to bring structure and efficiency into the process of creating large programs. So what’s the best model? It depends on the situation. It varies from problem to problem, situation to situation, and even company to company. You should view the models of software engineering as tools in a toolbox in which the techniques that you apply depends on the project you are working on.

Program Specifications Delivered from the design team; not written by the programmer Descriptions of program should indicated What it will look like How it should operate What it should accomplish The specifications are written description of the project. Typically the specs are based on the customer’s requirements. The first step in writing a program is to analyze the specifications, make sure you understand them, and clarify with the customer or the design team anything that is unclear. Great programmers have good communication skills so they can talk back and forth with the person who writes the specs to clarify any questions they may have.

Program Design Detailed plan for solving problem outlined in specifications Includes: Objects that will be used in the solution Data structures that will implement them Detailed list of tasks to be performed by the program A good design provides a fairly detailed overall plan at a glance, without including the Java code.

Program Implementation Coding

Testing & Debugging Test Data Typical values in each part of a domain of the program Types of Errors (Bugs) Compile-term error Run-time error Intent or Logic error Robustness Doesn’t give inaccurate answers for some input data Doesn’t crash if the input data are invalid Doesn’t allow execution to proceed if invalid data are entered Compile-time error: compiler is unable to translate the program into bytecode and prints an appropriate error message. A syntax error is a compile-time error caused by violating the rules of the programming language. Run-time error occurs during execution of the program. The Java run-time environment throws an exception which means that it stops execution and prints an error message. Typical causes of run-time errors include attempting to divide an integer by zero. Intent or logic error is one that fails to carry out the specification of the program.

Program Maintenance Upgrading the code as circumstances change Adding new features Because new people will be added to projects, original programs must have clear and precise documentation.