Глава 2 ОПТИМИЗАЦИЯ ПРОГРАММНЫХ РАЗРАБОТОК
Глава 2
ОПТИМИЗАЦИЯ ПРОГРАММНЫХ РАЗРАБОТОК
2.1. ВЫБОР ОПТИМАЛЬНОГО ВАРИАНТА ПРОЕКТНОГО РЕШЕНИЯ
На разных этапах проектирования (особенно часто на начальных этапах) перед разработчиком встает задача выбора наилучшего варианта из множества допустимых проектных решений, которые удовлетворяют предъявленным требованиям.
Неизбежной платой за попытку получить решение в условиях неполной информации об объекте проектирования является возможность ошибочных решений. Поэтому в такой ситуации лицо, принимающее решение (ЛПР), должно вырабатывать такую стратегию в отношении принятия решений, которая хотя и не исключает возможность принятия неправильных решений, но сводит к минимуму связанные с этим нежелательные последствия. Для уменьшения неопределенности ЛПР может провести эксперимент, но это дорого и требует больших затрат времени. Поэтому ЛПР должно принять решение о форме, времени, уровне эксперимента.
Само по себе принятие решения есть компромисс. Принимая решение, необходимо взвешивать суждения о ценности, что включает рассмотрение многих факторов, в том числе экономических, технических, научных, эргономических, социальных и т. д.
Принять "правильное" решение означает выбор такой альтернативы из числа возможных, в которой с учетом всех разнообразных факторов будет оптимизирована общая ценность. Процесс принятия решения при оптимальном проектировании характеризуют следующие основные черты: наличие целей (показателей) оптимальности, альтернативных вариантов проектируемого объекта и учет существенных факторов при проектировании.
Понятие "оптимальное решение" при проектировании имеет вполне определенное толкование — лучшее в том или ином смысле проектное решение, допускаемое обстоятельствами. В подавляющем большинстве случаев одна и та же проектная задача может быть решена несколькими способами, приводящими не только к различным выходным характеристикам, но и классам программ. Самые универсальные программы — это текстовые (процессоры) редакторы, допускающие использование графики. Они позволяют оформлять исходные данные, осуществлять ручной набор обоснования решения с результатами расчета, производить вывод на печать. Для некоторых целей более предпочтительны электронные таблицы. Многих пользователей вполне устраивают интегрированные системы, включающие текстовый процессор, процессор электронных таблиц, графические процессоры (рисунков и деловой графики), систему управления базой данных (СУБД), системы модемной и сетевой связи пользователей. При этом одно из решений может уступать по одним показателям и превосходить остальные по другим. Может оказаться так, что разные решения вообще характеризуются разным набором показателей. В этих условиях трудно указать, какая программная система не только оптимальна, но даже предпочтительнее.
Наибольший ущерб приносят ошибки при выборе совокупности показателей качества. Пропуск одного показателя может оказаться трагическим. Чтобы не делать таких ошибок, надо накапливать базу знаний всех совокупностей показателей, которые были использованы при проектировании конкретных систем. С другой стороны, использование традиционных совокупностей показателей не позволяет выходить на новые изделия. Выход из этого положения: определенную долю в процессе проектирования отводить под творческий поиск.
База знаний совокупностей показателей должна состоять как из общих (общепрограммных), так и специальных (предметно-ориентированных) показателей. В настоящее время используют следующие классификации показателей:
1) показатели функционирования, характеризующие полезный эффект от использования программной системы по назначению, и область применения (например, библиотечная информационно-поисковая система характеризуется следующими показателями функционирования: максимальным объемом хранимых литературных источников; максимальным количеством одновременно работающих пользователей; списком обрабатываемых запросов; временем реакции на каждый запрос при максимальном количестве пользователей; временем ввода одной единицы хранения; возможным составом оборудования и др.);
2) показатели надежности, характеризующие свойства программной системы сохранять свою работоспособность во времени;
3) показатели технологичности, характеризующие эффективность конструкторско-технологических решений для обеспечения высокой производительности труда при изготовлении и сопровождении;
4) эргономические показатели, характеризующие систему человек — изделие — среда и учитывающие комплекс гигиенических, антропологических, физиологических и психических свойств человека, проявляющихся в производственных и бытовых условиях;
5) эстетические показатели, характеризующие внешние свойства системы: выразительность, оригинальность, гармоничность, целостность, соответствие среде и стилю;
6) показатели стандартизации и унификации, характеризующие степень использования в программной системе стандартизированных изделий и уровень унификации его частей;
7) патентно-правовые показатели, определяющие число используемых патентов, степень патентной защиты, патентную чистоту;
8) экономические показатели, характеризующие затраты на разработку, изготовление, эксплуатацию программной системы, а также экономическую эффективность эксплуатации.
Среда проекта характеризуется возможностями капиталовложения, возможностями коллектива-производителя, научно-техническими достижениями, социальной и природной средой.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Глава 1. Что такое клиентская оптимизация?
Глава 1. Что такое клиентская оптимизация? 1.1. Цели и задачи оптимизации Каждая веб-страница состоит из основного HTML-файла и набора внешних ресурсов. Говоря о размере страницы (или сайта), очень часто имеют в виду размер именно первого файла, что, естественно,
Глава 6. CSS оптимизация
Глава 6. CSS оптимизация 6.1. Оптимизируем CSS expressions CSS-производительность не находится сейчас в фокусе внимания при разработке клиентских приложений для браузера. Очень часто о некоторых ключевых моментах просто не знают (или забывают), и это может привести к появлению
Глава 7. Оптимизация JavaScript
Глава 7. Оптимизация JavaScript 7.1. Кроссбраузерный window.onload Отложенная загрузка скриптов волнует общественность уже давно, почти 10 лет, — атрибут defer, призванный ее обеспечить, был добавлен в спецификацию еще в прошлом столетии. Однако проблема так и остается
Глава 22 Испытание и верификация программных продуктов
Глава 22 Испытание и верификация программных продуктов Мы уже неоднократно затрагивали тему испытания средств безопасности. В главе 7 обсуждался выбор криптографических примитивов. Там же была выдвинута идея, что наилучшим способом проверки надежности криптографии
Глава 23 Будущее программных продуктов
Глава 23 Будущее программных продуктов Напрашивается закономерный вопрос: «Какие технологии помогут созданию продуктов, обеспечивающих безопасность, в будущем?» Конечно, криптография постоянно улучшается. Несомненно, мы все лучше и лучше проектируем брандмауэры. Будет
Глава 10. Установка и обновление программных пакетов
Глава 10. Установка и обновление программных пакетов 10.1. Два способа установки ПО Необходимость в установке новых программных пакетов под LINUX возникает в двух основных случаях: • когда появляется новая версия одного из уже установленных у вас пакетов; • когда возникает
Глава 7 Оптимизация Windows
Глава 7 Оптимизация Windows В данной главе речь пойдет о параметрах реестра, с помощью которых можно повысить скорость или качество работы различных компонентов Windows XP, например таких, как сетевое соединение и стеки протоколов, а также скорость самой операционной системы.
Глава 4 Внутренняя оптимизация
Глава 4 Внутренняя оптимизация При работе с крупными проектами внутренние факторы приобретают приоритетное значение. Даже небольшие изменения в шаблонах сайта могут существенно увеличить трафик из поисковых
Глава 5 Оптимизация
Глава 5 Оптимизация …ты скажи ему, что во всякой вещи надо соблюдать меру… Уильям Шекспир. Много шума из ничего «Любая задача выполнима, если она поддается измерению». Давайте поверим в данное утверждение и постараемся правильно выбрать показатели, которые будем
Глава 5 Оптимизация работы в Интернете
Глава 5 Оптимизация работы в Интернете Чем больше времени вы проводите в Интернете, тем чаще возникает необходимость оптимизации работы с ним. В понятие «оптимизация» входит множество заданий. Это и увеличение скорости передачи данных, и подсчет сетевого трафика (как
Глава 5. Выманивание денег с помощью специальных программных средств
Глава 5. Выманивание денег с помощью специальных программных средств Существует категория злоумышленников, которые обладают очень неплохими знаниями в сфере IT-технологий. Это позволяет им практически безнаказанно заниматься мошенничеством, вымогательством, шантажом и
Глава 6 Оптимизация
Глава 6 Оптимизация Если с увеличением объема вашей базы данных она стала работать слишком медленно, зачастую самый простой путь решения этой проблемы – увеличение мощности аппаратной платформы сервера. Однако повысить быстродействие системы можно и без наращивания
Глава 7 Конвертирование баз данных из других программных сред
Глава 7 Конвертирование баз данных из других программных сред Мы уже говорили о том, что по мере появления новых, более совершенных СУБД все актуальнее становится проблема использования данных, которые накоплены в информационных банках предыдущих, в том числе и морально
1.5. ОСОБЕННОСТИ ПРОГРАММНЫХ РАЗРАБОТОК
1.5. ОСОБЕННОСТИ ПРОГРАММНЫХ РАЗРАБОТОК Томас Кун в 1977 г. определил термин «парадигма» как свод норм научного мышления. Парадигма — это правило (modus operandi) развития научного знания. Оно в течение определенного времени дает научному сообществу модель постановки проблем и их
Глава 6 АРХИТЕКТУРА ПРОГРАММНЫХ СИСТЕМ
Глава 6 АРХИТЕКТУРА ПРОГРАММНЫХ СИСТЕМ 6.1. ПОНЯТИЕ АРХИТЕКТУРЫ ПРОГРАММНОЙ СИСТЕМЫ Разработка архитектуры системы — это процесс разбиения большой системы на более мелкие части. Для обозначения этих частей придумано множество названий: программы, компоненты,
Глава 12 МЕНЕДЖМЕНТ ПРОГРАММНЫХ РАЗРАБОТОК
Глава 12 МЕНЕДЖМЕНТ ПРОГРАММНЫХ РАЗРАБОТОК 12.1. УПРАВЛЕНИЕ РАЗРАБОТКОЙ ПРОГРАММНЫХ СИСТЕМ Управление разработкой программных систем (software management) — это деятельность, направленная на обеспечение необходимых условий для работы коллектива разработчиков программного