Проектування програмного забезпечення (ПЗ) – процес визначення архітектури, компонентів, інтерфейсів, інших характеристик системи й кінцевого результату. Проектування ПЗ як інженерний процес входить зараз як складова дисципліна загального інженерного процесу розроблення програм – програмної інженерії(software engineering) .
Термін програмна інженерія вперше вжито в 1968 році на науковій конференції НАТО, чим було засвідчено, що створення програмного забезпечення досягло такого ступеня розвитку, коли можна застосовувати інженерні технології. З того часу програмне забезпечення проникло в усі сфери людського буття, а його розроблення стала справді масовою діяльністю.
Інструменти підтримки розроблення програмних систем зробили величезний стрибок у своєму розвитку, і тепер звичайною практикою стали: створення програмних систем як композиції готових компонент, побудова інтерфейсів користувача шляхом маніпуляцій з мишкою, візуалізація процесів та продуктів розробки.
Воднораз, залишаються актуальними питання організації розроблення великих систем, шляхів та засобів досягнення їхньої високої якості й відповідності до потреб замовника. Саме володіння методами розв’язання таких проблем дає надію на вдалу реалізацію великих програмних систем та їхню конкурентоспроможність.
Отже, важливо об’єднати досвід попередніх розробок як певну суму професійних знань, які могла б опановувати переважна більшість виконавців розробок, і тоді передовий досвід став би надбанням широкого кола професіоналів.
Саме таких зусиль тепер докладають професійні об’єднання та провідні виробники програмних систем для визначення ядра професійних знань, що становлять предмет програмної інженерії як фаху. Це ядро вони назвали Software Engineering Body of Knowledges (SWEBOK). Першим результатом їхньої діяльності є визначення головних розділів ядра знань та відповідних тематичних рубрик.
Нині проблеми і питання програмної інженерії, зокрема проектування ПЗ, висвітлюються в низці статей, в окремих параграфах і главах закордонних монографій. Проте монографії, яка охоплювала б усі основні питання цієї проблематики, в українській і російськомовній літературі немає. Це й спонукало нас до спроби заповнити цю прогалину і написати навчальний посібник.
До посібника включено сучасні методи проектування ПЗ, що використовуються зараз в програмній інженерії і пройшли вже тривалу практичну апробацію під час розроблення великих програмних систем. Водночас посібник є спробою цілісного викладення основних положень процесів проектування ПЗ програмної інженерії. Його сплановано так, що кожний розділ відповідає послідовності процесів проектування сучасних програмних систем, починаючи від поставлення завдання і закінчуючи моделями програмної системи, які задовольняють замовника і можуть бути реалізованими на вибраній платформі.
Автори посібника виклали зміст процесів проектування ПЗ відповідно до напрацювань зі створення SWEBOK. Добираючи матеріал, ми керувалися прагненням висвітлити концепції та методи, перевірені практикою, обминаючи націлені на майбутнє теоретичні дослідження, які ще не підтвердили своєї придатності для широкого впровадження.