Темы

Инженерия программного обеспечения

Software Engineering · 113 статей

  1. Оценка и модели зрелости процессов разработки программного обеспечения

    Оценка процессов разработки ПО: Модель CMM и её интеграция CMMI. Уровни зрелости, оптимизация, повышение качества и эффективности разработки.

    #1681 · 4 мин чтения

  2. Быстрые решения и обходные пути.

    Клaдж (kludge) – это быстрое, но неэлегантное решение проблемы, обходной путь в IT, инженерии и других областях. Неэффективно, сложно в поддержке.

    #3985 · 2 мин чтения

  3. Принцип KISS: Простота в дизайне и не только

    Принцип KISS в дизайне: "Keep it simple, stupid!" – простота и эффективность разработки. История возникновения и применение в инженерии и проектировании.

    #4127 · 2 мин чтения

  4. Устаревшие компьютерные системы и приложения

    Устаревшие системы: что это такое? 💻 Определение, характеристики и проблемы поддержки старого кода и технологий в IT. Обновление и замена legacy систем.

    #4415 · 9 мин чтения

  5. Мартин Фаулер: Пионер разработки программного обеспечения

    Мартин Фаулер: известный американский разработчик ПО, автор книги "Рефакторинг" и архитектурного паттерна Presentation Model. Биография и вклад в IT.

    #4895 · 3 мин чтения

  6. Парное программирование: техника совместной разработки программного обеспечения

    Парное программирование: техника разработки ПО, где два программиста работают вместе за одним компьютером. Повышает качество кода и снижает ошибки.

    #5875 · 2 мин чтения

  7. Документация к программному обеспечению: типы и важность требований

    Документация к ПО: что это такое и зачем нужна? Объясняем функции, типы (требования) и важность документации в разработке программного обеспечения.

    #6681 · 8 мин чтения

  8. Спагетти-код, равиоли-код и лазанья-код: проблемы структуры программного кода.

    Спагетти-код: что это такое? Неструктурированный, сложный в поддержке исходный код, причины возникновения и как избежать "лапши" в программах.

    #6952 · 1 мин чтения

  9. Статический анализ программного кода: методы и уровни

    Статический анализ программ: исследование кода без запуска. Автоматизированные инструменты, повышение качества ПО, оценка и понимание программного обеспечения.

    #6974 · 2 мин чтения

  10. Свод знаний в области разработки программного обеспечения (SWEBOK)

    SWEBOK: Полное руководство по инженерному делу в области ПО. Стандарт ISO/IEC, охватывающее знания, навыки и лучшие практики разработки. Бесплатный доступ!

    #6989 · 1 мин чтения

  11. Мифический человеко-месяц: Эссе о разработке программного обеспечения

    Миф о человеко-месяце: классика софт-инженерии (1975). Закон Брукса, эффект второй системы, прототипирование. Управление проектами, IBM OS/360.

    #7574 · 7 мин чтения

  12. Каскадная модель разработки программного обеспечения

    Каскадная модель разработки: последовательные этапы (концепция, анализ, дизайн, тестирование). Классический подход в SDLC, возникший в строительстве и производстве.

    #8107 · 3 мин чтения

  13. Ошибки в программном обеспечении: от сбоев до катастроф

    Ошибка в программном обеспечении: что это такое, причины и последствия. От мелких недочетов до серьезных сбоев, приводящих к катастрофам.

    #8685 · 13 мин чтения

  14. Черновой вариант предложения: метод "чучело" в бизнесе и разработке.

    Предложение "чучело" – это черновой вариант для обсуждения недостатков и поиска лучших решений в бизнесе и инженерии. Стимулирует мозговой штурм!

    #10597 · 1 мин чтения

  15. Закон Линуса: Обнаружение ошибок и сила открытого исходного кода.

    Закон Линуса: "Достаточно глаз – и все баги поверхностны". Эффективность открытого ПО и ревью кода для поиска ошибок и уязвимостей. (158 characters)

    #16245 · 2 мин чтения

  16. Разрастание функциональности: причины и контроль

    Разрастание функционала: что это такое? Узнайте о причинах, последствиях "утечки функций" в проектах и продуктах. Избегайте удорожания и провала!

    #16820 · 6 мин чтения

  17. Спиральная модель разработки программного обеспечения: риски и характеристики.

    Спиральная модель разработки ПО: риско-ориентированный подход, объединяющий элементы Waterfall, инкрементной разработки и прототипирования. Обзор модели Боэма.

    #47107 · 5 мин чтения

  18. Бизнес-логика в программном обеспечении

    Бизнес-логика в ПО: правила обработки данных, определяющие функциональность. Отличие от UI/инфраструктуры. Важность и изменчивость бизнес-логики.

    #49073 · 2 мин чтения

  19. Ведущий программист: обязанности и роль в разработке программного обеспечения.

    Ведущий программист: обязанности, роль в команде разработки ПО, техническое руководство и менторство. Отличие от архитектора ПО. Ключевые навыки.

    #49548 · 2 мин чтения

  20. Итеративно-инкрементная разработка программного обеспечения

    Итеративная и инкрементная разработка: методология, объединяющая итерационный дизайн и поэтапное создание. Применение в разработке ПО с 1985 года.

    #50591 · 6 мин чтения

  21. Шаблоны проектирования в разработке программного обеспечения

    Паттерны проектирования в разработке ПО: повторно используемые решения для типовых задач. Ускоряют разработку, повышают качество кода, избегая изобретения велосипеда.

    #50804 · 9 мин чтения

  22. Метрики программного обеспечения: определение и применение

    Метрики ПО: стандарты измерения качества, производительности и сложности программного обеспечения. Объективные данные для планирования и оптимизации разработки.

    #55832 · 1 мин чтения

  23. Портирование программного обеспечения: адаптация к новым средам

    Портирование ПО: адаптация программного обеспечения к новым платформам, ОС и CPU. Узнайте, что такое переносимость и как снизить затраты на разработку!

    #60924 · 6 мин чтения

  24. Процесс планирования программных решений

    Проектирование ПО: планирование архитектуры и компонентов до кодирования. Этапы, цели и документация разработки программного обеспечения. 🚀💻

    #62462 · 8 мин чтения

  25. Рациональный унифицированный процесс разработки программного обеспечения

    Рациональный унифицированный процесс (RUP): гибкий фреймворк разработки ПО от IBM. Итеративный подход, 4 фазы, адаптация под нужды проекта.

    #64231 · 3 мин чтения

  26. Антипаттерны: Распространенные неэффективные решения проблем

    Антипаттерны: распространенные, но неэффективные решения проблем в разработке ПО, управлении проектами и бизнесе. История и примеры.

    #64304 · 2 мин чтения

  27. Программирование методом копирования и вставки: недостатки и допустимые случаи

    Программирование "копипастой": что это, почему это плохо и когда допустимо. Повторяющийся код, недостатки, примеры и альтернативы. Оптимизация кода.

    #64319 · 2 мин чтения

  28. Принцип разделения ответственности в программировании

    Разделение ответственности в программировании: принцип создания модульных программ с четко определенными интерфейсами. Улучшает структуру и поддержку кода.

    #64366 · 5 мин чтения

  29. Быстрая разработка программного обеспечения: концепции и подходы

    Быстрая разработка ПО (RAD): адаптивный подход, прототипирование вместо планирования. Инструменты RAD для UI-ориентированных приложений. Эффективная разработка!

    #65408 · 4 мин чтения

  30. Строки кода как метрика размера программного обеспечения

    SLOC (строки кода) – метрика для измерения размера программы. Оценивает трудозатраты, продуктивность и поддерживаемость ПО. История и применение.

    #73826 · 2 мин чтения

  31. Нет серебряной пули: Сущность и случайность в разработке программного обеспечения.

    Нет "серебряной пули" в разработке ПО: анализ статьи Фреда Брукса о сложности, продуктивности и ограничениях роста в инженерии программного обеспечения.

    #75173 · 2 мин чтения

  32. Авионика: Безопасность и надежность встраиваемого программного обеспечения

    Авионика: разработка безопасного и надежного встраиваемого ПО с юридическими требованиями. Процесс сертифицирован, на 15% дороже, но эффективнее.

    #76083 · 9 мин чтения

  33. Разрастание и замедление программного обеспечения

    Программный "раздутый код": почему софт замедляется и требует больше ресурсов? Причины, признаки и влияние на производительность компьютера. Оптимизация ПО.

    #81264 · 8 мин чтения

  34. Системные требования программного обеспечения

    Системные требования ПО: минимум и рекомендуемые параметры для эффективной работы. Узнайте, как растущие требования влияют на апгрейд компьютеров.

    #83529 · 4 мин чтения

  35. Модель оценки стоимости программного обеспечения COCOMO

    Модель COCOMO: оценка стоимости разработки ПО. Основана на регрессионном анализе 63/163 проектов, позволяет прогнозировать затраты, время и ресурсы.

    #85155 · 2 мин чтения

  36. Небольшое дело программирования: ирония и реальность разработки

    SMOP в разработке ПО: ироничное обозначение кажущихся простыми задач, требующих больших усилий. О недооценке сложности и "играх" в программировании.

    #86346 · 1 мин чтения

  37. Хаотичная модель разработки программного обеспечения: теория и стратегия.

    Хаосная модель разработки ПО: объединяет управление проектами и решение технических задач. Создана L.B.S. Raccoon как альтернатива Waterfall и Spiral.

    #88946 · 2 мин чтения

  38. Проектирование с учётом возможных ошибок и рисков

    Защитный дизайн: предотвращение ошибок и неправильного использования устройств. Планирование на этапе проектирования для минимизации рисков и последствий.

    #101816 · 2 мин чтения

  39. Экспертная оценка программного обеспечения: Процесс инспекции

    Проверка кода и документации: обзор, выявление дефектов, инспекции по Фэгану. Повышение качества ПО с помощью опытных рецензентов.

    #103437 · 3 мин чтения

  40. "Круфт": компьютерный жаргон для ненужных элементов и устаревшего кода.

    Круфт: что это такое? Объяснение компьютерного термина, означающего ненужные, устаревшие элементы в ПО. История происхождения от MIT, значение и примеры.

    #111112 · 2 мин чтения

  41. Анализ требований в инженерии систем и программного обеспечения

    Анализ требований в инженерии: определение, документирование и управление потребностями для успешных проектов. JRD сессии, бизнес-анализ, системный дизайн.

    #111587 · 6 мин чтения

  42. Комплексное руководство по созданию программного обеспечения

    Code Complete: книга Стива Макконнелла о разработке ПО (1993). Техники кодирования, отладки, тестирования и планирования. Повышение продуктивности!

    #123246 · 2 мин чтения

  43. Философия и принципы гибкой разработки программного обеспечения

    Agile-разработка: гибкий подход к созданию ПО, ценящий взаимодействие, работающий софт и адаптацию к изменениям. История и принципы Agile.

    #128072 · 15 мин чтения

  44. Пограничные случаи в разработке и тестировании

    Редкие случаи (edge cases) в разработке: проблемы на граничных параметрах, вызванные нетипичным поведением, сложностью систем и ограничениями ресурсов. Тестирование важно!

    #129744 · 2 мин чтения

  45. Методология разработки программного обеспечения Jackson System Development (JSD)

    JSD: методология разработки ПО, разработанная Jackson и Cameron в 80-х. Линейный подход к жизненному циклу системы, начиная с общих требований.

    #133616 · 3 мин чтения

  46. Верификация и валидация в разработке программного обеспечения

    Проверка и валидация (V&V) в разработке ПО: обеспечение соответствия требованиям, качества и целей. Контроль качества, тестирование, инжиниринг ПО.

    #135317 · 3 мин чтения

  47. Синтаксические методы в разработке программного обеспечения

    Синтаксические методы в разработке ПО: обнаружение и предотвращение ошибок на уровне структуры кода. Альтернатива формальным методам – проще и дешевле.

    #135319 · 2 мин чтения

  48. Специализированные знания в конкретной области

    Доменные знания: экспертные знания в конкретной области. Важны для специалистов, особенно в IT (разработка ПО). Получение от экспертов предметной области.

    #141205 · 1 мин чтения

  49. Разработка программного обеспечения в существующей инфраструктуре.

    Разработка в условиях существующих систем (brownfield): внедрение нового ПО в работающую среду. Особенности, преимущества и отличия от "чистого" проекта.

    #142136 · 6 мин чтения

  50. История и развитие программной инженерии

    История разработки ПО: от возникновения в 60-х до современных принципов качества, лучших практик и управления проектами. Создание надежного и эффективного софта.

    #142279 · 10 мин чтения

  51. Аспектно-ориентированное программирование и модульность проблем

    Аспекты в программировании: что это такое и зачем нужны? Разделение задач, модульность, Aspect-Oriented Programming (AOP) – повышение качества кода.

    #142816 · 1 мин чтения

  52. Модификация программного обеспечения после выпуска

    Поддержка ПО: модификация после поставки, аутсорсинг, причины низкой квалификации и сложности сопровождения. Важно для разработки и SEO.

    #144951 · 8 мин чтения

  53. Аспектно-ориентированное программирование: сквозные задачи и проблемы их реализации.

    Аспектно-ориентированное программирование: что такое сквозные задачи? Избегайте дублирования кода и запутанных зависимостей. Разработка, архитектура ПО.

    #148310 · 1 мин чтения

  54. Прагматичный программист: От ремесленника к мастеру

    Прагматичный программист: советы от экспертов по разработке ПО. Книга Эндрю Ханта и Дэвида Томаса – для начинающих и опытных разработчиков. Обновленное издание 2019!

    #152522 · 1 мин чтения

  55. Инженерное проектирование требований: определение и управление

    Инжиниринг требований: определение, документирование и поддержка требований в разработке систем и ПО. История, этапы и важность RE в инженерии.

    #167158 · 3 мин чтения

  56. Спецификация программных требований: разработка и лучшие практики

    Разработка ПО: SRS – спецификация требований к программному обеспечению. Описывает функции, взаимодействие с пользователем и снижает риски переработки.

    #168090 · 1 мин чтения

  57. Цикломатическая сложность программного обеспечения

    Цикломатическая сложность: метрика для оценки сложности программного кода. Разработана МакКейбом в 1976 году, использует графы потока управления.

    #170962 · 2 мин чтения

  58. Повторное использование кода в разработке программного обеспечения.

    Повторное использование кода в разработке ПО: принципы, методы (библиотеки, фреймворки), преимущества и недостатки. Снижение технического долга.

    #179428 · 6 мин чтения

  59. Прототипирование программного обеспечения: методы и преимущества

    Прототипирование ПО: создание неполных версий приложений для сбора обратной связи и проверки соответствия требованиям. Экономия времени и ресурсов!

    #179920 · 7 мин чтения

  60. Инспекция Фэгана: Обнаружение дефектов в документации и программном коде.

    Фаган инспекция: обнаружение дефектов в документации (код, спецификации) на этапах разработки ПО. Групповой анализ, критерии входа/выхода.

    #190385 · 1 мин чтения

  61. Персональный процесс разработки программного обеспечения (PSP) для повышения качества кода.

    Улучшение качества кода с PSP: личный процесс разработки ПО для отслеживания, планирования и повышения эффективности. Анализ дефектов и времени разработки.

    #193015 · 4 мин чтения

  62. Инженерия веб-приложений: методологии, инструменты и проблемы разработки.

    Веб-приложения: разработка, usability, производительность, безопасность. Обзор проблем и современных подходов к созданию надежных и масштабируемых решений.

    #199060 · 1 мин чтения

  63. V-образная модель разработки программного обеспечения

    V-модель разработки ПО: графическое представление жизненного цикла, этапы и результаты. Валидация систем, управление проектами, стандарты разработки.

    #199466 · 4 мин чтения

  64. Расширяемость программных систем: возможности и усилия

    Расширяемость ПО: принцип проектирования для будущего роста. Легкое добавление/изменение функций без нарушения работы системы. Минимизация изменений кода.

    #234775 · 4 мин чтения

  65. Итеративный дизайн: методология циклического прототипирования и улучшения

    Итеративный дизайн: методология разработки через прототипирование, тестирование и анализ. Постоянное улучшение качества и функциональности продукта.

    #235989 · 2 мин чтения

  66. Внедрение программного обеспечения: моделирование процессов и выбор стратегии

    Внедрение программного обеспечения: методология, моделирование бизнес-процессов (ERP как пример). Успешная интеграция ПО, учет организационных и человеческих факторов.

    #238784 · 4 мин чтения

  67. Принцип Питера в разработке программного обеспечения: как проекты умирают из-за сложности.

    Принцип программного Питера: как избежать гибели сложного проекта. Симптомы, причины и способы предотвращения чрезмерной сложности в разработке ПО.

    #242676 · 2 мин чтения

  68. Программирование в масштабе: от малого к большому.

    Программирование в масштабе: различие между проектированием больших систем и написанием кода. Обзор концепций DeRemer & Kron, сравнение с подходами Брукса и Ousterhout.

    #252669 · 3 мин чтения

  69. Применение принципов бережливого производства в разработке программного обеспечения

    Бережливое производство в разработке ПО: принципы, инструменты и практики, адаптированные из Toyota Production System. Книга Поппендиков – основа Lean Software Development.

    #262731 · 8 мин чтения

  70. Разработка программного обеспечения на основе управляемых функциями (FDD)

    Разработка ПО: Feature Driven Development (FDD) – гибкий Agile-метод для быстрой поставки работающего софта. Итеративный процесс, ориентированный на функции.

    #262823 · 5 мин чтения

  71. Функциональное проектирование: принципы, преимущества и применение.

    Функциональный дизайн: упрощение разработки ПО и 3D-моделей. Модульность, единственная ответственность, низкая связанность – для лёгкой модификации и экономии.

    #269398 · 2 мин чтения

  72. Ковбойское кодирование: хаотичная разработка программного обеспечения.

    Ковбойское кодирование в разработке ПО: автономность программистов, отсутствие координации и контроля. Риски и причины возникновения. Эффективность и недостатки.

    #279807 · 3 мин чтения

  73. Декомпозиция в информатике: принципы и подходы

    Декомпозиция в программировании: разбиение сложных систем на простые части для облегчения разработки, понимания и поддержки. Модульность, ООП и др. подходы.

    #289376 · 1 мин чтения

  74. Software package metrics

    #295619 · 2 мин чтения

  75. Закон Конвея: связь между организационной структурой и архитектурой систем

    Закон Конвея: как организационная структура влияет на архитектуру систем. Связь между коммуникацией в команде и дизайном ПО. Улучшайте разработку!

    #297640 · 2 мин чтения

  76. Интенциональное программирование: кодирование намерений в программном обеспечении.

    Ин intentional programming – парадигма программирования, кодирующая намерения разработчика. Упрощает разработку, повышает модульность и повторное использование кода.

    #300067 · 5 мин чтения

  77. Архитектор систем: роль, обязанности и требования

    Системный архитектор: определение, задачи и роль в IT. Разработка архитектуры ПО и оборудования, взаимодействие компонентов, будущее расширение системы.

    #315846 · 9 мин чтения

  78. Software craftsmanship

    #333935 · 3 мин чтения

  79. Система C3: История разработки зарплатного программного обеспечения Chrysler

    C3 от Chrysler: история разработки системы расчета зарплаты на Smalltalk и GemStone. Важный проект в истории экстремального программирования (XP).

    #335640 · 2 мин чтения

  80. Сложность программного обеспечения: типы, влияние и измерение.

    Сложность программного обеспечения: различие между "сложным" и "запутанным". Экспоненциальный рост взаимодействий усложняет понимание больших систем. SEO-оптимизация.

    #340084 · 1 мин чтения

  81. Orthogonal defect classification

    #350412 · 3 мин чтения

  82. Оценка и измерение нефункциональных требований с использованием SNAP

    Нефункциональные требования (NFR): фреймворк для структурирования. Анализ начинается с softgoals – общих целей (юзабилити, производительность, безопасность).

    #353085 · 1 мин чтения

  83. Software factory

    #355475 · 2 мин чтения

  84. Нефункциональные требования в системной инженерии

    Нефункциональные требования в системной инженерии: что это, чем отличаются от функциональных, роль в архитектуре системы. Оптимизация и качество системы.

    #359178 · 1 мин чтения

  85. Software visualization

    #359223 · 2 мин чтения

  86. Обеспечение качества и безопасности программного обеспечения

    Обеспечение качества ПО: надёжность, безопасность и тестирование на всех этапах разработки. Соответствие стандартам CERT SCS для защиты от уязвимостей.

    #360265 · 9 мин чтения

  87. Большое проектирование заранее: недостатки и альтернативы.

    BDUF: что это такое? Подробно о подходе "большого проектирования заранее" в разработке ПО, его недостатках и альтернативах в Agile.

    #367454 · 2 мин чтения

  88. Принцип DRY: Не повторяйся в разработке программного обеспечения

    Принцип DRY в разработке ПО: избегайте повторений кода и данных! Уменьшите избыточность, используйте абстракции для гибкости и простоты поддержки.

    #375362 · 3 мин чтения

  89. Управление цифровыми продуктами

    Управление цифровыми продуктами: разработка, запуск и поддержка софта для максимизации прибыли. Ключевые аспекты, жизненный цикл и анализ рынка.

    #377612 · 2 мин чтения

  90. Профессия: продакт-менеджер – стратегия и развитие продукта.

    Продуктовый менеджер: кто это и чем занимается? Разработка стратегии, управление функционалом и командами для создания успешных продуктов. Ключевая роль в бизнесе!

    #380637 · 3 мин чтения

  91. Модель "Вход-Процесс-Выход": Обзор и Применение

    Модель "вход-процесс-выход" (IPO) – основа системного анализа и разработки ПО. Описывает структуру обработки информации, производства и программ.

    #389767 · 1 мин чтения

  92. Экстремальное программирование: практики и планирование разработки

    Экстремальное программирование (XP): гибкая методология разработки ПО. 12 практик, парное программирование, лучшие практики инженерии. Agile разработка.

    #394671 · 11 мин чтения

  93. Программное обеспечение для алгоритмического управления проектами разработки ПО

    Программное обеспечение SEER для управления проектами: оценка ресурсов разработки, анализ рисков на основе модели Softcost (1966-1980). Автоматизация оценки ПО.

    #398441 · 2 мин чтения

  94. Проблемно-ориентированное собеседование при приеме на работу в IT

    Технические собеседования в IT: оценка навыков программирования, алгоритмов и решения задач. Подготовка к кодинг-интервью, как в Microsoft.

    #403710 · 1 мин чтения

  95. Методология исследований в области разработки программного обеспечения.

    Экспериментальная разработка ПО: методы, исследования, эксперименты и сбор данных для создания теорий. Рекомендации по повышению эффективности исследований.

    #404378 · 1 мин чтения

  96. Модель некомпетентности: Пародия на CMMI в разработке ПО

    Модель незрелости возможностей (CIMM) – пародия на CMM, описывающая уровни ниже 1-го уровня. Контраст зрелости процессов в разработке ПО. 🚀

    #405167 · 3 мин чтения

  97. Управление проектами разработки программного обеспечения: коммуникации и разрешение конфликтов

    Управление проектами разработки ПО: планирование, реализация, контроль. Бизнес-ориентированные процессы для эффективного управления разработкой программного обеспечения.

    #419231 · 4 мин чтения

  98. Автоматизированное изучение и обнаружение приложений (АИОП)

    Автоматический анализ приложений (ADU): обнаружение метаданных, бизнес-правил и связей с реестром. Экономит время разработчиков и снижает затраты на анализ изменений.

    #420480 · 1 мин чтения

  99. Эмерджентный дизайн: от образования к разработке программного обеспечения

    Эмерджентный дизайн в образовании: теория системных изменений, адаптация к технологиям через учет локальной культуры и опыт Таиланда.

    #422513 · 1 мин чтения

  100. Закон тривиальности: внимание к незначительному и простому

    Закон тривиальности: почему организации тратят время на мелочи? Разбор эффекта "велосипедного сарая" в управлении и разработке ПО. Важные проекты игнорируются.

    #425827 · 2 мин чтения