Опубликован: 20.07.2007 | Доступ: свободный | Студентов: 765 / 147 | Оценка: 4.30 / 4.06 | Длительность: 09:58:00
Специальности: Программист
Лекция 2:

Элементы программной инженерии

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
3.3. Область действия программной инженерии

Программная инженерия имеет дело со всеми аспектами создания ПО.

В западной литературе часто используются термины: software engineering, system engineering и computer science. В чем разница?

Computer science имеет дело с теорией и основами разработки ПО.

System engineering связано с вопросами разработки систем с участием компьютеров (архитектура, дизайн, интеграция, ПО...).

Software engineering - часть System engineering, имеющая дело с разработкой ПО.

Итак, computer science предоставляет собой безусловно важный, но преимущественно теоретический базис. На практике его недостаточно. К числу открытых можно отнести следующие проблемы:

  • Поиск финансирования.
  • Работа с заказчиком.
  • Подбор персонала.
  • Этические вопросы. Микроклимат в коллективе. Команда.
  • Обеспечение качества программного продукта.
  • ...

Всем этим занимается программная инженерия и программные инженеры.

3.4. Цели программных инженеров

Целями программных инженеров являются:

  • Создать качественный продукт.
  • Уложиться в бюджет.
  • Уложиться в сроки.

Разберем по очереди эти вопросы.

3.4.1. Качественный программный продукт
  • Должен предоставлять требуемую функциональность.

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

  • Должен быть удобным в сопровождении.

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

  • Должен быть надежным.

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

  • Должен быть эффективным.

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

  • Должен быть удобным в использовании.

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

3.4.2. Создание ПО должно укладываться в бюджет

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

  • 60% - разработка;
  • 40% - тестирование.

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

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

3.4.3. Создание ПО должно укладываться в сроки

Залог успеха - строгое соблюдение следующих принципов:

  • Грамотное планирование.
  • Анализ возможных рисков и способы реагирования.
  • Борьба за четкие границы проекта.
  • Мотивирование сотрудников.
3.5. Программные инженеры и научная среда

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

  • Новые технологии.
  • Новые методы, алгоритмы.
  • Анализ новых перспективных разработок.
  • Исследовательская работа в смежных областях.

Помощь ученых жизненно необходима в по крайней мере в двух ситуациях:

  • Там, где в принципе не решить задачу своими силами.
  • Там, где есть специалисты, но нет времени и ресурсов для исследований.

Этот подход широко применяется современными IT-компаниями: Intel, Microsoft, IBM и другими.

< Лекция 1 || Лекция 2: 123 || Лекция 3 >