Important Trends In Software Engineering

Download Report

Transcript Important Trends In Software Engineering

Important Trends In Software
Engineering
Global e-Business Program
Seattle University
Summer 2003
Everald E. Mills, Ph.D. – CSSE Dept. Seattle University
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
1
Software Engineering

What is Software Engineering ?

Where is Software Engineering today ?

Where is it going ?
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
2
I. What Is Software Engineering?

Is it :
– Programming ?
– Computer science ?
– Engineering ?
– A real discipline ?
– A professional activity ?
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
3
Some Basic Definitions


Software -- Computer programs,
procedures, and possibly associated
documentation and data pertaining to
the operation of a computer system.
Engineering -- Application of systematic,
disciplined, quantifiable approach to
some process.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
4
The Software Process
(Life Cycle)



Development
Operation
Maintenance
– Corrective
– Enhancement
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
5
Resulting Definition Of
Software Engineering

Definition -- The application of
systematic, disciplined, quantifiable
approaches to software development,
operation and maintenance.*
* - IEEE Standard 610.12-1990, IEEE Standard Glossary of
Software Engineering Terminology, IEEE Standards
Collection Software Engineering, IEEE (1997).
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
6
Why do we need it ?

The “Software Crisis”
– First identified at NATO Conference,
Garmisch, Germany, 1968
– Characterized by software which is
•
•
•
•
July 18, 2003
of poor quality
over budget
late
Naur & Randell (1969)
ImpTrendsInSE-Su2003-EEMills
7
II. Where Is Software
Engineering Today ?

Although significant improvements have
been made in specific areas, the rapidly
evolving nature of the software industry
has resulted in little overall improvement
in the overall situation -- in fact …..
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
8
The Crisis Persists


More than 30 years later, the software
“crisis” is still with us
Major problems are still the same:
– poor quality (correctness, bugs, usability,
maintainability, etc)
– over budget
– delivered late, or not at all
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
9
Software Quality Problems

Correctness, bugs, usability, etc
– Examples -• U.S. Strategic Air Command alert (Nov 9, 1979) -alert scramble in response to report that Soviet
Union had launched missile attack
• Therac 25 medical linear accelerator treatment
device -- two patients died of severe overdoses of
radiation (1985-1987)
• Gulf War (1991) -- U.S. Patriot missile defense failed
to detect Scud missile due to time error -- 28
Americans died as a result.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
10
Schedule/Cost Problems

An example -- U.S. Internal Revenue
Service
– Hired Sperry Corporation to build
automated income tax form processing
system (1980-1985) --the resulting system
couldn’t handle the work load, cost almost
twice what was expected, and had to be
replaced soon after initial installation. By
1996, the situation had not improved.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
11
Not A Crisis -But A Chronic Condition


Software “Crisis” has lasted too long to be a
crisis -- rather, it’s a persistent, chronic
condition of the software business
Software Engineering is the proposed
solution to the problem. Its aims are:
– production of fault-free software, delivered
on time and within budget, that satisfies the
users’ needs, and is easy to maintain.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
12
A Closer Look At The
Software Life Cycle




Development
Operation
Maintenance
Most problems can be traced to the
Development phase of the life cycle, so
most efforts to improve software have
focused on this aspect.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
13
Software Development (1)



In the early days of computing, software
development was viewed as consisting
only of “coding”, or programming the
computer
It was a black art, practiced by skilled
(?) individuals, usually working alone
This approach worked relatively well
when programs were small & simple
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
14
Software Development (2)

As computer systems (both hardware
and software) have become larger and
more complex, the software
development process has also become
more and more complex -- and the
simple art of “programming in the small”
is no longer capable of coping with the
task.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
15
Software Development (3)

Changes in software over time:
– grew in size from 10’s or 100’s of lines to
1000’s to 1,000,000’s of lines of code
– operating environment changed from
simple “batch” operations to complex
multiprogramming systems, to time-sharing
and distributed computing to today’s
Internet network computing environment.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
16
Software Development (4)

