-
Notifications
You must be signed in to change notification settings - Fork 72
Билет 1
Терминология:
Технология (теория) - применение научных знаний для практических целей, особенно в промышленности.
Технология - машины или оборудование, разработанные с использованием техники.
Модель - это абстрактное описание программного обеспечения, которое скрывает информацию о некоторых аспектах с целью представления упрощенного описания остальных.
Agile - модель разработки программного обеспечения, ориентированная на использование итеративной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля. Agile возник в IT-среде, но затем распространился и в другие сферы – от промышленной инженерии до искусственного интеллекта.
Смысл Agile сформулирован в Agile-манифесте разработки ПО: «Люди и взаимодействие важнее процессов и инструментов. Работающий продукт важнее исчерпывающей документации. Сотрудничество с заказчиком важнее согласования условий контракта. Готовность к изменениям важнее следования первоначальному плану».
Agile предполагает, что при реализации проекта не нужно опираться только на заранее созданные подробные планы. Важно ориентироваться на постоянно меняющиеся условия внешней и внутренней среды и учитывать обратную связь от заказчиков и пользователей. Это поощряет разработчиков и инженеров экспериментировать и искать новые решения, не ограничивая себя жесткими рамками и стандартами.
Существует несколько Agile-моделей:
1. Feature driven development (FDD, разработка, управляемая функциональностью) — итеративная модель разработки программного обеспечения, одна из гибких методологий разработки (agile). FDD представляет собой попытку объединить наиболее признанные в индустрии разработки программного обеспечения методики, принимающие за основу важную для заказчика функциональность (свойства) разрабатываемого программного обеспечения. Основной целью данной модели является разработка реального, работающего программного обеспечения систематически, в поставленные сроки.
FDD включает в себя пять базовых видов деятельности:
- разработка общей модели;
- составление списка необходимых функций системы;
- планирование работы над каждой функцией;
- проектирование функции;
- реализация функции.
2. Test-driven development (TDD, Разработка через тестирование) — модель разработки программного обеспечения, которая основывается на повторении очень коротких циклов разработки: сначала пишется тест, покрывающий желаемое изменение, затем пишется код, который позволит пройти тест, и под конец проводится рефакторинг нового кода к соответствующим стандартам.
TDD цикл включает в себя пять основных шагов:
- Быстро добавить тест;
- Выполнить все тесты и увидеть, что новый тест «падает»;
- Выполнить небольшое изменение системы;
- Убедиться, что все тесты проходят;
- Выполнить рефакторинг, удаляя дублирование.
В модели TDD тест всегда пишется прежде чем создается соответствующий программный элемент. Если далее не выполнять шаги 2, 4, 5 то получится модель TFD (разработка «вначале тест», test first development).
2.5. Behavior-driven development (BDD, «разработка через поведение») — это модель разработки программного обеспечения, являющаяся ответвлением от методологии разработки через тестирование (TDD).
Основной идеей данной модели является совмещение в процессе разработки чисто технических интересов и интересов бизнеса, позволяя тем самым управляющему персоналу и программистам говорить на одном языке. Для общения между этими группами персонала используется предметно-ориентированный язык, основу которого представляют конструкции из естественного языка, понятные неспециалисту, обычно выражающие поведение программного продукта и ожидаемые результаты. Считается, что данная модель эффективна, когда предметная область, в которой работает программный продукт, описывается очень комплексно.
BDD модель является расширением TDD в том смысле, что перед тем как написать какой-либо тест, необходимо сначала описать желаемый результат от добавляемой функциональности на предметно-ориентированном языке. После того как это будет проделано, конструкции этого языка переводятся специалистами или специальным программным обеспечением в описание теста.
BDD фокусируется на следующих вопросах:
- С чего начинается процесс;
- Что нужно тестировать, а что нет;
- Сколько проверок должно быть совершено за один раз;
- Что можно назвать проверкой;
- Как понять, почему тест не прошёл.
3. Model-driven development (MDD, Разработка, управляемая моделями) - это модель разработки программного обеспечения, когда модели становятся основными артефактами разработки, из которых генерируется код и другие артефакты.
Модель - это абстрактное описание программного обеспечения, которое скрывает информацию о некоторых аспектах с целью представления упрощенного описания остальных. Модель может быть исходным артефактом в разработке, если она фиксирует информацию в форме, пригодной для интерпретаций людьми и обработки инструментальными средствами. Модель определяет нотацию и метамодель. Нотация представляет собой совокупность графических элементов, которые применяются в модели и могут быть интерпретированы людьми. Метамодель описывает используемые в модели понятия и фиксирует информацию в виде метаданных, которые могут быть обработаны инструментальными средствами.
Наиболее известными современными MDE-инициативами являются:
- разработка Object Management Group (OMG) под названием model-driven architecture (MDA);
- экосистема Eclipse для инструментов моделирования и программирования (Eclipse Modeling Framework).
Технологии, применяемые в рассмотренных моделях:
- репозитории;
- система контроля версий;
- система управления задачами;
- автосборки;
- автотесты;
- автодоставка.
Понятие браузера
Браузер - агент пользователя, позволяющий пользователю получать и читать гипертекст, просматривать содержание гипертекстовых узлов (обычно веб-страницы), перемещаться от одного узла к другому и взаимодействовать с информационным наполнением.
С помощью браузера любая команда (например, разработчиков) может воспользоваться современными технологиями, в том числе и применяемые в agile-моделях, такие как доступ к общему репозиторию, конференц-звонки и онлайн канбан доски и т.д.
Некоторые типы содержимого веб-страниц (изображения, тексты) могут содержать ссылки на другие страницы, расположенные в сети. С помощью браузера и гиперссылок пользователь обретает возможность быстро перемещаться по страницам сайта и находить нужную информацию. В глобальной сети браузеры используют для запроса, обработки, манипулирования и отображения содержания веб-сайтов. Многие современные браузеры также могут использоваться для обмена файлами с серверами FTP, а также для непосредственного просмотра содержания файлов многих графических форматов (gif, jpeg, png, svg), аудио-видео форматов (mp3, mpeg), текстовых форматов (pdf, djvu) и других файлов.
Главное предназначение браузера — передать информацию с сайта, на котором она содержится, пользователю. Процесс получения данных происходит следующим образом: в адресной строке браузера указывается URL сайта, на котором находится контент. Браузер пользователя посылает удаленному серверу запрос на получение информации, и, если таковая имеется, она передается в приложение. При этом происходит форматирование данных из языка разметки HTML в формат интерактивного документа.
Функциональные возможности браузеров постоянно расширяются и улучшаются благодаря конкуренции между их разработчиками и высоким темпом развития и внедрения информационных технологий. Со времени начала применения браузеров во Всемирной паутине в начале 1990-х годов, из простого средства просмотра текстовой информации браузер превратился в комплексное прикладное программное обеспечение для обработки данных и обеспечения интерфейса между информационными ресурсами и человеком.
Возможности и технологии управления объектной моделью документа (DOM)
DOM (от англ. Document Object Model — «объектная модель документа») — это не зависящий от платформы и языка программный интерфейс, позволяющий программам и скриптам получить доступ к содержимому HTML-, XHTMLи XML-документов, а также изменять содержимое, структуру и оформление таких документов. HTML - HyperText Markup Language, язык гипертекстовой разметки. XML - Extensible Markup Language, расширяемый язык разметки.
Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого представляет собой: • элемент; • атрибут; • текстовый; • графический или любой другой объект. Узлы связаны между собой отношениями «родительский-дочерний».
Модель DOM гарантирует правильную грамматику и правильное оформление документов. DOM трансформирует текстовый файл в абстрактное представление дерева узлов. Это позволяет полностью избежать таких проблем, как незакрытые или неправильно вложенные теги. Работая с документом XML при помощи этого метода, разработчик должен беспокоиться не о текстовом выражении документа, а только о связях типа родитель-потомок и об относящейся к этому информации. Кроме того, DOM предотвращает создание неправильных связей родитель-потомок в документе.
Модель DOM абстрагирует содержание от грамматики. Созданное моделью DOM дерево узлов - это логическое представление содержания файла XML, показывающее, какая информация в нем представлена и как ее фрагменты соотносятся друг с другом, вне непосредственной связи с грамматикой XML. Информация дерева узлов используется для обновления реляционной базы данных или для создания страницы HTML, и разработчики при этом не должны вникать в специфику языка XML.