Проект программного обеспечения
Проект программного обеспечения — это конечный продукт процесса разработки программного обеспечения. Его название происходит от аналогии с термином «чертеж» , используемым в традиционной строительной отрасли. Следовательно, настоящий проект программного обеспечения должен иметь ряд ключевых свойств, присущих его аналогу в виде проекта здания. Проектирование программного обеспечения основано на достижении четкого разделения между логически ортогональными аспектами программного обеспечения. Как только это будет достигнуто, это облегчит локализацию связанной логики и использование оптимальной среды описания для каждого из логически независимых компонентов (для каждого проекта).
Характеристики
[ редактировать ]Проекты программного обеспечения сосредоточены на одном аспекте приложения, чтобы обеспечить ясность представления и гарантировать локализацию всей соответствующей логики. Локализация логики аспектов предназначена для улучшения навигации, и это основано на предположении, что программист приложения чаще всего желает просматривать аспекты приложения независимо.
Одноаспектная направленность проекта программного обеспечения означает, что можно выбрать оптимальную среду описания. Например, алгоритмический код лучше всего представить с помощью текстового кода, тогда как графический интерфейс пользователя лучше всего представить с помощью дизайна формы. Выбор интуитивного средства описания, т. е. такого, которое хорошо сочетается с ментальными моделями и конструкциями для конкретного аспекта, может улучшить:
- Простота навигации
- Легкость понимания
- Скорость обнаружения неисправностей
- Умение управлять сложностью
- Легкость возникновения ошибок
Примеры
[ редактировать ]Дизайн формы графического интерфейса
[ редактировать ]Дизайн форм графического пользовательского интерфейса (см. набор инструментов графического пользовательского интерфейса ) широко применяется в индустрии программного обеспечения и позволяет программисту задавать предписывающее описание внешнего вида виджетов графического пользовательского интерфейса в окне. Это описание можно перевести непосредственно в код, отображающий графический интерфейс (поскольку оно носит предписывающий характер).
Машинно-переводимые координационные языки (например, CDL)
[ редактировать ]Такие языки, как язык параллельного описания (CDL), отделяют макроскопическую логику приложения (связь, синхронизацию и арбитраж) от сложных многопоточных и/или многопроцессных приложений в единое непрерывное визуальное представление. Предписывающий характер этого описания означает, что его можно машинно перевести в исполняемую структуру, которую можно протестировать на структурную целостность (обнаружение состояний гонки, взаимоблокировок и т. д.) до того, как станет доступна микроскопическая логика.
Дизайнеры классов
[ редактировать ]Разработчики классов позволяют специфицировать произвольно сложные структуры данных в удобной форме, а предписывающий характер этого описания позволяет генерировать исполняемый код для управления списками, преобразования формата, замены порядка байтов и т. д.
Разработчики программного обеспечения
[ редактировать ]Классы используются разработчиками программного обеспечения в качестве строительных блоков для моделирования более сложных структур. В архитектуре программного обеспечения унифицированный язык моделирования (UML) является отраслевым стандартом, используемым для моделирования проекта программного обеспечения. UML представляет структуру, ассоциации и взаимодействия между различными элементами программного обеспечения, такими как классы, объекты или компоненты. Это помогает разработчику программного обеспечения проектировать, анализировать и передавать идеи другим членам сообщества программного обеспечения.