software fundamentals

21
Software Development Fundamentals Susan Winters

Upload: susan-winters

Post on 22-Jan-2017

229 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Software fundamentals

Software Development Fundamentals

Susan Winters

Page 2: Software fundamentals

Software Development

Application Life-Cycle Management Application Specifications Computer Storage Data Structures Algorithms Decision Making Repetition

Page 3: Software fundamentals

Application Life-Cycle Development

Envision – I want a program that will do this and that Requirements – This is what the program must do and include; document it! Design – site architecture – story boards – dictate the flow - mockups Development – coders writes out technical specs – what technologies will be used,

etc. Test – “unit testing” – test code snippets. “Full testing” – does the program do what its

supposed to do? UAT – User Acceptance Testing – users play with software to test if it works for users. User friendly?

Deploy – move from development to production – out to the public Maintain – fixing bugs found after launch. “patches”, enhancements, etc.

Page 4: Software fundamentals

Computer Storage & Processing

Understanding computer storage helps you understand why we use data types and why there are restrictions on those data types.

Computers deal with BINARY concepts (off/on) Bit 0 or 1 (off/on) Bytes - groups of bits Computer Memory – we can only load a finite amount of

data into the computer at one time. ASCII chart – a way to represent special characters in

binary

Page 5: Software fundamentals

How the computer understands code

Programming Languages allow you to write your programs in an English style syntax to represent data and instructions that is then compiled and exports that code into a binary version of instructions that the computer understands.

Don’t worry about how the compiler takes care of this translation. Specific computer platforms have specific processing sets so inside the CPU the

computer will know how to process the instructions. Instruction sets and compilers

Page 6: Software fundamentals

Variables

Provides a temporary, named storage location in memory that you’ll refer to in your code to access the data in storage

Name Storage locations that we refer to in our code that will be mapped to these memory locations

You can change the values assigned to the variable Variables are just holders of data you want to store in

memory and can access later when needed.

Page 7: Software fundamentals

Constants

Constants like variables hold in memory data that you can retrieve later however you can not change the value of them.

Example: _______________ (list price) x 8.25% (sales tax) = ______________ (total price)

A programmer can put the tax rate into a program and do calculations based on the other variables in the calculation but the tax rate is never changed while the program is running. It remains constant.

Page 8: Software fundamentals

Data Types

Data Type Range Descriptionbyte 0 to 255 A single byte (8 bits)char Any Unicode character Characters used in most languages

in the worldshort -32,768 to 32,767 Signed integer valuesint -2,147,483,648 to

2,147,483,647Larger signed integer values

long 9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

Even larger signed integer values

float +/- 1.5 x 10-45 to +/- -3.4 x 1038

Floating point signed values

double +/- 5.0e-324 to +/- 1.7e308 Large floating point signed valuesstring String of characters Words, sentences, phrases, etc.boolean True or False Represents true or false, 1 or 0

Page 9: Software fundamentals

Data Structure Types

Arrays Stacks Queues Dictionaries

- Data structures are represented by a variable

Page 10: Software fundamentals

Arrays

An array is a group / collection of similar data types. Arrays are designed to store the same data type A collection of string values or a collection of number values Random access data structure Accessed thru indexes; Access any value in any order by using the index value. Index numbers starts with Zero not One! In the photo above you see a collection of brick toys.

Some bricks are the same color, some have the same number of pegs – but they are all the same type of toy so they can be placed in an array. (abstract)

Imagine each brick had its own serial number You could pick out a specific individual brick by its serial number (ie. Index number assigned by

a programmer).

Page 11: Software fundamentals

Stacks

A collection of objects, accessed by pop and push. To the right you see a stack of books.

You “push” a book down on top of the stack of existing books. To get a book, you must “pop” the books off of the stack one at a time starting with the one on top. First in, Last out

Page 12: Software fundamentals

Queue

A collection of objects, accessed by queuing and de-queuing.

Similar to people standing in line. You add another person to the que (line) with “en-queue”

and you get a person out of line (the person in the first position) with “de-queue”

Each object (person) in the collection (line) is processed in the order in which they got into the collection (line).

First in, First out.

Page 13: Software fundamentals

Dictionary

Key ValueKey1 First itemKey2 Second itemKey3 Third item

A collection of objects that are accessed by using a key.

Looks similar to an array.

Key ValuefirstName SusanlastName WinterseyeColor hazel

Page 14: Software fundamentals

Algorithms

A set of instructions – a solution to a problem

They can be “recipes”, mathematical calculations or other formulas

Think logically of how to solve a problem / accomplish a goal

Visualize your algorithms in a flow chart before you start coding so that you can catch “bugs” in your code.

Page 15: Software fundamentals

Decision Structures

Your code will always be asking questions Is x > y? (mathematical yes or no) Is eyColor = “hazel”? (exact match) Which color is most desirable?

Red, Orange or Blue? (select one)

If, if-else, if-else-if Switch or Select Case You can change the flow of your program code

based on the outcome of a decision structure.

X

Red Blue

Color?

Y>

Orange

Page 16: Software fundamentals

Repetition

Keep doing something – until I tell you to stop. For loops While loops Do-while loops Recursion

Use a counter – (“i” or other variable name) to represent the number of times your code has looped.)

An “infinite loop” is one that never ends. Don’t do that! You’ll eventually run out of memory and crash the application and the computer will quit processing.

Page 17: Software fundamentals

For Loops

for(int myCounter = 0; myCounter < 10; myCounter++) { //do something }

For each value in this range that I’m working with – do something; Check to see if the number of times I’ve done something is less than 10;Add 1 to the counter after each time something has been done.

(“in this range” is 10 in this scenario – This is the condition you are checking).

Page 18: Software fundamentals

While Loops

while (myCounter < 10) { //do something console.write(“Counter is at” + myCounter); // increment the counter here myCounter++; }

While my condition is true – do something; Then increment my counter.

(“my condition” in this scenario is the counter being less than 10).

Page 19: Software fundamentals

Do-While Loops

myCounter = 1;do { //something console.write(“hello”); // increment the counter here myCounter++; }while (myCounter < 5);

Do this – (at least once) and then increment myCounter.

Then keep doing it while myCounter < 5.

(“my condition” to continuing to do something after the first time - in this scenario - is the myCounter being less than 5).

Page 20: Software fundamentals

Recursive

long value = Factorial(5);console.writeLine(value);

static long Factorial(int x) { if (z ==0) {return 1;} return z * Factorial(z – 1)

Factorial means – I’m going to take a range of values and multiply them together. You tell the Factorial function what the highest number in the range is (in this scenario it’s 5).

So your answer would be 1 x 2 x 3 x 4 x 5 = 120

Page 21: Software fundamentals

This information can be used to help you pass the Microsoft Exam 98-361

Susan Winters