Software Engineering and project management compressed notes for unit 2 (System requirement)
Size: 1.91 MB
Language: en
Added: Feb 27, 2025
Slides: 50 pages
Slide Content
Unit -2
Software Requirements
Functional and non-functional requirements, user requirements,
system requirements, interface specification,
The software requirements document
Requirements engineering process: Feasibility studies , requirements
elicitation and analysis, requirements validation, requirements
management
Software project effort and cost estimation –Cocomomodel I, Cocomo
Model II, LOC, Function point metrics
Functional and non-functional requirements
•Software system requirements are often classified as functional requirements or
nonfunctional requirements:
1. Functional requirements These are statements of services the system should
provide, how the system should react to particular inputs, and how the system
should behave in particular situations. In some cases, the functional requirements
may also explicitly state what the system should not do.
2. Non-functional requirements These are constraints on the services or functions
offered by the system. They include timing constraints, constraints on the
development process, and constraints imposed by standards. Non-functional
requirements often apply to the system as a whole, rather than individual system
features or services.
Readers of Different types of requirements
specification
Functional Requirements
Non-Functional Requirements
Non-Functional classifications
Goals and Requirements
Metrics for specifying non functional requirements
Domain Requirements
The software requirements document
(Software Requirements Specification-SRS)
Agile methods and requirements
Users of a requirements documents
The structure of a requirements document
Requirements Engineering Process
Feasibility Study
The objective behind the feasibility study is to create the reasons
for developing the software that is acceptable to users, flexible to
change and conformable to established standards.
•TypesofFeasibility:
1.TechnicalFeasibility-Technicalfeasibilityevaluatesthe
currenttechnologies,whichareneededtoaccomplish
customerrequirementswithinthetimeandbudget.
2.OperationalFeasibility-Operationalfeasibilityassesses
therangeinwhichtherequiredsoftwareperformsaseries
oflevelstosolvebusinessproblemsandcustomer
requirements.
3.EconomicFeasibility-Economicfeasibilitydecides
whetherthenecessarysoftwarecangeneratefinancialprofits
foranorganization.
A spiral view of requirements engineering
process
Requirements elicitation and analysis
Problems of requirements analysis
The requirements elicitation and analysis process –4 stages
Requirements validation
Requirements checking
Requirements validation techniques
1. Requirements reviews The requirements are analyzed systematically by a team
of reviewers who check for errors and inconsistencies.
2. Prototyping In this approach to validation, an executable model of the system in
question is demonstrated to end-users and customers. They can experiment with
this model to see if it meets their real needs.
3. Test-case generation Requirements should be testable. If the tests for the
requirements are devised as part of the validation process, this often reveals
requirements problems. If a test is difficult or impossible to design, this usually
means that the requirements will be difficult to implement and should be
reconsidered. Developing tests from the user requirements before any code is
written is an integral part of extreme programming.
Requirements management
Changing Requirements
Requirements management planning
Requirements change management
Requirements change management
Software project-Effort and cost estimation
•Software cost and effort estimation will never be an exact science. Too many
variables— human, technical, environmental, political—can affect the
ultimate cost of software and effort applied to develop it
•To achieve reliable cost and effort estimates, a number of options arise:
1.Delay estimation until late in the project (obviously, we can achieve 100%
accurate estimates after the project is complete! -is not practically possible).
2. Base estimates on similar projects that have already been completed.
3. Use relatively simple decomposition techniques to generate project cost and
effort estimates.
4. Use one or more empirical models for software cost and effort estimation.
•Decomposition techniques take a "divide and conquer“ approach to
software project estimation. By decomposing a project into major
functions and related software engineering activities, cost and effort
estimation can be performed in a stepwise fashion.
•Empirical estimation models can be used to complement decomposition
techniques and offer a potentially valuable estimation approach in their
own right. A model is based on experience (historical data) and takes the
form
Empirical Estimation Models
The COCOMO Model ( COnstructive COst MOdel )
•Barry Boehm introduced a hierarchy of software estimation models bearing the
name COCOMO, for COnstructive COst MOdel. The original COCOMO model
became one of the most widely used and discussed software cost estimation
models in the industry. It has evolved into a more comprehensive estimation
model, called COCOMO II.
•Like its predecessor, COCOMO II is actually a hierarchy of estimation models that
address the following areas:
COCOMO 1 Model:
•The Constructive Cost Model was first developed by Barry W.
Boehm.
•The model is for estimating effort, cost, and schedule for
software projects.
•It is also called as Basic COCOMO.
•This model is used to give an approximate estimate of the
various parameters of the project.
•Example of projects based on this model is business system,
payroll management system and inventory management
systems.
COCOMO –II Model
COCOMO –II Model
Complexity weighting for object types
Productivity rate for object points
Lines of Code (LOC) & Function Point
(FP)
1. Lines of Code (LOC) :
Theline of code(LOC) metric is any line of text in a code that is
not a comment or blank line, in any case of the number of
statements or fragments of statements on the line. LOC consists
of all lines containing program header files, declaration of any
variable, and executable and non-executable statements. As
Lines of Code (LOC) only counts the proportion of code, you can
only utilize it to compare or estimate projects that utilize the
same language and are programmed using the same coding
standards.
Example of Line of Code :
Function Point (FP)
•Function Point (FP) :
In thefunction pointmetric, the number and type of functions
held up by the software are used to find FPC (function point
count).