systems analysis ii making the system operational

35
INFO 355 Week #9 1 Systems Analysis II Making the system operational INFO 355 Glenn Booker

Upload: venice

Post on 07-Jan-2016

25 views

Category:

Documents


0 download

DESCRIPTION

Systems Analysis II Making the system operational. INFO 355 Glenn Booker. Implementation and Deployment. Most of this course has focused on two middle ‘core processes’ of the SDLC Identify problem and obtain approval Plan and monitor the project Discover and understand details - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Systems Analysis II Making the system operational

INFO 355 Week #9 1

Systems Analysis IIMaking the system operational

INFO 355Glenn Booker

Page 2: Systems Analysis II Making the system operational

Implementation and Deployment

Most of this course has focused on two middle ‘core processes’ of the SDLC Identify problem and obtain approval Plan and monitor the project Discover and understand details Design system components Build, test, & integrate system components Complete system tests, deploy solution

INFO 355 Week #9 2

Page 3: Systems Analysis II Making the system operational

Implementation and Deployment

Now outline the activities in the last two core processes Build, test, & integrate system

components Complete system tests, deploy solution

We won’t focus on the actual building of system components (see INFO 15x courses for that)

INFO 355 Week #9 3

Page 4: Systems Analysis II Making the system operational

Testing

Testing helps to determine if a component, subsystem, or system works as intended and whether it contains any defects

Based on the functional and non-functional requirements of the system, testing helps uncover defects

INFO 355 Week #9 4

Page 5: Systems Analysis II Making the system operational

Testing

Types of testing include: Unit Integration Usability Regression System and stress

For each test, define test cases Starting state Events which take place Response or ending state

INFO 355 Week #9 5

Page 6: Systems Analysis II Making the system operational

Testing

Test data must be defined as well; could be Contrived data to test handling

extreme cases and errors Data from typical normal fake inputs Real data samples from the existing

system Consider using testing automation

tools!

INFO 355 Week #9 6

Page 7: Systems Analysis II Making the system operational

Unit testing

Tests individual modules, functions, classes, or components

Does this piece work in isolation? May write a driver method to call

the target unit for various test case input values

May have a stub to simulate code not written yet

INFO 355 Week #9 7

Page 8: Systems Analysis II Making the system operational

Integration testing

Tests a group of related methods, classes, or components

Checks interfaces between units, parameter values, looks for run-time exceptions, and unexpected interactions

Trace problems to a unit and fix

INFO 355 Week #9 8

Page 9: Systems Analysis II Making the system operational

Integration testing

OO issues in integration testing can include Which method called the defective

method? Inherited methods and variables Dynamic choice of method used based

on inputs Retained data values between method

calls

INFO 355 Week #9 9

Page 10: Systems Analysis II Making the system operational

Usability testing

Determine if a method, class, component, subsystem, or system meets user requirements

Often based on user interface assessment Does the system work? Is it easy to use? If not, why?

May be repeated often during development

INFO 355 Week #9 10

Page 11: Systems Analysis II Making the system operational

Regression testing

Not mentioned in the book, but iterative development also depends heavily on regression testing Makes sure that new functionality

didn’t break stuff that worked before! Is repeated at the end of every iteration

on functions implemented in all previous iterations

INFO 355 Week #9 11

Page 12: Systems Analysis II Making the system operational

System Testing

Tests the entire system or at least an independent subsystem

Typically near the end of the project (waterfall) or each iteration

During development, a daily or frequent system test might be a “build and smoke” test to look for obvious problems

INFO 355 Week #9 12

Page 13: Systems Analysis II Making the system operational

Performance testing

A performance or stress test checks for non-functional requirements such as throughput, response time, capacity, etc. Often need large data sets or many

simulated system users Look for performance bottlenecks or

inadequate hardware

INFO 355 Week #9 13

Page 14: Systems Analysis II Making the system operational

Performance testing

Fixing problems in performance testing can be challenging Fix or re-implement software Replace or reconfigure hardware or

network equipment Upgrade or replace inadequate

components

INFO 355 Week #9 14

Page 15: Systems Analysis II Making the system operational

User Acceptance Testing (UAT)

Done at the end of system testing User tests system to see if it fulfills

the requirements defined in the project’s RFP and contract

Successful UAT results in payment and approval for deployment of the system

INFO 355 Week #9 15

Page 16: Systems Analysis II Making the system operational

Deployment activities

Deployment takes the system from the lab to the operational setting where it will spend most of its life

By the end of deployment, the system is fully operational (“live”) for executing day-to-day business functions, and we’ve reached the end of the SDLC

INFO 355 Week #9 16

Page 17: Systems Analysis II Making the system operational

Converting and initializing data

One major activity is getting preexisting data into the system Sometimes called DCL (data conversion

and loading), it can be a major effort all by itself

