Sie sind auf Seite 1von 9

CPSC 461

Contents
Software Engineering Techniques Here we are Ch.1 Software and Software Engineering Part 3: Applying Web Engineering
Ch.16 Web Engineering
Ch.1 Software and Software Engineering Part 1: The Software Process
Ch.17 Formulation and Planning
Ch.2 Process: A Generic View
Ch.3 Prescriptive Process Models Ch.18 Analysis Modeling for Web Applications
Ch.4 Agile Development Ch.19 Design Modeling for Web Applications
Part 2: Software Engineering Practice Ch.20 Testing Web Applications
Ch.5 Practice: A Generic View Part 4: Managing Software Projects
Ch.6 System Engineering Ch.21 Project Management Concepts
Ch.7 Requirement Engineering Ch.22 Process and Project Metrics
Chang-Hyun Jo Ch.8 Analysis Modeling Ch.23 Estimation for Software Projects
Ch.24 Software Project Scheduling
Ch.9 Design Engineering
Department of Computer Science Ch.10 Architectural Design Ch.25 Risk Management
Ch.11 Component-Level Design Ch.26 Quality Management
California State University Fullerton Ch.12 User Interface Design Ch.27 Change Management
Part 5: Advanced Topics in SE
jo@ecs.fullerton.edu Ch.13 Software Testing Strategies
Ch.28 Formal Methods
Ch.14 Software Testing Techniques
Ch.15 Product Metrics for Software Ch.29 Cleanroom Software Engineering
Ch.30 Component-Based Software Engineering
Ch.31 Reengineering
Ch.32 The Road Ahead
Software Engineering Techniques 2005 Chang-Hyun Jo 2

Ch.1 Principles of Learning


Software and
Software Engineering „ 5W1H
„ What
„ When
A framework for those who build computer
software – people who must get it right „ Where
„ Who
The framework encompasses a process, a „ Why
set of methods, and an array of tools – „ How
software engineering
Software Engineering Techniques 2005 Chang-Hyun Jo 4

What Is Software? Who Does It?


„ Computer software is the product that „ Software engineers build it.
software professionals design and build. „ Virtually everyone in the industrialized
„ It encompasses world uses it either directly or indirectly.
„ Programs
„ Content
„ Documents

Software Engineering Techniques 2005 Chang-Hyun Jo 5 Software Engineering Techniques 2005 Chang-Hyun Jo 6

1
Why Is It Important? What Are The Steps?
„ Software affects nearly every aspect of „ You build software like you build any
our lives. successful product, by applying a
process that leads to a high-quality
result.
„ You apply a software engineering
approach.

Software Engineering Techniques 2005 Chang-Hyun Jo 7 Software Engineering Techniques 2005 Chang-Hyun Jo 8

What Is the Work Product? The Product


„ From the point of view of a software „ Software is the engine that drives business
engineer, the work product is the decision making.
programs, documents, and content „ Software serves as the basis for modern
scientific investigation and engineering
(data).
problem solving.
„ From the user’s viewpoint, the work „ It is embedded in systems of all kinds:
product is the resultant information that transportation, medical, telecommunications,
somehow makes the user’s world better. military, industrial processes, entertainment,
office products ...
Software Engineering Techniques 2005 Chang-Hyun Jo 9 Software Engineering Techniques 2005 Chang-Hyun Jo 10

The Evolving Role of Software Evolution of Software


„ Software takes on a dual role: „ Software development was virtually
„ A product unmanaged - until schedules slipped or
Delivers the computing potential embodied by
costs began to escalate.
„

computer hardware
„ The vehicle for delivering a product
„ Acts as the basis for the control of the
computer (OS), the communication of
information (networks), and the creation and
control of other programs (software tools and
environments)
„ The most important product: Information
Software Engineering Techniques 2005 Chang-Hyun Jo 11 Software Engineering Techniques 2005 Chang-Hyun Jo 12

