Методы проектирования программных продуктов
К концу 20 века не только существенно возросла сложность проектируемых объектов, но и их воздействие на общество и окружающую среду, тяжкость последствий аварий из-за ошибок разработки и эксплуатации, высокие требования к качеству и цене, сокращению сроков выпуска новой продукции. Необходимость учета этих обстоятельств заставляла вносить изменения в традиционный характер и методологию проектной деятельности.
При создании объектов их уже необходимо было рассматривать в виде систем, то есть комплекса взаимосвязанных внутренних элементов с определенной структурой, широким набором свойств и разнообразными внутренними и внешними связями. Сформировалась новая проектная идеология, получившая название системного проектирования.
Системное проектирование комплексно решает поставленные задачи, принимает во внимание взаимодействие и взаимосвязь отдельных объектов-систем и их частей как между собой, так и с внешней средой, учитывает социально-экономические и экологические последствия их функционирования. Системное проектирование основывается на тщательном совместном рассмотрении объекта проектирования и процесса проектирования, которые в свою очередь включают ещё ряд важных частей
Принципы системного проектирования
Системное проектирование должно базироваться на системном подходе. В настоящее время ещё нельзя утверждать, что известны их полные состав и содержание применительно к проектной деятельности, однако можно сформулировать наиболее важные из них:
o деятельность должна быть целенаправленной, устремленной на удовлетворение действительных потребностей реального потребителя или определенной социальной, возрастной или иной групп людей;
o деятельность должна быть целесообразной. Важно вскрыть причины, препятствующие использованию существующих объектов для удовлетворения новых потребностей, выявить вызывающие их ключевые противоречия и сконцентрировать усилия на решении главных задач;
o деятельность должна быть обоснованной и эффективной. Разумным будет использование не любого решения задачи, а поиск оптимального варианта;
- Единство составных частей:
o целесообразно любой объект, сложный ли он или простой, рассматривать как систему, внутри которой можно выделить логически связанные более простые части — подсистемы, единство частных свойств которых и образует качественно новые свойства объекта-системы;
o разрабатываемые объекты предназначены для людей, ими создаются и эксплуатируются. Поэтому человек также обязан рассматриваться в качестве одной из взаимодействующих систем. При этом должно приниматься во внимание не только физическое взаимодействие, но и духовно-эстетическое воздействие;
o внешняя, или как её ещё называют — жизненная среда, также должна рассматриваться в качестве системы, взаимосвязанной с проектируемым объектом;
- Изменяемость во времени:
o учёт этапов жизненного цикла объекта;
o учёт истории и перспектив развития и применения разрабатываемого объекта, а также областей науки и техники, на достижениях которых базируются соответствующие разработки.
Нисходящее и восходящее проектирование
Ведение разработки объекта последовательно от общих черт к детальным называется нисходящим проектированием. Его результатом будут требования к отдельным частям и узлам. Возможен ход разработки от частного к общему, что образует процесс восходящего проектирования. Такое проектирование встречается, если одна или несколько частей уже являются готовыми (покупными или уже разработанными) изделиями.
Нисходящее и восходящее проектирование обладают своими достоинствами и недостатками. Так, при нисходящем проектировании возможно появление требований, впоследствии оказывающихся нереализуемыми по технологическим, экологическим или иным соображениям. При восходящем проектировании возможно получение объекта, не соответствующего заданным требованиям. В реальной жизни, вследствие итерационного характера проектирования, оба его вида взаимосвязаны.
Например, разрабатывая при нисходящем проектировании автомобиль (от общей схемы к его частям, например, — к мотору), необходимо увязать общую компоновку с размерами и мощностью уже выпускаемых двигателей. В противном случае придётся разрабатывать применительно к данной компоновке новый двигатель, либо изменять первоначальные варианты его расположения или схему компоновки всего автомобиля.