1.5 Flashcards
Feasibility Study
A study leading to a preliminary report to the end user to be advised on:
Technical Practicality, Cost Effectiveness, Time Scale, Budget.
To provide information required to support a decision to proceed
Stages of Program Production
- Feasibility Study
- Analysis
- Design
- Implementation
- Testing
- Changeover
- Maintenance
Abstraction
removing layers of complexity to reduce the problem to essential features
Analysis Stage
Investigation into a problem and how to solve it
- identify the main requirements
- identify IPSO from system
- describe system using DFD
- develop ER diagrams
- identify constrains
- specify hardware/software required
Decomposition
breaking down a problem into smaller sub problems
Interview
- Suitable when requiring lots of info from few staff
- choose key stakeholders
- Gather large amount of information.
- Judgements on validity – Body language
- Analyst can respond and ask follow-up questions to get detailed responses about key parts
- Time consuming and expensive
- Need trained interviewer
- Difficult to analyse large amount of information
- Difficult to analyse large variety of information
Questionnaire
- Cheap to produce for large number of people
- Distributed worldwide
- Completed online
- Need to be designed by experts
- May be ‘too busy’ to complete
- May provide false answers
Document Inspection
- Find out current data storage requirements
- Can see data flow and document trail throughout, from start to finish
Observaition
- Shadow emploees
- Gather information first hand
- Confirm findingings from other modes of investigation
External Entity DFD
Entering Data (2 Boxes)
Process DFD
Calculation, sort, filter (rounded box)
Data Store DFD
Provides data to/from a process (box with no right line)
Data Flow DFD
Must be labelled with data, direction of flow of data (arrow)
Design Stage
Design team will create accurate technical documents to instruct the programmers.
Implementation Stage
Programmers consider:
- Level of language
- Type of language
- Choice of language
-IDE
- Translation method
- Rules for writing/debugging
Alpha Testing
Testing carried out in house by employees to test functionality and takes placebefore beta testing
Beta Testing
When software close to finished product is released to an audience outside of the company and their comments are recorded
Acceptance Testing
Testing performed by the customer in their own environment
Direct Change Over
- Sudden change to a new system
- Simple but dangerous
- Used if there is no old system or is it broken/unusable
- All new systems liable to have bugs
Phased Changeover
- System is replaced feture by feature
- Projects are often split into modules
- Replacing modules of old system with new system
- User can get used to new system gradually
- Training done in stages
- Difficulties managed in one area can be in the next area
- Slower to get new system started
Pilot Changeover
- Whole system is replaced departmetn by department
- Large organisations tend to have more than one site
- Tested on a limited number of sites
- Whole system can be fully trialled
- Only part of the system is affected by failure
- Pilot staff can help train other staff
- Difficulties identified by one department can be fixed
- Slow
- No backup if failure
Parallel Changeover
- Both systems running together for a time
- Every action is duplicated on each system
- Safe, not catastrophic
- New system available to all
- IO can be compared
- Expensive as needs staff to operate both systems
- Confusion having 2 systems
Perfective Maintenance
When system functionality is improved/ enhanced
EG search time reduced
Adaptive Maintenance
When the system is changed to run on new hardware or software platform
EG switch from windows to linux
Corrective Maintenance
Fixing bugs in the system that were not detected during development or system testing
Maintenancde Documentation
- Written by the original programmer using technical language
- Updated continuously throughout development
- Used to assist with maintenance or to recreate the system
Contents of a Maintenance Document
- Algorithms
- Annotated Listings
- Variable List
- Data Dictionary
- Class Diagram
- List of Subroutines
- Entity Relationship Diagrams
User Documentation
- Created after the new system has been developed
- In simple language for non experts
- Assists in learning the features of the software
- Detailed instructions
- Installation guide
Generation File Backup System
- Storing 3 of the most recent versions of master file
- Useful of one version is corrupeted
- Data should be stored off site in case of a disaster
Incremental Backup
- Only backs up data that has changed and writed over older backups
- Useful as it saves storage space and is faster than full back up
- Only allows the user to restore the most recent backup
Recovery Routines of a Backup
- Remove threat
- Increase security
- Buy new hardware
- Staff should be trained to restore data
Waterfall Project Methodology
Sequential design process where various developers draft up all of the requirements for a system up front
Waterfall Advantages
- Client knows what to expect: time frame, size, cost, function
- Client input is only required during analysis and at times, design
- If employees leave/join, documentation allows for new staff to be up to speed quickly
Waterfall Disadvantages
- Once a stage is complete you cant go back
- If inital requirements are inaccurate or incorrect, project is guaranteed to fail due to rigidness
- Project is only tested once it is complete. If bugs are made early on, large amount of code will be affected
- If clients needs change, the project will take longer than expected
Agile Project Methodology
- Product is built in a series of iterations known as sprints
- Short, time boxed periods when a team has focused goals to complete a set amount of work
- Each sprint should be a bite sized piece of focused work 1-4 weeks
Agile Advantages
- Changes can be made after the inital planning phase, as the client makes changes
- Changes can be made after each phase of development, analysis can be revisited
- Analysis informs the design and the design informs further analysis to be undertaken
- Testing is done as the project is developed, ensuring that bugs are found earlier
- Smaller team can work on the product as removing the upper layers of project managers
- There can be a closer relationship betweeen the customer and developer
- Most suitable when the end goal is not clearly defined
- Sprints of work are done and priorities of the project are discussed
- Simple product is released to the customer and they are able to use it and provide feedback
Agile Disadvantages
- hard to employ new people into a team when there is less of a clearly defined structural process
- difficult to predict when the porject will be complete or how much it will cost
- End user will have to put alot of time aside to be involved with development team