- •Конструювання програмного забезпечення (Software Construction по swebok)
- •1. Основи конструювання (Software Construction Fundamentals)
- •1.1 Мінімізація складності (Minimizing Complexity)
- •1.2 Очікування змін (Anticipating Changes)
- •1.4 Стандарти в конструюванні (Standards in Constructing)
- •2. Управління конструюванням (Managing Construction)
- •2.1 Моделі конструювання (Construction Models)
- •2.2 Планування конструювання (Construction Planning)
- •2.3 Вимірювання в конструюванні (Construction Measurement)
- •3. Практичні міркування (Practical Considerations)
- •3.2 Мови конструювання (Construction Languages)
- •3.3 Кодування (Coding)
- •3.4 Тестування в конструюванні (Construction Testing)
- •3.5 Повторне використання (Reuse)
- •3.6 Якість конструювання (Construction Quality)
- •3.7 Інтеграція (Integration)
3.3 Кодування (Coding)
Практика конструювання програмного забезпечення показує активне застосування таких міркувань і технік:
• техніки створення легко розуміється вихідного коду на основі використання угод про іменуванні, форматування і структурування коду;
• використання класів, що перераховуються типів, змінних, іменованих констант та інших виразних сутностей;
• організація вихідного тексту (у вирази, шаблони, класи, пакети / модулі та інші структури)
• використання структур управління;
• обробка помилкових умов і виняткових ситуацій
• запобігання можливих проломів в безпеці (наприклад, переповнення буфера або вихід за межі індексу в масиві)
• використання ресурсів на основі застосування механізмів виключення (з розгляду) та порядку доступу до паралельно використовуваних ресурсів (наприклад, на основі блокування даних, використання потоків і їх синхронізації і т.п.)
• документування коду
• тонка "настройка" коду
• рефакторинг (не згадується SWEBOK)
3.4 Тестування в конструюванні (Construction Testing)
При конструюванні використовуються дві форми тестування, проведеного інженерами, безпосередньо створюють вихідний код:
• модульне тестування (unit testing)
• інтеграційне тестування (integration testing)
Головна мета тестування в конструюванні зменшити часовий розрив між моментом прояви помилок, що є в коді, і моментом їх виявлення. У багатьох випадках, тестування в конструюванні проводиться після того, як код написаний. У ряді випадків, тести (що зазначалося раніше, на прикладі XP) пишуться до того, як створюється код.
Тестуванні в конструюванні зазвичай включає підмножина видів тестування, описаних в галузі знань "Тестування програмного забезпечення" (Software Testing). Наприклад, тестування в конструюванні зазвичай не включає системного тестування, тестування навантаження, usability-тестування (оцінки прозорості використання) та інших видів тестової діяльності.
IEEE опублікував два стандарти, присвячених даній темі:
• IEEE Std 829-1998: "IEEE Standard for Software Test Documentation"
• IEEE Std 1008-1987: "IEEE Standard for Software Unit Testing"
Напряму з цією темою пов'язані під-теми SWEBOK 2.1.1 "Unit Testing" та 2.1.2 "Integration Testing".
3.5 Повторне використання (Reuse)
У вступі в стандарт IEEE Std. 1517-99 "IEEE Standard for Information Technology - Software Lifecycle Process - Reuse Processes" дається таке розуміння повторному використанню в програмному забезпеченні: "Реалізація повторного використання програмного забезпечення передбачає і тягне за собою щось більше, ніж просто створення і використання бібліотек активів. Воно вимагає формалізації практики повторного використання на основі інтеграції процесів і діяльності з повторного використання в сам життєвий цикл програмного забезпечення. "В той же час, повторне використання досить важливо і безпосередньо при конструюванні програмних систем, що підкреслюється включенням цієї теми в обговорювану область знань конструювання ПЗ . Завдання, пов'язані з повторним використанням у процесі конструювання та тестування, включають:
• вибір одиниць (units), баз даних тестових процедур, даних <отриманих в результаті> тестів і самих тестів, які підлягають повторному використанню
• оцінку потенціалу повторного використання коду і тестів
• відстеження інформації та створення звітності з повторного використання в новому коді, тестових процедурах і даних, отриманих в результаті тестів.
