Компоненты систем программирования (1119464)
Текст из файла
Предмет изучения:системы программирования• Основные определения• Программный продукт и его жизненный цикл• Основные компоненты системпрограммирования• Трансляторы: компиляторы и интерпретаторы• Языки программирования и средства ихформального описания• Объектно-ориентированный подход кпроектированию программных продуктов• Язык программирования Си++1Иерархия программноаппаратного обеспеченияПрикладныепрограммыСистемыпрограммированияПрограммы управлениялогическими ресурсамиПрограммы управленияфизическими ресурсамиАппаратура2Составляющие системпрограммирования• Языки программирования – основные средствавыражения потребностей пользователей – системныхи прикладных программистов• Трансляторы – основные компоненты системпрограммирования, обрабатывающие исходнуюинформацию, выраженную пользователями на языкахпрограммирования• Другие компоненты систем программирования,являющиеся их столь же неотъемлемыми частями, каки трансляторы3Основное определениеСистемой программированияназывается комплекс программныхсредств (инструментов, библиотек),предназначенных для поддержкипрограммного продукта напротяжении всего жизненного циклаэтого продукта4Программные продукты• Программа предназначена для решенияотдельной задачи автором программы ииспользуется в конкретной операционнойсреде• Программа неотделима от её автора.
Толькоавтор способен запустить программу в рамкахнекоторой вычислительной среды, снабдить еёнеобходимыми для работы данными, понятьрезультат её работы5Программные продукты• Программный продукт – это программа,которая работает без авторского надзора врамках некоторого набора операционных сред.Программный продукт может исполняться,тестироваться и модифицироваться без участияавтора (он отчуждён от автора)• "Дружественный" интерфейс, наличиетехнической и пользовательскойдокументации, наличие параметров настройки6Программные продукты• Интегрированный (системный)программный продукт есть комплекспрограммных продуктов (пакет)• Согласованные интерфейсы программныхпродуктов, включённых в пакет. Одинаковыеили похожие способы задания параметров,режимов работы и действий пользователя вовсех компонентах7Фазы жизненного циклапрограммного продуктаФаза использованияФаза разработкиФаза сопровождения(продолжающейся разработки)8Искажение жизненного циклапрограммного продукта(срыв фазы сопровождения)Фаза использованияФаза разработкиФаза сопровождения(продолжающейся разработки)9Искажение жизненного циклапрограммного продукта(срыв фазы использования)Фаза использованияФаза разработкиФаза сопровождения(продолжающейся разработки)10Жизненный циклпрограммного продукта,сопровождаемого разработчикомФаза использованияФаза разработкиФаза сопровождения(продолжающейся разработки)11Этапы разработкипрограммного продукта• Анализ (определение) требований• Проектирование• Написание текста программ (собственно программирование,“кодирование”)• Компоновка или интеграция программного комплекса• Верификация, тестирование и отладка• Документирование• Внедрение• Тиражирование• Сопровождение, повторяющее все предыдущие этапы12Этапы разработкипрограммного продукта• Анализ (определение) требований: Словарь терминов – система понятий для общения спользователями Создаваемые материалы: от текстов до формализованныхописаний Языки описания требований:• Таблицы решений• Функциональные диаграммы• Языки спецификаций (CLU, MSC, SDL, …) Результат: внешняя спецификация, описание системы сточки зрения пользователя13Этапы разработкипрограммного продукта• Проектирование: Проектирование структуры системы Проектирование совокупности взаимосвязанныхподсистем Управление сложностью Декомпозиция• Алгоритмическая декомпозиция• Объектно-ориентированная декомпозиция Результат: схема иерархии подсистем, функциональность иинтерфейсы каждой подсистемы Результат: структуры данных и алгоритмы отдельных14модулейЭтапы разработкипрограммного продукта• Написание текста программ• Верификация, тестирование и отладка Верификация – процесс проверки на правильность• Валидация – доказательство правильности программ сиспользованием логических методов Тестирование – процесс обнаружения дефектов путемсравнения результатов работы программы с эталоном• Поведенческое, структурное, пользовательское,техническое, регрессивное тестирование и др. Отладка – процесс выявления причин дефектов, а также ихустранения15Этапы разработкипрограммного продукта• Компоновка программного комплекса Связывание отдельных частей программы в единуюсистему программного обеспечения• Документирование• Внедрение – процесс привлечения заказчика к использованиюпрограммного продукта• Тиражирование• Сопровождение16Идеальный случай разработкипрограммного обеспеченияОпределениетребованийПроектированиеПрограммированиеНисходящая схема –обратная связьотсутствуетКомпоновка(интеграция)ТестированиеДокументирование17Итеративная разработкапрограммного обеспеченияКаскадная схема(вариант итеративной схемы)ОпределениетребованийПроектированиеПрограммированиеКомпоновка(интеграция)ТестированиеДокументирование18Реальный ход разработкипрограммного обеспеченияКаскадно-возвратная схемаОпределениетребованийПроектированиеПрограммированиеКомпоновка(интеграция)ТестированиеДокументирование19Реальный ход разработкипрограммного обеспеченияНаписание текстаПроектированиеСпиральная схема(создание прототипов)Анализ(определениетребований)КомпоновкаВерификация,тестирование,отладкаДокументированиеВерсия 1Версия 2 ТиражированиеВерсия 3Внедрение20Основные требования ксистемам программирования• Поддержка процесса разработки программногообеспечения на каждом этапе работы• Согласованность интерфейсов• Непротиворечивость результатов работы• Полнота набора системных компонентов• Удобство работы с системами программированияи их отдельными компонентами21Требования ксистемам программирования• Процесс разработки программного продукта един,хотя он и состоит из отдельных этапов• Содержание работ, производимых на всех этапах,базируется на результатах других этапов• Все этапы должны быть согласованы между собой• Для достижения этого согласования необходимосоздавать и вести базу данных проекта22Требования ксистемам программированияБаза данных проекта• В электронном виде поддерживается информация опроекте, истории его развития, контролируется еговнутренняя согласованность• Изменения требований должны указывать на местапроекта, в которых эти требования использованы• Постоянно контролируется корректность,санкционированность изменений инепротиворечивость решений23Требования ксистемам программированияСистема управления проектом• Заблаговременное планирование работ• Предупреждение о возможных источникахзатруднений (рисках)• Управление устранимыми и неизбежными рисками• Контроль и координация календарного плана работ• Примеры систем: Microsoft Project, TimeLine,SureTrack, Primavera Project Planner, OpenProj24Требования ксистемам программированияЭтап анализа требований• Описание требований на формальных языках, анализтребований и их непротиворечивости• Средства построения сетевых графиков, анализазанятости ресурсов и стоимости этапов работ• Основные компоненты: текстовые и графическиередакторы, средства контроля непротиворечивоститаблиц решений, функциональных диаграмм, текстовна языках спецификаций25Требования ксистемам программированияЭтап проектирования• Обработка текстовых и графических материалов• Основные компоненты: текстовые и графическиередакторы, база данных проекта• Средства автоматического построения визуальныхописаний классов объектов, их просмотра исогласованного редактирования26Требования ксистемам программированияЭтап программирования• Основные компоненты: Средства автоматизациипроцесса написания программ и документации• Средства автоматизации графического интерфейсапользователя• Библиотеки• Средства редактирования текстов программ• Трансляторы и редакторы связей27Требования ксистемам программированияЭтап компоновки• Формирование программного комплекса изавтономно запрограммированных, автономноотлаженных и протестированных компонентов,возможно объединённых в библиотеки• Основные компоненты: редакторы связей• Средства контроля версий программныхкомпонентов28Требования ксистемам программированияЭтапы отладки и тестирования• Основные компоненты: Отладчики• Генераторы тестов, позволяющие формироватьвходные данные для трансляторов• Средства автоматизации прогонов тестов• Средства автоматизации анализа результатовпрогона тестов• Средства анализа уровня тестового покрытия29Требования ксистемам программированияЭтапы документирования,внедрения и тиражирования• Основные компоненты: Средства подготовки иредактирования документации• Средства управления проектами• Средства управления версиями программныхпродуктов30Виды современныхсистем программирования• Наборы отдельных компонентов Текстовые редакторы, трансляторы, редакторы связей• Системы командных файлов Командные координаторы (make) и интерпретаторы (shell)• Интегрированные системы программированияПоддержка единой базы проектов (репозитория)Поддержка визуальных методов проектированияИспользование унифицированного языка моделированияНаличие и интеграция всех средств поддержки для всехэтапов жизненного цикла программных продуктов31Классическая система программированияИсходнаяпрограммаСистематекстовогоредактированияСистемаграфическогоредактированияМакрогенераторБиблиотекиКомпиляторАссемблерРедактор связей(компоновщик)ОтладчикГотоваяпрограммаОбъектныймодуль…ЗагрузчикВыполнение(в составе ОС)32Типы трансляторов.Интерпретаторы и компиляторы• Конечная цель создания программного продуктаявляется достижение некоторого результата, способполучения которого закодирован в этой программе• Этот результат может быть получен только при работеаппаратуры вычислительной системы, которой дляработы передаётся программа, а также входныеданные, требующиеся программе при её работе33Типы трансляторов.Интерпретаторы и компиляторы• Варианты взаимодействия с аппаратурой в целяхдостижения требуемого результата:1.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.