Содержание
- 2. От предметной области к ПО Разработка больших программ – многоступенчатый процесс, в ходе которого осуществляются как
- 3. Предметная область Архитектура ВС Инструменты для разработки ПО
- 4. Примеры прикладных задач и их моделей Разработка трансляторов Ориентация разрабатываемого языка программирования на предметную область; Анализ
- 5. Примеры прикладных задач и их моделей Разработка системы управления технологическим процессом Анализ производственного процесса; Особенности существующих
- 9. Разработка информационных систем Анализ предметной области; Построение модели предметной области; Формирование моделей данных, работ, процессов, потоков;
- 13. Влияние особенностей архитектур вычислительных систем («железо», ОС, ЯП) - время выполнения программы - особенности программирования -
- 16. Наряду с проблемами увязки моделей предметной области и архитектуры, встают проблемы, определяемые спецификой инструментов, используемых для
- 17. В рамках технологии программирования проводятся исследования методов разработки, обеспечивающих создание продуктов, соответствующих заданным критериям качества. Ряд
- 18. Критерии качества программного обеспечения Корректность (правильность). Обеспечивает правильную обработку на правильных данных. Устойчивость. "Элегантное" завершение обработки
- 19. Критерии качества программного обеспечения Эффективность. Эффективное использование времени, компьютерной памяти, дискового пространства и т.д. Переносимость (мобильность).
- 20. Критерии качества программного обеспечения Поддержка целостности. Защищает себя от неправильного обращения и неправильного употребления. Легкость использования.
- 21. Цели и задачи процесса разработки Разработка ПО - многоэтапный процесс, зависящий от многих факторов, например: видов
- 22. Цель процесса разработки – создание программы, обеспечивающей решение поставленной задачи некоторым исполнителем. Решаемая задача описывается совокупностью
- 23. Модель задачи – совокупность специализированных моделей, описывающих различные аспекты решаемой задачи, отражаемые в разрабатываемой программе. Специализированная
- 24. Разрабатываемая программа должна обеспечивать выполнение функций, необходимых для решения задачи, в соответствующем исполнителе (вычислительной системе), специфика
- 25. Создаваемая программа является отображением модели решаемой задачи на модель исполнителя
- 26. Трудоемкость программирования, с одной стороны, определяется количеством специализированных моделей, описывающих задачу, их размером, семантическим отличием от
- 29. Необходимость в преобразованиях обуславливается наличием семантического разрыва между моделями задач и исполнителей. Он проявляется в том,
- 30. Методические приемы Методические приемы ориентированы на формализацию представления моделей и методов перехода между ними. Они позволяют
- 31. Формализация предметной области Формализация предметной области заключается в построении ее модели и разработке методов преобразования в
- 33. Подобный подход широко используется при разработке программ в разных предметных областях, например: 1. Построение синтаксических и
- 35. Разработка алгоритмов преобразования одних моделей в другие позволяет автоматизировать процесс и обеспечить представление исходной задачи в
- 38. Достоинства подхода: более высокая скорость разработки (к программированию можно приступать во время анализа задачи); 2. программирование
- 39. Недостатки: отсутствие гибкости (предметная ориентация моделей не позволяет непосредственно использовать накопленные методы и инструменты в других
- 40. Резюме: Эффективно при решении достаточно простых задач узкого класса. Увеличение размерности резко повышает количество применяемых специализированных
- 41. Близкий пример: вычислить 100! 1. Алгоритм 2. Язык программирования 3. Программа Алгоритм 2: n n! =
- 42. Язык программирования: C++ Программа: #include using namespace std; typedef unsigned short us; typedef unsigned long ul;
- 43. // Вывод в десятичном виде содержимого вектора коротких целых чисел void vector_out(us v[], int len) {
- 44. // Функция вычисления факториала // заданной величины int fact(us v[], int max_len, ul y) { v[0]
- 45. us rezult[200]; int main() { int len = fact(rezult, 200, 100); cout vector_out(rezult, len); cout cout
- 46. rezult = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 f = 9.33262e+157
- 47. Язык программирования: Lisp Программа 1: (defun factorial (n) (if (= n 0) 1 (* n (factorial
- 48. Результат: > (factorial 100) 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 > (factorial 200) 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000
- 49. Язык программирования: Python #!/usr/bin/env python # -*- coding: utf-8 -*- def factorial(n): if n return 1
- 50. $ python ./fact.py 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 1267650600228229401496703205376 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000 1606938044258990275541962092341162602522202993782792835301376
- 51. The GNU Multiple Precision Arithmetic Library http://gmplib.org/ GMP is a free library for arbitrary precision arithmetic,
- 52. #include int main(int argc, char* argv[]) { mpz_t result; unsigned long int x; if(argc !=2) x
- 53. #include int main(int argc, char* argv[]) { mpz_t result; unsigned long int x; if(argc !=2) x
- 54. #include #include #include using namespace std; int main(int argc, char* argv[]) { if(argc !=2) { cout
- 55. Методики разработки ПО Ориентированы на формализацию взаимосвязей между моделями конкретных исполнителей и моделями, используемыми на предшествующих
- 57. Несмотря на обеспечение прямого и обратного проектирования, основное достоинство методик проявляется в поддержке нисходящей разработки. Это
- 58. В подобной ситуации знание задачи повышает эффективность разработки. Поэтому, создание программного обеспечения обычно начинается с привязки
- 61. Достоинства методик разработки ПО: универсальность, обуславливающая ориентацию на разработку задач широкого класса; поддержку нисходящего и восходящего
- 62. В настоящее время существуют различные методики. Они являются составной и неотъемлемой частью методологий разработки программного обеспечения.
- 63. Примеры методик: - объектно-ориентированный подход, используемый в составе объектно-ориентированной методологии; - методы структурного анализа и проектирования,
- 64. Резюме: Методики широко используются при разработке больших программных систем, так как повышают эффективность процесса проектирования за
- 65. Технические приемы Технические приемы обеспечивают создание инструментальных средств, поддерживающих различные аспекты разработки ПО. Можно выделить: -
- 66. Поддержка методических приемов Инструментальная поддержка методических приемов обеспечивает компьютерное представление и анализ разрабатываемых моделей, преобразование построенных
- 67. Повышая эффективность процесса разработки, средства поддержки методических приемов, в то же время, не определяют сам процесс
- 68. Примеры 1. Системы поддержки спецификаций. Ранние средства. Во многих из них использовались графические языки, которые в
- 69. Примеры 2. CASE-средства (Computer Aided Software Engineering). Инструменты сгладившие, семантический разрыв между рядом моделей предметной области
- 70. CASE-средства поддержки методов структурного анализа и проектирования (SADT – Strucure Analis and Design Technique): BPwin, ERwin,
- 71. Вспомогательные средства Вспомогательные средства предназначены для повышения эффективности процессов, не связанных с непосредственной разработкой структуры программы,
- 72. Специфика вспомогательных средств заключается в работе с уже готовыми программами. Это позволяет в дальнейшем игнорировать их
- 73. Системы программирования Системы программирования – инструментальные средства, поддерживающие разработку программ для заданного виртуального исполнителя и их
- 74. Использование систем программирования позволяет решать задачу повышения эффективности процесса разработки ПО за счет сокрытия исполнителей более
- 76. Реальное выполнение полученных программ может осуществляться: 1. Использованием непосредственной интерпретации, полностью скрывающей процесс реального выполнения, который
- 77. 2. Автоматическим и поэтапным преобразованием программы, написанной для виртуальной машины, в программу конечного исполнителя, что позволяет
- 79. Проводимые промежуточные преобразования могут быть скрыты от программиста. Однако знание дополнительной информации о конечном исполнителе позволяет
- 80. Исполнители могут отличаться и по степени приближения их моделей к моделям решаемых задач или более высокоуровневым
- 81. Представленная модельная специфика конкретизируется при отображении на конкретные процессы разработки ПО…
- 83. Скачать презентацию