Title: Important Trends In Software Engineering
1Important Trends In Software Engineering
- Global e-Business Program
- Seattle University
- Summer 2003
- Everald E. Mills, Ph.D. CSSE Dept. Seattle
University
2Software Engineering
- What is Software Engineering ?
- Where is Software Engineering today ?
- Where is it going ?
3I. What Is Software Engineering?
- Is it
- Programming ?
- Computer science ?
- Engineering ?
- A real discipline ?
- A professional activity ?
4Some 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.
5The Software Process (Life Cycle)
- Development
- Operation
- Maintenance
- Corrective
- Enhancement
6Resulting 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).
7Why do we need it ?
- The Software Crisis
- First identified at NATO Conference, Garmisch,
Germany, 1968 - Characterized by software which is
- of poor quality
- over budget
- late
- Naur Randell (1969)
8II. 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 ..
9The 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
10Software 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.
11Schedule/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 couldnt 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.
12Not A Crisis -- But A Chronic Condition
- Software Crisis has lasted too long to be a
crisis -- rather, its 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.
13A 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.
14Software 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
15Software 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.
16Software Development (3)
- Changes in software over time
- grew in size from 10s or 100s of lines to
1000s to 1,000,000s of lines of code - operating environment changed from simple batch
operations to complex multiprogramming systems,
to time-sharing and distributed computing to
todays Internet network computing environment.
17Software 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)
18Software Development (5)
- Important conclusions -
- todays 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
19Software 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.
20Software 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
21SEI 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).
- Lowest level, ad hoc
- Repeatable process
- Defined process
- Managed process
- Optimizing process, with feedback and continuous
improvement
22CMM -- 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
- Process discipline, Project mgmt.
- Process definition, Engineering mgmt.
- Process control, Quantitative mgmt.
- Continuous process improvement, Change mgmt.
23Other 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
24Results 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
- Results
- 7.70 return on every dollar invested
- 130 increase in productivity
- evolution from CMM Level 1 to Level 3
25Application 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
26Todays 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
27Characteristics Of Todays 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
28Todays 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
29Todays 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
30III.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
31Market 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
32Market 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.
33Market 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
34Market Pressures(4) -- Shortages Of Skilled
Personnel
- Late 90s 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
35New 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 ?
36New Methodologies (2)
- Programming paradigms
- ad hoc
- functional
- procedural
- structured
- object-oriented
- pair programming
- XP (eXtreme Programming)
- next ??
37New Methodologies (3)
- CASE Tools
- (Computer Aided Software Engineering)
- Todays 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).
38New Methodologies (4)
- CASE Tool Paradox
- CASE tools, such as Integrated Development
Environments (IDEs), 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 gt such tools can be
dangerous !
39New 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.
40New 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
41Technology 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.
42Important Trends
- Software Methodologies
- Computing Environment
- Educational Trends
43Software 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 todays
programming complexity - 4. UML all the way down -- I.e. automatically
produce final product from UML specifications
(automated programming -- long time goal!)
44Software 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.
45Software Methodologies (3)
- Productivity/Success Rate of software developers
varies widely - More successful developers utilize
rapid-phased-iterative techniques where
appropriate rather than sticking to one
classical (waterfall) approach - New techniques can be applied successfully to
both small large projects
46 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 Hewlett-Packard, IBM,
Sun Microsystems, etc - - Net Rivals .., USA Today (07/09/01)
47Computing 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
48Computing 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
49Educational 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)
50Educational 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
51Educational 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 ?
52Educational 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.
53CS
SE
54SE
CS
55CS
SE
56SE
CS
57SE
CS
58CS
SE
59CS
SE
60CS
SE
61SE
CS
62SE
CS
63 64Math
Physics
EE
CS
SE
IS/MIS
CompEngr
65 66So -- 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.
67The End
- Thank you for your patience.
- Questions ?
- Comments ?
68 - 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 !
- Thats all, folks!