1310985
столько раз учителя, ученики и родители
посетили официальный сайт проекта «Инфоурок»
за прошедшие 24 часа
Добавить материал и получить бесплатное
свидетельство о публикации
в СМИ №ФС77-60625 от 20.01.2015

Скидка 0%

112 курсов профессиональной переподготовки от 3540 руб.

268 курсов повышения квалификации от 840 руб.

МОСКОВСКИЕ ДОКУМЕНТЫ ДЛЯ АТТЕСТАЦИИ

Лицензия на осуществление образовательной деятельности №038767 выдана 26 сентября 2017 г. Департаменотом образования города Москвы

Инфоурок Информатика СтатьиСтатья " Командный метод разработки программ"

Статья " Командный метод разработки программ"

Международный конкурс

Идёт приём заявок

Подать заявку

Для учеников 1-11 классов и дошкольников

16 предметов

библиотека
материалов

В. К. Никишев,

ОБУЧЕНИЕ СТУДЕНТОВ ( школьников)МЕТОДАМ КОМАНДНОЙ РАЗРАБОТКИ СЛОЖНЫХ КОРПОРАТИВНЫХ СИСТЕМ НА ОСНОВЕ ПРИНЦИПОВ ПРОГРАММНОЙ ИНЖЕНЕРИИ

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

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

Во многих фирмах как в США, так и в других странах тратится ежегодно большие финансовые средства, но более 30% из них закрываются, так и не завершившись; порядка 50% проектов завершаются с превышением первоначальных оценок бюджета, временных сроков и ограниченной функциональностью; потери от недополученного эффекта внедрения программных продуктов измеряются триллионами.

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

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

Статистика по 30,000 проектам по разработке ПО в американских компаниях показывает следующее распределение между: успешными – вовремя был выполнен весь намеченный объем работ: проблемными – нарушение сроков, перерасход бюджета и не выполнение полностью техническое задание: проваленными – не были доведены до конца из-за перерасхода средств, бюджета, качества.

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

Инженеры работают в условиях ограниченных ресурсов: временных, финансовых и организационных (оборудование, техника, люди). . Программная инженерия занимается не только техническими вопросами производства ПО (специфицирование требований, проектирование, кодирование,…), но и управлением программными проектами, включая вопросы планирования, финансирования, управления коллективом и т.д.

Основным отличием методов программной инженерии является коллективный метод разработки программ или как обычно называется командный метод создания программного продукта. Одним из основных вопросов командной разработки является разделение труда - от равноправных соисполнителей до организации в виде жесткой иерархии.

Команда для разработки программ составляется исходя из объема программного продукта и включает в себя специалистов по разным направлениям работ по разработке программ.

Возглавляет команду обычно программный менеджер, который набирает команду исполнителей и управляет процессом разработки с использованием различных программных продуктов., например, мicrosoft team servies, stream и т. д. Планирование разработкой с учетом временных, финансовых ресурсов выполняется с помощью серьезных программ, например, Project 2010 и т. д. Ведущее значение приобретают специалисты – архитекторы, которые создают структуру корпоративной системы, функциональную модель, состоящую из UML диаграмм. Обычно UML моделирование выполняется в среде платформы . NET на основе языков программированиям Visual Studio 2015. Хотя можно использовать и другие технологии, как например, ArgoUml.

По построенным диаграммам с иcпользованием CASE технологий создается код программы на выбранном языке программирования C#, VB.NET, C++.NET и т. д. Данный код программы представляет собой реализуемую модель системы.

Для разработки кода полной программы с учетом требований заказчика создается команда программистов, которую возглавляет старший программист. Это инженеры-разработчики (специалисты по инженерии программирования и программисты);,инженеры тестирования; инженеры качества; специалисты по сопровождению продукта; специалисты по продажам продукта и т. д.

Тип работы определяет содержание и природу выполняемой работы. Так, в список типов работ и областей специализации на основе классификации Конгер [Conger 1994] обычно входят:

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

