
- •3. Проектирование сложных объектов основные принципы проектирования.
- •4. Аспекты и стадии проектирования
- •5. Нисходящее и восходящее проектирование и программирование
- •6. Развитие парадигмы программирования (Операциональное программирование, нисходящая технология конструирования программ. Структурное, модульное, объектное и объектно-ориентированное программирование)
- •7. Суть и метод структурного анализа. Основные этапы структурного анализа.
- •8. Программные системы и их жизненный цикл.
- •Процессы жизненного цикла по
- •9. Анализ целевых и разработка требований к программным системам.
- •10. Функциональное моделирование. Стандарты idef0, idef3.
- •11. Информационное моделирование. Стандарты idef1, idef1x
- •12. Методы, модели, современные технологические и инструментальные средства структурного анализа, достоинства и недостатки. Разработка функциональных и информационных моделей.
- •13. Понятие и метод объектно-ориентированного анализа.
- •15. Стадии объектно-ориентированного анализа и определение основных абстракций и механизмов.
- •16. Методы и средства представления. Нотации представления результатов анализа.
- •17. Основы проектирования программных систем, принципы аспекты проектирования. Понятие проекта, методологии проектирования.
- •18. Автоматизация и системы автоматизации проектирования. Процессы разработки проектных решений и проектных процедур.
- •19. Классические методы проектирования и модели представления проектных решений.
- •20. Методы структурного проектирования. Этапы проектирования программных систем.
- •21. Жизненный цикл и этапы проектирования программного обеспечения.
- •Этапы жизненного цикла по:
- •Основные:
- •Модели жизненного цикла по: Водопадная (каскадная, последовательная) модель
- •Итерационная модель
- •Спиральная модель
- •22. Классические технологии разработки программного обеспечения.
- •23. Нисходящее и восходящее проектирование.
- •24. Структурное программирование. Модульное программирование
- •25. Абстракция и абстрагирование. Фундаментальные свойства и принципы объектно-ориентированного представления программных систем.
- •26. Понятие системы, системность, сложная система, системный эффект.
- •Классы, объекты, общая характеристика и отношения между классами и объектами в объектно-ориентированном проектировании.
- •Объектно-ориентированные методы проектирования. Нотации и процессы объектно-ориентированного проектирования
- •Языки визуального моделирования. Язык uml (Unified Modeling Language). Базовые отношения, термины и понятия.
- •Ключевые абстракции и механизмы. Отношения, общие механизмы и диаграммы. Типичные приемы моделирования Общие механизмы языка uml:
- •31. Средства и элементы статических и динамических моделей объектно-ориентированных систем (статические и динамические диаграммы uml).
- •32. Методы и приемы разработки моделей объектно-ориентированных программных систем.
- •33. Основные диаграммы uml (в вопросе по 2-е из 12 основных диаграмм). Представление, сущность, использование.
- •34. Элементы и разработка поведенческих моделей объектно-ориентированных систем. Модели реализации объектно-ориентированных программных систем.
- •35. Паттерны (образцы) проектирования: виды шаблонов и их классификация, распределение «обязанностей» между шаблонами.
- •40. Факторы качества написания программного кода:
- •41. Методы и средства конструирования высококачественного кода.
- •42 Совместная разработка: методы и средства.
- •Методы и средства тестирования и отладки программных приложений.
- •Широкое использование проверенных внешних библиотек.
- •Рефакторинг и оптимизация программного кода.
- •45. Сборка, внедрение и поставка по
- •Выбираем инсталлятор, описываем в нем процесс установки/удаления программы и настраиваем сборку дистрибутива
- •Технологии и средства развертывания, наладки и обслуживания проектов.
- •Язык xml: средства, назначения и особенности использования. Xml и dtd.
- •Методы и средства обработки xml документов с использованием моделей dom и sax, преимущества и недостатки.
- •Языки Extensible Markup Language(xsl) и xsl Transformations (xslt): назначение и особенности использования.
- •Процесс выполнения xslt-преобразования
- •51. Язык xPath и его применение для доступа к элементам xml.
- •52. Унифицированный процесс разработки (rup): общее понятие и терминология.
- •53. Фазы, итерации и циклы разработки. Рабочие процессы, модели и артефакты.
- •54. Модели разработки объектно-ориентированных программных систем и управление рисками.
- •55. Особенности проектирования и разработки распределенных информационных систем.
40. Факторы качества написания программного кода:
Понятность - Назначение ПО должно быть понятным, из самой программы и документации.
Полнота - Все необходимые части программы должны быть представлены и полностью реализованы.
Краткость - Отсутствие лишней, дублирующейся информации. Повторяющиеся части кода должны быть преобразованы в вызов общей процедуры. То же касается и документации.
Портируемость - Лёгкость в адаптации программы к другому окружению: другой архитектуре, платформе, операционной системе или её версии.
Согласованность - По всей программе и в документации должны использоваться одни и те же соглашения, форматы и обозначения.
Сопровождаемость - Насколько сложно изменить программу для удовлетворения новых требований. Это требование также указывает, что программа должна быть хорошо документирована, не слишком запутана, и иметь резерв роста по использованию ресурсов (память, процессор).
Тестируемость - Позволяет ли программа выполнить проверку приёмочных характеристик, поддерживается ли возможность измерения производительности.
Удобство использования-Простота и удобство использования программы. Это требование относится прежде всего к интерфейсу пользователя.
Надёжность-отсутствие отказов и сбоев в работе программ, а также простота исправления дефектов и ошибок:
структурированность
эффективность-Насколько рационально программа относится к ресурсам (память, процессор) при выполнении своих задач.
безопасность
Эффективность программного обеспечения - отношение уровня услуг, предоставляемых программным продуктом пользователю при заданных условиях, к объему используемых ресурсов.
Качество программного обеспечения — характеристика программного обеспечения (ПО) как степени его соответствия требованиям. При этом требования могут трактоваться довольно широко, что порождает целый ряд независимых определений понятия. Чаще всего используется определение ISO 9001, согласно которому качество есть «степень соответствия присущих характеристи
41. Методы и средства конструирования высококачественного кода.
Главным принципом разработки ПО является управление сложностью. Управлять сложностью будет гораздо легче, если при проектировании вы будете стремиться к простоте. Чем больше вариантов проектирования вы пробуете, тем удачнее будет ваш окончательный проект. Одной из самых полезных концепций проектирования является сокрытие информации. Вопрос «Что мне скрыть?» устраняет много сложных проблем проектирования.
Классы
Интерфейс класса должен формировать согласованную абстракцию. Многие проблемы объясняются нарушением одного этого принципа.
Интерфейс класса должен что-то скрывать – особенности взаимодействия с системой, аспекты проектирования или детали реализации.
Включение обычно предпочтительнее, чем наследование, если только вы не моделируете отношение «является».
Наследование – полезный инструмент, но оно повышает сложность, что противоречит принципам, которым является управление сложностью.
Высококачественные методы
Самая важная, но далеко не единственная причина создания методов – улучшение интеллектуальной управляемости программы. Также важно повышение его удобочитаемости, надежности и облегчение его изменения.
Иногда огромную выгоду можно извлечь, создав отдельный метод для просто операции.
Связность методов можно разделить на несколько видов. Самая лучшая – функциональная – достижимая практически всегда.
Имя метода является признаком его качества. Плохое, но точное имя часто указывает на плохое проектирование метода. Плохое и неточное имя не описывает роль метода. Как бы то ни было, плохое имя предполагает, что программу нужно изменить.
Функцию следует использовать, только когда главной целью метода является возврат конкретного значения, описываемого именем функции.
Общие принципы использования переменных
Неграмотная инициализация данных часто приводит к ошибкам.
Минимизируйте область видимости каждой переменной. Группируйте обращения к переменным. Старайтесь делать переменные локальными для методов или классов.
Располагайте команды, использующие одни и те же переменные, как можно ближе друг к другу.
Используйте каждую переменную исключительно с одной целью.
Основные типы данных
Работа с определенными типами данных требует учета множества правил для каждого из них.
Создание собственных типов, если ваш язык это позволяет, упрощает модификацию вашей программы и делает её более самодокументируемой.
Нестандартные типы данных
Структуры могут помочь сделать программы менее сложными, упростить их понимание и сопровождение.
Работа с указателями чревата ошибками.
Избегайте глобальных переменных не только потому, что они опасны, но и потому что их можно заменить чем-то лучшим.
Если вы не можете отказаться от глобальных переменных, работайте с ними через методы доступа.