91
Конструирование программного обеспечение ИСО

Конструирование программного обеспечение ИСО

  • Upload
    holden

  • View
    115

  • Download
    0

Embed Size (px)

DESCRIPTION

Конструирование программного обеспечение ИСО. Фундаментальные основы конструирования. Минимизация сложности Ожидание изменений Конструирование с возможностью проверки Стандарты в конструировании. Минимизация сложности ( Minimizing Complexity ). Следование стандартам - PowerPoint PPT Presentation

Citation preview

Page 1: Конструирование программного обеспечение ИСО

Конструирование программного обеспечение

ИСО

Page 2: Конструирование программного обеспечение ИСО

2

Page 3: Конструирование программного обеспечение ИСО

3

Минимизация сложности Ожидание изменений Конструирование с возможностью

проверки Стандарты в конструировании

Фундаментальные основы конструирования

Page 4: Конструирование программного обеспечение ИСО

4

Следование стандартам Использование ряда специфических

техник Поддержка практик, направленных на

обеспечение качества в конструировании

Минимизация сложности (Minimizing Complexity)

Page 5: Конструирование программного обеспечение ИСО

5

Большинство программных систем изменяются с течением времени. Причин этому – множество. Ожидание изменений является одной из движущих сил конструирования программного обеспечения. Программное обеспечение не является изолированным от внешнего окружения (как системного, так и с точки зрения области деятельности, для автоматизации задач и проблем которого оно применяется). Более того, программные системы являются частью изменяющейся среды и должны меняться вместе с ней, а, иногда, и быть источником изменений самой среды.

Ожидание изменений поддерживается рядом техник

Ожидание изменений (Anticipating Changes)

Page 6: Конструирование программного обеспечение ИСО

6

обзор, оценка кода (code review) модульное тестирование (unit-testing) структурирование кода для и совместно с

применениям автоматизированных средств тестирования (automated testing)

ограниченное применение сложных или тяжелых для понимания языковых структур

Конструирование с возможностью проверки (Constructing for Verification)

Page 7: Конструирование программного обеспечение ИСО

7

коммуникационные методы (например, стандарты форматов документов и <оформления> содержания)

языки программирования и соответствующие стили кодирования (например, Java Language Specification, являющийся частью стандартной документации JDK – Java Development Kit и Java Style Guide, предлагающий общий стиль кодирования для языка программирования Java)

платформы (например, стандарты программных интерфейсов для вызовов функций операционной среды, такие как прикладные программные интерфейсы платформы Windows - Win32 API, Application Programming Interface или .NET Framework SDK, Software Development Kit)

инструменты (не в терминах сред разработки, но возможных средств конструирования – например, UML как один из стандартов для определения нотаций для диаграмм, представляющих структура кода и его элементов или некоторых аспектов поведения кода)

Стандарты в конструировании (Standards in Constructing)

Page 8: Конструирование программного обеспечение ИСО

8

OMG – Object Management Group (CORBA, UML, MDA, …),

международные организации по стандартизации (ISO/IEC, IEEE, TMF),

производители платформ, операционных сред и т.д. (Microsoft, Sun Microsystems, CISCO, NOKIA),

производителями инструментов, систем управления базами данных и т.п. (Borland, IBM, Microsoft, Sun, Oracle). 

Использование внешних стандартов

Page 9: Конструирование программного обеспечение ИСО

9

В сочетании со внешними стандартами, внутренние стандарты призваны определить общие правила игры для всех членов проектной команды, договорившись о терминах, процедурах и других значимых соглашениях, вне зависимости от степени формализации процессов конструирования, в частности, и процессов жизненного цикла,

Использование внутренних стандартов

Page 10: Конструирование программного обеспечение ИСО

10

