Понятие программного продукта
Все программы по характеру использования и категориям пользователей можно разделить на два класса – утилитарные программы и программные продукты (изделия).
Утилитарные программы предназначены для удовлетворения нужд их разработчиков. Чаще всего они выполняют роль сервиса в технологии обработки данных либо являются программами решения функциональных задач, не предназначенных для широкого распространения.
Программные продукты предназначены для удовлетворения потребностей пользователей, широкого распространения и продажи. Программный продукт должен быть подготовлен к эксплуатации, иметь необходимую техническую документацию, предоставлять сервис и гарантию надежной работы, иметь товарный знак изготовителя, а также желательно наличие кода государственной регистрации. Только при таких условиях программный комплекс может быть назван программным продуктом.
Программный продукт – комплекс взаимосвязанных программ для решения определенной проблемы (задачи) массового спроса, подготовленный к реализации как любой вид промышленной продукции.
Отличительной особенностью программных продуктов должна быть их системность – функциональная полнота и законченность реализуемых функций обработки, которые применяются в совокупности.
Программный продукт разрабатывается на основе промышленной технологии выполнения проектных работ с применением современных инструментальных средств программирования. Специфика заключается в уникальности процесса разработки алгоритмов и программ, зависящего от характера обработки информации и используемых инструментальных средств. На создание программного продукта затрачиваются значительные ресурсы – трудовые, материальные, финансовые. Требуется высокая квалификация разработчиков.
Как правило, программные продукты требуют сопровождения, связанного с большими трудозатратами – исправление ошибок, создание новых версий программ и т.п.
Сопровождение программного продукта – поддержка работоспособности программного продукта, осуществление перехода на его новые версии, внесение изменений, исправление обнаруженных ошибок.
Программные продукты в отличие от традиционных программных изделий не имеют строго регламентированного набора качественных характеристик, задаваемых при создании программ, либо эти характеристики невозможно заранее точно указать или оценить, так одни и те же функции обработки, обеспечиваемые программным средством, могут иметь различную глубину проработки.
К основным характеристикам программных продуктов относят: мобильность, надежность, эффективность, модифицируемость, коммуникативность.
Проектирование программных продуктов логически сложная, трудоемкая и длительная работа, требующая высокой квалификации участвующих в ней специалистов. Однако до недавнего времени проектирование программных продуктов выполнялось на интуитивном уровне неформализованными методами, включающими в себя элементы искусства, практический опыт, экспертные оценки и дорогостоящие экспериментальные проверки качества функционирования. Кроме того, в процессе создания и функционирования программного продукта информационные потребности пользователей постоянно изменяются и уточняются, что еще более усложняет разработку и сопровождение. Производство программного обеспечения это крупнейшая отрасль мировой экономики, в которой занято около трех млн. специалистов.
Потребность контролировать процесс разработки программного обеспечения, прогнозировать и гарантировать стоимость разработки, сроки и качество результатов привела в конце 70-х годов к необходимости перехода от кустарных к индустриальным способам создания программного обеспечения и появлению совокупности инженерных методов и средств создания ПО, объединенных общим названием «программная инженерия».
Этапы создания программного продукта
Жизненный цикл (ЖЦ) программного обеспечения (ПО) определяется как период времени, который начинается с момента принятия решения о необходимости создания ПО, и заканчивается в момент его полного изъятия из эксплуатации.
Структура жизненного цикла программного продукта содержит процессы, действия и задачи, которые должны быть выполнены во время создания программного продукта.
Процесс это совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными от других процессов, и результатами.
Каждый процесс разделен на набор действий, каждое действие на набор задач. Процесс, действие или задача инициируется и выполняется другим процессом по мере необходимости, причем не существует заранее определенных последовательностей выполнения (естественно, при сохранении связей по входным данным).
В соответствии с международным стандартом ISO/IEC 12207: 1995 все процессы ЖЦ ПО разделены на три группы:
Основные процессы: приобретение; поставка; разработка; эксплуатация; сопровождение.
Вспомогательные процессы: документирование; управление конфигурацией; обеспечение качества; верификация; аттестация; совместная оценка; аудит; разрешение проблем.
Организационные процессы: управление; усовершенствование; создание инфраструктуры; обучение.
Методология проектирования программных продуктов
Проектирование алгоритмов и программ – наиболее ответственный этап жизненного цикла программных продуктов, определяющий, насколько создаваемая программа соответствует спецификациям и требованиям со стороны конечных пользователей. Затраты на создание, сопровождение и эксплуатацию программных продуктов и много другое также зависит от проектных решений.
Методы проектирования алгоритмов и программ разнообразны, их можно классифицировать по следующим признакам:
- степень автоматизации проектных работ;
- принятая методология процесса разработки.
По степени автоматизации проектирования алгоритмов и программ выделяют методы традиционного (неавтоматизированного) проектирования и методы автоматизированного проектирования (CASE-технология и ее элементы).
Неавтоматизированное проектирование преимущественно используется при разработке небольших по трудоемкости и структурной сложности программных продуктов, не требующих большого числа разработчиков.
Автоматизированное проектирование возникло с необходимостью уменьшить затраты на проектные работы, сократить сроки их выполнения, создать типовые «заготовки» алгоритмов и программ, многократно тиражируемых для различных целей, координации работ большого коллектива разработчиков, стандартизации алгоритмов и программ. Автоматизация проектирования может охватывать все или отдельные этапы жизненного цикла, при этом работы этапов могут быть изолированы друг от друга либо составлять единый комплекс, выполняемых последовательно во времени. |