SE-UNIT 1-Part1
SE-UNIT 1-Part1
2
A Definition of Software
(all inclusive)
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.
5
Both activities are dependent on people, but the
relationship between people applied and work
accomplished is entirely different
6
2) Software doesn't "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.
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.
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.
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