Today, the software development process is
generally considered to consist of a number of
essential activities:
– requirements gathering and analyis
– design
– implementation (I.e. programming)
– testing, verification, validation
– installation
– (followed by operation and maintenance)
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
17
Software Development (5)

Important conclusions – today’s typical software project involves
large, complex programs which are too
difficult for any one person to handle
– a number of persons must work in teams in
order to complete any such project in a
reasonable time
– management skills are as important as
technical skills
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
18
Software Development (6)

Software Engineering today -– Recognizes that the technical process of
software development cannot succeed
without the application of sound
management principles
– Software projects can fail for either
technical or managerial reasons -- but
most often project failures result from poor
or nonexistent management practices.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
19
Software Development (7)

Major attempts to improve software
results
– Software Engineering Institute (SEI) -founded by U.S. Department of Defense, in
conjunction with Carnegie Mellon
University, Pittsburgh, PA
– SEI developed Capability Maturity Model
(CMM) for assessing software capability
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
20
SEI Capability Maturity Model






Maturity Level 1
Maturity Level 2
Maturity Level 3
Maturity Level 4
Maturity Level 5
Compare ISO 9000 and
SPICE (Software Process
Improvement and
Capability dEtermination).
July 18, 2003





Lowest level, ad hoc
Repeatable process
Defined process
Managed process
Optimizing process,
with feedback and
continuous
improvement
ImpTrendsInSE-Su2003-EEMills
21
CMM -- Changes Needed To
Move From Level to Level

Level 1 to Level 2


Level 2 to Level 3



Level 3 to Level 4
Level 4 to Level 5
July 18, 2003


Process discipline,
Project mgmt.
Process definition,
Engineering mgmt.
Process control,
Quantitative mgmt.
Continuous process
improvement,
Change mgmt.
ImpTrendsInSE-Su2003-EEMills
22
Other Attempts To Improve
Software Quality



ISO 9000 -- (International Standard Organization) - 9000 series standards, pertain to improvement
of design, development, production activities, not
just for software
SPICE (Software Process Improvement Capability
dEtermination) -- an international process
improvement initiative, over 40 countries involved
CMM, ISO 9000, SPICE -- all aimed at improving
the software development process
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
23
Results Of Process Improvement
Raytheon Corp.* -- 1987-1992


Improvement efforts:
Invested about $1
Million each year for
five years in process
improvement
activities
* -- IEEE Software, July 1993
July 18, 2003

Results:
– $7.70 return on
every dollar
invested
– 130 % increase in
productivity
– evolution from
CMM Level 1 to
Level 3
ImpTrendsInSE-Su2003-EEMills
24
Application Of CMM*



Application of CMM does facilitate
software process improvement , lower
costs and improve productivity
Progression through CMM maturity
levels is time-consuming and difficult
Achievement of Level 3 requires four
years on average
* -- IEEE Software, May/June 1999
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
25
Today’s Software Industry*

A 1999 report indicates that, by 1997:
– only 2% of software organizations had
achieved CMM Level 4 or 5
– almost 62% were still at Level 1
– since it requires about 4 years to achieve
Level 3, the number of organizations at top
Levels (4 & 5) is still not large (in 2003)
* -- IEEE Software, May/June 1999
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
26
Characteristics Of Today’s
Software Industry



Driven by intense market forces,
including persistent pressure to deliver
software on unrealistic time schedules
Continuing rapid evolution of software
methodologies and systems
Unable to adopt and utilize proven
methodologies in timely fashion
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
27
Today’s Software Industry (1)

Even though much is now known about
how to improve software production, the
overall state is not much better than
ever*, due to the urgency of meeting
unrealistic delivery schedules and the
continuing rapid evolution of the
software industry
* -- i.e. poor quality, late delivery, over budget
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
28
Today’s Software Industry (2)

“Software glitches cost the U.S.
economy $59.5 billion each year …”,
according to a recent U.S. Department
of Commerce study – approximately 50
per cent due to users, and 50 per cent
due to vendors and developers …. *
* -- ACM TECHNews, July 1, 2002
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
29
III.Where Is Software
Engineering Going ?
Important Factors.

Market pressures
– short production cycles, unrealistic delivery
dates
– shortages of skilled personnel


New methodologies/technologies
Technology transfer limitations
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
30
Market Pressures(1) – Scheduling
Considerations


Management personnel often agree to
unrealistic schedules, due to market
pressure and desire to “beat the
competition”
Results:
– unrealistic schedules
– untested, defective products
– customer dissatisfaction
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
31
Market Pressures(2) – Estimating
Software Project Costs


Enlightened software organizations are
making increased use of proven,
quantitative techniques for estimating
project size, and the corresponding
requirements for effort and schedule.
Improved (quantitative) estimates help
avoid early commitments to impossible
scheduled delivery dates.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
32
Market Pressures(3) – Software
Cost Estimation Tools

Numerous approaches, including:
– estimation by analogy
– lines of code techniques (LOC)
– Function Points methods (IFPUG)
– COCOMO model, Boehm (COCOMO II)
– Walston/Felix model
– In 2002, over 50 cost estimation tools marketed
in the US, & 25 in Europe*
* -- “Software Cost Estimation in 2002”, CrossTalk, June 2002
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
33
Market Pressures(4) -- Shortages
Of Skilled Personnel



Late 90’s to 2000 – in US, dot.com
frenzy led to major shortages of skilled
personnel
Solution = more out-sourcing and
importation of skilled workers
Dot.com bust of 2001+ -- eliminated
shortages – increased competition in
world software development market
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
34
New Methodologies (1)



New methodologies continue to appear,
more rapidly than they can effectively
be put into use
Major Problem: How does one know
whether a new methodology is worth
putting into use ? (Some may not be.)
Adoption requires major investment -will there be a positive ROI ?
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
35
New Methodologies (2)

Programming paradigms
–
–
–
–
–
–
–
–
ad hoc
functional
procedural
structured
object-oriented
pair programming
XP (eXtreme Programming)
next ??
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
36
New Methodologies (3)



CASE Tools
(Computer Aided Software Engineering)
Today’s complex programming
environments require complex,
sophisticated software tools -- which,
again, raise the question of adoption
costs and ROI (usually positive in the
long run, but negative in the short run).
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
37
New Methodologies (4)


CASE Tool Paradox:
CASE tools, such as Integrated
Development Environments (IDE’s),
such as Visual Basic, etc, make it easy
to develop software components -- even
if user of the tool has no understanding
of underlying software concepts =>
such tools can be dangerous !
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
38
New Methodologies (5)


CASE Tool Paradox (2)
Although CASE tools reduce the
amount of effort required to produce
software components, they actually
increase the amount of background
knowledge the user needs to use the
tool safely and effectively.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
39
New Methodologies (6)

Software Project Management techniques are
steadily improving, and being applied more
effectively.
– Increasingly quantitative approach, using
“software metrics”
– specific project plans
– detailed task breakdowns
– firm milestones -- specific results on
scheduled dates
– regular reviews and assessments
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
40
Technology Transfer Problems*

Engineering technology tends to follow
a 15-year cycle from initial concept to
application in a production environment
– concept development - 5 years
– prototyping, and initial use - 5 years
– use in production environment - 5 years
* -- Software Engineering, Pressman, 4th ed, 835.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
41
Important Trends

Software Methodologies

Computing Environment

Educational Trends
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
42
Software Methodologies – UML
World Conference, June 11, 2001





Ivar Jacobson, one of “3 amigos” (founders of
UML) -- identified 4 major trends in software
development:
1. Reusable components -- stop repeating work
2. More up-front testing -- products with fewer
defects
3. Platform transparency -- reduce today’s
programming complexity
4. UML “all the way down” -- I.e. automatically
produce final product from UML specifications
(automated programming -- long time goal!)
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
43
Software Methodologies -- (2)

