Введение
Процесс разработки программного обеспечения
Рациональный унифицированный процесс (RUP) — это итеративная структура разработки программного обеспечения, созданная компанией Rational Software Corporation, которая с 2003 года является подразделением IBM. RUP — это не единый, жёстко регламентированный процесс, а скорее гибкая структура, предназначенная для адаптации организациями разработки и командами программных проектов, которые выбирают элементы процесса, соответствующие их потребностям. RUP является конкретной реализацией Унифицированного процесса.
Четыре этапа жизненного цикла проекта
В рамках RUP определен жизненный цикл проекта, состоящий из четырех фаз. Эти фазы позволяют представить процесс на высоком уровне, аналогично представлению проекта, реализованного по каскадной модели ("водопад"), хотя суть процесса заключается в итерациях разработки, которые присутствуют во всех фазах. Кроме того, каждая фаза имеет одну ключевую цель и контрольную точку в конце, свидетельствующую о достижении этой цели. Визуальное представление фаз и дисциплин RUP во времени называется диаграммой RUP.
Фаза строительства
Основная цель – создание программной системы. На этом этапе основное внимание уделяется разработке компонентов и других функций системы. Именно на этой фазе выполняется большая часть программирования. В крупных проектах может быть проведено несколько итераций разработки, чтобы разбить варианты использования на управляемые сегменты и создать демонстрационные прототипы.
Переходный этап
Основная цель – перевести систему из стадии разработки в стадию эксплуатации, сделав её доступной и понятной для конечного пользователя. Деятельность на этом этапе включает в себя обучение конечных пользователей и специалистов по поддержке, а также бета-тестирование системы для подтверждения соответствия её ожиданиям пользователей. Система также проходит этап оценки, в ходе которого разработчики, не выполняющие необходимую работу, заменяются или отстраняются. Продукт проверяется на соответствие уровню качества, установленному на этапе инициации. Если все цели достигнуты, достигается веха выпуска продукта, и цикл разработки завершается.
Продукт IBM Rational Method Composer
Продукт IBM Rational Method Composer — это инструмент для разработки, настройки, просмотра и публикации процессов. Подробности см. в документации IBM Rational Method Composer и в проекте Eclipse Process Framework (EPF) с открытым исходным кодом.
Сертификация
В январе 2007 года был выпущен новый экзамен для получения сертификации RUP для IBM Certified Solution Designer – Rational Unified Process 7.0, заменяющий предыдущую версию курса IBM Rational Certified Specialist – Rational Unified Process. Новый экзамен проверяет не только знания содержания RUP, но и элементы структуры процесса. Для успешной сдачи нового экзамена по сертификации RUP необходимо сдать тест IBM 839: Rational Unified Process v7.0. На выполнение экзамена из 52 вопросов отводится 75 минут. Проходной балл составляет 62%.
Шесть лучших практик
Для программных проектов определены шесть лучших практик разработки программного обеспечения, позволяющих минимизировать ошибки и повысить производительность. Это:
Develop iterativelyIt is best to know all requirements in advance; however, often this is not the case. Several software development processes exist that deal with providing solutions to minimize cost in terms of development phases. Manage requirements Always keep in mind the requirements set by users. Use components Breaking down an advanced project is not only suggested but in fact unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of object oriented programming. Model visually Use diagrams to represent all major components, users, and their interaction. "UML", short for Unified Modeling Language, is one tool that can be used to make this task more feasible. Verify quality Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation. Control changes Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result, it is essential to make sure that changes made to a system are synchronized and verified constantly. (See Continuous integration).
Разработка итерациями. В идеале, лучше знать все требования заранее, однако часто это невозможно. Существуют различные процессы разработки программного обеспечения, направленные на минимизацию затрат на разных этапах разработки.
Develop iterativelyIt is best to know all requirements in advance; however, often this is not the case. Several software development processes exist that deal with providing solutions to minimize cost in terms of development phases. Manage requirements Always keep in mind the requirements set by users. Use components Breaking down an advanced project is not only suggested but in fact unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of object oriented programming. Model visually Use diagrams to represent all major components, users, and their interaction. "UML", short for Unified Modeling Language, is one tool that can be used to make this task more feasible. Verify quality Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation. Control changes Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result, it is essential to make sure that changes made to a system are synchronized and verified constantly. (See Continuous integration).
Управление требованиями. Всегда учитывайте требования, предъявляемые пользователями.
Develop iterativelyIt is best to know all requirements in advance; however, often this is not the case. Several software development processes exist that deal with providing solutions to minimize cost in terms of development phases. Manage requirements Always keep in mind the requirements set by users. Use components Breaking down an advanced project is not only suggested but in fact unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of object oriented programming. Model visually Use diagrams to represent all major components, users, and their interaction. "UML", short for Unified Modeling Language, is one tool that can be used to make this task more feasible. Verify quality Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation. Control changes Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result, it is essential to make sure that changes made to a system are synchronized and verified constantly. (See Continuous integration).
Использование компонентов. Разбиение сложного проекта не только рекомендуется, но и фактически неизбежно. Это позволяет тестировать отдельные компоненты до их интеграции в более крупную систему. Кроме того, повторное использование кода – значительное преимущество, которое легче реализовать с помощью объектно-ориентированного программирования.
Develop iterativelyIt is best to know all requirements in advance; however, often this is not the case. Several software development processes exist that deal with providing solutions to minimize cost in terms of development phases. Manage requirements Always keep in mind the requirements set by users. Use components Breaking down an advanced project is not only suggested but in fact unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of object oriented programming. Model visually Use diagrams to represent all major components, users, and their interaction. "UML", short for Unified Modeling Language, is one tool that can be used to make this task more feasible. Verify quality Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation. Control changes Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result, it is essential to make sure that changes made to a system are synchronized and verified constantly. (See Continuous integration).
Визуальное моделирование. Используйте диаграммы для представления основных компонентов, пользователей и их взаимодействия. "UML" (Unified Modeling Language – унифицированный язык моделирования) – один из инструментов, облегчающих эту задачу.
Develop iterativelyIt is best to know all requirements in advance; however, often this is not the case. Several software development processes exist that deal with providing solutions to minimize cost in terms of development phases. Manage requirements Always keep in mind the requirements set by users. Use components Breaking down an advanced project is not only suggested but in fact unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of object oriented programming. Model visually Use diagrams to represent all major components, users, and their interaction. "UML", short for Unified Modeling Language, is one tool that can be used to make this task more feasible. Verify quality Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation. Control changes Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result, it is essential to make sure that changes made to a system are synchronized and verified constantly. (See Continuous integration).
Проверка качества. Тестирование должно быть неотъемлемой частью проекта на любом этапе. По мере развития проекта тестирование становится более трудоемким, но должно оставаться постоянным фактором при создании любого программного продукта.
Develop iterativelyIt is best to know all requirements in advance; however, often this is not the case. Several software development processes exist that deal with providing solutions to minimize cost in terms of development phases. Manage requirements Always keep in mind the requirements set by users. Use components Breaking down an advanced project is not only suggested but in fact unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of object oriented programming. Model visually Use diagrams to represent all major components, users, and their interaction. "UML", short for Unified Modeling Language, is one tool that can be used to make this task more feasible. Verify quality Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation. Control changes Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result, it is essential to make sure that changes made to a system are synchronized and verified constantly. (See Continuous integration).
Контроль изменений. Многие проекты разрабатываются несколькими командами, часто в разных местах, с использованием различных платформ и т.д. Поэтому важно обеспечить синхронизацию и постоянную проверку любых изменений, вносимых в систему. (См. Непрерывная интеграция).
Develop iterativelyIt is best to know all requirements in advance; however, often this is not the case. Several software development processes exist that deal with providing solutions to minimize cost in terms of development phases. Manage requirements Always keep in mind the requirements set by users. Use components Breaking down an advanced project is not only suggested but in fact unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of object oriented programming. Model visually Use diagrams to represent all major components, users, and their interaction. "UML", short for Unified Modeling Language, is one tool that can be used to make this task more feasible. Verify quality Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation. Control changes Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result, it is essential to make sure that changes made to a system are synchronized and verified constantly. (See Continuous integration).