Модели конструирования определяют комплекс операций, включающих последовательность, результаты (например, исходный код и соответствующие unit-тесты) и другие аспекты, связанные с общим жизненным циклом разработки. В большинстве случаев, модели конструирования определяются используемым стандартом жизненного цикла, применяемыми методологиями и практиками. Некоторые стандарты жизненного цикла, по своей природе, являются ориентированными на конструирование – например, экстремальное программирование (XP- eXtreme Programming). Некоторые рассматривают конструирование в неразрывной связи с проектированием (в части моделирования), например, RUP (Rational Unified Process).

Управление конструированием (Managing Construction)

Модели конструирования (Construction Models)

Page 11: Конструирование программного обеспечение ИСО

11

Модульное тестирование в ряде методов является частью работ, после написания соответствующего функционального кода, в то время, как ряд гибких (agile) практик, например, XP (кстати, первыми начавшие использовать такие методы верификации кода), требуют написания Unit-тестов до того, как пишется соответствующий код, требующий тестирования.

Используемый подход к конструированию влияет на возможность уменьшения (в идеале - минимизации) сложности, готовности к изменениям и конструировании с возможностью проверки.

Планирование конструкторской деятельности определяет порядок, в котором создаются компоненты и другие активы данной области знаний (фазы деятельности), проводятся работы по обеспечению качества получаемого программного обеспечения, распределяются задачи и соответствующие ресурсы, в том числе, определяются назначения/отображения работ конкретным инженерам-программистам, членам проектной группы.

Планирование конструирования (Construction Planning)

Page 12: Конструирование программного обеспечение ИСО

12

исходный разработанный код модифицированный объем кода степень повторного использования

Измерения в конструировании (Construction Measurement)

Page 13: Конструирование программного обеспечение ИСО

13

Конструирование – деятельность, в рамках которой программное обеспечение приводится к соглашению с произвольными (иногда - хаотическими) ограничениями реального мира, которые требуют от программного обеспечения точного следования им. Приближаясь к ограничениям реального мира, конструирование (в большей степени, чем любая другая область знаний) ведется на основе практических соображений и техник.

Практические соображения (Practical Considerations)

Page 14: Конструирование программного обеспечение ИСО

14

Некоторые проекты предполагают больший объем работ по проектированию именно на стадии конструирования; другие проекты явно выделяют проектную деятельность в форме фазы дизайна. Вне зависимости от четкости выделения деятельности по проектированию, как таковой, практически всегда на стадии конструирования приходится заниматься и вопросами детального дизайна системы. Такие проектные работы имеют стремление к следованию устойчивым ограничениям, навязываемым конкретными проблемами, решение которых должно быть обеспечено использованием конструируемой программной системы.

Детали деятельности по проектированию на стадии конструирования в основном те же самые, что и описанные в области знаний “Проектирование программного обеспечения” (Software Design). Отличие заключается в большем внимании деталям.

 Проектирование в конструировании (Construction Design)

Page 15: Конструирование программного обеспечение ИСО

15

Три основных вида нотаций: лингвистическая формальная визуальная

Языки конструирования (Construction Languages)

Page 16: Конструирование программного обеспечение ИСО

16

техники создания легко понимаемого исходного кода на основе использования соглашений об именовании, форматирования и структурирования кода;

использование классов, перечисляемых типов, переменных, именованных констант и других выразительных сущностей;

организация исходного текста (в выражения, шаблоны, классы, пакеты/модули и другие структуры)  

использование структур управления; обработка ошибочных условий и исключительных ситуаций предотвращение возможных брешей в безопасности (например,

переполнение буфера или выход за пределы индекса в массиве) использование ресурсов на основе применения механизмов исключения

(из рассмотрения) и порядка доступа к параллельно используемым ресурсам (например, на основе блокировки данных, использования потоков и их синхронизации и т.п.)

документирование кода тонкая “настройка” кода рефакторинг.

Кодирование (Coding)

Page 17: Конструирование программного обеспечение ИСО

17

модульное тестирование (unit testing) интеграционное тестирование (integration

testing)

Тестирование в конструировании (Construction Testing)

Page 18: Конструирование программного обеспечение ИСО

18

IEEE Std 829-1998: “IEEE Standard for Software Test Documentation”

