大师的软件工程书籍推荐:Software Engineering Book Recommendations --By Mary Shaw

Software Engineering Book Recommendations
Mary Shaw

People often ask me for recommendations about software engineering books. These don't cover all the topics that people ask about, but each is outstanding in its area. You'll notice that the emphasis here is on the engineering aspects of design, and the scope is not limited strictly to software.

The Books:
Software architecture and system organization
Design
Universal Modeling Language
Engineering in General
Ordering On-line:

To make it easy for you to obtain these books, each recommendation includes a link that allows you to order the book from Amazon.com. To order more than one of these, you may put each book in your shopping cart and use the "back" button to return here for the next book. .

The Recommendations:
Mary Shaw & David Garlan: Software Architecture: Perspectives on an Emerging Discipline

Naturally we'll start close to home. This is the definitive introduction to software architecture, or the study of the structural patterns people find useful for organizing software systems. Using extensive examples, it presents the software system organizations -- such as pipes-and-filters, communicating processes, blackboards, and event systems -- that software designers know and love. It goes on to discuss ways to choose from among the alternatives and to write precise specifications. Order it from Amazon.com

Frank Buschmann et al: Pattern-Oriented Software Architecture

One of the two best books from the very successful pattern movement, this one focuses on patterns that apply to overall system organization, or architecture. Order it from Amazon.com

Michael Jackson: Software Requirements and Specifications

Jackson recognizes that problems fall into recognizable classes, and that the classes have different properties. He captures these as problem frames such as "workpieces," "simple information system," and "control." The book is organized as a collection of short essays. Order it from Amazon.com

Terry Winograd (ed): Bringing Design to Software

"Design" here means design of the software-centered product as seen and used by its ultimate clients. This collection of case studies, guidelines, and reflections presents a view of software design that includes issues that are too often neglected. Order it from Amazon.com

Martin Fowler with Kendall Scott: UML Distilled

As reported by my colleagues, a high-level overview of UML. Quick read but not much technical detail. Read it to get the overview. Order it from Amazon.com

Hans-Erik Eriksson & Magnus Penker: UML Toolkit

According to my colleagues, a single volume with a chapter on each of the myriad aspects of UML. Lots of detail, CD-ROM with demo environment. Order it from Amazon.com

Eberhardt Rechtin & Mark W. Maier: The Art of Systems Architecting

Software is often embedded in a larger system. Here "architecting" is taken to be "the planning and building of structures." Based on Rechtin's long experience in aerospace systems, this volume articulates design principles that apply not only to software but to larger systems. Order it from Amazon.com

Henry Petroski: Design Paradigms: Case Histories of Error and Judgment in Engineering

Petroski is a civil engineer. He believes that one of the best ways to learn about good engineering design is to examine failure cases to find the source of failure. I liked To Engineer is Human; I like Design Paradigms even better, because it includes not only case studies but also generalizations and some design guidance. Although the subject matter of these cases is large engineering structures, the design lessons apply to software as well. Order it from Amazon.com

Arthur Squires: The Tender Ship : Governmental Management of Technological Change

Although the book is over 12 years old, the message is still fresh: Success of an engineered artifact depends critically on faithfulness to the integrity of the engineered artifact. Squires analyzes a number of successful and unsuccessful government technology procurements. He finds that the failures were usually associated with bureaucratic or political interference in the acquisition. Order it from Amazon.com, but realize that because of its age, it may take several weeks to get a copy. On the other hand, I was unsuccessful in locating it in even the best physical bookstores in several cities.


The fine print: This is the Software Engineering department of Roy Weil's on-line bookstore, an affiliate of Amazon.com. This department is edited by Mary Shaw. Amazon.com is an on-line bookstore with secure procedures for credit card purchases. To search for other books in Amazon's huge collection, you may go directly to Amazon's front page. We'll donate any proceeds from sales via this page to Carnegie Mellon.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Progress in software engineering has been remarkable over my professional lifetime. Our societies could not function without large, professional software systems. For building business systems, there is an alphabet soup of technologies—J2EE, .NET, SaaS, SAP, BPEL4WS, SOAP, CBSE, etc.—that support the development and deployment of large enterprise applications. National utilities and infrastructure— energy, communications, and transport—all rely on complex and mostly reliable computer systems. Software has allowed us to explore space and to create the World Wide Web, the most significant information system in the history of mankind. Humanity is now faced with a new set of challenges—climate change and extreme weather, declining natural resources, an increasing world population to be fed and housed, international terrorism, and the need to help elderly people lead satisfying and fulfilled lives. We need new technologies to help us address these problems and, for sure, software will play a central role in these technologies. Software engineering is, therefore, a critically important technology for the future of mankind. We must continue to educate software engineers and develop the discipline so that we can create more complex software systems. Of course, there are still problems with software projects. Software is still sometimes late and costs more than expected. However, we should not let these problems conceal the real successes in software engineering and the impressive software engineering methods and technologies that have been developed. Software engineering is now such a huge area that it is impossible to cover the whole subject in one book. My focus, therefore, is on key topics that are fundamentalto all development processes and topics concerned with the development of reliable, distributed systems. There is an increased emphasis on agile methods and software reuse. I strongly believe that agile methods have their place but so too does ‘traditional’ plan-driven software engineering. We need to combine the best of these approaches to build better software systems. Books inevitably reflect the opinions and prejudices of their authors. Some readers will inevitably disagree with my opinions and with my choice of material. Such disagreement is a healthy reflection of the diversity of the discipline and is essential for its evolution. Nevertheless, I hope that all software engineers and software engineering students can find something of interest here.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值