UNIT-1 Software "Software Is A Collection of Instructions That Enable by User To Interact
UNIT-1 Software "Software Is A Collection of Instructions That Enable by User To Interact
INTRODUCTION
SOFTWARE
CHARACTERISTICS OF A SOFTWARE
Software should be achieve a good quality in design and need all the
specifications of the customer.
Software does not wear out i.e., it does not use the material.
Software should be inherently complex.
Software should be efficient i.e., the ability of the software to use
system resources in an effective and efficient manner.
Software must be integral i.e., it must prevent from un-authorised
access to the software or data.
SOFTWARE ENGINEERING
All these layers are related to each other and each layer demands the fulfilment
of the previous layer.
The layered technology consists of:
Process:
a).It is the base layer or foundation layer for the software engineering.
c).It defines frame work that includes different activities and tasks.
d).In short, it covers all activities, actions and tasks required to be carried
out for software development.
Methods:
a).The method provides the answers of all “How to” that are asked during
the process.
b).The tools integrated i.e., the information created by one tool can be
used by the other tool.
Software engineering:
1).System engineering
2).Analysis
3).Designing
4).Coding
5) Testing
6) Maintenance
3).Design:
4).Coding:
The design must be translated into a machine readable form. The coding step
performs this task.
5).Testing:
Once the code has been generated, program testing begins. The testing process
focuses on the logical internals of the software ensuring that all statements have
been tested.
6).Maintenance:
PROTOTYPING
The spiral model for the software engineering has been developed to include
the best features of both the classic life cycle and prototyping, while at the same
time adding a new element i.e., risk analysis that is missing in those paradigms.
The spiral model paradigm for software engineering currently the most
realistic approach to the development for large scale systems and software.
It uses prototyping as a risk reduction mechanism but more importantly
enables the developer to apply the prototyping approach at any stage in the
evaluation of the product.
Each of these tools does exist, but only for every specific application domains.
COMBINED PARADIGMS:
c).Estimation
d).Risk analysis
e)Scheduling
If a new project is quite similar in size to a past project, it is likely that the
new project will require approximately the same amount of effort, time and
cost.
e).Scheduling: The project scheduling is the tool that communicates what work
needs to be performed, which resources of the organisation need to be
performed.
f).Tracking and control: Once the development schedule has been established,
tracking and control activity started. Each track was noted in the schedule is
tracked by the project manager.
Rather than counting LOC (lines of code), function oriented metrics focuses on
functionality or utility. It contains the following properties.
Software costs and effort estimation will never be an exact. Too many
variables-human, technical, environmental, political can affect the ultimate cost
of software and effort applied to develop it.
The empirical data that support most models are derived from a limited
sample of projects.
There are four classes of resource models. Static single variable models,
static multi-variable model, dynamic multi-variable model and theoretical
model.
Where resource could be effort, project duration, staff size . The constants c 1
and c2 are derived from data collected from previous projects.
Static multi-variable models, like the single variable model, make use of
historical data to derive empirical relationships, this model takes the form as:
Resource=c11e1+c21e2+......
i.Organic mode
ii.Semi-detached mode
iii.Embedded mode
E= ab(LOC)exp(bb)
D=cb(E)exp(db)
Where ‘E’ is the effort applied in person months, ‘D’ is the development
time in serial months, ‘LOC’ is the estimated number of lines of code, a b, bb, cb,
db are coefficients.
The basic model contains the following attributes that are grouped into
four major categories.
i).Product attributes
ii).Hardware attributes
b).Memory constraints
c).Required turnaround
iii).Personal attributes
c).Applications experience
iv).Project attributes
SOFTWARE PROJECT ab bb cb db
Organic 2.4 1.05 2.5 0.38
Semi detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
E=ai(LOC)exp(bi)*EAF
Where ‘E’ is the effort applied in person months and ‘LOC’ is the
estimated lines of code and ai, bi are coefficients.
INTERMEDIATE COCOMO
Software ai bi
Project
Organic 3.2 1.05
Semi-detached 3.0 1.12
Embedded 2.8 1.20
E=3.0(LOC)exp(1.12)
=3.0(33.3)1.12
=152 person-months
D=2.5(E)exp(0.35)
=2.5(152)0.35
=14.5 months
=152/14.5
=11 people
Where ‘Ck’ is a state of technology constant and reflects through put constraints
that restricts the progress of the programmer. The values might be C k=2000 for
a poor software development environment.
Ck=8000 for a good software development environment.
The ‘Ck’ can be derived for local conditions using historical data collected
from past development efforts.
Where ‘K’ is the effort expanded over the entire life cycle for software.
The incremental model combines the elements of water fall model and they are
applied in an iterative person.
The first increment in this model is generally a core product. Each increment
builds the product and submits it to the customer, for any suggested
modifications.
For example, the word processing software is developed using the incremental
model.
The cost of the final product may cross the cost estimated initially.
This model requires a very clear and complete planning.
The planning of the design is required before the whole system is broken
into small increments.
The demands of customer for the increment causes problem during the
software architecture.
RAD MODEL:
The initial activity starts with the communication between customer and
developer. Planning depends upon the initial requirements and then the
requirements are divided into groups.
b).Data modelling
c).Process modelling
d).Application modelling
Data modelling:
Process modelling:
The data objects defined in the data modelling phase are changed
to fulfil the information flow to implement the business model.
The process description is created for adding, modifying, deleting
or retrieving a data object.
Application Generation: