Presentation on theme: "10-1. Systems Analysis & Programming 10.1 Systems Development 10.2 Programming: A Five-Step Procedure 10.3 5 Generations of Programming Languages 10.4."— Presentation transcript:
10-3 Systems Development Organizations can make mistakes, and big organizations can make really big mistakes Murphys Law: Whatever can go wrong, will go wrong, and at the worst possible time A system A collection of related components that interact to perform a task in order to accomplish a goal Systems Development 6-phase process of gathering information about system requirements and using that to develop a new system that improves productivity Warning! Road Out!
10-4 Systems Development The three kinds of users of a project are: Users The new system must ALWAYS be developed in consultation with the people who will be using the completed system Management Managers within an organization should be consulted about the system, as they control the budget and resources Technical staff The Information Systems or IT staff must be involved so they can make sure the technology is there
10-5 Systems Development Systems Analyst An information specialist who performs systems analysis, design, and implementation His or her job is to study the information and communications needs of an organization and determine what changes are needed to deliver better information to the people who need it
10-6 Systems Development The 6 phases of systems analysis & design are: 1. Preliminary investigation 2. Systems analysis 3. Systems design 4. Systems development 5. Systems implementation 6. Systems maintenance Information systems are frequently revised and upgraded Steps in the cycle often overlap
10-7 Systems Development Phase 1: Conduct a preliminary investigation Conduct a preliminary analysis Propose alternative solutions Interview people within the organization Study what competitors are doing Decide to leave the system as is, improve it, or develop a new system Describe costs and benefits Submit a preliminary plan with recommendations This should be a written report Get management approvals for next phase
10-8 Systems Development Phase 2: Analyze the system Gather data Interview employees and managers Develop, distribute, analyze questionnaires Review current written documents Observe people and processes at work Analyze the data Use system modeling tools, such as CASE tools Create a data flow diagram to show how data flows through the system Write a report and get approvals for next phase Document how the current system works Document problems with the current system Describe the requirements for the new system
10-9 Systems Development Phase 3: Design the system Notice that you dont design the new system until you have done phase 2 since that establishes the requirements it must meet! Do a preliminary design Often involves prototyping Do a detail design, showing: Input requirements Output requirements Storage requirements Processing requirements System controls Backup Write a report and get approvals for next phase
10-10 Systems Development Phase 4: Develop the system Develop or acquire the software Acquire and integrate the hardware Test the system Unit testing Systems testing with both analysts and end-users End-user testing is critical, as they dont know the software and will show the developers where they forgot something
10-11 Systems Development Phase 5: Implement the system Choose a strategy to convert to the new system Direct implementation Parallel implementation Phased implementation Pilot implementation Train the users Document the system Give classes or train the trainers
10-12 Systems Development Phase 6: Maintain the system Perform periodic evaluations Make changes to the system based on new conditions Document those changes
10-13 Programming: A Five-Step Procedure A program is a list of instructions that the computer must follow to process data into information The five steps are 1. Clarify/define the problem a. Clarify the program objectives & users b. Clarify outputs c. Clarify inputs d. Clarify processing tasks e. Study the feasibility of the program f. Document the analysis 2. Design the program 3. Code the program 4. Test the program 5. Document and maintain the program
10-14 Programming: A Five-Step Procedure Step 2: Design the program Create an algorithm or set of steps to solve the problem Traditional structured programming approach Determine program logic using top-down approach & modules Design details using pseudocode or flow charts Alternative object-oriented approach Use Use Case approach to determine program objects, object inheritance, and actions or functions each object can perform Identify major program components and organize related functions and associated data into object classes This is the approach used by object-oriented languages such as Java, C#, Lisp, Visual Basic, and C++ For more information on object-oriented programming, visit or
10-15 Programming: A Five-Step Procedure A hierarchy chart
10-16 Programming: A Five-Step Procedure Panel Pseudocode START DO WHILE (SO LONG AS) THERE ARE RECORDS Read a customer billing account record IF todays date is greater than 30 days from date of last customer payment Calculate total amount due Calculate 5% interest on amount due Add interest to total amount due to calculate Grand total Print on invoice overdue amount ELSE Calculate total amount due ENDIF Print out invoice END DO END
10-17 Programming: A Five-Step Procedure PANEL Example of a program flowchart and explanation of flowchart symbols This example represents a flowchart for a payroll program.
10-18 Programming: A Five-Step Procedure Iteration and sequence control structures
10-19 Programming: A Five-Step Procedure Step 3: Code the program Translate the logic requirements into a programming language Programming language is a set of rules that tells the computer what operations to do Each programming language has a syntax, or set of grammatical rules to follow to write valid expressions Syntax rules must be followed or there will be syntax errors Computers dont understand what you want, only what you type in
10-20 Programming: A Five-Step Procedure Step 4: Test the program Desk checking is done by the programmer who checks for syntax errors and logic errors Debugging is the process of detecting, locating, and removing all errors in a computer program Beta testing is the process of testing the program using real data One phase of testing uses correct data Once the program works, the next phase of testing uses invalid data and untrained users to root out hidden errors
10-21 Programming: A Five-Step Procedure Step 5: Document & Maintain the program Documentation is written descriptions of what a program is and how to fix it There are several types of documentation that should be written User documentation – for the people who will use your program Operator documentation – for the people who run the large computers the program runs on – so they know what to do if the program or computer malfunctions Programmer documentation – for the next programmer who must modify and maintain what you have written Maintain the program Fix any errors that are noticed once the program is in production Update the program to reflect new requirements
Generations of Programming Languages 1945 – 1 st Generation – Machine Language The basic language of the computer – all zeros and ones Each CPU architecture had a different machine language Mid-1950s – 2 nd Generation – Assembly Language Mid-1950s to 60s – 3 rd Generation – High-level Languages (procedural languages) such as FORTRAN, COBOL, BASIC, C Early 1970s – 4 th Generation – Problem-oriented Languages such as Intellect, NOMAD, FOCUS Early 1980s – 5 th Generation – Natural Languages
Generations of Programming Languages 1945 – 1 st Generation – Machine Language Mid-1950s – 2 nd Generation – Assembly Language Mnemonic version of machine language Faster to program in than machine language Each CPU architecture had a different assembler Mid-1950s to 60s – 3 rd Generation – High-level Languages (procedural languages) such as FORTRAN, COBOL, BASIC, C Early 1970s – 4 th Generation – Problem-oriented Languages such as Intellect, NOMAD, FOCUS Early 1980s – 5 th Generation – Natural Languages
Generations of Programming Languages 1945 – 1 st Generation – Machine Language Mid-1950s – 2 nd Generation – Assembly Language Mid-1950s to 60s – 3 rd Generation – High-level Languages (procedural languages) such as FORTRAN, COBOL, BASIC, C These languages are portable (the same across all CPUs) The programmer writes, then interprets or compiles the programs The compiler or interpreter translates the code into the CPU- specific assembler Early 1970s – 4 th Generation – Problem-oriented Languages such as Intellect, NOMAD, FOCUS Early 1980s – 5 th Generation – Natural Languages
Generations of Programming Languages 1945 – 1 st Generation – Machine Language Mid-1950s – 2 nd Generation – Assembly Language Mid-1950s to 60s – 3 rd Generation – High-level Languages (procedural languages) such as FORTRAN, COBOL, BASIC, C Early 1970s – 4 th Generation – Problem-oriented Languages such as Intellect, NOMAD, FOCUS Easier to program in than 3 rd generation languages Three types are: Report generators Query languages Application generators Early 1980s – 5 th Generation – Natural Languages
Generations of Programming Languages 1945 – 1 st Generation – Machine Language Mid-1950s – 2 nd Generation – Assembly Language Mid-1950s to 60s – 3 rd Generation – High-level Languages (procedural languages) such as FORTRAN, COBOL, BASIC, C Early 1970s – 4 th Generation – Problem-oriented Languages such as Intellect, NOMAD, FOCUS Early 1980s – 5 th Generation – Natural Languages Programming languages that use human language to give people a more natural connection with computers Part of the field of artificial intelligence
10-27 Programming Languages Used Today FORTAN The language of mathematics The first high-level language written A machine-independent procedural language COBOL The most-frequently used language for business legacy applications on mainframe computers Writing COBOL is like writing an outline Has 4 divisions: Identification, Environment, Data, and Procedure A machine-independent procedural language
10-28 Programming Languages Used Today BASIC Designed to be an easy language to use Usually run from an interpreter, but can be compiled Procedural language Supplanted by Microsofts Visual Basic for commercial/business use Pascal Designed to be a language to teach programming Structured, compiled language Not used in business or commercial companies
10-29 Programming Languages Used Today C General-purpose machine-independent compiled language The language used to write the Unix operating system The precursor to C++ and C# Permits very efficient coding and low memory utilization through direct allocation and manipulation of computer memory C++ Object-oriented language that was developed after C Permits encapsulation, object inheritance, and object reuse Often used to write computer games and CPU- and graphics- intensive applications Tougher to program in than Visual Basic, Java, or C#
10-30 Programming Languages Used Today Java Object-oriented programming language developed at Sun Microsystems by James Gosling and colleagues in the early 1990s Derivative of C++ with simpler memory management and syntax Is platform-independent, but is licensed by Sun Microsystems, which owns development rights to Java Used in many US businesses C# Microsofts answer to losing the Java licensing agreement infringement lawsuit to Sun Contains a similar syntax to Java, but with additional C++ and Visual Basic-like features Used in many U.S. businesses – one of the hottest languages for Help Wanted ads in
10-31 Programming Languages Used Today LISP Stands for LISt Processor Developed by Prof. John McCarthy of the Massachusetts Institute of Technology To develop an algebraic list processing language for Artificial Intelligence work Macsyma is a renowned LISP application Macsyma allows users to type in an algebraic equation such as (a x a x a) x b / (a x a) + 3 = c Macsyma then manipulates the equation and simplifies it while keeping it in its algebraic form to derive the solution, which would be c = a x b + 3 This is very different from most programs that allow you to enter numbers and produce numeric solutions but cant show you what the simplified algebraic equation looks like
10-32 Object-Oriented & Visual Programming In Object oriented Programming (OOP) data and processing instructions are combined into an object that can be reused Object Self-contained module consisting of reusable code Message The instruction received by the object indicating it is time to perform an action Method The processing instructions within the object to perform the specified action
10-33 Object-Oriented & Visual Programming Black Box Objects are like a black box in that the actions and the objects are specified, but the methods used are internal to the object This means the programmer that uses an object does not need to know how the program inside the object does what it does For example, Microsoft Excel is like an object Most of us use Excel without understanding what the programmers at Microsoft did to make Excel work If we had to know that, it would take a lot longer to learn how to use Excel! Programmers who use objects can write programs a lot faster, because objects save so much work
10-34 Object-Oriented & Visual Programming 3 basic concepts of OOP Encapsulation One object contains (encapsulates) both Data Relevant processing instructions Inheritance One object can be used as the foundation for other objects Objects can be arranged in hierarchies – classes and subclasses Objects can inherit actions and attributes from each other Polymorphism Allows a single definition to be used with different data types and different functions Means a message produces different results depending on the object it is sent to
10-35 Object-Oriented & Visual Programming Doors Have a Handle open close Patio doors Have a slider slide open slide closed Front doors Have locks Car doors Have locks Have windows The Door class Actions performed by a door Subclasses of doors inherit from the door class, but also have their own unique actions and attributes Notice we only list the actions & attributes when they differ from those of class Example of Inheritance Hierarchy with Specialization
10-36 Object-Oriented & Visual Programming Visual Basic is an example of visual programming Using a mouse, the programmer drags and drops objects on screen The objects are arranged to make up the graphical user interface for the program being written By double-clicking on those objects, the programmer can get into a coding window and write the programs to control the actions and behaviors of those objects This makes it fast and easy to build prototype user interfaces and get end-user approval before doing a lot of programming If you have Visual Basic installed on your schools computers, this would be a great time to try it out.
10-37 Markup & Scripting Languages A markup language is a kind of coding or tags inserted into text that embeds details about the structure and appearance of the text. Open up a text editor such as Notepad or Wordpad, and enter the following text: Then save the file on your desktop. Name it sample.htm Now open your internet browser and view it by clicking file open and navigating to your desktop My name is your name And I love this class!!!
10-38 Markup & Scripting Languages So how did this Turn into this? By HTML tags My name is your name And I love this class!!! My name is your name And I love this class!!! The tag defines the page color The tag means a heading of size 2 The tag means a heading of size 1 The tag means to italicize the text The tag means to bold the text The tag means to start a new paragraph And the / inside a tag means to end that format There are a LOT of other HTML tags
10-39 Markup & Scripting Languages HTML Hypertext markup language Used to create web pages Also lets you insert a hypertext link in a web page VRML Virtual Reality Modeling for Markup Language is used to create three-dimensional web pages including interactive animation Requires special VRML browser to view those pages
10-41 Markup & Scripting Languages ActiveX Developed by Microsoft as an alternative to Java for creating interactivity on web pages A set of controls or components that enable programs or content of almost any type to be embedded in a web page Often used by crackers to propagate viruses and/or trojans Before you allow an ActiveX component to download from your browser to your PC, make sure you trust that website!
10-42 Markup & Scripting Languages Perl A general-purpose programming language developed for text manipulation. Developed in 1987 by Larry Wall Now used for web development, network programming, system administration, GUI development, other tasks Widely used for web server programs to perform automatic tasks such as updating user accounts and newsgroup postings