Технологии программирования в а камаев



страница1/78
Дата05.05.2018
Размер5.17 Mb.
  1   2   3   4   5   6   7   8   9   ...   78

Технологии программирования

В А Камаев




ПРЕДИСЛОВИЕ

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


В современном программировании требуется активное владение дедуктивным мышлением, что не достигается школьным, а зачастую и вузовским образованием.
Данная книга ориентирована именно на решение данных проблем.
Материалы книги были использованы в более чем двадцатилетней педагогической практике авторов по подготовке такой массовой профессии, как программист. Практика показала, что большая часть студентов второго курса способна коллективно выполнять проекты программных систем средней сложности и их успешно реализовывать при достигнутом уровне производительности реализации 100–200 отлаженных строк в день. При этом достигается самодокументированность текстов программ.
Данная книга содержит теоретические знания, необходимые как программистам-кодировщикам программ, так и системным аналитикам. В ней излагаются методики овладения дедуктивным мышлением.
Авторы книги сделали максимум возможного, чтобы избежать привязки только к одному языку программирования. Иллюстрирующие примеры даются в основном на языках Pascal и Object Pascal, являющихся «языком эксперанто» для программистов. Авторы надеются, что знание других процедурно-ориентированных и объектно-ориентированных языков программирования, например С, C++, позволит без дополнительного обучения понять суть иллюстрирующих примеров.
Данный учебник содержит объем знаний, необходимый программистам первого уровня подготовки специалистов с высшим образованием (квалификация — бакалавр), но может быть использован при подготовке специалистов второй ступени образования.
Согласно квалификационному справочнику должностей руководителей, специалистов и других служащих (утв. постановлением Минтруда РФ от 21 августа 1998 г. № 37) (с изменениями от 21 января, 4 августа 2000 г., 20 апреля 2001 г.), обязанности, знания, навыки и умения инженера-программиста (программиста) характеризуются следующими нормативами.
Должностные обязанности. На основе анализа математических моделей и алгоритмов решения экономических и других задач, программист обязан
— разрабатывать программы, обеспечивающие возможность выполнения алгоритма и соответственно поставленной задачи средствами вычислительной техники; проводить их тестирование и отладку;
— разрабатывать технологию решения задачи по всем этапам обработки информации;
— осуществлять выбор языка программирования для описания алгоритмов и структур данных;
— определять информацию, подлежащую обработке средствами вычислительной техники, ее объемы, структуру, макеты и схемы ввода, обработки, хранения и вывода, методы ее контроля;
— выполнять работу по подготовке программ к отладке и проводить отладку;
— определять объем и содержание данных контрольных примеров, обеспечивающих наиболее полную проверку соответствия программ их функциональному назначению;
— осуществлять запуск отлаженных программ и ввод исходных данных, определяемых условиями поставленных задач;
— проводить корректировку разработанной программы на основе анализа выходных данных;
— разрабатывать инструкции по работе с программами, оформлять необходимую техническую документацию;
— определять возможность использования готовых программных продуктов;
— осуществлять сопровождение внедренных программ и программных средств;
— разрабатывать и внедрять системы автоматической проверки правильности программ, типовые и стандартные программные средства;
— составлять технологию обработки информации;
— выполнять работу по унификации и типизации вычислительных процессов;
— принимать участие в создании каталогов и картотек стандартных программ, в разработке форм документов, подлежащих машинной обработке, в проектировании программ, позволяющих расширить область применения вычислительной техники.
Должен знать
— руководящие и нормативные материалы, регламентирующие методы разработки алгоритмов и программ и использования вычислительной техники при обработке информации, основные принципы структурного программирования;
— виды программного обеспечения;
— технико-эксплуатационные характеристики, конструктивные особенности, назначение и режимы работы ЭВМ, правила ее технической эксплуатации;
— технологию автоматической обработки информации;
— виды технических носителей информации;
— методы классификации и кодирования информации;
— формализованные языки программирования;
— действующие стандарты, системы счислений, шифров и кодов;
— порядок оформления технической документации;
— передовой отечественный и зарубежный опыт программирования и использования вычислительной техники;
— основы экономики, организации производства, труда и управления;
— основы трудового законодательства;
— правила и нормы охраны труда.
Требования к квалификации
— Инженер-программист I категории высшее профессиональное (техническое или инженерно-экономическое) образование, стаж работы в должности инженера-программиста II категории не менее трех лет.
— Инженер-программист II категории высшее профессиональное (техническое или инженерно-экономическое) образование, стаж работы в должности инженера-программиста III категории или других инженерно-технических должностях, замещаемых специалистами с высшим профессиональным образованием, не менее трех лет.
— Инженер-программист III категории высшее профессиональное (техническое или инженерно-экономическое) образование, опыт работы по специальности, приобретенный в период обучения, или стаж работы на инженерно-технических должностях без квалификационной категории.
— Инженер-программист высшее профессиональное (техническое или инженерно-экономическое) образование без предъявления требований к стажу работы или среднее профессиональное (техническое или инженерно-экономическое) образование и стаж работы в должности техника I категории не менее трех лет либо в других должностях, замещаемых специалистами со средним профессиональным образование, не менее пяти лет.
Профессионализм — это интегральная личностная характеристика человека. Профессиональный программист — это программист [24], который
• овладел нормами профессиональной деятельности и общения и осуществляет их на высоком уровне, добиваясь профессионального мастерства в своей области (программировании);
• следует профессиональной ценностной ориентации, соблюдая профессиональную этику;
• развивает свою личность средствами профессии;
• стремится внести творческий вклад в профессию, обогащая ее опыт;
• стремится и умеет вызвать интерес общества к результатам своей профессиональной деятельности, способствует повышению веса и престижа своей профессии в обществе, гибко учитывает новые запросы общества к ней.
Хакеры могут многое знать и уметь, но они обычно из-за неудач общения в среде профессионалов пытаются получить самоудовлетворение своей деятельностью путем нарушения профессиональной этики.
Костерин В.В. осуществил сбор, анализ, синтез нового материала для написания учебника, провел его апробацию в учебном процессе. Камаев В.А. отбросил не менее 90 % собранного материала и, неоднократно редактируя текст учебника, сделал его понятным. Авторы выражают благодарность всем специалистам и студентам за замечания в адрес учебника.

