Important Trends In Software Engineering - PowerPoint PPT Presentation

1 / 68
About This Presentation
Title:

Important Trends In Software Engineering

Description:

Everald E. Mills, Ph.D. CSSE Dept. Seattle University. July 18, 2003 ... Patriot missile defense failed to detect Scud missile due to time error -- 28 ... – PowerPoint PPT presentation

Number of Views:1769
Avg rating:3.0/5.0
Slides: 69
Provided by: everald
Category:

less

Transcript and Presenter's Notes

Title: Important Trends In Software Engineering


1
Important Trends In Software Engineering
  • Global e-Business Program
  • Seattle University
  • Summer 2003
  • Everald E. Mills, Ph.D. CSSE Dept. Seattle
    University

2
Software Engineering
  • What is Software Engineering ?
  • Where is Software Engineering today ?
  • Where is it going ?

3
I. What Is Software Engineering?
  • Is it
  • Programming ?
  • Computer science ?
  • Engineering ?
  • A real discipline ?
  • A professional activity ?

4
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.

5
The Software Process (Life Cycle)
  • Development
  • Operation
  • Maintenance
  • Corrective
  • Enhancement

6
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).

7
Why 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)

8
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 ..

9
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

10
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.

11
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 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.

12
Not 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.

13
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.

14
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

15
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.

16
Software 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.

17
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)

18
Software 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

19
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.

20
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

21
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).
  • Lowest level, ad hoc
  • Repeatable process
  • Defined process
  • Managed process
  • Optimizing process, with feedback and continuous
    improvement

22
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
  • Process discipline, Project mgmt.
  • Process definition, Engineering mgmt.
  • Process control, Quantitative mgmt.
  • Continuous process improvement, Change mgmt.

23
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

24
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
  • Results
  • 7.70 return on every dollar invested
  • 130 increase in productivity
  • evolution from CMM Level 1 to Level 3

25
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

26
Todays 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

27
Characteristics 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

28
Todays 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

29
Todays 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

30
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

31
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

32
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.

33
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

34
Market 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

35
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 ?

36
New Methodologies (2)
  • Programming paradigms
  • ad hoc
  • functional
  • procedural
  • structured
  • object-oriented
  • pair programming
  • XP (eXtreme Programming)
  • next ??

37
New 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).

38
New 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 !

39
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.

40
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

41
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.

42
Important Trends
  • Software Methodologies
  • Computing Environment
  • Educational Trends

43
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 todays
    programming complexity
  • 4. UML all the way down -- I.e. automatically
    produce final product from UML specifications
    (automated programming -- long time goal!)

44
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.

45
Software 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)

47
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

48
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

49
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)

50
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

51
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 ?

52
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.

53
CS
SE
54
SE
CS
55
CS
SE
56
SE
CS
57
SE
CS
58
CS
SE
59
CS
SE
60
CS
SE
61
SE
CS
62
SE
CS
63
  • Oh and dont forget --

64
Math
Physics
EE
CS
SE
IS/MIS
CompEngr
65
  • So whats your view ?

66
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.

67
The 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!
Write a Comment
User Comments (0)
About PowerShow.com