Что такое предметная область в программировании
Перейти к содержимому

Что такое предметная область в программировании

  • автор:

Что такое предметная область в программировании

Программы должны решать какие-то проблемы из самых различных сфер деятельности, которые и называются в данном контексте предметной областью. Медицина, экономика, мультимедиа — тысячи их.

т.е. предметная область имеет место когда речь идёт о программировании только софта, автоматизирующего некие бизнес-процессы, используемого только специалистами какой-то определённой профессиональной деятельности??

Ведь софт может быть: игры, аудиоплееры, видеоплееры и др. — софт, который не используется для осуществления профессиональной деятельности — Для такого софта тоже применяется и рассматривается понятие предметной области??

DrStrangeLove
Посмотреть профиль
Найти ещё сообщения от DrStrangeLove

Что такое предметная область?

Какая предметная область, например, у веб-программиста? У системного программиста?

mentalmenza
05.09.13 15:57:27 MSK

Какая предметная область, например, у веб-программиста? У системного программиста?

у веб-программиста — веб-технологии, у системного — операционные системы

Harald ★★★★★
( 05.09.13 16:11:28 MSK )

Ну, это если вы, к примеру, пишете программное для эмиссионного спектрометра, то предметной областью является спектроскопия, оптика, физика/физико-химия/химия.

Если пишете программное для управления беспилотным ЛА, то предметная область — аэродинамика, навигация.

Т.о., в посте, на к-рый вы сослались, сказано о том, что кодировать можно научить и макаку-резуса. Но необходимости иметь технические знания, кругозор и эрудированность в технической (прикладной, предметной) области, где будет применяться программное обеспечение, никто не отменяет. И виртуозу-обезьянке предпочтут грамотного инженера. Кодированию научить быстрее, легче и дешевле; сопромату — гораздо дольше, сложнее и дороже.

braindef ★
( 05.09.13 16:14:31 MSK )

Какая предметная область, например, у веб-программиста?

mashina ★★★★★
( 05.09.13 16:20:46 MSK )

ещё предметными областями бывают бухучёт, складской учёт, электроника, телекоммуникации, акустика, физика частиц — в общем всё, где требуется какое-то ПО 🙂

Harald ★★★★★
( 05.09.13 16:22:06 MSK )
Ответ на: комментарий от braindef 05.09.13 16:14:31 MSK

Если пишете программное для управления беспилотным ЛА, то предметная область — аэродинамика, навигация.

скорее теория управления

Harald ★★★★★
( 05.09.13 16:22:49 MSK )
Ответ на: комментарий от braindef 05.09.13 16:14:31 MSK

Спасибо, хорошо расписал.

mentalmenza
( 05.09.13 16:27:34 MSK ) автор топика
Ответ на: комментарий от braindef 05.09.13 16:14:31 MSK

Кодированию научить быстрее, легче и дешевле

Можно парочку историй успеха когда брали инженера и обучали кодированию?

Может, быстрее нанять толкового программиста и поставить работать их в паре?

true_admin ★★★★★
( 05.09.13 18:09:09 MSK )
Ответ на: комментарий от true_admin 05.09.13 18:09:09 MSK

Можно парочку историй успеха когда брали инженера и обучали кодированию?

As a new programmer at 2Is, we don’t expect you to have pre-existing knowledge of Lisp…or of any programming language! You will work closely with Senior Developers and other members of the software team to learn Lisp. Most of the 2Is developers are trained as mathematicians, so you will be learning from people who were once in your shoes.

anonymous
( 05.09.13 18:15:44 MSK )
Ответ на: комментарий от braindef 05.09.13 16:14:31 MSK

Если пишете программное для управления беспилотным ЛА, то предметная область — аэродинамика, навигация.

Неправда, теория оптимального управления.

buddhist ★★★★★
( 05.09.13 18:22:01 MSK )
Ответ на: комментарий от anonymous 05.09.13 18:15:44 MSK

это как раз пример true_admin-а

Может, быстрее нанять толкового программиста и поставить работать их в паре?

