Вы находитесь на странице: 1из 18

SOFTWARE

A software is instructions (computer programs) that when executed provide


desired function and performance.
Software characteristics
1 . Software is developed or engineered , it is not manufactured in the classical
sense. (Although some similarities exist between software development and
hardware manufacture, the two activities are fundamentally different in both
activities, high quality is achieved through good design , but the manufacturing
phase for hardware can introduce quality problems that are non existent for
software.)
2 . Software doesn’t ‘wear out’
(As time passes , however , the failure rate rises again as hardware
components suffer from the cumulative effects of dust, vibration, abuse,
temperature extremes and many other environmental maladies , stated simply,
the hardware begins to wear out. Software is not susceptible to the
environmental maladies that cause hardware to wear out.)
3.Although the industry is moving towards component based assembly ,most
software continues to be custom built.
( A software component should be designed and implemented so that it
can be reused in many different programs.)
SOFTWRE APPLICATIONS
• System software
• Real-time software
• Business software
• Engineering and scientific software
• Embedded software
• Web based software
• Artificial intelligence software
SOFTWARE PROCESS
MODELS
• THE LINEAR SEQUENTIAL MODEL
• THE PROTOTYPE MODEL
• THE RAD MODEL
• EVOLUTIONARY MODEL
THE INCREMENTAL MODEL
THE SPIRAL MODEL
THE WINWIN SPIRAL MODEL
THE LINEAR SEQUENTIAL MODEL

• SOME TIMES CALLED THE CLASSIC LIFE CYCLE


OR THE WATER FALL MODEL, THE LINEAR
SEQUENTIAL MODEL SUGGESTS A
SYSTEMATIC, SEQUENTIAL APPROACH TO
SOFTWARE DEVELOPMENT THAT BEGINS AT
THE SYSTEM LEVEL AND PROGRESSES
THROUGH ANALYSIS,DESIGN.CODING,TESTING
AND SUPPORT
Analysis Design Code Test support
System /information engineering
and modeling
• Because software is always part of larger
system , work begins by establishing
requirements for all system elements and then
allocating some subset of these requirements to
software. This system view is essential when
software must interact with other elements such
as hardware, people and databases. system
engineering and analysis encompass
requirements gathering at the system level.
Software requirements analysis

• The requirements gathering process is


intensified and focused specifically on
software. To understand the nature of the
program to be built , the software engineer
must understand the information domain
for the software , as well as required
function , behavior ,performance and
interface.
Design
• Software design is actually a multi step
process that focuses on four distinct
attributes of a program: data structure
,software architecture , interface
representations and procedural detail.
• The design process translates
requirements into a representation of the
software that can be accessed for quality
before coding begins.
Coding
• The design must be translated into
machine readable form. The code
generation step performs this task. If
design is performed in a detailed manner,
code generation can be accomplished
mechanistically.
Testing
• Once 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, and on the functional
externals , that is , conducting tests to
uncover errors and ensure that defined
input will produce actual results that agree
with required results.
Support

• Software will undoubtedly undergo change


after it is delivered to the customer.
Change will occur because errors have
been encountered, because the software
must be adapted to accommodate
changes in its external environment or
because the customer requires functional
or performance enhancements.
THE INCREMENTAL MODEL
• The incremental model combines elements of
the linear sequential model with the iterative
philosophy of prototyping. The incremental
model applies linear sequences in a staggered
fashion as calendar time progresses. Each linear
sequence produce a deliverable “ increment” of
the software.
• For example , word _processing software
developed using incremental paradigm might
deliver basic file management , editing , and
document production function in the first
increment .
THE INCREMENTAL MODEL
• More sophisticated editing and
document production capabilities
in the second increment ; spelling
and grammar checking in the third
increment ; and advanced page
layout capability in the fourth
increment and so on.
THE INCREMENTAL MODEL
• When an incremental model is used , the first
increment is often a core product, that is basic
requirements are addressed, but many
supplementary features remain undelivered. the
core product is used by the customer . As a
result of use or evaluation , a plan is developed
for the next increment. The plan addresses the
modification of the core product to better meet
the needs of the customer and the delivery of
additional features and functionality.
The prototype model
• Often customer defines a set of general
objectives for software but doesn’t identify
detailed input ,processing or output
requirements.
• The prototyping paradigm begins with
requirement gathering. Developer and customer
meet and define the overall objectives for the
software, identify whatever requirements are
known and outline areas further definition is
mandatory. A quick design then occurs.
The prototype model
The quick design focuses on a
representation of those aspects of the
software that will be visible to the customer.
The quick design leads to the construction
of a prototype. The prototype is evaluated
by the customer and used to refine
requirements for the software to be
developed
The spiral model
• It provides the potential for rapid development of
incremental versions of the software. Using the
spiral model, software is developed in a series of
incremental releases.
• A spiral model is divided into a number of
framework activities also called task regions.
• customer communication ,
Planning , Risk analysis , engineering , construction
and release , customer evaluation.
THE SPIRAL MODEL
• Customer communication -tasks required to establish effective communication
between developer and customer.
• Planning – tasks required to define resources ,timelines and other project related
information.
• Risk analysis-tasks required to assess both technical and management risks.
• Engineering – tasks required to build one or more representation of the application.
• Construction and release- tasks required to construct ,test , install and provide user
support
• Customer evaluation-tasks required to obtain customer feedback based on
evaluation of the software representations created during the engineering stage and
implemented during the installation stage .
THE SPIRAL MODEL
• As this evolutionary process begins, the
software engineering team moves around spiral
in a clockwise direction ,beginning at the center.
• The first circuit around the spiral result in the
development of a product specification ;
subsequent passes around the spiral might be
used to develop a prototype and progressively
more sophisticated versions of the software.
• Each pass through the planning region results in
adjustments to the project plan. Cost and
schedule are adjusted based on feedback
derived from customer evaluation.

Вам также может понравиться