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.
What role do programmers take when it comes to software development?
=> Develop and build the system using information passed to them by the system analysts.
=> Rarely have any direct involvement in the analysis or design of a system.
=> Usually the people who spot the more subtle problems with the system and their input is invaluable to the system’s analysts.
=> Lead programmer commonly spoken to by systems analysts during the systems analysis cycle, to get the programming teams thoughts and ideas.
What role do systems analysts take when it comes to software development?
=> Find out exactly what the customer wants.
=> Use their experience and expertise to fill in the blanks that occur along the way (since most customers are not sure exactly what they want at the start of the project, although they usually have a vague idea).
=> Responsible for conducting fact finding and producing the requirements specification.
=> Suggest possible implementation methods for the proposed project.
=> Monitor the project and offer expert knowledge on the system being built.
=> First port of call for programmers if they have a problem with/query on the requirements specification.
Describe the problem definition stage of systems development.
=> It is the process of identifying existing problems in a user’s current system, or defining what problems a new system could solve.
=> User will have problems with their existing system identified (by themselves or by an outside source), or will have a software idea that could improve their company.
=> Very little will be known about the project at this point, other than a perceived need for the system.
=> An initial meeting will be called where it is critical for both the customer and the dev company to fully discuss an agree upon
requirements for the system; this allows the user to decide whether they are comfortable with the dev company, and the dev company can decide whether they want the company to take on the project.
=> Customer and dev company agree upon the scope of the project.
Why is it important for the customer and development company to agree upon a scope at the start of any project?
It is common for customers to have an unrealistic view on what is required for the new system.
Why are unbound projects guaranteed to fail?
If a project is unbound, there is no way to differentiate between what the customer required at the start and what they want 6 months down the line.
When are development companies likely to choose a methodology that allows them to change requirements quickly, such as Agile?
When requirements are fluid.
Why is it important for analysts and customers to work together to ensure that problems are solved in the correct way?
=> Analysts are computer experts, but are not necessarily experts in the customers business.
=> Customers are experts in their own business but are not necessarily computer experts.
What is the purpose of a feasibility study?
=> Establishes whether or not the project is feasible, given the scope laid out during the definition stage.
=> Considers whether it is desirable for the developing company to proceed with the project.
What must there be when embarking on a software project?
Confidence on both sides that the project can be delivered on time and within budget.
What is likely to happen if the project is not delivered on time or outside of the agreed upon budget?
The customer:
=> The customer may decide to choose a different supplier.
=> The customer may become dissatisfied with the work.
The development company:
=> Could receive a poor reputation.
When would a project be considered a failed project?
If it fails to meet time and/or financial restrictions.
When might a development company decide to not proceed with a project?
=> If a project is unlikely to bring in much profit.
=> If a project might bring negative attention to the company.
What factors must be considered when deciding if a system is feasible?
=> Economic Feasibility. => Time Feasibility. => Technical Feasibility. => Political Feasibility. => Legal Feasibility.
Describe economic feasibility.
=> Projects have specific budgets which must cover all costs, including: software licences, hardware, human resources/wages, and the development company’s running costs.
What is important to consider when deciding whether a project is economically feasible?
It is important to consider whether the proposed system will turn a profit.
Why do hardware and software costs tend to be straightforward?
They are unlikely to change over the course of a project.
What variables are important to how much staffing will cost?
=> The number of people working on the project.
=> The rate of pay for employees.
=> The length of time of the project.
What important measures should be taken to get an accurate estimation of a projects cost?
It’s important to:
=> Know up front which staff will be needed.
=> Have a good idea of the project’s length.
=> Build in some flexibility, based on a risk assessment.
=> Consider whether the expected profit justifies funding the project; if the project would break-even or would result in a loss, the development company may decide that undertaking the project wouldn’t be worthwhile.
What might some development companies do if work is scarce?
Take on a project at a cost or at a slight loss.
Describe time feasibility.
=> It is critical that projects are delivered on time. This is because late projects result in going over budget due to the cost of developers’ wages, and the developing company will make a negative impression if they cannot deliver what they said they could.
=> May be even more time critical if the customer has very pressing business reasons for a project to be delivered for a certain date.
=> Failure to meet an agreed upon date could lead to litigation.
How is a projects length decided?
=> The project manager has to estimate how long their developers will take to complete the project.
=> This requires a balancing act based on the cost, skill level, and number of staff to bring onto the project.
Describe technical feasibility.
=> Can the project be done with the technical resources available?
=> Is the required project possible with current technology?
=> More likely to be a problem if the development team doesn’t have the skills required to satisfy the projects requirements (E.g. if you need an expert in SQL for the project but one isn’t available, the project either cost more due to the need to outsource or it won’t be technically feasible).
What is a skills audit?
=> Developers are required to fill out a skills audit whenever they join a company, to show what technologies they can work with.
=> This is updated as developers squire new skills.
How does a project manager decide who should undertake a project?
=> They check the audit list to check who is capable with the required technologies.
=> If no one is capable, the project is unable to go ahead.
Describe political feasibility.
=> Some projects may have aspects that are politically sensitive or that go against the beliefs of certain groups.
=> Systems such as NHS, tax credits, Olympic computer systems and and animal testing all come under strict scrutiny of the general public and media.
=> Any projects such as these that go wrong will be reported and shown in a bad light by the media, painting the development company in a bad light.
=> The development company has to decide whether the potential positives of undertaking the project outweigh the possible negative publicity.
Describe legal feasibility.
=> Helps decide whether the project will be able to comply with all laws that may affect it in the countries where it will be released.
=> Fines into the millions can be imposed if the software does not comply with the law.
=> Some countries might even ban use of the project and could even pursue criminal action.
=> Must be taken very seriously as the effects can be very damaging for both the customer and the development company if legal
action is taken.
What type of software has come into conflict with the law, even though it isn’t illegal in essence?
File sharing software; companies producing or facilitating it have been sued.
What is a real-world example of when a company has been affected by legal action?
Napster was shut down for a long time as courts decided that the company could do more to protect copyright. It then released
a paid service, but it didn’t do very well as the company had already lost most of its customers to competitors.
What is involved in the analysis stage of systems development?
=> Analysis is the process of finding out exactly what the system will entail by employing various fact finding methods.
=> Critically important that the result of the analysis is as complete as possible, to avoid incorrectly defined requirements; these could lead to big delays and escalated development costs.
=> Specification for the project is produced at the end of analysis.
What is the project specification?
The document that contains the exact requirements of the new system.
Which four main fact-finding methods are used during analysis?
=> Observation.
=> Questionnaires.
=> Document Collecting.
=> Interviews.
Why are the four main fact-finding methods meant to be used collectively, rather than on their own?
It is impossible to gather a complete picture of the system by using only one method, or by talking to only one person.
What is considered the ‘key to success’ when conducting systems analysis?
Trying to understand the business problem from the point of view of the company as a whole, rather than from an individual perspective.
Describe the ‘observation’ fact-finding method.
=> Analyst shadows employees of the customer and takes notes on how they do their job.
=> Employees observed in their natural environments to see exactly how the business works.
What is one of the biggest advantages of the ‘observation’ fact-finding method?
The analyst sees parts of the system that employees may not realise are important, or that they might not consider important enough to discuss.
What are the advantages of the ‘observation’ fact-finding method?
=> Pick up parts of the system that are not immediately obvious to the customer.
=> Confirm information gathered through different fact-finding methods.
What are the disadvantages of the ‘observation’ fact-finding method?
=> Some people may feel threatened while being watched/observed.
=> There is no guarantee that some of the more subtle parts of the system will show up during the observation period.
Describe the ‘questionnaire’ fact-finding method.
=> Quite a common method of fact-finding, but can be one of the most difficult.
=> Allow the analyst to get a lot of responses on a specific subset of requirements.
=> Likely to return a range of responses since they can be given to a range of people.
What makes designing a questionnaire so difficult?
Requires knowledge of both the system to be built and the range of people to whom the questionnaire will be sent.
Why can questionnaires only give limited information about very specific parts of the system to be built?
The number of choices available for each question must be restricted, as some people may give unexpected responses.