- •Unit I Laser
- •Vocabulary Study
- •V. Underline the suffixes and translate the following adjectives into Russian.
- •A. Text Study
- •Text a laser
- •B. Text Study
- •Text b direct current and alternating current
- •Grammar Study
- •Unit II
- •Vocabulary Study
- •A. Text Study
- •Text a world wide web
- •B. Text Study
- •Text b modem
- •C. Text Study
- •Grammar Study
- •Причастия (The Participles)
- •2. Обстоятельством.
- •Независимый причастный оборот
- •Unit III What is sound?
- •Vocabulary Study
- •A. Text Study
- •Text a what is sound?
- •B. Text Study
- •Text b gsm
- •C. Text Study
- •Text c what is gps?
- •Grammar Study
- •1. Формы инфинитива
- •Субъектный инфинитивный оборот (Complex Subject)
- •Объектный инфинитивный оборот (Complex Object)
- •Инфинитивный оборот с предлогом for
- •Appendix. Supplementary Texts Major computer applications
- •Peripherals
- •A. Expert systems
- •Operating systems Types of Computer Operation
- •Computer structure
- •Computers and algorithms
- •The objectives of software engineering
- •Program structure
- •Program design
- •What will the word processor of the future be like?
- •The nature and objectives of fifth generation computers
- •The fifth generation development programmes
- •Japan: the icot programme
- •Intelligent knowledge based systems
- •Intelligent user interfaces
- •Applications of fifth generation computers
- •Conclusion
- •VII. Programs and programming languages
- •Code. Developed in 1965 at Dartmouth College in the United States for use by students who require a simple language to begin programming.
- •Computer networks
- •Unit III
- •Contents
The objectives of software engineering
Software engineering is the profession which is likely to replace programming and systems analysis over the next ten years. The objectives of software engineering are as stated above: the development of very large, complex , software items, which satisfy strict standards of performance and correctness, in a controlled, scheduled, budgeted and cost-effective way. Software engineers require, in addition to a proficiency in programming, a knowledge of formal mathematics and logic, computing science, economics and management.
Software engineering is carried out by teams of people. When a software development project is started, the teams are set up with a management structure corresponding to the structure of the software itself. A schedule is drawn up for the project, and costs are allocated to the various portions and stages. Each team has a team leader, whose task is to make sure that the software developed by the team is correct, properly structured, has the right interfaces to the software being developed by the other teams, and is on schedule and within budget. This is a very difficult task, which requires a wide range of technical and management skills.
Software engineering is concerned with the entire lifecycle of a software project: design. development, testing, use and maintenance. All the work done is aimed at the highest possible standards at the lowest possible costs throughout this lifecycle.
Program structure
It is now quite clear that the only way of achieving the required standards of correctness, performance and reliability of software is through the very careful design of the structure of a program. A well-structured program must satisfy the following conditions:
• The program must have a clear overall structure in terms of modules, with each module carrying out a specific task. Modules may be implemented as functions, procedures or segments, depending on the programming language used.
• There must be a clearly defined interface between modules. This is particularly important when interfaces are between modules written by different software engineers.
• Each module should be a simple combination of the elementary constructions of the programming language. Modules should be easy to read by people other than their original programmer.
• There must be a close correspondence between the structure of a module and the structure of the data on which it operates.
• Each module should leave the data structures on which it operates in a state which is consistent with their defining properties. This is particularly important with pointers: they should not be left 'hanging loose' by one module, on the assumption that another module will tidy them up.
• A module must have no side effects: it must not make any changes to data values, or to the state of the program, apart from those it is intended to make.
Achieving a program structure which satisfies these conditions is a very difficult task. Some help is given by the program structuring properties of the language. New programming languages are being developed which will give even greater assistance, particularly with the last two requirements of a structured program.