Relevance for Software Engineering


The object we look at in this chapter is the software itself. It has two facets: the thing that is constructed ”the code itself ”and the product that the code generates when the code is executed. The first facet is closely related to the software developers; the second is related mainly to the customer. The latter has been already discussed in Chapter 4. This chapter looks at the code itself and examines it as an object.

One may wonder why it is important to examine the code at all. After all, we develop software tools to satisfy our customer s needs. Accordingly, as far as the customer uses the product satisfactorily, we should not be bothered by the code at all. This argument is incorrect for at least three reasons.

First, from the process-oriented perspective presented in Chapter 7, the development period continues after the software is shipped to the customer. This observation is clear to us if it is examined from the customer s perspective as well. Only when customers start using a software system can they get real opportunities to understand what benefits the software can provide them. This understanding may lead the customers to ask for new features or to change existing features. Thus, software systems are in a development process throughout their entire life cycle. This reality should not be ignored from the first day of the software development. Accordingly, developers should conceive of the code as an object that will be re-shaped for a long period of time.

Second, if a software system is not written according to some basic programming principles, it simply cannot be developed. There are cases in which the code is written so messily that it is impossible to understand either its structure or its logic. Consequently, no further development can be carried out. In such cases, it is better to throw the code away and start developing new code from scratch.

Third, there are clear connections between the characteristics of the code and the quality of the software that the customer gets. For example, it is important to enable customers to ask for new features after they start using the software system. If the software is written in such a way that does not allow the addition of new features and customers need new features in the future, from the customers perspective the software is developed in an unprofessional manner.

There are connections between the aforementioned explanations and the topic discussed in Chapter 2. However, it is not our intention to evaluate the code that is produced by each software development method. No matter what software development method one uses, the produced code should have some basic characteristics that ensure a qualified product both from the customer and developer perspectives.




Human Aspects of Software Engineering
Human Aspects of Software Engineering (Charles River Media Computer Engineering)
ISBN: 1584503130
EAN: 2147483647
Year: 2004
Pages: 242

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net