2
Software Maintenance Software Crisis
„ As the number of computer-based „ Effort spent on software maintenance
systems grew, libraries of computer escalated high.
software began to expand. „ Worse yet, the personalized nature of
„ Most of software had to be many programs made them virtually
„ corrected when faults were detected, unmaintainable.
„ modified as user requirements changed, or
„ adapted to new hardware that was
purchased.
Software Engineering Techniques 2005 Chang-Hyun Jo 13 Software Engineering Techniques 2005 Chang-Hyun Jo 14

Software-Related Problems Software-Related Problems


„ The widespread use of computers has made
„ Hardware advances continue to outpace society increasingly dependent on reliable
our ability to build software to tap operation of software.
hardware’s potential. „ Enormous economic damage and potential human
„ Our ability to build new programs suffering can occur when software fails.

cannot keep pace with the demand for „ We struggle to build computer software that
new programs, nor can we build has high reliability and quality.
programs rapidly enough to meet „ Our ability to support and enhance existing
programs is threatened by poor design and
business and market needs.
inadequate resources.
Software Engineering Techniques 2005 Chang-Hyun Jo 15 Software Engineering Techniques 2005 Chang-Hyun Jo 16

An Industry Perspective In the early days ...


„ In the early days of computing, „ In the early days, programming was
computer-based system were viewed as an “art form.”
developed using hardware-oriented „ The programmer often learned his/her
management. craft by trial and error.
„ Project managers focused on hardware. „ The software world was virtually
„ Project managers applied the controls, undisciplined.
methods, and tools that we recognize as
hardware engineering.

Software Engineering Techniques 2005 Chang-Hyun Jo 17 Software Engineering Techniques 2005 Chang-Hyun Jo 18

3
Today ... Questions
„ Today, the distribution of costs for the „ For almost two decades managers and many
technical practitioners have asked the
development of computer-based
following questions:
systems has changed dramatically. „ Why does it take so long to get programs
„ Software, rather than hardware, is the finished ?
largest single cost item. „ Why are development costs so high ?
„ Why can’t we find all errors before we give the
software to our customers?
„ Why do we continue to have difficulty in
measuring progress as software is being
developed.
Software Engineering Techniques 2005 Chang-Hyun Jo 19 Software Engineering Techniques 2005 Chang-Hyun Jo 20

Example: An Aging Software Plant


An Aging Software Plant Information System

„ Like the other industry, we have an „ Information system applications written


aging “software plant” - there are twenty years ago that have undergone
thousands of critical software-based many changes and are now virtually
applications that are in dramatic need unmanintainable.
of refurbishing. „ Even the smallest modification can
cause the entire system to fail.

Software Engineering Techniques 2005 Chang-Hyun Jo 21 Software Engineering Techniques 2005 Chang-Hyun Jo 22

Example: An Aging Software Plant


Engineering Applications Software Competitiveness
„ Engineering applications that are used „ Software is now an extremely
to produce critical design data, and yet, competitive business.
because of their age and state of repair, „ Cost, timeliness, and quality are primary
no one really understands their internal drivers that will lead to intense
structure. competition for software work over the
next few decades.

Software Engineering Techniques 2005 Chang-Hyun Jo 23 Software Engineering Techniques 2005 Chang-Hyun Jo 24

4
Software Competitiveness Software
„ Feigenbaum and McCorduck [1983] „ Software is
„ “Knowledge is power, and the computer is „ (1) instructions (computer programs) that
an amplifier of that power …” when executed provide desired function
and performance, (2) data (contents) that
enable the programs to adequately
manipulate information, and (3) documents
that describe the operation and use of the
programs.

Software Engineering Techniques 2005 Chang-Hyun Jo 25 Software Engineering Techniques 2005 Chang-Hyun Jo 26

Software Characteristics Software Characteristics


„ To gain an understanding of SW, it is important to „ Software is developed or engineered, it is not
examine the characteristics of software that make it manufactured in the classical sense.
different from other things that human being built.
„ When hardware is built, the human creative process
„ Software does not wear out.
(analysis, design, construction, testing) is ultimately „ Figure 1.1 Failure curve for hardware
translated into a physical form. „ Figure 1.2 Failure curve for software
„ Software is a logical rather than a physical system (idealized and actual curves)
element. „ Most software is custom-built, rather than
„ Therefore, software has characteristics that differ being assembled from existing components.
considerably from those of hardware:

