programming.systems.L1-2.slides (1119458)
Текст из файла
СИСТЕМЫПРОГРАММИРОВАНИЯ- Основные понятия, назначение, структура и функционирование СП- Принципы ООП на примере языка С++ и СП, поддерживающие ООП- Элементы теории трансляцииКоллоквиум по ООП и С++(в третьей декаде марта)- Письменная работа (обязательная)Баллы учитываются на экзаменеТемы на экзамене (письменный): СП и основы трансляцииСИСТЕМЫПРОГРАММИРОВАНИЯприкладное программное обеспечениесистемы программированияпрограммы управления логическимиресурсамипрограммы управления физическимиресурсамиаппаратураИерархия вычислительной системыОперационныесистемыАрхитектура ЭВМи ЯАРазвитие СП:- программирование в машинных кодах- автокоды, языки ассемблера- трансляторы с языков высокого уровня- визуальные средства автоматизации и проектированияОпределение: системой программирования называетсякомплекс программных средств (инструментов, библиотек) ,предназначенных для поддержки разработки программногопродукта на протяжении всего жизненного цикла этогопродуктаПрограмма -- создается для решения отдельной задачи авторомпрограммы и используется в некоторой конкретной операционной среде.
Длядругих пользователей программы может потребоваться консультация автора.Программный продукт -- программа, которая работает без авторскогонадзора в рамках некоторого набора операционных сред. Может исполняться,тестироваться и модифицироваться без участия автора (отчуждён от автора).Качество программного продукта должно быть существенно выше качестваобычной программы. Программный продукт должен обладать “дружественным”интерфейсом пользователя, иметь полную пользовательскую(эксплуатационную) и техническую документацию, например, для модификациипродукта.
Тестирование программных продуктов должно проходить болеетщательно и полно. Программный продукт должен быть настраиваемым иконфигурируемым.Системный программный продукт (интегрированный) -- комплекс(пакет) программных продуктов. Например, пакет офисных программ.Жизненный цикл программного продуктаОсновные фазы жизненного цикла ПП :ИспользованиеРазработка ППСопровождение(продолжающаясяразработка)Этапы жизненного цикла1) Постановка задачи. Анализ (определение) требований2) Проектирование3) Написание текста программ (программирование, “кодирование”)4) Компоновка или интеграция программного комплекса5) Верификация, тестирование и отладка6) Документирование7) Внедрение8) Тиражирование9) Сопровождение, повторяющее все предыдущие этапыФормализация определения требований (1-й этап ЖЦ)-- Таблицы решенийОтображают связь входных данных с выходными.
Для их построениявходные данные разбиваются на группы, представители которыхобрабатываются программным продуктом практически одинаково.Используются для данных, которые легко разбиваются нанемногочисленные группы.-- Функциональные диаграммыПредставляют собой графы с узлами, соответствующими входнымданным. Задаются условия и/или ограничениями на данные или ихсочетания. В диаграммах также описывается эффект обработкисоответствующих данных.-- Языки спецификаций, применяемые для формулированиятребований (язык CLU , SDL и другие).Проектирование (2-й этап ЖЦ)Метод «разделяй и властвуй» для борьбы со сложностьюРазбиение (декомпозиция) задачи на отдельные модули (подсистемы).Спецификации для модулей.
Дальнейшая декомпозиция модулей всоответствии со спецификациями.Два подхода к декомпозиции:-- алгоритмическая (структурное программирование «сверху-вниз»,данные играют пассивную роль)-- объектно-ориентированная (выделение отдельных объектов,которые способны воспринимать направляемые им сообщения иотвечать выполнением тех или иных ответных действий. Данные(объекты) играют активную роль, алгоритмы превращаются в операциинад выделенными объектами )CASE-технологии (Computer Aided Software Engineering) –средства автоматизированного проектирования(охватывают все, от подсистем верхнего уровня до отдельных модулей с обязательнойспецификацией всех механизмов межмодульного взаимодействия)Результаты второго этапа:-- схема иерархии подсистем (или модулей, для алгоритмическойдекомпозиции)-- функциональность и интерфейсы каждой подсистемы-- внутренняя структура каждого модуля: выбирается алгоритмработы модуля и способ внутреннего представленияКодирование (3-й этап ЖЦ)написание текстов программ на алгоритмическом языкеКомпоновка (4-й этап ЖЦ)интеграционный процесс комплексирования(комбинирования), то есть связывания отдельных частейпрограммы, написанных разными людьми или группами, водну большую систему программного обеспечения.Верификация, тестирование, отладка (5-й этап ЖЦ)Верификация -- проверка правильности программыТестирование -- процесс обнаружения дефектов в созданныхпрограммах, обнаружение несоответствия спецификациям.Тест - это задание программе с заранее известным ответом.
Существуютметоды «белого» и «черного» ящиков.Отладка -- выявление причин дефектов, а также их устранениеРегрессионное тестирование -- повторное тестирование послевнесения исправлений , которое позволяет убедиться, что внесениеисправлений в одни фрагменты программ, не нарушилофункционирование других компонентовКомплексное тестирование -- проверяется правильностьвзаимодействия всех автономно разработанных составных частей междусобойОпределениетребованийПроектированиеПрограммированиеКомпоновка(интеграция)ТестированиеДокументированиеРеальный ход разработки программного обеспеченияСуществует и другие модели разработки, напр.
«спиральная»Примеры систем программирования:СП Turbo Pascal для ОС MS-DOS (продукт компании Borland) иСП Си для ОС UNIX (версия Free BSD 4.3).Схема классической системы программированияСистематекстовогоредактированияИсходнаяпрограммаМакрогенераторКомпиляторСистемаграфическогоредактированияАссемблерКомпоновщик(редакторсвязей)БиблиотекиДинамическаязагрузкаГотоваяОбъектнаяпрограмма…программаЗагрузчик(в составеОС)ОтладчикВыполнение(В СП Си под UNIX одна и та же команда СС является программной оболочкой икомпилятора и редактора связей)Для фиксации, удобной визуализации и редактирования материалов,возникающих на каждом из этапов создания ПП желательны дополнительныесредства СП на основе базы данных, обеспечивающие:согласованность (изменения в одном месте должны инициироватьизменения там, где используется измененный фрагмент ПП),непротиворечивость (принимаемые решения на одном из этапов должныбыть согласованы с решениями, принимаемыми на других этапах созданияПП),корректность изменений (вносимые изменения не должны нарушатьобщие требования к ПП),"историю" развития проекта (предыдущие версии принимаемыхрешений).возможность работы группы разработчиков в реальном времениавтоматическое или автоматизированное кодирование идокументирование ППавтоматизацию календарного планирования сроков создания ПП,разбиение общей постановки задачи на подзадачи, распределенияподзадач по конкретным разработчикам ПП (пример: MS Project)Дополнительные средства В СП Си (С++), базирующейся на ОСUNIX:Координатор (программа управления сборкой) Make (GNUMake).Make существенно упрощает процесс сборки проектов.Make отслеживает изменения файлов и перекомпилирует приобращении к ней только изменившиеся файлы и файлы, связанные сними по компиляции.Система SCCS (Source Code Control System)SCCS предназначена для отслеживания изменений различных версийфайлов проекта (создаваемого под ОС UNIX, не только в СП С) иразделения доступа к ним.Основные функции SCCS:- документирование модификаций проекта,- контроль полномочий пользователей-разработчиков проекта,- сопровождение параллельных версий проекта,- восстановление старых версий проекта.Аналогичной системой под ОС Windows является RCS (Revision Control System).Программа lintLint применяется для более жесткого контроля программ, написанных на Си, посравнению с компилятором.
Например, она– обнаруживает объекты, по-разному определенные в разных файлах,– обнаруживает переменные, которые используются раньше, чем имприсвоено значение или не используются вовсе,– осуществляет контроль соответствия формальных и фактическихпараметров для функций, декларированных как f( )Главное достоинство -- может проконтролировать всю программу, что особенноценно для языка, допускающего независимую компиляцию.– Серия Manual.Программа man в интерактивном режиме предоставляет пользователюдокументацию по всем компонентам системы программирования и операционнойсистемы.– Форматер nroffNroff (работает с любой СП под ОС UNIX) используется для создания печатнойдокументации.
Она преобразует неформатированный текстовый файл вформатируемый (команды форматирования вставляются непосредственно втекст).– Форматер tblTbl (работает с любой СП под ОС UNIX) также используется для создания печатнойдокументации. Она форматирует табличные данные.Другие компоненты классической системыпрограммированияИнтегрированная среда разработки (ИСР)Современная ИСР - комплекс программных средств, поддерживающихполный жизненный цикл ПП. Комплекс инструментальных средств, входящихв состав ИСР, иногда называют интегрированным CASE-средством.Простая ИСР объединяет в себе возможности текстовых редакторовисходных текстов программ, отладчиков и командный язык компиляцииПримеры ИСР: Turbo Pascal, Delphi, Visual Studio (под ОСWindows);K-develop для K Desktop Environment под ОС LINUX (вприведённой терминологии они будут простыми ИСР).“Продвинутая” ИСР :-- репозиторий, являющийся основой ИСР.Он должен обеспечивать хранение версий проекта и его отдельныхкомпонентов, синхронизацию поступления информации от различныхразработчиков при групповой разработке, контроль данных о проекте наполноту и непротиворечивость;-- графические средства анализа и проектирования,обеспечивающие создание и редактирование иерархически связанныхдиаграмм, образующих модели ПП, а также графический пользовательскийинтерфейс, обеспечивающий взаимодействие с функциями API (ApplicationProgram Interface - прикладного программного интерфейса ОС).-- средства разработки приложений, включая языки-- редактор текстов;-- средства документирования;-- средства тестирования и отладки;-- средства управления проектом;-- средства реинжиниринга (позволяют восстановить логику иструктуру программы по ее исходным текстам, с целью модификацииили перенесения на другую платформу).Редакторы текстов-- строковые, позволяющие смотреть и редактировать текст толькона одной строке, заканчивающейся признаком "конец строки";-- потоковые, воспринимающие текст в виде потока символов,признак конца строки также является символом;-- экранные, позволяющие перемещать по тексту окно, по которомуможно перемещать курсор и устанавливать его в нужные позиции;многие экранные редакторы позволяют видеть на экране текст втом виде, в котором он будет напечатан.Основные функции текстового редактора в рамках ИСР программногообеспечения:1) подготовка текста программы (обычные действия по созданию,редактированию, сохранению файла с текстом программы),2) многооконный интерфейс с поддержкой режима "буксировки"фрагментов текста мышкой (drag&drop),3) интеграция с компилятором:-- визуализация текста с выделением лексем (синтаксическая подсветкаэлементов языка),-- дополнение кода, интерактивная подсказка (а.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.