Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
26-42 волошин.docx
Скачиваний:
4
Добавлен:
31.07.2019
Размер:
645.89 Кб
Скачать

28.Програмна інженерія

Чим програмування відрізняється від програмної інженерії? Тим, що перше є деякою абстрактною діяльністю і може відбуватися у багатьох різних контекстах. Можна програмувати для задоволення, для того, щоб навчитися (наприклад, на уроках, на семінарах в університеті), можна програмувати в рамках наукових розробок. А можна займатися промисловим програмуванням. Як правило, це відбувається в команді, і абсолютно точно - для замовника, який платить за роботу гроші. При цьому необхідно точно розуміти, що потрібно замовнику, виконати роботу у визначені терміни і результат повинен бути потрібної якості - того, яке задовольнить замовника і за яку він заплатить. Щоб задовольнити цим додатковим вимогам, програмування "обростає" різними додатковими видами діяльності: розробкою вимог, плануванням, тестуванням, конфігураційним управлінням, проектним менеджментом, створенням різної документації (проектної, користувальницької та ін.)

Розробка програмного коду передує аналізом і проектуванням (перше означає створення функціональної моделі майбутньої системи без обліку реалізації, для усвідомлення програмістами вимог і очікувань замовника; друге означає попередній макет, ескіз, план системи на папері). Трудовитрати на аналіз і проектування, а також форма подання їх результатів сильно варіюються від видів проектів і переваг розробників і замовників.

Потрібні також спеціальні зусилля по організації процесу розробки. У загальному вигляді це Ітеративний-инкрементальное модель, коли необхідна функціональність створюється порціями, які менеджери і замовник можуть оцінити, і тим самим є можливість управління ходом розробки. Проте ця загальна модель має безліч модифікацій і варіантів.

Розробку системи також необхідно виконувати з урахуванням зручностей її подальшого супроводу, повторного використання та інтеграції з іншими системами. Це означає, що система розбивається на компоненти, зручні у розробці, придатні для повторного використання та інтеграції. А також мають необхідні характеристики по швидкодії. Для цих компонент ретельно опрацьовуються інтерфейси. Сама ж система документується на багатьох рівнях, створюються правила оформлення програмного коду - тобто залишаються численні семантичні сліди, які допомагають створити і зберегти, підтримувати єдину, струнку архітектуру, однаковий стиль, порядок ...

Всі ці та інші додаткові види діяльності, які здійснюються в процесі промислового програмування і необхідні для успішного виконання замовлень і будемо називати програмної інженерії (software engineering) 1). Виходить, що так ми позначаємо, по-перше, деяку практичну діяльність, а по-друге, спеціальну область знання. Або іншими словами, наукову дисципліну. Адже для полегшення виконання кожного окремого проекту, для можливості використовувати різноманітний позитивний досвід, досягнутий іншими командами і розробниками, цей самий досвід піддається осмисленню, узагальненню та належному оформленню. Так з'являються різні методи і практики (best practices) - тестування, проектування, роботи над вимогами і пр., архітектурних шаблонів і пр. А також стандарти та методології, що стосуються всього процесу в цілому (наприклад, MSF, RUP, CMMI, Scrum). Ось ці-то узагальнення і входять в програмну інженерію як в область знання.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]