Software Engineering: Principles and Practice challenges the reader to appreciate the issues, design trade-offs and teamwork required for successful software development. This new edition has been brought fully up to date, with complete coverage of all aspects of the software lifecycle and a strong focus on all the skills needed to carry out software projects on time and within budget.
Highlights of the third edition include:
Fully updated chapters on requirements engineering and software architecture.
New chapters on component-based software engineering, service orientation and global software development.
Extensive coverage of the human and social aspects of software development.
Balanced coverage of both traditional, heavyweight development and agile, lightweight development approaches such as Extreme Programming (XP).
Written to support both introductory and advanced software engineering courses, this book is invaluable for everyone in software development and maintenance who wants an accessible account of the problems incurred in large-scale software development and the proposed solutions.
A companion website with additional resources for students and instructors can be found at www.wileyeurope.com/college/van vliet
Hans van Vliet has been Professor of Software Engineering at the VU University in Amsterdam, the Netherlands since 1987.
Die Inhaltsangabe kann sich auf eine andere Ausgabe dieses Titels beziehen.
Hans van Vliet has been Professor of Software Engineering at the VU University in Amsterdam, the Netherlands since 1987.
Software Engineering: Principles and Practice challenges the reader to appreciate the issues, design trade-offs and teamwork required for successful software development. This new edition has been brought fully up to date, with complete coverage of all aspects of the software lifecycle and a strong focus on all the skills needed to carry out software projects on time and within budget. Highlights of the third edition include:
Written to support both introductory and advanced software engineering courses, this book is invaluable for everyone in software development and maintenance who wants an accessible account of the problems incurred in large-scale software development and the proposed solutions. A companion website with additional resources for students and instructors can be found at www.wileyeurope.com/college/van vliet
Software Engineering: Principles and Practice challenges the reader to appreciate the issues, design trade-offs and teamwork required for successful software development. This new edition has been brought fully up to date, with complete coverage of all aspects of the software lifecycle and a strong focus on all the skills needed to carry out software projects on time and within budget. Highlights of the third edition include:
Written to support both introductory and advanced software engineering courses, this book is invaluable for everyone in software development and maintenance who wants an accessible account of the problems incurred in large-scale software development and the proposed solutions. A companion website with additional resources for students and instructors can be found at www.wileyeurope.com/college/van vliet
LEARNING OBJECTIVES
To understand the notion of software engineering and why it is important
To appreciate the technical (engineering), managerial, and psychological aspects of software engineering
To understand the similarities and differences between software engineering and other engineering disciplines
To know the major phases in a software development project
To appreciate ethical dimensions in software engineering
To be aware of the time frame and extent to which new developments impact software engineering practice
Computer science is still a young field. The first computers were built in the mid 1940s, since when the field has developed tremendously.
Applications from the early years of computerization can be characterized as follows: the programs were quite small, certainly when compared to those that are currently being constructed; they were written by one person; they were written and used by experts in the application area concerned. The problems to be solved were mostly of a technical nature, and the emphasis was on expressing known algorithms efficiently in some programming language. Input typically consisted of numerical data, read from such media as punched tape or punched cards. The output, also numeric, was printed on paper. Programs were run offline. If the program contained errors, the programmer studied an octal or hexadecimal dump of memory. Sometimes, the execution of the program would be followed by binary reading of machine registers at the console.
Independent software development companies hardly existed in those days. Software was mostly developed by hardware vendors and given away for free. These vendors sometimes set up user groups to discuss requirements, which they incorporated into their software. This software development support was seen as a service to their customers.
Present-day applications are rather different in many respects. Present-day programs are often very large and are developed by teams that collaborate over periods spanning several years. These teams may be scattered across the globe. The programmers are not the future users of the system they develop and they have no expert knowledge of the application area in question. The problems that are being tackled increasingly concern everyday life: automatic bank tellers, airline reservation, salary administration, electronic commerce, automotive systems, etc. Putting a man on the moon was not conceivable without computers.
In the 1960s, people started to realize that programming techniques had lagged behind the developments in software both in size and complexity. To many people, programming was still an art and had never become a craft. An additional problem was that many programmers had not been formally educated in the field. They had learned by doing. On the organizational side, solutions to problems often involved adding more and more programmers to the project, the so-called 'million-monkey' approach.
As a result, software was often delivered too late, programs did not behave as the user expected, programs were rarely adaptable to changed circumstances, and many errors were detected only after the software had been delivered to the customer. This became known as the 'software crisis'.
This type of problem really became manifest in the 1960s. Under the auspices of NATO, two conferences were devoted to the topic in 1968 and 1969 (Naur and Randell, 1968; Buxton and Randell, 1969). Here, the term 'software engineering' was coined in a somewhat provocative sense. Shouldn't it be possible to build software in the way one builds bridges and houses, starting from a theoretical basis and using sound and proven design and construction techniques, as in other engineering fields?
Software serves some organizational purpose. The reasons for embarking on a software development project vary. Sometimes, a solution to a problem is not feasible without the aid of computers, such as weather forecasting or automated bank telling. Sometimes, software can be used as a vehicle for new technologies, such as typesetting, the production of chips, or manned space trips. In yet other cases, software may increase user service (library automation, e-commerce) or save money (automated stock control).
In many cases, the expected economic gain will be a major driving force for automation. It may not, however, always be easy to prove that automation saves money (just think of office automation) because, apart from direct cost savings, the economic gain may also manifest itself in such things as more flexible production or a faster or better user service. In either case, software development is a value-creating activity.
Boehm (1981) estimated the total expenditure on software in the US to be $40 billion in 1980. This was approximately 2% of the GNP. In 1985, the total expenditure had risen to $70 billion in the US and $140 billion worldwide. Boehm and Sullivan (1999) estimated the annual expenditure on software development in 1998 to be $300-400 billion in the US and twice that amount worldwide.
So the cost of software is of crucial importance. This concerns not only the cost of developing the software, but also the cost of keeping the software operational once it has been delivered to the customer. In the course of time, hardware costs have decreased dramatically. Hardware costs now typically comprise less than 20% of total expenditure (see Figure 1.1). The remaining 80% are comprised of all non-hardware costs: the cost of programmers, analysts, management, user training, secretarial help, etc.
An aspect closely linked with cost is productivity. In the 1980s, the quest for data-processing personnel increased by 12% per year, while the population of people working in data processing and the productivity of those people each grew by approximately 4% per year (Boehm, 1987a). This situation has not fundamentally changed (Jones, 1999). The net effect is a growing gap between demand and supply. The result is both a backlog with respect to the maintenance of existing software and a slowing down in the development of new applications. The combined effect may have repercussions on the competitive edge of an organization, especially when there are severe time-to-market constraints. These developments have led to a shift from producing software to using software. We'll come back to this topic in Section 1.6 and Chapters 17-19.
The issues of cost and productivity of software development deserve our serious attention. However, this is not the complete story. Society is increasingly dependent on software. The quality of the systems we develop increasingly determines the quality of our existence. Consider as an example the following message from a Dutch newspaper on 6 June 1980, under the heading 'Americans saw the Russians coming':
For a short period last Tuesday, the United States brought their atomic bombers and nuclear missiles to an increased state of alarm when, because of a computer error, a false alarm indicated that the Soviet Union had started a missile attack.
Efforts to repair the error were apparently in vain, for on 9 June 1980, the same newspaper reported:
For the second time within a few days, a deranged computer reported that the Soviet Union had started a nuclear attack against the United States....
„Über diesen Titel“ kann sich auf eine andere Ausgabe dieses Titels beziehen.
Anbieter: Goodwill Books, Hillsboro, OR, USA
Zustand: acceptable. Fairly worn, but readable and intact. If applicable: Dust jacket, disc or access code may not be included. Bestandsnummer des Verkäufers GICWV.0470031468.A
Anzahl: 1 verfügbar
Anbieter: Better World Books: West, Reno, NV, USA
Zustand: Good. Used book that is in clean, average condition without any missing pages. Bestandsnummer des Verkäufers 6494875-6
Anzahl: 1 verfügbar
Anbieter: ThriftBooks-Atlanta, AUSTELL, GA, USA
Paperback. Zustand: Good. No Jacket. Pages can have notes/highlighting. Spine may show signs of wear. ~ ThriftBooks: Read More, Spend Less. Bestandsnummer des Verkäufers G0470031468I3N00
Anzahl: 1 verfügbar
Anbieter: HPB-Red, Dallas, TX, USA
Paperback. Zustand: Good. Connecting readers with great books since 1972! Used textbooks may not include companion materials such as access codes, etc. May have some wear or writing/highlighting. We ship orders daily and Customer Service is our top priority! Bestandsnummer des Verkäufers S_393008077
Anzahl: 1 verfügbar
Anbieter: BooksRun, Philadelphia, PA, USA
Paperback. Zustand: Good. 3. It's a preowned item in good condition and includes all the pages. It may have some general signs of wear and tear, such as markings, highlighting, slight damage to the cover, minimal wear to the binding, etc., but they will not affect the overall reading experience. Bestandsnummer des Verkäufers 0470031468-11-1
Anzahl: 1 verfügbar
Anbieter: TextbookRush, Grandview Heights, OH, USA
Zustand: Good. Ships SAME or NEXT business day. We Ship to APO/FPO addr. Choose EXPEDITED shipping and receive in 2-5 business days within the United States. See our member profile for customer support contact info. We have an easy return policy. Bestandsnummer des Verkäufers 53408545
Anzahl: 1 verfügbar
Anbieter: One Planet Books, Columbia, MO, USA
paperback. Zustand: Like New. 3rd Edition. Ships in a BOX from Central Missouri! Like Brand NEW. No tears, highlighting or writing because it's never been used! May have minor shelf wear. UPS shipping for most packages, (Priority Mail for AK/HI/APO/PO Boxes). Bestandsnummer des Verkäufers 000857596N
Anzahl: 12 verfügbar
Anbieter: Better World Books Ltd, Dunfermline, Vereinigtes Königreich
Zustand: Good. Ships from the UK. Used book that is in clean, average condition without any missing pages. Bestandsnummer des Verkäufers 6494875-6
Anzahl: 1 verfügbar
Anbieter: Phatpocket Limited, Waltham Abbey, HERTS, Vereinigtes Königreich
Zustand: Good. Your purchase helps support Sri Lankan Children's Charity 'The Rainbow Centre'. Ex-library, so some stamps and wear, but in good overall condition. Our donations to The Rainbow Centre have helped provide an education and a safe haven to hundreds of children who live in appalling conditions. Bestandsnummer des Verkäufers Z1-U-012-02217
Anzahl: 2 verfügbar
Anbieter: Anybook.com, Lincoln, Vereinigtes Königreich
Zustand: Good. This is an ex-library book and may have the usual library/used-book markings inside.This book has soft covers. In good all round condition. Please note the Image in this listing is a stock photo and may not match the covers of the actual item,1450grams, ISBN:9780470031469. Bestandsnummer des Verkäufers 5779651
Anzahl: 1 verfügbar