Information Technology | Economical IT » Higher computing, Software development

Datasheet

Year, pagecount:2004, 5 page(s)

Language:English

Downloads:8

Uploaded:April 28, 2013

Size:41 KB

Institution:
-

Comments:

Attachment:-

Download in PDF:Please log in!



Comments

No comments yet. You can be the first!


Content extract

Higher Computing – Software Development Software Engineering Software Development Well planned programs: • software that the user wants • the software should be maintainable • software should be reliable • software should be efficient • have appropriate user interface The Waterfall Model Analysis Design Implementation Testing Documentation Installation + Maintenance As each stage is completed the responsibility flows down to the next stage until the process is completed. The software development process is an iterative process – incorporates feedback and involves some repetition. There are many reasons why software development is required. Some include: 1. increased complexity and sophistication of computing systems 2. escalating costs of software systems 3. unreliable software systems produced without planning 4. poorly performing software 5. difficulty in maintaining the software Analysis Stage Analysis is an attempt to understand a given problem - clearly and

exactly to generate a solution. The outcome of the stage will be a specification that is used as a basis for all subsequent work. A systems analyst produces the specification (problem, requirements, system, functional) by doing a systems analysis – legal document that binds both SD company and their client. Design Stage The design process is methodical (structure charts and pseudo-code). The problem is broken down into a collection of smaller and simpler tasks (top-down design or stepwise refinement). At this stage the software development environment will be chosen, language and operating system. Design must also consider how the user sees and works the program – Human Computer Interface. A good interface is user friendly, easy to use and helpful Modern HCIs are often Graphical User Interfaces (GUI) which provide a WIMP (Windows Icon Menu Pointer) environment. Programs require to process a lot of data, perform operations on it and need to keep it in some form of structure (arrays,

databases, object-orientated). The data structure of a program can affect the running of the entire program and must be decided on at the design stage. The main program needs to be designed by looking at the specification and consideration of hardware, choice of high level language, how the software will behave, choice of operating system and portability of the system. Implementation A good design will make it easy to program the solution to the problem in the chosen language and environment. If the design has been thorough it should be a simple matter of translating each line of the pseudo-code into the programming language. High Level Language – BASIC, Java, C++ are languages close to English. Source Code – the high level language code that is easy to understand. Machine Code – a translation of the source code by a compiler/interpreter to binary instructions the computer understands. The computer can then run this code and is also called executable code. Once

compiled/interpreted the machine code is portable and can run on machines of similar type. Compiler Interpreter Programs will be structured and will contain internal documentation (comments) to explain what is happening in different sections as well as meaningful variable and subprocedure/object names. Many programs use standard algorithms or module libraries to make up parts of the program. Testing Test data is designed to check that a program works properly: meets the specification, reliable and robust. Testing and Debugging Testing can only demonstrate the presence of errors, not their absence. Needs to be a balance between creating a product for a market and exhaustive testing. Test Data Preparation Most importantly the tests should be devised against the specification. The run of the program must be traced to make sure all areas behave as expected. Prepare test data before you code! Two cycles to testing: Alpha testing – where the software is tested by clients within the

organisation. Test data is based on the specification. normal operation – data the program has been built to process boundary testing – data at the extremes of the programs operation exception testing – data that lies beyond the extremes of the programs normal operation The HCI should be tested in respect of all options the user can choose. Normal user activity test should make sure all the icons, menus and options work. Unusual user activity tests should test unusual and potentially disastrous actions. Test Log Input Reason for Choice Expected Output Actual Output Faults that become apparent during testing are called bugs. The program goes back to the programming team for debugging. Iterative Dry run – a pen and paper exercise to go through the program and noting expected outputs. Beta Testing – acceptance test of the software by personnel outside the organisation or by members of the public in actual working conditions. People involved in testing will send reports back

to the development team Documentation Stage The documentation should include a user guide for anybody to read, learn and use the system. Used to be paper manuals but now on-line and even web based A technical guide for those who will be maintaining it. It will contain information about the hardware and software requirements, instructions to configure the program. Other documentation is for the benefit of the entire development team. This includes masses of documentation produced through out the software development process to keep everyone up to speed and for future reference with maintenance. Evaluation Stage Evaluation is the formal monitoring of a system to ensure that it is performing its purpose accurately, efficiently, cost effectively and in a timely manner – matched against criteria from the initial specification to see if it is fit for its purpose. Does the software meet user requirements? How can the software development process be improved in future projects?

Maintenance Stage This is the most time consuming stage because it will continue for the life of the piece of software. Many errors or problems will become apparent over time and small updates/adaptations (patches) will need to be made. Once operating with the software the users will require support. The software developers may offer training to their clients. There are three types of maintenance: Corrective maintenance – the discovery and correction of errors during the actual use of the program. Adaptive Maintenance - necessary when the programs environment changes in terms of hardware and software. Perfective Maintenance – the user requests an enhancement of performance from the program. Weaknesses of the Waterfall Model • linear and sequential flow is not realistic – iteration • difficult to get all requirements at the start – customer uncertainty • Clients are distanced from development • Developers work in isolation from clients • Incorrect requirements will not

be noticed till much later so more expensive and time consuming to fix • The model does not address project management or software maintenance Alternative Models Structured Systems Analysis and Design Method (SSADM) Concentrates on the analysis and design aspects. The stages addresses by SSADM are analysis, requirements specification, logical design, physical design and program specification. diagram p36 Prototyping A small scale representation of the proposed design – focus on the interface. Clients are involved heavily in the software development process and the constant feedback allows the prototype to develop to the users liking. Once suitably refined work on the full project begins. diagram p37 Rapid Application Development (RAD) Sometimes called Joint Application Development due to the close partnership between clients and developers. Programmer will knock together a simple system for the client to take away and test (prototype). It is easily amended until the user is

happy Commercial Off the Shelf (COTS) More and more software is now commercially available. Rather than the great expense and time to create a system from scratch it is worth looking into software that already exists. COTS can be expensive, generic to a task and will not fill the users full requirements but additional software can be written and system adjustments made to meet these. Spiral Model It is a management and risk driven approach rather than code driven. The development of the final product is based on successive refinements through various software development stages. Open Source All other models are for commercial software – client with a specific goal, software company sells product for profit and programmers are employed to generate software. Open source is an alternative philosophy based on the Free Software Federation: • Use of the Internet and communication to allow programmers to develop, collaborate and share developments openly. • Open software movement is a

growing body of users and programmers who don’t believe in the in-house development and ownership of software. • A considerable amount of software has been used using the open source model