Software Engineering Techniques 2005 Chang-Hyun Jo 27 Software Engineering Techniques 2005 Chang-Hyun Jo 28

Software Characteristics Software Components


„ Figure 1.2 Failure curve for software „ In the hardware world, component reuse is a
(idealized and actual curves) natural part of the engineering process.
increased failure „ In the software world, it is something that has
rate due to side effects
Failure
rate
yet to be achieved on a broad scale.
„ Reusability is an important characteristic of a
high-quality software component.
change
actual curve „ A software component should be designed
and implemented so that it can be reused in
idealized curve
many different programs.
Time
Software Engineering Techniques 2005 Chang-Hyun Jo 29 Software Engineering Techniques 2005 Chang-Hyun Jo 30

5
Software Components Software Components
„ In the 1960s, we built scientific subroutine „ Modern reusable components
libraries that were reusable in a broad array encapsulate both data and the
of engineering and scientific applications. processing that is applied to the data,
„ These subroutine libraries reused well- enabling the software engineer to create
defined algorithms in an effective manner, but
new applications from reusable parts.
had a limited domain of application.
„ Today, we have extended our view of reuse
to encompass not only algorithms, but also
data structures.
Software Engineering Techniques 2005 Chang-Hyun Jo 31 Software Engineering Techniques 2005 Chang-Hyun Jo 32

Examples:
Software Components Software Applications
„ Interactive interfaces are built using reusable „ Software may be applied in any
components that enable the creation of situation for which a pre-specified set of
graphics windows, pull-down menus and a
procedural steps (i.e., an algorithm) has
wide variety of interaction mechanisms.
been defined.
„ The data structures and processing detail
required to build the interface are contained
within a library of reusable components for
interface construction.

Software Engineering Techniques 2005 Chang-Hyun Jo 33 Software Engineering Techniques 2005 Chang-Hyun Jo 34

Example:
Information Content Information Contents
„ Information content and determinacy „ Many business application make use of
are important factors in determining the highly structured input data (a
nature of a software application. database) and produce formatted
„ Information content refers to the “reports”.
meaning and form of incoming and „ Software that controls an automated
outgoing information. machine (e.g., a numerical control)
accepts discrete data items with limited
structure and produces individual
Software Engineering Techniques 2005 Chang-Hyun Jo 35
machine commands in rapid succession.36
Software Engineering Techniques 2005 Chang-Hyun Jo

6
Examples:
Information Determinacy Information Determinacy
„ Information determinacy refers to the „ An engineering analysis program
predictability of the order and timing of accepts data that have a predefined
information. order, executes the analysis
algorithm(s) without interruption, and
produces resultant data in report or
graphical format.

Software Engineering Techniques 2005 Chang-Hyun Jo 37 Software Engineering Techniques 2005 Chang-Hyun Jo 38

Examples: The Change Nature of SW


Information Determinacy Seven Broad Categories of SW

„ Example for the indeterminate „ System software


application „ Application software
„ A multi-user OS accepts inputs that „ Engineering and scientific software
have varied content and arbitrary timing, „ Embedded software
executes algorithms that can be
interrupted by external conditions, and „ Product-line software
produces output that varies as a „ Web-applications
function of environment and time. „ Artificial intelligence software
Software Engineering Techniques 2005 Chang-Hyun Jo 39 Software Engineering Techniques 2005 Chang-Hyun Jo 40

Software:
The Change Nature of SW
New Challenges A Crisis on the Horizon

„ Ubiquitous computing „ The term “software crisis” alludes to a set of


problems that are encountered in the
„ Netsourcing development of computer software.
„ Opensource „ The problems are not limited to software that
does not function properly.
„ The “new economy” „ Rather, the affliction encompasses problems
associated with how we develop software, how we
maintain a growing volume of existing software,
and how we can expect to keep pace with a
growing demand for more software.

