收藏 分享(赏)

软件工程.pdf

上传人:刘岱文 文档编号:8286 上传时间:2018-05-28 格式:PDF 页数:868 大小:34.27MB
下载 相关 举报
软件工程.pdf_第1页
第1页 / 共868页
软件工程.pdf_第2页
第2页 / 共868页
软件工程.pdf_第3页
第3页 / 共868页
软件工程.pdf_第4页
第4页 / 共868页
软件工程.pdf_第5页
第5页 / 共868页
点击查看更多>>
资源描述

1、SoftwareEngineeringSoftware Engineering(Eighth Edition)m(IjJif:t-XIV. TP311.5tJltOCIlJt.tJItR11(t;)rni*iJ&IKR7JI:*fij22riF:I:li10(037)rJtffJiUJj:jiSt!R1Ftffiffit1liJJJ&fp,ljlljrfP,ljl1j.iT#:IX.The first edition of this textbook on software engineering was published more thantwenty years ago. That ed

2、ition was wJitten using a dumb terminal attached to an earlyminicomputer (a PDP-II) that probably cost about $50,000. I wrote this edition ona wireless laptop that cost less than $2,000 and is many times more powerful thanthat PDP-Ii. Software then was mostly mainframe software, but personal compute

3、rswere just becoming available. None of us then realised how pervasive these wouldbecome and how much they would change the world.Changes in hardware over the past twenty or so years have been absolutely remark able, and it may appear that changes in software have been equally significant.Certainly,

4、 our ability to build large and complex systems has improved dramatically.Our national utilities and infrastructure-energy, communications and transport rely on very complex and, largely, very reliable computer systems. For buildingbusiness systems, there is an alphabet soup of technologies-J2EE, .N

5、ET, EJB, SAP,BPEL4WS, SOAP, CBSE-that allow large web-based applications to be deployedmuch more quickly than was possible in the past.However, although much appears to have changed in the last two decades, whenwe look beyond the specific technologies to the fundamental processes of soft ware engine

6、ering, much has stayed the same. We recognised twenty years ago thatthe waterfall model of the software process had serious problems, yet a surveypublished in December 2003 in IEEE Software showed that more than 40% ofcompames are still using this approach. Testing is still the dominant programvalid

7、ation technique, although other techniques such as mspections have been usedmore effectively since the mid-1970s. CASE tools, although now based around theUML, are still essentially diagram editors with some checking and code-generationfunctionality.viii PrefaceOur current software engineering metho

8、ds and techniques have made us muchbetter at building large and complex systems than we were. However, there are stilltoo many projects that are late, are over budget and do not deliver the softwarethat meets the customer s needs. While I was writing the 7th edition, a governmentenquiry in the UK re

9、ported on the project to provide a national system to be usedin courts that try relatively minor offenders. The cost of this system was estimatedat 156 million and it was scheduled for delivery in 2001. In 2004, costs hadescalated to 390 million and it was still not fully operational. There is, ther

10、efore,still a pressing need for software engineering education.Over the past few years, the most significant developments in software engineer ing have been the emergence of the UML as a standard for object-oriented systemdescription and the development of agile methods such as extreme programming.A

11、gile methods are geared to rapid system development, explicitly involve the userin the development team, and reduce paperwork and bureaucracy in the softwareprocess. In spite of what some critics claim, I think these approaches embody goodsoftware engineering practice. They have a well-defined proce

12、ss, pay attention tosystem specification and user requirements, and have high quality standards.However, this revision has not become a text on agile methods. Rather, I focuson the basic software engineering processes-specification, design, development,verification, and validation and management. Yo

13、u need to understand these processesand associated techniques to decide whether agile methods are the most appropriatedevelopment strategy for you and how to adapt and change methods to suit yourparticular situation. A pervasive theme of the book is critical systems-systems whosefailure has severe c

14、onsequences and where system dependability is critical. Ineach part of the book, I discuss specific software engineering techniques that arerelevant to critical systems engineering.Books inevitably reflect the opinions and prejudices of their authors. Somereaders will disagree with my opinions and w

15、ith my choice of material. Such dis agreement is a healthy reflection of the diversity of the discipline and is essentialfor its evolution. Nevertheless, I hope that all software engineers and softwareengineering students can find something of interest here.The structure of the bookThe structure of

16、the book is based around the fundamental software engineeringprocesses. It is organised into seven parts. The first six focus on software processesand the final part discusses some important new software engineering technologies.Part 1: Introduces software engineering, places it in a broader systems

17、 contextand presents the notions of software engineering processes and management.Preface ixPart 2: Covers the processes, tech.niques and deliverables that are associated withrequirements engineering. It includes II discussion of software requirements,system modelling, formal specification and techn

18、iques for specifying dependability.Part 3: This part is devoted to software design and design processes. Three out ofthe six chapters focus on the important topic of software architectures. Other topicsinclude object-oriented design, n:al-time systems design and user interface design.Part 4: Describ

19、es a number of approaches to development, including agile methods,software reuse, CBSE and critical systems development. Because change is nowsuch a large part of development, I have integrated material on software evolutionand maintenance into this part.Part 5: Focuses on techniques for software ve

20、rification and validation. It includeschapters on static V & V, testing and critical systems validation.Part 6: This part covers a range of management topics: managing people,cost estimation, quality management, process improvement and configurationmanagement.Part 7: The final part includes three ch

21、apters that are devoted to importantnew technologies that are already starting to be used. The chapters cover securityengineering, service-oriented software engineering and aspect-oriented softwaredevelopment.In the introduction to each part, I discuss the structure and organisation in moredetail.Ch

22、anges from the 7th editionThis new edition of my textbook can be thought of as a mid-life upgrade than aradical new revision of the book. I have designed it to be completely compatiblewith the 7th edition but have included a new section on Emerging Technologies.This discusses recent developments whi

23、ch I believe are significant for the future ofsoftware engineering. This section includes three additional chapters:30. Security engineering where I discuss issues of how to ensure that your soft ware is secure and can resist external attacks.31. Service-oriented software engineering where I describ

24、e new approaches toapplication development using reusable web services.32. Aspect-oriented software development where I introduce a new technique ofsoftware development based around the separation of concerns.As the other chapters in the book are still current and relevant, I have not mod ified these, apart from very small changes to link to the new material in Chapters30-32. More information on changes and the differences between the 6th and 7theditions is available from the book website.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 网络技术 > 项目管理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报