Uploaded by harikasingh1985

OOSE Module 2 Complete Solutions

advertisement
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
Download