Ivar Jacobson -- “There is no technical barrier
-- only a political barrier…” to achieving the
four goals listed above. “The political
problem is due to the huge investments that
have been made in current programming
languages, and integrated development
environments, replete with compilers,
debuggers, GUI builders, and other
productivity-enhancing features.”
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
44
Software Methodologies – (3)



Productivity/Success Rate of software
developers varies widely
More successful developers utilize rapidphased-iterative techniques where
appropriate – rather than sticking to one
classical (“waterfall”) approach
New techniques can be applied successfully
to both small & large projects
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
45
Computing Environment

Internet/Web-based services market
– will exceed $50 Billion per year by 2005*
– Fierce competition
• Microsoft .Net
• vs
• J2EE (Java 2 Enterprise Edition) -- being
developed and promoted by HewlettPackard, IBM, Sun Microsystems, etc
* - “Net Rivals ..”, USA Today (07/09/01)
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
46
Computing Environment (2) –
Computer/Information Security

Some recent reports:*
– A recent survey of 300 North American
companies revealed that they suffered 1.2
Million computer virus attacks during a
recent 20 month period
– Last year (2001) cyberattacks caused
about $12 Billion in damage and losses,
including breaches of an airport and dam
* -- ACMTECHNews, 03/04/02 & 05/07/02
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
47
Computing Environment (3) –
Other harmful activities -- SPAM



All computer users are being deluged
by unwanted email messages = SPAM
Some estimate that up to 40% of all
email on the Internet is SPAM
Intentional threats (viruses, etc) and
SPAM are greatly increasing the cost of
computer system administration
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
48
Educational Trends



Software Engineering has matured as
an educational discipline
Software Engineering Body Of
Knowledge (SEBOK) has been defined
BS/MS degree programs have been
initiated (1st BS/SE – Rochester Institute
of Technology – 1996) – and will soon
be accredited by ABET (US)
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
49
Educational Trends (2)


In the past, students have pursued
degrees in CS to prepare for software
development work (i.e. software
engineering ?)
In the future, students preparing for
career in software engineering will be
expected to have earned degree in SE
(not CS) – especially if accredited
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
50
Educational Trends (3)


Prediction – approaching long period of
“adjustment” between academic
“computer science” programs and
academic “software engineering”
programs – which may be painful
This leads us back to our original
question – “What is Software
Engineering ?”
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
51
Educational Trends (4)


Major problem ?
Despite our original attempt to present a
soundly based definition for “software
engineering”, there are many different
views of “software engineering” – as
shown in the following diagrams.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
52
SE
CS
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
53
CS
SE
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
54
CS
SE
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
55
SE
CS
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
56
SE
CS
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
57
CS
SE
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
58
CS
SE
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
59
CS
SE
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
60
SE
CS
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
61
SE
CS
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
62
Oh
July 18, 2003
– and don’t forget --
ImpTrendsInSE-Su2003-EEMills
63
Math
Physics
EE
CS
SE
IS/MIS
CompEngr
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
64
 So
July 18, 2003
– what’s your view ?
ImpTrendsInSE-Su2003-EEMills
65
So -- Where Is Software
Engineering Going ?

Full steam ahead, into an even more
complex software environment,
including larger and more complex
systems, greater security risks and
increased needs for professional
education, integrity and competence.
Unfortunately, there is no definitive road
map to help us find our way.
July 18, 2003
ImpTrendsInSE-Su2003-EEMills
66
The End

Thank you for your patience.

Questions ?
Comments ?

July 18, 2003
ImpTrendsInSE-Su2003-EEMills
67



Thank you for coming to visit us at
Seattle University !
We hope that you enjoyed your visit,
and learned a lot while you were here.
Have a pleasant trip back to Korea !

July 18, 2003
That’s all, folks!
ImpTrendsInSE-Su2003-EEMills
68