Содержание
- 2. Структура доклада Введение Статические проверки DDD-фреймворк Поддержка LINQ Модель состояний Верификация модели состояний
- 3. Структура доклада Введение Статические проверки DDD-фреймворк Поддержка LINQ Модель состояний Верификация модели состояний
- 4. Человеческий фактор
- 5. Общепринятые методологии Ручное тестирование Автоматическое тестирование, TDD Code Review
- 6. Средства разработки
- 7. Структура доклада Введение Статические проверки ДДД-фреймворк Поддержка LINQ Модель состояний Верификация модели состояний
- 8. Стоимость исправления ошибок Момент выявления ошибки: До написания кода Статические проверки Unit-тесты Code Review Интеграционные тесты
- 9. До написания кода Статические проверки Unit-тесты Code Review Интеграционные тесты Ручные тесты Ошибка при эксплуатации Стоимость
- 10. Аспекты статических проверок Диагностика Скорость Полнота
- 11. Полнота статических проверок С++: if (a = 2) if (ptr == null) Корректность if (ptr) Лаконичность
- 12. Структура доклада Введение Статические проверки DDD-фреймворк Поддержка LINQ Модель состояний Верификация модели состояний
- 13. Терминология ORM – object relational mapper: Отображение: Класс → таблица Объект → запись Свойство → колонка
- 14. ВАЛИДАЦИЯ МОДЕЛИ ВО ВРЕМЯ КОМПИЛЯЦИИ Демонстрация
- 15. Статическая проверка метамодели
- 16. Структура доклада Введение Статические проверки DDD-фреймворк Поддержка LINQ Модель состояний Верификация модели состояний
- 17. ПОДДЕРЖКА LINQ Полнота поддержки LINQ напрямую влияет на снижение влияния человеческого фактора в разработке ПО
- 18. Запросы к доменной модели На языке ORM: LINQ: SimpleQuery q = new SimpleQuery ( @“from Post
- 19. Преимущества LINQ Статическая типизация IntelliSense Полная интеграция в язык программирования
- 20. Требуется: Но в Entity Framework: Не удалось создать константу с типом "Тип замыкания". В этом контексте
- 21. Свойства, используемые в запросах В Entity Framework: Указанный член типа "IsManager" не поддерживается в выражениях LINQ
- 22. Решение public class Employee { … [Attr] [Implemented] public abstract bool IsManager {get; } // Это
- 23. from Employee e in Session select e.IsManager Свойства, используемые в запросах from Employee e in Session
- 24. Корректность [Attr] [Implemented] public abstract MyEntity Attr1 {get; } [Attr] [Implemented] public abstract MyEntity Attr2 {get;
- 25. Пример анализа реализации static Expression > Attr1Impl { get {return e => e.Attr2; } } static
- 26. Структура доклада Введение Статические проверки Валидация модели во время компиляции Поддержка LINQ Модель состояний Верификация модели
- 27. Состояния /// Состояние автомобиля. [Flags] [State] public enum AutoState { /// Машина стоит и не заведена.
- 28. Императивные проверки [Method] public virtual void WindUp() { if (State != AutoState.Stopped) throw new InvalidEntityStateException(...); ...
- 29. Декларативные ограничения [Method] [StateRestriction(AutoState.Stopped)] public virtual void WindUp() {...} [Method] [StateRestriction(AutoState.Winded)] public virtual bool TryRun() {...}
- 30. Декларативные ограничения [Method] [StateRestriction(AutoState.Stopped)] [StateTransition(AutoState.Stopped, AutoState.Stopped | AutoState.Winded)] public virtual void WindUp() {...} [Method] [StateRestriction(AutoState.Winded)] [StateTransition(AutoState.Winded,
- 31. Структура доклада Введение Статические проверки Валидация модели во время компиляции Поддержка LINQ Модель состояний Верификация модели
- 32. Структура Крипке
- 33. Структура Крипке
- 34. CTL, формулы состояний CTL - Computation tree logic. Формулы состояний: A f - All: f должен
- 35. CTL, формулы пути Формулы пути: X p - Next: p выполняется на следующем состоянии пути; G
- 36. CTL
- 42. Скачать презентацию