Читать книгу Beginning Software Engineering - Stephens Rod - Страница 24
PART I
Software Engineering Step-by-Step
CHAPTER 1
Software Engineering from 20,000 Feet
SUMMARY
ОглавлениеAll software engineering projects must handle the same basic tasks. Different development models may handle them in different ways, but they’re all hidden in there somewhere.
In fact, the strengths and weaknesses of various development models depend in a large part on how they handle these tasks. For example, agile methods and test-driven development use frequent builds to force developers to perform a lot of tests early on so that they can catch bugs as quickly as possible. (For a preview of why that’s important, see the “Counting Bugs” example earlier in this chapter and Exercise 4.)
The chapters in Part II, “Development Models,” describe some of the most common development models. Meanwhile the following chapters describe the basic software engineering tasks in greater detail. Before you delve into the complexities of requirements gathering, however, there are a few things you should consider.
The next chapter explains some basic tools that you should have in place before you consider a new project. The chapter after that discusses project management tools and techniques that can help you keep your project on track as you work through the basic software engineering tasks.
EXERCISES
1. What are the basic tasks that all software engineering projects must handle?
2. Give a one sentence description of each of the tasks you listed for Exercise 1.
3. I have a few customers who do their own programming, but who occasionally get stuck and need a few pointers or a quick example program. A typical project runs through the following stages:
a. The customer sends me an e-mail describing the problem.
b. I reply telling what I think the customer wants (and sometimes asking for clarification).
c. The customer confirms my guesses or gives me more detail.
d. I crank out a quick example program.
e. I e-mail the example to the customer.
f. The customer examines the example and asks more questions if necessary.
g. I answer the new questions.
Earlier in this chapter, I said that every project runs through the same basic tasks. Explain where those tasks are performed in this kind of interaction. (For example, which of those steps includes testing?)
4. List three ways fixing one bug can cause others.
5. List five tasks that might be part of deployment.
▶ WHAT YOU LEARNED IN THIS CHAPTER
● All projects perform the same basic tasks:
1. Requirements Gathering
2. High-level Design
3. Low-level Design
4. Development
5. Testing
6. Deployment
7. Maintenance
8. Wrap-up
● Different development models handle the basic tasks in different ways, such as making some less formal or repeating tasks many times.
● The basic tasks often occur at the same time, with some developers working on one task while other developers work on other tasks.
● Work sometimes flows backward with later tasks requiring changes to earlier tasks.
● Fixing a bug can lead to other bugs.
● The longer a mistake remains undetected, the harder it is to fix.
● Surprises are inevitable, so you should allow some extra time to handle them.