DCL might include data from a legacy system, manual (paper) records that have to be digitized, and data from other related systems

INFO 355 Week #9 17

Page 18: Systems Analysis II Making the system operational

Converting and initializing data

Might have to Restructure data from another

database Convert a flat file database to relational Normalize data Modify or add tables & attributes

Or could reload the existing data, often using some intermediate data structure and import/export utilities

INFO 355 Week #9 18

Page 19: Systems Analysis II Making the system operational

Training users

All of the system actors may need training specific to their needs and the functions they use on the system End users and system operators may

have very different skills and perform different functions

Need to define training scope, goals, materials, format, etc.

INFO 355 Week #9 19

Page 20: Systems Analysis II Making the system operational

Training users

Training could be self-paced, instructor-led, etc.

Very large scale systems may need training for those who will train the end users Train the trainer

Timing of training is key – not too long before system deployment or they’ll forget everything

INFO 355 Week #9 20

Page 21: Systems Analysis II Making the system operational

Documentation

Related to training, system documentation is generally needed User manuals System description Debugging and maintenance guide

Need to write documentation to the intended audience Level of computer skills, education Terminology known

INFO 355 Week #9 21

Page 22: Systems Analysis II Making the system operational

Configure production environment

Before system software can be installed, the backbone of the system must be assembled and tested Servers, routers, firewalls, etc. Install operating systems and other

support software Often maintain a production system

and a test (sandbox) system

INFO 355 Week #9 22

Page 23: Systems Analysis II Making the system operational

Planning & managing deployment

Those are the specific activities of deployment

More generally, a plan needs to be developed of the implementation, testing, and deployment sequence What do you implement first? This feeds the iteration plan

INFO 355 Week #9 23

Page 24: Systems Analysis II Making the system operational

Development order

Three common approaches for deciding the implementation order IPO – develop Inputs first, then

Processing modules, then Outputs Top down – start with the highest level

routine (Main?) then develop each piece below that

Bottom up – opposite of top down! Start with modules that call nothing

INFO 355 Week #9 24

Page 25: Systems Analysis II Making the system operational

Development order

Also consider customer needs, project risks, staff utilization, security, or other considerations

Use a source code control system (SCCS, such as RCS) Controls check in and check out of code

and documentation

INFO 355 Week #9 25

Page 26: Systems Analysis II Making the system operational

Deployment approaches

Before deployment you’re at point A – the old system does everything

At some point you’ll be at point B – the old system is gone, and the new system does everything

How get from point A to point B? Choose a deployment approach

INFO 355 Week #9 26

Page 27: Systems Analysis II Making the system operational

Deployment approaches

Direct deployment (immediate cutover) has minimal time where both systems are in use – days or a few weeks Simple but risky No fallback position if new system fails

INFO 355 Week #9 27

Page 28: Systems Analysis II Making the system operational

Deployment approaches

Parallel deployment keeps both systems running in parallel longer (weeks to months) and new functions are taken over by the new system gradually Less risk but higher cost Good when system failure is very

expensive or dangerous

INFO 355 Week #9 28

Page 29: Systems Analysis II Making the system operational

Deployment approaches

Phased deployment implements new system functionality in specific phases, e.g. Phase A cuts over manufacturing

processes Phase B cuts over accounting processes Phase C cuts over human resources

processes Low risk but complex to manage

INFO 355 Week #9 29

Page 30: Systems Analysis II Making the system operational

Change and version control

Throughout system development and deployment, need processes in place to manage change and version control Part of configuration management (CM)

Versioning keeps track of exactly what went into each version of the system

INFO 355 Week #9 30

Page 31: Systems Analysis II Making the system operational

Versioning

Copies of the system released to the customer (production environment) might be a production release, release version, or production version

Minor production releases might be called a maintenance release

INFO 355 Week #9 31

Page 32: Systems Analysis II Making the system operational

Versioning

Every file (source code, data, script, documentation) needs to be tracked over time so you know exactly which version went into every release

Need this for recreating bugs

INFO 355 Week #9 32

Page 33: Systems Analysis II Making the system operational

Versioning

As deployment nears, alpha releases can go to favored customers to get initial feedback, bug reports, etc.

Later beta releases go to wider distribution to check system stability before production release

INFO 355 Week #9 33

Page 34: Systems Analysis II Making the system operational

Change control processes

With versioning, need a change control process to assess possible changes to the system before they are implemented

For an FAA change control process example, see here

INFO 355 Week #9 34

Page 35: Systems Analysis II Making the system operational

Change control processes

Key change control ideas include Standard reporting methods for both

bug reports and new feature ideas Systematic review of incoming reports Planning and control over changes to

the system (estimate, plan, assign, fix, test, approve)

Accommodation of normal and emergency changes

INFO 355 Week #9 35