English | Russian |
Consider the case of a superstate on a statechart that is decomposed into two lower-level concurrent statecharts | Рассмотрим случай надсостояния на диаграмме состояний, разложенной на две параллельные диаграммы более низкого уровня (см. Designing Concurrent, Distributed, and Real-time Applications with UML Object Technology Series by Hassan Gomaa ssn) |
Exercise: Show that the usual primal-dual complementary slackness for optimality is a special case of 2b | Упражнение. Показать, что обычное свойство дополняющей нежёсткости оптимальных решений для прямой и двойственной задач является частным случаем 2б (ssn) |
in contemporary practice, CASE and programming development tools can effectively assist in performing refactorings. Many tools contain catalogs of supported refactorings. Fowler 1999 is a principal source of reference that lists and documents in excess of sixty refactoring methods. The following discussion illustrates the use of refactoring methods by discussing just three of them | в современной практике CASE и инструментальные средства разработки программ могут существенно помочь в реализации рефакторинга. Многие инструментальные средства содержат каталоги поддерживаемых рефакторингов. Фаулер 1999 является основным источником ссылок, который перечисляет и документирует более шестидесяти методов рефакторинга. Следующее обсуждение иллюстрирует использование методов рефакторинга, рассматривая только три из них (см. Maciaszek L.A. and Liong B.L. 2005: Practical Software Engineering) |
in contemporary practice, CASE and programming development tools can effectively assist in performing refactorings. Many tools contain catalogs of supported refactorings. Fowler 1999 is a principal source of reference that lists and documents in excess of sixty refactoring methods. The following discussion illustrates the use of refactoring methods by discussing just three of them | в современной практике CASE– и инструментальные средства разработки программ могут существенно помочь в реализации рефакторинга. Многие инструментальные средства содержат каталоги поддерживаемых рефакторингов. Фаулер 1999 является основным источником ссылок, который перечисляет и документирует более шестидесяти методов рефакторинга. Следующее обсуждение иллюстрирует использование методов рефакторинга, рассматривая только три из них (см. Maciaszek L.A. and Liong B.L. 2005: Practical Software Engineering) |
method or class that is a helper for a test case | вспомогательный метод или класс для контрольного примера (ssn) |
one of refactoring targets is called large class – a class that does too much and/or has too many data members. Large classes can result from excessive minimization of coupling between classes. In case of the large class target, two methods relevant to Iteration 1 code are: Extract Class and Extract Interface Fowler, 1999 | Одна из целей использования рефакторинга называется большим классом – классом, который делает слишком много и/или имеет слишком много элементов данных. Большие классы могут возникнуть из-за чрезмерной минимизации связей между классами. В случае большого класса в коде итерации 1 уместны два метода: Класс извлечения и Интерфейс извлечения (Фаулер, 1999; см. Maciaszek L.A. and Liong B.L. (2005): Practical Software Engineering) |
Speculative generality can be spotted when the only users of a method or class are test cases. If you find such a method or class, delete it and the test case that exercises it. If you have a method or class that is a helper for a test case that exercises legitimate functionality, you have to leave it in, of course | Теоретическая общность может быть обнаружена, когда единственными пользователями метода или класса являются контрольные примеры. Найдя такой метод или класс, удалите его и контрольный пример, его проверяющий. Если есть вспомогательный метод или класс для контрольного примера, осуществляющий разумные функции, его, конечно, надо оставить (см. Refactoring: Improving the Design of Existing Code by Martin Fowler et al. 1999 ssn) |