Технология разработки программного обеспечения Мигинский Денис Сергеевич
Определение Технология ( от греч. téchne искусство, мастерство, умение и... логия ), совокупность приёмов и способов получения, обработки или переработки сырья, материалов, полуфабрикатов или изделий, осуществляемых в различных отраслях промышленности, в строительстве и т. д.; научная дисциплина, разрабатывающая и совершенствующая такие приёмы и способы. Т. ( или технологическими процессами ) называются также сами операции добычи, обработки, переработки, транспортирования, складирования, хранения, которые являются основной составной частью производственного процесса. В состав современной Т. включается и технический контроль производства. Т. принято также называть описание производственных процессов, инструкции по их выполнению, технологические правила, требования, карты, графики и др. Большая советская энциклопедия
Технология применительно к ПО Как выглядит производственный процесс ? Что такое « приемы и способы »? Что такое « сами операции »? Как выглядит тех. контроль ? Единой универсальной технологии разработки ПО не существует
Производственный процесс Производственный процесс = методология разработки ПО в действии Разные методологии предлагают разные подходу к организации процесса, часто прямо противоположные.
Приемы и способы Разработка ПО – декомпозиция задачи с целью представления ее в терминах, которые могут быть воспроизведены в программном коде. Т. е. приемы и способы = методы декомпозиции и механизмы абстрагирования
Принципы разработки ПО Разделение ответственности (separation of concerns, SoC) – программа должны состоять из функциональных блоков, как можно меньше дублирующих функциональность друг друга ( Э. Дейкстра ). Другой вариант – принцип DRY – dont repeat yourself KISS ( вариант бритвы Оккама применительно к инженерии ) – keep it simple and short / keep it simple, stupid ( К. Джонсон, авиаконструктор )
Контроль качества (QA) Тестирование во всех видах Специфика разработки ПО – возможность автоматизированного тестирования
« Сами операции » В строительстве – кладка кирпичей В разработке ПО - отсутствуют
Темы курса Динамические языки (Ruby) Функциональное программирование (Clojure) Аспектно - ориентированное и мета - программирование (Clojure)
Рекомендуемая литература Абельсон Х., Сассман Дж. Структура и интерпретация компьютерных программ. Добросвет, 2012 Halloway S. Programming Clojure. Pragmatic Bookshelf, 2009 Seibel P. Practical Common Lisp. APRESS, 2005, Kizcales G., Rivieres J., Bobrow D. The Art of Metaobject Protocol. MIT Press, 1991