Повторяемость при разработке ПО
Повторяемость при разработке ПО
В поиске идеала абстрактного модуля следует рассмотреть суть процесса конструирования ПО. Наблюдая за разработкой, нельзя не обратить внимания на периодически повторяющиеся действия в этом процессе. Вновь и вновь программисты "сплетают" программу из множества стандартных элементов: сортировка, поиск, считывание, запись, сравнение, обход по дереву, - все повторяется. Опытным разработчикам знакомо это ощущение de_ja vu (дежавю - ощущение, что настоящее уже встречалось в прошлом), столь характерное для их профессии.
Чтобы оценить эту ситуацию (для тех, кто разрабатывает ПО или руководит такой разработкой), полезно ответить на следующий вопрос:
Сколько раз за последние шесть месяцев вы, или те, кто работает на вас, разрабатывали некоторый вариант табличного поиска?
Табличный поиск понимается здесь как выяснение того, содержится ли заданный элемент x в таблице t. Эта задача имеет много вариантов в зависимости от типа элементов, структуры данных, представляющей t, а также выбранного алгоритма поиска.Вполне возможно, что вы или ваши коллеги многократно искали и находили собственное решение этой задачи. Наблюдатель со стороны посчитает табличный поиск легкодоступным и очевидным объектом применения повторно используемых компонентов. Ведь это одна из наиболее широко исследованных областей в компьютерных науках, которой посвящены сотни статей и многие книги, начиная с тома 3 знаменитого трактата Кнута. Базовый университетский курс по информатике на всех соответствующих факультетах включает в себя наиболее важные алгоритмы и структуры данных. Несомненно, в этой тематике нет ничего непостижимого. Кроме того:
[x]. Как уже отмечалось, вряд ли возможно создать полезную систему ПО, в которой не будут содержаться некоторые виды табличного поиска.
[x]. Как будет подробнее показано ниже, большинство алгоритмов поиска следуют общему образцу, что, по-видимому, обеспечивает идеальную основу для повторно используемого решения.(См. библиографические ссылки в конце этой лекции.)
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
1.5. Применение в разработке приложений
1.5. Применение в разработке приложений Пользователи обычно не знают, какие подходы применяются при разработке, как настроен сервер, какие клиентские и серверные средства разработки используются. Для них лишь важно, насколько сайт полезный, удобный и быстрый. Задача же
4.7. Рекомендации по разработке диаграмм вариантов использования
4.7. Рекомендации по разработке диаграмм вариантов использования Главное назначение диаграммы вариантов использования заключается в формализации функциональных требований к системе с помощью понятий соответствующего пакета и возможности согласования полученной
Дополнительные советы по разработке шахты
Дополнительные советы по разработке шахты • Имейте при себе блоки камня или грязи, чтобы заблокировать поток лавы или воды.• Чтобы сразу избавиться от целого столба из блоков гравия, уничтожьте нижний блок и быстро поместите на его место факел. Этот факел уничтожит
Когда следует обращаться в компанию по разработке сайтов
Когда следует обращаться в компанию по разработке сайтов Сейчас мы говорим только о сайтах коммерческой направленности, не затрагивая другие виды интернет-ресурсов. Если у вас есть своя фирма, вам может понадобиться один из трех видов сайтов:Корпоративный сайт. Это
Принцип уникальности в разработке интернет-сайтов
Принцип уникальности в разработке интернет-сайтов Представьте, что вы строите многоэтажный дом, а потом театр. К каждому из этих объектов применяются разный подход и разные технологии. Так же и с сайтами. В зависимости от специфики бизнеса сайты могут отличаться
15.4.2. Утилита make в разработке не на C/C++
15.4.2. Утилита make в разработке не на C/C++ Программа make может оказаться полезной не только для программ на C/C++. Языки сценариев, подобные описанным в главе 14, могут не требовать традиционных этапов компиляции и компоновки, однако часто существуют другие виды зависимостей, с
15.4.2. Утилита make в разработке не на C/C++
15.4.2. Утилита make в разработке не на C/C++ Программа make может оказаться полезной не только для программ на C/C++. Языки сценариев, подобные описанным в главе 14, могут не требовать традиционных этапов компиляции и компоновки, однако часто существуют другие виды зависимостей, с
Rolls-Royce будет использовать 3D-печать при разработке реактивных двигателей Андрей Васильков
Rolls-Royce будет использовать 3D-печать при разработке реактивных двигателей Андрей Васильков Опубликовано 18 ноября 2013 Глава подразделения по технологическим стратегиям Rolls-Royce Хеннер Вапенханс (Henner Wapenhans) сообщил в интервью изданию Techworld, что
Общие рекомендации к разработке дидактических материалов с использованием интерактивных досок
Общие рекомендации к разработке дидактических материалов с использованием интерактивных досок При создании и демонстрации презентаций (флипчартов), выполненных с помощью программного обеспечения интерактивной доски и предназначенных для работы с учащимися, должны
Практикум для учителей начальных классов по разработке интерактивных заданий
Практикум для учителей начальных классов по разработке интерактивных заданий В городских образовательных учреждениях количество учителей начальных классов, как правило, варьируется от 8 до 16 человек, которые вместе представляют собой школьную команду, объединенную
Сергей Приданцев («Комстар-ОТС») о разработке телеприставки Андрей Письменный
Сергей Приданцев («Комстар-ОТС») о разработке телеприставки Андрей Письменный Опубликовано 22 июля 2010 года В компании «Комстар» разрабатывают собственную телеприставку, которая позволит просматривать веб-сайты на экране телевизора. Известно, что
Фирмы по разработке ПО и их стратегии
Фирмы по разработке ПО и их стратегии У фирмы по разработке ПО всегда существует искушение создавать решения, преднамеренно не удовлетворяющие критериям повторного использования, из опасения не получить следующий заказ, - поскольку если возможности уже приобретенного
8.2. ВВЕДЕНИЕ В ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД К РАЗРАБОТКЕ ПРОГРАММ
8.2. ВВЕДЕНИЕ В ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД К РАЗРАБОТКЕ ПРОГРАММ В основу структурного мышления положены структуризация и декомпозиция окружающего мира. Задача любой сложности разбивается на подзадачи, а те в свою очередь разбиваются далее и т. д., пока каждая