1 of 23

CHAPTER 1

The Phases of Software Development

NOTE: The material in this presentation is a compilation from the Zybook of “Principles of Data Structure”, the book “Data Structures and other objects using C++” by Michael Main and Walter Savitvch, and original content from your professor.

By Prof. Rafael Orta, M.S.

2 of 23

Agenda

NOTE: The material in this presentation is a compilation from the Zybook of “Principles of Data Structure”, the book “Data Structures and other objects using C++” by Michael Main and Walter Savitvch, and original material from your professor.

  • Data vs. Information
  • Planning, Analysis, Design, Implementation, Testing & Integration, Maintenance.
  • Running time Analysis.
  • Testing and Debugging.

3 of 23

4 of 23

5 of 23

6 of 23

7 of 23

Planning, Analysis, Design, Implementation, Testing & Integration, Maintenance.

  • Data Structures are organized collections of data.

  • The SDLC phases occur in all software.

  • Some of the phases can be combines and sometimes they do not execute in the order you see on the right (ex. Agile Development).

  • Most of the work does not depend on a particular programming language.

  • We will be using C++ in this class, you should should be aquainted with it, and top down design. There are resources in the professor website to help you get familiar with.

8 of 23

Few Concepts

  • Algorithms: Set of instructions for solving a problem.

  • Pseudocode: Mix of English and a programming language used to write algorytms. It’s objective is to improve clarity.

  • Top Down: Breaking a problem into smaller problems or subtasks and then those subtasks into even smaller subtasks and so forth. Eventually the subtasks become so small that the implementation is trivial in a computer language.

  • Functions, methods or procedures: It is the implementation of the sub-tasks mentioned above, it is a group of programming sentences (code), that provides a particular functionality part of a larger program.

9 of 23

SPECIFICATIONS

It is the “Precise description of the problem”

10 of 23

Formulation of steps to solve a problem, generally written in English and / or pseudocode

Considerations to keep in mind during the design:

  • Potential for code re-use (Functions / Claases)
    • Information hiding
      • Pre-conditions
      • Post-conditions

  • Posibility of future changes to the program

11 of 23

It is the process that transforms the design into a program.

12 of 23

Live Demo

(Use of functions)

13 of 23

On what phase of the SDLC you need to select a programming language?.

14 of 23

15 of 23

A/ Implementation

16 of 23

17 of 23

Runing time analysis

How many steps there are to the bottom?.

1.- Walk down and keep a tally:

Make a mark in paper for each step and come

back up.

2689 steps down and 2689 steps up, 2689 marks, 3x2689 or 3n

2.- Walk down but let your friend keep the tally:

You go back up to report one more step.

3,616,705 Downwards, 3,616,705 upwards, 2689 marks =

7,236,099 operations = n+2(1 + 2 + …. + n) = n ̂ 2 + 2n

3.- Ask a friend to read the sign at the bottom.

Only 4 marks = 4 operations, one for each digit of 2689.

NOTICE: You do not messure the time but the number of operations

18 of 23

19 of 23

Introduction to Big O Notation

Notation used to help identify the time complexity (effectiveness / performance) of an algorithm while comparing it to other, helps to abstract the equations shown previosly.

O(n) O(2n) O(2n+2)

20 of 23

21 of 23

22 of 23

23 of 23