- •1. Тенденции развития ит. Понятие программного обеспечения.
- •2. Рынок по в России и других странах. Защита авторских прав разработчиков.
- •3. Обобщенные критерии качества по.
- •4. Элементарные критерии качества и метрики по.
- •5. Факторы, влияющие на выбор системы программирования.
- •6. Жизненный цикл по.
- •7. Функционально-ориентированная стратегия разработки по.
- •8. Принципы построения схемы иерархии.
- •9. Объектно-ориентированная стратегия разработки по.
- •10. Гибкая технология разработки по.
- •11. Риски при разработке по.
- •12. Стандарт uml.
- •13. Диаграммы прецедентов.
- •14. Сценарии.
- •15. Этап анализа требований.
- •16. Отношения между классами: ассоциации.
- •17. Отношение агрегирования.
- •18. Отношение зависимости.
- •19. Диаграммы классов.
- •20. Диаграммы объектов.
- •21. Эволюция в процессе объектно-ориентированной разработки.
- •22. Понятие объекта и класса.
- •23. Диаграммы последовательностей.
- •24. Case-средства.
- •25. Сопоставление объектно-ориентированной и функционально-ориентированной стратегий.
- •26. Базовые конструкции структурного программирования.
- •27. Теоремы структурного программирования.
- •28. Декомпозиция структурных схем.
- •29. Типы структурных схем, тождественные преобразования. (???).
- •30. Оптимизация выражений
- •31. Оптимизация циклов.
- •32. Псевдокод и пошаговая детализация.
- •33. Диаграммы деятельности.
- •34. Методы экономии оперативной памяти.
- •35. Методы экономии внешней памяти.
- •36. Способы организации памяти на внешних носителях.
- •37. Организация коллективов программистов.
- •38. Организация графического интерфейса.
- •39. Тестирование: стратегия белого ящика.
- •40. Тестирование: стратегия черного ящика.
- •41. Тестирование программной системы.
- •42. Автономное и комплексное тестирование методов.
- •43. Типы программных ошибок.
- •44. Отладка: методы «грубой силы»
- •45. Интеллектуальные методы отладки.
- •46. Принципы отладки.
- •47. Инспекции по.
- •52. Ссылки на классы и указатели на методы
27. Теоремы структурного программирования.
Структурная схема программы – это ориентированный граф, задающий порядок выполнения операторов; вершинам графа соответствуют операторы, а ребра определяют последовательность их выполнения.
Основная теорема:
Структурная схема любого алгоритма обработки данных может быть представлен в виде суперпозиции трех базовых управляющих структур: следования, выбора и повторения.
Простые и непростые структурные схемы. Структурная схема является простой, если она:
имеет один вход;
имеет один выход;
через каждый ее элемент проходит по крайней мере один путь от входа к выходу.
Теорема о декомпозиции:
Структурная схема непосредственно или после тождественных преобразований разложима на базовые управляющие структуры тогда и только тогда, когда она не содержит замкнутого контура с более чем одним выходом из него.
Теорема о соотношениях элементов структурных схем:
Предположим, что в простой структурной схеме имеется:
f – операционных блоков;
p – блоков принятия решения;
g – узлов слияния;
t – линий передачи управления.
Тогда справедливо:
p = g
t = f + 3p + 1
Пусть n узлов слияний. Пусть для n узлов.
(1) Число начальных точек и конечных совпадает!
1 + f + g + 2p = 1 + f + 2q + p => 2p + g = 2g + p => p = q
(2) 1 + f + 2p + p = t = 1 + 3p + f
28. Декомпозиция структурных схем.
Теорема о декомпозиции:
Структурная схема непосредственно или после тождественных преобразований разложима на базовые управляющие структуры тогда и только тогда, когда она не содержит замкнутого контура с более чем одним выходом из него.
Пример?
29. Типы структурных схем, тождественные преобразования. (???).
Структурная схема программы – это ориентированный граф, задающий порядок выполнения операторов; вершинам графа соответствуют операторы, а ребра определяют последовательность их выполнения.
Основная теорема:
Структурная схема любого алгоритма обработки данных может быть представлен в виде суперпозиции трех базовых управляющих структур: следования, выбора и повторения.
Простые и непростые структурные схемы. Структурная схема является простой, если она:
имеет один вход;
имеет один выход;
через каждый ее элемент проходит по крайней мере один путь от входа к выходу.
30. Оптимизация выражений
1. Логическое ИЛИ
If (P or Q) then… If (Q or P) then…
2. Логическое И
If (P and Q) then… If (Q and P) then…
Оптимизация возможна только в том случае, когда используется короткая схема вычислений.
Обязательное использование комментариев по всем методам, подпрограммам и наиболее сложным фрагментам кода.
Давать логические имена вычислительным элементам.
Желательно в разных блоках программы одни и те же элементы называть одинаково.
Ступенчатая форма записи.
31. Оптимизация циклов.
1.Вынесение операторов за пределы цикла (второй вариант чуть быстрее, но расходует болбше памяти, т.к. ввели больше переменных)
For I:=1 to 100 do N:=K+K;
Begin M:=K-1;
J:=2*K+I; For I:=1 to 100 do
A[J]:=K-1; A[N+I]:=M;
End;
2. Развертывание цикла (не помню)
For I:=1 to 1000 do For I:=1 to 500 do
A[I]:=1; Begin
A[I]:=1;
A[I+500]:=1;
End;
3. Переупорядочивание циклов (второй вариант быстрее)
For I:=1 to 20 do For J:=1 to 10 do
For J:=1 to 10 do For I:=1 to 20 do
A[I,J]:=1; A[I,J]:=1;
4. Цикл в теле подпрограммы лучше, чем много раз вызывать подпрограмму в цикле.
5. Меньшее число циклов всегда лучше.