IEEE Std 1008-1987: “IEEE Standard for Software Unit Testing”

Page 19: Конструирование программного обеспечение ИСО

19

EEE Std. 1517-99 “IEEE Standard for Information Technology – Software Lifecycle Process – Reuse Processes”

выбор единиц (units), баз данных тестовых процедур, данных <полученных в результате> тестов и самих тестов, подлежащих повторному использованию

оценка потенциала повторного использования кода и тестов

отслеживание информации и создание отчетности по повторному использованию в новом коде, тестовых процедурах и данных, полученных в результате тестов.

Повторное использование (Reuse)

Page 20: Конструирование программного обеспечение ИСО

20

модульное (unit) и интеграционное (integration) тестирование разработка с первичностью тестов (test-first development -

тесты пишутся до конструирования кода) пошаговое кодирование (деятельность по конструированию

кода разбивается на мелкие шаги, только после тестирования результатов которых производится переход к следующему шагу кодирования; известен также как итеративное кодирование с тестированием)

использование процедур утверждений (assertion) отладка (в привычном понимании - debugging) технические обзоры и оценки (review) статический анализ

Качество конструирования (Construction Quality)

Page 21: Конструирование программного обеспечение ИСО

21

планирование последовательности, в которой интегрируются компоненты;

обеспечение поддержки создания промежуточных версий программного обеспечения;

задание “глубины” тестирования (в частности, на основе критериев “приемлемого” качества) и других работ по обеспечению качества интегрируемых в дальнейшем компонент;

определение этапных точек проекта, когда будут тестироваться промежуточные версии конструируемой программной системы.

Интеграция (Integration)

Page 22: Конструирование программного обеспечение ИСО

22

Архитектура базы данных. Физическая и логическая независимость

Page 23: Конструирование программного обеспечение ИСО

23

Уровень внешних моделей — самый верхний уровень, где каждая модель имеет свое "видение" данных. Этот уровень определяет точку зрения на БД отдельных приложений. Каждое приложение видит и обрабатывает только те данные, которые необходимы именно этому приложению.

Концептуальный уровень — центральное управляющее звено, здесь база данных представлена в наиболее общем виде, который объединяет данные, используемые всеми приложениями, работающими с данной базой данных. Фактически концептуальный уровень отражает обобщенную модель предметной области (объектов реального мира), для которой создавалась база данных. Как любая модель, концептуальная модель отражает только существенные, с точки зрения обработки, особенности объектов реального мира.

Физический уровень — собственно данные, расположенные в файлах или в страничных структурах, расположенных на внешних носителях информации.

Page 24: Конструирование программного обеспечение ИСО

24

Процесс прохождения пользовательского запроса

Page 25: Конструирование программного обеспечение ИСО

25

Классификация моделей данных

Page 26: Конструирование программного обеспечение ИСО

26

Иерархическая модель данных

Page 27: Конструирование программного обеспечение ИСО

27

в каждой физической БД существует один корневой сегмент, то есть сегмент, у которого нет логически исходного (родительского) типа сегмента;

каждый логически исходный сегмент может быть связан с произвольным числом логически подчиненных сегментов;

каждый логически подчиненный сегмент может быть связан только с одним логически исходным (родительским ) сегментом.

Page 28: Конструирование программного обеспечение ИСО

28

Иерархическое дерево

Page 29: Конструирование программного обеспечение ИСО

29

Page 30: Конструирование программного обеспечение ИСО

30

Внешние модели

Page 31: Конструирование программного обеспечение ИСО

31

элемент данных; агрегат данных; запись; набор данных

Сетевая модель данных

Page 32: Конструирование программного обеспечение ИСО

32

Page 33: Конструирование программного обеспечение ИСО

33

Page 34: Конструирование программного обеспечение ИСО

34

Преподаватель Группа День

недели № пары Аудитория

Дисциплина

Иванов 4306 Понедельник

1 22-13 КИД

Иванов 4307 Понедельник

