The Software Development Cycle

Slides:



Advertisements
Similar presentations
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Advertisements

1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
CHAPTER 19 Building Software.
Introduction to Computers and 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
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.
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.
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 Design and Development Development Methodoligies Computing Science.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development.
ICS 3UI - Introduction to Computer Science
Component 1.6.
ME 142 Engineering Computation I
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
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
The Software Development Cycle
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
Software Processes.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
MBI 630: Systems Analysis and Design
Unit# 9: Computer Program Development
Introduction to Computer Programming
PROGRAMMING METHODOLOGY
Introduction to Systems Analysis and Design
Chapter 1 Introduction(1.1)
Chapter 2- Visual Basic Schneider
Understand the Programming Process
Lesson 1 Understanding Software Quality Assurance
Algorithm and Ambiguity
Software Development Process
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
ICT Gaming Lesson 2.
Software Requirement and Specification
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.
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 This is the least creative stage of the life cycle.

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.