Conventional design Identifies functions and data structures as separate entities Identifies functions and data structures as separate entities Then Defines those functions in more and more detail down to the level of algorithms Then Defines those functions in more and more detail down to the level of algorithms And defines data structures like relational entities And defines data structures like relational entities
Object-Oriented Design – another paradigm Object-oriented design is based on objects and their attributes. Object-oriented design is based on objects and their attributes.
Object Classes An object is a self-contained unit that contains both data and related facts and functions. An object is a self-contained unit that contains both data and related facts and functions. Objects are arranged hierarchically in classes and subclasses based on their dominant characteristics. Objects are arranged hierarchically in classes and subclasses based on their dominant characteristics. Attributes and Methods Facts related to an object are called attributes. Facts related to an object are called attributes. Methods are the instructions that tell the data what to do. Methods are the instructions that tell the data what to do.
Object Inheritance An object in a subclass automatically possesses all the characteristics of the class from which it is derived. An object in a subclass automatically possesses all the characteristics of the class from which it is derived. A cat is a mammal so it has the properties of mammals A cat is a mammal so it has the properties of mammals We do not need to say that a cat has hair because mammals have hair A mammal is an animal and has the properties of animal A mammal is an animal and has the properties of animal We do not need to say that a cat can breed because: a cat is a mammal and a mammal is an animal So a cat is an animal And all animals can breed so a cat can breed (unless it’s a liger, of course)
Step 4. Systems Development Up until this point, we have not used any programmers at all. Up until this point, we have not used any programmers at all. Programmers and database specialist are given the specifications and models produced in the earlier phases and must build the system Programmers and database specialist are given the specifications and models produced in the earlier phases and must build the system This can be done using programming languages (3GLs) like C, Cobol, PL1, Java, etc This can be done using programming languages (3GLs) like C, Cobol, PL1, Java, etc or using “drag and drop” development interfaces (4GLs) like Access, Oracle etc. or using “drag and drop” development interfaces (4GLs) like Access, Oracle etc.
System development includes: Scheduling Scheduling Programming Programming Testing Testing
Scheduling Scheduling deadlines and milestones is another task of a systems project manager. Scheduling deadlines and milestones is another task of a systems project manager. Scheduling involves determining the allocation of people and resources, monitoring schedules, and producing status reports. Scheduling involves determining the allocation of people and resources, monitoring schedules, and producing status reports.
Programming At this point in systems development, programmers are given program design specifications and they begin to write code.
The Programming Process The steps involved in developing a program include: The steps involved in developing a program include: Define the problem Define the problem Plan the solution Plan the solution Code the program Code the program Test the program Test the program Document the program Document the program
Define the Problem The task of defining the problem consists of identifying what it is you know and what it is you want to obtain. The task of defining the problem consists of identifying what it is you know and what it is you want to obtain.
Plan the Solution Planning the solution may involve drawing a flowchart or writing pseudocode, or both. Planning the solution may involve drawing a flowchart or writing pseudocode, or both.
Flowcharts A flowchart is a pictorial representation of a step-by-step solution to a problem. A flowchart is a pictorial representation of a step-by-step solution to a problem.
Flowchart Basics A flowchart consists of arrows to represent direction the program takes and boxes and symbols to represent actions. A flowchart consists of arrows to represent direction the program takes and boxes and symbols to represent actions.
Flowchart Symbols ProcessStart/Stop Input/Output Decision Connector Flow direction
Flowchart Symbols Show message Start Deposit Get amount Valid ? Add balance & amt No Show new balance 22 Yes
Pseudocode Pseudocode is an English-like nonstandard language. Pseudocode is an English-like nonstandard language. It allows programmers to focus on the program logic without being concerned about the particulars of a formal programming language. It allows programmers to focus on the program logic without being concerned about the particulars of a formal programming language.
Code the Program Coding a program means to translate the logic from a flowchart of pseudocode into a programming language. Coding a program means to translate the logic from a flowchart of pseudocode into a programming language. The rules of computer languages are called syntax. These rules must be followed precisely. The rules of computer languages are called syntax. These rules must be followed precisely.
Test the Program as we go During coding, tests must be performed to make sure the steps are correct and render the desired results. During coding, tests must be performed to make sure the steps are correct and render the desired results. Testing includes: Testing includes: Desk-checking Translating Debugging
Desk-checking This form of testing involves mentally checking the logic of the program to ensure that it is error-free and workable. This form of testing involves mentally checking the logic of the program to ensure that it is error-free and workable.
Translating Programs are commonly translated by a compiler which checks for syntax errors and converts the program into a form the computer understands. Programs are commonly translated by a compiler which checks for syntax errors and converts the program into a form the computer understands.
Debugging Debugging means to detect, locate, and correct mistakes in the program. Debugging means to detect, locate, and correct mistakes in the program. To find errors, you must test every part of the program under various conditions. To find errors, you must test every part of the program under various conditions.
Document the Program A programmer must document the various stages the program has gone through as well as other specific facts about the program. A programmer must document the various stages the program has gone through as well as other specific facts about the program.
Validation and Testing At every step in analysis, design and development, we MUST check with the client and users that we understand exactly what they want.This can be done using: At every step in analysis, design and development, we MUST check with the client and users that we understand exactly what they want.This can be done using: prototypes, structured walk-throughs, design models Once we have a working prototype, we carry out FORMAL testing Once we have a working prototype, we carry out FORMAL testing
Testing Testing cannot be an ad hoc process. We must make a test plan, identifying all the components we intend to test and how we intend to test them Testing cannot be an ad hoc process. We must make a test plan, identifying all the components we intend to test and how we intend to test them Ideally, the system is tested with large quantities of typical data. This takes time to generate. Ideally, the system is tested with large quantities of typical data. This takes time to generate. Test case scenarios are then carried out and the results recorded. If the results do not agree with the expected results, the process should be repeated. If the results still do not agree, we have detected a problem in the system - back to coding Test case scenarios are then carried out and the results recorded. If the results do not agree with the expected results, the process should be repeated. If the results still do not agree, we have detected a problem in the system - back to coding If all the functional testing is OK we move on to user testing to see if users will do unexpected things with the system that will cause errors If all the functional testing is OK we move on to user testing to see if users will do unexpected things with the system that will cause errors
Step 5. Implementation For the implementation phase to be successful, the following activities are required: For the implementation phase to be successful, the following activities are required: Training Training Equipment conversion Equipment conversion File conversion File conversion System conversion System conversion AuditingAuditing Evaluation Evaluation Maintenance Maintenance
Training A system will only be as good as the people who use it. Therefore, training the users is very important. A system will only be as good as the people who use it. Therefore, training the users is very important.
Equipment Conversion Implementing a system requires that consideration has been given to how best to convert to the new system. Implementing a system requires that consideration has been given to how best to convert to the new system. Issues of availability of space, accessibility, and cleanliness of the work area cannot be overlooked. Issues of availability of space, accessibility, and cleanliness of the work area cannot be overlooked.
File Conversion Converting old file structures to that needed by the new system can take a long time. Converting old file structures to that needed by the new system can take a long time. Care must be taken to not corrupt old files, lose files, or disrupt normal operations of the client organization during this conversion. Care must be taken to not corrupt old files, lose files, or disrupt normal operations of the client organization during this conversion. System Conversion A systems analyst will need to determine the timing and staging of the conversion from the from the old system to the new one. A systems analyst will need to determine the timing and staging of the conversion from the from the old system to the new one.
Auditing To guard against deliberate or unintentional violations in security, the systems analyst designs an audit trail. To guard against deliberate or unintentional violations in security, the systems analyst designs an audit trail. Evaluation Evaluation is needed to determine if the system is: Evaluation is needed to determine if the system is: working meeting the organizational requirements meeting the original budget limitations
Maintenance Maintenance is an ongoing activity and includes monitoring and making revisions throughout the life cycle of the system. Maintenance is an ongoing activity and includes monitoring and making revisions throughout the life cycle of the system.
There is a group project due on Monday 7 Oct. WEEK 10 There is a group project due on Monday 7 Oct. WEEK 10 Unfortunately this is a public holiday so there will be no tutorial on that Monday. Unfortunately this is a public holiday so there will be no tutorial on that Monday. The group project willbe submitted to GENE at her office on Tuesday 8 Oct. instead. The group project willbe submitted to GENE at her office on Tuesday 8 Oct. instead.