Программная инженерия и Компьютерная инженерия основы

Лекция



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

программная инженерия (англ. software engineering) — приложение систематического, дисциплинированного, измеримого подхода к разработке, функционированию и сопровождению программного обеспечения, а также исследованию этих подходов; то есть, приложение дисциплины инженерии к программному обеспечению (ISO/IEC/IEEE 24765:2017) .

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

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

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

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

Основные сведения

Термин «программная инженерия» появился впервые в 1968 году на конференции НАТО и предназначался для стимулирования поиска решений происходившего в то время «кризиса программного обеспечения». С тех пор это переросло в профессию программного инженера (англ. software engineer) и область исследований, посвященных созданию программного обеспечения, более качественного, доступного, лучше поддерживаемого и быстрее разрабатываемого.

Money Magazine и Salary.com оценили профессию разработчика программного обеспечения как лучшую работу в Америке в 2006 году

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

Программная инженерия и Компьютерная инженерия основы

История

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

Первые языки программирования стали появляться в 1950-х годах, и это был еще один важный шаг в абстракции. Основные языки, такие как Фортран, Алгол и Кобол, были выпущены в конце 1950-х для решения научных, алгоритмических и бизнес-задач соответственно. Дейкстра написал свою известную статью «Go To Statement Considered Harmful» в 1968 году, а Дэвид Парнас ввел ключевое понятие модульности и скрытия информации в 1972 году, чтобы помочь программистам справляться со все более и более сложными программными системами. Системное программное обеспечение для управления аппаратным, названное «операционная система», было представлено компанией Unix в 1969 году. В 1967 году язык Симула ввел понятие объектно-ориентированной парадигмы программирования.

Эти достижения в области программного обеспечения были встречены большим прорывом в компьютерной технике. В середине 1970-х годов был представлен микрокомпьютер, что позволило любителям получить собственный компьютер и писать свои программы для него. Это, в свою очередь привело к появлению персональных компьютеров (ПК) и Microsoft Windows. Также в середине 1980-х появляются такие понятия как жизненный цикл программного обеспечения в качестве некоторого консенсуса для централизованной разработки программного обеспечения. Конец 1970-х и начало 1980-х годов ознаменовались появлением нескольких новых симула-подобных объектно-ориентированных языков программирования, в том числе Smalltalk, Objective-C и C++.

Открытое программное обеспечение, появившееся в начале 1990-х, породило децентрализованный стиль разработки ПО.

Программная инженерия и Компьютерная инженерия основы

Программная инженерия занимает центральное место в пространстве информатики. Она дает теоретические и технологические средства системной и компьютерной инженерии, ИТ, ИС.

Предисловие

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

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

С этим трудно было спорить, поскольку разработка ПО имеет свою специфику, которая плохо укладывается в классическое управление проектами. Об этом говорит сайт https://intellect.icu . Поэтому было решено подготовить собственный курс по управлению проектами именно в разработке ПО. Так появилась первая версия данного «курса молодого бойца», который предназначался для начинающих руководителей проектов и их начальников. Не ставилась задача заменить свод знаний PMBOK от PMI. Знать и понимать лучшие практики, изложенные в этом руководстве, должен каждый профессиональный менеджер проекта. В лекции вошли лишь 20% знаний о дисциплине управления проектами, но эти знания будут востребованы в 80% ситуаций, с которыми участникам проекта придется столкнуться в реальной работе.

С тех пор этот курс был прочитан десятки раз в ходе корпоративных и открытых тренингов для руководителей программных проектов и лидеров команд разработчиков из ведущих российских компаний производителей ПО. Структура и содержание курса постоянно улучшались, благодаря обратной связи, получаемой от слушателей, в ходе активных дискуссий и обсуждений с коллегами выполненных ими проектов. Наконец, появилось ощущение определенной стабилизации текущей версии. Поэтому был объявлен режим «features freeze» и принято решение курс документировать.

Программная инженерия и Компьютерная инженерия основы

Программная инженерия и Компьютерная инженерия основы

Ну, и кому от этого счастье?

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

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

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

Предисловие

  • Лекция 1. введение в программную инженерию ,
  • История и основные понятия
  • Отличия программной инженерии от других отраслей
  • Эволюция подходов к управлению программными проектами
  • Модели процесса разработки ПО
  • Что надо делать для успеха программного проекта
  • Выводы
  • Дополнительная литература и источники

Лекция 2. управление проектами ,

  • Проект — основа инноваций
  • Критерии успешности проекта
  • Проект и организационная структура компании
  • Организация проектной команпы
  • Жизненный цикл проекта. Фазы и продукты
  • Выводы
  • Дополнительная литература и источники

Лекция 3. инициация проекта управление приоритетами проектов ,

  • Управление приоритетами проектов
  • Концепция проекта
  • Цели и результаты проекта
  • Допущения и ограничения
  • Ключевые участники и заинтересованные стороны
  • Ресурсы
  • Сроки
  • Риски
  • Критерии приемки
  • Обоснование полезности проекта
  • Выводы
  • Дополнительная литература и источники

Лекция 4. планирование проекта уточнение содержания , состава работ ,

  • Уточнение содержания и состава работ
  • Планирование управления содержанием
  • Планирование организационной структуры
  • Планирование управления конфигурациями
  • Планирование управления качеством
  • Базовое расписание проекта
  • Выводы
  • Дополнительная литература и источники