Харлан Миллз [Брукс 1999] предложил организовывать команды (бригады) главного программиста (chief programmer teams), в этой команде лишь один участник команды занимается основной работой, остальные оказывают ему всевозможную поддержку. Основные члены бригады выполняют следующие функции (главный программист, который выполняет анализ и проектирование, создание и отладку кода, написание документации. Он должен обладать талантом, большим опытом работы и существенными знаниями, дублер, который может выполнять любую работу главного программиста, но менее опытен, администратор, он же - менеджер. Под его контролем - деньги, люди, помещения, машинные ресурсы, контакты с другими группами и руководством, редактор по оформлению документации, разработчик тестов и организатор тестирования программного продукта.

В Чувашском государственном университете им. Н. А. Ульянова на кафедре компьютерных технологий в течении 5- ти лет обучаются студенты ( бакалавры и магистранты) по специальности 0905 « Программная инженерия». А с 2016 года было выбрано направление

« Программная инженерия для корпоративных систем и мобильных приложений».

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

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

В качестве курсовых и дипломных проектов были выбраны следующие темы: дистанционное обучения на кафедре компьютерных технологий, SMART электронная кафедра компьютерных технологий и информационная обучающая система "современные языки программирования" с использованием локального и сетевого серверов, на которых установлены современные языки программирования ( pyton, java, visual studio 2015 (с#, VB) и другие языки программирования), тема по разработки экологической информационной системы для Чувашии с использованием беспилотного летательного аппарата.

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

Программный менеджер выполняет работы по составлению технического задания совместно с заказчиком, планирования всех работ с использованием программы Project, Scrum ( гибкий метод разработки командного проекта) и инструменты для коллективной разработке программ Team Foundation Server; Visual Studio Online ( Visual Studio 2013, 2015).

Архитектор разрабатывает общую структуру проекта путем составления диаграмм на основе языка моделирования UML и использования CASE технологий Moodeling для разработки программы на языке программирования VC#.

Программист дизайна и основной программы выполняет работы по совершенствованию программы после CASE технологий или написания программы самостоятельно с предварительным построением блок-схемы алгоритма.

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

Остальные специалисты занимаются работой в соответствии с планированием работ по проекту.

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

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

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


Литературные и интернет-источники

  1. Никишев В. К. Методы построения и исследования моделей динамических объектов и систем на основе компьютерного моделирования//монографияЧебоксары: Изд-во Чуваш. ун-та, 2014. – 332 с.

  2. Cтатья"Программирование и алгоритмизация в учебных заведениях, 2016г" http://infourok.ru/statya-programmirovanie-i-algoritmizaciya-v-uchebnih-zavedeniya-990589.html

  3. Cтатья" Статья по основам современного программирования-2016г" http://infourok.ru/statya-po-osnovam-sovremennogo-programmirovaniya-1010849,html





6



Курс профессиональной переподготовки
Учитель информатики
Курс профессиональной переподготовки
Учитель математики и информатики
Найдите материал к любому уроку,
указав свой предмет (категорию), класс, учебник и тему:
также Вы можете выбрать тип материала:
Общая информация

Вам будут интересны эти курсы:

Курс повышения квалификации «Методика преподавания информатики в начальных классах»
Курс профессиональной переподготовки «Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации»
Курс повышения квалификации «Специфика преподавания информатики в начальных классах с учетом ФГОС НОО»
Курс повышения квалификации «Введение в программирование на языке С (СИ)»
Курс профессиональной переподготовки «Управление в сфере информационных технологий в образовательной организации»
Курс профессиональной переподготовки «Теория и методика обучения информатике в начальной школе»
Курс профессиональной переподготовки «Математика и информатика: теория и методика преподавания в образовательной организации»
Курс повышения квалификации «Современные тенденции цифровизации образования»
Курс повышения квалификации «Специфика преподавания дисциплины «Информационные технологии» в условиях реализации ФГОС СПО по ТОП-50»
Курс повышения квалификации «Современные языки программирования интегрированной оболочки Microsoft Visual Studio C# NET., C++. NET, VB.NET. с использованием структурного и объектно-ориентированного методов разработки корпоративных систем»
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.
17 курсов по пожарно-техническому минимуму
Обучение от 2 дней
дистанционно
Удостоверение
Программы актуальны на 2019 г., согласованы с МЧС РФ
2 500 руб. до 1 500 руб.
Подробнее