Lesson 4. Software engineering 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Lesson 4. Software engineering



1. Pronounce the following words and word-combinations, try to memorize them. You’ll come across these words while reading the text.

debugging — нахождение и устранение дефектов

maintaining — поддерживание

to exhibit — показывать

desired — требуемый

customization — настройка

application domain — область применения

numeric value — числовое значение

preference — предпочтение

consideration — обсуждение

availability — наличие

t rade - offs — компромисс

property — свойство, качество

relevant — соответствующий

efficiency — эффективность, кпд

r eliability — надежность

consumption — потребление

to imply — означать

error propagation — распространение ошибки

prevention — предотвращение

overflow — переполнение

underflow — исчезновение (значащих) разрядов, потеря значимости; опустошение (напр., буфера данных при обмене)

zero division — деление на ноль

robustness — запас прочности

portability — мобильность

to anticipate — предупреждать

incompatibilities — несовместимость

readability — удобочитаемость

variable — переменная

II. Read and translate the text.

Computer programming is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs. This source code is written in a programming language. The code may be a modification of an existing source or something completely new, the purpose being to create a program that exhibits a certain desired behavior (customization). The process of writing source codes requires expertise in many different subjects, including knowledge of the application domain, specialized algorithms, and formal logic.

Within software engineering, programming is regarded as one phase in a software development process.

In some specialist applications or extreme situations a program may be written or modified (known as patching) by directly storing the numeric values of the machine code instructions to be executed into memory.

There is an ongoing debate on the extent to which the writing of programs is an art, a craft or an engineering discipline. Good programming is generally considered to be the measured application of all three, with the goal of producing an efficient and maintainable software solution (the criteria for “efficient” and “maintainable” vary considerably). The discipline differs from many other technical professions in that programmers generally do not need to be licensed or pass any standardized (or governmentally regulated) certification tests in order to call themselves “programmers” or even “software engineers”.

Another ongoing debate is the extent to which the programming language used in writing programs affects the form that the final program takes.

Different programming languages support different styles of programming (called programming paradigms). The choice of language used is subject to many considerations, such as company policy, suitability to task or individual preference. Ideally, the programming language best suited for the task at hand will be selected. Trade-offs from this ideal involve finding enough programmers who know the language to build a team, the availability of compilers for that language, and the efficiency with which programs written in a given language execute.

Allen Downey, in his book How To Think Like A Computer Scientist wrote:

“The details look different in different languages, but a few basic instructions appear in just about every language. Input: Get data from the keyboard, a file, or some other device. Output: Display data on the screen or send data to a file or other device. Math: Perform basic mathematical operations like addition and multiplication. Conditional execution: Check for certain conditions and execute the appropriate sequence of statements. Repetition: Perform some action repeatedly, usually with some variation.”

Although quality programming can be achieved in a number of ways, following five properties are among the most relevant:

Efficiency/ performance: it is referred to the system resource consumption (computer processor, memory, slow devices, networks and to some extent even user interaction) which must be the lowest possible.

Reliability: the results of the program must be correct, which not only implies a correct code implementation but also reduction of error propagation (e.g. resulting from data conversion) and prevention of typical errors (overflow, underflow or zero division).

Robustness: a program must anticipate situations of data type conflict and all other incompatibilities which result in run time errors and break the program. The focus of this aspect is the interaction with the user and the handling of error messages.

Portability: it should work as it is in any software and hardware environment, or at least without relevant reprogramming.

Readability: the purpose of the main program and of each subroutine must be clearly defined with appropriate comments and self explanatory choice of symbolic names (constants, variables, function names, classes, and methods).

Notes

efficiency / performance – эффективность, практичность программы; robustness – выносливость (к нежелательным, но возможным воздействиям); робастность; portability – взаимозаменяемость, мобильность, переносимость; buffer overflows/underflows – переполнение приёмного буфера/ отрицательное переполнение буфера

 

III. Sort out all international words from the text and translate them.

IV. Turn the verbs into nouns using the suffix –tion and translate into Russian:

To operate – operation, to execute, to implement, to prevent, to propagate, to consume, to instruct, to add, to multiply, to vary, to apply, to reduce, to modify, customize.

 

V. Turn the verbs into gerunds using -ing and translate them into Russian:

to write – writing, to program, to code, to test, to produce, to handle, to reprogram.

 

VI. Translate Allen Downey’s statement from his book in writing.

VII. Answer the following questions.

1. What is computer programming? 2. What is written in a programming language? 3. What field of knowledge does the process of writing source codes require expertise in? 4. What debates are mentioned in the text? 5. What does the choice of programming language depend on? 6. How many fundamental properties must the program finally satisfy? 7. Can you add your own quality requirements?

 

VIII. Match phrases (1-5) to (A-E) to make up sentences.

1. The process of writing source codes requires…   A ____the goal of producing an efficient and maintainable software solution.  
2. A program may be written…   B____ different styles of programming.  
3. Good programming has…   C____ in a number of ways
4. Different programming languages support…   D____ expertise in many different subjects.
5. Quality programming can be achieved… E____ by directly storing the numeric values of the machine code instructions.

IX. Choose the proper word for the sentences given below.

Suitability   relevant    reduction    craft   considerations

1. The choice of fundamental directions was the subject to many ___. 2. Many decisions will depend on our company policy and ___to many requirements. 3. Good programming is considered to be the measured application of an art ___and an engineering discipline. 4. The purpose of this program is ___of typical errors.5. Chosen qualities requirements will be the most ___in that situation.

 

UNIT 6. PROGRAMMING



Поделиться:


Последнее изменение этой страницы: 2021-11-27; просмотров: 43; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.200.197 (0.008 с.)