Добавлен: 29.06.2023
Просмотров: 597
Скачиваний: 15
СОДЕРЖАНИЕ
Глава 1. Теоретические основы программного обеспечения
1.1. Понятие программного обеспечения
1.2. Классификация программного обеспечения
1.3. Основы программного проектирования
Глава 2. Модели и типы жизненных циклов программного проекта
2.1. Характеристика жизненного цикла программы
2.2. Организационные процессы жизненного цикла программного продукта
2.3. Модели жизненного цикла программных продуктов
Введение
Промышленное применение компьютеров и растущий спрос на программы поставили актуальные задачи существенного повышения производительности разработки программного обеспечения, разработки индустриальных методов планирования и проектирования программ, переноса организационно-технических, технико-экономических и социально-психологических приемов, закономерностей и методов из сферы материального производства в сферу применения компьютеров. Комплексный подход к процессам разработки, эксплуатации и сопровождения программного обеспечения выдвинул ряд насущных проблем, решение которых исключит «узкие места» в проектировании программ, уменьшит сроки завершения работ, улучшит выбор и адаптацию существующих программ, а может быть и определит судьбу систем со встроенными ЭВМ.
В практике разработок больших программных проектов зачастую отсутствует единый подход к оцениванию затрат труда, сроков проведения работ и материальных затрат, что сдерживает повышение производительности разработки программного обеспечения, а в конечном счете – эффективное управление жизненным циклом программного проекта. Поскольку программа любого типа становится изделием (кроме, может быть, учебных, макетных программ), подход к ее изготовлению во многом должен быть аналогичен подходу к производству промышленной продукции, и вопросы проектирования программ становятся чрезвычайно важными.
Целью исследования является изучение моделей жизненных циклов программных проектов.
Цель была достигнута при помощи выполнения следующих задач:
- изучить теоретические основы программного обеспечения;
- определить модели жизненных циклов программного проекта.
Предмет исследования – моделирование жизненных циклов программ. Объект – процесс проектирования программного обеспечения.
Глава 1. Теоретические основы
программного обеспечения
1.1. Понятие программного обеспечения
Персональный компьютер представляет собой сложное устройство, состоящее из множества различных электронных компонентов. В сумме все они образуют аппаратное обеспечение или «железо», для управления которого требуется какое-то нематериальное составляющее, которым и является системное программное обеспечение.
Рассмотрим понятие системного программного обеспечения.
Без программ компьютерное устройство будет выглядеть никому не нужной грудой железа. Все это относится к ноутбукам, нетбукам, мобильным устройствам и прочей компьютерной аппаратуре. Программное обеспечение – неотъемлемая часть компьютерной системы. Оно является логическим продолжением технических средств.
Согласно ISO/IEC 2382-1:1993, программное обеспечение – все или часть программ, процедур, правил и соответствующей документации системы обработки информации [1].
Другие определения из международных и российских стандартов:
IEEE Std 829-2008: программное обеспечение – компьютерные программы, процедуры и, возможно, соответствующая документация и данные, относящиеся к функционированию компьютерной системы[2];
ISO/IEC 26514-2008: программное обеспечение – программа или множество программ, используемых для управления компьютером[3];
ГОСТ 19781-90: программное обеспечение – совокупность программ системы обработки информации и программных документов, необходимых для эксплуатации этих программ[4].
Системное программное обеспечение включает в себя все программы, работающие c аппаратной конфигурацией (т.е. с «железом»). Поэтому главной задачей системного программного обеспечения является управление аппаратными компонентами компьютера (оперативной памятью, процессором, принтером, сканером, мультимедиа адаптером, клавиатурой, мышкой и пр.).
Иногда под понятием «системное программное обеспечение персонального компьютера» подразумевают операционную систему, что не совсем верно. Операционная система является лишь частью системного программного обеспечения, но не единственной его частью и не полным аналогом системного программного обеспечения.
Системное программное обеспечение – это своеобразная «прослойка» между аппаратными составляющими компьютера и программными приложениями[5].
В современных компьютерных системах ни одно из запущенных программных приложений не может непосредственно вступать во взаимодействие с аппаратными компонентами, как было во времена MS-DOS, когда подобный подход преобладал. Теперь требуется, чтобы приложение отвечало определенным правилам, и было запрограммировано специально для используемой системы. Как раз по этой причине программы, созданные для ОС Windows, не могут функционировать в системе Linux или Mac и, соответственно, наоборот.
Системное программное обеспечение может управлять любым аппаратным компонентом при помощи команд, поступающих от прикладных приложений.
В системное программное обеспечение входят драйверы устройств, программы управления процессором, оперативной памятью, сетевым оборудованием, другими внешними и внутренними устройствами, такими как принтеры, сканеры, внутренние и внешние жесткие диски, CD-, DVD-устройства и пр.
Системное программирование, которое заключается в создании системного программного обеспечения есть удел системных программистов, которые специализируются исключительно на создании, отладке и корректировке системного программного обеспечения. Кроме системных программистов, есть прикладные программисты, в задачи которых входит использование на практике, разработка, отладка и адаптация прикладного программного обеспечения. Кстати, я в свое время работала прикладным программистом. И хочу сказать, что писать программы для людей иногда сложнее (в первую очередь, по эмоциональному накалу), чем для «железа»[6].
Исходя из разделения программного обеспечения на системное и прикладное, уже стало определенным стандартом, что обычный пользователь хранит на компьютере системное программное обеспечение (операционную систему и драйверы) на системном диске C:, а свои наработки, тексты, таблицы, рисунки, фото — на диске D:. Такое разделение позволяет при возникновении проблем с операционной системой на диске C: сохранить пользователю все, что им «нажито непосильным трудом» на диске D:. Хотя про архивацию в любом случае нужно помнить.
Таким образом, системное программное обеспечение не является единственным типом программ, существует также еще и прикладное программное обеспечение. Обычному пользователю компьютера, не претендующему на роль прикладного программиста, нужно лишь прикладное программное обеспечение для запуска и выполнения приложений (редакторы текстов и графики, просмотры изображений, прослушивание музыки, просмотр фильмов, поиск информации в Интернете и пр.). Прикладное программное обеспечение определяют программы для запуска и выполнения приложений. К примеру, чтобы работать с графикой, необходимо использовать графический редактор, для работы с текстовыми документами – текстовый редактор и т.д.
1.2. Классификация программного обеспечения
Существуют различные программы для компьютеров. Есть программы для обработки текстовых, графических, мультимедийных данных, есть программы для управления работой компьютера, его отдельных устройств, таких как принтер, сканер, монитор и др. Совокупность программ для компьютеров еще называют программным обеспечением. Только под управлением программного обеспечения компьютер способен обрабатывать различные данные.
Современное программное обеспечение делят на следующие виды (рис. 1).
Рисунок 1 – Классификация программного обеспечения[7]
Системное программное обеспечение предназначено для управления работой устройств компьютера и обменом данными между ними, диагностики и устранения неполадок в работе компьютера, автоматизации процесса обработки данных, организации обмена данными между пользователем и компьютером. В состав системного программного обеспечения входят операционные системы и различные утилиты.
Системы программирования предназначены для создания новых программ с использованием различных языков программирования, например Scratch 1.4, Free Pascal 2.6, DEV-C++ 5.11, Microsoft Visual Studio 2013 Professional, Android Studio 1.4.0, Lazarus 1.4.4, Python 2.6.1 и др.
Прикладное программное обеспечение предназначено для реализации конкретных задач обработки данных, которые пользователь решает в ходе своей деятельности. Их делят на прикладные программы общего и специального назначения.
К прикладным программам общего назначения относятся программы, которые могут применяться в различных отраслях человеческой деятельности для обработки текстов, рисунков, мультимедийных данных, электронных таблиц, создания презентаций и т. п.
Прикладные программы специального назначения используются для реализации задач обработки данных в определенной области деятельности, на конкретном предприятии, в организации, фирме или их подразделении. К такому типу программ относятся программы для создания видеоэффектов при производстве кинофильмов, чертежей машин и механизмов в конструкторских и проектных бюро, диагностирования заболеваний в медицинских учреждениях, создания школьного расписания уроков и т. п.
На компьютерные программы распространяется действие главы 70 «Авторское право» Гражданского кодекса РФ[8], и их использование возможно только при условии соблюдения требований этого закона, а также требований лицензии, с которой пользователь соглашается, устанавливая программу на свой компьютер.
Служебное программное обеспечение – это программы, предназначенные для диагностирования аппаратной и программной составляющих компьютера, расширения возможностей операционной системы. При необходимости они устраняют недостатки и оптимизируют работу компьютера. Эти программы называют утилитами (англ. utility - полезность). Часть таких программ включается в состав операционных систем при инсталляции операционной системы. Например, в состав операционной системы Windows 10 входят такие утилиты, как Диспетчер задач, Восстановление системы, Оптимизация дисков, Очистка диска, Монитор ресурсов, Сведения о системе, Планировщик заданий, Панель управления и др.
Аналогичные программы есть и в других операционных системах. Так, в Linux Ubuntu такими программами, например, являются: Менеджер архивов, Журнал системы, Анализатор использования диска, Резервное копирование, Системный монитор, System Testing, Диски и др.
Дополнительные утилиты можно приобрести или свободно скопировать с сайтов разработчиков и установить для дальнейшего использования.
Среди служебных программ есть программы, которые выполняют обслуживание устройств внешней памяти. Их еще называют программами для работы с дисками. К таким программам относятся программы разметки, форматирования, проверки, дефрагментации, очистки носителей данных и др. Использование таких программ связано с необходимостью обеспечения длительного надежного хранения данных, а также быстрого и точного поиска нужных данных[9].
Служебное программное обеспечение – это программы, предназначенные для диагностирования аппаратной и программной составляющих компьютера, расширения возможностей операционной системы.
1.3. Основы программного проектирования
Проектирование программного обеспечения – процесс создания проекта программного обеспечения, а также дисциплина, изучающая методы проектирования. Проектирование программного обеспечения является частным случаем проектирования продуктов и процессов.
Целью проектирования является определение внутренних свойств системы и детализации её внешних (видимых) свойств на основе выданных заказчиком требований к программному обеспечению (исходные условия задачи). Эти требования подвергаются анализу.
Первоначально программа рассматривается как чёрный ящик. Ход процесса проектирования и его результаты зависят не только от состава требований, но и выбранной модели процесса, опыта проектировщика.