0% found this document useful (0 votes)
6 views19 pages

SE-UNIT 1-Part1

Chapter 1 discusses the dual role of software and its engineering, emphasizing the persistent questions surrounding software development, such as cost and error detection. It defines software as inclusive of instructions, data structures, and documentation, and highlights the differences between software and hardware, particularly in terms of development and maintenance. The chapter also addresses common software myths that can mislead management, customers, and practitioners, stressing the importance of proper project management and quality assurance.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views19 pages

SE-UNIT 1-Part1

Chapter 1 discusses the dual role of software and its engineering, emphasizing the persistent questions surrounding software development, such as cost and error detection. It defines software as inclusive of instructions, data structures, and documentation, and highlights the differences between software and hardware, particularly in terms of development and maintenance. The chapter also addresses common software myths that can mislead management, customers, and practitioners, stressing the importance of proper project management and quality assurance.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 19

Chapter 1

Software and Software


Engineering
- Dual role of software
- Software questions haven't changed
- A definition of software
- Differences between hardware and software
- Changing nature of software
- Dealing with legacy software
- Software myths

(Source: Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005)


Questions About Software Haven't
Changed Over the Decades
• Why does it take so long to get software finished?
• Why are development costs so high?
• Why can't we find all errors before we give the software to our
customers?
• Why do we spend so much time and effort maintaining existing
programs?
• Why do we continue to have difficulty in measuring progress as
software is being developed and maintained?

2
A Definition of Software
(all inclusive)

• Instructions (computer programs) that when executed


provide desired features, function, and performance
• Data structures that enable the programs to adequately
manipulate information
• Documents that describe the operation and use of the
programs

3
Differences between Software
and Hardware
• Software is developed or engineered; it is not manufactured in the
classical sense
– Impacts the management of software projects
• Software doesn't wear out
– Hardware bathtub curve compared to the software ascending spiked curve
• Although the industry is moving toward component-based
construction, most software continues to be custom built (it is still
complex to build)

4
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 nonexistent (or easily corrected) for
software.

5
 Both activities are dependent on people, but the
relationship between people applied and work
accomplished is entirely different

 Both activities require the construction of a


"product" but the approaches are different .

6
2) Software doesn't "wear out”

Figure 1.1 depicts failure rate as a function of time for hardware.


The relationship, often called the "bathtub curve," indicates that hardware
exhibits relatively high failure rates early in its life (these failures are often
attributable to design or manufacturing defects); defects are corrected and the
failure rate drops to a steady-state level (ideally, quite low) for some period of
time.
As time passes, however, the failure rate rises again as hardware components
suffer from the cumulative affects of dust, vibration, abuse, temperature
extremes, and many other environmental maladies.
Stated simply, the hardware begins to wear out

7
8
 Software is not susceptible to the environmental maladies that cause hardware to wear
out.

 In theory, therefore, the failure rate curve for software should take the form of the
“idealized curve” shown in Figure 1.2. Undiscovered defects will cause high failure
rates early in the life of a program.

 However, these are corrected (ideally, without introducing other errors) and the curve
flattens as shown.

 The idealized curve is a gross oversimplification of actual failure models for software.
However, the implication is clear—software doesn't wear out. But it does
deteriorate(worse)! This seeming contradiction can best be explained by considering
the “actual curve”

9
 changes are made, it is likely that some new defects will be introduced,
causing the failure rate curve to spike as shown in Figure 1.2.
 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.
 When a hardware component wears out, it is replaced by a spare part.
There are no software spare parts.
 Every software failure indicates an error in design or in the process
through which design was translated into machine executable code.
Therefore, software maintenance involves considerably more complexity
than hardware maintenance

10
Software Failure Curve
increased failure
rate due to side effects
Failure
rate

change
actual curve

idealized curve

Time
11
3) Although the industry is moving toward component-based
assembly, most software continues to be custom built.

Consider the manner in which the control hardware for a


computer-based product is designed and built.

The design engineer draws a simple schematic of the digital


circuitry, does some fundamental analysis to assure that proper
function will be achieved, and then goes to the shelf where
catalogs of digital components exist.

 Each integrated circuit (called an IC or a chip) has a part


number, a defined and validated function, a well-defined interface,
and a standard set of integration guidelines. After each component
is selected, it can be ordered off the shelf

12
 The reusable components have been created so that the
engineer can concentrate on the truly innovative elements of a
design, that is, the parts of the design that represent something
new.

 A software component should be designed and implemented so


that it can be reused in many different programs

13
Changing Nature of Software
• System software

• Application software
Consist of stand alone program that solve specific business need. applications in
this area process business or technical data, data processing application,
applications used in real time.

• Engineering/scientific software
Number crunching algorithm , s/w application from astronomy to
volcanology, automotive stress analysis to space shuttle orbital dynamics

14
Contd….
• Embedded software
used to implement and control features and functions for the end users
and for the system itself (keypad control for microwave oven, fuel
control in automobile)

• Product-line software
provide specific capabilities for use by different customers, and can
focus on limited and esoteric (abstract) marketplace.
• (e.g., inventory control, word processing, multimedia, spreadsheet)

• Web applications
Set of linked hypertext files that present in formation using text and
limited graphics (e-commerce application)

15
Contd…
• Artificial intelligence software
Non numerical algorithm to solve complex problems (robotics, expert
system, neural network, pattern reorganization)

• Ubiquitous computing
Wireless networking to true distributed computing (develop s/w that
allow small devices, personals computers to communicate across vast
networks)

16
Software Myths - Management
Most, experienced experts have seen myths or superstitions (false beliefs or interpretations)
or misleading attitudes which creates major problems for management and technical
people. Managers with s/w responsibility, like managers in most disciplines are often
under pressure to maintain budgets, keep schedules from slipping and improve quality.

• "We already have a book that is full of standards and procedures for building software.
Won't that provide my people with everything they need to know?"
– Not used, not up to date, not complete, not focused on quality, time, and money
• "If we get behind, we can add more programmers and catch up"
– Adding people to a late software project makes it later
– Training time, increased communication lines
• "If I decide to outsource the software project to a third party, I can just relax and let that
firm build it"
– Software projects need to be controlled and managed

17
Software Myths - Customer
Customer who request computer s/w may be a person at the next
desk, a technical group down the hall, the marketing/sales
department or an outside company that requested software under
contract.

• "A general statement of objectives is sufficient to begin writing


programs – we can fill in the details later"
– Ambiguous statement of objectives spells disaster
• "Project requirements continually change, but change can be easily
accommodated because software is flexible"
– Impact of change depends on where and when it occurs in the
software life cycle (requirements analysis, design, code, test)

18
Software Myths - Practitioner
• "Once we write the program and get it to work, our job is done"
– 60% to 80% of all effort expended on software occurs after it is
delivered
• "Until I get the program running, I have no way of assessing its quality
– Formal technical reviews of requirements analysis documents, design
documents, and source code (more effective than actual testing)
• "The only deliverable work product for a successful project is the
working program"
– Software, documentation, test drivers, test results
• "Software engineering will make us create voluminous and unnecessary
documentation and will invariably slow us down"
– Creates quality, not documents; quality reduces rework and provides
software on time and within the budget

19

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy