In: Computer Science
Dear Student,
1) For question 1, the analyst is trying to get complete requirements for software from the business user. With the question "How should the new system meet your need?", the answer would be how new software should work. Users are not aware of the software building, they know about functionalities and business process. Instead, the analyst should get the functionalities that the user does. The analyst should tell the management about how the new system meets user needs.
Consequences: When the user defines the system, there is a great chance it would not fit into the budget as well as in time frame. The user may demand continuous availability for 24 hours when the actual usage is limited to 12 hours. He may also list down the things which are of menial value. In conclusion, your project would be going in the wrong direction as well as it takes more time for rewriting the requirements.
2) Functional Requirements for flight reservation system:
1) Allow users to search for a flight
2) Allow users to book the seats.
3) Allow users to cancel the booking
4) Allow administrators to add flights for the different routes
5) Allow users to sort the flights by price and ratings
6) Maintain users preferences, account details in the system.
Non-Functional Requirements
1) The system should be available 24*7
2) Intuitive to use /user-friendly
3) Response time should be low as possible
4) Software should allow 10000 concurrent users to use the system
5)Portability: The Application should run in different browsers including mobile browsers
6) Reliability: The mean time between failures for the system will be 10000 hours. I.e the system shall be down rarely.
3)Why do many new System Analysts fail to effectively analyze problems? (10 points)
a) They don't look at the bigger picture of the software because of poor understanding of the need for software.
b) Analysts often get misled by system users, in general users tend to list down many features even though they are of little importance. Ideally, the analyst should note down all the requirements and sort them based on the priority. Very often, analysts fail here.
c) Collection of data. Before proceeding to start the design phase, the analyst should gather adequate data to describe the requirements. User interviews are very important here, the analyst should interview many users to get the requirements.
4) How is the logical design phase different from the requirement analysis phase
In the requirement phase, we collect user inputs and frame the final requirements of the system. Be it functional or non-functional requirements. For eg in the requirement phase, we create use cases/user stories in the process. This will be understood by naive users. We validate the requirements thoroughly and get concurrence from management for proceeding further. Budget is decided based on the number of user stories and complexities involved.
The design phase is mostly related to software building, we decide how entities in the system should interact within the system and the relationships between them. Moreover, we design the class diagrams and E-R for the database as well. The design is basically understood by software professionals. This is an important step before proceeding to develop the software.
5) Acceptance test cases define the success scenarios of the system. The ideal software should pass all the test cases, if we define the test cases before, the developers can understand how the system should work and build the software accordingly. It is to check if the software is in compliance with the user expectations, hence its a best practice to define them before the start of development phase.
I have written the answers for all of your questions. Please let me know if you need help in understanding the above points.