Software Engineering Modern Approaches Eric J. Braude All Chapter Instant Download
Software Engineering Modern Approaches Eric J. Braude All Chapter Instant Download
Software Engineering Modern Approaches Eric J. Braude All Chapter Instant Download
com
https://textbookfull.com/product/software-
engineering-modern-approaches-eric-j-braude/
https://textbookfull.com/product/fundamental-approaches-to-software-
engineering-alessandra-russo/
textbookfull.com
https://textbookfull.com/product/engineering-software-products-an-
introduction-to-modern-software-engineering-1st-edition-ian-
sommerville/
textbookfull.com
https://textbookfull.com/product/fundamental-approaches-to-software-
engineering-1st-edition-esther-guerra/
textbookfull.com
https://textbookfull.com/product/fortran-2018-with-parallel-
programming-1st-edition-subrata-ray-author/
textbookfull.com
Dermatopathology Dirk Elston
https://textbookfull.com/product/dermatopathology-dirk-elston/
textbookfull.com
https://textbookfull.com/product/geodynamics-and-earth-tides-
observations-from-global-to-micro-scale-carla-braitenberg/
textbookfull.com
https://textbookfull.com/product/managing-distributed-cloud-
applications-and-infrastructure-a-self-optimising-approach-theo-lynn/
textbookfull.com
https://textbookfull.com/product/remapping-the-indian-postcolonial-
canon-remap-reimagine-and-retranslate-1st-edition-nirmala-menon-auth/
textbookfull.com
https://textbookfull.com/product/physics-class-9-2nd-edition-trishna-
knowledge-systems/
textbookfull.com
Practical Soft Tissue Pathology: A Diagnostic Approach: A
Volume in the Pattern Recognition Series 2nd Edition Jason
L. Hornick
https://textbookfull.com/product/practical-soft-tissue-pathology-a-
diagnostic-approach-a-volume-in-the-pattern-recognition-series-2nd-
edition-jason-l-hornick/
textbookfull.com
SOFTWARE
ENGINEERING
Modern Approaches Second Edition
Eric J. Braude
Boston University, Metropolitan College
Michael E. Bernstein
Boston University, Metropolitan College
For information about this book, contact,
Waveland Press, Inc.
4180 IL Route 83, Suite 101
Long Grove, IL 60047-9580
(847) 634-0081
info@waveland.com
www.waveland.com
All rights reseroed. No part of this book may he reproduced, stored in a retrieval system, or transmitted
in any form or by any means without permission in writing from the publisher.
7 6 5 4 3 2
For Judy (Eric 1. Braude)
To Bambi, Garrett and Reid,
for all their love and support (Michael E. Bernstein)
Brief Contents
Preface xiv
The Issue of Scale xiv
This Edition Compared with the First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
How I nstructors Can Use This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
1 1. 4 Writing an Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9
1 1. 5 Describing M ai n Functions and Use C ases . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . 24 9
1 1. 6 Agile Methods for High - Level Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2
1 1 .7 Speci fying User Inter faces : High Level . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . 254
1 1. 8 Security Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 8
1 1. 9 Using Di agr ams for High -Level Re quirement . . . . . . . . . . . . . . . . . . 260
11. 1 0 C ase Study : High - Level So ftw are Re quirements Specific ation
(SRS ) for the Encounter Video G ame . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . 264
1 1. 1 1 C ase Study: High - Level Re quirements for Ecl i pse . . . . . . . . . . . . . . . . . . . . 26 8
11. 12 Eclipse Pl at form Subproject (First o f three) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 9
1 1. 1 3 C ase Study : High - Level Re quirements for Open O ffice . . . . . . . . . . .. .. . . . . . . . 273
11. 1 4 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 2 75
1 1. 15 Exercises . . . . . . . . .
. . . . . . .
. . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 2 75
Bibli ogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 76
20.7 Degree o f Sp ace E ffic ie ncy as a Des ig n Qu al ity Me asure . .. . . . . . .. . . . .... ... . . 5 19
20. 8 Degree of Rel iab il ity as a Des ig n Qu al ity Me asure . . . . ... . . . . . . .. . . .... . ... . 52 1
20.9 Degree o f Security as a Des ig n Qu al ity Me asure . . . . . . ... . . . . ... . . . . . . 5 23
20. 10 Assessi ng Qu al ity i n Architecture Selectio n . . . . . . . . . . . .. . . . . ... . . . .. . . . . . . 5 25
20. 1 1 Assessi ng the Qu ality o f Det ailed Desig ns . . . . . . . . . . . .. . . . . .. .. . . . . . . . . .. . 53 1
20. 12 Summ ary . . . . . . . . .... . . . . . . . . . . . .. . ... . . .. . . . .. . . . . . . . . . . . . . 536
20. 13 Exerc is es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 536
B ibliogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . . . . . . . . . .. . 537
PART VI Implementation
Much o f the modern world runs on so ftw are. As a result, so ftw are engi neers are entrusted with signific ant
responsibi lity. Although it is a biomedic al engi neer, for ex amp le, who designs he alth monitoring systems, it is
a so ftw are engi neer who cre ates its actu al control functions. A m arketing pro fession al develops w ays to re ach
customers online but it is a so ftw are engineer who m akes the system a re ality.
Tod ay's so ftw are engi neer must be able to p articip ate i n more th an one kind o fso ftw are process, work in
agile te ams, de al with customers, express re quirements cle arly, cre ate modul ar designs, utilize leg acy and
open source projects, monitor qu al ity, incorpor ate security, and apply m any types o f tests.
A so ftw are applic ation consists o f tens, hundreds, even thous ands o f cl asses. This is very di fferent from
m an aging three or four o f them, and results i n the dr agon o f comp lexity suggested by this book's cover. As
al so suggested there, however, this dr agon c an be subdued. Indeed, to de al with numerous and complex
c lasses, so ftw are engineers h ave at their dispos al a wide v ariety o f too ls and techni ques. These r ange from the
w ater fal l process to agile methodologies, from high ly integr ated tool suites to re factoring and loosely coupled
tool sets . Underlying this v ariety is continuing rese arch into rel i able appro aches, and an acknowledgment o f
the fact th at one size does not fit all projects.
The first edition o f this book emph asized the object -oriented appro ach, which h as subse quently
become widespre ad. It w as also designed to help student te ams c ar ry out h ands -on term projects through
theory, ex amp le s , c ase studies, and pr actic al steps. Object-orient ation and h ands -on continue to be m ajor fe atures
o f this edition. However, we h ave widened the scope o f the first edition, especi ally by including extensive
cover age o f agile methods and re factoring, together with deeper cover age o f qu ality and so ftw are design.
Re aders o f the first edition m ade extensive use o f the complete video g ame c ase study -an ex ample th at
they could fo llow " from soup to nuts" but which w as signific antly more comprehensive th an a toy. This edition
ret ains and upd ates th at c ase study, but it adds the explor ation o f asimpler ex ample on one h and ( aDVD rent al
store) and l arge, re al , open source c ase studies on the other. In p articul ar, to provide students a fee ling fo r the
scope and complexity o f re al-world app lic ation s, thi s boo k le ads them through se le cted re quireme nt s, de si gn,
implement ation, and m ainten ance o f the Ecli pse and OpenO fflc e open source projects . The size, complexity ,
and tr ansp arency o f these projects provide students a wi ndow into so ftw are engi neering on a re alistic sc ale .
Every book on so ftw are engineeri ng faces a di lem ma: h o w t o reconcile the org aniz ation o f the topics
with the org aniz ation o f actu al so ftw are project phases. An org aniz atio n o f ch apters into process/project
m an agement/re quirements an alysis/design limp lement ation/test/m ainten ance is str aightforw ard but is li able
to be misinterpreted as pro moting the w ater fall deve lopment process at the expe nse others . Our appro ach h as
been to use this org aniz ation in the seven p arts o f the book but to demonstr ate throughout th at e ach ph ase
PREFACE XV
typic ally belongs to a cycle r ather th an to a single w aterf al l se quence. I n p articul ar , our appro ach integr ates
agile methodologies consistently.
This edition also i n troduces somewh at adv anced i nfluenti al i de as , i nc ludi ng mode l - driven archi
tectures and aspect -oriented progr amming. Now ad ays, form al methods are m an d ated by government
agencies for the h i ghest l eve ls o f security, and thi s book aims to educ ate re aders i n their possibilities. Due
to print sp ace l i m i t ations, some of this m ateri al is to be found in the online extension of this book.
I n summ ary , speci fic fe atures of this edition comp ared with the first are as fol 1ows :
• A sh arpening and st and ardi z ation of the m ateri al from the first edition
• A strong agile thre ad throughout, includi ng a ch apter on agil ity alone and one devoted to ref actoring.
• Re al -world c ase studies , t aken from the Eclipse and OpenOffice open source pro je cts
• Gre atly exp anded cover age of softw are design and design p atterns
• An org aniz ation of m any of the book 's seven p arts as follows :
• Principles
• Det ails
• Qu ality
This book h as been designed to accommod ate multiple appro aches to the le arning and te aching of softw are
engineering. Most instructors te ach the fun d ament als of softw are process, pro ject m an agemen t , re quirements
an alysis, deSign , testing , implement ation, and m ai nten ance . Beyond this common ground , however ,
i nstructors employ a wide v ariety of styles and emph ases. The following are m ajor appro aches , together
with the se quence of ch apters th at support e ach of them .
B. Design emphasis, which te aches softw are engineering prim arily as a design activity
Principles and introduction : Ch apters 1, 3 , 7, and 10 ; all of P art V ; and Ch apters 2 2 and 25 (principles
and introduction)
C. Programming and agile emphasis, which emph asizes softw are engineering as a code-oriented activity th at
s atisfies re quiremen ts , emph asizing agile appro aches
Principles and i ntroduction : Ch apters 1,3 ,7, 10, and 15 ; all of P art V I; and Ch apters 25 and 26
D . Two-semester course, which en ables the instructor to cover most topics and assign a subst anti al h ands-on
pro je ct
xvi PREFACE
Di. All o f the chapters in the book, either in se quence from beginning to end
or
( i ) Pri nciples and i ntroduction chapters in the first semester : Chapters 1, 3 , 7, 15, 2 2 , and 2 5
( i i ) The remaining chapters in the second semester
E. Emphasis on a hands-on projects and case studies, which relies mostly on an active team or individual project as
the vehicle for learning theory and principles
Principles and introduction chapters: Chapters 1, 3 , 7, 15, 2 2 , 25, and 26, and all case study sections i n
the remaining chapters
F. Theory and principles emphasis, concen trating on what one can learn about so ftware engineeri ng and its
underpin nings
Principles and introduction chapters : Chapters 1, 2, 3 , 7, 15 , 2 2 , and 2 5 , followed , as time allows, by
Chapters 14 and 2 1 (emergi ng topics)
The web site for this book, including review questions and the Encounter game case study , is
waveland. com /Extra Material /3 2306 /.
_
Eric Braude
Michael Bernstein
Boston, MA
January 20 10
Acknowledgments
We owe a de bt of gr atitude to our students at Boston University's Metropo li t an Co lIe ge. Working in myri ad
industries and busi nesses , they h ave given us inv alu ab le feed back. The Co lIege i tse lf h as provided amode lpl ace
for the te aching and le arning of softw are engi neeri ng. Our th anks go to Dick Bostwick and Tom V anCourt,
much of whose work in the first edition c arries over to this one. We are gr atefu l to the peop le who worked with
us through the p ainst aking process of writing and pu blishing this book. We are p articul arly appreci ative of the
he lp from our editors, D an S ayre and Jon ath an Ship ley ; from Georgi aKing, Yee Lyn Song, and the indef atig able
st aff. We th ank the reviewers of our m anuscript, whose feed back h as been inv alu able :
Arvin Ag ah , U niversity of Kans as
Steven C . Sh affer, Pennsy lv ani a St ate University
Stephen M. Theb aut, U niversity of F lorid a
Ar avind a P. Sist la, U niversity of I lli nois, Chic ago
James P . Purtilo, Un iversi ty of M aryl and
Li nd a M . Ott, Michig an Techno logic al University
Ji anwei Niu, University of Tex as, S an Antonio
Wi lli am Lively, Tex as A &M U n iversity
Chung Lee, C al i forni a St ate University, Pomon a
Sudipto Ghosh , Color ado St ate Un iversity
M ax I. Fomitchev, Pennsy lv ani a St ate University
L awrence Bernste i n , Stevens Institute of Techno logy
Joh n D albey, C ali forni a Po ly tech nic University
Len Fisk, C ali forn i a St ate U niversity, Chico
Ahmed M. S alem , C ali forni a St ate U niversity, S acr amento
Fred Str auss, New York University
Kai H. Ch ang, Auburn University
Andre v an der Hoek, Un iversity of C ali forni a, Irvine
S aeed Monemi , C al i forni a Polytechnic University
Ro bert M . Cu bert, U niversity of Florid a
Chris Tseng, S an Jose St ate University
Mich ael James P ayne, Purdue U niversity
C aro l A. Wel l ington, Shippens burg U n iversity
Yifei Dong, University of Ok lahom a
Peter B lanchfie ld , Nottingh am U niversity
Desmond Greer , Queen's University Be lf ast
Wei Qi Yan, Queen s' University Bel f ast
Zaigh am M ahmood, Der by U niversity
Karel Pieterson, Hogeschool V an Amsterd am
This book would not h ave been possi ble without the const ant love , p atience , and encour agement of our families.
The Goals and Terminology
of Software Engineering
� Maintenance
Who and what does is consist of?
Testing
\
The Software What are its main activities?
Development
Lifecycle What are the principles of software
Requirements
/
engineering?
analysis
Implementation
What ethics are involved?
� DeSign
What sorts of case studies will be
used to illustrate the subject?
Figure 1.1 The context and learning goals for this chapter
The goal o f so ftware engi neeri ng, and the theme o f this book, is the creation o f so ftware systems that
meet the needs o f customers and are reliable, e fficient, and maintainable. In addition, the system should be
produce d in an econom ical fash ion ,meeting project schedules and budgets. Thi s i s n o easy task, especially
for large , complex app l ic ations. Th is chapter i ntroduces the field o f so ftware engineering and explains how
i t addresses these goals . We first expl ain the term "so ftware engineering," showing that i t consists o f many
parts .
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
2 CHAPTER 1 THE GOALS AND TERM INOLOGY OF SOFTWARE ENGIN EERING
Software engineering is an engineering discipline that involves all aspects of developing and maintai ning a
software product. Engineering disciplines such as civil , mechanical , and electrical involve the design, analysis,
and construction of an arti fact for some practical purpose. Software engineering is no excepti on to thi s
software products certainly have practical purposes.
The IEEE defines Software Engineering [ 1] as follows:
1 . The application of a systematic, disciplined, quanti fiable approach to the development, operation and
maintenance of software; that is, the appl ication of engineering to software .
A s this definition suggests, it's not only what i s produced that's i mportant but also how it is produced.
Engineering disciplines employ an established set of systematic, disciplined, and quantifiable approaches to the
development of artifacts. By thoroughly applying an analogous set of approaches to the development of software,
we can expect the production of software that is highly reliable, is maintainable, and meets specified
requirements. A disciplined approach is particularly important as the size of a software project grows. With
i ncreased size comes greatly increased complexity, and applying a systematic and disciplined approach is critical.
One of the first uses of the phrase "software engineering" was i n 1 96 8 , by a NATO Study Group on
Computer Science [ 2 ] . A conference was organized at that time, motivated by the "rapidly i ncreasing importance
of computer systems in many activities of society." The Study Group focused their attention on the problems
with software, and held a working conference on Software Engineeri ng that turned out to see far i nto the future.
The following are some quotes from the conference that summarize the cause for their concern :
The basic problem is that certain classes of systems are placing demands on us which are beyond
our capabilities and our theories and methods of design and production at this time . . . It is large
systems that are encounteri ng great difficulties. We should not expect the production of such
systems to be easy.
Particularly alarming is the seemingly unavoidable fallibility of large software, s i nce a mal
function in an advanced hardware-software system can be a matter of l i fe and death .
Programming management will continue to deserve its current poor reputation for cost and schedule
effectiveness until such time as a more complete understanding of the program design process is achieved.
One of the problems that is central to the software production process is to identi fy the nature of
progress and to find some way of measuring it.
Today we tend to go on for years, with tremendous investments to find that the system, which was
not well understood to start with, does not work as anticipated. We build systems l ike the Wright
brothers built airplanes-bUild the whole thing, push it off the cliff, let it crash, and start over again .
The Study Group discussed possible techniques a n d methods that might lead t o solving these problems.
They deliberately and provocatively used the term "software engineering," with an emphasis on engineering,
as they wanted to "imply the need for software manufacture to be based on the types of theoretical
foundations and practical disciplines that are traditional i n the established branches of engi neering." They
believed that if these foundations and discipline were applied to building software systems, the quality of the
resulting systems would be vastly improved.
Today, many of the issues they identified are addressed by evolving software engineering tech ni ques
and practices even as the scope of appli cations has increased dramatically. Throughout thi s book we exam ine
these practices and explain how they contribute to producing high-quality software . Before doi n g that,
WHY SOFTWARE E N G I N EERING IS CRITICAL: SOFTWARE DISASTERS 3
however, it is instructive to begin examining why software fails in the first place, and how some failures can
even lead to catastrophic results.
Even with the best of intentions, a large number of software projects today are unsuccessful, with a large
percentage never completed. Worse , quite a few software projects stil l end in disaster, causing a loss of
money, time, and tragically, even l ives. We review some representative samples here as cautionary tales. In all
cases, the methods employed were i nadequate for the complexity of the required application. Failures such as
these motivate us to conti nually ask: How can we apply software engineering methodologies to ensure the
appropriate level of quality in software applications?
The FBI's Virtual Case File system was intended to automate the FBI's cumbersome paper-based case system, allow
agents to share investigative information, and replace obsolete systems. Instead, after an expenditure of $ 1 70
million, the result did not accomplish these objectives at all . The effect has been to inhibit the FBI from growing its
crime-fighting mission despite the growth in terrorism and the increased sophistication of many criminal
organizations. All of 700,000 lines of code, costing $ 1 00 milIion, had to be abandoned. Poorly defined requirements,
networking plans, and software development plans were cited by investigators as causes for this disaster.
"On 4 June 1 996, the maiden flight of the Ariane s launcher ended in failure. Only about 40 seconds after initiation of
the flight sequence, at an altitude of about 3700 m, the launcher veered off its flight path, broke up and exploded." [ 3 ]
The cost o f developing Ariane during the preceding decade has been estimated a t $7 billion. A significant fraction o f
this was wasted o n June 4, 1 996. Ariane s itself, including its specific development, has been valued a t $500 million.
The source of the problem was described i n the official report [ 3 ] as fol l ows ( italics added) :
The internal Inertial Reference System software exception was caused during execution of a data
conversion from 64-bit floating point to 1 6-bit signed integer value . The floating-point number
which was converted had a value greater than what could be represented by a 1 6-bit signed
integer. This resulted in an Operand Error. The data conversion instructions ( i n Ada code) were
not protected from causing an Operand Error. . . The error occurred in a part of the software that only
.
performs alignment of the strap- down inertial platform . This software module computes mean
ingful results only before l i ft-off. As soon as the launcher l i fts off, this function serves no purpose.
In other words, the data conversion code itsel f was "correct" but was called upon to execute when it should
not have been . The defect lay within controlling code. This kind of problem is easy to describe but not easy to
avoid because many people are involved in large projects. Large projects become extraordinarily complex.
Development efforts like Ariane call for extensive education and coordination within project management, quality
assurance, configuration management, architecture, detailed design, programming, and testi ng organizations.
Depending on how the project was organized and designed, any one of these organizations could have been
partly responsible for seeing to it that the code in question was not called after l i ftoff.
As software controls an ever-increasing number of devices, its reliability is coming under increasingly intense
scrutiny. In the project management magazine Baseline, Debbie Gage, John McCormick, and Berta Ramona wrote
4 CHAPTER 1 THE GOALS AND TERMINOLOGY OF SOFTWARE E N G I N EERING
of a lawsuit alleging "massive overdoses of gamma rays partly due to limitations of the computer program that
guided use of' a particular radiation-therapy machine. They reported the following: "The International Atomic
Energy Agency said in May 200 1 that at least five of the deaths were probably from radiation poisoning ( from the
machi ne) and at least 1 5 more patients risked developing 'serious compl ications' from radiation. " [4] The defect
did not show up until a significant time after release, and only after certain sequences of operator actions.
The followi ng describes the software defect, and is quoted from [ 5 ] .
Setting the bending magnets takes about 8 seconds. Magnet calls a subrouti ne called Ptime to
i ntroduce a time delay. Since several magnets need to be set, Ptime is entered and exited several
times . A flag to indicate that bending magnets are being set is initial ized upon entry to the Magnet
subroutine and cleared at the end of Ptime. Furthermore, Ptime checks a shared variable, set by the
keyboard handler, that indicates the presence of any editi ng requests . If there are edits, then Ptime
clears the bending magnet variable and exi ts to Magnet, which then exits to Datent. But the edit
change variable is checked by Ptime only i f the bendi ng magnet flag is set. Si nce Ptime clears it
duri ng its first executio n , any edits performed duri ng each succeedi ng pass through Ptime will not
be recogn ized. Thus, an edit change of the mode or energy, although reflected on the operator's
screen and the mode/energy offset variable, will not be sensed by Datent so it can index the
appropriate calibration tables for the machine parameters. 1
This is a fairly involved explanation but not at all beyond the complexity of many software systems in
existence today. When should this type of error have been found? I f sound software engineering discipline
had been employed duri ng all phases of the project, there would have been several opportun ities in the
development process to detect it.
Readers who wish to know about more software disasters, big and small, are referred to Neumann [6], who discusses
risks, problems, defects, and disasters relating to reliability, safety, security vulnerabilities, integrity, and threats to
privacy and well-being. Another source is the ACM publication Software Engineering Notes and its Risks Forum [7].
Thankfully, not all software proj ects end in the types of disasters described above, but far too many end in
failure . What does it mean for a software project to be unsuccessful? Simply put, an unsuccessful project is one
that fails to meet expectations. More speci fically, the undesirable outcomes may include the following:
• Over budget
1 Leve n s o n , Nancy, and Turner C . S . , "An I nvestigation o f the Therac - 2 5 Acci de n ts , " IEEE Computer, Vol . 26, No. 7,
luly 1 99 3 , pp. 1 8-4 1 , copyright © 1 99 3 IEEE.
SOFTWARE E N G I N EERING ACTIVITIES 5
Failing to meet just one of these objectives can cause a project to be deemed unsuccessful. For example,
i f a project is completed under budget, meets all requirements and functionality, has h i gh quality, good
performance and is easy to use, it still may not be successful if the schedule was missed and no customers are
wil l i ng to purchase it as a result.
Charette [ 8 J notes that there are many underlying reasons software proj ects are unsuccessful , including:
• Unmanaged risks
Unsuccessful software projects usually fall victim to several of these . To reiterate, the goal of software
engineering, and the theme of this book, is the creation of software systems that are reliable, efficient,
maintainable, and meet the needs of customers. Software engineering provides the tools and methodologies
necessary to accomplish these goals, resulting in the development of successful software systems .
We'll end this section on a positive note. The authors feel that software engineering has improved greatly,
when measured fairly. Projects of equal ambition can typically get done far more successfully now than 1 0 years
ago. The issue really is that the ambition and scope of applications have grown enormously. The Eclipse software
development platform , which this book uses as a case study, is an excellent example of a successful application.
This is largely due to its flexible design, inclusive requirements process, and thorough testing.
1 .4 SOFTWARE E N G I N E E R I N G ACTIVITI ES
The production of software systems can be extremely complex and present many challenges. Systems, especially
large ones, require the coordination of many people, called stakeholders, who must be organized into teams and
whose primary objective is to build a product that meets defined requirements. The entire effort must be organized
2 Charett, Robert, "Why Software Fails," IEEE Spectrum, Vol . 4 2 , N o . 9, September 2005, pp. 42-49, copyright ©
2005 IEEE.
6 CHAPTER 1 THE GOALS AND TERM I N O LOGY OF SOFTWARE E N G I N EERING
• People
• Project stakeholders .
• Product
• Project
• Process
• Framework within which the team carries out the activities necessary to build the product .
i nto a cohesive project, with a solid plan for success. Finally, to successfully develop the product, the activities of
the people must be organi zed through use of an orderly and wel l-defined process. Collectively, these activities are
known as the 4 P's of software engineering: people , product, project, and process. Successful software projects
must adequately plan for and address all of them . Sometimes, the needs of each of the P's conflict with each other,
and a proper balance must be achieved for a project to be successful . Concentrating on one P without the others
can lead to a project's failure. For example, i f people are organized into efficient teams and given the resources
they need to perform their roles, a project can still be unsuccessful if there's no defi ned software process to follow,
as chaos can ensue . The 4 P's are summarized in Figure 1 . 2 and are discussed in the sections that follow .
1 . 4 . 1 people
People are the most important resource on a software project. It is through their efforts that software is
successfully constructed and delivered. Competent people must be recruited, trained, motivated, and
provided with a growth path , which is no easy task. They are the l i feblood of any successful project.
Software development is o ften dictated by tight, market- driven deadli nes and demanding l ists o f required
product features. Because of this, only wel l - organized groups of engi neers, educated and experienced in the
methods of software engineering, are capable of conSistently carryi ng out these activities to everyone's
satisfacti o n . The alternative is often chaos and, all too frequently, disaster.
Typically, several groups of people are i nvolved with and have a stake in a proj ect's outcome. These are
called its stakeholders. They include business management, project management, the development team ,
customers , and end users. Although each group is motivated to see the project succeed, given their diverse
roles each has a di fferent perspective on the process . This is discussed next, for each of the groups cited.
Business Management
These are people responsible for the busi ness side of the company developing the software . They include senior
management (e.g., V . P . Finance), marketing (e.g., Product Manager), and development managers . Their primary
focus is on business issues i ncluding profit, cost effectiveness, market competitiveness, and customer satisfaction .
They are typically not particularly knowledgeable about or involved in the technical aspects of the project.
project Management
Project managers are responsible for planning and tracking a proj ect. They are involved throughout,
managing the people, process, and activities . They continuously monitor progress and proactively implement
necessary changes and improvements to keep the project on schedule and with i n budget.
Random documents with unrelated
content Scribd suggests to you:
Section 4. Information about Donations to
the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission
of increasing the number of public domain and licensed works
that can be freely distributed in machine-readable form
accessible by the widest array of equipment including outdated
equipment. Many small donations ($1 to $5,000) are particularly
important to maintaining tax exempt status with the IRS.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.