Лекция 5. управление рисками , проектные риски ,

  • Основные понятия
  • Планирование управления рисками
  • Идентификация рисков
  • Качественный анализ рисков
  • Количественный анализ рисков
  • Планирование реагирования на риски
  • Главные риски программных проектов и способы реагирования
  • Управление проектом, направленное на снижение рисков
  • Мониторинг и контроль рисков
  • Выводы
  • Дополнительная литература и источники

Лекция 6. оценка трудоемкости , оценка сроков разработки по ,

  • Оценка — вероятностное утверждение
  • Негативные последствия «агрессивного» расписания
  • Прагматичный подход. Метод PERT
  • Обзор метода функциональных точек
  • Основы метопики COCOMO II
  • Выводы
  • Дополнительная литература и источники

Лекция 7. формирование команды , лидерство ,

  • Лидерство и управление
  • Правильные люди
  • Мотивация
  • Эффективное взаимодействие
  • Выводы
  • Дополнительная литература и источники
  • Лекция 8. Реализация проекта
  • Рабочее планирование
  • Принципы количественного управления
  • Завершение проекта
  • Выводы
  • Дополнительная литература и источники

Заключение. Растите профессионалов

Лекция 8 реализация проекта рабочее планирование ,

Профессия

Правовые требования к лицензированию и сертификации профессиональных программных инженеров отличаются во всем мире. В Великобритании, Британское общество вычислительной техники (англ. British Computer Society) выдает лицензии инженерам программного обеспечения и члены общества могут также стать «сертифицированными инженерами» (C.Eng), а в некоторых районах Канады, например, Альберта, Онтарио и Квебек, инженеры по программному обеспечению могут также быть «профессиональными инженерами» (P. Eng) или, далее, «магистрами информационных систем» (ISP), однако, нет никаких правовых требований для данных специализаций.

Работа

В 2004 году американское Бюро статистики труда, насчитало 760 840 инженеров по программному обеспечению, работающих в США. В тот же период времени было около 1,4 млн практиков, занятых в США в других смешанных инженерных специальностях. Благодаря относительной новизне, как формальная область изучения, программная инженерия часто преподается как часть учебной программы компьютерных наук, и многие программные инженеры имеют неплохие познания в информатике.

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

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

Большинство программных инженеров и программистов работает 40 часов в неделю, а около 15 процентов программных инженеров и 11 процентов программистов работали более 50 часов в неделю в 2008 году. Травмы в этих профессиях встречаются редко. Однако, как и в других профессиях, где надо проводить много времени перед компьютером, люди этих специальностей более подвержены к усталости глаз, болям в спине, а также болезням рук и запястий, таких как синдром запястного канала.

Сертификация

Институт программной инженерии предлагает сертификацию по конкретным специальностям, таким как: безопасность, оптимизация процессов, а также архитектура программного обеспечения. Apple, IBM, Microsoft и другие компании финансируют[уточнить] собственные экзамены для сертификации. Многие IT-программы сертификации ориентированы на конкретные технологии, и управляются поставщиками этих технологий. Эти программы сертификации разработаны с учетом места, на которое будут наниматься люди, использующие эти технологии.

Расширение сертификации «Общие навыки разработки программного обеспечения» доступны через различные профессиональные сообщества. В 2006 году IEEE сертифицировала более 575 специалистов в области программного обеспечения, как «Certified Software Development Professional»(CSDP). В 2008 году они добавили сертификат начального уровня известный как «Certified Software Development Associate» (CSDA). У ACM была профессиональная программа сертификации в начале 1980-х, которая была прекращена из-за отсутствия интереса. В ACM также рассматривали возможность сертификации профессиональных программных инженеров в конце 1990-х годов, но в итоге решили, что такая сертификация не подходит для профессиональной производственной практики разработки программного обеспечения.

Британское общество вычислительной техники разработало юридически признанную профессиональную сертификацию, называемую «Chartered IT Professional» (CITP), и доступную только для полных членов (MBCS). Программные инженеры имеют право на членство в Институте инженерии и технологии (англ. Institution of Engineering and Technology) и могут соответственно получить статус дипломированного инженера. В Канаде, организация Canadian Information Processing Society[en] также разработала юридически признанную профессиональную сертификацию, названную «Information Systems Professional» (ISP). В Онтарио, Канада, Программные инженеры, которые заканчивают канадский Engineering Accreditation Board (CEAB), успешно сдавшие Professional Practice Examination (PPE) и, имеющие по крайней мере 48 месяцев опыта работы программным инженером, имеют право получить лицензию через PEO(«Профессиональные инженеры Онтарио») и могут стать Профессиональными инженерами (P.Eng).

Образование

Знания в области программирования являются необходимым условием для того, чтобы стать программным инженером. В 2004 году IEEE Computer Society выпустил SWEBOK, который был опубликован в качестве стандарта ISO / IEC 19759:2004, описывающего объем знаний, который по их мнению, должен получить дипломированный программный инженер с четырехлетним опытом. Многие люди входят в эту профессию, получив высшее образование или отучившись в профессионально-техническом училище. Стандартный учебный план для международной степени бакалавра программной инженерии был определен CCSE[en], и обновлен в 2004 году. Ряд университетов имеют программы обучения программных инженеров. С 2010 года насчитывалось 244 очных программы, 70 интернет-курсов, 230 программ для специалистов, 41 программа для ученых в этой области, а также 69 программ для сертификатов в Соединенных Штатах. В российских вузах есть отдельное направление подготовки 09.03.04 «Программная инженерия».

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

Сравнение с другими дисциплинами

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

Вау!! 😲 Ты еще не читал? Это зря!

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

создано: 2015-06-13
обновлено: 2021-12-13
132406



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:
Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Управление разработкой программных IT проектов

Термины: Управление разработкой программных IT проектов