ВВЕДЕНИЕ

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


До конца 70-х годов программирование, как правило, было работой отдельных одаренных людей. Из-за несовершенства первых методик программирования даже относительно короткие программы (длиной около 600 строк) создавались в течение нескольких месяцев.
Начало 80-х годов соответствовало широкому внедрению в практику программирования методов проектирования, заимствованных из техники. Например, по примеру техники, внедряется ГОСТ 19.102—77, регламентирующий стадии и этапы программных разработок. Данный стандарт входит в группу стандартов единой системы программной документации (ЕСПД). ЕСПД сыграла значимую положительную роль в практике отечественного программирования и пережила без значительных изменений уже несколько новых технологий программирования, например, технологию структурного программирования и технологию объектно-ориентированного программирования.
Технология программирования — это научная и практически апробированная стратегия разработки программ, содержащая описание совокупности методов и средств разработки программ, а также порядок применения этих методов и средств.
К настоящему времени понятия процесса программирования качественно изменились. Производство программ приобрело массовый характер, существенно увеличился их объем и сложность. Разработка программных комплексов потребовала значительных усилий больших коллективов специалистов. Программы перестали быть только вычислительными и начали выполнять важнейшие функции по управлению и обработке информации в различных отраслях науки, техники, в экономике и др.
С появлением систем авоматизированного проектирования (САПР) в 80-х годах были сделаны обобщения теории проектирования технических систем и устройств с выявлением инвариантов в виде проектных процедур, особенно эвристических. Были намечены пути и сделаны первые попытки их автоматизации. Наиболее высокую трудность представляет автоматизация ранних этапов проектирования. На этих этапах для удовлетворения потребности преодоления дискомфорта необходимо синтезировать идеи реализации систем и устройств.
Параллельное развитие теории программирования и теории проектирования сделало актуальным их системное исследование. Цель исследований, отраженных в данной книге, состояла в достижении позитивного дальнейшего взаимного проникновения этих теорий.
Внедрение учебника в учебный процесс авторы рекомендуют осуществить следующим образом. Лучше всего материалы гл. 4 и 5 изучить в предшествующих дисциплинах. Если рабочей программой курса предусмотрена семестровая работа, то после лекционного прочтения первой главы можно частично изложить материалы второй главы и далее приступить к изучению одной из технологий программирования (гл. 7, 8). После изложения материалов для выполнения семестровой работы можно вернуться к последовательному изложению материала. Окончательное закрепление навыков и знаний рекомендуется осуществить в ходе учебной практики, проводимой под контролем преподавателей.
Для тех, кто хочет приобрести навыки профессионального программиста самостоятельно, авторы рекомендуют прочитывать материал двух первых глав и параллельно с изучением языка программирования овладеть материалом четвертой главы.
Первая глава содержит сведения по основам теории проектирования, необходимые для ознакомления с терминологией проектирования вообще и основными принципами проведения программных проектов. Даются такие методологические понятия проектирования, как элементы системного подхода, а также одного из его важнейших методов — блочно-иерархического подхода. В главе поясняется место стандартов в программировании. Вводятся понятия жизненного цикла программного изделия, а также стадий и этапов проведения программных разработок. Раскрываются основные понятия моделирования систем и роль моделирования при разработке проектов программных систем, проводятся примеры моделей.
Во второй главе рассматриваются методы активизации мышления на ранних этапах проектирования программных изделий, что позволяет решить задачу выбора наилучшего варианта из множества допустимых проектных решений, которые удовлетворяют предъявленным требованиям. Методы поискового конструирования, заимствованные из техники, адаптируются применительно к программам. Даются примеры видов диалогов программ, что позволяет повысить эффективность разработки внешних функциональных спецификаций. Для полного освоения ряда положений главы может потребоваться несколько лет. Но ведь надо когда-то начинать становиться системным аналитиком.
В третьей главе излагается инженерный технологический подход к разработке программ, согласно которому достигается сокращение сроков разработки программных продуктов благодаря комбинации этапов и видов работ, ориентированной на разные классы программного обеспечения и на особенности коллектива разработчиков.
Четвертая глава раскрывает понятия физической и логической структуры данных программ. В главе рассматривается набор операций над структурами данных программ, приводится классификация логических структур данных, разбираются базовые структуры данных, динамические и динамически связанные структуры данных, а также файловые структуры данных. Рассматриваются способы документирования структур данных.
Пятая глава содержит описание методики разработки структурированных алгоритмов в форме проектной процедуры разработки функциональных описаний. Даются рекомендации по использованию проектной процедуры применительно областей, находящихся вне сферы программирования техники, организационного обеспечения.
В шестой главе вводится понятие архитектуры программной системы, приводятся сведения по ряду способов объединения отдельных программ в единый программный комплекс.
Седьмая глава содержит описание технологии структурного программирования, которая считается устаревшей, но в настоящее время еще используется как самостоятельно, так и в гибридных объектно-ориентированных проектах. Ряд фундаментальных идей данной технологии был воспринят современными технологиями.
В восьмой главе рассматривается технология объектно-ориентированного проектирования. Разбираются основные понятия технологии. Даются шаги этапов выполняемых работ. Рассматриваются примеры выполнения проектов малой и средней сложности.
Девятая глава содержит понятие технологий визуального программирования. Данная технология позволяет в диалоговом режиме создавать «скелет» программы.
В десятой главе раскрывается понятие САПР программных разработок, основанных на CASE-средствах, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех этапах разработки и сопровождения программного проекта и разрабатывать приложения в соответствии с информационными потребностями пользователей. В главе рассматривается CASE-средство Rational Rose фирмы «Software Corporation» (США), предназначенное для автоматизации этапов анализа и проектирования программных систем, а также для генерации кодов на различных языках и выпуска проектной документации.
Одиннадцатая глава посвящена тестированию программ, позволяющих достичь заданного уровня важнейшего критерия качества программных изделий — надежности. В главе излагаются аксиомы тестирования, приемы отладки, различные подходы к тестированию программ.
В двенадцатой главе описываются основные принципы менеджмента программных разработок. Даются принципы организации коллектива разработчиков программных изделий, должностные обязанности и функции отдельных работников.
Приложение 1 необходимо для понимания стадий и этапов разработки программ по ГОСТ 19.102—77, но оно не заменяет, возможно, изменившийся текст стандарта.
Приложение 2 содержит пример выполнения учебного технического задания. Данный пример раскрывает принципы составления технического задания, но также не заменяет стандарт.
Приложение 3 дает представление о фонде эвристических приемов проектирования программ.
Приложение 4 содержит описание элементов языка программирования Object Pascal, оно необходимо для лучшего понимания гл. 8 и 9.
Приложение 5 раскрывает основные термины и определения, используемые в книге.


Каталог: download
download -> Материальная культура и быт средневекового населения пермского предуралья
download -> Основы паблик рилейшнз
download -> Э. Дюркгейм: Метод социологии
download -> Концепция социальной солидарности Эмиля Дюркгейна
download -> Учебно-методический комплекс по дисциплине «социология права» Для специальности 030501
download -> Учебно-методический комплекс по дисциплине «социология права» Для направления 521400
download -> Лекция «Предмет и метод философии науки»
download -> Методология и методика психолого-педагогических исследований
download -> Матричная модель анализа урока: возможности и перспективы Е. Коротаева


Поделитесь с Вашими друзьями:
  1   2   3   4   5   6   7   8   9   ...   78


База данных защищена авторским правом ©znate.ru 2017
обратиться к администрации

    Главная страница