MOD II PLANNING AND SCHEDULING PART-A Syed Ikram 1 Identify various functional and nonfunctional requirements that may be defined for a library based system? Requirements analysis is a very critical process that enables the success of a system or software project to be assessed. Requirements are generally split into two types: Functional and Non-functional requirements. Functional Requirements: These are the requirements that the end user specifically demands as basic facilities that the system should offer. All these functionalities need to be necessarily incorporated into the system as a part of the contract. These are represented or stated in the form of input to be given to the system, the operation performed and the output expected. They are basically the requirements stated by the user which one can see directly in the final product, unlike the non-functional requirements. Non-functional requirements: These are basically the quality constraints that the system must satisfy according to the project contract. The priority or extent to which these factors are implemented varies from one project to other. They are also called non-behavioral requirements. The main function of the library management are listed below : ● Updating stock details : It must enter details regarding new book, circulars, magazines etc .The stock details are updated each and every time a new stock arrives or when an item is taken out. ● Providing Identification number: The system provides a unique identification number to each item separately. ● Manage Periodicals : It means item that comes on a periodical basis, such as newspapers, journals etc. Its function is to handle the periodicals in a proper manner. ● Reservation : One of the most important function of a Management system is that it can help members to reserve a certain item which they want from anywhere by using their membership number. ● Report generation : One of the most important functionality of a Library management is that it should generate quick reports on demand. ● Technological advancement : The management system used should be technically advanced so that it can work in such a competitive market. ● Providing a better search option : Providing better ways to search a particular stock can be said to be one of the most important functions of a library management. ● Maintaining Records : It must maintain library assets, members and staff and keep each and every detail that are relevant for running the library smoothly. ● Audit : The functional requirement of a LMS should be such that auditing the asset of the entire library should be done in seconds with ease. NON FUNCTIONAL ● Usability ● Availability & Reliability ● Backup & Disaster recovery ● Privacy & Security ● Accessibility ● Extensibility (adding features, and carry-forward of customizations at next major version upgrade) ● Performance ● Platform compatibility ● Reusability ● Operability 2 List out user requirements for the following functions a) Cash dispensing function in a bank ATM. b) Spelling check and correcting function in a word processor \ The requirements for the automated teller machine are organized in the following way: General requirements, requirements for authorization, requirements for a transaction. Functional requirements Refer this doc for complete information atm.dvi (toronto.edu) b)DFD for Spell Checking and Correcting in Word Processor - GeeksforGeeks 3 Write a set of non-functional requirements for the ticket-issuing system, setting out its expected reliability and response time. requirements can be broadly classified into two categories- Functional requirement and Non functional requirement. While the functional requirement(FR) deals with those aspects which are directly linked to the various functionalities offered by the application and user of the application can directly perform those actions, non-functional requirement(NFR) deal with the aspects which are not actually actions which can be performed by the user of the application but different quality features which can be provided, to perform FRs conveniently and comfortably. Usually, fulfilling NFRs is more challenging task for software architects and developers.(JUST FOR UNDERSTANDING) Functional ● Every online booking needs to be associated with an account ● One account cannot be associated with multiple users ● Search results should enable users to find the most recent and relevant booking options ● System should enable users to book / pay for their tickets only in a timeboxed manner after tickets being added to the cart ● System should only allow users to move to payment only when mandatory fields such as date, time, location has been mentioned ● System should consider timezone synchronisation when accepting bookings from different timezones ● Booking confirmation should be sent to user to the specified contact details Non functional ● Use of captcha and encryption to avoid bots from booking tickets ● Search results should populate within acceptable time limits ● User should be helped appropriately to fill in the mandatory fields, incase of invalid input ● System should accept payments via different payment methods, like PayPal, wallets, cards, vouchers, etc ● System should visually confirm as well as send booking confirmation to the user's contact 4 Discuss the functionality of an ATM machine and develop a set of use cases that could serve as a basis for understanding the requirements for an ATM system be organized Automated Teller Machine (ATM) also known as ABM (Automated Banking Machine) is a banking system. This banking system allows customers or users to have access to financial transactions. These transactions can be done in public space without any need for a clerk, cashier, or bank teller. Working and description of the ATM can be explained with the help of the Use Case Diagram. We will understand about designing the use case diagram for the ATM system. Some scenarios of the system are as follows. Step-1: The user is authenticated when enters the plastic ATM card in a Bank ATM. Then enters the user name and PIN (Personal Identification Number). For every ATM transaction, a Customer Authentication use case is required and essential. So, it is shown as a relationship. Example of use case diagram for Customer Authentication is shown below: Step-2: User checks the bank balance as well as also demands the mini statement about the bank balance if they want. Then the user withdraws the money as per their need. If they want to deposit some money, they can do it. After complete action, the user closes the session. Example of the use case diagram for Bank ATM system is shown below: For more refer https://www.geeksforgeeks.org/use-case-diagram-for-bank-atm-system/ 5 Explain who should be involved in requirements review? draw a process model showing how a requirements review might be organized. A requirement review is a process where a group of people read and analyze the requirements, look for problems, meet and discuss the problems and agree on actions to address these problems from the system customer and the system developer read the requirements document in detail and check for errors, anomalies, and inconsistencies. Once these have been detected and recorded it is then up to the customer and the developer to negotiate how the identified problem should be solved. The requirements are analyzed systematically by a team of reviewers who check for errors and inconsistencies. A group of people read and analyze the requirements, look for problems, meet and discuss the problems and agree on action to address problems. Reviews should involve a number of stakeholders from different backgrounds. ● - People from different backgrounds bring different skills and knowledge to the review ● - Stakeholders feel involved in the process and develop an understanding of the needs of other stakeholders. ● - Review team should always involve at least a domain expert and an end-user. Reviewer’s stakeholders driving the system requirements stakeholders in the supply chain stakeholders within the solution team stakeholders receiving the solution stakeholders driving the business. 6 Explain software requirements engineering process. Outline the importance of feasibility study in generating the feasibility report for an assigned project Requirements engineering (RE) refers to the process of defining, documenting, and maintaining requirements in the engineering design process. Requirement engineering provides the appropriate mechanism to understand what the customer desires, analyzing the need, and assessing feasibility, negotiating a reasonable solution, specifying the solution clearly, validating the specifications and managing the requirements as they are transformed into a working system. Thus, requirement engineering is the disciplined application of proven principles, methods, tools, and notation to describe a proposed system's intended behavior and its associated constraints. Requirement Engineering Process It is a four-step process, which includes - Feasibility Study 1. Requirement Elicitation and Analysis 2. Software Requirement Specification 3. Software Requirement Validation 4. Software Requirement Management Feasibility Study in Software Engineering is a study to evaluate feasibility of proposed project or system. Feasibility study is one of stage among important four stages of Software Project Management Process. Feasibility studies can identify the logistical, financial, and market challenges of a proposed project by evaluating: ● What the estimate would be to fund the project ● When the potential business will offer a return on investment ● The market for the proposed product or service ● Likely consumers of the product or service ● Likely competitors with a similar product or service ● The price consumers may be willing to pay for the product or service ● How large of a market share a tribal business is likely to capture Need of Feasibility Study : Feasibility study is so important stage of Software Project Management Process as after completion of feasibility study it gives a conclusion of whether to go ahead with proposed project as it is practically feasible or to stop proposed project here as it is not right/feasible to develop or to think/analyze about proposed project again. Along with this Feasibility study helps in identifying risk factors involved in developing and deploying system and planning for risk analysis also narrows the business alternatives and enhance success rate analyzing different parameters associated with proposed project development. 7 Define risk management. Discuss about various types of Software Risks identified during software development Risk Management A software project can be concerned with a large variety of risks. In order to be adept to systematically identify the significant risks which might affect a software project, it is essential to classify risks into different classes. The project manager can then check which risks from each class are relevant to the project. There are three main classifications of risks which can affect a software project: ● Project risks ● Technical risks ● Business risks 1. Project risks: Project risks concern differ forms of budgetary, schedule, personnel, resource, and customer-related problems. A vital project risk is schedule slippage. Since the software is intangible, it is very tough to monitor and control a software project. It is very tough to control something which cannot be identified. For any manufacturing program, such as the manufacturing of cars, the plan executive can recognize the product taking shape. 2. Technical risks: Technical risks concern potential method, implementation, interfacing, testing, and maintenance issue. It also consists of an ambiguous specification, incomplete specification, changing specification, technical uncertainty, and technical obsolescence. Most technical risks appear due to the development team's insufficient knowledge about the project. 3. Business risks: This type of risks contain risks of building an excellent product that no one need, losing budgetary or personnel commitments, etc. Other risk categories 1. Known risks: Those risks that can be uncovered after careful assessment of the project program, the business and technical environment in which the plan is being developed, and more reliable data sources (e.g., unrealistic delivery date) 2. Predictable risks: Those risks that are hypothesized from previous project experience (e.g., past turnover) 3. Unpredictable risks: Those risks that can and do occur, but are extremely tough to identify in advance. Principle of Risk Management Global Perspective: In this, we review the bigger system description, design, and implementation. We look at the chance and the impact the risk is going to have. Take a forward-looking view: Consider the threat which may appear in the future and create future plans for directing the next events. Open Communication: This is to allow the free flow of communications between the client and the team members so that they have certainty about the risks. Integrated management: In this method risk management is made an integral part of project management. Continuous process: In this phase, the risks are tracked continuously throughout the risk management paradigm. 8 Compare and contrast between reactive risks and proactive risks with suitable example. Discuss the need for risk identification. Reactive risk management is often compared to a firefighting scenario. The reactive risk management kicks into action once an accident happens, or problems are identified after the audit. The accident is investigated, and measures are taken to avoid similar events happening in the future. Further, measures will be taken to reduce the negative impact the incident could cause on business profitability and sustainability. Reactive risk management catalogs all previous accidents and documents them to find the errors which lead to the accident. Preventive measures are recommended and implemented via the reactive risk management method. This is the earlier model of risk management. Reactive risk management can cause serious delays in a workplace due to the unpreparedness for new accidents. The unpreparedness makes the resolving process complex as the cause of the accident needs investigation and solution involve high cost, plus extensive modification. What is Proactive Risk Management? Contrary to reactive risk management, proactive risk management seeks to identify all relevant risks earlier, before an incident occurs. The present organization has to deal with an era of rapid environmental change that is caused by technological advancements, deregulation, fierce competition, and increasing public concern. So, a risk management which relies on past incidents is not a good choice for any organization. Therefore, new thinking in risk management was necessary, which paved the way for proactive risk management. Proactive risk management can be defined as “Adaptive, closed loop feedback control strategy based on measurement, observation of the present safety level and planned explicit target safety level with a creative intellectuality”. The definition relates to the flexibility and creative intellectual power of humans who have a high sense of safety concern. For more (reciprocity.com) 9 Define software requirement. Explain the importance of software requirements document in a project with suitable example The production of the requirements stage of the software development process is Software Requirements Specifications (SRS) (also called a requirements document). This report lays a foundation for software engineering activities and is constructing when entire requirements are elicited and analyzed. SRS is a formal report, which acts as a representation of software that enables the customers to review whether it (SRS) is according to their requirements. Also, it comprises user requirements for a system as well as detailed specifications of the system requirements. The SRS is a specification for a specific software product, program, or set of applications that perform particular functions in a specific environment. It serves several goals depending on who is writing it. First, the SRS could be written by the client of a system. Second, the SRS could be written by a developer of the system. The two methods create entirely various situations and establish different purposes for the document altogether. The first case, SRS, is used to define the needs and expectation of the users. The second case, SRS, is written for various purposes and serves as a contract document between customer and developer. importance ● The users and the client get a brief idea about the software while in the initial stages. ● The purposes and the intentions as well as the expected results are properly defined. It hence lays the outline for software design. ● The desired goals are defined thereby easing off the efforts of the developers in terms of time and cost. ● It forms a basis for the agreement between the client and the developer. ● It becomes easier while transferring and using the solution elsewhere or with new customers as the basis of functioning of the software is mentioned. ● It acts as a material for reference at a later stage. ● It acts as the basis for reviews. Since the SRS is an important document and is required right from the initial stages of the agreement till the final verification and cross checking of the end product is done, this should be prepared with utmost care after having a proper understanding of the product to be developed. 10 Define cost estimation. Discuss the importance of constructive cost estimation model II under project estimation. Refer COCOMO Model in Software Engineering - ArtOfTesting Cost estimation simply means a technique that is used to find out the cost estimates. The cost estimate is the financial spend that is done on the efforts to develop and test software in Software Engineering. Cost estimation models are some mathematical algorithms or parametric equations that are used to estimate the cost of a product or a project. A cost estimate is the approximation of the cost of a program, project, or operation. The cost estimate is the product of the cost estimating process. The cost estimate has a single total value and may have identifiable component values. Boehm proposed a model – COCOMO model (Constructive Cost Estimation model) to estimate the cost and effort required to complete any product based on its size. This model was not very accurate but still gives a good rough idea and is still in use. Cocomo (Constructive Cost Model) is a regression model based on LOC, i.e number of Lines of Code. It is a procedural cost estimate model for software projects and is often used as a process of reliably predicting the various parameters associated with making a project such as size, effort, cost, time, and quality. . The key parameters which define the quality of any software products, which are also an outcome of the Cocomo are primarily Effort & Schedule: Effort: Amount of labor that will be required to complete a task. It is measured in person-months units. Schedule: Simply means the amount of time required for the completion of the job, which is, of course, proportional to the effort put in. It is measured in the units of time such as weeks, months. Advantages of COCOMO Model ● COCOMO is transparent, one can see how it works unlike other models such as SLIM ● Drivers are particularly helpful to the estimator to understand the impact of different factors that affect project costs. ● COCOMO Provides ideas about historical projects. ● The COCOMO model is easy to estimate the total cost of the project. ● The drivers are very helpful to understand the impact of the different factors that affect project crises. PART-B Abhiram 1A) PART A 9TH QUESTION 2A) Throwaway prototypes are developed from the initial requirements but they are not used for the final product and not an alternative for written specification of the requirements. It enables quick prototyping and commits to throwing the prototype away. If the users can get quick feedback on their requirements, they may be able to refine the requirements early in the development of the software. Then changes can be done early in the development life cycle. Throwaway prototype has a short project timeline and is easier and faster to develop the interface. This type of prototyping can be used at any time in a project by any of the project’s personnel. Throwaway prototypes actually do nothing, it’s just presentation only for a limited purpose. Soon it will be starting to become a thing of the past. This type of prototyping is not getting used as much now. 3A) 4A) Rapid Prototyping helps designers present new concepts to board members, clients or investors so that they can understand and approve a development or product. This visualization can also allow designers to gain ready feedback from customers and clients based on an actual physical product rather than a concept. RP is a very cost effective way to prototype products as it is an automated process, requiring less staff to operate. This process is also extremely precise, being able to use computer aided design (CAD) to help reduce the amount of material wastage and does not require special tools for prototyping each new product. Being able to act quickly and solve any problems also reduces the risk of costly errors during the manufacturing stage. As rapid prototyping is an iterative process it allows customer requirements to be incorporated into designs cost-effectively. The cost depends on a number of factors, including volume or size of the part or parts being created, the surface finish, the materials used and how much post manufacture processing is required. 5A) A software process is defined as a set of related activities that leads to the production of a software product. At an abstract level, a software process involves activities related to specification, design, development, validation (testing), and evolution (maintenance) of software. The various phases of incremental model are as follows: 1. Requirement analysis: In the first phase of the incremental model, the product analysis expertise identifies the requirements. And the system functional requirements are understood by the requirement analysis team. To develop the software under the incremental model, this phase performs a crucial role. 2. Design & Development: In this phase of the Incremental model of SDLC, the design of the system functionality and the development method are finished with success. When software develops new practicality, the incremental model uses style and development phase. 3. Testing: In the incremental model, the testing phase checks the performance of each existing function as well as additional functionality. In the testing phase, the various methods are used to test the behavior of each task. 4. Implementation: Implementation phase enables the coding phase of the development system. It involves the final coding that design in the designing and development phase and tests the functionality in the testing phase. After completion of this phase, the number of the product working is enhanced and upgraded up to the final system product Advantage of Incremental Model o Errors are easy to be recognized. o Easier to test and debug o More flexible. o Simple to manage risk because it handled during its iteration. o The Client gets important functionality early. Disadvantage of Incremental Model o Need for good planning o Total Cost is high. o Well defined module interfaces are needed. 8A) The basic processes of project planning are: ● Scope planning – specifying the in-scope requirements for the project to facilitate creating the work breakdown structure ● Preparation of the work breakdown structure – spelling out the breakdown of the project into tasks and sub-tasks ● Project schedule development – listing the entire schedule of the activities and detailing their sequence of implementation ● Resource planning – indicating who will do what work, at which time, and if any special skills are needed to accomplish the project tasks ● Budget planning – specifying the budgeted cost to be incurred at the completion of the project ● Procurement planning – focusing on vendors outside your company and subcontracting ● Risk management – planning for possible risks and considering optional contingency plans and mitigation strategies ● Quality planning – assessing quality criteria to be used for the project ● Communication planning – designing the communication strategy with all project stakeholders ● The purpose of the project planning phase is to: ● Establish business requirements ● Establish cost, schedule, list of deliverables, and delivery dates ● Establish resources plans ● Obtain management approval and proceed to the next phase 9A) Estimation: The process approximating a value that can be used even if the data may be incomplete or unstable is referred to as estimation. Problem based estimation: ● Begins with a statement of scope. ● The software is decomposed into problem functions. ● Estimating FP or LOC. ● Combine those estimates and produce an overall estimate. Process based estimation: ● The functions of the software are identified. ● The framework is formulated. ● Estimate effort to complete each software function. ● Apply average labor rates, compute the total cost and compare the estimates. 10A) Estimation is the process of finding an estimate, or approximation, which is a value that can be used for some purpose even if input data may be incomplete, uncertain, or unstable. Estimation determines how much money, effort, resources, and time it will take to build a specific system or product. Estimation is based on − ● Past Data/Past Experience ● Available Documents/Knowledge ● Assumptions ● Identified Risks The four basic steps in Software Project Estimation are − ● Estimate the size of the development product. ● Estimate the effort in person-months or person-hours. ● Estimate the schedule in calendar months. ● Estimate the project cost in agreed currency 11A) Process based estimation: The functions of the software are identified. The framework is formulated. Estimate effort to complete each software function. Apply average labor rates, compute the total cost and compare the estimates. TOOL BASED X 12A) Software Cost Estimation For any new software project, it is necessary to know how much it will cost to develop and how much development time it will take. These estimates are needed before development is initiated, but how is this done? Several estimation procedures have been developed and have the following attributes in common. 1. Project scope must be established in advance. 2. Software metrics are used as a support from which evaluation is made. 3. The project is broken into small PCs which are estimated individually. To achieve true cost & schedule estimate, several option arise. 4. Delay estimation 5. Used symbol decomposition techniques to generate project cost and schedule estimates. 6. Acquire one or more automated estimation tools. Uses of Cost Estimation 1. During the planning stage, one needs to choose how many engineers are required for the project and to develop a schedule. 2. In monitoring the project's progress, one needs to access whether the project is progressing according to the procedure and takes corrective action, if necessary. Static, Multivariable Models: These models are based on method (1), they depend on several variables describing various aspects of the software development environment. In some models, several variables are needed to describe the software development process, and selected equations combine these variables to give the estimate of time & cost. These models are called multivariable models. 13A) 14A) 15A) 1)Poor Requirements Definition or Sudden Change in Specification. ... 2)Insufficient Time and Efforts in Planning. ... 3)Over Optimistic Time Estimates. ... 4)Losing Key Development Team Members. ... 5)Working on Too Many Projects Simultaneously. ... 6)Making Decisions and Giving Approvals. 7)Logical design errors. 8)Coding errors. 16A) 17A) SRS SPECIFICATIONS IN PART A refer it 18A) Non-Functional Requirements are the constraints or the requirements imposed on the system. They specify the quality attribute of the software. Non-Functional Requirements deal with issues like scalability, maintainability, performance, portability, security, reliability, and many more. Non-Functional Requirements address vital issues of quality for software systems. If NFRs not addressed properly, the results can include: ● Users, clients, and developers are unsatisfied. ● Inconsistent software. ● Time and cost overrun to fix the software which was prepared without keeping NFRs in mind. Types of Non-functional Requirement : 1. Scalability 2. Reliability 3. Regulatory 4. Maintainability 5. Serviceability 6. Utility 7. Security 8. Manageability 9. Data integrity 10.Capacity 11. Availability 12.Usability 13.Interoperability 14.Environmental Advantages of Non-Functional Requirement : ● They ensure the software system follows legal and adherence rules. ● They specify the quality attribute of the software. ● They ensure the reliability, availability, performance, and scalability of the software system ● They help in constructing the security policy of the software system. ● They ensure good user experience, ease of operating the software, and minimize the cost factor. Disadvantages of Non-functional requirement : ● The nonfunctional requirement may affect the various high-level software subsystem. ● They generally increase the cost as they require special consideration during the software architecture/high-level design phase. ● It is difficult to change or alter non-functional requirements once you pass them to the architecture phase. 19A) What are ethnographic methods? Ethnographic methods are a research approach where you look at people in their cultural setting, with the goal of producing a narrative account of that particular culture, against a theoretical backdrop. As part of this you will look at: ● Deeds done as well as words used ● How they interact with one another, and with their social and cultural environment ● What is not said as much as what is said ● Language, and symbols, rituals and shared meanings that populate their world Ethnography is a common approach in various social science fields, not just anthropology. It is used not only to study distant or unfamiliar cultures, but also to study specific communities within the researcher's own society. A classic example of ethnographic research would be an anthropologist traveling to an island, living within the society on said island for years, and researching its people and culture through a process of sustained observation and participation. 20A) PART 1 REFER KARR 21,22,23,24) REPEATED