Что такое хорошая программа и ее основные свойства? Основные трудности и проблемы программной инженерии
Удовлетворять функциональным требованиям. Прежде всего, хорошая программа должна делать то, что ожидает от нее заказчик – т.е. удовлетворять требованиям заказчика. Такие требования называют функциональными. Но кроме функциональных требований, существует еще ряд общих характеристик, которым в той или иной степени должна обладать каждая программа. Эти характеристики принято называть нефункциональными требованиями. К нефункциональным требованиям относят:
Сопровождаемость (maintainability). Сопровождаемость означает, что программа должна быть написана с расчетом на дальнейшее развитие. Это критическое свойство системы, т.к. изменения ПО неизбежны вследствие изменения бизнеса. Сопровождение программы выполняют, как правило, не те люди, которые ее разрабатывали. Сопровождаемость включает такие элементы как наличие и понятность проектной документации, соответствие проектной документации исходному коду, понятность исходного кода, простота изменений исходного кода, простота добавления новых функций.
Надежность (dependability). Надежность ПО включает такие элементы как:
Отказоустойчивость – возможность восстановления программы и данных в случае сбоев в работе
Безопасность – сбои в работе программы не должны приводить к опасным последствиям (авариям)
Защищенность от случайных или преднамеренных внешних воздействий (защита от дурака, вирусов, спама).
Эффективность (efficiency). ПО не должно впустую тратить системные ресурсы, такие как память, процессорное время, каналы связи. Поэтому эффективность ПО оценивается следующими показателями: время выполнения кода, загруженность процессора, объем требуемой памяти, время отклика и т.п.
Удобство использования (usability). ПО должно быть легким в использовании, причем именно тем типом пользователей, на которых рассчитано приложение. Это включает в себя интерфейс пользователя и адекватную документацию. Причем, пользовательский интерфейс должен быть не интуитивно, а профессионально понятным пользователю.
Следует отметить, что реализация нефункциональных требований часто требует больших затрат, чем функциональных. Так, сопровождаемость требует значительных усилий по поддержанию соответствия проекта исходному коду и применения специальных методов создания модифицируемых программ. Надежность – дополнительных средств восстановления системы при сбоях. Эффективность – поиска специальных архитектурных решений и оптимизации кода. А удобство – проектирования не «интуитивно» понятного, а профессионально понятного интерфейса пользователя.
Основные трудности
Трудностей достаточно много. Все они в той или иной степенью связаны с главной проблемой программной инженерии: поиском универсального метода и процесса, пригодного для создания программного продукта любого типа в любых условиях. Здесь главная проблема – меняющиеся условия. В этой связи разработчики ПО сталкиваются со следующими трудностями:
Наследование ранее созданного ПО (legacy systems). Существует достаточно много систем, созданных много лет назад, морально устаревших, но продолжающих работать. Проблема наследования таких систем состоит в их сопровождении – поддержке и развитии.
Разнородность программных систем. ПО должно работать в распределенных сетях, на разнородном оборудовании, в разных средах, под управлением различных операционных систем.
Сокращение времени на разработку. Запросы рынка требования к программным системам меняются очень быстро. Суть проблемы состоит в том, чтобы сократить время разработки ПО без снижения его качества.
Эти трудности часто оказываются связанными между собой. Задача разработки сетевого варианта старой локальной базы данных в ограниченные сроки является достаточно типичной.
Свойства АИС
В научно-технической литературе часто используются термины «система», «система управления», «Автоматизированная информационная система» и т.д.
Под системой понимается совокупность связанных между собой и с внешней средой элементов или частей, функционирование которых направлено на получение конкретного полезного результата.
В соответствии с этим определением практически каждый экономический объект можно рассматривать как систему, стремящуюся в своем функционировании к достижению определенной цели. В качестве примера можно назвать систему образования, энергетическую, транспортную и т.д.
Для системы характерны следующие основные свойства:
Сложность – она зависит от множества входящих в систему компонентов, их структурного взаимодействия, а также от сложности внутренних и внешних связей и динамичности
Делимость – означает, что система состоит из ряда подсистем или элементов, выделенных по определенному признаку, отвечающему конкретным целям и задачам
Целостность – означает, что функционирование множества элементов системы подчинено единой цели
Многообразие элементов и различие их природы – связано с функциональной специфичностью и автономностью элементов системы. Например, в материальной системе объекта, связанной с преобразованием вещественно-энергетических ресурсов, могут быть выделены такие элементы, как сырье, основные и вспомогательные материалы, топливо, полуфабрикаты, запасные части, готовая продукция, трудовые и денежные ресурсы.
Структурированность – определяет наличие установленных связей и отношений между элементами внутри системы, распределение элементов системы по уровням иерархии
Управление – важнейшая функция, без которой немыслима целенаправленная деятельность любой социально-экономической, организационно-производственной системы (предприятия, организации, территории).
Систему, реализующую функции управления, называют системой управления. Важнейшими функциями, реализуемыми этой системой, являются прогнозирование, планирование, учет, анализ, контроль и регулирование.
Управление связано с обменом информацией между компонентами системы, а также системы с окружающей средой. В процессе управления получают сведения о состоянии системы в каждый момент времени, о достижении или не достижении заданной цели с тем, чтобы воздействовать на систему и обеспечить выполнение управленческих решений.
Таким образом, любой системе управления экономическим объектом соответствует своя информационная система, называемая экономической информационной системой.
Экономическая информационная система – это совокупность внутренних и внешних потоков прямой и обратной информационной связи экономического объекта, методов, средств, специалистов, участвующих в процессе обработки информации и выработке управленческих решений.
Информационная система является системой информационного обслуживания работников управленческих служб и выполняет технологические функции по накоплению, хранению, передаче и обработке информации. Она складывается, формируется и функционирует в регламенте, определенном методами и структурой управленческой деятельности, принятой на конкретном экономическом объекте, реализует цели и задачи, стоящие перед ним.
Современный уровень информатизации общества предопределяет использование новейших технических, технологических, программных средств в различных информационных системах экономических объектов.
Классификация АИС
Автоматизированная информационная система (АИС) – представляет собой совокупность информации, экономико-математических методов и моделей, технических, программных, технологических средств и специалистов, предназначенную для обработки информации и принятия управленческих решений.
Создание АИС способствует повышению эффективности производства экономического объекта и обеспечивает качество управления. Наибольшая эффективность АИС достигается при оптимизации планов работы предприятий, фирм и отраслей, быстрой выработке оперативных решений, четком маневрировании материальными и финансовыми ресурсами и т.д. Поэтому процесс управления в условиях функционирования автоматизированных информационных систем основывается на экономико-организационных моделях, более или менее адекватно отражающих характерные структурно-динамические свойства объекта. Адекватность модели означает прежде всего ее соответствие объекту в смысле идентичности поведения в условиях, имитирующих реальную ситуацию, поведение моделируемого объекта в части существенных для поставленной задачи характеристик и свойств. Безусловно, полного повторения объекта в модели быть не может, однако несущественными для анализа и принятия управленческих решений деталями можно пренебречь. Модели имеют собственную классификацию, подразделяясь на вероятностные и детерминированные, функциональные и структурные. Эти особенности модели порождают разнообразие типов информационных систем.
Опыт создания АИС, внедрение в практику экономической работы оптимизационных методов, формализация ситуаций производственно-хозяйственных процессов, оснащение государственных и коммерческих структур современными вычислительными средствами коренным образом видоизменили технологию информационных процессов в управлении.
АИС разнообразны и могут быть классифицированы по ряду признаков:
по сфере функционирования объекта управления: АИС промышленности, АИС сельского хозяйства, АИС транспорта, АИС связи и т.д.
по виду процессов управления:
- АИС управления технологическими процессами – это человеко-машинные системы, обеспечивающие управление технологическими устройствами, станками, автоматическими линиями.
- АИС управления организационно-технологическими процессами – представляют собой многоуровневые системы, сочетающие АИС управления технологическими процессами и АИС управления предприятиями.
- для АИС организационного управления объектом служат производственно-хозяйственные, социально-экономические функциональные процессы, реализуемые на всех уровнях управления экономикой, в частности:
банковские АИС
АИС фондового рынка
Финансовые АИС
Страховые АИС
Налоговые АИС
АИС таможенной службы
Статистические АИС
АИС промышленных предприятий и организаций (особое место по значимости и распространенности в них занимают бухгалтерские АИС) и др.
- АИС научных исследований обеспечивают высокое качество и эффективность межотраслевых расчетов и научных опытов. Методической базой таких систем служат экономико-математические методы, технической базой – самая разнообразная вычислительная техника и технические средства для проведения экспериментальных работ моделирования. Как организационно-технологические системы, так и системы научных исследований могут включать в свой контур системы автоматизированного проектирования работ (САПР).
- Обучающие АИС получают широкое распространение при подготовке специалистов в системе образования, при переподготовке и повышении квалификации работников разных отраслей.
По уровню в системе государственного управления: (все эти АИС одновременно являются системами организационного управления, но уже следующего – более высокого уровня иерархии)
- Отраслевые АИС функционируют в сферах промышленного и агропромышленного комплексов, в строительстве, на транспорте. Эти системы решают задачи информационного обслуживания аппарата управления соответствующих ведомств.
- Территориальные АИС предназначены для управления административно-территориальными районами. Деятельность территориальных систем направлена на качественное выполнение управленческих функций в регионе, формирование отчетности, выдачу оперативных сведений местным государственным и хозяйственным органам.
- Межотраслевые АИС являются специализированными системами функциональных органов управления национальной экономикой (банковских, финансовых, снабженческих, статистических и др.). Имея в своем составе мощные вычислительные комплексы, межотраслевые многоуровневые АИС обеспечивают разработку экономических и хозяйственных прогнозов, государственного бюджета, осуществляет контроль результатов и регулирование деятельности всех звеньев хозяйства, а также контроль наличия и распределения ресурсов.
Воспользуйтесь поиском по сайту: