Lesson 1  Lesson 2  Lesson 3  Lesson 4  Lesson 5  Lesson 6  Lesson 7  Lesson 8  Lesson 9  Lesson 10

Software engineering | Программная инженерия

Lesson1.

Read the text: Computer programming

Computer programming (often shortened to programming or coding) is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs. The source code is written in a programming language. This code may be a modification of an existing source or something completely new, the purpose being to create a program that exhibits the 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 (the implementation) 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".

Language paradigm categories

Computer programs can be categorized by the programming language paradigms used to produce them. These paradigms include: imperative, declarative, or visual.

With imperative languages, an algorithm is specified using declarations, expressions, and statements. A declaration is a statement that binds a variable name with a datatype. For example: var x: integer; An expression yields a value. For example: 2 + 2 yields 4. Finally, a statement is a command that normally either assigns an expression to a variable or uses the contents of a variable to alter the program's flow. One criticism of imperative languages is the side-effect of an assignment statement on a class of variables called non-local variables.

With declarative languages, the output is specified and the implementation details are hidden. Two broad categories of declarative languages are functional languages and logical languages. The principle behind functional languages (like Lisp) is to remove the side-effect of an assignment statement on non-local variables. By doing away with assignments, it is possible to ensure that computer programs behave like mathematical functions. The principle behind logical languages is to define the problem to be solved — the goal — and leave the detailed solution to the Prolog system itself. The goal is defined by providing a list of subgoals. Then each subgoal is defined by further providing a list of its subgoals, etc. If a path of subgoals fails to find a solution, then that subgoal is backtracked and another path is systematically attempted.

With visual languages, program elements are graphically manipulated rather than textually specified.

 

1. Match the left part with the right:

1. The disciple differs from many other

a) is regarded as one phase in a software development process.

2. Within software engineering, programming

b) technical professions in that programmers.

3. Then each subgoal is defined by further

c) the output is specified and the implementation details are hidden.

4. With declarative languages

d) providing a list of its subgoals, etc.

 

2. Complete the sentences with the suggested words: storing, applications, extent, memory

In some specialist _______or extreme situations a program may be written or modified (known as patching) by directly _______the numeric values of the machine code instructions to be executed into _______. There is an ongoing debate on the _______to which the writing of programs is an art, a craft or an engineering discipline.