2 22-13 КИД

Карпова 4307 Вторник 2 22-14 БЗ и ЭС

Карпова 4309 Вторник 4 22-14 БЗ и ЭС

Page 35: Конструирование программного обеспечение ИСО

35

Сингулярные наборы позволяют обеспечить доступ к экземплярам отдельных типов данных, поэтому если в задаче алгоритм обработки информации предполагает обеспечение произвольного доступа к некоторому типу записи, то для поддержки этой возможности необходимо ввести соответствующий сингулярный набор.

Сингулярный набор

Page 36: Конструирование программного обеспечение ИСО

36

Концептуальная модель торгово-посреднической организации

Page 37: Конструирование программного обеспечение ИСО

37

Проектирование реляционных БД на основе принципов нормализации

Page 38: Конструирование программного обеспечение ИСО

38

Системный анализ и словесное описание информационных объектов предметной области.

Проектирование инфологической модели предметной области — частично формализованное описание объектов предметной области в терминах некоторой семантической модели, например, в терминах ER-модели.

Даталогичеcкое или логическое проектирование БД, то есть описание БД в терминах принятой даталогической модели данных.

Физическое проектирование БД, то есть выбор эффективного размещения БД на внешних носителях для обеспечения наиболее эффективной работы приложения.

Page 39: Конструирование программного обеспечение ИСО

39

Page 40: Конструирование программного обеспечение ИСО

40

Функциональный подход Предметный подход

Системный анализ предметной области

Page 41: Конструирование программного обеспечение ИСО

41

Описание концептуальной схемы БД в терминах выбранной СУБД.

Описание внешних моделей в терминах выбранной СУБД.

Описание декларативных правил поддержки целостности базы данных.

Описание процедур поддержки семантической целостности базы данных.

Даталогическое проектирование

Page 42: Конструирование программного обеспечение ИСО

42

путь декомпозиции (разбиения),когда исходное множество отношений, входящих в схему БД заменяется другим множеством отношений (число их при этом возрастает), являющихся проекциями исходных отношений;

путь синтеза,то есть путем компоновки из заданных исходных элементарных зависимостей между объектами предметной области схемы БД.

Пути проектирования

Page 43: Конструирование программного обеспечение ИСО

43

первая нормальная форма (1NF); вторая нормальная форма (2NF); третья нормальная форма (3NF); нормальная форма Бойса—Кодда (BCNF); четвертая нормальная форма (4NF); пятая нормальная форма, или форма

проекции-соединения (5NF или PJNF).

Нормальные формы

Page 44: Конструирование программного обеспечение ИСО

44

каждая следующая нормальная форма в некотором смысле улучшает свойства предыдущей;

при переходе к следующей нормальной форме свойства предыдущих нормальных форм сохраняются.

Основные свойства нормальных форм

Page 45: Конструирование программного обеспечение ИСО

45

Модель "сущность-связь"

Page 46: Конструирование программного обеспечение ИСО

46

Page 47: Конструирование программного обеспечение ИСО

47

Page 48: Конструирование программного обеспечение ИСО

48

Page 49: Конструирование программного обеспечение ИСО

49

Page 50: Конструирование программного обеспечение ИСО

50

Переход к реляционной модели данных

Page 51: Конструирование программного обеспечение ИСО

51

Исходная модель взаимосвязи супертипа и подтипов

Page 52: Конструирование программного обеспечение ИСО

52

Результирующая модель с наследованием только идентификатора суперсущности

Page 53: Конструирование программного обеспечение ИСО

53

Результирующая модель с наследованием всех атрибутов суперсущности

Page 54: Конструирование программного обеспечение ИСО

54

Шаг 1. Проанализировать схему на присутствие сущностей, которые скрыто моделируют несколько разных взаимосвязанных классов объектов реального мира (именно это соответствует ненормализованным отношениям). Если такое выявлено, то разделить каждую из этих сущностей на несколько новых сущностей и установить между ними соответствующие связи, полученная схема будет находиться в первой нормальной форме. Перейти к шагу 2.

