
Малый ШАД_Что такое программная инженерия_3.10.15
.pdf
...из подходящих
компонент...
1-Oct-15 |
Software Engineering |
21 |

...но разные...
1-Oct-15 |
Software Engineering |
22 |

...или разрабатывают
радиоприемники...
1-Oct-15 |
Software Engineering |
23 |

...разные, но из стандартных компонент...
1-Oct-15 |
Software Engineering |
24 |

...или всякие вычислительные устройства...
1-Oct-15 |
Software Engineering |
25 |

Основное содержание Software Engineering Conference
•Более 50 специалистов в области software из 11 стран;
–Пользователи;
–Производители;
–Преподаватели университетов – в частности E.W. Dijkstra (чем он знаменит?) .
•Основные темы обсуждений на конференции:
–Взаимосвязь Software и Hardware;
–Разработка Software (design);
–Производство, или реализация Software (implementation);
–Распространение Software (distribution);
–Обслуживание (сопровождение) Software (service on software).
•Обсуждались и более общие (менее технические) вопросы:
–Пути достижения должной надежности систем обработки данных;
–Проблемы управления большими программными проектами;
–Обученние специалистов в области Software Engineering;
–Надо ли оценивать Software отдельно от Hardware;
•Это обсуждение происходило в 1968 году, сейчас этот вопрос уже решен
1-Oct-15 |
Software Engineering |
26 |

Компонентно-Ориентированное Программирование ?
•Компонентно-ориентированное программирование (англ. componentoriented programming, COP) — парадигма программирования, опирающаяся на понятие программного компонента — независимого модуля программного кода, предназначенного для повторного (многократного)
использования, реализующегося в виде множества языковых конструкций
(например, классов в объектно-ориентированных языках), объединённых по общему признаку и организованных в соответствии с определёнными правилами и ограничениями.
•Возникает необходимость в определении общих признаков, правил и ограничений:
–Необходимо внедрение стандартных соглашений (производственных стандартов !), соблюдаемых при разработке программ;
–Стандартизация – необходимое условие промышленного производства, тесно связанное с организацией и разделением труда, повышением качества (надежности и т.п.) его результата.
•Программные компоненты должны производиться и использоваться в соответствии с определенными стандартами, которые принято называть компонентными моделями. Они и определяют - что такое [программный] компонент и как его использовать...
1-Oct-15 |
Software Engineering |
27 |

Любое программирование - компонентное
•Не компонентного программирования – не бывает:
–Все зависит от того, что считать компонентом (т.е. – от используемой при рассмотрении компонентной модели);
–В философском смысле – от уровня детализации (что, в конечном счете,
связано с вопросами взаимоотношений дискретности и непрерывности...)...
•А что такое программирование? Под программированием здесь мы понимаем «процесс принуждения вычислительной машины к выполненнию нужной нам работы» (но «боремся» мы сами с собой)...
–Т.е., процесс программирования имеет целью процесс выполнения программы...
•Вообще говоря, бывают разные вычислительные машины и разные способы «их принуждения к полезной нам деятельности» (т.е. - их программирования)...
–так или иначе, все они связаны с компонентностью (как и практически любой производственный процесс в других отраслях промышленного производства)...
1-Oct-15 |
Software Engineering |
28 |

•Вычислительные машины бывают разные:
–Аналоговые – АВМ (практически вышли из употребления)
•Программирование (в сущности - моделирование) происходит путем физического соединения имеющихся экземпляров компонент между собой
(проводами!) ;
–Цифровые – ЦВМ (цифровая техника повсюду вытесняет аналоговую –
какие можно привести примеры? Почему?)
•Программирование изначально связано с элементарными компонентами программ – командами (машинными инструкциями) и ячейками памяти данных.
•Программисты, используя эти элементарные компоненты, могут сами
определять и использовать составные программные компоненты, чем, в сущности, и определяются различные технологии программирования.
•Архитектура цифровой вычислительной машины (система команд) определяет такую компонентную модель, в которой компонентами являются отдельные инструкции;
–программирование при этом – использование экземпляров инструкций по
определенным правилам.
•А чем отличается в этом смысле аналоговая машина?
–полезно помнить, что сама ЦВМ сделана из «аналоговых» физических компонент...
1-Oct-15 |
Software Engineering |
29 |

АВМ (слева) и первая ЦВМ (справа)
IBM Automatic Sequence Controlled Calculator (ASCC) MARK-1, построен в IBM и установлен в Гарварде в 1944.
Марк-1 мог хранить 72 числа, каждое длиной до 23-х десятичных знаков. Мог выполнять до трех сложений или вычитаний в секунду. Умножение занимало 6 секунд, деление - 15,3 секунды, а вычисление логарифмической или тригонометрической функции требовало более минуты.
1-Oct-15 |
Software Engineering |
30 |