《Software Engineering A Practitioner's Approach》 - 书摘精要

(P2) You can have it fast, you can have it right or you can have it cheap. Pick two!

(P3)
People bet their jobs, their comforts, their safety, their entertainment, their decisions and their very lives on computer software;

This book presents a framework that can be used by those who build computer software - people who must get it right;

(P5) If you want to reduce software deterioration, you'll have to do better software design;

(P9) "You can't always predict, but you can always prepare";

(P10)
Every software engineer must recognize that change is natural. Don't try to fight it;

"By the time we see any sort of stabilization the Web will have turned into something completely different" - Louis Monier;

(P11) Performance - If a WebApp user must wait too long (for access, for server-side processing, for client-side formatting and display), he or she may decide to go elsewhere;

(P12)
Software Engineering Realities:
1. Understand the problem before you build a solution;
2. Design is a pivotal software engineering activity;
3. Both quality and maintainability are on outgrowth of good design;

(P14)
Software Engineering Layers:
Tools --> Methods --> Process --> A Quality Focus;

(P15) Any complicated journey can be simplified if a map exists;

(P16) Software process adoptation is essential for project success;

(P19)
Before beginning a software project, be sure the software has a business purpose and that users perceive value in it;

A software system exists for one reason : to provide value to its users;

Placing clear, complete thought before action almost always produces better results;

(P22) Work very hard to understand what you have to do before you start. You may not be able to develop every detail, but the more you know, the less risk you take;

(P49) If a market window is missed, the software project itself may be meaningless;

(P57) "A person who is successful has simply formed the habit of doing things that unsuccessful people will not do" - Dexter Yager;

(P69) Working software is important, but don't forget that it must also exhibit a variety of quality attributes including reliability, usability and maintainability;

(P72) Extreme Programming (XP) - The most widely used approach to agile software development;

(P73) Refactoring allows a software engineer to improve the internal structure of a design (or source code) without changing its external functionality or behavior. In essence, refactoring can be used to improve the efficiency, readability or performance of a design or the code that implements a design;

(P99) "The truth of the matter is that you always know the right thing to do. The hard part is doing it" - General H. Norman Schwarzkopf;

(P105) We create models to gain a better understanding of the actual entity to be built;

(P128) "He who asks a question is a fool for five minutes, he who does not ask a question is a fool forever" - Chinese Proverb;

(P199)
UML Tools:
ArgoUML - 开源工具;
Enterprise Architect - 由 Sparx Systems 开发;
Power Designer - 由 Sybase 开发;
Rational Rose - 由 Rational Corporation 开发;
System Architect - 由 Popkin Software 开发;
UML Studio - 由 Pragsoft Corporation 开发;
Visio - 由 Microsoft 开发;
Visual UML - 由 Visual Object Modelers 开发;

(P205) Requirements analysis does take time, but solving the wrong problem takes even more time;

(P216) "The most common miracle of software engineering is the transition from analysis to design and design to code" - Richard Due;

(P245) You effect should focus on architectural representations that will guide all other aspects of design. Spend the time to carefully review the architecture. A mistake here will have a longterm negative impact;

(P248) "Programming without an overall architecture or design in mind is like exploring a cave with only a flashlight : You don't know where you've been, you don't know where you're going, and you don't know quite where you are" - Danny Thorpe;

(P258) "The structure of a software system provide the ecology in which code is born, matures and dies. A well-designed habital allows for the successful evolution of all the components needed in a software system" - R. Pattis;

(P298) Structured Programming is a design technique that constrains logic flow to three constructs : sequence, condition and repetition;

(P441) Spend your time focusing on things that really matter, but first be sure that you understand what really matters!

(P475) Set a time limit, say two hours, on the amount of time you spend trying to debug a problem on your own. After that, get help!

(P652) "If you want to be incrementally better : Be competitive. If you wangt to be exponentially better : Be Cooperative" - Author unknown;

(P817) "The proper artistic response to digital technology is to embrace it as a new window on everything that's eternally human, and to use it with passion, wisdom, fearlessness and joy" - Ralph Lombreglia;

(P835) "The best preparation for good work tomorrow is to do good work today" - Elbert Hubbard;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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.

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值