Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Soft Engg1 0

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

UNIT- I

Software and Software Engineering: The Nature of Software, The Unique Nature of
WebApps, Software Engineering, The Software Process, Software Engineering Practice,
Software Myths
Process Models: A Generic Process Model, Process Assessment and Improvement,
Prescriptive Process Models, Specialized Process Models, The Unified Process, Personal and
Team Process Models, Process Technology, Product and Process.
Agile Development: Agility, Agility and the Cost of Change, Agile Process, Extreme
Programming, Other Agile Process Models

Software and Software Engineering

Software engineering stands for the term is made of two words, Software and
Engineering.

Software is more than just a program code. A program is an executable code, which serves some
computational purpose. Software is considered to be collection of executable programming code,
associated libraries and documentations. Software, when made for a specific requirement is
called software product.
Engineering on the other hand, is all about developing products, using well-defined, scientific
principles and methods.
Software engineering is an engineering branch associated with development of software
product using well-defined scientific principles, methods and procedures. The outcome of
software engineering is an efficient and reliable software product.

Definitions
IEEE defines software engineering as:

(1) The application of a systematic, disciplined, quantifiable approach to the development,


operation and maintenance of software; that is, the application of engineering to software.
(2) The study of approaches as in the above statement.
Fritz Bauer, a German computer scientist, defines software engineering as:
Software engineering is the establishment and use of sound engineering principles in order to
obtain economically software that is reliable and work efficiently on real machines.

1
Software Engineering (R15)
The Nature of Software

Software takes Dual role of Software. It is a Product and at the same time a Vehicle for
delivering a product.
Software delivers the most important product of our time is called information

Defining Software
Software is defined as
1. Instructions : Programs that when executed provide desired function, features,
and performance

2. Data structures : Enable the programs to adequately manipulate information

3. Documents: Descriptive information in both hard copy and virtual forms that
describes the operation and use of the programs.
Characteristics of software
Software has characteristics that are considerably different than those of hardware:
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 the activities, high quality is
achieved through good design, but the manufacturing phase for hardware can introduce quality
problems that are nonexistent or easily corrected for software. Both the activities are dependent
on people, but the relationship between people is totally varying. These two activities require the
construction of a "product" but the approaches are different. Software costs are concentrated in
engineering which means that software projects cannot be managed as if they were
manufacturing.
2) Software doesn’t “Wear Out”
The following figure shows the relationship between failure rate and time. Consider the
failure rate as a function of time for hardware. The relationship is called the bathtub curve,
indicates that hardware exhibits relatively high failure rates early in its life, defects are corrected
and the failure rate drops to a steady-state level for some period of time. 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. So,

2
Software Engineering (R15)
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 toward component-based construction, 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. Modern reusable components encapsulate both data and the processing
that is applied to the data, enabling the software engineer to create new applications from
reusable parts

3
Software Engineering (R15)
Software Application Domains
Seven Broad Categories of software are challenges for software engineers
System software : A collection of programs written to service other programs. Some system
software (e.g., compilers, editors, and file management utilities)
Application software : Stand-alone programs that solve a specific business need. Application
software is used to control business functions in real time (e.g., point-of-sale transaction
processing, real-time manufacturing process control).
Engineering/scientific software : It has been characterized by “number crunching” algorithms.
Applications range from astronomy to volcanology, from automotive stress analysis to space
shuttle orbital dynamics, and from molecular biology to automated manufacturing.
Embedded software : It resides within a product or system and is used to implement and control
features and functions for the end user and for the system itself. Embedded software can perform
limited and esoteric functions (e.g., key pad control for a microwave oven) or provide significant
function and control capability (e.g., digital functions in an automobile such as fuel control,
dashboard displays, and braking systems).
Product-line software : Designed to provide a specific capability for use by many different
customers. Product-line software can focus on a limited and esoteric marketplace (e.g., inventory
control products) or address mass consumer markets (e.g., word processing, spreadsheets,
computer graphics, multimedia, entertainment, database management, and personal and business
financial applications).
Web applications : These Applications called “WebApps,” this network-centric software
category spans a wide array of applications. In their simplest form, WebApps can be little more
than a set of linked hypertext files that present information using text and limited graphics.
.Artificial intelligence software : These makes use of non numerical algorithms to solve
complex problems that are not amenable to computation or straightforward analysis.
Applications within this area include robotics, expert systems, pattern recognition (image and
voice), artificial neural networks, theorem proving, and game playing.

4
Software Engineering (R15)

You might also like