Software Development CS 1 Rick Graziani Spring 2007 Definitions Software or Program Instructions that tell the computer what to do Programmer Someone who writes computer programs Rick Graziani graziani@cabrillo.edu 2 CPU Instruction Set Instruction Set 0001 0010 0011 0100 0101 0110 0111 1000 1001 Instruction Move Compare Bit test Bit clear Bit set Add See group 10 See groups 11, 13, 14 Move byte Instruction Set A vocabulary (list) of instructions which can be executed by the CPU • The only instructions the CPU can run or execute • Example of a CPU’s Instruction Set Rick Graziani graziani@cabrillo.edu 3 First Generation Languages (Machine Language) • Programming computers using the CPU’s instruction set • Also known as Machine Language Machine Code File A software file which contains the instructions from the CPU’s instruction set. Rick Graziani graziani@cabrillo.edu 4 First Generation Languages (Machine Language) Advantages of First Gen. • Software programs execute (run) relatively very quickly • Software programs are relatively small in size • (Insignificant advantages today) Disadvantages of First Gen. • Difficult to write, very detailed and takes a long time • Difficult to read • Difficult to debug debug = the process to find mistakes in a software program Rick Graziani graziani@cabrillo.edu 5 Second Generation Languages (Assembly Language) Instruction Set 0001 0010 0011 0100 0101 0110 0111 1000 1001 Instruction Move Compare Bit test Bit clear Bit set Add See group 10 See groups 11, 13, 14 Move byte Assembly Language = The English-like instructions which are equivalent to the CPU’s instruction set Source Code= The actual instructions written by a programmer Compiler = Software which translates source code instructions of a particular language into machine code Rick Graziani graziani@cabrillo.edu 6 Second Generation Languages (Assembly Language) Question: Which of these two files (source code file or machine code file) will the user need to run this software program? Advantages of Second Gen. • Easier to read than first gen. • Easier to write than first gen. • Easier to debug than first gen. Disadvantages of Second Gen. • Still very difficult to write programs Rick Graziani graziani@cabrillo.edu 7 Using a compiler Rick Graziani graziani@cabrillo.edu 8 Third Generation Languages (High level languages) Languages which are somewhere between machine language and the human language. FORTRAN (Formula Translation) - 1950's Language to allow scientists and engineers to program computers. COBOL (Common Business Oriented Language) - 1960 Language primarily designed for US government and defense contractors to program business applications on the computer. Grace Hopper was one of the developers of COBOL. BASIC (Beginner's All-purpose Symbolic Code) - 1960's Alternative language to FORTRAN for beginning programming students. Rick Graziani graziani@cabrillo.edu 9 Third Generation Languages (High level languages) Pascal (named after Blaise Pascal, 17th century French mathematician) 1970's Language to teach proper structured programming. Structured programming = Programming technique used to make programming more productive and easier to write. Stresses simplistic, modular programs. ADA (named after Ada Lovelace (programmed the 19th century 'analytical engine') - late 1970's Language developed to replace COBOL. Rick Graziani graziani@cabrillo.edu 10 Third Generation Languages (High level languages) C (successor to BCPL or "B") - 1970's Popular programming language on computers from microcomputers to super computers. Faster and more efficient language. Very powerful language. Source code example of a C Program (Displays Hello World! on the screen.) #include <stdio.h> main() { printf("Hello World!"); } C++ (pronounced "C plus plus") - 1980's Object oriented language which is compatible with C. Rick Graziani graziani@cabrillo.edu 11 Third Generation Languages (High level languages) Advantages • Easier to read, write and debug • Faster creation of programs Disadvantages • Still not a tool for the average user to create software programs • Requires very good knowledge of programming and of the language Rick Graziani graziani@cabrillo.edu 12 Third Generation Languages (High level languages) Advantages • Easier to read, write and debug • Faster creation of programs Disadvantages • Still not a tool for the average user to create software programs • Requires very good knowledge of programming and of the language Rick Graziani graziani@cabrillo.edu 13 Writing a Software Program Steps in writing a software program 1. Hardware (CPU) 2. Operating System 3. Programming Language 4. Brand of Compiler 5. Writing the Program Rick Graziani graziani@cabrillo.edu 14 Writing a Software Program Task Write a program to convert binary numbers to decimal and decimal numbers to binary Rick Graziani graziani@cabrillo.edu 15 Writing a Software Program 1. Determine what kind of computer you want your program to run on Macintosh? Windows PC? Mainframe? Rick Graziani graziani@cabrillo.edu 16 Writing a Software Program 2. Determine which operating system this computer (and the user) will be using Windows XP? Mac OSX? Linux? Rick Graziani graziani@cabrillo.edu 17 Writing a Software Program 3. Determine which language you will be programming in. C? C++? Java? • C++ Rick Graziani graziani@cabrillo.edu 18 Writing a Software Program 4. Determine the compiler for your language, operating system and hardware Microsoft Visual C++? Borland C++? Watkins C++? • Microsoft Visual C++ Rick Graziani graziani@cabrillo.edu 19 Writing a Software Program 5. Write the program Rick Graziani graziani@cabrillo.edu 20 Writing a Software Program Compile the program into a machine code file and distribute it to the users via floppy diskette. Rick Graziani graziani@cabrillo.edu 21 Fourth Generation Languages Languages which are more like natural human languages • uses English phrases • common with data base languages search for name equals “graziani” and state equals “ca” Examples dBase FoxPro Access Oracle Informix SQL Rick Graziani graziani@cabrillo.edu 22 Fourth Generation Languages Advantages • Average users can quickly learn to “query” the database • Average users can easily learn how to write programs • Programs are written faster Disadvantages • Can not write sophisticate programs like word processors, graphics, etc. • Mostly for data base applications like phone information. Rick Graziani graziani@cabrillo.edu 23 The Year 2000 What is the big deal? Older computer systems • limited RAM memory • limited disk storage • slower processors (CPUs) The YEAR was stored using two bytes instead of four bytes, in order to save bytes in RAM and storage • 67 instead of 1967 Rick Graziani graziani@cabrillo.edu 24 The Year 2000 What is the big deal? Example: • 500,000 records Save 1 million bytes 500,000 x 4 bytes (19xx) = 2 million bytes 500,000 x 2 bytes (xx) = 1 million bytes • less storage on disk • less RAM memory needed • faster processing Rick Graziani graziani@cabrillo.edu 25 The Year 2000 What is the big deal? Problem The year 2000 will be “00” or looked at by the computers as the year “1900” Will cause miscalculations for everything from pension funds to horoscopes. Rick Graziani graziani@cabrillo.edu 26 Databases and Relationships Relationships • • • One-to-One One-to-Many Many-to-Many Rick Graziani graziani@cabrillo.edu 28 One-to-One Relationships Rick Graziani graziani@cabrillo.edu 29 One-to-Many Relationships Rick Graziani graziani@cabrillo.edu 30 One-to-Many Relationships Rick Graziani graziani@cabrillo.edu 31 Many-to-Many Relationships (Not recommended) Rick Graziani graziani@cabrillo.edu 32 Software Development CS 1 Rick Graziani Spring 2007