What phase of the SDLC is requirements engineering in?
Phase 2: Analyze
During the first part of the systems analysis phase, the SA must identify and describe all systems requirements. What is a system requirement?
A characteristic/feature that must be included in an information system to satisfy business requirements and be acceptable to users. Serves as a benchmark to measure overall acceptability.
What is requirements engineering?
The process of using fact-finding techniques to describe the CURRENT system and identify the requirements for the NEW system.
What are the three main activities of requirements engineering?
1. Gathering requirements - understanding the problem.
2. Representing requirements - describing the problem.
3. Validating and verifying requirements - agreeing upon the problem.
What is a functional requirement?
A statement of the services a system provides.
What is a non-functional requirement?
A statement of operational system constraints or "quality attributes". Ex. Response time must not exceed four seconds.
Describe the three requirements challenges.
Imprecision: requirements are written in natural language, which make them imprecise and prone to misinterpretation.
Agreement: getting everyone to agree on the exact meaning of the requirements statement is hard.
Creep: long-term systems may be subject to different and more requirements. This can result to "feature creep".
What are some other considerations that a system might require?
Scalability: a system's ability to handle increased volume of business and transactions. A scalable system offers a better return on the initial investment.
Security: how hard a system is to infiltrate.
Total cost of ownership (TCO): all costs in the system; includes all future operational and support costs.
What is JAD and is it's end product?
Joint Application Development is a development process that brings users into the development process as active participants. The end product is a requirements model.
What are pros and cons of JAD?
Disadvantages: more expensive, can be cumbersome if group is too large.
Advantages: users feel a better sense of ownership, faster dev. times and greater client satisfaction, produces a more accurate statement of system requirements and allows key users to participate effectively.
What is RAD and what is it's end product?
Rapid Application Development is a team-oriented development process that speeds up the development of an information system. The end product is a new and completed information system.
Describe the four-phase life cycle of RAD.
1. Requirements Planning Tasks: users, managers, IT staff, etc. discuss and agree on business needs, project scope, constraints and system requirements. This phase ends when the team agrees on the key issues and obtains management authorization to continue.
2. User Design Tasks: users interact with each other, models and prototypes are built (represent all system processes, outputs and inputs) and conduct intensive meetings.
3. Construction Tasks: where the system is actually built (coding, integration etc.) and users are still able to make changes or improvements for the system to meet their needs.
4. Cutover Tasks: testing, and user training. The entire process is compressed as a result, the new system is built and placed in operation much sooner.
What are the pros and cons of RAD?
Disadvantages: less control, lack of scalability (RAD is best for small and medium projects), doesn't emphasize strategic business needs or functional requirements.
Advantages: develops systems quicker with cost savings, early risk detection.
What are agile methods?
An agile method is a process of creating a system incrementally by building prototypes and then adjusting them to user requirements. Each step is affected by what was learned in the previous stages.
What are the pros and cons of an agile method?
Disadvantages: members need a high level of technical and interpersonal skills, lack of structure can introduce risk factors.
Advantages: flexible and efficient in dealing with change, validates the project and reduces risk.
What are some tools used when gathering requirements?
Develop a fact-finding plan: interviews, questionnaires and surveys, sampling, research and observation. Gathering requirements allows the SA to understand the current situation by asking who, what, when, where, how and why questions.
The second step of requirements engineering is representing requirements. What is it?
Describing the problem. This can be done by recording data and information through natural language, diagrams, functional decomposition diagrams (FDD), business process diagrams and data flow diagrams (DFD).
The third step in requirements engineering is validating and verifying (V & V) requirements. What does it mean?
Demonstrating that the requirements define the system that the customer really wants.
Validation: are the correct requirements stated?
Verification: are the requirements stated correctly?
In a scrum approach, who are the "pigs"?
The product owner, the facilitator and the development team. AKA people who have to make a whole commitment to the project.
In a scrum approach, who are the "chickens"?
Users, other stakeholders and managers. AKA people who make a contribution to the project.
___ is the best visual representation for requirements.
a) UML
b) FDD
c) Natural language
b) Functional decomposition diagrams: a top-down representation of a function or process.
What are the 5 categories of system requirements?
- input
- output
- process
- performance
- controls
What does RAD rely on?
It relies heavily on prototyping and user involvement.