Systems Analysis Flashcards
Describe the Waterfall methodology.
=> Initially designed for use in manufacturing and engineering environments where the products being created were based around hardware rather than software.
=> Has a linear nature, with deliverables produced at the end of each stage.
=> Stages are arranged in order and it is impossible to begin a stage of development without the previous being completed.
=> Deliverable document produced at the end of each developmental stage, to inform the next stage.
Describe the purpose of design documents produced at the end of each developmental stage in teams using the Waterfall methodology. How is it ensured that each team is handed the necessary information to continue development?
=> Can be shown to clients or used internally. These must be detailed and accurate as it is likely that all teams working on developmental stages work completely separately from each other.
=> Testing of deliverables occurs at the end of each stage of development to ensure that the document provided meets requirements.
What are the advantages of using the Waterfall approach to software development?
=> It’s linear approach (sometimes).
=> Deliverables can be used to provide milestones (concrete deadlines), which helps to improve client confidence.
=> Deadlines mean that teams are more disciplined to a large project.
=> Simple to understand and is suitable for large projects where the requirements are clearly understood.
What are the disadvantages of using the Waterfall approach to software development?
=> Its linear approach (sometimes).
=> Much less flexible than other alternatives (such as the Agile approach).
=> Difficult for systems developers to react to changes or problems that crop up during any later stages (E.g. if a problem is discovered during implementation, it may be necessary to back to the top of the waterfall to revise the requirements).
=> Difficult for software engineers or their clients to completely understand the requirements of a system at the start of development. A projects requirements will commonly change over a projects life cycle (this is because programmers come to understand the area in which they are working and the client better understands what the software might be capable of).
=> Problems are amplified by how long the approach can take to implement, it is perfectly feasible for the process to take so long that, by the time the project is completed, requirements have changed dramatically.
Describe the Agile methodology.
=> Created in the 1990s.
=> Provide a flexible alternative to more structured development models.
=> Many variations which are all based on the same founding principles.
What do Agile methodologies value?
=> Collaboration and people over processes and tools.
=> Strong focus on providing programmers with the tools and resources they need, then trusting them to develop a solution to the
posed problem as efficiently as possible.
=> Teams trusted to organise and manage themselves, with a focus on regular meetings and interactions, rather than heavy documentation.
How do Agile methodologies’ focus on collaboration to customers?
Programmers spend much more time meeting regularly with clients to discuss the system’s development.
How do programmers using Agile methodologies differ from those using Waterfall methodology?
Agile programmers:
=> Favour using their time to produce software rather than detailed documentation.
=> Prefer their projects to be judged on how well their software works, rather than how development has been documented.
What are the advantages of using Agile methodologies?
=> Programmers able to deliver well-written software much faster than programmers working with more rigid developmental approaches.
=> Avoidance of lengthy documentation, along with high levels of client contact.
=> Able to quickly adapt to changes.
What are the disadvantages of using Agile methodologies?
=> Some agile techniques (e.g. pair programming), are not popular among developers or managers.
=> A lack of documentation and specific deadlines lead to problems with customers unfamiliar with the Agile approach.
What is the difference between application systems and systems software?
=> Application systems allow users to achieve some purpose.
=> Systems software is the system that runs in the background on the computer, providing a base platform on which apps are run.
What are legacy systems?
=> Systems that were around many years ago.
=> Use old technology and may be archaic by modern-day standards.
=> Could be upgraded, but the cost of replacing legacy systems can run into the millions meaning that not all of them get replaced.
Why might some companies build a new front-end for legacy systems that they retain?
To allow for a new way of interacting with the system, using modern technology such as the WWW.
What reasons could there be to commission a system?
=> Company Expansion.
=> Old systems being too slow compared to modern alternatives.
=> Lack of support for old software.
=> Desire to capitalise on new technologies.
=> A new business venture has been identified.
What does building new ICT systems require (on top of requiring programming skills)?
=> Business expertise. => Analysts. => Project managers. => Testers. => Technical authors. => Marketers. => People with good awareness of business methods, people skills and creative problem solving.
What is they system analysis cycle?
A series of steps that are followed when producing/upgrading a new ICT system.
What are the phases of a systems analysis cycle?
- Problem Definition;
- Feasibility;
- Analysis;
- Design;
- Build;
- Testing;
- Documentation;
- Maintenance;
- Evaluation.
What aspects of systems analysis cycles do not have to remain consistent across different projects?
The stages that are used since not all of them have to be used in every project.
What/who is a stakeholder?
An individual, or a group of people, with a vested interest in the new system being built.
How do passive and active stakeholders differ from each other?
=> Passive stakeholders: not involved in the production of the system.
=> Active stakeholders: have a part to play in the system to be built.
Which two companies are involved in creating a new system under normal circumstances?
The company that requires a system to be built and the company that will produce it.
What is the single biggest cost in the development process?
Staffing.
What is the difference between the user and the customer?
The customer is the person who requires a new system, the user is the person who will use the system.
Why is it important to consider the users when developing software?
They are the people who will be interacting with the system on a daily basis; the system will fail if it doesn’t meet their needs.