Як спроектувати систему


 

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



Вам знадобиться

— технічне завдання на проектування.

Інструкція

  1. Проведіть первинну декомпозицію, виділивши підсистеми. Дослідіть технічне завдання. Виявити і проаналізуйте перелік завдань, які повинна вирішувати система. Згрупуйте завдання за функціональною ознакою. Проаналізуйте типи і характеристики даних, які повинні оброблятися системою. Сформуйте перелік підсистем, виділяючи їх згідно функціональному призначенню і типам оброблюваної інформації (підсистема зберігання даних, підсистема друку документів, і т.д.).
  2. Специфікує функціонал і характеристики виділених підсистем. Опишіть їх призначення, складіть переліки вироблених ними дій.

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


  3. Проведіть декомпозицію кожної з підсистем, яку буде необхідно реалізувати. Розділіть підсистеми на компоненти. Ними можуть бути як додатки, так і різні бібліотеки, сервіси.

    Виділяйте компоненти на основі аналізу функціоналу підсистеми та об’єктів даних, які обробляються їй. Основний принцип, якому варто слідувати на даному етапі проектування, полягає в тому, що компоненти повинні бути досить універсальні (допускати максимальне спільне та повторне використання), а й володіти чіткою спеціалізацією (не варто робити компоненти-комбайни, «вміють» все).
        


  4. Визначте методи і технічні засоби обміну і зберігання даних, як між підсистемами, так і всередині них. Складіть специфікації, вказавши протоколи і формати, які повинні використовуватися.
  5. Досліджуйте ринок програмних продуктів. Виявити компоненти, які можна використовувати для побудови системи. Приміром, зараз доступно безліч як комерційних, так і абсолютно безкоштовних бібліотек для обробки графіки, тому витрачати власні кошти на розробку аналогічних рішень — просто безглуздо.
  6. Складіть перелік компонентів, які необхідно реалізувати. Розробіть відповідні специфікації. Підготуйте технічні завдання.
  7. Виберіть засоби реалізації підсистем і окремих компонентів. Визначте технології і мови програмування, які будуть використовуватися. Внесіть відповідні пункти в технічні завдання.