Приведу пример:
- Допустим, у нас есть кухонный кран. Лично мне, удалось выделить у него следующие характеристики:
- Пропускная способность - литр/час
- Тип смесителя - двухвентильные/однорычажные
- Марка стали
- Габариты - высота в пике
- Производитель
- Заявленный срок службы
- Цена
Пример, более приближенный к программированию:
Программа для "чистки" данных в файлах разного формата - txt, xlsx, accdb
Требования, которые у меня получилось сформулировать и которыми должна обладать система:
- Вся система должна быть разбита на 4 отдельных класса-блока:
- Класс для чтения данных, вне зависимости от формата:
- Непосредственно, читает данные в контейнер по заданному разделителю (для txt)
- Позволяет удобно и гибко рабоать с файловой системой - рекурсивно обходя директории,читая и ища только файлы заданного/-ных типа/-ов
- Класс для предварительной обработки и нормализации данных:
- Удалять пустые записи.
- Приводить все строки к одному виду.
- Класс, для непосредственной работы с подготовленными данными, в который подается список "заданий" для каждого элемента контейнера - например, список указателей на методы, которые буду применены к определенным элементам.
- Класс для удобного создания таблицы, путем передачи одному из методов класса методу sql-запроса в виде строки.
Вот о таких примерах я говорю.
Как научиться сразу-же анализировать задачу или проблему подобным, инженерным образом?