# SE UT1 QB ## Perspective Waterfall vs Evolution Prototype ### Waterfall Model ![Waterfall Mode Prototype](https://hackmd.io/_uploads/Hkxj39mpp2.png) 1. Requirement Analysis: - Requirement elicitation is a pratice of collecting the requirements of a system from users, customers and other stake holders. - This is also known as requirement gathering. - It includes interviews, questionnaires, user observation, workshops etc. 2. Design: - Using SSR we will design the software architecture (Blueprint) 3. Implementation: - In implementation actual coding takes the place. 4. Verfication/Testing: - Coding done by the developer will be verified. 5. Maintainence: - Solving issues and adding new functionality. **Advantages** Phases will not overlapped. Suitable for small projects. **Disadvantages** Not suitable for large projects. The software or product will be available only at the end of the process. Difficult to modify system requirements middle of development process. ### V - model ![V-Model Diagram](https://hackmd.io/_uploads/rk_GA8a63.png) ## Requirement Validation & Requirement Validation management (any one) ### Requirement Validation ![Requirement Validation Diagram](https://hackmd.io/_uploads/SkBDrHTan.png) - Requirement validation is the process of checking that requirement which are defined defined for development. - Performs different type of test to check the requirements mentioned in SRS. These checks include. - Completeness checks - Consistency checks - Validity checks - Realism checks - Ambiguity checks - Verifiablilty - Requirements Validation Techniques: 1. **Requirements review/inspection**: Manual analysis of requirements. 2. **Prototyping**: Executable model of system. 3. **Test-ease generation**: Checks testablity. ### Requirement Management - It is a process of managing, charging requirements during system development. - New requirements emerge during the process as business needs a change, and a better understanding of the system is developed. - The priority of requirement from different viewpoints changes during development process. - The business and technical environment of the the system changes during the development. ## Feasibility studies A feasibility study is assessment of the practicality of project of system. A Feasibility study aims to objectively and rationally uncover the strengths an weaknesses of an existing business or proposed venture, opportunities and threats present in the natural environment, the resources required to carry through, and ultimately the prospects for success. A feasibility study typically considers the following factors: - - **Technical feasibility:** Is the project technically possible? - - **Economic feasibility:** Is the project economically viable? Will it generate enough revenue to cover the costs? - - **Legal feasibility:** - - **Operational feasibility:** - - **Time feasibility:** ## 3 P's Management Spectrum 1. For properly building a product, there's a very important concept that we all should know while developing a product. 2. There are basically 3 critical components know as 3P's 1. People 2. Product 3. Process ![Management Spectrum](https://hackmd.io/_uploads/r1w0dr6T2.png) ### People The most important of a product and its successful implementation is human resources. In building a proper product, a well-managed team with clear-cut role defined for each person/item will lead to the success of the product. We need to have a good team in order to save our time, cost and effort. ### Product As the name suggests, this is the result of the project. The project manager should clearly define the product scope to ensure a successful result, control team members as will as technical hurdles face by the team. Product can consist of tangible/intangible components. ### Process In every planning, a clearly defined process is the key to the success of any product. It regulates how the team will go about it's development in the respective time period. The process has several steps involved like documentation phase, implementation phase etc. ![Process Diagram](https://hackmd.io/_uploads/BkNCmITah.png) ## Estimation techniques: LOC or FP ### Line of Code (LOC) A line of code is any line of text in a code that is not a comment or blank line. **Advantages** Most used metric in cost estimation. It is very easy to estimate the efforts. **Disadvantages** It correlates poorly with quality & efficiency of code. It doesn't consider complexity. ### FP ## 1st module - advantages & disadvantages of any model. ## Function & Non-functional Requirement | Functional | Non-functional | |--|--| | Help to understand the function of the system | Helps to understand the system performance | | Mandating requirement | Not mandating requirement | | They are easy to define | Hard to define | | Describes what the software system must do. | Describes how the software system should behave. | | Ex: The software must be able to search for products. | Ex: The software must be secure. The software must be scalable. | ## Management spectrum ![SE Diagrams](https://hackmd.io/_uploads/Bkeqo_CT2.png)