lecture 10 software development
DESCRIPTION
TRANSCRIPT
Computer Science Department
Computer Fundamentals
Lecture 10
Software Programming
and Development
Computer Science Department
Creating Computer Programs
Computer Science Department
What Is a Computer Program?
• Computer programs– Also called software– Are a list of instructions– Instructions are called code– CPU performs the instructions– Three types
• Operating system• Utility• Application
Computer Science Department
Software Is Stored In Many FilesDynamic link libraries– Partial executable file
– Used to support executable files
– Have .dll extensions
Help files– Contain information about the software
– Information is indexed and searchable
– Provides an online manual
– Have a .chm or .hlp extension
Executable files– Contain the instructions for the
CPU
– Have extensions of .exe, or .com
Initialization files– Contain configuration settings for software
– Have a .ini extension
– Modern programs use the registry
Batch files– Used to automate tasks
– Hold a series of OS commands
– Have a .bat extension
Computer Science Department
Hardware/Software Interaction• Program execution
– Software executes at the CPU level– Code to play a sound
• Code generates an interrupt
• CPU tells the sound card to play
• Sound card plays the file
– Programmer creates the code
• Code– Statements written in a programming language– Writing code can be tedious
• Code must be perfect
• Order of steps must be exact
– Writing code is quite exciting• Problems are solved
• New ideas are formed
Computer Science Department
Hardware/Software Interaction• Machine code
– Recall that computers think in binary– Code is translated into machine code
• CPU executes the machine code
– CPUs have a unique machine code
• Programming languages– Simplifies the writing of code
• English is used to describe the binary
– Original code is called source code– Several hundred languages exist
• Compilers and interpreters– Converts source code into binary
• Allows code to execute
– Checks source code for correctness
Computer Science Department
Hardware/Software Interaction• Compiler
– Creates an executable file• Contents are called object code
– Executable can run on its own– Each language has its own compiler– C++ and Java are compiled languages
• Interpreter– Runs program one line at a time– More flexible than compilers– Slower than compilers– Always needed to execute program– Visual Basic and Perl are interpreted
Computer Science Department
Planning a Computer Program• Plans
– The steps to solve a problem– Describe the expected results– Programming without a plan is difficult
• Pseudo code– Natural language statements that resemble code– Describes what must be done– Can be written by non programmers– Programmers develop unique versions
Computer Science Department
Planning a Computer Program• Input-processing-output (IPO) charts
– Determines what is needed– Input column
• Data inputted by the user
– Processing column• Pseudo code describing the problem solution
– Output column• Desired output from the program
Computer Science Department
How Programs Solve Problems• Program control flow
– Order program statements are executed– Typically executed in order– Constructs can change the flow
• Decision statements
• Loops
• Algorithm– Set of steps– Always leads to a solution– Steps are always the same– Flowcharts can describe algorithms
• Structured tool for drawing algorithms
– Algorithms appear in all programs
Computer Science Department
How Programs Solve Problems• Heuristic
– Set of steps– Solution is usually found– Solution may not be optimal– Used when algorithms fail
• Algorithm is nonexistent or too complex
– Appear in more complex applications• Data mining• Anti-virus software
Computer Science Department
Structured Programming• Building programs out of small modules
• Creates easy to read code
• Programs are efficient and run fast
• Programming using defined structures– Several defined structures
Computer Science Department
Structured Programming• Sequence structure
– Describes the flow of the program– Typically executed in order– Branching statements allow multiple flows
• Selection statement– Also called conditional statement– Performs a true or false test– Determines which code to execute next
• Repetition statements– Also called looping structures– Repeats a section of code– Until an exit condition is reached
Computer Science Department
Object Oriented Programming• Also known as OOP
• Enhances structured programming
• Intuitive method of programming
Computer Science Department
Object Oriented Programming• Code reuse
– Code used in many projects– Speeds up program development– Simplifies program development
• Develops objects– All real world items are objects– Contains data about the item– Contains functionality– Object encapsulates both into one package
Computer Science Department
Programming Languages
Computer Science Department
Programming Languages• Used to generate source code
• Avoids using machine code
• Have strict rules of syntax– Symbols and punctuation have meaning– Spelling must be exact
• Code is converted into machine language
Computer Science Department
Language Categories• First generation language
– Machine languages– Written in binary– Different for every CPU
• Second generation languages– Assembly languages– Statements that represent machine code– Code converted by an assembler– Still used to optimize video games
Computer Science Department
Language Categories• Third generation languages (3GL)
– First higher level language– Supports structured and OOP
• Code is reusable
• Code is portable
– Typically written in an IDE– C/C++ creates games and applications– Java creates web applets– ActiveX creates Web and Windows applets
• Fourth generation languages (4GL)– Easier to use than 3GL– Coded in a visual IDE– Tools reduce the amount of code– Object oriented programming– Microsoft Visual Studio and Dream Weaver are 4GL IDE
Computer Science Department
Web Development Languages• Hyper Text Markup Language (HTML)
– Basis of all web pages– Defines web structure using tags– Easy to learn and use– Created with a text editor
• Extensible Markup Language (XML)– Stores data in a readable format– Looks like HTML– Allows developers to create tags– Depends on HTML for formatting
• Extensible HTML (XHTML)– Newer version of HTML– Stricter rules– Based on XML rules
Computer Science Department
Web Development Languages• Extensible Style Sheet Language (XSL)
– Format and displays XML documents– Rules that dictate formatting– Create a standard web page
• Extensible HTML Mobile Profile (XHTML MP)– Initially Wireless Markup Language (WML)– Creates pages viewable on a handheld
• Cascading Style Sheets (CSS)– Format HTML, XHTML and XSL– Applies consistent formatting to all pages
Computer Science Department
Web Development Languages• Web authoring environments
– Reduces tedium for creating pages– Tools that simplify web site creation– Macromedia Dream weaver
• Simplifies large sites• CSS support is exceptional
– Microsoft FrontPage simplifies large sites– Macromedia Flash creates web animations
Computer Science Department
Web Development Languages• Scripting languages
– Create dynamic web pages• Change based on user input
– HTML can create static pages– Page is generated as needed
• JavaScript– Developed by Netscape– Works inside of HTML– Page verification and simple animation– Based on Java
Computer Science Department
Web Development Languages• Active Server Pages (ASP)
– Developed by Microsoft– Classic ASP was based on Visual Basic (Script)– Current version is ASP.NET that supports all .NET languages– Good at connecting to Microsoft databases– Runs only on Microsoft servers
• Practical Extraction and Reporting Language (Perl)– Old UNIX language– Found on all Windows and Linux servers– Excellent web scripting language
• Hypertext Pre-Processor (PHP)– Especially good at connecting to MySQL– Very popular language– Runs on UNIX and Windows
Computer Science Department
Systems Development Life Cycle
Computer Science Department
Systems Development Life Cycle• Software Development Life Cycle (SDLC)
• Organized way to build programs
• Consists of five phases
Computer Science Department
Systems Development Life Cycle• Phase 1: Needs Analysis
– Users identify a need– Need is clearly defined using tools
• Phase 2: Systems design– Solution to the need is defined– Many tools are used– Prototypes of the solution are built
• Phase 3: Development– Solution to the problem is built– Programmers write the solution– Technical writers document the process– Solution is continually tested
Computer Science Department
Systems Development Life Cycle• Phase 4: Implementation
– The solution is installed– Users are converted to the new system– Trainers are important in this phase
• Phase 5: Maintenance– IT professionals monitor the product– Bugs are found and fixed– New features are added