Учебники. Программирование для начинающих.
Programm.ws — это сайт, на котором вы можете почитать литературу по языкам программирования , а так-же посмотреть примеры работающих программ на С++, ассемблере, паскале и много другого..
Программирование — в обычном понимании, это процесс создания компьютерных программ.
В узком смысле (так называемое кодирование) под программированием понимается написание инструкций — программ — на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами (на профессиональном жаргоне — кодерами), а те, кто разрабатывает алгоритмы — алгоритмистами, специалистами предметной области, математиками.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Более точен современный термин — «программная инженерия» (также иначе «инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.
Delphi для начинающих
Введение
Структура проекта
Проект Delphi представляет собой набор программных единиц — модулей. Один из модулей — главный, содержит инструкции, с которых начинается выполнение программы. Главный модуль приложения полностью формируется Delphi.
Главный модуль представляет собой файл с расширением dpr. Для того чтобы увидеть текст главного модуля приложения, нужно из меню Project выбрать команду View Source.
В листинге ВЗ приведен текст главного модуля программы вычисления скорости бега.
Листинг ВЗ. Главный модуль приложения Скорость бега program vrun;
Forms, vrun1 in ‘vrunl.pas’ ;
Начинается главный модуль словом program, за которым следует имя программы, совпадающее с именем проекта. Имя проекта задается в момент сохранения проекта, и оно определяет имя создаваемого компилятором исполняемого файла программы. Далее за словом uses следуют имена используемых модулей: библиотечного модуля Forms и модуля формы vrunl.pas.
Строка , которая похожа на комментарий, — это директива компилятору подключить файл ресурсов. Файл ресурсов содержит ресурсы приложения: пиктограммы, курсоры, битовые образы и др. Звездочка показывает, что имя файла ресурсов такое же, как и у файла проекта, но с расширением res.
Файл ресурсов не «является текстовым файлом, поэтому просмотреть его с помощью редактора текста нельзя. Для работы с файлами ресурсов используют специальные программы, например, Resource Workshop. Можно также применять входящую в состав Delphi утилиту Image Editor, доступ к которой можно получить выбором из меню Tools команды Image Editor.
Исполняемая часть главного модуля находится между инструкциями begin и end. Инструкции исполняемой части обеспечивают инициализацию приложения и вывод на экран стартового окна.
Помимо главного модуля, каждая программа включает в себя еще как минимум один модуль формы, который содержит описание стартовой формы приложения и поддерживающих ее работу процедур. В Delphi каждой форме соответствует свой модуль.
В листинге В4 приведен текст модуля программы вычисления скорости бега.
Листинг В4. Модуль программы Скорость бега
unit vrun1;
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls;
TForm1 = class(TForm) Edit1: TEdit;
Edit2: TEdit; Label1: TLabel;
Label2: TLabel; Label3: TLabel;
procedure ButtonlClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
implementation
// нажатие кнопки Вычислить
procedure TForm1.ButtonlClick'(Sender: TObject);
dist : integer; // дистанция, метров
t: real; // время как дробное число
min : integer; // время, минуты
sek : integer; // время, секунды
// получить исходные данные из полей ввода
dist := StrToInt(Edit1.Text); t := StrToFloat(Edit2.Text);
// предварительные преобразования
min := Trunc(t); // кол-во минут — это целая часть числа t
sek := Trunc(t*100) mod 100; // кол-во секунд — это дробная часть
v := (dist/1000) / ((min*60 + sek)/3600);
// вывод результата
label4.Caption := ‘Дистанция: ‘+ Edit1.Text + ‘ м’ + #13
+ ‘Время: ‘ + IntToStr(min) + ‘ мин ‘
+ IntToStr(sek) + ‘ сек ‘ + #13 +
‘Скорость: ‘ + FloatToStrF(v,ffFixed,4,2) + км/час’;
// нажатие кнопки Завершить
procedure TForm1.Button2Click(Sender: TObject)
Начинается модуль словом unit, за которым следует имя модуля. Именно это имя упоминается в списке используемых модулей в инструкции uses главного модуля приложения, текст которого приведен в листинге ВЗ.
Модуль состоит из следующих разделов:
- интерфейса;
- реализации;
- инициализации.
Раздел интерфейса (начинается словом interface) сообщает компилятору, какая часть модуля является доступной для других модулей программы. В этом разделе перечислены (после слова uses) библиотечные модули, используемые данным модулем. Также здесь находится сформированное Delphi описание формы, которое следует за словом type.
Раздел реализации открывается словом implementation и содержит объявления локальных переменных, процедур и функций, поддерживающих работу формы.
Начинается раздел реализации директивой , указывающей компилятору, что в процессе генерации выполняемого файла надо использовать описание формы. Описание формы находится в файле с расширением dfm, имя которого совпадает с именем модуля. Файл описания формы генерируется средой Delphi на основе внешнего вида формы.
За директивой ($R *.DFM> следуют процедуры обработки событий для формы и ее компонентов. Сюда же программист может поместить другие процедуры и функции.
Раздел инициализации позволяет выполнить инициализацию переменных модуля. Инструкции раздела инициализации располагаются после раздела реализации (описания всех процедур и функций) между begin и end. Если раздел инициализации не содержит инструкций (как в приведенном примере), то слово begin не указывается.
Следует отметить, что значительное количество инструкций модуля формирует Delphi. Например, Delphi, анализируя действия программиста по созданию формы, генерирует описание класса формы (после слова type). В приведенном примере инструкции, набранные программистом, выделены фоном. Очевидно, что Delphi выполнила значительную часть работы по составлению текста программы.
Понятие проекта
Проект можно определить как протяженное во времени предприятие, направленное на создание уникальных продуктов, услуг или достижение иных результатов. Каждый проект имеет начальную и конечную точки, а также характеризуется ограниченностью используемых ресурсов при его реализации. Проект завершается в том случае, когда достигнуты его цели или есть основания прекратить процесс их достижения.
Цель проекта определяет задачи, решаемые в результате реализации проекта, содержание — что является результатом проекта. Управление проектом определяет, как будет достигнута цель и создан необходимый результат. Управление проектом есть постоянная деятельность, осуществляемая на всем его протяжении по определенной методике. Достижение результата проекта и достижение его цели — разные вещи. Например, результат проекта — разработка информационной системы, цель — автоматизация определенной деятельности. Можно создать информационную систему, не обладающую нужной функциональностью, и цель проекта достигнута не будет, в отличие от результата. Успешным проект будет лишь тогда, когда результат соответствует заданному содержанию и его целям.
Часто связанные проекты объединяются в проектные программы. Если же проекты характеризуются единым или пересекающимся набором ресурсов и единым центром управления, то они объединяются в портфели проектов.
Масштаб проекта оценивается по количеству людей, в нем задействованных, и по конечной стоимости. Любой проект, как правило, имеет руководителя (проектного менеджера), который несет ответственность за проект в целом. Успешный проект должен уложиться в рамки так называемого тройственного ограничения (рис. 1.1).
Рис. 1.1. «Тройственное ограничение»
Важны следующие аспекты управления проектами:
- • ограничения являются следствием приоритетов, расставленных заказчиком с учетом имеющихся ресурсов;
- • приоритеты заказчика и исполнителя в общем случае могут не совпадать (противоречить);
- • анализ компромиссов определяет баланс приоритетов сторон, заинтересованных в проекте;
- • ограничения являются неотъемлемой частью проекта;
- • ограничения порождают риски;
- • ограничения рассматриваются в контексте уровня детализации проекта.
Детализация проекта заключается в разбиении (декомпозиции) его на отдельные работы (задачи); она необходима для адекватной оценки его длительности и стоимости при имеющихся требованиях к функциональности и уровню качества.
В области управления проектами существует ряд нормативов и рекомендаций, среди которых можно выделить результаты деятельности следующих организаций:
- • PMI — Project Management Institute, Inc. — американский Институт управления проектами;
- • IPMA — International Project Management Association — Международная ассоциация управления проектами;
- • АРМ — Association of Project Management — одна из крупнейших независимых профессиональных ассоциаций по проектному менеджменту в Европе;
- • Ассоциация по управлению проектами СОВНЕТ.
Проект с позиций программной инженерии (IT-проект) — это совокупность действий, необходимая для создания артефактов программного продукта. Проект включает в себя взаимодействие с заказчиком, написание документации, проектирование, кодирование и тестирование. На рис. 1.2 представлены перечисленные параметры проекта в виде лепестковой диаграммы. Следует отметить, что в отличие от «тройственного ограничения» IT-проект характеризуется еще одним ограничением — качеством.
Рис. 1.2. Пример лепестковой диаграммы параметров проекта
Особенностью 1Т-проекта является еще и то, что все этапы его реализации должны сопровождаться специальными документами, перечень которых в соответствии с требованиями ШЕЕ представлен на рис. 1.3, где слева от названия каждого документа указано наименование соответствующей работы.
Верификация и валидация
Управление кон ф и гу ра ция м и
SWP (План экспертизы проекта)
SQAP (План контроля качества программного обеспечения)
SCMP (План управления конфигурациями программного обеспечения)
SPMP (План управления программным проектом)
Ориентированная на заказчика
SRS (Спецификация требований к программному обеспечению)
Ориентированная на разработчика
по тестированию программного
Рис. 1.3. Документация проекта в соответствии с требованиями IEEE
Краткая характеристика каждого документа приведена ниже.
SWP (Software Verification and Validation Plan) — план экспертизы программного обеспечения, определяющий, каким образом и в какой последовательности должны проверяться стадии проекта и сам продукт на соответствие поставленным требованиям (верификация — проверка правильности сборки приложения; валидация — проверка на соответствие требованиям).
SQAP (Software Quality Assurance Plan) — план контроля качества программного обеспечения, определяющий, каким образом проект должен достигнуть соответствия установленному уровню качества.
SCMP (Software Configuration Management Plan) — план управления конфигурациями программного обеспечения, который определяет, как и где должны храниться документы, программный код и их версии, устанавливает их взаимное соответствие.
SPMP (Software Project Management Plan) — план управления программным проектом, который определяет, каким образом следует управлять проектом.
SRS (Software Requirements Plan) — спецификация требований к программному обеспечению, которая определяет требования к приложению, утверждается совместно заказчиком и разработчиком и служит отправной точкой для реализации функциональности программного продукта.
SDD (Software Design Document) — проектная документация программного обеспечения, которая представляет архитектуру и детали проектирования приложения с использованием диаграмм.
STD (Software Test Documentation) — документация по тестированию программного обеспечения, в которой указывается, каким образом должно проводиться тестирование приложения и его компонентов.
При реализации IT-проекта важно следующее:
- 1) грамотное управление персоналом: адекватный подбор участников проекта с обозначением для каждого его должностных обязанностей, указанием круга взаимодействия с коллегами и зоны ответственности;
- 2) умение управлять рисками: все риски должны быть как можно раньше идентифицированы; устранимые риски необходимо предотвратить, например модифицируя требования, а неустранимые — преодолеть, применяя определенные технологии программирования и/или проектирования.
Что такое решения и проекты в Visual Studio?
В этой статье описывается разница между проектом и решением в Visual Studio. В нем также кратко описывается создание проекта и использование окна инструментов Обозреватель решений для взаимодействия с проектами и решениями.
Проекты
При создании в Visual Studio приложения или веб-сайта вы начинаете с проекта. С логической точки зрения проект содержит все файлы, которые будут скомпилированы в исполняемую программу, библиотеку или веб-сайт. Эти файлы могут включать исходный код, значки, изображения, файлы данных и многое другое. Проект также содержит параметры компилятора и другие файлы конфигурации, которые может потребоваться для взаимодействия программы с различными службами или компонентами.
Файл проекта
Visual Studio использует MSBuild для создания каждого проекта в решении, и каждый проект содержит файл проекта MSBuild. Расширение имени файла отражает тип проекта, например проект C# (CSPROJ), проект Visual Basic (VBPROJ) или проект базы данных (DBPROJ). Файл проекта — это XML-документ, содержащий все сведения и инструкции, необходимые MSBuild для создания проекта. Такие сведения и инструкции включают содержимое, требования к платформе, сведения о версиях, параметры веб-сервера или сервера базы данных, а также задачи для выполнения.
Файлы проекта основаны на схеме XML MSBuild. Чтобы просмотреть содержимое более новых файлов проекта в стиле SDK в Visual Studio, щелкните правой кнопкой мыши узел проекта в Обозреватель решений и выберите «Изменить проекта». Чтобы просмотреть содержимое проектов .NET, сначала выгрузите проект (щелкните правой кнопкой мыши узел проекта в Обозреватель решений и выберите «Выгрузить проект«). Затем щелкните проект правой кнопкой мыши и выберите пункт Изменить .
Использовать решения или проекты в Visual Studio для редактирования, сборки и отладки кода необязательно. Можно просто открыть папку с файлами исходного кода в Visual Studio и начать редактирование. Дополнительные сведения см. в статье Разработка кода в Visual Studio без использования проектов и решений.
Создать новые проекты
Самый простой способ создать новый проект — использовать шаблон проекта с нужным типом проекта. Шаблон проекта содержит базовый набор предварительно созданных файлов кода, файлов конфигурации, ресурсов и параметров. Для выбора шаблона проекта нажмите Файл>Создать>Проект. Дополнительные сведения см. в статье Создание проекта в Visual Studio.
Вы можете также создать пользовательский шаблон проекта, чтобы затем использовать его для создания новых проектов. Дополнительные сведения см. в статье Создание шаблонов проектов и элементов.
При создании нового проекта Visual Studio сохраняет его в расположении по умолчанию — %USERPROFILE%\source\repos. Чтобы изменить это расположение, перейдите в раздел Средства>Параметры>Проекты и решения>Расположения. Дополнительные сведения см. в диалоговом окне «Параметры»: «Проекты и решения>».
Решения
Проект находится внутри решения. Несмотря на его имя, решение не является «ответом». Это просто контейнер для одного или нескольких связанных проектов, а также сведения о сборке, параметры окна Visual Studio и любые другие файлы, которые не связаны с определенным проектом.
Файл решения
В Visual Studio используются два типа файлов (SLN и SUO) для хранения параметров, связанных с решениями:
Расширение | Имя | Описание |
---|---|---|
.SLN | Решение Visual Studio | Организует проекты, элементы проектов и решений в решении. |
SUO | Параметры пользователя решения | Сохраняет настройки и параметры уровня пользователя, например точки останова. |
Решение описывается текстовым файлом (SLN) в собственном уникальном формате; его обычно не изменяют вручную. И наоборот, SUO-файл является скрытым и не отображается, если проводник имеет параметры по умолчанию. Для отображения скрытых файлов в меню Вид проводника установите флажок Скрытые элементы.
Папка решения
Папка решения — это виртуальная папка, которая доступна только в Обозревателе решений, где с ее помощью можно группировать проекты в решении. Если нужно найти файл решения на компьютере, перейдите к разделу Средства>Параметры>Проекты и решения>Расположения. Дополнительные сведения см. в диалоговом окне «Параметры»: «Проекты и решения>».
Пример проекта и решения, созданного с нуля, а также пошаговые инструкции и пример кода см. в статье Общие сведения о проектах и решениях.
Обозреватель решений
После создания проекта можно просматривать проект, решение и связанные с ними элементы, а также для управлять ими с помощью обозревателя решений. На следующем рисунке показан обозреватель решений с решением C#, включающим два проекта:
Панель инструментов в верхней части Обозреватель решений имеет кнопки для перехода с представления решения на представление папки, фильтрация ожидающих изменений, отображение всех файлов, свертывание всех узлов, просмотр страниц свойств, предварительный просмотр кода в редакторе кода и многое другое.
Многие команды меню доступны в контекстном меню правой кнопкой мыши для различных элементов в Обозреватель решений. К таким командам относится сборка проекта, управление пакетами NuGet, добавление ссылок, переименование файла и запуск тестов. Это лишь некоторые из них. Дополнительные сведения см. в разделе Сведения об Обозревателе решений.
Начиная с версии 17.7, вы также можете сравнить файлы в Обозреватель решений с помощью параметров контекстного меню правой кнопкой мыши. Дополнительные сведения см. в разделе «Средство сравнения файлов» на странице «Сведения о Обозреватель решений».
В обозревателе решений можно настроить способ вложения файлов для проектов ASP.NET Core. Дополнительные сведения см. в разделе «Вложение файлов» в Обозреватель решений.
Если вы закрыли Обозреватель решений и хотите вновь открыть его, выберите Вид>Обозреватель решений в строке меню или нажмите клавиши CTRL+ALT+L. Если же вы закрыли боковые вкладки и хотите восстановить их в расположениях по умолчанию, выберите Окно>Сброс макета окон в строке меню.
Чтобы просмотреть изображения и значки приложений, отображаемые в Visual Studio, скачайте библиотеку изображений Visual Studio.
Связанный контент
- Управление свойствами проектов и решений
- Фильтрация решений в Visual Studio
- Справочник по миграции и обновлению проекта для Visual Studio
Проектирование программного обеспечения
Если бы мы запланировали статью, которая не будет никому интересна, то наверное написали про важность проектирования зданий перед их постройкой. Но, к счастью, любой человек понимает, почему не стоит строить дома на глазок, добавляя фичи прямо в процессе строительства. При разработке же программного обеспечения по-прежнему полезно напоминать о том, что начинать её следует с проектирования — т.е. с полного планирования того, что непосредственно нам придётся разрабтывать, в какие сроки, с какими исходными данными и ожидаемым результатом.
За 13 лет опыта компании «Эдисон» в аутсорс-разработке для средних и крупных компаний из России, США, Европы и Австралии мы выработали собственную схему проектирования ПО, о которой в этом посте и расскажем.
Зачем нужно проектирование программного обеспечения
Определив требования к программному обеспечению, разработчик получает согласованный четкий план действий, график оплат и сроков, сокращает время разработки и повышает её качество, а также позволяет предусмотреть любые другие нюансы разработки, например, юридические (в частности по передаче авторских прав на программное обеспечение).
Проектируя ПО заранее, разработчик получает возможность:
- оценить стоимость и время разработки программного продукта,
- исключить потери времени и денег на ненужные действия, вынужденные доработки, длительное согласование,
- избежать разногласий и неудовлетворённости клиента и исполнителя.
Подготовительный этап
В зависимости от особенностей проекта порядок разработки программного обеспечения может отличаться, но в общем виде он такой:
При подготовке к проектированию решаются организационные вопросы:
- что клиент может предоставить (ТЗ, макеты, дизайн), насколько достаточны исходники и какие этапы закрывают — таким образом определяется состав работ,
- бюджет и сроки: на основе имеющихся материалов утверждается примерная стоимость, срок всего проекта, а также срок и точная стоимость ближайшего этапа.
Этапы и результаты проектирования
- Описание: совместная работа заказчика (говорит о пользе продукта, требованиях к работоспособности и внешнему виду) и EDISON (предлагает технические и алгоритмические решения).
- Архитектура: утверждается язык программирования, база данных, серверы и фреймворки.
- Техническое задание: составляется архитектором на основании описания и ответов заказчика на вопросы, согласовывается с менеджером проекта, затем передается клиенту, производятся правки.
- Макеты (добавляются к техзаданию): интерфейсов, принципиальные схемы устройства, диаграммы структуры базы данных, схемы взаимодействия компонентов.
- Контроль: архитектор устраняет замечания менеджера проектов.
- Утверждение: заказчик проверяет и меняет ТЗ самостоятельно или сообщает список правок проект-менеджеру, замечания устраняются, ТЗ утверждается и прилагается к контракту.
- Что делаем (описание продукта, функционала, пользователей)?
- Как делаем (архитектура)?
- Как проверить, что цель достигнута (тестирование, критерии оценки)?
Теоретически, если на подготовительном этапе клиент может сразу предоставить результат проектирования в соответствии с этими требованиями, этап проектирования можно опустить и сразу перейти к бесплатной оценке проекта. Однако пока таких случаев в нашей практике не было.
Требования к техническому заданию на разработку программного обеспечения
Минимально достаточное ТЗ должно:
- полностью, чётко (инструкционно, без воды, возможности разночтения) и структурировано описывать будущий программный продукт (как должен выглядеть, как и с чем работать, каким требованиям отвечать) и процесс его разработки, чтобы у архитектора не возникало вопросов по реализации,
- исключать противоречивые сведения,
- быть юридически точным (следовать ГОСТ 34.602-89), поскольку вместе с контрактом и прочими документами ТЗ приобретает юридическую силу.
- общие данные о проекте (название продукта, кем и для чего будет использоваться);
- общие требования к ПО (к структуре, функциям, в частности приложить схему архитектуры и описать связь подсистем, виды интерфейсов всех составляющих для каждой из ролей пользователей — готовый дизайн или его концепцию);
- подробный план работ (перечень этапов, сроки по ним);
- порядок тестирования и приемки (виды и состав испытаний продукта в целом и отдельных частей);
- перечень действий для запуска продукта;
- требования к документированию процесса и результата разработки.
- детaлей:
- пользователи программного продукта: роли, права и функции,
- описание алгоритмов обработки данных,
- перечень открытых и закрытых протоколов,
- требования к безопасности данных на всем жизненном цикле,
- список компонентов (платных, свободных), которые будут использоваться в разработке,
- примеров:
- при наличии аналогов, интегрируемых систем указываются ссылки на них,
- в описании работы системы приводится описание типичных сценариев взаимодействия с ней пользователей,
- примеры входящих данных и формат данных взаимодействия подсистем (таблицы, базы, страницы и др.),
- примеры исходящих данных (виды отчетов и экспортируемых файлов),
- производительности и надежности:
- указание уровней нагрузки системы (день, месяц, максимальный),
- требования к производительности, сохранности,
- обоснование выбора оборудования запуска программного обеспечения,
- указание хостинга серверной части.
Примеры техзаданий на разработку ПО
Естественно, чем сложнее проект, тем дольше и дороже подготовка к нему. Проектирование небольших проектов занимает от недели до месяца. Чтобы процесс шёл быстрее и стоил меньше, мы предоставляем заказчикам по запросу инструкцию по составлению ТЗ и примеры готовых технических заданий. Приведем примеры и тут.
ТЗ на программное обеспечение Protector
Объект ТЗ: разработка и интеграция с существующей системой модульного ПО для мониторинга удаленных устройств охраны
Заказчик: ООО «ВТИМБ»
Сценарии использования образовательной системы
Объект ТЗ: создание образовательной системы
ТЗ на разработку ПО SMPP-шлюз
Объект ТЗ: разработка программного обеспечения SMPP-шлюза
Заказчик: IMT
В ходе разработки ТЗ, как в последнем кейсе, мы обязательно визуализируем основные моменты в виде схем, диаграмм, моделируем бизнес-процессы, создаем макеты интерфейсов, по желанию клиента выполняем ТЗ на русском или английском языках.
Проектирование — для больших парней
За годы работы нами написаны сотни техзаданий на разработку программного обеспечения различной степени сложности, и мы понимаем, что роль разработки подробного ТЗ сложно переоценить. Бывало, работали с ТЗ на более чем 1000 страниц, и для крупных проектов — это оправдано и необходимо. Тем не менее не стоит забывать о принципе целесообразности — нет смысла писать ТЗ на 20 страниц для двухдневной разработки продукта.
Есть замечания по нашей методологии или вы хотите поделиться своим опытом? Рады будем пообщаться в комментариях, в нашей группе в Фейсбуке или во Вконтакте.
- EdisonSoftware
- разработка ПО
- Блог компании Edison
- Веб-разработка
- Программирование
- Клиентская оптимизация
- Проектирование и рефакторинг