sd revision

25
Personnel Lifecycle Languages HLL constructs & Algorithms Click to select a topic Documentation Characteristics

Upload: mrsmackenzie

Post on 25-May-2015

311 views

Category:

Education


1 download

DESCRIPTION

Software Development

TRANSCRIPT

Page 1: Sd Revision

Personnel Lifecycle

Languages

HLL constructs& Algorithms

Click to select a

topic

Documentation

Characteristics

Page 2: Sd Revision

PersonnelPersonnel

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

QQ

Page 3: Sd Revision

DocumentationDocumentation

specifies what the new system has to be capable of doingRequirements 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

QQ

Page 4: Sd Revision

The Software Development Lifecycle

Analysis

Testing

Documentation

Design

Evaluation

Implementation

Maintenance

Menu

QQ

Page 5: Sd Revision

AnalysisAnalysis

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

QQ

Page 6: Sd Revision

DesignDesign

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

QQ

Page 7: Sd Revision

ImplementationImplementation

Implementation means taking the design template and converting it into a form the computer can understand – code.

Things to consider:

Data StructuresThe 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

QQ

Page 8: Sd Revision

TestingTesting

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

QQ

Page 9: Sd Revision

DocumentationDocumentation

User Guide

Technical Guide

It tells the user how to successfully use the software and tends to be, as far as possible, in non-technical language

• Clear instructions on getting started: how to install the software onto hard disc and start the application.

• Backup procedures for the original disc(s) (if required)

• Structured novice tutorials:  step by step information about what the user will see and how to respond when the software is running.

• Experienced users will be provided with a summary/quick reference guide.

• Screen dumps and an indication of how the user should interact with the software

• Step by step guide to software installation

• Hardware and Software requirements

• Storage requirements

• Common problems and how to solve then

• Registration/Support (Ph. No.) Details

• FAQ/Any other relevant information

provide information on aspects of the software and hardware requirements

* Both these documents can be supplied in a README or help file.*Lifecycle

QQ

Page 10: Sd Revision

EvaluationEvaluation

• How well have you understood the Client's problem?

• How well does the design reflect the Analyst's system specification?

• Does the program match the design and consequently solve the customers problem?  Is it maintainable?

• Are there limits of the software reliability/robustness?

• What improvements that could be made to the visual appeal, screen layout, prompts for user, etc given time?

The evaluation stage allows you to compare what you have done with what you were asked to do. There are several questions which should be asked about different stages in the development process;

Lifecycle

QQ

Page 11: Sd Revision

MaintenanceMaintenance

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

QQ

Page 12: Sd Revision

CharacteristicsCharacteristics

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

QQ

Page 13: Sd Revision

LanguagesLanguages

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

QQ

Menu

Page 14: Sd Revision

ProceduralProcedural

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 The flow of control from one instruction to the next.

Control Repetition of instructions. (a fixed number of times or condition Structures controlled) 

Conditional Which 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

QQ

Page 15: Sd Revision

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.

DeclarativeDeclarative

Declaration of Fact Interpretation

is_daughter(mary, susan) Mary is Susan's daughteris_daughter(susan, julia) Susan is Julia's daughteris_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

QQ

Page 16: Sd Revision

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-DrivenEvent-Driven

Typical Objects Typical Events When to execute code

Command Button Click Mouse click on objectRadio Button Double-Click Mouse double-click on objectToggle Button Got Focus Cursor over objectList Box Lost Focus Cursor moved from objectMessage Box Key Down Mouse button pressed but not releasedDialogue Box Key Up Mouse button releasedText Box On Enter Application, Form, Dialogue Box openedImage Box On Exit Application, Form, Dialogue Box closed

Languages

QQ

Page 17: Sd Revision

ScriptingScripting

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

QQ

Page 18: Sd Revision

High Level Language Constructs & High Level Language Constructs & AlgorithmsAlgorithms

ModuleLibraries

Data Types

Linear Search

CountOccurrence

Maximum &Minimum

Parameters

Variables Menu

QQ

Page 19: Sd Revision

Module LibrariesModule 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

QQ

Page 20: Sd Revision

Data TypesData 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

QQ

Page 21: Sd Revision

VariablesVariables

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

QQ

Page 22: Sd Revision

ParametersParameters

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

QQ

Page 23: Sd Revision

Linear SearchLinear 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

QQ

Page 24: Sd Revision

Count OccurrencesCount 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

QQ

Page 25: Sd Revision

Maximum and MinimumMaximum 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

QQ