Software Development Process
Software Development Process
Software Development Process
Unit-1
Software Development Process
Software:
Software is collection of program, procedures, rules and associated documentations and data
concerned with the operation of a data processing system.
Evolution of Software
- Software evolution means the process by which programs change shape, adapt to the
market place and inherit characteristics from preexisting programs.
- After delivering each software if any error found, it require maintenance so that is the
part of the evolution of software.
- Some time software must be upgraded and enhanced to include more futures and
provide more services this will only happening using evolution.
- Mr. Lehman from IBM and other pioneering research have found the evolution
behavior of the software that is given below.
Laws of software evolution:
1. Continuing Change — Systems must be continually adapted or they become
progressively less satisfactory and it lost its market.
1|Page
Fundamentals of Software Design (1CE2403)
Software Characteristics:
2|Page
Fundamentals of Software Design (1CE2403)
Software is not affected by the environmental effects that cause hardware to wear out.The
failure rate curve for software is the “idealized curve” shown in Figure. But the actual curve
shown in Figure. During its life, software will undergo change. As changes are made, it is likely
that some new defects will be introduced, causing the failure rate curve to spike as shown in
Figure. Before the curve can return to the original steady-state failure rate, another change is
requested, causing the curve to spike again.
3|Page
Fundamentals of Software Design (1CE2403)
In the similar manner, software can be developed. You don't need to start writing the code
from the scratch. But you can use already developed software to develop another one. You
don't need to think over it that how it can be developed. You just use the already developed
code for it.
4) Software is flexible for custom built
A program can be developed to do anything, so it is flexible. But most of the times, almost
everything characteristics has made software development difficult to plan, monitor and
control.
Software Application:
System Software: It helps in running computer hardware and the computer system. System
software refers to the operating systems; device drivers, servers, windowing systems and
utilities. System software helps an application programmer in abstracting away from hardware,
memory and other internal complexities of a computer. An operating system provides users
with a platform to execute high-level programs. Firmware and BIOS provide the means to
operate hardware.
Real time software: This type of software is used to monitor, control and analyzed real world
event as they occur. An example may be software required for the weather forecasting. Such
software will gather and process the status of temperature, humidity and other environmental
parameters to forecast the weather.
Embedded software Embedded software is a type of software that is built into hardware
systems. This software is typically designed to perform one specific function, although a single
piece of hardware may contain multiple pieces of embedded software. Any piece of technology
that has circuit boards and computer chips will likely have embedded software within it, from
digital clocks to cell phones to calculators. These systems allow many of the advanced
functions that are common in modern devices.
Personal Computer Software: The software used in personal computers is covered in this
category. Examples are word processor, multimedia, database management, computer games
etc.
4|Page
Fundamentals of Software Design (1CE2403)
Web based software or Web Application: The software related to web applications comes
under this category. It is not only providing stand-alone features, but also can integrate with
database and other business application.
Examples are CGI, HTML, Java, Perl, DHTML etc.
Artificial Intelligence Software makes use of non-numerical algorithms to solve large complex
problems that are not capable to computations.
Engineering and scientific software: Scientific and Engineering application software are
grouped in this category. Huge computing is normally required to process data.
Software Engineering:
Communication: involves heavy communication with the customer (and other stakeholders)
and encompasses requirements gathering.
Planning: Describes the technical tasks to be conducted, the risks that are likely, resources that
will be required, the work products to be produced and a work schedule.
5|Page
Fundamentals of Software Design (1CE2403)
Modeling: encompasses the creation of models that allow the developer and customer to
better understand software requirement and the design that will achieve that requirement.
Construction: combines code generation and the testing required uncovering errors in the
code.
Deployment: deliver the product to the customer who evaluates the delivered product and
provides feedback.
Umbrella Activities:
Software engineering process framework activities are complemented by a number of
umbrella activities. In general, umbrella activities are applied throughout a soft-ware project
and help a software team manage and control progress, quality, change, and risk. Typical
umbrella activities include:
Software project tracking and control—allows the software team to assess progress against
the project plan and take any necessary action to maintain the schedule.
Risk management—assesses risks that may affect the outcome of the project or the quality of
the product.
Software quality assurance—defines and conducts the activities required to ensure software
quality.
6|Page