Планирование в процессе конструирования приложения, Политика управления сложностью при проектировании ПО - Тактическое и оперативное планирование разработки интернет-приложения
Итак, когда актуальные части тактического плана разбиты на конкретные индивидуальные задачи, каждая задача закрепляется за конкретным разработчиком. Чаще всего, на каждую конкретную задачу назначается только один разработчик, который получает целый комплекс задач:
- - Кодирование программного решения конкретной заданной задачи - Тестирование созданного блока (может назначаться "тестировщикам") - Интеграция блока в систему - Тестирования системы с новым блоком (может назначаться "тестировщикам")
Когда все части плана распределены между разработчиками, неизбежно возникает необходимость дополнительной координации действий разработчиков, разрешения конфликтов которые стали очевидны только после тестов, исправления ошибок и поддержки актуальности спецификаций. Поэтому оперативное планирование и корректировка тактических планов продолжается во время конструирования приложения.
Политика управления сложностью при проектировании ПО
Программные проекты редко терпят крах по техническим причинам. Чаще всего провал объясняется неадекватной выработкой требований, неудачным планированием или неэффективным управлением. Если же провал обусловлен все-таки преимущественно технической причиной, очень часто ею оказывается неконтролируемая сложность. Иначе говоря, приложение становится таким сложным, что разработчики престают по-настоящему понимать, что же оно делает. Если работа над проектом достигает момента, после которого уже никто не может полностью понять, как изменение одного фрагмента программы повлияет на другие фрагменты, прогресс прекращается.
Управление сложностью -- самый важный технический аспект разработки ПО.
Сложность -- не новинка в мире разработки ПО. Один из пионеров информатики Эдсгер Дейкстра обращал внимание на то, что компьютерные технологии -- единственная отрасль, заставляющая человеческий разум охватывать диапазон, простирающийся от отдельных битов до нескольких сотен мегабайт информации, что соответствует отношению 1 к 109, или разнице в девять порядков. Такое гигантское отношение просто ошеломляет. Дейкстра выразил это так: "По сравнению с числом семантических уровней средняя математическая теория кажется почти плоской. Создавая потребность в глубоких концептуальных иерархиях, компьютерные технологии бросают нам абсолютно новый интеллектуальный вызов, не имеющий прецедентов в истории". Разумеется, за прошедшее с 1989 г. время сложность ПО только выросла, и сегодня отношение Дейкстры вполне может характеризоваться 15 порядками.
Дейкстра еще в 1972 году писал, что ни один человек не обладает интеллектом, способным вместить все детали современной компьютерной программы. Вместо этого мы должны попытаться организовать программы так, чтобы можно было безопасно работать с их отдельными фрагментами по очереди. Целью этого является минимизация объема программы, о котором нужно думать в конкретный момент времени.
На уровне архитектуры ПО сложность проблемы можно снизить, разделив систему на подсистемы. Несколько несложных фрагментов информации понять проще, чем один сложный. В разбиении сложной проблемы на простые фрагменты и заключается цель всех методик проектирования ПО. Чем более независимы подсистемы, тем безопаснее сосредоточиться на одном аспекте сложности в конкретный момент времени. Грамотно определенные объекты разделяют аспекты проблемы так, чтобы можно было решать их по очереди. Пакеты обеспечивают такое же преимущество на более высоком уровне агрегации.
Стремление к краткости методов программы помогает снизить нагрузку на интеллект. Этому же способствует написание программы в терминах проблемной области, а не низкоуровневых деталей реализации, а также работа на самом высоком уровне абстракции.
Суть сказанного в том, что программисты, компенсирующие изначальные ограничения человеческого ума, пишут более понятный и содержащий меньшее число ошибок код. Чаще всего причинами неэффективности являются:
- - сложное решение простой проблемы; - простое, но неверное решение сложной проблемы; - неадекватное сложное решение сложной проблемы.
Как указал Дейкстра, сложность современного ПО обусловлена самой его природой, поэтому, как бы вы ни старались разработчики, они все равно столкнутся со сложностью, присущей самой проблеме реального мира. Исходя из этого, можно предложить двойственный подход к управлению сложностью:
- - стараться свести к минимуму объем существенной сложности, с которым придется работать в каждый конкретный момент времени; - сдерживать необязательный рост несущественной сложности.
Такая политика управления сложностью при разработке обычно выражается аббревиатурами KISS &; DRY, которые переводятся как "Делай короче и проще" (Keep It Short and Simple) и "Не повторяй себя" (Don't Repeat Yourself).
Все остальные аспекты проектирования ПО вторичны, по отношению к управлению сложностью.
Похожие статьи
-
Переход от тактического плана к оперативному, осуществляется путем уточнения разделов тактического плана разработки до конкретных элементов системы....
-
Процесс - это последовательная смена состояний объекта во времени. Процесс планирования состоит из следующих этапов: - Определение миссии, целей и задач...
-
Тактическое планирование разработки Подготовка к проекту - одно из главных условий эффективного программирования. Объем планирования зависит от масштаба...
-
Основные проблемы разработки интернет приложений Стартап или стартап-компания -- компания с короткой историей операционной деятельности. Как правило,...
-
После того как тактический план завершен, необходимо конкретизировать его до реальных действий членов организации. Это задача оперативного планирования -...
-
Когда индивидуальный стратегический план интернет приложения уже определен, следует этап разработки тактического и оперативного планов разработки....
-
Планирование как важнейшая функция управления Планирование -- это вид деятельности, связанный с постановкой целей, задач и действий в будущем,...
-
Архитектура - Тактическое и оперативное планирование разработки интернет-приложения
Архитектура -- это высокоуровневая часть проекта приложения, каркас, состоящий из деталей проекта. Архитектуру также называют "архитектурой системы",...
-
Требования - Тактическое и оперативное планирование разработки интернет-приложения
Разработка предварительных требований или условий, называется спецификацией и является разделом тактического планирования потому, что на основе данных...
-
Разработка политики безопасности организации - Основные понятия политики информационной безопасности
Разработка политики безопасности ведется для конкретных условий функционирования информационной системы. Как правило, речь идет о политике безопасности...
-
В ходе проектирования объектов зачастую происходит многократное повторение различных операций проектирования. Основная причина заключается в том, что...
-
Основные принципы построения САПР - Состав систем автоматизированного проектирования
Разработка САПР представляет собой крупную научно-техническую проблему, а ее внедрение требует значительных капиталовложений. Накопленный опыт позволяет...
-
Для многих компаний внутрифирменная система информации решает задачи организации технологического процесса: прежде всего, обеспечения предприятий...
-
Выбор средств реализации информационной системы Названные в параграфе 1.4. настоящей работы задачи могут быть решены тремя типами средств автоматизации:...
-
Управление задачами в PVM - Администрирование параллельных процессов
Управление задачами в PVM осуществляется на основе некоторого набора функций. Существует два варианта (два стиля) написания параллельных задач для PVM. В...
-
Основные понятия и определения Прежде чем приступить к обсуждению вопросов оптимизации, введем ряд определений и рассмотрим основные понятия. Оптимизация...
-
Разработать и создать аналог системной утилиты "Диспетчер задач" по дисциплине "Системное программирование". "Диспетчер задач" должен содержать следующие...
-
Презентационная аналитика, Что такое Dashboard - Разработка аналитического приложения
Раньше при решении задач аналитических задач программирование было панацеей от всех проблем. В последние годы для выполнения операций анализа...
-
Общие требования к разработке графического интерфейса. Под графическим интерфейсом пользователя (Graphical User Interface -- GUI) -- вид...
-
В данной части работы будут рассмотрены основные бизнес-процессы этапа разработки программного обеспечения в рамках учебных проектов в университете. В...
-
Введение - Тактическое и оперативное планирование разработки интернет-приложения
Планирование стратегический интернет приложение Интернет приложения - очень актуальная сфера, по нескольким причинам: 1. Интернет появился всего 20 лет...
-
Структура и процесс функционирования системы управления базами данных - Разработка базы данных
СУБД является прикладным программным обеспечением, предназначенным для решения конкретных прикладных задач и выполнения системных функций, расширяющих...
-
Последовательность действий при принятии решения о внедрении корпоративной информационной системы С чего начать разработку решения? Любая промышленная...
-
Назначение и технологические функции автоматизированной системы оперативного управления перевозками Автоматизированная система оперативного управления...
-
Процессы и потоки - Разработка мобильного приложения расчета и учета оплаты коммунальных услуг
Когда хотя бы один из компонентов приложения (или все приложение) будет востребован, система Android запускает процесс, который содержит единственный...
-
Для ускорения процесса конструирования регулятора в пространстве состояний в Matlab была разработана функция, которая, при должной настройке, позволяет...
-
Кибернетические принципы управления и их значение в современном менеджменте
Для выяснения сущности управления и для рассмотрения проблем его организации и эффективности важное значение, имеет установление связи между теорией...
-
Математическое обеспечение позволяет использовать методы автоматизированного поиска оптимальных вариантов при проектировании системы. Часто при решении...
-
В основу успешного решения задач учета и управления автоперевозками положен комплексный подход к автоматизации предприятий, сочетающий в себе...
-
Организационная система управления проектами
Контрольная работа Тема 9 В зависимости от специфики, размера и сложности программного проекта в его реализации могут принимать участие от одной до...
-
При разработке практически всех инструментальных средств за основу принимается методология автоматизации проектирования на базе использования прототипов....
-
Информация с точки зрения информационной безопасности обладает следующими категориями: * конфиденциальность -- гарантия того, что конкретная информация...
-
Модели транзакций - Банки и базы данных. Системы управления базами данных
Под транзакциями понимаются действия, производимые над базой данных и переводящие ее из одного согласованного состояния в другое согласованное состояние....
-
Одним из наиболее важных аспектов в учебных проектах, как и любых других, являются сроки их сдачи. Равномерное распределение задач с учетом...
-
Этапы компьютерного моделирования при исследовании термодинамических процессов в композиционных материалах Композиционные материалы, состоящие из...
-
Планирование., Интерпретация., Контроль и управление. - Экспертные системы
Под планированием понимается нахождение планов действий, относящихся к объектам, способным выполнять некоторые функции. В таких экспертных системах...
-
Даталогическое проектирование - Банки и базы данных. Системы управления базами данных
Даталогической моделью БД называется модель логического уровня, построенная в рамках конкретной СУБД, в среде которой проектируется БД. Описание...
-
При формулировании задачи в одном из пространств возникает необходимость перехода к тождественной постановки в другом. К сожалению, не всегда...
-
Для слоя приложений чаще всего важен выбор не самого приложения, а той технологии, в соответствии с которой приложение создается. Это связано с тем, что...
-
Согласно рассмотренным практикам и методологиям можно составить общее описание разрабатываемой модели разработки ПО в рамках учебных проектов. Основным...
Планирование в процессе конструирования приложения, Политика управления сложностью при проектировании ПО - Тактическое и оперативное планирование разработки интернет-приложения