Software Engineering
Computer programs are becoming more and more complicated, requiring teams of programmers and years of effort to develop. As a consequence, a new subdiscipline, software engineering, has arisen. The software engineering process usually consists of several phases: (1) identification and analysis of user requirements, (2) development of system specifications (both hardware and software), (3)software design (perhaps at several successively more detailed levels), (4) implementation (actual coding), (5) testing, and (6) maintenance. Even with such an engineering discipline in place, the software-development is expensive and time-consuming. Therefore, increasingly sophisticated tools have been built to aid the software developer and to automate as much as possible the development process. Such computer-aided software engineering (CASE) tools span a wide range of types, from those that carry out the task of routine coding to those that incorporate an expert system to enforce the design rules and eliminate software defects prior to the coding phase. As the size and complexity of software has grown, the concept of reuse has become increasingly important in software engineering. It is clear that extensive new software cannot be created cheaply and rapidly without incorporating existing program modules (subroutines, or pieces of computer code). One of the attractive aspects of object-oriented programming is that code written in terms of objects is readily reused. As with other aspects of computer systems, reliability - usually defined as the likelihood of a system to operate correctly over a long period of time – is a key goal of the finished software product. Sophisticated techniques for testing software have therefore been designed. Exercise 3. Translate the following word combinations. Computer program, to require teams of programmers, software engineering, user requirements, development of system specifications, hardware and software, software design, actual coding, testing and maintenance, to incorporate an expert system, to eliminate software defects, to design sophisticated techniques.
Exercise 4. Write English equivalents to the following words and word combinations.
Exercise 5. Put questions to the underlined words. 1. The software engineering process usually consists of several phases. 2. Such computer-aided software engineering tools span a wide range of types. 3. Extensive new software cannot be created cheaply and rapidly without incorporating existing program modules. 4. Reliability is a key goal of the finished software product.
Exercise 6. Rewrite the sentences in Reported Speech. 1. “I want to build a new house,” said Jill. 2. “Our teacher is giving us a test!” said Michelle. 3. “Shall I study math or English?” Sally asked her best friend. 4. “Why have you taken my CD without asking me?” I asked Toni. 5. “Could I have your e-mail address?” she asked Mariella. 6. “We are working on our website tomorrow,” Janet said.
Exercise 7. A. Paraphrase the sentences using the Objective Infinitive Complex. Model: I expect that he will come here. – I expect him to come here. 1. I like it when people tell the truth. 2. I saw that Peter crossed the street. 3. Have you ever heard that your son plays the piano? 4. I suppose that he is a doctor. 5. Do you expect that a contract will be signed tomorrow? 6. I don’t consider that they are right.
B. Paraphrase the sentences using the Subjective Infinitive Complex. Model: It is likely that they will take part in this work. - They are likely to take part in this work. 1. It is certain that there will be a discussion of this question. 2. It seems that he knows English well. 3. It is reported that the two people were injured in the accident. 4. It was known that he was a capable musician.
Exercise 8. Answer the following questions. 1. Why has software engineering arisen? 2. What several phases does the software engineering process usually consist of? 3. Why have increasingly sophisticated tools been built? 4. What tasks do computer-aided software engineering (CASE) tools carry out? 5. What concept has become important in software engineering? 6. What is one of the attractive aspects of object-oriented programming? 7. What is a key goal of the finished software product?
|