Шаг 2. Проанализировать все сущности, имеющие составные первичные ключи, на наличие неполных функциональных зависимостей непервичных атрибутов от атрибутов возможного ключа. Если такие зависимости обнаружены, то разделить данные сущности на 2, определить для каждой сущности первичные ключи и установить между ними соответствующие связи. Полученная схема будет находиться во второй нормальной форме. Перейти к шагу 3.

Шаг 3. Проанализировать неключевые атрибуты всех сущностей на наличие транзитивных функциональных зависимостей. При обнаружении таковых расщепить каждую сущность на несколько таким образом, чтобы ликвидировать транзитивные зависимости. Схема находится в третьей нормальной форме. Перейти к шагу 4.

Шаг 4. Проанализировать все сущности на наличие детерминантов, которые не являются возможными ключами. При обнаружении подобных расщепить сущность на две, установив между ними соответствующие связи. Полученная схема соответствует нормальной форме Бойса—Кодда. Перейти к шагу 5.

Шаг 5. Проанализировать все сущности на наличие многозначных зависимостей. Если обнаружатся сущности, у которых имеется более одной многозначной зависимости, то расщепить такие сущности на две, установив между ними соответствующие связи. Полученная схема будет находиться в четвертой нормальной форме. Перейти к шагу 6.

Шаг 6.Проанализировать сущности на наличие в них зависимостей проекции-соединения. При обнаружении таковых расщепить сущность на требуемое число взаимосвязанных сущностей и установить между ними требуемые связи. Полученная таким образом схема будет находиться в пятой нормальной форме и, будучи формально преобразованной к реляционной схеме по указанным выше принципам, даст реляционную схему также в пятой нормальной форме.

Page 55: Конструирование программного обеспечение ИСО

55

Page 56: Конструирование программного обеспечение ИСО

56

Page 57: Конструирование программного обеспечение ИСО

57

Page 58: Конструирование программного обеспечение ИСО

58

Page 59: Конструирование программного обеспечение ИСО

59

Page 60: Конструирование программного обеспечение ИСО

60

Page 61: Конструирование программного обеспечение ИСО

61

Page 62: Конструирование программного обеспечение ИСО

62

Page 63: Конструирование программного обеспечение ИСО

63

Page 64: Конструирование программного обеспечение ИСО

64

Page 65: Конструирование программного обеспечение ИСО

65

Page 66: Конструирование программного обеспечение ИСО

66

Page 67: Конструирование программного обеспечение ИСО

67

Page 68: Конструирование программного обеспечение ИСО

68

Page 69: Конструирование программного обеспечение ИСО

69

Page 70: Конструирование программного обеспечение ИСО

70

Page 71: Конструирование программного обеспечение ИСО

71

Page 72: Конструирование программного обеспечение ИСО

72

Page 73: Конструирование программного обеспечение ИСО

73

Page 74: Конструирование программного обеспечение ИСО

74

Page 75: Конструирование программного обеспечение ИСО

75

Page 76: Конструирование программного обеспечение ИСО

76

Page 77: Конструирование программного обеспечение ИСО

77

Page 78: Конструирование программного обеспечение ИСО

78

Page 79: Конструирование программного обеспечение ИСО

79

Page 80: Конструирование программного обеспечение ИСО

80

Page 81: Конструирование программного обеспечение ИСО

81

Page 82: Конструирование программного обеспечение ИСО

82

Page 83: Конструирование программного обеспечение ИСО

83

Page 84: Конструирование программного обеспечение ИСО

84

Page 85: Конструирование программного обеспечение ИСО

85

Page 86: Конструирование программного обеспечение ИСО

86

Page 87: Конструирование программного обеспечение ИСО

87

Page 88: Конструирование программного обеспечение ИСО

88

Page 89: Конструирование программного обеспечение ИСО

89

Page 90: Конструирование программного обеспечение ИСО

90

Page 91: Конструирование программного обеспечение ИСО

91