1. Software Development Revision Personnel Lifecycle Languages HLL constructs & Algorithms Documentation Characteristics Click to select a topic
2. Personnel Project Manager The head of the development team, this person will direct and monitor all aspects ( personnel, time-scales, budget ) of the project from start to finish Client The company or organisation who want a new system Systems Analyst Has the task of gaining an understanding of the client's needs and conveying these to the developer or team of developers. Outlines the basic problem in a problem specification . Discovers exactly what the client wants in the solution. The Systems Analyst uses three main methods to find out about what the client wants and how to get them what they want: Experience (of all stages of software development, technical knowledge and working within time/money/technical restrictions) Analytical Observation & Problem solving (observing current system functions and how and documents are used) Communication (with the Clients staff and with the project manager) Programmers Implement the solution Menu Q
3. Documentation specifies what the new system has to be capable of doing Requirements Specification (Operational Requirements) states the desired system, setting out hardware and software specifications plus any human and organisational implications. System Specification Provides a snap-shot of the development and suggests possible options for solutions Feasibility Study A plan to solve the problem, shows functionality of system System Design A formatted printout of program code with indentation of loops and conditions Structured Listing of Code Menu Q
4. The Software Development Lifecycle Analysis Testing Documentation Design Evaluation Implementation Maintenance Menu Q
5. Analysis Analysis is the process of finding out what the client wants and needs and looking at the existing system to find out what the new system needs to do. Systems Analysts can use CASE tools to help them with the analysis phase (and other parts of the software development process) CASE stands for Computer Aided Software Engineering CASE tools can be used to: * assist the summarising of a project's initial requirements. * allow graphical representation of modules within a project tree structure allowing individual modules within a project, to be selected and worked on. * facilities to have program code generated from the design which in turn has been generated from the specification. * graphical design representation editing. * code editing. * documentation generation which tends to be in Rich Text Format (RTF) allowing data export to most word processing packages. * work on networks, different languages and OS Lifecycle Q
6. Design This is where a plan for the new system is drawn up. The HCI should be designed A variable table be be created to specify any variables required A structure diagram is a graphical approach to designing the main steps of the solution Pseudocode is a textual approach to designing the main steps An indication of Data Flow in the design. A set of Test Data should be created to test the design at this stage. This will check for errors in the design such as logical errors Lifecycle Q
7. Implementation Implementation means taking the design template and converting it into a form the computer can understand – code. Things to consider: Data Structures The correct types should/must be implemented. Modular Code should be written which defines the subprograms. Coupling of existing subprograms that have been stored for use within other programs e.g subprograms which search or sort a list of numbers, to save time and to improve speed and efficiency in development Variable and Subprograms & functions and variable names should be clear, sensible subprogram names and meaningful. Internal Internal commentary has no effect, but helps when maintenance Commentary activities take place. Loop usage Make sure execution of these is carefully considered, and the proper 'escape' condition has been applied Logic Tests Make sure execution of these is carefully considered, and the logical test has been applied correctly Lifecycle Q
8. Testing There are different ways that software should be tested. *** A Dry Run is the process of going through the program in your head and keeping a note of the different values of variables on paper. This is used to try and eliminate many errors before your run the program. Many programs have a built in ‘trace’ facility which will do this for you. *** A specially designed set of test data is used to test your program when it runs. This test data should include: * A set of normal , valid data to check for proper operation. * Test at the limits (extremes) to see if boundary conditions function as expected. * ‘Exceptional’ data to see how the software will react to unexpected data input. Alpha testing is the first stage of whole program testing and takes place with the developers. Beta testing (acceptance testing) is the second stage and often takes place within the company, under actual conditions If programs are made up of different modules, the modules are tested separately then are tested again when they are integrated into the main program. Lifecycle Q
9.
10.
11. Maintenance Corrective Maintenance Eradicating errors reported by the Client, which were undetected at testing. Adaptive Maintenance Altering the software to 'interface' with changes in the operating environment (new hardware/software). Perfective Maintenance This is the largest of the four, allowing enhancements to the performance of the system in some way. Preventative Maintenance Improving the future maintainability of a development There are four types of maintenance activity: Lifecycle Q
12. Characteristics A program is ROBUST if it can cope with problems that come from outside and are not of its own making. For example unexpected data entered by a user or an unexpected condition such as a printer jam. RELIABILITY is an internal matter. A program is reliable if it runs well, and is never brought to a halt by a design flaw. A reliable program should be able to inform the user if an error occurs, try to recover from the error and if all else fails stop running with a minimum of fuss. A program which is said to be PORTABLE is machine independent, it should run on most computer systems using different hardware and operating systems. A program is said to be MODULAR if it is clearly divided into sub-programs or modules which each perform a specific task. Menu Q
13. Languages Before you begin to implement a solution to a problem you must consider what type of programming language is most appropriate for the task. There are four different types of programming language. Procedural Declarative Event-Driven Scripting Q Menu
14. Procedural A program written in a Procedural (Imperative) language will have a main program from which subprograms such as procedures/subroutines and/or functions will be called, i.e. the control of the flow of execution lies in the code in the main program. When choosing a procedural language to solve a problem, the best solution will be obtained when the particular features of the procedural language are most closely matched with the particular features of the problem to be solved. i.e. matching the objects and operations of the language to that of the problem Common features of a Procedural language: Data A range of data types and data structures can be used. Calculation Arithmetic and logical operations are possible. Sequencing T he flow of control from one instruction to the next. Control Repetition of instructions. (a fixed number of times or condition Structures controlled) Conditional W hich test some criteria and may transfer control elsewhere in the Structures program. Modular Procedures or subroutines , which let you break a program into smaller Structures named sections. Parameter Data flow into and out of the procedures/subroutines. Passing Languages Q
15. A declarative language stores a list of facts and rules relating to these facts, in what is known as a knowledge base. When the user enters a query, the declarative language attempts to find a solution by searching the knowledge base. Because of their usefulness in resolving logical issues, much research in declarative language usage is being done in the sphere of Artificial Intelligence, where the intention is to develop machines which can make logical decisions in a natural way. A declarative has a list of facts (things that are TRUE) in what is known as a knowledge base . Declarative Declaration of Fact Interpretation is_daughter(mary, susan) Mary is Susan's daughter is_daughter(susan, julia) Susan is Julia's daughter is_daughter(claire, alison) Claire is Alison's daughter Query Result is_daughter(claire, alison)? which will return the answer TRUE or YES because an exact match can be found in the database. is_daughter(tom, alison)? will return FALSE or NO as there is no match in the database. These facts can be interrogated by a query. Languages Q
16. An Event-Driven Language also uses a procedural approach, except that the procedures are associated with objects available within the application . Execution of a procedure is triggered by an EVENT (input from the user) involving an OBJECT , e.g. the click of a button on a form or the selection from a menu . Event-Driven Typical Objects Typical Events When to execute code Command Button Click Mouse click on object Radio Button Double-Click Mouse double-click on object Toggle Button Got Focus Cursor over object List Box Lost Focus Cursor moved from object Message Box Key Down Mouse button pressed but not released Dialogue Box Key Up Mouse button released Text Box On Enter Application, Form, Dialogue Box opened Image Box On Exit Application, Form, Dialogue Box closed Languages Q
17. Scripting A scripting language is one which is designed to be used in a particular operating or application environment. They tend to be an additional facility available in several applications packages, particularly database management packages. The benefits of using a scripting language are that it increases the flexibility of a programming language, allowing it to be customised to meet the users needs. Features that may not be readily available in a package can be added using scripts - e.g. a set of commands or actions can be carried out with a single key press ( similar to a macro ) Languages Q
18. High Level Language Constructs & Algorithms Module Libraries Data Types Linear Search Count Occurrence Maximum & Minimum Parameters Variables Menu Q
19. Module Libraries Module Libraries are pre-written and tested routines that the programmer can CALL upon to support and speed up the development process. Most software companies will build up or buy in module libraries of regularly used modules of code, often in a variety of languages. These library modules would be tried and tested, robust code. Comprehensive libraries of these modules can almost lead to the " cut and paste " method of software development. This approach requires very little new code to be written and the software consists almost entirely of library modules, customised for the task and linked together in the required logical order. HLL page Q
20. Data Types Simple Data Types Type Description Sample Data String text & numbers Hello, 95 Clifton Road Integer whole numbers 12, 267, 2300 Single real numbers 2.99, 13.725, 15.01 Boolean true or false True, False (or Yes, No) Complex Data Types An Array is a set of information that is related. You set how many data item you want the array to store. DIM Name(10) of String this is an array which can hold 10 names HLL page Q
21. Variables There are two different ways variables can be used: Global Variables Global Variables are declared at the beginning of your program and can be used and changed throughout the whole program. They may be used in different sub-programs and can be passed as parameters. Local variables Local Variables are declared within ONE sub program and can the data only be used and changed within that one sub program. Local variables cannot be passed as parameters. It is good programming practise to try and have as many local variables and as few Global variables as possible. HLL page Q
22. Parameters Parameters handle the flow of data within your program. A parameter can be either a variable or a value . Parameters can be passed into and out of a sub-program. There are two different ways to pass parameters between sub-programs. You can pass parameters by VALUE or you can pass parameters by REFERENCE By Value Parameter Passing by VALUE is when a value is passed into a subprogram for use by the subprogram, but the changed value is not passed out. Parameters passed by Value are indicated by putting brackets around the parameter name. By Reference Parameter Passing by REFERENCE is when a value is passed into a subprogram for use by the subprogram, and then the changed value is passed out to be used by other sub-programs. Parameters are passed by Reference by default and are simply listed in the parameter list. HLL page Q
23. Linear Search A linear search is the process of examining a list , file or group of data to see if a given data item occurs in it. Sometimes called a serial search, this method involves looking at each data item in turn to see if there is a match with the value required . 1 prompt user to enter the number 2 set count to 1 3 while number is not array(count) AND count <> 10 4 add one to count 5 end while 6 if count =10 AND number is not array(count) 7 print number not in list 8 else 9 print number at position count 10 end if Example Algorithm HLL page Q
24. Count Occurrences HLL page This is the process of counting the number of times a data item occurs in a list, file or group of data. Based on the linear search it merely notes the number of times a match is found 1 prompt user to enter a name 2 set occur to zero 3 repeat for person 1 to 100 4 if name same as array(person) 5 add 1 to occur 6 end if 7 end loop 8 if occur=0 9 print name not in list 10 else 11 print it appears occur times 12 end if Example Algorithm Q
25. Maximum and Minimum HLL page This is the process of finding the largest or the smallest value in list , file or group of data 1 set max to zero 2 repeat for numbers 1 to 100 3 if array(number)>max 4 make max the array(number) 5 endif 6 end loop 7 print biggest value is max Example Algorithm The Algorithm for minimum would be the same except it would test for <min rather than >max Q