PageSourceSearch

https://sourcemaking.com/about-us

html sourcemaking.com collected 2026-09-24 08:49:47 UTC 70,526 bytes, 1,911 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" dir="ltr">
3<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# website: http://ogp.me/ns/website#">
4    <meta charset="utf-8">
5    <title>About us</title>
6
7    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
8    <meta name="theme-color" content="#1abc9c" />
9
10            
10<script>
11    (function () {
12        if (typeof URLSearchParams === 'undefined') {
13            return;
14        }
15        var params = new URLSearchParams(window.location.search || '');
16        var attribution = {
17            utm_source: params.get('utm_source'),
18            utm_medium: params.get('utm_medium'),
19            utm_campaign: params.get('utm_campaign'),
20            utm_term: params.get('utm_term'),
21            utm_content: params.get('utm_content'),
22            gclid: params.get('gclid'),
23            fbclid: params.get('fbclid'),
24            msclkid: params.get('msclkid'),
25        };
26        var hasAny = false;
27        for (var key in attribution) {
28            if (attribution[key]) {
29                hasAny = true;
30                break;
31            }
32        }
33        if (!hasAny) {
34            return;
35        }
36        attribution.landing_url = window.location.href;
37        attribution.referrer = document.referrer;
38        attribution.captured_at = new Date().toISOString();
39        try {
40            localStorage.setItem('last_attribution', JSON.stringify(attribution));
41        } catch (e) {
42        }
43    })();
44</script>
44
45
46        
47        <link rel="preconnect dns-prefetch" href="https://cdn.paddle.com">
48    <link rel="preconnect dns-prefetch" href="https://www.googletagmanager.com">
49
50
51
52    <link rel="canonical" href="https://sourcemaking.com/about-us"/>
53
54    <link rel="icon" type="image/x-icon" href="/favicon.png"/>
55
56    <meta property="fb:app_id" content="251736824995775"/>
57    <meta property="og:type" content="website"/>
58    <meta property="og:image" content="https://sourcemaking.com/files/v2/content/home-tb1.png?id=944b161223408e06c3c65387c36a96ea"/>
59    <meta property="og:url" content="https://sourcemaking.com"/>
60    <meta property="og:title" content="Design Patterns and Refactoring"/>
61    <meta property="og:description" content="Design Patterns and Refactoring articles and guides. Design Patterns video tutorials for newbies. Simple descriptions and full source code examples in Java, C++, C#, PHP and Delphi."/>
62
63                    <link rel="stylesheet" href="/css/public-packed.min.css?id=802c4ef59ddc0d9ac47b7c6f5546a5a4">
64    
65    <style type="text/css">
66                    @font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:local("PT Sans"),local("PTSans-Regular"),url(/fonts/PTSans/ptsans-regular_cyrillic-ext.woff2?1) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:local("PT Sans"),local("PTSans-Regular"),url(/fonts/PTSans/ptsans-regular_cyrillic.woff2?1) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:local("PT Sans"),local("PTSans-Regular"),url(/fonts/PTSans/ptsans-regular_latin-ext.woff2?1) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:local("PT Sans"),local("PTSans-Regular"),url(/fonts/PTSans/ptsans-regular_latin.woff2?1) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:local("PT Sans"),local("PTSans-Regular"),url(/fonts/PTSans/ptsans-regular_en.woff2?1) format("woff2");unicode-range:U+0-FF,U+131,U+142,U+152,U+153,U+2BB,U+2BC,U+2C6,U+2DA,U+2DC,U+420,U+423,U+430,U+438-43A,U+43D,U+440,U+441,U+443,U+44C,U+457,U+2000-206F,U+2074,U+20AA-20AC,U+20B4,U+20B9,U+20BA,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:local("PT Sans Bold"),local("PTSans-Bold"),url(/fonts/PTSans/ptsans-bold_cyrillic-ext.woff2?1) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:local("PT Sans Bold"),local("PTSans-Bold"),url(/fonts/PTSans/ptsans-bold_cyrillic.woff2?1) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:local("PT Sans Bold"),local("PTSans-Bold"),url(/fonts/PTSans/ptsans-bold_latin-ext.woff2?1) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:local("PT Sans Bold"),local("PTSans-Bold"),url(/fonts/PTSans/ptsans-bold_latin.woff2?1) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:local("PT Sans Bold"),local("PTSans-Bold"),url(/fonts/PTSans/ptsans-bold_en.woff2?1) format("woff2");
66unicode-range:U+0-FF,U+131,U+142,U+152,U+153,U+2BB,U+2BC,U+2C6,U+2DA,U+2DC,U+420,U+423,U+430,U+438-43A,U+43D,U+440,U+441,U+443,U+44C,U+457,U+2000-206F,U+2074,U+20AA-20AC,U+20B4,U+20B9,U+20BA,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
67            </style>
68
69            
69<script defer src="/js/public.min.js?id=72c09e8a1958c6feca1769020c286e7f"></script>
69
70        
70<script defer src="/js/checkout.min.js?id=6e850a15d11717db6abd80d3a21cd4b7"></script>
70
71            
71<script defer src="https://cdn.paddle.com/paddle/v2/paddle.js"></script>
vendor: 68 bytes, lines 71-72
71
72    <script async src="https://www.googletagmanager.com/gtag/js?id=
72G-8ZVMFNG1VY
vendor: 18 bytes, lines 72-75
72"></script>
73
74
75    
75<script>
76function extend(){var extended={};var deep=false;var i=0;var length=arguments["length"];if(Object["prototype"]["toString"]["call"](arguments[0])=== '[object Boolean]'){deep= arguments[0];i++};var merge=function(obj){for(var prop in obj){if(Object["prototype"]["hasOwnProperty"]["call"](obj,prop)){if(deep&& Object["prototype"]["toString"]["call"](obj[prop])=== '[object Object]'){extended[prop]= extend(true,extended[prop],obj[prop])}else {extended[prop]= obj[prop]}}}};for(;i< length;i++){var obj=arguments[i];merge(obj)};return extended}
77function defer(method) {if (window.jQuery) {method();} else {setTimeout(function() { defer(method) }, 50);}}
78</script>
vendor: 1 bytes, line 78
78
79<script>
80+function(sd){sd = (typeof sd === "string") ? JSON.parse(atob(sd)) : sd;for(var property in sd){if(window[property]!== null&&  typeof window[property]=== 'object'){window[property]= extend(true,window[property],sd[property])}else {window[property]= sd[property]}}}("eyJsb2NhbGUiOiJlbiIsImxvY2FsZV9wcmVmaXgiOiIiLCJsb2NhbGl6ZWRfdXJsX3ByZWZpeCI6Imh0dHBzOlwvXC9zb3VyY2VtYWtpbmcuY29tXC8iLCJ1cmxfcHJlZml4IjoiaHR0cHM6XC9cL3NvdXJjZW1ha2luZy5jb21cLyIsImxvY2FsaXplZF91cmxfcHJlZml4X20iOiJodHRwczpcL1wvc291cmNlbWFraW5nLmNvbVwvIiwidXJsX3ByZWZpeF9tIjoiaHR0cHM6XC9cL3NvdXJjZW1ha2luZy5jb21cLyIsInVzZXJfZWNob19hbGlhcyI6InNvdXJjZW1ha2luZyIsInVzZXJfZWNob19ob3N0IjoiZmVlZGJhY2suc291cmNlbWFraW5nLmNvbSIsInVzZXJfZWNob19wcml2YXRlX2ZvcnVtIjoiMiIsInVzZXJfZWNob19sb2NhbGUiOiJlbiIsInVzZXJfZWNob19wdWJsaWNfZm9ydW0iOiIxIiwidXNlcl9lY2hvX3B1YmxpY19mb3J1bV91cmwiOiJodHRwczpcL1wvZmVlZGJhY2suc291cmNlbWFraW5nLmNvbVwvIiwidXNlcl9lY2hvX3Nzb190b2tlbiI6IiJ9");
81</script>
81
82
83<script>
84    
vendor: 143 bytes, lines 84-87
84window.dataLayer = window.dataLayer || [];
85    function gtag(){dataLayer.push(arguments);}
86    gtag('js', new Date());
87        gtag('config', '
87G-8ZVMFNG1VY
vendor: 276 bytes, lines 87-93
87', {
88        // Disable default page view, because we're going to report them on our own.
89        // This is done to report traffic on localized domains as part of the main website traffic
90        // See the Chinese overrides below.
91        send_page_view: false,
92    });
93    
93// Needed to call gtag functions.
94    window.ga_measurement_id = 'G-8ZVMFNG1VY';
95</script>
95
96
97<script>
98    (() => {
99        // On first page view after returning from social network, we need to send the social login event.
100        (function detectSocialLogin() {
101            let getCookie = function (name) {
102                var nameEQ = name + "=";
103                var ca = document.cookie.split(';');
104                for (var i = 0; i < ca.length; i++) {
105                    var c = ca[i];
106                    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
107                    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
108                }
109                return null;
110            };
111            window.social_login_provider = window.social_login_provider || getCookie('social_login_provider');
112            if (window.social_login_provider) {
113                gtag('set', {referrer: null});
114                gtag('event', 'login', {"method": window.social_login_provider});
115                // Delete cookie.
116                document.cookie = 'social_login_provider=; Path=/; Max-Age=-99999999;';
117            }
118        })();
119
120        function trackPageView(location, title) {
121            location = location || document.location.href;
122            title = title || document.title;
123
124            // This is show on https://refactoringguru.cn/ and alike.
125            if (typeof window.analytics_path_prefix === 'string') {
126                if (/^(https?:\/\/[^\/]+?)\/$/.test(location)) {
127                    location = location.replace(/(https?:\/\/[^\/]+?)\//, '$1' + window.analytics_path_prefix);
128                } else {
129                    location = location.replace(/(https?:\/\/[^\/]+?)\//, '$1' + window.analytics_path_prefix + '/');
130                }
131                gtag('set', {
132                    'page_location': location
133                });
134            }
135
136            // This is show on https://refactoring.guru/zh/login and alike.
137            if (typeof window.analytics_location_prefix === 'string') {
138                location = location.replace(/(https?:\/\/[^\/]+?)\//, window.analytics_location_prefix);
139                gtag('set', {
140                    'page_location': location
141                });
142            }
143
144            gtag('event', 'page_view', {
145                page_location: location,
146                page_title: title,
147                locale: window.locale ?? 'en'
148            });
149        }
150
151        if (window.loadContent) {
152            window.onPageLoad = window.onPageLoad || [];
153            window.onPageLoad.push({
154                func: function (context) {
155                    trackPageView(window.location.origin + context.canonicalPath, context.title);
156                },
157                afterAll: true,
158            });
159        }
160        else {
161            trackPageView();
162        }
163    })();
164</script>
164
165
166
167</head>
168<body class="locale-en    hg-width" data-body_class="hg-width">
169
170<div class="body-holder">
171
172    <div class="cart-placeholder">
173    <div class="cart-block-container" style="display:none">
174        <div class="cart-block btn-group">
175            <a href="#checkout" class="btn cart open-checkout">
176                <span class="cart-text"></span>&nbsp;<strong class="cart-total font-money"></strong>
177            </a><a href="#checkout" class="btn btn-secondary checkout open-checkout"><i class="fa fa-shopping-cart" aria-hidden="true"></i> <span class="btn-text-span d-none d-sm-inline-block d-lg-none d-hg-inline-block"></span></a>
178        </div>
179    </div>
180</div>
181    <main role="main" class="main-content top-content center-content " data-page_class="">
182        <div class="main-content-container center-content-container">
183                        <div class="page text">
184<article>
185        <h1 class="title">About us</h1>
186
187    
187<script type="text/javascript">
188        // Shorten examples titles for users.
189        var h1 = document.getElementsByTagName("H1")[0];
190        if (h1.offsetHeight > 160) {
191            h1.className += ' smaller';
192        }
193
194        // Small beautification for pattern examples.
195        var title = h1.innerHTML;
196        title = title.replace(/^(Java|C\+\+|C#|PHP|Python|Ruby|Delphi): (.*)$/, '<strong>$1:</strong> $2');
197        h1.innerHTML = title;
198    </script>
198
199
200                
201    <h2 style="margin-top:20px;">For people who want to become programming ninjas</h2>
202
203<p>SourceMaking.com was created back in 2006 to become the source of inspiration for people who already know how to code, but want to develop and perfect their knowledge and programming skills. We have assembled a large number of materials on this site that can not only expand your knowledge about programming, but can also structure the experience you already have.</p>
204
205<p>By furnishing our materials with numerous illustrations and real-life examples, we have tried to debunk the myth that information about programming always has to be dry and boring. And we hope that you like the result.</p>
206
207<h2>Our content and code</h2>
208
209<p>Our content and code is licensed under a <a href="http://creativecommons.org/licenses/by-nc-nd/4.0/">Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 Unported License</a>. You can freely use our content for any non-commercial purposes as long as you provide an appropriate credit or link to original content. We also welcome translation.</p>
210
211<h2>Talk to us</h2>
212
213<p>We love to hear your opinions! Tweet us <a href="https://twitter.com/sourcemaking">@sourcemaking</a> to provide feedback on our content.</p>
214
215<p>Have another sort of question? <a href="https://sourcemaking.userecho.com/?show_feedback_form_private=true" rel="nofollow">Send us a request</a> or just mail it to <a href="mailto:[email protected]">[email protected]</a>. We usually respond within a few hours.</p>
216    </article>
217
218</div>
219
220<aside class="feature content-secondary">
221    </aside>
222                    </div>
223    </main>
224
225    <aside class="sidebar main-menu">
226    <div class="main-menu-controls">
227        <button class="navigation-toggle"><i class="fa fa-fw fa-times"></i></button>
228    </div>
229    <div class="main-menu-list-wrapper nano">
230        <div class="main-menu-list nano-content">
231            <a class="menu-brand" href="/">
232                                    <img width=250 height=312 alt="SourceMaking" src="/images/content-public/logos/logo.png?id=55f0872eb5fd4505a39679db5f702b58" srcset="/images/content-public/logos/logo-2x.png?id=fee3b4b0a14ba60dc0fe368695d78be9 2x">
233                            </a>
234
235            <div class="menu-container" style="position: relative">
236                                <ul class="menu-list">
237                            <li class="featured">
238            <a href="/store">
239                <i class="fa fa-fw fa-star" aria-hidden="true"></i> Premium Stuff
240            </a>
241    
242            <ul >
243                            <li class="featured menu-fs15">
244            <a href="/design-patterns-ebook">
245                <i class="fa fa-fw fa-book" aria-hidden="true"></i> Dive Into Design Patterns
246            </a>
247    
248    
249            </li>
250                                <li class="featured menu-fs15">
251            <a href="/refactoring-course">
252                <i class="fa fa-fw fa-graduation-cap" aria-hidden="true"></i> Dive Into Refactoring
253            </a>
254    
255    
256            </li>
257                                <li class="featured menu-fs15">
258            <a href="/computer-science-distilled">
259                <i class="fa fa-fw fa-book" aria-hidden="true"></i> Computer Science Distilled
260            </a>
261    
262    
263            </li>
264                        </ul>
265    
266            </li>
267                                <li class="">
268            <a href="/design_patterns">
269                <i class="fa fa-fw fa-puzzle-piece" aria-hidden="true"></i> Design Patterns
270            </a>
271    
272            <ul >
273                            <li class="">
274            <a href="/design_patterns/creational_patterns">
275                Creational patterns
276            </a>
277    
278            <ul >
279                            <li class="">
280            <a href="/design_patterns/abstract_factory">
281                Abstract Factory Design Pattern
282            </a>
283    
284    
285            </li>
286                                <li class="">
287            <a href="/design_patterns/builder">
288                Builder Design Pattern
289            </a>
290    
291    
292            </li>
293                                <li class="">
294            <a href="/design_patterns/factory_method">
295                Factory Method Design Pattern
296            </a>
297    
298    
299            </li>
300                                <li class="">
301            <a href="/design_patterns/object_pool">
302                Object Pool Design Pattern
303            </a>
304    
305    
306            </li>
307                                <li class="">
308            <a href="/design_patterns/prototype">
309                Prototype Design Pattern
310            </a>
311    
312    
313            </li>
314                                <li class="">
315            <a href="/design_patterns/singleton">
316                Singleton Design Pattern
317            </a>
318    
319    
320            </li>
321                        </ul>
322    
323            </li>
324                                <li class="">
325            <a href="/design_patterns/structural_patterns">
326                Structural patterns
327            </a>
328    
329            <ul >
330                            <li class="">
331            <a href="/design_patterns/adapter">
332                Adapter Design Pattern
333            </a>
334    
335    
336            </li>
337                                <li class="">
338            <a href="/design_patterns/bridge">
339                Bridge Design Pattern
340            </a>
341    
342    
343            </li>
344                                <li class="">
345            <a href="/design_patterns/composite">
346                Composite Design Pattern
347            </a>
348    
349    
350            </li>
351                                <li class="">
352            <a href="/design_patterns/decorator">
353                Decorator Design Pattern
354            </a>
355    
356    
357            </li>
358                                <li class="">
359            <a href="/design_patterns/facade">
360                Facade Design Pattern
361            </a>
362    
363    
364            </li>
365                                <li class="">
366            <a href="/design_patterns/flyweight">
367                Flyweight Design Pattern
368            </a>
369    
370    
371            </li>
372                                <li class="">
373            <a href="/design_patterns/private_class_data">
374                Private Class Data
375            </a>
376    
377    
378            </li>
379                                <li class="">
380            <a href="/design_patterns/proxy">
381                Proxy Design Pattern
382            </a>
383    
384    
385            </li>
386                        </ul>
387    
388            </li>
389                                <li class="">
390            <a href="/design_patterns/behavioral_patterns">
391                Behavioral patterns
392            </a>
393    
394            <ul >
395                            <li class="">
396            <a href="/design_patterns/chain_of_responsibility">
397                Chain of Responsibility
398            </a>
399    
400    
401            </li>
402                                <li class="">
403            <a href="/design_patterns/command">
404                Command Design Pattern
405            </a>
406    
407    
408            </li>
409                                <li class="">
410            <a href="/design_patterns/interpreter">
411                Interpreter Design Pattern
412            </a>
413    
414    
415            </li>
416                                <li class="">
417            <a href="/design_patterns/iterator">
418                Iterator Design Pattern
419            </a>
420    
421    
422            </li>
423                                <li class="">
424            <a href="/design_patterns/mediator">
425                Mediator Design Pattern
426            </a>
427    
428    
429            </li>
430                                <li class="">
431            <a href="/design_patterns/memento">
432                Memento Design Pattern
433            </a>
434    
435    
436            </li>
437                                <li class="">
438            <a href="/design_patterns/null_object">
439                Null Object Design Pattern
440            </a>
441    
442    
443            </li>
444                                <li class="">
445            <a href="/design_patterns/observer">
446                Observer Design Pattern
447            </a>
448    
449    
450            </li>
451                                <li class="">
452            <a href="/design_patterns/state">
453                State Design Pattern
454            </a>
455    
456    
457            </li>
458                                <li class="">
459            <a href="/design_patterns/strategy">
460                Strategy Design Pattern
461            </a>
462    
463    
464            </li>
465                                <li class="">
466            <a href="/design_patterns/template_method">
467                Template Method Design Pattern
468            </a>
469    
470    
471            </li>
472                                <li class="">
473            <a href="/design_patterns/visitor">
474                Visitor Design Pattern
475            </a>
476    
477    
478            </li>
479                        </ul>
480    
481            </li>
482                        </ul>
483    
484            </li>
485                                <li class="">
486            <a href="/refactoring">
487                <i class="fa fa-fw fa-scissors" aria-hidden="true"></i> Refactoring
488            </a>
489    
490            <ul >
491                            <li class="">
492            <a href="/refactoring/smells">
493                Code Smells
494            </a>
495    
496            <ul >
497                            <li class="">
498            <a href="/refactoring/smells/bloaters">
499                Bloaters
500            </a>
501    
502            <ul >
503                            <li class="">
504            <a href="/refactoring/smells/long-method">
505                Long Method
506            </a>
507    
508    
509            </li>
510                                <li class="">
511            <a href="/refactoring/smells/large-class">
512                Large Class
513            </a>
514    
515    
516            </li>
517                                <li class="">
518            <a href="/refactoring/smells/primitive-obsession">
519                Primitive Obsession
520            </a>
521    
522    
523            </li>
524                                <li class="">
525            <a href="/refactoring/smells/long-parameter-list">
526                Long Parameter List
527            </a>
528    
529    
530            </li>
531                                <li class="">
532            <a href="/refactoring/smells/data-clumps">
533                Data Clumps
534            </a>
535    
536    
537            </li>
538                        </ul>
539    
540            </li>
541                                <li class="">
542            <a href="/refactoring/smells/oo-abusers">
543                Object-Orientation Abusers
544            </a>
545    
546            <ul >
547                            <li class="">
548            <a href="/refactoring/smells/switch-statements">
549                Switch Statements
550            </a>
551    
552    
553            </li>
554                                <li class="">
555            <a href="/refactoring/smells/temporary-field">
556                Temporary Field
557            </a>
558    
559    
560            </li>
561                                <li class="">
562            <a href="/refactoring/smells/refused-bequest">
563                Refused Bequest
564            </a>
565    
566    
567            </li>
568                                <li class="">
569            <a href="/refactoring/smells/alternative-classes-with-different-interfaces">
570                Alternative Classes with Different Interfaces
571            </a>
572    
573    
574            </li>
575                        </ul>
576    
577            </li>
578                                <li class="">
579            <a href="/refactoring/smells/change-preventers">
580                Change Preventers
581            </a>
582    
583            <ul >
584                            <li class="">
585            <a href="/refactoring/smells/divergent-change">
586                Divergent Change
587            </a>
588    
589    
590            </li>
591                                <li class="">
592            <a href="/refactoring/smells/shotgun-surgery">
593                Shotgun Surgery
594            </a>
595    
596    
597            </li>
598                                <li class="">
599            <a href="/refactoring/smells/parallel-inheritance-hierarchies">
600                Parallel Inheritance Hierarchies
601            </a>
602    
603    
604            </li>
605                        </ul>
606    
607            </li>
608                                <li class="">
609            <a href="/refactoring/smells/dispensables">
610                Dispensables
611            </a>
612    
613            <ul >
614                            <li class="">
615            <a href="/refactoring/smells/comments">
616                Comments
617            </a>
618    
619    
620            </li>
621                                <li class="">
622            <a href="/refactoring/smells/duplicate-code">
623                Duplicate Code
624            </a>
625    
626    
627            </li>
628                                <li class="">
629            <a href="/refactoring/smells/lazy-class">
630                Lazy Class
631            </a>
632    
633    
634            </li>
635                                <li class="">
636            <a href="/refactoring/smells/data-class">
637                Data Class
638            </a>
639    
640    
641            </li>
642                                <li class="">
643            <a href="/refactoring/smells/dead-code">
644                Dead Code
645            </a>
646    
647    
648            </li>
649                                <li class="">
650            <a href="/refactoring/smells/speculative-generality">
651                Speculative Generality
652            </a>
653    
654    
655            </li>
656                        </ul>
657    
658            </li>
659                                <li class="">
660            <a href="/refactoring/smells/couplers">
661                Couplers
662            </a>
663    
664            <ul >
665                            <li class="">
666            <a href="/refactoring/smells/feature-envy">
667                Feature Envy
668            </a>
669    
670    
671            </li>
672                                <li class="">
673            <a href="/refactoring/smells/inappropriate-intimacy">
674                Inappropriate Intimacy
675            </a>
676    
677    
678            </li>
679                                <li class="">
680            <a href="/refactoring/smells/message-chains">
681                Message Chains
682            </a>
683    
684    
685            </li>
686                                <li class="">
687            <a href="/refactoring/smells/middle-man">
688                Middle Man
689            </a>
690    
691    
692            </li>
693                        </ul>
694    
695            </li>
696                                <li class="">
697            <a href="/refactoring/smells/other">
698                Other Smells
699            </a>
700    
701            <ul >
702                            <li class="">
703            <a href="/refactoring/smells/incomplete-library-class">
704                Incomplete Library Class
705            </a>
706    
707    
708            </li>
709                        </ul>
710    
711            </li>
712                        </ul>
713    
714            </li>
715                                <li class="">
716            <a href="/refactoring/refactorings">
717                Refactoring techniques
718            </a>
719    
720            <ul >
721                            <li class="">
722            <a href="/refactoring/composing-methods">
723                Composing Methods
724            </a>
725    
726            <ul >
727                            <li class="">
728            <a href="/refactoring/extract-method">
729                Extract Method
730            </a>
731    
732    
733            </li>
734                                <li class="">
735            <a href="/refactoring/inline-method">
736                Inline Method
737            </a>
738    
739    
740            </li>
741                                <li class="">
742            <a href="/refactoring/extract-variable">
743                Extract Variable
744            </a>
745    
746    
747            </li>
748                                <li class="">
749            <a href="/refactoring/inline-temp">
750                Inline Temp
751            </a>
752    
753    
754            </li>
755                                <li class="">
756            <a href="/refactoring/replace-temp-with-query">
757                Replace Temp with Query
758            </a>
759    
760    
761            </li>
762                                <li class="">
763            <a href="/refactoring/split-temporary-variable">
764                Split Temporary Variable
765            </a>
766    
767    
768            </li>
769                                <li class="">
770            <a href="/refactoring/remove-assignments-to-parameters">
771                Remove Assignments to Parameters
772            </a>
773    
774    
775            </li>
776                                <li class="">
777            <a href="/refactoring/replace-method-with-method-object">
778                Replace Method with Method Object
779            </a>
780    
781    
782            </li>
783                                <li class="">
784            <a href="/refactoring/substitute-algorithm">
785                Substitute Algorithm
786            </a>
787    
788    
789            </li>
790                        </ul>
791    
792            </li>
793                                <li class="">
794            <a href="/refactoring/moving-features-between-objects">
795                Moving Features between Objects
796            </a>
797    
798            <ul >
799                            <li class="">
800            <a href="/refactoring/move-method">
801                Move Method
802            </a>
803    
804    
805            </li>
806                                <li class="">
807            <a href="/refactoring/move-field">
808                Move Field
809            </a>
810    
811    
812            </li>
813                                <li class="">
814            <a href="/refactoring/extract-class">
815                Extract Class
816            </a>
817    
818    
819            </li>
820                                <li class="">
821            <a href="/refactoring/inline-class">
822                Inline Class
823            </a>
824    
825    
826            </li>
827                                <li class="">
828            <a href="/refactoring/hide-delegate">
829                Hide Delegate
830            </a>
831    
832    
833            </li>
834                                <li class="">
835            <a href="/refactoring/remove-middle-man">
836                Remove Middle Man
837            </a>
838    
839    
840            </li>
841                                <li class="">
842            <a href="/refactoring/introduce-foreign-method">
843                Introduce Foreign Method
844            </a>
845    
846    
847            </li>
848                                <li class="">
849            <a href="/refactoring/introduce-local-extension">
850                Introduce Local Extension
851            </a>
852    
853    
854            </li>
855                        </ul>
856    
857            </li>
858                                <li class="">
859            <a href="/refactoring/organizing-data">
860                Organizing Data
861            </a>
862    
863            <ul >
864                            <li class="">
865            <a href="/refactoring/self-encapsulate-field">
866                Self Encapsulate Field
867            </a>
868    
869    
870            </li>
871                                <li class="">
872            <a href="/refactoring/replace-data-value-with-object">
873                Replace Data Value with Object
874            </a>
875    
876    
877            </li>
878                                <li class="">
879            <a href="/refactoring/change-value-to-reference">
880                Change Value to Reference
881            </a>
882    
883    
884            </li>
885                                <li class="">
886            <a href="/refactoring/change-reference-to-value">
887                Change Reference to Value
888            </a>
889    
890    
891            </li>
892                                <li class="">
893            <a href="/refactoring/replace-array-with-object">
894                Replace Array with Object
895            </a>
896    
897    
898            </li>
899                                <li class="">
900            <a href="/refactoring/duplicate-observed-data">
901                Duplicate Observed Data
902            </a>
903    
904    
905            </li>
906                                <li class="">
907            <a href="/refactoring/change-unidirectional-association-to-bidirectional">
908                Change Unidirectional Association to Bidirectional
909            </a>
910    
911    
912            </li>
913                                <li class="">
914            <a href="/refactoring/change-bidirectional-association-to-unidirectional">
915                Change Bidirectional Association to Unidirectional
916            </a>
917    
918    
919            </li>
920                                <li class="">
921            <a href="/refactoring/replace-magic-number-with-symbolic-constant">
922                Replace Magic Number with Symbolic Constant
923            </a>
924    
925    
926            </li>
927                                <li class="">
928            <a href="/refactoring/encapsulate-field">
929                Encapsulate Field
930            </a>
931    
932    
933            </li>
934                                <li class="">
935            <a href="/refactoring/encapsulate-collection">
936                Encapsulate Collection
937            </a>
938    
939    
940            </li>
941                                <li class="">
942            <a href="/refactoring/replace-type-code-with-class">
943                Replace Type Code with Class
944            </a>
945    
946    
947            </li>
948                                <li class="">
949            <a href="/refactoring/replace-type-code-with-subclasses">
950                Replace Type Code with Subclasses
951            </a>
952    
953    
954            </li>
955                                <li class="">
956            <a href="/refactoring/replace-type-code-with-state-strategy">
957                Replace Type Code with State/Strategy
958            </a>
959    
960    
961            </li>
962                                <li class="">
963            <a href="/refactoring/replace-subclass-with-fields">
964                Replace Subclass with Fields
965            </a>
966    
967    
968            </li>
969                        </ul>
970    
971            </li>
972                                <li class="">
973            <a href="/refactoring/simplifying-conditional-expressions">
974                Simplifying Conditional Expressions
975            </a>
976    
977            <ul >
978                            <li class="">
979            <a href="/refactoring/decompose-conditional">
980                Decompose Conditional
981            </a>
982    
983    
984            </li>
985                                <li class="">
986            <a href="/refactoring/consolidate-conditional-expression">
987                Consolidate Conditional Expression
988            </a>
989    
990    
991            </li>
992                                <li class="">
993            <a href="/refactoring/consolidate-duplicate-conditional-fragments">
994                Consolidate Duplicate Conditional Fragments
995            </a>
996    
997    
998            </li>
999                                <li class="">
1000            <a href="/refactoring/remove-control-flag">
1001                Remove Control Flag
1002            </a>
1003    
1004    
1005            </li>
1006                                <li class="">
1007            <a href="/refactoring/replace-nested-conditional-with-guard-clauses">
1008                Replace Nested Conditional with Guard Clauses
1009            </a>
1010    
1011    
1012            </li>
1013                                <li class="">
1014            <a href="/refactoring/replace-conditional-with-polymorphism">
1015                Replace Conditional with Polymorphism
1016            </a>
1017    
1018    
1019            </li>
1020                                <li class="">
1021            <a href="/refactoring/introduce-null-object">
1022                Introduce Null Object
1023            </a>
1024    
1025    
1026            </li>
1027                                <li class="">
1028            <a href="/refactoring/introduce-assertion">
1029                Introduce Assertion
1030            </a>
1031    
1032    
1033            </li>
1034                        </ul>
1035    
1036            </li>
1037                                <li class="">
1038            <a href="/refactoring/simplifying-method-calls">
1039                Simplifying Method Calls
1040            </a>
1041    
1042            <ul >
1043                            <li class="">
1044            <a href="/refactoring/rename-method">
1045                Rename Method
1046            </a>
1047    
1048    
1049            </li>
1050                                <li class="">
1051            <a href="/refactoring/add-parameter">
1052                Add Parameter
1053            </a>
1054    
1055    
1056            </li>
1057                                <li class="">
1058            <a href="/refactoring/remove-parameter">
1059                Remove Parameter
1060            </a>
1061    
1062    
1063            </li>
1064                                <li class="">
1065            <a href="/refactoring/separate-query-from-modifier">
1066                Separate Query from Modifier
1067            </a>
1068    
1069    
1070            </li>
1071                                <li class="">
1072            <a href="/refactoring/parameterize-method">
1073                Parameterize Method
1074            </a>
1075    
1076    
1077            </li>
1078                                <li class="">
1079            <a href="/refactoring/replace-parameter-with-explicit-methods">
1080                Replace Parameter with Explicit Methods
1081            </a>
1082    
1083    
1084            </li>
1085                                <li class="">
1086            <a href="/refactoring/preserve-whole-object">
1087                Preserve Whole Object
1088            </a>
1089    
1090    
1091            </li>
1092                                <li class="">
1093            <a href="/refactoring/replace-parameter-with-method-call">
1094                Replace Parameter with Method Call
1095            </a>
1096    
1097    
1098            </li>
1099                                <li class="">
1100            <a href="/refactoring/introduce-parameter-object">
1101                Introduce Parameter Object
1102            </a>
1103    
1104    
1105            </li>
1106                                <li class="">
1107            <a href="/refactoring/remove-setting-method">
1108                Remove Setting Method
1109            </a>
1110    
1111    
1112            </li>
1113                                <li class="">
1114            <a href="/refactoring/hide-method">
1115                Hide Method
1116            </a>
1117    
1118    
1119            </li>
1120                                <li class="">
1121            <a href="/refactoring/replace-constructor-with-factory-method">
1122                Replace Constructor with Factory Method
1123            </a>
1124    
1125    
1126            </li>
1127                                <li class="">
1128            <a href="/refactoring/replace-error-code-with-exception">
1129                Replace Error Code with Exception
1130            </a>
1131    
1132    
1133            </li>
1134                                <li class="">
1135            <a href="/refactoring/replace-exception-with-test">
1136                Replace Exception with Test
1137            </a>
1138    
1139    
1140            </li>
1141                        </ul>
1142    
1143            </li>
1144                                <li class="">
1145            <a href="/refactoring/dealing-with-generalisation">
1146                Dealing with Generalisation
1147            </a>
1148    
1149            <ul >
1150                            <li class="">
1151            <a href="/refactoring/pull-up-field">
1152                Pull Up Field
1153            </a>
1154    
1155    
1156            </li>
1157                                <li class="">
1158            <a href="/refactoring/pull-up-method">
1159                Pull Up Method
1160            </a>
1161    
1162    
1163            </li>
1164                                <li class="">
1165            <a href="/refactoring/pull-up-constructor-body">
1166                Pull Up Constructor Body
1167            </a>
1168    
1169    
1170            </li>
1171                                <li class="">
1172            <a href="/refactoring/push-down-method">
1173                Push Down Method
1174            </a>
1175    
1176    
1177            </li>
1178                                <li class="">
1179            <a href="/refactoring/push-down-field">
1180                Push Down Field
1181            </a>
1182    
1183    
1184            </li>
1185                                <li class="">
1186            <a href="/refactoring/extract-subclass">
1187                Extract Subclass
1188            </a>
1189    
1190    
1191            </li>
1192                                <li class="">
1193            <a href="/refactoring/extract-superclass">
1194                Extract Superclass
1195            </a>
1196    
1197    
1198            </li>
1199                                <li class="">
1200            <a href="/refactoring/extract-interface">
1201                Extract Interface
1202            </a>
1203    
1204    
1205            </li>
1206                                <li class="">
1207            <a href="/refactoring/collapse-hierarchy">
1208                Collapse Hierarchy
1209            </a>
1210    
1211    
1212            </li>
1213                                <li class="">
1214            <a href="/refactoring/form-template-method">
1215                Form Template Method
1216            </a>
1217    
1218    
1219            </li>
1220                                <li class="">
1221            <a href="/refactoring/replace-inheritance-with-delegation">
1222                Replace Inheritance with Delegation
1223            </a>
1224    
1225    
1226            </li>
1227                                <li class="">
1228            <a href="/refactoring/replace-delegation-with-inheritance">
1229                Replace Delegation with Inheritance
1230            </a>
1231    
1232    
1233            </li>
1234                        </ul>
1235    
1236            </li>
1237                        </ul>
1238    
1239            </li>
1240                        </ul>
1241    
1242            </li>
1243                                <li class="">
1244            <a href="/uml">
1245                <i class="fa fa-fw fa-sitemap" aria-hidden="true"></i> UML
1246            </a>
1247    
1248            <ul >
1249                            <li class="">
1250            <a href="/uml/introduction">
1251                Introduction
1252            </a>
1253    
1254    
1255            </li>
1256                                <li class="">
1257            <a href="/uml/basic-principles">
1258                Basic Principles and Background
1259            </a>
1260    
1261            <ul >
1262                            <li class="">
1263            <a href="/uml/basic-principles-and-background/introduction-to-the-case-study">
1264                Introduction to the Case Study
1265            </a>
1266    
1267    
1268            </li>
1269                                <li class="">
1270            <a href="/uml/basic-principles-and-background/models-views-and-diagrams">
1271                Models, Views, and Diagrams
1272            </a>
1273    
1274    
1275            </li>
1276                                <li class="">
1277            <a href="/uml/basic-principles-and-background/information-systems-and-it-systems">
1278                Information Systems and IT Systems
1279            </a>
1280    
1281    
1282            </li>
1283                                <li class="">
1284            <a href="/uml/basic-principles-and-background/the-models-of-our-case-study">
1285                The Models of our Case Study
1286            </a>
1287    
1288    
1289            </li>
1290                                <li class="">
1291            <a href="/uml/basic-principles-and-background/history-of-uml-methods-and-notations">
1292                History of UML: Methods and Notations
1293            </a>
1294    
1295    
1296            </li>
1297                                <li class="">
1298            <a href="/uml/basic-principles-and-background/requirement-specification">
1299                Requirement Specification
1300            </a>
1301    
1302    
1303            </li>
1304                                <li class="">
1305            <a href="/uml/basic-principles-and-background/uml2">
1306                UML 2.0
1307            </a>
1308    
1309    
1310            </li>
1311                        </ul>
1312    
1313            </li>
1314                                <li class="">
1315            <a href="/uml/modeling-business-systems">
1316                Modeling Business Systems
1317            </a>
1318    
1319            <ul >
1320                            <li class="">
1321            <a href="/uml/modeling-business-systems/business-processes-and-business-systems">
1322                Business Processes and Business Systems
1323            </a>
1324    
1325    
1326            </li>
1327                                <li class="">
1328            <a href="/uml/modeling-business-systems/one-model-two-views">
1329                One Model—Two Views
1330            </a>
1331    
1332    
1333            </li>
1334                                <li class="">
1335            <a href="/uml/modeling-business-systems/external-view">
1336                External View
1337            </a>
1338    
1339    
1340            </li>
1341                                <li class="">
1342            <a href="/uml/modeling-business-systems/the-elements-of-view">
1343                The Elements of a View
1344            </a>
1345    
1346    
1347            </li>
1348                                <li class="">
1349            <a href="/uml/modeling-business-systems/external-view/use-case-diagrams">
1350                Use Case Diagrams
1351            </a>
1352    
1353    
1354            </li>
1355                                <li class="">
1356            <a href="/uml/modeling-business-systems/external-view/constructing-use-case-diagrams">
1357                Constructing Use Case Diagrams
1358            </a>
1359    
1360    
1361            </li>
1362                                <li class="">
1363            <a href="/uml/modeling-business-systems/external-view/activity-diagrams">
1364                Activity Diagrams
1365            </a>
1366    
1367    
1368            </li>
1369                                <li class="">
1370            <a href="/uml/modeling-business-systems/external-view/constructing-activity-diagrams">
1371                Constructing Activity Diagrams
1372            </a>
1373    
1374    
1375            </li>
1376                                <li class="">
1377            <a href="/uml/modeling-business-systems/external-view/sequence-diagrams">
1378                Sequence Diagrams
1379            </a>
1380    
1381    
1382            </li>
1383                                <li class="">
1384            <a href="/uml/modeling-business-systems/external-view/constructing-sequence-diagrams">
1385                Constructing Sequence Diagrams
1386            </a>
1387    
1388    
1389            </li>
1390                                <li class="">
1391            <a href="/uml/modeling-business-systems/external-view/high-level-sequence-diagrams">
1392                High-Level Sequence Diagrams
1393            </a>
1394    
1395    
1396            </li>
1397                                <li class="">
1398            <a href="/uml/modeling-business-systems/external-view/sequence-diagrams-for-scenarios-of-business-use-cases">
1399                Sequence Diagrams for Scenarios of Business Use Cases
1400            </a>
1401    
1402    
1403            </li>
1404                                <li class="">
1405            <a href="/uml/modeling-business-systems/the-internal-view">
1406                Internal View
1407            </a>
1408    
1409    
1410            </li>
1411                                <li class="">
1412            <a href="/uml/modeling-business-systems/internal-view/package-diagram">
1413                Package Diagram
1414            </a>
1415    
1416    
1417            </li>
1418                                <li class="">
1419            <a href="/uml/modeling-business-systems/internal-view/constructing-package-diagrams">
1420                Constructing Package Diagrams
1421            </a>
1422    
1423    
1424            </li>
1425                                <li class="">
1426            <a href="/uml/modeling-business-systems/internal-view/class-diagram">
1427                Class Diagram
1428            </a>
1429    
1430    
1431            </li>
1432                                <li class="">
1433            <a href="/uml/modeling-business-systems/internal-view/constructing-class-diagrams">
1434                Constructing Class Diagrams
1435            </a>
1436    
1437    
1438            </li>
1439                                <li class="">
1440            <a href="/uml/modeling-business-systems/internal-view/activity-diagram">
1441                Activity Diagram
1442            </a>
1443    
1444    
1445            </li>
1446                        </ul>
1447    
1448            </li>
1449                                <li class="">
1450            <a href="/uml/modeling-it-systems">
1451                Modeling IT Systems
1452            </a>
1453    
1454            <ul >
1455                            <li class="">
1456            <a href="/uml/modeling-it-systems/external-view">
1457                External View
1458            </a>
1459    
1460    
1461            </li>
1462                                <li class="">
1463            <a href="/uml/modeling-it-systems/external-view/the-user-view-or-i-dont-care-how-it-works-as-long-as-it-works">
1464                The User View or "I don't care how it works, as long as it works."
1465            </a>
1466    
1467    
1468            </li>
1469                                <li class="">
1470            <a href="/uml/modeling-it-systems/external-view/the-elements-of-view">
1471                The Elements of a View
1472            </a>
1473    
1474    
1475            </li>
1476                                <li class="">
1477            <a href="/uml/modeling-it-systems/external-view/the-elements-of-view/use-case-diagram">
1478                Use Case Diagram
1479            </a>
1480    
1481    
1482            </li>
1483                                <li class="">
1484            <a href="/uml/modeling-it-systems/external-view/query-events-and-mutation-events">
1485                Query Events and Mutation Events
1486            </a>
1487    
1488    
1489            </li>
1490                                <li class="">
1491            <a href="/uml/modeling-it-systems/external-view/use-case-sequence-diagram">
1492                Use Case Sequence Diagram
1493            </a>
1494    
1495    
1496            </li>
1497                                <li class="">
1498            <a href="/uml/modeling-it-systems/external-view/constructing-the-external-view">
1499                Constructing the External View
1500            </a>
1501    
1502    
1503            </li>
1504                                <li class="">
1505            <a href="/uml/modeling-it-systems/structural-view">
1506                Structural View
1507            </a>
1508    
1509    
1510            </li>
1511                                <li class="">
1512            <a href="/uml/modeling-it-systems/structural-view/objects-and-classe
1512s">
1513                Objects and Classes
1514            </a>
1515    
1516    
1517            </li>
1518                                <li class="">
1519            <a href="/uml/modeling-it-systems/structural-view/generalization-specialization-and-inheritance">
1520                Generalization, Specialization, and Inheritance
1521            </a>
1522    
1523    
1524            </li>
1525                                <li class="">
1526            <a href="/uml/modeling-it-systems/structural-view/static-and-dynamic-business-rules">
1527                Static and Dynamic Business Rules
1528            </a>
1529    
1530    
1531            </li>
1532                                <li class="">
1533            <a href="/uml/modeling-it-systems/structural-view/elements-of-the-view">
1534                Elements of the View
1535            </a>
1536    
1537    
1538            </li>
1539                                <li class="">
1540            <a href="/uml/modeling-it-systems/structural-view/class-diagram">
1541                Class Diagram
1542            </a>
1543    
1544    
1545            </li>
1546                                <li class="">
1547            <a href="/uml/modeling-it-systems/structural-view/constructing-class-diagrams">
1548                Constructing Class Diagrams
1549            </a>
1550    
1551    
1552            </li>
1553                                <li class="">
1554            <a href="/uml/modeling-it-systems/the-behavioral-view">
1555                The Behavioral View
1556            </a>
1557    
1558    
1559            </li>
1560                                <li class="">
1561            <a href="/uml/modeling-it-systems/the-behavioral-view/the-life-of-an-object">
1562                The Life of an Object
1563            </a>
1564    
1565    
1566            </li>
1567                                <li class="">
1568            <a href="/uml/modeling-it-systems/the-behavioral-view/the-elements-of-the-view">
1569                The Elements of the View
1570            </a>
1571    
1572    
1573            </li>
1574                                <li class="">
1575            <a href="/uml/modeling-it-systems/the-behavioral-view/statechart-diagram">
1576                Statechart Diagram
1577            </a>
1578    
1579    
1580            </li>
1581                                <li class="">
1582            <a href="/uml/modeling-it-systems/the-behavioral-view/constructing-statechart-diagrams">
1583                Constructing Statechart Diagrams
1584            </a>
1585    
1586    
1587            </li>
1588                                <li class="">
1589            <a href="/uml/modeling-it-systems/interaction-view">
1590                Interaction View
1591            </a>
1592    
1593    
1594            </li>
1595                                <li class="">
1596            <a href="/uml/modeling-it-systems/interaction-view/seeing-what-happens-inside-the-it-system">
1597                Seeing What Happens Inside the IT System
1598            </a>
1599    
1600    
1601            </li>
1602                                <li class="">
1603            <a href="/uml/modeling-it-systems/interaction-view/elements-of-the-view">
1604                Elements of the View
1605            </a>
1606    
1607    
1608            </li>
1609                                <li class="">
1610            <a href="/uml/modeling-it-systems/interaction-view/communication-diagram">
1611                Communication Diagram
1612            </a>
1613    
1614    
1615            </li>
1616                                <li class="">
1617            <a href="/uml/modeling-it-systems/interaction-view/sequence-diagram">
1618                Sequence Diagram
1619            </a>
1620    
1621    
1622            </li>
1623                                <li class="">
1624            <a href="/uml/modeling-it-systems/interaction-view/constructing-communication-diagrams">
1625                Constructing Communication Diagrams
1626            </a>
1627    
1628    
1629            </li>
1630                                <li class="">
1631            <a href="/uml/modeling-it-systems/interaction-view/constructing-sequence-diagrams">
1632                Constructing Sequence Diagrams
1633            </a>
1634    
1635    
1636            </li>
1637                        </ul>
1638    
1639            </li>
1640                                <li class="">
1641            <a href="/uml/modeling-for-system-integration">
1642                Modeling for System Integration
1643            </a>
1644    
1645            <ul >
1646                            <li class="">
1647            <a href="/uml/modeling-for-system-integration/terminology-of-system-integration">
1648                Terminology of System Integration
1649            </a>
1650    
1651    
1652            </li>
1653                                <li class="">
1654            <a href="/uml/modeling-for-system-integration/messages-in-uml">
1655                Messages in UML
1656            </a>
1657    
1658    
1659            </li>
1660                                <li class="">
1661            <a href="/uml/modeling-for-system-integration/one-model-two-views">
1662                One Model—Two Views
1663            </a>
1664    
1665    
1666            </li>
1667                                <li class="">
1668            <a href="/uml/modeling-for-system-integration/process-view">
1669                Process View
1670            </a>
1671    
1672    
1673            </li>
1674                                <li class="">
1675            <a href="/uml/modeling-for-system-integration/process-view/the-business-system-model-as-foundation">
1676                The Business System Model as Foundation
1677            </a>
1678    
1679    
1680            </li>
1681                                <li class="">
1682            <a href="/uml/modeling-for-system-integration/process-view/elements-of-the-view">
1683                Elements of the View
1684            </a>
1685    
1686    
1687            </li>
1688                                <li class="">
1689            <a href="/uml/modeling-for-system-integration/process-view/activity-diagrams">
1690                Activity Diagrams
1691            </a>
1692    
1693    
1694            </li>
1695                                <li class="">
1696            <a href="/uml/modeling-for-system-integration/process-view/sequence-diagram">
1697                Sequence Diagram
1698            </a>
1699    
1700    
1701            </li>
1702                                <li class="">
1703            <a href="/uml/modeling-for-system-integration/process-view/constructing-diagrams-in-the-process-view">
1704                Constructing Diagrams in the Process View
1705            </a>
1706    
1707    
1708            </li>
1709                                <li class="">
1710            <a href="/uml/modeling-for-system-integration/the-static-view">
1711                The Static View
1712            </a>
1713    
1714    
1715            </li>
1716                                <li class="">
1717            <a href="/uml/modeling-for-system-integration/the-static-view/elements-of-the-view">
1718                Elements of the View
1719            </a>
1720    
1721    
1722            </li>
1723                                <li class="">
1724            <a href="/uml/modeling-for-system-integration/the-static-view/class-diagram">
1725                Class Diagram
1726            </a>
1727    
1728    
1729            </li>
1730                                <li class="">
1731            <a href="/uml/modeling-for-system-integration/the-static-view/constructing-class-diagrams">
1732                Constructing Class Diagrams
1733            </a>
1734    
1735    
1736            </li>
1737                                <li class="">
1738            <a href="/uml/modeling-for-system-integration/the-static-view/transforming-data-from-the-it-system-to-the-mess">
1739                Transforming Data from the IT System to the Message "passenger list"
1740            </a>
1741    
1742    
1743            </li>
1744                                <li class="">
1745            <a href="/uml/modeling-for-system-integration/the-static-view/transformation-of-uml-messages-into-various-stan">
1746                Transformation of UML Messages into Various Standard Formats
1747            </a>
1748    
1749    
1750            </li>
1751                        </ul>
1752    
1753            </li>
1754                        </ul>
1755    
1756            </li>
1757                        </ul>
1758    
1759                </div>
1760
1761            <div class="main-menu-aux-controls">
1762                <a href="https://sourcemaking.com/login" title="Sign in"><svg style="width: 16px; height: 16px; filter:drop-shadow(0 1px 1px #0d5e4e)" class="inline-block mx-0"  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor"opacity=".4" fill="currentColor" d="M386.4 320c9.7 128.3 47.9 224 93.6 224 53 0 96-128.9 96-288S533-32 480-32c-41.8 0-77.4 80.2-90.6 192.2 41.6 2.8 74.6 37.5 74.6 79.8 0 43.4-34.5 78.7-77.6 80z"/><path fill="currentColor"fill="currentColor" d="M256-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.1 176c-3.3 0-6.2 2-7.4 5L93.7 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.2 129.9 93.6 112 123.1 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.2 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.4 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45L94 402.5c4.5-3.7 7.8-8.5 9.8-13.9L115.1 357z"/></svg> Sign in</a>
1763                <a href="https://feedback.sourcemaking.com/" class="userecho-public" rel="nofollow" title="Contact us"><i class="fa fa-fw fa-fw fa-envelope" aria-hidden="true"></i> Contact us</a>
1764            </div>
1765        </div>
1766    </div>
1767</aside>
1768
1769    <nav class="navigation" role="navigation">
1770    <div class="navigation-container">
1771        <a class="navigation-brand" href="/">
1772            <img alt="SourceMaking"
1773                 src="/images/content-public/logos/logo-min-xs.png?id=f4a48661fc32a3f349b76a075f28594c"
1774                 srcset="/images/content-public/logos/logo-min-xs-2x.png?id=34fc05750336c33b7815e231a0f227df 2x">
1775        </a>
1776
1777        <div class="shop-link d-none d-lg-block" style="display: none !important;">
1778            <a class="btn btn-md btn-primary btn-featured" href="/store"><svg style="width: 28px; height: 28px; fill: currentColor; display: inline-block; margin-top: -14px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M356 60l60 20-60 20-20 60-20-60L256 80l60-20L336 0l20 60zM464 208l48 16-48 16-16 48-16-48-48-16 48-16 16-48 16 48zm-243.8-9.8l33 66.9 73.8 10.7 59.8 8.7-43.3 42.2-53.4 52.1 12.6 73.5L313 512l-53.5-28.1-66-34.7-66 34.7L73.9 512l10.2-59.6 12.6-73.5L43.3 326.8 0 284.6l59.8-8.7 73.8-10.7 33-66.9L193.5 144l26.8 54.2zm26.1 114.4l-25-3.6-11.2-22.6-16.7-33.9-16.7 33.9L165.6 309l-25 3.6-37.4 5.4 27.1 26.4 18.1 17.6L144 387l-6.4 37.3 33.5-17.6 22.3-11.7 22.3 11.7 33.5 17.6L242.9 387l-4.3-24.9 18.1-17.6 27.1-26.4-37.4-5.4z"/></svg>
1779                Shop Now!</a>
1780        </div>
1781
1782        <ul class="navigation-menu">
1783                        <li class="nav-contacts">
1784                <a class="userecho-private" href="https://feedback.sourcemaking.com/?show_feedback_form_private=true" rel="nofollow" title="Contact us">
1785                    <i class="fa fa-fw fa-envelope" aria-hidden="true"></i> <span class="caption d-none d-xl-inline-block">Contact us</span>
1786                </a>
1787            </li>
1788                            <li class="nav-user">
1789                    <a href="https://sourcemaking.com/login" title="Sign in"><span class="sign-in-icon"><svg style="width: 24px; height: 24px; " class="inline-block "  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor"opacity=".4" fill="currentColor" d="M386.4 320c9.7 128.3 47.9 224 93.6 224 53 0 96-128.9 96-288S533-32 480-32c-41.8 0-77.4 80.2-90.6 192.2 41.6 2.8 74.6 37.5 74.6 79.8 0 43.4-34.5 78.7-77.6 80z"/><path fill="currentColor"fill="currentColor" d="M256-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.1 176c-3.3 0-6.2 2-7.4 5L93.7 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.2 129.9 93.6 112 123.1 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.2 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.4 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45L94 402.5c4.5-3.7 7.8-8.5 9.8-13.9L115.1 357z"/></svg></span> <span class="account-icon" style="display:none"><svg style="width: 24px; height: 24px; " class="inline-block "  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor"opacity=".4" fill="currentColor" d="M2.2 251.7C7 263.9 18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1L464 181.5 464 80c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 12.3-90.2-83.8c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1zM144 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zM312 256a56 56 0 1 1 -112 0 56 56 0 1 1 112 0z"/><path fill="currentColor"fill="currentColor" d="M256 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0z"/></svg></span> <span class="sign-out-icon" style="display:none"><svg style="width: 24px; height: 24px; " class="inline-block "  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor"opacity=".4" fill="currentColor" d="M0 256c0 159.1 43 288 96 288 19.9 0 38.5-18.2 53.8-49.5-39.6-5-70.1-39-69.8-79.9 .3-44.2 36.3-79.8 80.5-79.5l27.8 .2c1.2-12.5 2.1-25.3 2.7-38.4-38.8-17.5-57.3-62.7-41.3-102.6l21.9-54.9C174.2 133 177.3 126.9 180.8 121.2 164.7 30 132.8-32 96-32 43-32 0 96.9 0 256z"/>
1789<path fill="currentColor"fill="currentColor" d="M360 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM283.1 176c-3.3 0-6.2 2-7.4 5l-21.9 54.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9c10.9-27.3 37.4-45.3 66.9-45.3l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L445.2 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zM273 362.8l2.1-5.8c13.3 14.8 30.7 26.3 51.2 32.4l4.5 1.3c-15.2 34.6-49.6 57.3-87.8 57.3L160 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l82.9 0c13.5 0 25.6-8.5 30.1-21.2z"/></svg></span> <span class="caption d-none d-xl-inline-block">Sign in</span></a>
1790                </li>
1791                        <li class="nav-menu">
1792                <button class="navigation-toggle"><i class="fa fa-fw fa-bars" aria-hidden="true"></i></button>
1793            </li>
1794        </ul>
1795    </div>
1796</nav>
1797
1798    <footer class="footer center-content">
1799    <div class="footer-container center-content-container">
1800        <div class="footer-inner container-fluid">
1801            <div class="row">
1802                <div class="col-6">
1803                    <ul class="footer-list footer-list-horizontal">
1804                        <li class="first expanded"><a href="/design_patterns">Design Patterns</a></li>
1805                        <li class="expanded"><a href="/antipatterns">AntiPatterns</a></li>
1806                        <li class="expanded"><a href="/refactoring">Refactoring</a></li>
1807                        <li class="last expanded"><a href="/uml">UML</a></li>
1808                    </ul>
1809                </div>
1810                <div class="col-6">
1811                    <ul class="footer-list footer-list-horizontal footer-links-right">
1812                        <li><a href="/home">My account</a></li>
1813                        <li><a href="https://sourcemaking.userecho.com/" class="userecho-public" rel="nofollow">Forum</a></li>
1814                        <li><a href="https://sourcemaking.userecho.com/?show_feedback_form_private=true" class="userecho-private" rel="nofollow">Contact
1815                                us</a></li>
1816                        <li><a href="/about-us">About us</a></li>
1817                    </ul>
1818                </div>
1819            </div>
1820        </div>
1821    </div>
1822    <div class="footer-second">
1823        <div class="footer-container center-content-container">
1824            <div class="footer-inner container-fluid">
1825                <div class="row">
1826                    <div class="col-6">
1827                        © 2007-2026 <a href="/">SourceMaking.com</a><span class="d-none d-md-inline"> / </span><br class="d-md-none">All rights reserved.
1828                    </div>
1829                    <div class="col-6 footer-links-right">
1830                        <a href="/terms">Terms</a> /
1831                        <a href="/privacy-policy">Privacy policy</a>
1832                    </div>
1833                </div>
1834            </div>
1835        </div>
1836    </div>
1837</footer>
1838</div>
1839
1840
1841    
1841<script type="text/javascript">
1842        window.PADDLE_ACCOUNT = "ES";
1843        (function() {
1844            if (window.PADDLE_INITIALIZED) {
1845                return;
1846            }
1847            paddleInitIntervalRetryCounter = 0;
1848            let paddleInitInterval = setInterval(function () {
1849                if (typeof Paddle !== 'undefined') {
1850                    clearInterval(paddleInitInterval);
1851                    Paddle.Environment.set("production");
1852                    Paddle.Initialize({
1853                        token: "live_4e17ff3c8c206b5cd63bb352cf3",
1854                        eventCallback: function (data) {
1855                            if (data?.type === 'checkout.ping.size') {
1856                                return;
1857                            }
1858                            const ignoredPaddleEvents = [
1859                                'checkout.loaded',
1860                                'checkout.closed',
1861                                'checkout.completed',
1862                                'checkout.items.updated',
1863                                'checkout.items.removed',
1864                                'checkout.customer.created',
1865                                'checkout.customer.updated',
1866                                'checkout.customer.removed',
1867                                'checkout.payment.selected',
1868                                'checkout.payment.initiated',
1869                                'checkout.payment.failed',
1870                                'checkout.discount.applied',
1871                                'checkout.discount.removed',
1872                            ]
1873                            if (!data?.name || !ignoredPaddleEvents.includes(data?.name)) {
1874                                console.error(data);
1875                                $.ajax({
1876                                    method: "POST",
1877                                    url: '/ajax/error',
1878                                    data: {
1879                                        error: 'Paddle client init error.',
1880                                        order_id: checkout?.storage?.data?.id,
1881                                        data: data,
1882                                    },
1883                                    dataType: 'json',
1884                                    crossDomain: true,
1885                                    xhrFields: {
1886                                        withCredentials: true
1887                                    },
1888                                    timeout: CHECKOUT_AJAX_TIMEOUT
1889                                });
1890                            }
1891                        }
1892                    });
1893                    window.PADDLE_INITIALIZED = true;
1894                } else {
1895                    paddleInitIntervalRetryCounter++;
1896                    if (paddleInitIntervalRetryCounter > 20) {
1897                        clearInterval(paddleInitInterval);
1898                    }
1899                }
1900            }, 500);
1901        })();
1902    </script>
1902
1903
1904
1905    
1905<script defer>
1906        var CodeMirrorScripts = ["/js/codemirror.min.js?id=a4f41826be06712a32311c57319be313"];
1907    </script>
1907
1908
1909    
1909<script>window.loadContent = true;window.loadCart = true;</script>
1909
1910</body>
1911</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.