qnikst ★★★★★
( 05.09.13 18:41:15 MSK )
Ответ на: комментарий от braindef 05.09.13 16:14:31 MSK

кодить научить может и легче, и быстрее, но почему-то сразу вспоминается история про товарища инженера, который накрыл медным тазом микроскоп стоимостью н-миллионов долларов из-за ошибки в коде. Правда, писал он на жабе, но на её убогость ссылаться не будем.

gavlig ★★★
( 05.09.13 18:58:54 MSK )
Последнее исправление: gavlig 05.09.13 19:07:02 MSK (всего исправлений: 1)

Ответ на: комментарий от qnikst 05.09.13 18:41:15 MSK

В каком месте? Там берут математиков. Для математика разобраться в несчастной кодережечке вообще не проблема.

anonymous
( 05.09.13 19:35:10 MSK )
Ответ на: комментарий от anonymous 05.09.13 19:35:10 MSK

т.к. программисты уже есть, иначе бы брали и математиков и программистов.

qnikst ★★★★★
( 05.09.13 20:39:30 MSK )
Ответ на: комментарий от qnikst 05.09.13 20:39:30 MSK

т.к. программисты уже есть, иначе бы брали и математиков и программистов.

Так они тоже математики. Нянчиться с «толковым программистом» нафиг никому не сдалось.

Да и где ты вообще видел Lisp-программистов? У «толковых» свои языки, соответствующие уровню интеллекта.

anonymous
( 05.09.13 20:59:16 MSK )

Какая предметная область, например, у веб-программиста?

Если веб-программист программирует что-то финансовое — то финансы и будут предметной областью. Если дейтинги на похапешке лабает, то предметная область — сводничество. Ну и дальше в том же духе.

anonymous
( 05.09.13 21:00:20 MSK )
Ответ на: комментарий от true_admin 05.09.13 18:09:09 MSK

Инженер программистишку поймет, а вот программистишко инженера не поймет никогда. Impedance mismatch такой.

anonymous
( 05.09.13 21:01:30 MSK )
Ответ на: комментарий от anonymous 05.09.13 21:01:30 MSK

Довелось когда-то эксплуатировать ПО написанное «специалистами» в предметной области. Это был мрак. Прошло уже 18 лет, но я этого никогда не забуду.

dvl36 ★
( 05.09.13 23:21:17 MSK )
Ответ на: комментарий от anonymous 05.09.13 21:01:30 MSK

программистишко инженера не поймет никогда

Угу, а ещё гуманитарием никогда много денег не заработаешь. Тебе в http://vk.com/studentengineer

true_admin ★★★★★
( 06.09.13 00:36:19 MSK )

Какая предметная область, например, у веб-программиста

DonkeyHot ★★★★★
( 06.09.13 08:39:59 MSK )
Ответ на: комментарий от DonkeyHot 06.09.13 08:39:59 MSK

Это предметная область дизайнера/верстальщика.

TEX ★★★
( 06.09.13 08:46:58 MSK )

Bioreactor писал, что для программиста самое важное — предметная область

А про МВА он тебе не писал?

J ★★★★
( 06.09.13 08:55:31 MSK )
Ответ на: комментарий от dvl36 05.09.13 23:21:17 MSK

Довелось когда-то эксплуатировать ПО написанное «специалистами» в предметной области. Это был мрак. Прошло уже 18 лет, но я этого никогда не забуду.

Это правда. Предметники пишут в лоб, абсолютно неподдерживаемый код. У программирующего инженера никогда не будет красивого кода. Только тупой хардкор. По себе знаю. Однажды спроектировал схему, развел плату, распаял, тогда обнаружилось, что одну из микросхем поставил (на бумаге еще) неправильно. Шину данных у микросхемы поставил в инвертированном порядке, вместо 0-7 был порядок выводов 7-0. Оценив масштаб проблемы, предпочел менять программно порядок битов в байтах команд и данных, нежели резать дорожки и перепаивать. Благо, сам писал программу для контроллера.

