Unit - 1 Se - Sybca Sem-3
Unit - 1 Se - Sybca Sem-3
Unit - 1 Se - Sybca Sem-3
What is software?
Software engineering defines software as computer programs,
procedures, rules and possibly associated documentation and data
planning to the operation of a computer system.
Software can also be defined as:
o Computer programs when executed provide desired results and
performance.
o Data structure that enable the programs to follow manipulation.
o Documents that describe the operations and use of the program.
Characteristics of a software:
1. Software is developed or engineered, it is not manufactured:
o Software is logical and not physical.
o There are many automated software development tools but it is
the skill of individuals, creativity of developers and proper
management by project manager that count for a good software
product.
o In both software and hardware, high quality is achieved by good
design but the manufacturing phase for hardware can introduce
quality problems that are not existing for software.
2. Software does not “wear out”:
o Hardware Bathtub Curve: This relationship often called the
“bathtub curve” indicates that hardware exhibits relatively high
failure rate 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, vibrations,
abuse, temperature extremes, etc. Stated simply, hardware begins
to wear out.
1
Unit – 1 “Introduction” Software Engineering
o Software Bathtub Curve: The failure rate curve for software shows
that, undiscovered defects will cause high failure rates early in the
life of a program. . These are corrected the curve flattens as shown
in figure (B) Software doesn’t wear out, but it does deteriorate.
During the software life, it will undergo change (maintenance). As
changes are made, it is likely that some new defects will
introduced, causing the failure rate cure to spike. Before the curve
can return to the original steady-state failure rate, another change
is requested, causing the curve to spike again. Slowly, the
minimum failure rate level begins to rise the software is
deteriorating due to change.
3. Most software is custom-built, rather than being assembled from
existing components:
o Most of the engineered products are first designed before they are
manufactured, Designing includes identifying various components
for the product before they are actually assembled. Here several
people can work independently on these components thus making
the manufacturing system highly flexible. In software, breading a
program into modules is difficult task, since each module is highly
interlinked with other modules. Further, it requires lot of skill to
integrate different modules into one.
2
Unit – 1 “Introduction” Software Engineering
Types of Software:
1. System Software:
o The system software is a collection of programs designed to
operate, control, and extend the processing capabilities of the
computer itself.
o The system software area is characterized by heavy interaction
with computer hardware, heavy usage by multiple users, parallel
operation that requires scheduling, resource sharing, complex data
structures, and multiple external interfaces.
3
Unit – 1 “Introduction” Software Engineering
2. Application Software:
o Application software products are designed to satisfy a particular
need of a particular environment.
o Application software may consist of a single program, such as
Microsoft's notepad for writing and editing a simple text. It may
also consist of a collection of programs, often called a software
package, which work together to accomplish a task, such as a
spreadsheet package.
3. Embedded Software:
o Embedded software is specialized programming in a chip or on
firmware in an embedded device to controls its functions. Hardware
makers use embedded software to control the functions of various
hardware devices and systems.
o Ex: dedicated GPS devices, factory robots, some calculators and
even modern smart watches.
4. Web based Software:
o Web-Based Software is software you access with just an internet
connection and a web browser.
o There is no software or hardware to purchase, no need to download
software, or ever worry about costly product upgrades.
o Ex: Google docs, Canva, Gmail, Google sheets, etc.
5. Artificial Intelligence Software:
o Artificial intelligence software definition: “Software that is capable
of intelligent behavior.” In creating intelligent software, this
involves simulating a number of capabilities, including reasoning,
learning, problem solving, perception, knowledge representation.
6. Business Software:
o Business software (or a business application) is any software or set
of computer programs used by business users to perform various
business functions. These business applications are used to
4
Unit – 1 “Introduction” Software Engineering
Software Myths:
1. Management Myths:
a. Myth: We already have a book that’s full of standards and
procedures for building software. Won’t that provide my people
with everything they need to know?
Reality: The book of standards may very well exist, but is it used?
Are software practitioners aware of its existence? Does it reflect
modern software engineering practice? Is it complete? Is it
streamlined to improve time to delivery while still maintaining a
focus on quality? In many cases, the answer to all of these
questions is “no”.
5
Unit – 1 “Introduction” Software Engineering
6
Unit – 1 “Introduction” Software Engineering
Software Engineering:
The systematic approach to the development, operations, maintenance
and refinement of software.
It is the application of a systematic, disciplined and quantifiable
approach to the development, operation and maintenance of software
that is the approach of engineering to the software.
The main motive of software engineering is to improve the quality of software
product and to increase the productivity and job satisfaction ofsoftware
engineers.
Software Engineering – A Generic View:
Engineering is the analysis, design, construction, verification and
management of technical entities.
7
Unit – 1 “Introduction” Software Engineering
1. Definition Phase:
o The definition phase focuses on ―what‖. That is, during definition,
the software engineer attempts to identify:
What information is to be processed?
What function and performance are desired?
What system behavior can be expected?
What interfaces are to be established?
What design constraints exist?
What validation criteria are required to define a successful
system?
o During this, three major tasks will occur in some form: system or
information engineering, software project planning and
requirements analysis.
2. Development Phase:
o The development phase focuses on “How”. That is, during
development a software engineer attempts to define:
8
Unit – 1 “Introduction” Software Engineering
9
Unit – 1 “Introduction” Software Engineering
10