Главная страница
Навигация по странице:

  • АЛГОРИТМ - набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий. Виды алгоритмов:  ЛИНЕЙНЫЙ

  • СЛОВЕСНО-ФОРМУЛЬНОЕ ОПИСАНИЕ

  • ГРАФИЧЕСКИЕ СПОСОБЫ ПРЕДСТАВЛЕНИЯ АЛГОРИТМОВ

  • ПРЕДСТАВЛЕНИЕ АЛГОРИТМОВ В ВИДЕ ЛОГИЧЕСКИХ СХЕМ (ПО А.А. ЛЯПУНОВУ)

  • ПРЕДСТАВЛЕНИЕ АЛГОРИТМА В ВИДЕ ПРОГРАММ.

  • АБСТРАКЦИЯ – это отвлечение от всего, что несущественно для достижения частной цели. УТОЧНЕНИЕ

  • АДЕКВАТНОСТЬ - модуль решает те задачи, что нужны пользователю данного модуля. ПОЛНОТА – решаются все значимые задачи в рамках функциональности модуля. МИНИМАЛЬНОСТЬ

  • ПРОСТОТА – этот модуль с интерфейсом элементарен и не представим в виде композиции некоторых более простых операций. ПЕРЕИСПОЛЬЗОВАНИЕ

  • МОДЕЛЬ ЖИЗНЕННОГО ЦИКЛА ПО

  • Преимущества

  • RATIONAL UNIFIED PROCESS (RUP)

  • УНИФИЦИРОВАННЫЙ ПРОЦЕСС РАЗРАБОТКИ ПО

  • ФАЗА ПОСТРОЕНИЯ (CONSTRUCTION)

  • ФАЗА ВНЕДРЕНИЯ (Transition) - происходит развертывание системы в ее рабочей среде, бета-тестирование, подгонка мелких деталей под нужды пользователей. UML

  • Ответы к экзамену (Технология программирования). Как пишется хороший код. Способы представления алгоритмов


    Скачать 2.02 Mb.
    НазваниеКак пишется хороший код. Способы представления алгоритмов
    Дата12.03.2023
    Размер2.02 Mb.
    Формат файлаpdf
    Имя файлаОтветы к экзамену (Технология программирования).pdf
    ТипДокументы
    #983855
    страница1 из 6
      1   2   3   4   5   6

    1
    ОГЛАВЛЕНИЕ
    1.
    *Как пишется хороший код. Способы представления алгоритмов ............................................................. 2 2.
    *Принципы работы со сложными системами. Абстракция, модульность, дополнительные принципы ... 7 3.
    *Жизненный цикл и процессы разработки программного обеспечения ................................................... 8 4.
    *Понятие жизненного цикла. Модели жизненного цикла .......................................................................... 9 5.
    *Унифицированный процесс разработки программного обеспечения RUP. Основные фазы разработки
    11 6.
    *Унифицированный процесс разработки программного обеспечения UML. Основные виды моделей . 13 7.
    *Экстремальное программирование. Основные принципы ..................................................................... 17 8.
    *Экстремальное программирование. Достоинства и недостатки ............................................................. 20 9.
    *Основные этапы развития языка UML. История развития языка UML..................................................... 21 10.
    *Визуальное проектирование. Методология объектно-ориентированного анализа и проектирования
    (ООАП) 22 11.
    *Основные элементы языка UML. Модель сложной системы .............................................................. 25 12.
    *Пакеты в языке UML. Графическое изображение системы и подсистемы в языке UML .................... 29 13.
    *Канонические диаграммы языка UML ................................................................................................. 32 14.
    *Диаграмма вариантов использования как концептуальное представление системы в процессе ее разработки .......................................................................................................................................................... 33 15.
    *Отношения на диаграммах использования ......................................................................................... 35 16.
    *Формализация функциональных требований к системе и особенности спецификации на диаграмме использования .................................................................................................................................................... 37 17.
    *Объекты и классы ................................................................................................................................. 40 18.
    *Стереотипы и классы ............................................................................................................................ 42 19.
    *Элементы графической нотации диаграммы классов ......................................................................... 44 20.
    *Отношения и их графическое изображение на диаграмме классов ................................................... 46 21.
    *Диаграмма классов. Отношение ассоциации ...................................................................................... 50 22.
    *Диаграмма классов. Отношение обобщения ...................................................................................... 54 23.
    *диаграмма клАссов. отношение агрегации и отношение композиции ............................................... 56 24.
    *Язык моделирования UML. Диаграмма состояний. Триггерные и нетриггерные переходы .............. 58 25.
    *Язык моделирования UML. Диаграмма действий. Разделение и слияние потоков управления ....... 60 26.
    *Язык моделирования UML. Диаграмма последовательности. Графическое изображение линий жизни, фокусов управления объектов и сообщений на диаграмме ................................................................. 62 27.
    *Диаграмма последовательности. Ветвление потока управления ....................................................... 63 28.
    *Язык моделирования UML. Диаграмма взаимодействия или кооперация. Реализация диаграммы взаимодействия: объекты, связи между ними, сообщения .............................................................................. 64 29.
    *Физическое представление модели. Диаграммы реализации: компонентов и развертывания.
    Базовые элементы физического представления системы ................................................................................. 69 30.
    *Варианты графического изображения компонентов, интерфейсов и изображение зависимости между компонентами и классами на диаграмме компонентов ........................................................................ 74

    2 31.
    *Диаграмма развертывания. Графическое изображение узлов, соединения и зависимости на диаграмме развертывания ................................................................................................................................. 77 1. *КАК ПИШЕТСЯ ХОРОШИЙ КОД. СПОСОБЫ ПРЕДСТАВЛЕНИЯ
    АЛГОРИТМОВ
    Опытные программисты обладают т.н.
    "набором инструментов программиста", в который входят:
     курсы проектирования, независимые от языка, где изучаются независимые от языка инструменты проектирования (Language
    Independent Design Tools, LIDT);
     разнообразные языки программирования, в том числе и Ассемблер;
     различные аппаратные курсы;
     личный опыт.
    Как пишется хороший код:
     Моделирование;
     представление логики приложения в независимой от языка форме;
     «правило одной страницы».
    Пять элементов хорошей программной разработки:
     получить информацию от некоторого входного источника;
     решить, как эта информация должна организовываться и сохраняться;
     применить некоторый набор инструкций для манипуляции входными данными; эти инструкции могут быть разбиты на четыре главные категории: одиночные операторы, условные операторы, циклы и подпрограммы;
     сообщить о результатах манипуляций над данными;
     собрать вместе все предыдущие элементы, выразив их в модульно- спроектированном, самодокументированном коде с разумной схемой отступов.
    Самодокументированность:

    3
     префикс к названию переменной (например, ivar=1,т.е. int ivar=1):
     осмысленные имена переменных;
     комментарии.
    Грамотно написанный код позволяет быстро ответить на следующие вопросы:
     Какие заголовочные файлы требуются для данного фрагмента кода?
     Какие имена относятся к символическим константам?
     Каковы подстановочные значения для этих констант?
     Какие стандартные типы данных имеются в этом фрагменте?
     Каковы, если они есть, пользовательские типы?
     Каковы имена их элементов?
     Какова размерность массивов, если они есть?
     Говорит ли этот код о каких-либо логических взаимоотношениях?
     Как используются переменные программы?
    Основное профессиональное правило достаточно просто: следует применять стиль кодирования, который будет понятен для кого-то еще, а не только для его автора.
    АЛГОРИТМ
    - набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.
    Виды алгоритмов:

    ЛИНЕЙНЫЙ
    – набор команд
    (указаний), выполняемых последовательно во времени друг за другом;

    РАЗВЕТВЛЯЮЩИЙСЯ
    - алгоритм, содержащий хотя бы одно условие, в результате проверки которого может осуществляться разделение на несколько параллельных ветвей алгоритма;

    ЦИКЛИЧЕСКИЙ
    - алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными.
    Способы представления алгоритмов:
    СЛОВЕСНО-ФОРМУЛЬНОЕ ОПИСАНИЕ
    (форма записи предложений не формализуется, т.е. при записи предложений можно использовать как слова,

    4 так и математические символы. Однако предложения при такой записи алгоритма нумеруются, чтобы иметь возможность обратиться к нужному предложению. Также смысл предложения должен пониматься однозначно.).
    Нахождение площади прямоугольника со сторонами А и В
    1. Начало
    2. Найти длину стороны А
    3. Найти длину стороны В
    4. Умножить А на В
    5. Конец
    1. Начало
    2. X=A
    3. Y=B
    4. S=AB
    5. Конец
    ГРАФИЧЕСКИЕ СПОСОБЫ ПРЕДСТАВЛЕНИЯ АЛГОРИТМОВ
    (с помощью схем алгоритмов). Графические символы, их размеры и правила построения схем алгоритмов определены Единой системой программной документации
    (ЕСПД), являющейся государственным стандартом.

    5
    Операторы итерации

    6
    ПРЕДСТАВЛЕНИЕ АЛГОРИТМОВ В ВИДЕ ЛОГИЧЕСКИХ СХЕМ (ПО А.А.
    ЛЯПУНОВУ)
    представляется в виде выражения, содержащего символы операторов действия, операторов выбора, стрелки для обозначения переходов и оператора останова.
    ПРЕДСТАВЛЕНИЕ АЛГОРИТМА В ВИДЕ ПРОГРАММ.
    Если алгоритм записывается для исполнения на компьютере, то он должен быть строго формализован.
    Для формализации придумано множество языков программирования. Запись алгоритма на таком языке является программой, а процесс перевода алгоритма на язык программирования
    – программированием.

    7 2. *ПРИНЦИПЫ
    РАБОТЫ
    СО
    СЛОЖНЫМИ
    СИСТЕМАМИ.
    АБСТРАКЦИЯ, МОДУЛЬНОСТЬ, ДОПОЛНИТЕЛЬНЫЕ ПРИНЦИПЫ
    АБСТРАКЦИЯ
    – это отвлечение от всего, что несущественно для достижения частной цели.
    УТОЧНЕНИЕ
    – это обратный способ от абстрактного к конкретному.
    Абстракция и уточнение используются для работоспособных решений, гарантирующие свойства результ.системы.
    МОДУЛЬНОСТЬ
    – это принцип организации больших систем в виде набора подсистем, модулей, компонентов.
    Компоненты связаны посредством интерфейсов.
    При делении на модули нужно использовать принципы:
     Выделение интерфейсов и сокрытие информации;
     Адекватность, полнота, минимальность и простота интерфейсов;
     Переиспользование.
    АДЕКВАТНОСТЬ
    - модуль решает те задачи, что нужны пользователю данного модуля.
    ПОЛНОТА
    – решаются все значимые задачи в рамках функциональности модуля.
    МИНИМАЛЬНОСТЬ
    – модулем решаются различные по смыслу задачи, и ни одну из них нельзя реализовать с помощью других модулей.
    ПРОСТОТА
    – этот модуль с интерфейсом элементарен и не представим в виде композиции некоторых более простых операций.
    ПЕРЕИСПОЛЬЗОВАНИЕ
    – принцип, который требует избегать повторений одних и тех же знаний в виде структуры данных в различных частях системы.
    Вместо этого выделяется один источник.

    8 3. *ЖИЗНЕННЫЙ ЦИКЛ И ПРОЦЕССЫ РАЗРАБОТКИ ПРОГРАММНОГО
    ОБЕСПЕЧЕНИЯ
    ЖИЗНЕННЫЙ ЦИКЛ ПО
    — ряд событий, происходящих с системой в процессе ее создания и дальнейшего использования. То есть это время от начального момента создания какого-либо программного продукта до конца его разработки и внедрения. Жизненный цикл программного обеспечения можно представить в виде моделей.
    МОДЕЛЬ ЖИЗНЕННОГО ЦИКЛА ПО
    — структура, содержащая процессы действия и задачи, которые осуществляются в ходе разработки, использования и сопровождения программного продукта.
    Модель кодирования и устранения ошибок
     Постановка задачи;
     Выполнение;
     Проверка результата;
     Переход в начало.
    Каскадная модель («водопад»)
    Преимущества:
    Недостатки:
     Последовательное выполнение этапов проекта в строгом фиксированном порядке;
     Отсутствие обратных связей между этапами;
     Не соответствует реальным
    Выработка системных требований
    Выработка требований к ПО
    Анализ
    Проектирование
    Кодирование
    Тестирование
    Эксплуатация

    9
     Позволяет оценивать качество продукта на каждом этапе. условиям разработки программного продукта.
    Каскадная модель с промежуточным контролем («водоворот»)
    Данная модель является почти эквивалентной по алгоритму предыдущей модели, однако при этом имеет обратные связи с каждым этапом жизненного цикла.
    Недостаток: 10-ти кратное увеличение затрат на разработку.
    V-модель (разработка через тестирование)
    4. *ПОНЯТИЕ ЖИЗНЕННОГО ЦИКЛА. МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА
    ЖИЗНЕННЫЙ ЦИКЛ ПО
    — ряд событий, происходящих с системой в процессе ее создания и дальнейшего использования. То есть это время от начального момента создания какого-либо программного продукта до конца

    10 его разработки и внедрения. Жизненный цикл программного обеспечения можно представить в виде моделей.
    МОДЕЛЬ ЖИЗНЕННОГО ЦИКЛА ПО
    — структура, содержащая процессы действия и задачи, которые осуществляются в ходе разработки, использования и сопровождения программного продукта.
    Модель кодирования и устранения ошибок
     Постановка задачи;
     Выполнение;
     Проверка результата;
     Переход в начало.
    Каскадная модель («водопад»)
    Преимущества:
    Недостатки:
     Последовательное выполнение этапов проекта в строгом фиксированном порядке;
     Позволяет оценивать качество продукта на каждом этапе.
     Отсутствие обратных связей между этапами;
     Не соответствует реальным условиям разработки программного продукта.
    Каскадная модель с промежуточным контролем («водоворот»)
    Выработка системных требований
    Выработка требований к ПО
    Анализ
    Проектирование
    Кодирование
    Тестирование
    Эксплуатация

    11
    Данная модель является почти эквивалентной по алгоритму предыдущей модели, однако при этом имеет обратные связи с каждым этапом жизненного цикла.
    Недостаток: 10-ти кратное увеличение затрат на разработку.
    V-модель (разработка через тестирование)
    5. *УНИФИЦИРОВАННЫЙ ПРОЦЕСС РАЗРАБОТКИ ПРОГРАММНОГО
    ОБЕСПЕЧЕНИЯ RUP. ОСНОВНЫЕ ФАЗЫ РАЗРАБОТКИ
    RATIONAL
    UNIFIED PROCESS
    (RUP)
    — методология разработки программного обеспечения, созданная компанией Rational Software.
     RUP использует итеративную модель разработки.
     В конце каждой итерации (в идеале продолжающейся от 2 до 6 недель) достигается цель и разрабатывается промежуточная версия конечного продукта.
     Быстрое реагирование на меняющиеся требования,
     Обнаружение и устранение рисков на ранних стадиях проекта,
     Эффективный контроль качества создаваемого продукта.

    12
     Первые идеи итеративной модели разработки были заложены в "спиральной модели".
    Начальная фаза (Inception)
     В начале фазы: o Формируются видение и границы проекта. o Создается экономическое обоснование (business case). o Определяются основные требования, ограничения и ключевая функциональность продукта. o Создается базовая версия модели прецедентов. o Оцениваются риски.
     При завершении начальной фазы оценивается достижение этапа жизненного цикла цели, которое предполагает соглашение заинтересованных сторон о продолжении проекта.
    Уточнение (Elaboration)
     Анализ предметной области и построение исполняемой архитектуры, в т.ч.: o Документирование требований (включая детальное описание для большинства прецедентов); o Спроектированную, реализованную и оттестированную исполняемую архитектуру; o Обновленное экономическое обоснование и более точные оценки сроков и стоимости; o Сниженные основные риски;
     спешное выполнение фазы уточнения означает достижение этапа жизненного цикла архитектуры.
    Построение (Construction)
     реализация большей части функциональности продукта;
     Построение завершается первым внешним релизом системы и вехой начальной функциональной готовности.
    Внедрение (Transition)
     создается финальная версия продукта и передается от разработчика к заказчику:

    13 o программу бета-тестирования, o обучение пользователей, o определение качества продукта.
     В случае, если качество не соответствует ожиданиям пользователей или критериям, установленным в фазе Начало, фаза Внедрение повторяется снова. Выполнение всех целей означает достижение вехи готового продукта (Product Release) и завершение полного цикла разработки.
    6. *УНИФИЦИРОВАННЫЙ ПРОЦЕСС РАЗРАБОТКИ ПРОГРАММНОГО
    ОБЕСПЕЧЕНИЯ UML. ОСНОВНЫЕ ВИДЫ МОДЕЛЕЙ
    УНИФИЦИРОВАННЫЙ ПРОЦЕСС РАЗРАБОТКИ ПО
    - Rational Unified
    Process, RUP - является примером так называемого "тяжелого" процесса, детально описанного и предполагающего поддержку собственно разработки исходного кода ПО большим количеством вспомогательных действий
    (разработка планов, ТЗ, проектных моделей, проектной документации и пр.
    Унифицированный процесс разработки ПО основан на следующих идеях:
     Весь ход работ направляется итоговыми целями проекта, выраженными в виде вариантов использования (use cases). Разработка начинается с выделения вариантов использования и на каждом шаге контролируется степенью приближения к их реализации;
     Основным решением, принимаемым в ходе проекта, является архитектура результирующей программной системы;
     Основой процесса разработки являются планируемые и управляемые итерации, объем которых (реализуемая в рамках итерации функциональность и набор компонентов) определяется на основе архитектуры.
    RUP выделяет в жизненном цикле
    4 основные фазы
    , в рамках каждой из которых возможно проведение нескольких итераций:

    ФАЗА НАЧАЛА ПРОЕКТА
    (Inception) - определяются основные цели проекта, руководитель и бюджет, основные средства выполнения — технологии, инструменты, ключевые исполнители;

    14

    ФАЗА ПРОЕКТИРОВАНИЯ
    (Elaboration) - цель этой фазы — на базе основных, наиболее существенных требований разработать стабильную базовую архитектуру продукта;

    ФАЗА ПОСТРОЕНИЯ (CONSTRUCTION)
    - цель этой фазы — детальное прояснение требований и разработка системы, удовлетворяющей им, на основе спроектированной ранее архитектуры;

    ФАЗА ВНЕДРЕНИЯ
    (Transition) - происходит развертывание системы в ее рабочей среде, бета-тестирование, подгонка мелких деталей под нужды пользователей.
    UML
    (англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения, для моделирования бизнес-процессов, системного проектирования и отображения организационных структур.
    Это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML-моделью. UML был создан для определения, визуализации, проектирования и документирования, в основном, программных систем. UML не является языком программирования, но на основании UML-моделей возможна генерация кода.
      1   2   3   4   5   6


    написать администратору сайта