Академический Документы
Профессиональный Документы
Культура Документы
ANALYSIS
AND
SOFTWARE
DESIGN
TYPES OF REQUIREMENTS
ALONG DIFFERENT VIEWS
Functional Requirements (FRs)
Structural Functional Requirements
Functional, i.e., Function-oriented
Informational. i.e., Information-oriented
Behavioral Functional Requirements
PROCESS MODELING
A data flow diagram (DFD) is a tool (and type of
process model) that depicts the flow of data
through a system and the work or processing
performed by that system.
DFDs have become a popular tool for business
process redesign.
Organization
Company
A computer hardware system
A software system
Icons
Dataflow
Dataflows are pipelines
through which packets of
information flow. Label the
arrows with the name of the
data that moves through it.
Yourdon and
Coad
Datastore
Notation
External Entity
External entities are objects outside
the system, with which the system
communicates. External entities are
sources and destinations of the
system's inputs and outputs.
DATAFLOW DIAGRAMS
CONTEXT DIAGRAMS
DFD LEVELS
The first level DFD shows the main processes
within the system. Each of these processes
can be broken into further processes until you
reach pseudocode.
Leveling
Preserve the number of inputs and outputs between the
levels
I1
O1
A
I2
A1
I1
I2
A2
A3
data
O
1
DIFFERENCE BETWEEN
DFD AND FLOWCHARTS
Processes on DFDs can operate in parallel (at-the-sametime)
Processes on flowcharts execute one at a time
DFDs show the flow of data through a system
Flowcharts show the flow of control (sequence and
transfer of control)
Processes on one DFD can have dramatically different
timing
Processes on flowcharts are part of a single program
with consistent timing
DATA DICTIONARIES
Used to augment the Data Flow Diagrams
Repository
Layout
Name of the item
Alias
Description/Purpose
Related data items
Range of values
Data flows
Data structure definition/form
A SIMPLE PROCESS
MODEL
& use
Semantics of Arrows
In an actigram
Inputs are data that are consumed by the activity
Outputs are produced by the activity
Controls influence the execution of an activity but are not
consumed
Mechanism is a processor (machine, computer, person)
Semantics of Arrows
In an actigram
Inputs are data that are consumed by the activity
Outputs are produced by the activity
Controls influence the execution of an activity but are not consumed
Mechanism is a processor (machine, computer, person) which makes the activity
happen
in a datagram
Inputs are activities that produce the data
Outputs consume the data
Controls influence the internal state of the data
Mechanism is a device for storage, representation, impl., etc.
SADT
Structured Analysis and Design Technique
Phases:
SA
Activity diagrams combined to for activity network
Data diagrams combined to form data network
DT
Uses dataflow diagrams
Data dictionary
Pseudo algorithm representations for control information
Relational tables to indicate data element relations
SA ACTIVITY
DIAGRAM
Control
Inputs
Mechanism
Outputs
SA DATA DIAGRAM
Control
Generating
Resulting
Activity
Activity
Storage
Device
ESTIMATION OF
MAINTENANCE
COST
SOFTWARE
MAINTENANCE
:Maintenance is the process of changing system software after it
has been delivered to the customer.In other words, Maintenance is
about actions taken when a product does not function properly.
Software maintenance workload is very large, although in different
applications of its maintenance costs vary widely, but averagely,
the maintenance costs of large software development costs as high
as 4 times. Maintenance plays important role in various software
developments like Iterative development, Agile development and
Component Based Software Development. In the recent year,
software development turned into engineering through the
introduction of Component Based Software Development.
COST MAINTENANCE
Software has become the most expensive component of computer system projects.
The bulk of the cost of software development is due to the human effort, and most
maintenance cost estimation methods focus on this aspect and give estimates in
terms of person-months. Accurate software maintenance cost estimates are critical to
both developers and customers. They can be used for generating request for
proposals, contract negotiations, scheduling, monitoring and control. Underestimating
the costs may result in management approving proposed systems that then exceed
their budgets, with underdeveloped functions and poor quality, and failure to
complete on time. Overestimating may result in too many resources committed to the
project, or, during contract bidding, result in not winning the contract, which can lead
to loss of jobs. Accurate maintenance cost estimation is important because:
1.It can help to classify and prioritize development projects with respect to an overall
business plan.
2. It can be used to determine what resources to commit to the project and how well
these resources will be used.
3. Projects can be easier to manage and control when resources are better matched to
real needs.
4.Customers expect actual development costs to be in line with estimated costs.
MOTIVATION
The software cost estimation provides:
the vital link between the general concepts and
techniques of economic analysis and the particular
world of software engineering.
Software cost estimation techniques also provides an
essential part of the foundation for good software
management.
COST OF A PROJECT
The cost in a project is due to:
due the requirements for software, hardware and human
resources
the cost of software development is due to the human
resources needed
most cost estimates are measured in person-months
(PM)
INTRODUCTION TO COCOMO
MODELS
The COstructive COst Model (COCOMO) is the most
widely used software estimation model in the world. It
The COCOMO model predicts the effort and duration of
a project based on inputs relating to the size of the
resulting systems and a number of "cost drives" that
affect productivity.
EFFORT
Effort Equation
PM = C * (KDSI)n (person-months)
where PM = number of person-month (=152 working hours),
C = a constant,
KDSI = thousands of "delivered source instructions" (DSI) and
n = a constant.
COCOMO MODELS
COCOMO is defined in terms of three different models:
the Basic model,
the Intermediate model, and
the Detailed model.
COST ESTIMATION
PROCESS
Cost= Size Of The Project x
Productivity
Effort
Size Table
Lines of Code
Number of Use Case
Function Point
Development Time
Estimation Process
Number of Personnel
Errors
CONCLUSION
Software maintenance cost estimation models helps to improve the impact of maintenance cost factor.
Barry W. Boehms in-depth analysis of 17 factors derived from the actual use of the software based on the
specific situation of the affected software, the cost of maintenance, the weight factors and work to make
proper adjustments software maintenance cost estimation closer to the actual value. We propose a
systematic approach for software maintenance cost estimation
model using fourth generation language environment on the basis of COCOMO II. This model is based on
three parameters which are given. Favorable results can be achieved by using model implementation. In
this paper the problems of estimating the cost of the maintenance process have been solved with our model
using fourth generation language environment and data collected from previous projects based on COCOMO
II model. By applying the proposed model and procedures to these historical data, control over current and
future maintainability can be improved and thereby unnecessary and unproductive maintenance costs can
be avoided. This model is applicable for providing the accurate estimates, improving the adaptability of
software, developing and understanding between the user, customer and third party.
As part of the future work, we will improve our cost estimation model by extending the data pool to cover
additional applications. The software estimation model has to be recalibrated and extended to more reflect
more closely the software development and maintenance practice. The future perspective this model can be
enhanced to calculate the maintenance cost of large data projects.