Выбрать главу

КАМАЕВ В.А., КОСТЕРИН В.В

ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ

ПРЕДИСЛОВИЕ

В настоящее время программирование трансформировалось в целую индустрию производства программных изделий. Поэтому уже мало знать только язык программирования и операционный подход к составлению алгоритмов. Профессиональный разработчик программных изделий должен владеть теорией проектирования, методами активизации мышления. Ему необходимо умение оперирования моделями, методами генерации решений и выбора их оптимальных вариантов. Создание программных изделий коллективом разработчиков предопределило необходимость умения планирования работ и их распределения между отдельными участниками проекта.

В современном программировании требуется активное владение дедуктивным мышлением, что не достигается школьным, а зачастую и вузовским образованием.

Данная книга ориентирована именно на решение данных проблем.

Материалы книги были использованы в более чем двадцатилетней педагогической практике авторов по подготовке такой массовой профессии, как программист. Практика показала, что большая часть студентов второго курса способна коллективно выполнять проекты программных систем средней сложности и их успешно реализовывать при достигнутом уровне производительности реализации 100–200 отлаженных строк в день. При этом достигается самодокументированность текстов программ.

Данная книга содержит теоретические знания, необходимые как программистам-кодировщикам программ, так и системным аналитикам. В ней излагаются методики овладения дедуктивным мышлением.

Авторы книги сделали максимум возможного, чтобы избежать привязки только к одному языку программирования. Иллюстрирующие примеры даются в основном на языках Pascal и Object Pascal, являющихся «языком эксперанто» для программистов. Авторы надеются, что знание других процедурно-ориентированных и объектно-ориентированных языков программирования, например С, C++, позволит без дополнительного обучения понять суть иллюстрирующих примеров.

Данный учебник содержит объем знаний, необходимый программистам первого уровня подготовки специалистов с высшим образованием (квалификация — бакалавр), но может быть использован при подготовке специалистов второй ступени образования.

Согласно квалификационному справочнику должностей руководителей, специалистов и других служащих (утв. постановлением Минтруда РФ от 21 августа 1998 г. № 37) (с изменениями от 21 января, 4 августа 2000 г., 20 апреля 2001 г.), обязанности, знания, навыки и умения инженера-программиста (программиста) характеризуются следующими нормативами.

Должностные обязанности. На основе анализа математических моделей и алгоритмов решения экономических и других задач, программист обязан:

— разрабатывать программы, обеспечивающие возможность выполнения алгоритма и соответственно поставленной задачи средствами вычислительной техники; проводить их тестирование и отладку;

— разрабатывать технологию решения задачи по всем этапам обработки информации;

— осуществлять выбор языка программирования для описания алгоритмов и структур данных;

— определять информацию, подлежащую обработке средствами вычислительной техники, ее объемы, структуру, макеты и схемы ввода, обработки, хранения и вывода, методы ее контроля;

— выполнять работу по подготовке программ к отладке и проводить отладку;

— определять объем и содержание данных контрольных примеров, обеспечивающих наиболее полную проверку соответствия программ их функциональному назначению;

— осуществлять запуск отлаженных программ и ввод исходных данных, определяемых условиями поставленных задач;

— проводить корректировку разработанной программы на основе анализа выходных данных;

— разрабатывать инструкции по работе с программами, оформлять необходимую техническую документацию;

— определять возможность использования готовых программных продуктов;

— осуществлять сопровождение внедренных программ и программных средств;

— разрабатывать и внедрять системы автоматической проверки правильности программ, типовые и стандартные программные средства;

— составлять технологию обработки информации;

— выполнять работу по унификации и типизации вычислительных процессов;

— принимать участие в создании каталогов и картотек стандартных программ, в разработке форм документов, подлежащих машинной обработке, в проектировании программ, позволяющих расширить область применения вычислительной техники.

Должен знать:

— руководящие и нормативные материалы, регламентирующие методы разработки алгоритмов и программ и использования вычислительной техники при обработке информации, основные принципы структурного программирования;

— виды программного обеспечения;

— технико-эксплуатационные характеристики, конструктивные особенности, назначение и режимы работы ЭВМ, правила ее технической эксплуатации;

— технологию автоматической обработки информации;

— виды технических носителей информации;

— методы классификации и кодирования информации;

— формализованные языки программирования;

— действующие стандарты, системы счислений, шифров и кодов;

— порядок оформления технической документации;

— передовой отечественный и зарубежный опыт программирования и использования вычислительной техники;

— основы экономики, организации производства, труда и управления;

— основы трудового законодательства;

— правила и нормы охраны труда.

Требования к квалификации:

— Инженер-программист I категории: высшее профессиональное (техническое или инженерно-экономическое) образование, стаж работы в должности инженера-программиста II категории не менее трех лет.

— Инженер-программист II категории: высшее профессиональное (техническое или инженерно-экономическое) образование, стаж работы в должности инженера-программиста III категории или других инженерно-технических должностях, замещаемых специалистами с высшим профессиональным образованием, не менее трех лет.

— Инженер-программист III категории: высшее профессиональное (техническое или инженерно-экономическое) образование, опыт работы по специальности, приобретенный в период обучения, или стаж работы на инженерно-технических должностях без квалификационной категории.

— Инженер-программист: высшее профессиональное (техническое или инженерно-экономическое) образование без предъявления требований к стажу работы или среднее профессиональное (техническое или инженерно-экономическое) образование и стаж работы в должности техника I категории не менее трех лет либо в других должностях, замещаемых специалистами со средним профессиональным образование, не менее пяти лет.

Профессионализм — это интегральная личностная характеристика человека. Профессиональный программист — это программист [24], который:

• овладел нормами профессиональной деятельности и общения и осуществляет их на высоком уровне, добиваясь профессионального мастерства в своей области (программировании);

• следует профессиональной ценностной ориентации, соблюдая профессиональную этику;

• развивает свою личность средствами профессии;

• стремится внести творческий вклад в профессию, обогащая ее опыт;

• стремится и умеет вызвать интерес общества к результатам своей профессиональной деятельности, способствует повышению веса и престижа своей профессии в обществе, гибко учитывает новые запросы общества к ней.

Хакеры могут многое знать и уметь, но они обычно из-за неудач общения в среде профессионалов пытаются получить самоудовлетворение своей деятельностью путем нарушения профессиональной этики.

Костерин В.В. осуществил сбор, анализ, синтез нового материала для написания учебника, провел его апробацию в учебном процессе. Камаев В.А. отбросил не менее 90 % собранного материала и, неоднократно редактируя текст учебника, сделал его понятным. Авторы выражают благодарность всем специалистам и студентам за замечания в адрес учебника.