Пятое поколение компьютеров (с 1985 и по наше время)
Отличительные признаки V -го поколения:
- Новые технологии производства.
- Отказ от традиционных языков программирования таких, как Кобол и Фортран в пользу языков с повышенными возможностями манипулирования символами и с элементами логического программирования (Пролог и Лисп).
- Акцент на новые архитектуры (например, на архитектуру потока данных).
- Новые способы ввода-вывода, удобные для пользователя (например, распознавание речи и образов, синтеза речи, обработка сообщений на естественном языке)
- Искусственный интеллект (то есть автоматизация процессов решения задач, получения выводов, манипулирования знаниями)
Именно на рубеже 80-90-х сформировался альянс Windows-Intel. Когда в начале 1989 г. Intel выпустила микропроцессор 486, производители компьютеров не стали дожидаться примера со стороны IBM или Compaq. Началась гонка, в которую вступили десятки фирм. Но все новые компьютеры были чрезвычайно похожи друг на друга — их объединяла совместимость с Windows и процессоры от Intel.
Видеокарта
Принципы архитектуры ПК первых серий не предполагали выделения видеокарты в отдельный компонент. То есть данное аппаратное решение — это также один из критериев отнесения компьютера к современным поколениям. Видеокарта отвечает за обработку компьютерной графики — одного из наиболее сложных типов данных, требующих высокой производительности микросхем.
Заменять данный аппаратный компонент следует, соотнося основные его характеристики с мощностью и уровнем технологичности процессора, памяти и материнской платы. Закономерность здесь та же, что мы отметили выше: нежелательно, чтобы соответствующие элементы ПК сильно различались по уровню производительности. Для видеокарты ключевые критерии — это объем встроенной памяти, а также тактовая частота основной ее микросхемы.
Бывает, что модуль, отвечающий за обработку компьютерной графики, встроен в процессор. И это нельзя считать признаком того, что компьютер устаревший, наоборот, подобная схема наблюдается на многих современных ПК. Наибольшую популярность данная концепция приобретает в среде производителей ноутбуков. Это вполне логично: брендам необходимо обеспечивать компактность такого типа компьютеров. Видеокарта — это довольно объемный аппаратный компонент, ее размер чаще всего заметно больше процессора или модуля памяти.
История развития компьютерной техники
Потребность в хранении, преобразовании и передачи информации у человека появилась значительно раньше, чем был создан телеграфный аппарат, первая телефонная станция и электронная вычислительная машина (ЭВМ). Фактически весь опыт, все знания, накопленные человечеством, так или иначе, способствовали появлению вычислительной техники. История создания ЭВМ — общее название электронных машин для выполнения вычислений — начинается далеко в прошлом и связана с развитием практически всех сторон жизни и деятельности человека. Сколько существует человеческая цивилизация, столько времени используется определенная автоматизация вычислений.
История развития компьютерной техники насчитывает около пяти десятилетий. За это время сменилось несколько поколений ЭВМ. Каждое следующее поколение отличалось новыми элементами (электронные лампы, транзисторы, интегральные схемы), технология изготовления которых была принципиально иной. В настоящее время существует общепринятая классификация поколений ЭВМ:
- Первое поколение (1946 — начало 50-х гг.). Элементная база — электронные лампы. ЭВМ отличались большими габаритами, большим потреблением энергии, малым быстродействием, низкой надежностью, программированием в кодах.
- Второе поколение (конец 50-х — начало 60-х гг.). Элементная база — полупроводниковые элементы. Улучшились по сравнению с ЭВМ предыдущего поколения практически все технические характеристики. Для программирования используются алгоритмические языки.
- 3-е поколение (конец 60-х — конец 70-х). Элементная база — интегральные схемы, многослойный печатный монтаж. Резкое снижение габаритов ЭВМ, повышение их надежности, увеличение производительности. Доступ с удаленных терминалов.
- Четвёртое поколение (с середины 70-х — конец 80-х). Элементная база — микропроцессоры, большие интегральные схемы. Улучшились технические характеристики. Массовый выпуск персональных компьютеров. Направления развития: мощные многопроцессорные вычислительные системы с высокой производительностью, создание дешевых микроЭВМ.
- Пятое поколение (с середины 80-х гг.). Началась разработка интеллектуальных компьютеров, которая пока не увенчалась успехом. Внедрение во все сферы компьютерных сетей и их объединение, использование распределенной обработки данных, повсеместное применение компьютерных информационных технологий.
Вместе со сменой поколений ЭВМ менялся и характер их использования. Если сначала они создавались и использовались в основном для решения вычислительных задач, то в дальнейшем сфера их применения расширилась. Сюда можно отнести обработку информации, автоматизацию управления производственно-технологическими и научными процессами и многое другое.
1.2.4. Третье поколение (1963-1972 гг.)
Третье поколение характеризуется резким ростом вычислительной мощности ВМ, что стало возможным благодаря переходу от дискретных полупроводниковых элементов к интегральным микросхемам. Кроме того, также была изменена технология запоминающих устройств – на смену магнитным сердечникам пришли полупроводниковые устройства.
Серьезные изменения коснулись и архитектуры ВМ. Началась эпоха параллельной обработки и конвейеризации вычислений. Область ПО ознаменовалась разработкой операционных систем, а также режима разделения времени.
Первые ВМ третьего поколения были построены на интегральных схемах (ИС) малой степени интеграции. Один кристалл такой ИС содержал 10 транзисторов. В конце периода третьего поколения появились ИС средней степени интеграции, число транзисторов в них стало на порядок выше. Тогда же получила распространение идея создания многослойных печатных плат.
В 1964 г. Сеймуром Креем была разработана ВС CDC 6600, которая впервые в истории ЭВМ реализовала параллелизм архитектуры. CDC 6600 состояла из 10 независимых функциональных блоков, которые могли работать параллельно. Кроме того, в ее состав входили 32 независимых модуля памяти. Все это обеспечивало быстродействие системы в 1 миллион операций в секунду над числами с плавающей запятой.
Модификацией данной машины стала CDC 7600 – это первая конвейерная вычислительная система. Ее быстродействие в 10 раз превосходило быстродействие CDC 6600.
К третьему поколению ЭВМ также относят семейство ВМ IBM 360, ставшее эталоном архитектуры. IBM 360 обладала следующими характерными чертами, сохранившимися и в современных ЭВМ:
- предварительная выборка команд;
- кэш память;
- конвейеризация команд;
- отдельны блоки для операций с фиксированной и плавающей запятой.
К данной эпохе относятся и первые параллельные ВС – SOLOMON и ILLIAC IV.
В СССР также велись разработки ЭВМ, построенных на ИС. Примером является быстродействующая электронно-счетная машина БЭСМ-6, разработанная под управлением С.А. Лебедева.
Сфера ПО также не стояла на месте – в 1970 г. Кен Томпсон разработал язык B, ставший предшественником языка C. Кроме того, именно к этому периоду относится создание ранней версии ОС Unix.
ЭВМ первого поколения
Электровакуумные лампы
ЭВМ первого поколения были ламповыми машинами 50-х годов. Их элементной базой были электровакуумные лампы. Эти ЭВМ были весьма громоздкими сооружениями, содержавшими в себе тысячи ламп, занимавшими иногда сотни квадратных метров территории, потреблявшими электроэнергию в сотни киловатт.
Например, одна из первых ЭВМ – ENIAC представляла собой огромный по объему агрегат длиной более 30 метров. Эта машина содержала 18 тысяч электровакуумных ламп и потребляла около 150 киловатт электроэнергии.
Для ввода программ и данных применялись перфоленты и перфокарты. Не было монитора, клавиатуры и мышки.
Использовались эти машины, главным образом, для инженерных и научных расчетов, не связанных с переработкой больших объемов данных.
В 1949 году в США был создан первый полупроводниковый прибор, заменяющий электронную лампу. Он получил название транзистор.
2.1. Основные принципы
Архитектура ЭВМ подразумевает собой ее организацию, куда входит обработка данных, аппаратное обеспечение, связи и управление в некоторых объектах, таких как система памяти, звуковая и графическая подсистемы, процессоры, а также система команд, набор шин и организация ввода/вывода .
Джон фон Нейман, американский математик, основоположник учения об архитектуре ЭВМ. Именно он был основным автором статьи «Предварительное рассмотрение логической конструкции электронно-вычислительного устройства», где сформулировал основные принципы построения ЭВМ:
- использование двоичной системы счисления – главное преимущество такой системы перед обычной десятичной состоит в том, что устройства на двоичной логике слишком просты с точки зрения конструкции. Помимо этого, в таких устройствах гораздо легче организовать логические и арифметические операции;
- программное управление ЭВМ – работа ЭВМ осуществляется под контролем программы, состоящей в свою очередь из определенного
- набора команд. Такие команды последовательно выполняются одна за другой. Современному программированию положило начало создание машины, с программой, хранимой в памяти;
- память ЭВМ помимо данных хранит и команды, закодированные в двоичной системе счисления. Помимо этого к данным – можно обратиться как к командам, а к командам — как к данным;
- ячейки памяти ЭВМ имеют свои адреса, которые обретают вид последовательной нумерации. К любой ячейке памяти можно обратиться в любой момент времени, если знать ее адрес. Этот принцип положил начало созданию переменных в программировании;
- возможность условного перехода в процессе выполнения программы – существует возможность условного перехода, не смотря на последовательное выполнение команд, на любой другой участок кода, в зависимости от выполнения или невыполнения какого-либо заданного логического условия .
Важнейшим следствием этих принципов является то, что теперь программа уже не постоянная часть машины (как например, у калькулятора). Стало возможно изменить программу. В то время как аппаратура, естественно, остается неизменной, и достаточно простой.
Несмотря на то, что программы могут писаться годы, для современных компьютеров, но они работают, после несколько минутной установки на жесткий диск, на миллионах компьютеров. Архитектура, называется Неймановской архитектурой, если она построена по таким принципам (см. рисунок 1).
Рисунок 1 – Архитектура фон Неймана
Классическая архитектура
Классическую концепцию построения компьютера по готовой логической схеме предложил математик Нейман в 1945 году. В ходе обсуждений и в рамках проектирования компьютера EDVAC было решено использовать память для хранения ряда инструкций и данных. Принципиально новая концепция Джона фон Неймана стала общепринятым стандартом и основой не для одного поколения персональных компьютеров. Главный ее принцип заключен в наличии пяти важных компонентов:
- Блока арифметики и логики;
- Управленческого устройства;
- Оперативного блока;
- Внешнего блока памяти;
- Устройства, предназначенного для вывода и ввода информации.
В условиях данной схемы функционирования, должен прослеживаться определенный алгоритм. Если в память ПК направляются данные для обработки из какой-либо программы, то потом они должны выводиться при помощи наружного устройства. После, управляющее устройство должно проанализировать полученную информацию и отправить на дальнейшее выполнение. Возможно придется задействовать другие составляющие ПК.
Классическая архитектура компьютера
Ключевые принципы, в соответствии с которыми предполагалось конструирование ПК по определенной логической схеме, предложил Джон фон Нейман, выдающийся математик. Его идеи были реализованы производителями ПК, относящихся к первым двум поколениям. Концепция, разработанная Джоном фон Нейманом, — это классическая архитектура ПК. Каковы ее особенности? Предполагается, что компьютер должен состоять из следующих основных компонентов:
— арифметического и логического блока;
— устройства для управления;
— блока внешней памяти;
— блока оперативной памяти;
— устройств, предназначенных для ввода и вывода информации.
В рамках данной схемы взаимодействие технологических компонентов должно реализовываться по конкретной последовательности. Так, сначала в память ПК попадают данные из компьютерной программы, которые могут вводиться с помощью внешнего устройства. Затем устройство для управления считывает информацию из памяти компьютера, после чего направляет ее на выполнение. В этом процессе при необходимости задействуются остальные компоненты ПК.
CV Driven Development
Это выбор технологий и подходов только ради строчки в резюме. Причиной данного антипаттерна является некий порочный круг.
С одной стороны, есть компании и проекты, которым очень нужны опытные работники. Одним из способов заманить их является предложение классного, хайпового и свежего технологического стека.
С другой стороны, есть разработчики, которым интересно заниматься современным стеком. Они видят, что новые технологии востребованы на рынке труда, потому что компании пытаются поймать их именно на этот крючок. Разработчик вынужден разбираться в новых технологиях и как-то их применять у себя, иначе рискует остаться на обочине рынка труда.
Вот это вот стремление и замыкает порочный круг, подталкивая людей тянуть в свои проекты все, что на слуху.
Как бы грустно ни было, этот круг не получится разорвать. Это наша данность. Чтобы чувствовать себя востребованным и классным без ущерба проекту, нужно уделять время развитию. Поэтому стоит посещать конференции, курсы, делать проекты и другие бла-бла-бла… Вы это все и сами прекрасно знаете.
Бывают ситуации, когда на изучение новых технологий не хватает личного времени. Скорее всего, тогда вы или ваши коллеги будут пытаться втянуть технологии на проект, чтобы применять их на рабочем месте. Если проект находится в вашей зоне ответственности, то надо это контролировать. Пробуйте только то, что уместно в вашем проекте и улучшит его. И только в случае, если на это есть ресурсы. Всегда взвешивайте риски и начинайте с малозначимых и изолированных частей системы, в которых можно баловаться и применять новый стек, не влияющий на production.
Подведем итоги. Антипаттерны надо знать и уметь их контролировать. В этом поможет развитие абстрактного мышления и японская мудрость: «Делай чище, чем было до тебя». Принимайте решения своевременно и будьте открыты новому, в конце-то концов.
1.2.7. Шестое поколение (с 1990 г.)
Пятое и шестое поколения ЭВМ являются отражением качества, которое стало доступно благодаря накопленным знаниям в области информационных технологий.
Предпосылкой выделения шестого поколения стал прогресс в сфере параллельных вычислений, сопровождавшийся распространением систем с массовым параллелизмом MPP (Massively Parallel Processing). Такие системы представляют собой совокупность большого чиста автономных вычислительных машин, взаимодействующих друг с другом.
Другой характерной чертой шестого поколения стало увеличение роли рабочих станций. Процессоры таких машин совмещают в себе параллельную обработку, конвейеризацию и RISC-архитектуру .
Третье поколение
Третье поколение — это уже компьютерная техника на базе интегральных микросхем в период примерно с 1965 по 1980 год. Эти машины имели достаточно высокую производительность, которая измерялась уже миллионами операций в секунду. Интегральные микросхемы базировались на вытравливании на кристалле кремния необходимой электронной схемы. Она могла вмещать в себя не одну тысячу транзисторных элементов и, как следствие, компьютеры этого поколения опять резко уменьшились в размерах при повышении быстродействия и уменьшении их стоимости.
Замечание 2
Последнее обстоятельство дало возможность компьютерной технике распространиться в самые разные области человеческой деятельности. Кроме того, компьютеры начали приобретать различные специализации (разная архитектура ЭВМ под решение разных задач).
II. Определение понятия «архитектура»
А что можно думать об архитектуре?
Она, как солнце: большая, блестящая и она рядом.
Роджер Желязны. (Мастер сновидений)
Архитектура системы — принципиальная организация системы, воплощенная в её элементах, их взаимоотношениях друг с другом и со средой, а также принципы, направляющие её проектирование и эволюцию.
Архитектура программного обеспечения (англ. software architecture) — совокупность важнейших решений об организации программной системы. Архитектура включает:
- выбор структурных элементов и их интерфейсов, с помощью которых составлена система, а также их поведения в рамках сотрудничества структурных элементов;
- соединение выбранных элементов структуры и поведения, во всё более крупные системы;
- архитектурный стиль, который направляет всю организацию — все элементы, их интерфейсы, их сотрудничество и их соединение (1)
Архитектурный подход (англ. architectural framework) — соглашения, принципы и практики для описания архитектуры, установленные для конкретной области применения и/или конкретным сообществом заинтересованных лиц (2).
1. Разделы ИТ Архитекторы
- базы данных и хранилища данных;
- информационные потоки (как внутри организации, так и связи с внешним миром).
- область разработки прикладных систем;
- портфель прикладных систем.
- информацию об инфраструктуре предприятия;
- системное программное обеспечение (СУБД, системы интеграции);
- стандарты на программно-аппаратные средства;
- средства обеспечения безопасности (программно-аппаратные);
- системы управления инфраструктурой.
Архитектурная группа описаний (англ. architectural view) — представление системы в целом с точки зрения связанного набора интересов. Каждая группа описаний относится к одному или более стейкхолдеру. Термин «группа описаний» употребляется для выражения архитектуры системы при некотором методе описания (2).
2. Представления ИТ Архитекторы
Архитектурное описание (англ. architectural description) — рабочий продукт, использующийся для выражения архитектуры (2).
Архитектурный метод описания (англ. architectural viewpoint) — спецификация соглашений для конструирования и применения группы описаний. Шаблон или образец, по которому разрабатываются отдельные группы описаний посредством установления назначений и аудитории для группы описаний, а также приемы их создания и анализа. Метод описания устанавливает соглашения, по которым группа описаний создается, отображается и анализируется. Тем самым метод описания определяет языки (включая нотации, описания или типы продуктов), применяемые для определения группы описаний, а также все связанные методы моделирования или приемы анализа, применяемые к данным представлениям группы описаний. Данные языки и приемы применяются для получения результатов, имеющих отношение к адресуемым интересам (2).
Рисунок 1. Модель выработки целей и показателей Рисунок 2. Представление модели ЗакманаРисунок 3. Основные понятия ArchiMate 3.0Рисунок 4. Слои фреймворка ArchiMate 3.0
3. Резюме раздела
- Архитектура предприятия связывает бизнес-потребности предприятия, информационные технологии, процессы стратегического бизнес-планирования, прикладные информационные системы и процессы их сопровождения.
- В процессе разработки и поддержания архитектуры предприятия участвуют разные группы заинтересованных лиц, имеющие различные требования к ее представлениям (архитектурный подход);
- Для удобства, архитектуру принято делить на разделы, соответствующие разным архитектурным зонам и подходам;
- Для разных архитектурных групп и подходов существуют различные группы описания (визуализации) архитектуры.
- Для удобства организации работы с разнородными артефактами используют архитектурные методы описания, представляющие собой специальные фреймворки и спецификации, и позволяющие работать со всеми артефактами в едином визуальном пространстве. Использование подобных конструкций помогает с одной стороны, логически разбить все представления архитектуры на отдельные разделы для упрощения их формирования и восприятия, а с другой – обеспечить возможность рассмотрения целостной архитектуры с изолированных точек зрения или соответствующих уровней абстракции.
- В зависимости от потребностей и возможностей предприятия, можно выбрать один из нескольких архитектурных подходов, различающихся по объему и составу выполняемых работ, что в свою очередь определяет уровень затрат и качество проектирования.
Список литературы
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Аблязов Р.З. Программирование на ассемблере на платформе x86-64. Руководство. – Издательство: ДМК Пресс, 2016. – 302 с.
2. Авдеев В.А. ЭВМ и периферия с демонстрацией имитационных моделей. – Издательство: ДМК Пресс, 2014. – 708 с.
3. Джесси Рассел, Роланд Кон. Архитектура фон Неймана. – Издательство VSD, 2013. – 101 с.
4. Джон фон Нейман, Теория самовоспроизводящихся автоматов. –Издательство: Либроком, 2010. — 384 с.
5. Калачев А.В. Многоядерные процессоры. Учебное пособие. – Издательство: Интернет-Университет Информационных Технологий (ИНТУИТ), 2014. – 247 с.
6. Малиновский Б.Н. История вычислительной техники в лицах. — К.: фирма «КИТ», ПТОО «А.С.К.», 1995. — 384 с
7. Михайлов Б.М., Халабия Р.Ф. Классификация и организация вычислительных систем: Учебное пособие. – М.: МГУПИ, 2015. — 144 с.
8. Новожилов О.П. Архитектура ЭВМ и систем. Учебное пособие для академического бакалавриата. – Издательство: Юрайт, 2016. – 527 с.
9. Олифер В., Олифер Н. Компьютерные сети. Принципы, технологии, протоколы. – Издательство: Питер, 2017. – 992 с.
10. Ревич Ю.В. Информационные технологии в СССР. Создатели советской вычислительной техники. Издательство: БХВ-Петербург, 2014. – 336 с.
11. Таненбаум Эндрю, Бос Херберт . Современные операционные системы. – Издательство: Питер, 2017. – 1120 с.
12. Цилькер Б.Я. Организация ЭВМ и систем: Учебник для вузов / Б.Я. Цилькер, С.А. Орлов. — 2-е изд. — СПб.: Питер, 2013. — 688 с.
13. Arthur W. Burks, Herman H. Goldstine, John von Neumann. Preliminary Discussion of the Logical Design of an Electronic Computing Instrument. — Publisher: Springer Berlin Heidelberg, 1982 – 413 p.
14. First Draft of a Report on the EDVAC: John von Neumann, 1945 – 101 p.
15. Архитектура фон Неймана. // Википедия. . URL: https://ru.wikipedia.org/wiki/Архитектура_фон_Неймана (дата обращения: 01.07.2017).
16. Нейман, Джон фон. // Википедия. . URL: https://ru.wikipedia.org/wiki/Нейман,_Джон_фон (дата обращения: 01.07.2017).
- Применение объектно-ориентрованного подхода при проектировании информационной системы (Объектный подход при разработке программ)
- Алгоритмы сортировки данных (Алгоритмы устойчивой сортировки)
- Проектирование реализации операций бизнес-процесса «Расчет заработной платы» (Сущность и назначение необходимого продукта)
- Учет наличных денежных средств в кассе предприятия (Теоретические аспекты учета денежных средств в кассе организации)
- Учет труда и заработной платы (Теоретические и методологические аспекты организации затрат на оплату труда)
- Бухгалтерский баланс организации и порядок его составления (Теоретические аспекты бухгалтерского баланса предприятия)
- Финансовая политика и ее реализация в Российской Федерации (Теоретические аспекты формирования финансовой политики в России)
- «Технология обслуживания клиентов в гостинице.»
- Оценка эффективности стратегий и моделей копинг-поведения в профессиональной среде (Теоретические подходы к проблеме копинг-поведения)
- Информационные и мотивационные структуры в особенностях индивидуального поведения и учет их в практике работы с персоналом ( изучение особенности формирования информационных и мотивационных структур в практике работы с персоналом)
- Понятие социального обеспечения (Виды источников социального обеспечения)
- Роль мотивации в поведении организации (Теоретические основы СПОСОБОВ мотивации труда персонала в целях эффективного развития организации)
Vendor lock-in
Следующий антипаттерн, который мы рассмотрим, — это vendor lock-in. Обычно он выглядит, как архитектура, основанная на определенных продуктах. Под продуктом тут имеется в виду определенная база данных, сервис или технология. Vendor-ом называется поставщик таких продуктов. Особенно больно от этого антипаттерна становится, когда вы платите vendor-у немалые деньги.
Здесь есть ремарка для vendor-ов: если вы таковым являетесь, то у вас есть свой антипаттерн — «обратный vendor lock-in», когда уже поставщик начинает зависеть от определенного заказчика. Но в данной статье мы это опустим и вернемся к обычному vendor lock-in.
Наличие подобного антипаттерна может породить в системе следующие проблемы. Во-первых, зависимость от обновлений. Обычно во время них происходит все самое интересное: всевозможные проблемы с совместимостью, доступностью и прочим. Во-вторых, доставка обещанных функций с задержкой. Учтите это при оформлении отношений с vendor-ом и оплате его услуг, а лучше — зафиксируйте все документально, если это возможно. В-третьих, использование специализированного продукта требует специализированных компетенций, которые трудно найти, легко потерять и невозможно оплатить.
Возможные пути решения. Первое: старайтесь использовать реализации открытых и распространенных стандартов. Тогда вы сможете хотя бы выбирать между разными vendor-ами. И, возможно, подстраховаться опенсорсными решениями: их легче находить и поддерживать. Второе: изучите вашу предметную область и постарайтесь изолировать vendor-а за слоем абстракций. Это уменьшит распространение зависимости от vendor-а по вашему проекту. Постарайтесь отдать под vendor lock-in, если он у вас все-таки есть, конкретную локальную часть в системе, чтобы была возможность ее заменить в случае чего.
Важное — определяйтесь с vendor-ом своевременно! Как говорит Роберт Мартин (он же дядя Боб) в своей книге про чистую архитектуру: хорошая архитектура позволяет откладывать принятие ключевых решений. Гибкая архитектура позволяет откладывать выбор vendor-а, инструмента, технологии
А главное — дает возможность их легко заменить в будущем. С этим связан тесно следующий антипаттерн, который называется
Что делать с антипаттернами
Первое — стараться их избегать (привет, кэп). Кроме того, необходимо грамотно оценивать риски от наличия или использования антипаттерна. Будем с вами честны: оценка задач для разработчиков — и так достаточно сложная дисциплина. Если учитывать еще и все риски, это на порядок увеличивает сложность. Далее следует найти причину использования антипаттерна, для чего вспомнить несколько законов архитектуры: а) любое решение является компромиссом; б) вопрос «почему?» важнее вопроса «как?». Последнее — антипаттерны нужно приручить и контролировать.
Тут как в теории разбитых окон: наличие антипаттернов в проекте легитимизирует и поощряет их использование. Там, где есть одно применение, можно допустить и второе. Там, где второе, найдется место и третьему. А три штуки — это уже не 3 антипаттерна, а «особый путь в проектировании или разработке и фишка нашей системы».
Поэтому приручайте и контролируйте антипаттерны. Изолируйте их от остальной части системы, помечайте их, боритесь с ними! Иначе проект рискует стать сборником плохих подходов, или их наличие будет демотивировать вас и ваших коллег. А оно вам надо?
Подходы к проектированию
Основные принципы и идеи проектирования выражены в системном подходе, для которого характерно рассмотрение частей сложной системы или явления в условиях их взаимодействия. Для этого выявляется структура объектной системы, типизируются связи, определяются атрибуты и анализируется влияние внешней среды. Решение этих задач в рамках воплощения системного подхода выливается в создание дисциплин различного уровня обобщения. Так, «Теория систем», например, исследует проектирование сложных и чаще слабоструктурированных экономических, социальных систем.
В технике сложные технические системы исследуются в рамках дисциплины «Системотехники», которая аналогична теории систем. Помимо процесса создания и эксплуатации технической системы, дисциплина изучает принципы и методы её проектирования
Для этого важно чётко сформулировать системные цели и с этой точки зрения организовать рассмотрение системы. Это позволяет отказаться при проектировании от малозначимых элементов и частей, сосредоточившись на оптимизационных задачах
Конкретизация и интерпретация исходных идей системного подхода находит своё отражение в других производных подходах к проектированию:
- Структурный подход. Он предполагает синтез вариантов системы из блоков-компонентов. При частичном переборе компонентов можно предварительно спрогнозировать их характеристики.
- Блочно-иерархический подход. Сущность такого подхода к проектированию в том, что на первой стадии объект рассматривается как закрытый «чёрный ящик», внутренняя структура которого неизвестна. Затем постепенно, уровень за уровнем, начиная с первого, объект детализируется, устанавливается связь между блоками. Первыми, соответственно, детализируются блоки 1-го уровня, после чего появляются и детализируются блоки уровня № 2 и так – вплоть до получения блоков нижнего уровня с достаточно простой и прозрачной структурой. При таком подходе различные специалисты могут занимать работой над отдельными блоками, но сложность в том, что последующая стыковка решений может создать затруднения (в том числе – и из-за виртуальной природы проектируемых объектов). В целом подход предполагает декомпозицию сложных описаний.
- Объектно-ориентированный подход. При этом подходе вносится большая структурная определённость, связанная с распределением данных между классами объектов. Кроме того, благодаря иерархии и отношениям наследования уменьшается объём спецификаций и снижается вероятность искажения данных.
В социальном проектировании все подходы к процессу принято разделять по критерию их ориентированности на 3 типа:
- с ориентацией на объект (объектно-ориентированные),
- с ориентацией на субъект (субъектно-ориентированные, или тезариусные),
- с ориентацией на проблему (проблемно-ориентированные).
Необходимость увеличивать скорость реализации проектной стадии работ обуславливает появление новых подходов к проектированию.
ЭВМ четвертого поколения
Микро-ЭВМ относится к машинам четвертого поколения. Наибольшее распространение получили персональные компьютеры (ПК). Их появление связано с именами двух американских специалистов: Стива Джобса и Стива Возняка. В 1976 году на свет появился их первый серийный ПК Apple-1, а в 1977 году – Apple-2.
Однако с 1980 года «законодателем мод» на рынке ПК становится американская фирма IBM. Ее архитектура стала фактически международным стандартом на профессиональные ПК. Машины этой серии получили название IBM PC (Personal Computer). Появление и распространение ПК по своему значению для общественного развития сопоставимо с появлением книгопечатания.
С развитием этого типа машин появилось понятие «информационные технологии», без которых невозможно обойтись в большинстве областей деятельности человека. Появилась новая дисциплина – информатика.
Моделирование данных
Сущности
персистентные данныедоменными сущностямикакпереиспользуемой доменной логикисинтетический геттероперацию по валидацииприсвоение значений полямпереиспользуемая логика в небольшом количестве.
Объекты-значения
объекты-значения
Небольшим
Никаких для денежных переменных! Крайне осторожно подходите к выбору типов данных. Чем компактнее ваш объект, тем легче в нём разберётся новый разработчик
Это основа основ для комфортной жизни.
Неизменяемым. Если объект действительно иммутабельный, то разработчик может быть спокоен, что ваш объект не изменит своего значения и не сломается после создания. Это закладывает основу для спокойной, уверенной работы.
Нулевое поколение
К нулевому поколению можно отнести вычислительные устройства на механической основе. В 1642 году Блез Паскаль изобрёл первую счётную машину. С её помощью можно было выполнять только сложение и вычитание. Но уже в семидесятые годы того же семнадцатого века Готфрид Вильгельм Лейбниц сконструировал аппарат, который помимо операций сложения и вычитания, умел делить и умножать. В девятнадцатом веке Чарлз Бэббидж совершил очередной скачок в прогрессе технических устройств для выполнения вычислительных операций. Его устройство, правда могло выполнять только сложение и вычитание, но итоговые результаты продавливались на пластинке из мягкой меди (первая аналогия устройствам ввода-вывода данных). Предполагалось дальнейшее развитие аналитической машины Бэббиджа, которое позволило бы выполнять все арифметические операции. В конструкцию аналитической машины входили блок памяти, вычислительный механизм и устройство для выполнения ввода и вывода данных (это практически архитектура современного компьютера, только в механическом варианте). Но самое ценное, что этот аппарат мог выполнить разные операции по заложенным алгоритмам. Алгоритм программировался на перфокарте и первым программистом была женщина Ада Ловлейс. Но тогда дело так и не дошло до полноценной практической реализации аппарата.
Мысли Бэббиджа сильно опережали своё время. Уже в двадцатом веке были сконструированы счётные автоматы. Так, например, машина Джона Атанасова имела в своей конструкции практически оперативное запоминающее устройство и применяла двоичное кодирование информации.