|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Вирішення завданняТермін вирішення завдання (solvіng problem) охоплює всі етапи, починаючи з постановки завдання й закінчуючи розробкою комп'ютерної програми для її рішення. Цей процес складається з багатьох етапів - розкриття змісту завдання, розробка концептуального рішення, реалізація рішення у вигляді комп'ютерної програми Що саме називається рішенням? Звичайне рішення (solutіon) складається із двох компонентів: алгоритму й способів зберігання даних. Алгоритм (algorіthm) - це покроковий опис методу рішення завдання за кінцевий відрізок часу. Можливо, такий опис рішення створює помилкове враження, що вся складність полягає в розробці підходящого алгоритму, а способи зберігання даних відіграють допоміжну роль. Це далеко від істини. Для рішення завдання потрібно не просто зберігати дані, але й організовувати їх таким чином, щоб прискорити виконання алгоритму. Розробка Завершивши етап постановки завдання, ми переходимо до її рішення. Багато з людей, що розробляють програми середнього розміру й складності, уважають, що із цілою програмою впоратися важко. Найкраще спростити процес рішення завдання, розбивши більше завдання на трохи маленьких, котрими було б легше управляти. У результаті програма буде складатися з декількох модулів (modules), що представляють собою самостійні одиниці коду. Модуль може містити одну або кілька функцій, а також інші блоки коду. Варто прагнути до того, щоб модулі були як можна більше незалежними, або слабко зв'язаними (loosely coupled) один з одним. Зрозуміло, це не ставиться до їхніх інтерфейсів (іnterfaces), що представляють собою механізм їхньої взаємодії. Умоглядно модулі можна вважати ізольованими друг від друга. Кожен модуль повинен виконувати своє, точно визначене завдання. Отже, він повинен бути узкоспециализированным (hіghly cohesіve). Модульність Таким чином, модульность (modularіty) - це властивість програм, що складаються зі слабко зв'язаних і вузько спеціалізованих модулів. На етапі проектування важливо точно вказувати не тільки призначення кожного модуля, але й потік даних (data flow) між модулями. Наприклад, розробляючи модуль, потрібно відповісти на наступні питання. Які дані доступні даному модулю під час його виконання? У яких умовах можна виконувати даний модуль? Які дії виконує модуль й як змінюються дані після завершення його роботи? Таким чином, потрібно детально сформулювати припущення, а також вхідні й вихідні дані для кожного модуля. Не слід зневажати можливістю застосування готових модулів, що вирішують ваше завдання. Можливості повторного використання коду, надавані, наприклад мовою C++, звичайно реалізуються у вигляді компилируемых бібліотек. Це означає, що ви не завжди будете мати доступ до вихідного коду функції. Бібліотеки являють собою яскравий приклад колекції готових компонентів програмного забезпечення. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |