hoofdstuk 11: ontwikkeling van informatiesystemen

20
Hoofdstuk 11: Ontwikkeling van informatiesystemen

Upload: mairi

Post on 23-Feb-2016

36 views

Category:

Documents


0 download

DESCRIPTION

Hoofdstuk 11: Ontwikkeling van informatiesystemen . Overzicht. The Systems Development Lifecycle (SDLC) Preliminary investigation Systems Analysis Design Programming Testing Maintenance Legacy systems Prototyping. Methodologies and the SDLC. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Hoofdstuk 11: Ontwikkeling van informatiesystemen

Page 2: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Overzicht

• The Systems Development Lifecycle (SDLC)– Preliminary investigation– Systems Analysis– Design– Programming– Testing– Maintenance

• Legacy systems• Prototyping

Page 3: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Methodologies and the SDLC• A methodology is a comprehensive set of steps,

guidelines, activities and/or principles, prescribing the process by which the IS can be developed

• Many methodologies distinguish a series of stages that the IS undergoes – the systems development life cycle (SDLC)

• Various techniques may be prescribed during these stages

Page 4: Hoofdstuk 11: Ontwikkeling van informatiesystemen

SDLC: Waterfall Approach

The classical SDLC is predominantly a ‘waterfall’ approach:• sequence of stages in which the output of each stage

becomes the input for the next• facilitates project management: clear ‘milestones’• but can be costly, time consuming and inflexible,

especially for smaller projects• establishing user requirements can be very difficult

Page 5: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Typical SDLC Stages• Preliminary investigation: establishing a high-level view of

the intended project and its feasibility• Analysis: analysis of the information needs that the system

should satisfy; describes what the system should do• Design: laying out how the system should be structured to

meet the requirements determined by the systems analysis• Programming: writing executable code based on the design• Testing: process that determines whether the system

produces desired results under known conditions• Deployment: putting the new system into operation• Maintenance: ongoing process of making further changes

to itNote: many variations of divisions into (sub-)stages

Page 6: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Preliminary Investigation

• Usually includes conducting a feasibility study: determines whether the project is achievable, given the organisation’s resources and constraints– Technical feasibility: proposed solution can be implemented with

available hardware, software, and technical resources?– Economic feasibility: benefits of proposed solution outweigh costs?– Operational feasibility: proposed solution is desirable within the

existing managerial and organisational framework? (e.g., taking into account history of IT acceptance, IT skills of staff,

organisational structure, …)

Page 7: Hoofdstuk 11: Ontwikkeling van informatiesystemen

System Analysis• Analyze the organisation’s processes, information

needs and its existing systems– Data gathered from written documents, interviews,

questionnaires, observation, measuring– Describe using various modelling techniques – Pinpoint problems/opportunities

• Establish requirements that the new system must satisfy– Functional requirements: what tasks should the system

perform?– Non-functional requirements: performance, security, …

Page 8: Hoofdstuk 11: Ontwikkeling van informatiesystemen

System Design• Further elaborate on the analysis; lay out the components

of the IS and their relationship to each other• Some design choices include:

– setting automation boundaries– centralized or distributed system– file-based or database system– batch or online system– …

• Modular design: IS broken down into separate modules– more manageable: different teams of programmers/testers can be

allocated to them in subsequent stages– often documented in structure charts & module specifications

• User interface design

Page 9: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Setting Automation Boundaries

Page 10: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Programming• Process of writing actual program code for the system

specifications prepared during the design stage• Procedural versus non-procedural programming

languages– Most conventional programming languages are procedural:

• Programmers must specify the sequence of processing steps to be performed in order to accomplish task

• Three main constructs: – sequence: execute steps in order shown– iteration: repeat a series of steps while/until a condition is satisfied– selection: conditionally execute if a condition is satisfied

• Example languages: C or C++, Java, Pascal, Basic, …

– Non-procedural languages:• Specify not the exact sequence but what needs to be accomplished• Example: Structured Query Language (SQL)

Page 11: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Example procedural programming languages

• COBOL– Developed around 1960– Has long been popular for business applications

• Pascal– Intuitive for educational use

• C, C++ – Powerful and efficient but lacks 100% portability across

systems

• Java– Designed to run on any system – Popular for web applications

Page 12: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Testing• Static versus dynamic testing techniques

– Static: not actually executing the program; e.g. code inspection– Dynamic: feeding test cases into the program and then seeing

whether its execution meets certain requirements

• Levels of testing– Unit testing: testing separate program modules– Integration testing: testing whether modules work together properly– System testing: testing the system as a whole

• volume testing: can it handle the amount of data and transaction rate?• stress testing: does the system break down in extreme conditions?

– Acceptance testing: done by the end-user (unlike the former three); provides final certification that the system is ready to be used in a production setting

Page 13: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Testing (contd.)• How to choose the test cases?

– Exhaustive testing: try every combination (usually not an option…)Consider this simple scenario:• Suppose that the program needs values for n input items• Say every item has 2 possible values (e.g. yes or no)• Then, the number of test cases would have to be 2n

• E.g., for n = 10, this equals 1024• For n = 20, the number would already exceed 1.000.000• …

“Exponential explosion”:

– Test case selection strategies:• black box: select a suite of test cases without looking at the internal

structure of the module (e.g. randomly generated)• white box: try to get a good test coverage by looking inside the module

size

reso

urce

s

Page 14: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Deployment• Systems changeover: process of replacing the old system

by the new system– Parallel running: conservative conversion approach where both

the old system and the potential replacement are run together– Direct changeover: risky conversion approach whereby the new

system replaces the old system on an appointed day– Pilot study: strategy to introduce the new system to a limited area

of the organisation until it is proven to be fully functional– Phased approach: introduces new system replacement in stages;

mixture of direct changeover and parallel running methods

• Data entry/migration• Hardware/software installation• Training

Page 15: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Systems Changeover StrategiesDirect changeover:

Parallel running:

Page 16: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Systems Changeover Strategies (contd.)

Pilot study:

Page 17: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Systems Changeover Strategies (contd.)

Phased approach:

Page 18: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Maintenance• Three types of maintenance:

– corrective: fixing bugs– perfective: enhancing the system without changing its

functionality (e.g. optimizing its performance)– adaptive: changing the system’s functionality in order to

meet evolving requirements

• Preferably coupled to:– an ongoing formal review process– procedures for version control– systematic documentation of changes

• Probably the most costly stage in the SDLC

Page 19: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Maintenance Problems: Legacy Systems

• Legacy systems:– old systems (e.g. 20-30 years old)– large, monolithic, and difficult (thus expensive) to modify– running on mainframes– written in (near-)obsolete languages

“The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.” (Dijkstra)

– with very little or out-of-date documentation– whose original designers are retired or have left the organisation– still critical for the functioning of the organisation– often demanding high availability

(e.g. customer account transaction processing in banks)

– which continue to be used because the cost of replacing or redesigning (“re-engineering”) them is prohibitive

Page 20: Hoofdstuk 11: Ontwikkeling van informatiesystemen

Prototyping• Prototyping: building

experimental system quickly for demonstration and evaluation purposes

• Provides easier way for users to determine information requirements

• Iterative instead of sequential process

• Incremental or throwaway prototyping