Software Engineering Techniques 2005 Chang-Hyun Jo 41 Software Engineering Techniques 2005 Chang-Hyun Jo 42

7
Quality of Legacy Software Software Evolution
„ Poor quality „ Regardless of its application domain, size, or
„ Legacy systems sometimes have inextensible complexity, computer software will evolve
designs, convoluted code, poor or nonexistent over time.
documentation, test cases and results that were „ Change (software maintenance) drives this
never achieved, a poorly managed change history, process and occurs when error are corrected,
and etc. when the software is adapted to a new
„ An yet, these systems support core business environment, when the customer requests
functions and are indispensable to the business. new features or functions, and when the
„ Nothing can be done until the legacy system must application is reengineered to provide benefit
undergo some significant change. in a modern context.
Software Engineering Techniques 2005 Chang-Hyun Jo 43 Software Engineering Techniques 2005 Chang-Hyun Jo 44

Software Evolution
A Unified Theory for SW Evolution [Lehman 1997] Software Myths
„ The Law of Continuing Change „ Unlike ancient myths, software myths
The Law of Increasing Complexity
„
propagates misinformation and
„ The Law of Self-Regulation
„ The Law of Conservation of Organizational
confusion that have caused serious
Stability problems for managers, technical
„ The Law of Conservation of Familiarity people, and customers.
„ The Law of Continuing Growth
„ The Law of Declining Quality
„ The Feedback System Law

Software Engineering Techniques 2005 Chang-Hyun Jo 45 Software Engineering Techniques 2005 Chang-Hyun Jo 46

Management Myths Customer Myths


„ Myth „ Myth
„ We already have a book that’s full of „ Project requirements continually change,
standards and procedures for building but change can be easily accommodated
software. Won’t that provide my people because software is flexible.
with everything they need to know? „ Reality
„ Reality „ It is true that software requirements do
„ The book of standards may very well exist, change, but the impact of change varies
but is it used? Is it complete? In many with the time at which it is introduced.
cases, the answer is no.
Software Engineering Techniques 2005 Chang-Hyun Jo 47 Software Engineering Techniques 2005 Chang-Hyun Jo 48

8
Practitioner’s Myths Summary
„ Myth „ Software has become the key element
„ Once we write the program and get it to in the evolution of computer-based
work, our job is done. systems and products.
„ Reality „ Software is composed of programs,
„ “The sooner you begin writing code, the data (contents), and documents.
longer it’ll take you to get done.”
„ Each of these items comprises a
Industry data indicate that between 60 and 80
configuration that is created as part of the
„

percent of all effort expended on software will be


expended after it is delivered to the customer for software engineering process.
the first time.
Software Engineering Techniques 2005 Chang-Hyun Jo 49 Software Engineering Techniques 2005 Chang-Hyun Jo 50

Summary Summary
„ Software has evolved from a specialized „ The intent of software engineering is to
problem-solving and information provide a framework for building
analysis tool to an industry in itself. software with higher quality.
„ Yet we still have trouble developing
high-quality SW on time and within
budget.
„ Early programming culture and history
have created a set of problems that persist
today.
Software Engineering Techniques 2005 Chang-Hyun Jo 51 Software Engineering Techniques 2005 Chang-Hyun Jo 52

References Stanzas To The Po

Time may have somewhat tamed them, - not for ever;


„ Pressman, Roger S. Software Engineering: Thou overflow’st thy banks, and not for aye
A Practitioner’s Approach, 6th Edition, Thy bosom overbils, congenial river!
McGraw-Hill, 2005. (ISBN: 0-07-285318- Thy floods subside, and mine have sunk away;
But left long wrecks behind, and now again,
2) Borne on our old unchanged career, we move;
„ SEPA Web Site Thou tendest wildly onwards to the main,
And I - to loving one I should not love.
„ http://www.mhhe.com/pressman
George Gordon Byron (1788-1824)

Software Engineering Techniques 2005 Chang-Hyun Jo 53 Software Engineering Techniques 2005 Chang-Hyun Jo 54

Das könnte Ihnen auch gefallen