Cтраница 4
Удивительно, что разработчики программного обеспечения не получают никакой специальной подготовки по общим методам решения задач. Преподавая на курсах проектирования программного обеспечения, я заметил, что удачные решения сложных проблем проектирования обычно находят те студенты, которые, сознательно или подсознательно, применяют общие правила решения задач. [46]
Пользователи, обладающие опытом работы с супермини - ЭВМ и большими ЭВМ, могут воспользоваться недорогими однопользовательскими системами разработки для 32-разрядных МП, которые допускают более высокий уровень взаимодействия с целевой системой, или даже могут решаться разрабатывать программное обеспечение на целевой машине. Вместо того чтобы при проектировании высокоуровневого программного обеспечения несколько программистов совместно работали на многопользовательской супермини - ЭВМ, может оказаться более экономичным предоставить каждому программисту отдельную 32-разрядную систему разработки. [47]
Управляющая процедура ( имя RSLEFP), реализующая метод LD / / - факторизации для решения СЛАУ с разреженными матрицами, представляет собой программную единицу, объединяющую пять процедур ( блоков), каждая из которых имеет один вход и один выход. Таким образом, принцип модульности проектирования программного обеспечения в данном случае не нарушен. Поскольку вызывающая ( проблемно-ориентированная) процедура не должна иметь доступа к этой внутренней памяти, информационная связь между блоками может осуществляться только в результате объединения всех процедур в одну программную единицу. Рассмотрим функционирование каждого блока. [48]
Для каждого уровня формулируются свои принципы проектирования программного обеспечения, анализа и языка описания. Программная проверка на непротиворечивость производится на каждом уровне, но, кроме того, были созданы дополнительные программы, осуществляющие проверку на непротиворечивость между уровнями. [49]
![]() |
Анализ типичного вызова по ссылке с аргументом указателем. [50] |
Использование должным образом принципа минимизации привилегий при проектировании программного обеспечения весьма существенно сокращает время отладки и количество нежелательных побочных эффектов, упрощает модификацию и сопровождение программы. [51]
Название книги наводит на мысль, что в ней пойдет речь об управлении процессом проектирования программного обеспечения. На самом деле так оно и есть, но что же такое проектирование программного обеспечения. [52]
![]() |
Пример иерархии наследования типов данных. [53] |
Такая семантика меток позволяет ставить вопрос о реализуемости модели вычислений на заданной иерархии классов токенов. Подобная система типов может рассматриваться как основа для реализации концепции полиморфизма при компонентном проектировании программного обеспечения. [54]
Игра в крестики-нолики является хорошим примером для иллюстрации различия между строгим и эвристическим подходами. Этот пример имеет практическое значение для решения некоторых современных проблем, возникающих при проектировании программного обеспечения. Игра в крестики-нолики достаточно проста, что позволяет развить стратегию игры, основанную на строгом подходе. В то же время эта игра и довольно сложна, так что многие проектировщики программного обеспечения, сталкиваясь с проблемой выбора метода, отдают предпочтение эвристическому подходу. Последний более прост в применении, однако в этом случае не исключены ситуации неправильной работы программы, что создает дополнительные осложнения. [55]
Прежде всего нам нужно договориться о терминах. Рисунок 15.1 показывает, что процесс проектирования в целом распадается на две основных составляющих - системное проектирование и проектирование программного обеспечения. [56]