13.07.2015 Views

Java™ Application Development on Linux - Dator

Java™ Application Development on Linux - Dator

Java™ Application Development on Linux - Dator

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

288Chapter 12Analysis and Design: Seeking the Objects12.8REAL SOFTWARE ENGINEERINGLet’s take a moment here and ask a fundamental questi<strong>on</strong>. Is this the best wayto make software? And there is another fundamental, but subtly and importantlydifferent questi<strong>on</strong>: Is this the right way to make software?There are techniques and methods of Software Engineering that do approachthe ideal of “zero defects.” NASA uses such procedures for mannedspacecraft. Coders for medical devices do likewise. The outline method we havesuggested here doesn’t come close to such methods. So, is what we have describedthe best way to make software? No, it is not. So why d<strong>on</strong>’t we all usethose zero defect methods? That is easy to answer: cost. It is expensive. Virtuallyno MIS shop <strong>on</strong> the planet would be willing to pay the price it takes to get thatstability and certainty. The price isn’t just dollar cost, either. The Space Shuttle,for example, has computers that still use magnetic core memory, a technologythat was old in the 1970s. Why? Because the restricti<strong>on</strong>s imposed by theirchange c<strong>on</strong>trol systems would essentially require the entire shuttle to beredesigned and retested if they made such a change. 8But this isn’t an either-or. You do not have to apply either a full-fledgedsoftware engineering methodology, or use nothing at all. Instead, you have toapply some design, development, and maintenance processes that improve theprobability of success and reduce the cost of failure. When we recommendversi<strong>on</strong> c<strong>on</strong>trol, requirements gathering, use cases, and CRC cards, we are givingyou a bare-b<strong>on</strong>es set of methods that will help to write fairly successfulsoftware at reas<strong>on</strong>able cost in reas<strong>on</strong>able amounts of time.To some of you, this will be old news. If you are at level 2 or above <strong>on</strong> theCapability Maturity Model (see the sidebar in Secti<strong>on</strong> 12.6), then you alreadyhave some process. But you would be surprised how many business out theredo not even have source code c<strong>on</strong>trol in place. To some of you, what we suggesthere will be primitive compared to processes you already have. The point is, no<strong>on</strong>e’s level of c<strong>on</strong>trol and process is “right” (to us, that means “cost-justified”)for all cases. But using no method at all is a risk too great for any business.8. An exaggerati<strong>on</strong> to be sure, though maybe not as much as you might think, but you getour point.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!