А как работало! Конфетка!

ansky ★★★★★
( 06.09.13 11:13:15 MSK )
Ответ на: комментарий от TEX 06.09.13 08:46:58 MSK

Это предметная область дизайнера/верстальщика

Ты хочешь сказать, что табуретки только придумываются для задниц, а изготавливаются для какой-то другой предметной области?

DonkeyHot ★★★★★
( 06.09.13 11:21:44 MSK )

вот смотри когда умение писать не было «спонсируемым государством/обществом» была отдельная специальность писарь — рудименты этого остались в системе нотариата(при том что они ещё кой какие функции выполняют )

представь — в своё время те кто умел писать поголовно умели писать/рифмовать стихи.

так вот смешивание

способности кодировать процедуры известной области деятельности это и есть уметь писать прозу.

способности вырабатывать новые процедуры/методы понятийный аппарат это есть более редкое умение/потребность

qulinxao ★★☆
( 06.09.13 11:46:25 MSK )
Ответ на: комментарий от DonkeyHot 06.09.13 11:21:44 MSK

Я хочу сказать что форма и содержание разные вещи.

Дизайнер определяет форму и версту — веб-программист определяет конкретную реализацию.

TEX ★★★
( 06.09.13 12:31:16 MSK )
Ответ на: комментарий от TEX 06.09.13 12:31:16 MSK

И оба трудятся на поприще предоставление пользователю интерфейса более «юзабельного», чем «select a lot from some table where something is true order by. ».

Предметная область (Object domain)

Множество понятий и объектов, рассматриваемых в пределах отдельного рассуждения, исследования или научной теории. Включает объекты, изучаемые теорией, а также свойства, отношения и функции, которые принимаются во внимание в теории.

В анализе данных в качестве предметной области может выступать компания, в интересах которой реализуется аналитический проект, внешнее окружение, сегмент рынка и т.д. Это понятие играет большую роль в анализе данных, поскольку используемые там подходы и методы оперируют объектами и терминами предметной области и, следовательно, зависят от нее.

В хранилищах данных, которые являются предметно ориентированными, под предметной областью понимают устойчивую связь между именами, понятиями и объектами внешнего мира, не зависящую от самой информационной системы и круга ее пользователей. Введение в рассмотрение понятия предметной области ограничивает и делает обозримым пространство информационного поиска в хранилище данных и позволяет выполнять за конечное время даже сложные нерегламентированные запросы.

1.1 Описание предметной области

Объектно-ориентированное программирование (ООП) основано на трех концепциях:

В центре ООП находится понятие объекта. Объект — это абстрактная модель, которой можно посылать сообщения, и которая может на них реагировать, используя свои данные. Объект — это экземпляр класса. Данные объекта скрыты от остальной программы. Сокрытие данных называется инкапсуляцией. Инкапсуляция — это ограничение доступа к данным и их объединение с методами, обрабатывающими эти данные. Доступ к отдельным частям класса регулируется с помощью специальных ключевых слов: public(открытая часть), private(закрытая часть) и protected(защищенная часть). Наличие инкапсуляции достаточно для объектности языка программирования, но для его объектной ориентированности требуется наличие наследования. Наследование — механизм получения нового класса их существующего. Производный класс (наследник) создается путем дополнения или изменения существующего класса (класса-родителя). Методы, расположенные в открытой части, формируют интерфейс класса и могут свободно вызываться клиентом через соответствующий объект класса.

Основные преимущества ООП заключаются в том, что существует возможность объектов с одинаковой спецификацией иметь различную реализацию — полиморфизм.

Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. Говорят, что объект — это экземпляр класса. При этом в некоторых исполняющих системах класс также может представляться некоторым объектом при выполнении программы посредством динамической идентификации типа данных. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.

Сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса или копирования прототипа.

Прототип — это объект-образец, по образу и подобию которого создаются другие объекты. Объекты-копии могут сохранять связь с родительским объектом, автоматически наследуя изменения в прототипе; эта особенность определяется в рамках конкретного языка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *