<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-9302850</atom:id><lastBuildDate>Fri, 30 Jan 2026 00:36:01 +0000</lastBuildDate><category>Software Architecture and Design</category><category>Software Engineering</category><category>OSS/BSS</category><category>Complexity</category><category>Management</category><title>Ravi Sharda&#39;s Weblog [BETA]</title><description>My $.02 on stuff related to software architecture, design and development. And links I consider interesting enough to share.</description><link>http://ravisharda.blogspot.com/</link><managingEditor>noreply@blogger.com (Ravi Sharda)</managingEditor><generator>Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-2402007927482973159</guid><pubDate>Mon, 18 Jun 2012 04:00:00 +0000</pubDate><atom:updated>2012-06-18T09:30:16.856+05:30</atom:updated><title>Architecture of Open Source Software</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;Authors of over four dozen open source applications explain the architecture of their software and their design decisions, in a set of two books that are freely available under a Creative Commons license. Find them here:&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;&quot;&lt;/span&gt;&lt;a href=&quot;http://www.aosabook.org/en/index.html&quot; style=&quot;background-color: white;&quot;&gt;The Architecture of Open Source Application&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;s&quot;. &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &#39;Times New Roman&#39;, serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;&quot;&gt;In the &lt;/span&gt;&lt;a href=&quot;http://www.aosabook.org/en/intro1.html&quot; style=&quot;background-color: white; font-family: Georgia, &#39;Times New Roman&#39;, serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;&quot;&gt;introductory&lt;/a&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &#39;Times New Roman&#39;, serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;&quot;&gt; chapter&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &#39;Times New Roman&#39;, serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;&quot;&gt;, Amy Brown and Greg Wilson explain the intent of the books:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;&quot;&gt;&lt;i&gt;&quot;Building architecture and software architecture have a lot in common, but there is one crucial difference. While architects study thousands of buildings in their training and during their careers, most software developers only ever get to know a handful of large programs well. And more often than not, those are programs they wrote themselves. They never get to see the great programs of history, or read critiques of those programs&#39; designs written by experienced practitioners. As a result, they repeat one another&#39;s mistakes rather than building on one another&#39;s successes.&quot;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;&quot;&gt;This book is our attempt to change that. Each chapter describes the architecture of an open source application: how it is structured, how its parts interact, why it&#39;s built that way, and what lessons have been learned that can be applied to other big design problems...&quot;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;/div&gt;</description><link>http://ravisharda.blogspot.com/2012/06/architecture-of-open-source-software.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-7985661105734608496</guid><pubDate>Sun, 18 Dec 2011 05:18:00 +0000</pubDate><atom:updated>2011-12-18T10:48:23.526+05:30</atom:updated><title>Bredemeyer&#39;s Software Architecture Links</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;A comprehensive set of links on software architecture:&amp;nbsp;&lt;a href=&quot;http://www.bredemeyer.com/links.htm&quot;&gt;http://www.bredemeyer.com/links.htm&lt;/a&gt;. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;</description><link>http://ravisharda.blogspot.com/2011/12/bredemeyers-software-architecture-links.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-8178475644767058141</guid><pubDate>Sun, 04 Sep 2011 12:33:00 +0000</pubDate><atom:updated>2011-09-04T18:03:05.265+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Architecture and Design</category><title>Design approaches</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Does you head spin when someone talks about design approaches such as responsibility driven design (RDD), behavior driven design (BDD), domain driven design (DDD) or model driven design (MDD)?&amp;nbsp;&lt;a href=&quot;http://www.wirfs-brock.com/PDFs/s1des6.pdf&quot;&gt;Here is&lt;/a&gt; Rebecca J. Wirfs-Brock&#39;s article to the rescue.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;</description><link>http://ravisharda.blogspot.com/2011/09/design-approaches.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-8684470566139649962</guid><pubDate>Thu, 23 Jun 2011 03:36:00 +0000</pubDate><atom:updated>2011-06-23T09:06:24.809+05:30</atom:updated><title>Preserving architectural design in code</title><description>Eoin Woods advices on writing code that preserves the initial  architectural design using conventions, dependency analysis, module  systems, augmenting the code &amp;amp; checking rules, and language  extensions.: &lt;a href=&quot;http://www.infoq.com/presentations/Where-Did-My-Architecture-Go&quot;&gt;InfoQ: Where Did My Architecture Go?&lt;/a&gt;</description><link>http://ravisharda.blogspot.com/2011/06/preserving-architectural-design-in-code.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-514453817468948795</guid><pubDate>Sun, 29 May 2011 10:27:00 +0000</pubDate><atom:updated>2011-05-30T10:41:24.667+05:30</atom:updated><title>Amazon Dynamo and its design</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;a href=&quot;http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf&quot;&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;Here&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt; is a seminal paper released by Amazon describing&amp;nbsp;Dynamo, Amazon&#39;s&amp;nbsp;proprietary highly available key-value based&amp;nbsp;data store used for it&#39;s own data storage needs. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;Many&amp;nbsp;philosphies described in this paper coincide with those of other &lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/NoSQL&quot;&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;NoSql&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt; data stores. For example,&amp;nbsp;&lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Consistent_hashing&quot;&gt;consistent hashing&lt;/a&gt;&lt;/em&gt; for determining which partition to store data, &lt;em&gt;&lt;a href=&quot;http://abel-perez.com/cassandra-hinted-handoff&quot;&gt;hinted handoffs&lt;/a&gt;&lt;/em&gt; to ensure read/write operations do not get affected when nodes or parts of network go down temporarily, and so on.&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;As such, this paper is a great reading material for anyone wanting to understand&amp;nbsp;some of the key design&amp;nbsp;considerations regarding&amp;nbsp;NoSql DBs. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</description><link>http://ravisharda.blogspot.com/2011/05/amazon-dynamo-and-its-design.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-2166463782905229091</guid><pubDate>Fri, 07 Jan 2011 08:50:00 +0000</pubDate><atom:updated>2011-01-07T14:20:33.333+05:30</atom:updated><title>Understanding Weak references in Java</title><description>&lt;a href=&quot;http://weblogs.java.net/blog/2006/05/04/understanding-weak-references&quot;&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;Here&#39;s&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt; a nice article from &lt;/span&gt;&lt;a href=&quot;http://weblogs.java.net/blog/194311&quot;&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;Ethan Nicholas&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt; on Weak References - a topic that eludes many Java developers. &lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2011/01/understanding-weak-references-in-java.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-1459716084692268917</guid><pubDate>Fri, 26 Nov 2010 17:18:00 +0000</pubDate><atom:updated>2010-11-26T22:48:48.902+05:30</atom:updated><title>A list of refactorings</title><description>&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Developers often encounter a need for refactoring&amp;nbsp;code that has existed for a long time. This is because software tends to get complex and unmaintainable over time, unless time and effort is spent on&amp;nbsp;preserving the modular structure of the software&amp;nbsp;and its simplicity in the face of evolving needs.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Martin Fowler defines refactoring as&amp;nbsp;&quot;&lt;em&gt;... a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior&lt;/em&gt;&quot;. [&lt;/span&gt;&lt;a href=&quot;http://www.refactoring.com/&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Src&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;] &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;A list of &quot;refactorings&quot; both from the &lt;a href=&quot;http://www.amazon.com/gp/product/0201485672?ie=UTF8&amp;amp;tag=martinfowlerc-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0201485672&quot;&gt;original book&lt;/a&gt; by Fowler and some later sources, is available &lt;/span&gt;&lt;a href=&quot;http://www.refactoring.com/catalog/index.html&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;. &lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/11/list-of-refactorings.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-8866356774692445171</guid><pubDate>Mon, 15 Nov 2010 05:03:00 +0000</pubDate><atom:updated>2010-11-15T11:02:32.980+05:30</atom:updated><title>jQuery 101 for folks on the run</title><description>&lt;a href=&quot;http://jqfundamentals.com/book/book.html#N206E1&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;&quot;&gt;Here&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;&quot;&gt; is&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.rebeccamurphey.com/&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;&quot;&gt;Rebecca Murphy&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;&quot;&gt;&#39;s article on jQuery fundamentals. It helped me learn enough jQuery in a couple of days to do/understand small to medium sized jQuery based UIs. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Trebuchet MS;&quot;&gt;&lt;a href=&quot;http://nsreekanth.blogspot.com/&quot;&gt;Sreekanth&lt;/a&gt;, my good friend, has published a comparision between jQuery and GWT &lt;a href=&quot;http://nsreekanth.blogspot.com/2010/09/gwt-and-jquery-my-musings.html&quot;&gt;here&lt;/a&gt;. &lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/11/jquery-101-for-folks-on-run.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-6057662080445499446</guid><pubDate>Fri, 15 Oct 2010 12:31:00 +0000</pubDate><atom:updated>2010-10-15T18:12:16.882+05:30</atom:updated><title>Rebecca Wirfs-Brock&#39;s columns and articles on software design</title><description>&lt;a href=&quot;http://en.wikipedia.org/wiki/Rebecca_Wirfs-Brock&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;&quot;&gt;Rebecca Wirfs-Brock&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;&quot;&gt;&#39;s&amp;nbsp;IEEE software&amp;nbsp;&quot;design&quot; columns (published between Jan. 2006 and Dec. 2009) and&amp;nbsp;several other articles on software design, can be found &lt;/span&gt;&lt;a href=&quot;http://www.wirfs-brock.com/Resources.html#IEEE%20Design%20Column&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;&quot;&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;&quot;&gt;.&amp;nbsp;These are must reads for software designers/architects.&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/10/ieee-software-design-columns-jan-06-dec.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-2157941230417511988</guid><pubDate>Wed, 29 Sep 2010 08:39:00 +0000</pubDate><atom:updated>2010-09-29T14:44:00.819+05:30</atom:updated><title>Floating Point Basics Made Easy</title><description>&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span xmlns=&quot;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-large;&quot;&gt;1) Introduction&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Almost every processor, computer, programming language and operating system supports floating-points. Despite its ubiquity, most programmers consider it an esotoric topic. James Gosling (the &quot;father&quot; of Java) once asserted &quot;&lt;em&gt;95% of folks out there are completely clueless about floating-point.&lt;/em&gt;&quot; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The vast majority of applications/programs can do just with integral/integer types. There are times when the need to use non-integral types and the vagaries of representing those, show up. High-level programming languages such as Java, C#, C++ all make it very easy to use floating-points. However, seemingly innocuous floating-point code can cause severe discrepancies and very hard to debug runtime errors. Therefore, understanding how it works under the hood helps!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The basic ideas behind floating point are not very difficult to understand. This article intends to introduce the basics to the uninitiated. Folks interested in a deeper treatment of floating-point are referred to David Goldberg&#39;s article &quot;&lt;/span&gt;&lt;a href=&quot;http://docs.sun.com/source/806-3568/ncg_goldberg.html&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;What Every Computer Scientist Should Know About Floating-Point Arithmetic&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&quot;Section 2&quot; provides the background on topics such as real numbers, decimal and binary numeral systems. Readers already well-versed with these topics may want to just skim through this section. &quot;Section&amp;nbsp;3&quot; gets into the&amp;nbsp;basics of floating-point representation. &quot;Section&amp;nbsp;4&quot; describes some&amp;nbsp;practical issues in representing real numbers in floating point representation. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-large;&quot;&gt;2) Background&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;2.1 Real Numbers&lt;/span&gt;&lt;/h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Nearly any number you can think of is a real number. This includes:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;Whole numbers:&lt;/em&gt; {0 and natural/counting numbers: 1, 2, 3…..upto infinity}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;Negatives of counting numbers:&lt;/em&gt; {-infinity,….-3, -2, -1}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;Other rational numbers/fractions:&lt;/em&gt; Any number that can be expressed as a fraction m / n where m and n are integers and n is not equal to 0. Put another way, rational numbers are numbers that can be written as a simple fraction. For example 0.5, 7 and 0.214 are all rational numbers, since they can be represented exactly as: 1/2, 7/1 and 214/100 respectively.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;Irrational numbers:&lt;/em&gt; Any real number that is not a rational number, i.e., cannot be represented as a simple fraction. Some examples are:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Times, &amp;quot;Times New Roman&amp;quot;, serif; font-size: 16pt;&quot;&gt;π&lt;/span&gt; (&#39;Pi&#39;) = 3.14159....(and more). The popular approximation of 22/7 is close, but not accurate.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;√2 (Square root of 2) = 1.4142135623730950...(etc)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Whole numbers and negatives of whole numbers are also known as &quot;integers&quot; or &quot;integral&quot; types.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;Note:&lt;/em&gt; A radix point is a symbol used to separate the the integer part of a number with from its fractional part. For e.g., in the number 1.23, the radix point (decimal point in this case) separates the integer 1 from the fraction 23. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;2.2 Decimal Numeral System&lt;/span&gt;&lt;/h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The decimal number system that we use so frequently in our lives, has 10 digits (also known as decimal digits): 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9. The &quot;base&quot; is the number of digits in a number system. So, the decimal number system is base-10 (has 10 as its base). The numbers 2525 or 25.25 use decimal digits, for example.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The decimal number system allows you to represent a real number by an ordered set of characters where the value of the character depends on its position. When you say 2525, you implicitly mean 2x10&lt;sup&gt;3&lt;/sup&gt; + 5x10&lt;sup&gt;2&lt;/sup&gt; + 2x10&lt;sup&gt;1&lt;/sup&gt; + 5 (which amounts to 2525). Therefore, it is a &quot;positional&quot; system of numeration. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;A decimal fraction is a fraction where the denominator is a power of 10. For example 2.8 equates to 28/10, 0.28 equates to 28/(10x10).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;2.3 Binary Numeral System&lt;/span&gt;&lt;/h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Unlike the decimal numeral system, which has 10 digits for representing characters in a number,&amp;nbsp;most modern computers&amp;nbsp;have only 0 or 1 to represent a number. Computers can be thought of as comprised of switches that are on or off (digital electronic circuitry using logic gates). These digits are called bits. Since there are only 2 digits available, the binary numeral system is a base-2 system. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Like the decimal numeral system, the binary numeral system is a &quot;positional&quot; system of numeration, that is it represents a&amp;nbsp;number by an ordered set of characters where the value of the character depends on its position.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;&lt;u&gt;Representing Positive Integers:&lt;/u&gt;&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Suppose you want to represent the positive integers 12 and 139 (both decimal numbers) in the binary system. You can represent them in the binary system as follows:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;12 = 1x2&lt;sup&gt;3&lt;/sup&gt; +&amp;nbsp;1x2&lt;sup&gt;2&lt;/sup&gt;&amp;nbsp; + 0x2&lt;sup&gt;1&lt;/sup&gt; + 0x2&lt;sup&gt;0 &lt;/sup&gt;= 1100 &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;139 = 1x2&lt;sup&gt;7&lt;/sup&gt; + 0 + 0 + 0 + 1x2&lt;sup&gt;3&lt;/sup&gt; + 0 + 1x2&lt;sup&gt;1&lt;/sup&gt; + 0 = 1000 1010&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif; text-decoration: underline;&quot;&gt;&lt;em&gt;Notes: &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Bytes are sequences of 8 bits and are now used widely as a fundamental unit. Most modern computers process information in 8-bit units, or some multiples of 8 at a time: 16, 32, 64 bits. A group of 8 bits is also commonly known as octet. Individual bits are not directly addressable and are manipulated as part of bigger units such as bytes. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;As you can imagine, storing and processing the vast streams of bits can quickly become very inefficient.&amp;nbsp;Moreover, it is tedious and error prone for system programmers to look at bits such as 1001001101110101 for debugging. Hexadecimal representation comes to the rescue. It is a compact representation of four bit groups and can be easily converted to the actual binary bits and back. A good description of hexadecimal is provided in [10].&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;&lt;u&gt;Representing Negative Integers:&lt;/u&gt;&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;So far we have seen how positive integers can be represented using the binary numeral system. &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Negative numbers are typically represented using two common approaches:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&quot;signed magnitude&quot; and &quot;two&#39;s complement&quot;. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&quot;Signed magnitude&quot; is simple: simply use the leftmost bit (the &quot;most significant&quot; bit - remember binary system is positional) for the sign – 0 for positive and 1 for negative. For example, on 8-bit numbers:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;-12 = 1000 1100 &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;+12 = 0000 1100&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;However, using signed magnitude mechanism complicates matters for circuit builders when they need to take a sign bit into account. The &quot;two&#39;s complement&quot; representation solves this problem and is widely used. To form a two&#39;s complement of a number, flip all bits and add 1. For example, to represent the number -13:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Step 1: 13 = 0000 1101&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Step 2: Flip all bits =&amp;gt; 1111 0010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Step 3: Now add 1 (to represent negative sign) =&amp;gt; 1111 0011&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Therefore, -13 = 1111 0011, in two&#39;s complement representation. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Representing -13 as 1111 0011 might look odd at first, but try adding 13 with +13 and you&#39;d get zero as expected. The rules of binary arithmetic addition operation apply: carry to the next position if the sum of the digits and the prior carry is 2 or 3. Refer to [12] for a description on binary arithmetic. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #1f497d; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11111 111&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;+13&amp;nbsp;&amp;nbsp; 0000 1101&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;-13&amp;nbsp;&amp;nbsp;&amp;nbsp; 1111&amp;nbsp;0011 &lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10000 0000&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;But only the last 8 digits count, so +13 and -13 add up to 0, as you&#39;d expect. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;&lt;u&gt;Java&#39;s Primitive Integral Data Types:&lt;/u&gt;&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;At this point, you might want to see how the concepts we have discussed so far&amp;nbsp;map to data types of a programming language. Let&#39;s take Java&#39;s Integer (also referred to as &quot;integral&quot;) data types, as examples. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;table border=&quot;0&quot; style=&quot;border-collapse: collapse;&quot;&gt;&lt;colgroup&gt;&lt;/colgroup&gt;&lt;/&gt;&lt;colgroup&gt;&lt;col style=&quot;width: 113px;&quot;&gt;&lt;col style=&quot;width: 101px;&quot;&gt;&lt;col style=&quot;width: 209px;&quot;&gt;&lt;col style=&quot;width: 216px;&quot;&gt;&lt;/colgroup&gt;&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr style=&quot;background: #bfbfbf;&quot;&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Data Type&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;No. of Bits/Bytes&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Signed/Unsigned&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Covers what values?&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;boolean&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;1 bit &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;NA&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;byte&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;8 bits&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Signed (two&#39;s complement)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;-128 to 127&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;short&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;2 bytes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Signed (two&#39;s complement)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;-32,768 to 32,767&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;int&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;4 bytes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Signed (two&#39;s complement)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;-2,147,483,648 to 2,147,483,647&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;long&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;8 bytes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Signed (two&#39;s complement)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;9,223,372,036,854,775,808 to +9,223,372,036,854,775,807&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;char&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;2 bytes&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Unsigned (Unicode)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;0 to 65,535&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;&lt;u&gt;Representing Fractions:&lt;/u&gt;&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;In the decimal system, the value of each digit to the right of the decimal point (radix point) is calculated as 1/10, 1/10&lt;sup&gt;2&lt;/sup&gt;, 1/10&lt;sup&gt;3&lt;/sup&gt;, and so on.&amp;nbsp;These equate to 10&lt;sup&gt;-1, &lt;/sup&gt;10&lt;sup&gt;-2, &lt;/sup&gt;10&lt;sup&gt;-3,&amp;nbsp;&lt;/sup&gt;and so on.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Similarly, in the binary system, the value of each successive digit of a binary fraction is the reciprocal of a power of 2 (1/2, 1/2&lt;sup&gt;2&lt;/sup&gt;, 1/2&lt;sup&gt;3 &lt;/sup&gt;… or 2&lt;sup&gt;-1&lt;/sup&gt;, 2&lt;sup&gt;-2&lt;/sup&gt;, 2&lt;sup&gt;-3&lt;/sup&gt;).&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;As you know, there are only two digits/symbols in the binary system – both are used for representing the numerical value of the number. So, how do you represent the radix point? &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;One solution is to make the radix point implicit: for example, assuming that the radix point is in the middle of a given 16 bits format. 8 bits would be dedicated to representing the integer part and the remaining 8 bits would represent the fractional part. Consider the number 5.25, as an example. &lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Integer portion&amp;nbsp;5: … 1x2&lt;sup&gt;2 &lt;/sup&gt;+ 0x2&lt;sup&gt;1&lt;/sup&gt; + 1x2&lt;sup&gt;0 &lt;/sup&gt;= 00000101&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Fraction portion&amp;nbsp;.25 (=1/4): 0x2&lt;sup&gt;-1&lt;/sup&gt; + 2&lt;sup&gt;-2 &lt;/sup&gt;= 01000000&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;table border=&quot;0&quot; style=&quot;border-collapse: collapse;&quot;&gt;&lt;colgroup&gt;&lt;/colgroup&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;&gt;&amp;nbsp;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt; &lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;colgroup&gt;&lt;col style=&quot;width: 83px;&quot;&gt;&lt;col style=&quot;width: 98px;&quot;&gt;&lt;col style=&quot;width: 119px;&quot;&gt;&lt;/colgroup&gt;&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr style=&quot;background: #bfbfbf;&quot;&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Decimal Number&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Integer bits&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Fractional bits&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;5.25&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;00000101&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;01000000&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Fixing the radix point and dedicating a fixed number of integer bits and fractional bits, is what is known as &quot;fixed-point&quot; representation. Fixed-point representations are used by most calculators, spreadsheets and some computer hardware/software. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Now, suppose you wanted to represent 5.25. The binary representation would be: &lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;312 = 100111000 (9 binary digits)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;.25 = .01&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The total number of binary digits required for the binary encoding is 11. The number can be physically stored in a 16-digit structure with five bits to spare. However, since this fixed point format assigns eight bits to represent the integer part of the number, 312.25 cannot be encoded because the integer part (312) requires nine binary digits.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Floating-point representations, on the other hand, do not use a fixed position for the radix point. It employs a scheme that contains a &quot;floating&quot; radix point (binary point in computers). We explore floating-point in the next section. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-large;&quot;&gt;3) Floating-Point Numbers&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There are times when you want to represent a number that is too large for your regular data types to handle. Say, you want to represent a very large number like 1x10&lt;sup&gt;100&lt;/sup&gt; or a very small number like the mass of an electron: 9.1x10&lt;sup&gt;-31&lt;/sup&gt;. Enter floating-point representations.&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Contrary to popular belief, floating-point representations are used to represent not only numbers that contain fractions, but also integers of large magnitudes.&amp;nbsp;They essentially provide ability to represent a large dynamic range by means of an exponent while supporting reasonable accuracy by the use of a &quot;mantissa&quot;/&quot;significand&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;3.1 Floating Radix Points in Decimal Numeral System&lt;/span&gt;&lt;/h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Conventional scientific notation separates the position of the radix point from the significant digits. &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;For example, the value 295.54 can be written as: 2.954 x 10&lt;sup&gt;2&lt;/sup&gt;, 29.54 x 10, etc.. In exponential form, the number can be written as 2.954E2, 29.54E1, etc. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Similarly, one can represent an integer value 8 as a floating-point 8.00 (8E0), 0.8 x 10 (or 0.8E1), and so on. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Numbers smaller than 1 can be represented by using negative powers of 10. For example 0.5 = 5E-1 (represents 5x10&lt;sup&gt;-1&lt;/sup&gt;) or 5E-2 (represents 50 x 10&lt;sup&gt;-2&lt;/sup&gt;). &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;When you multiply or divide any of these numbers by 10 or any powers of 10, only the position of the decimal point (radix point) changes: the radix point &quot;floats&quot;. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Now, say you have a large number such as 9,999,999,123. You can represent it as 0.9999999E10, as long as the loss of the three low-order digits doesn&#39;t cause much harm in your given scenario. But it does allow you to represent a much wider range of values: for example, 0.9999999E99.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;3.2 Floating-Point in Binary Numeral System&lt;/span&gt;&lt;/h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;In the last section we discussed how a given number can be represented in multiple ways in the decimal numeral system, simply by varying the radix point, and changing the exponent. &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;A binary floating-point number works in a similar fashion. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Let&#39;s consider the fractional number: + 11.1011 x 2&lt;sup&gt;-3 &lt;/sup&gt;(or 11.1011E-3). It has:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;A positive sign:&lt;/em&gt; This represents whether the number is positive or negative. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;A Mantissa:&lt;/em&gt; 11.1001&lt;/span&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Where the integer part 11 = 2&lt;sup&gt;1 + &lt;/sup&gt;2&lt;sup&gt;0&lt;/sup&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;And the fractional part 1011 = 1/2 + 0 + 1/2&lt;sup&gt;3 &lt;/sup&gt;+ 1/2&lt;sup&gt;3 &lt;/sup&gt;(can be also represented as: 2&lt;sup&gt;-1&lt;/sup&gt; + 0 + 2&lt;sup&gt;-3&lt;/sup&gt; + 2&lt;sup&gt;-3&lt;/sup&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;An exponent&lt;/em&gt; 3. The value of the exponent is negative. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;One can also represent 11.1011 x 2&lt;sup&gt;-3 &lt;/sup&gt;as 1.11011 x 2&lt;sup&gt;-2&lt;/sup&gt;. (In scientific notation these are 11.1011E-3 and 1.11011E-2 respectively.)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;By varying the radix point and the exponent, one can represent a much wider range of numbers (both integers and fractions), even if the number of digits in the significand is much smaller than the range. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The most popular floating-point format is one defined by the IEEE 754 standard. The next sub-section describes the standard.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;em&gt;&lt;u&gt;IEEE 754 Floating Point Formats:&lt;/u&gt;&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Before the IEEE 754 standard was first published in 1985, there were several floating-point formats used by hardware and software. Therefore, it was difficult to port programs using floating-points from one system to another, as it would result in varying computed results.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The IEEE 754 specification is a widely adopted specification that describes how floating-point numbers are represented in binary (and decimal), how arithmetic operations and conversions needs to be done and how rounding and exception handling needs to be handled. It is widely adopted because it allows floating-point numbers to be stored in reasonable amount of space and computations to occur efficiently. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The standard defines five basic formats: a) three binary floating-point formats (which can be encoded in 32 bits, 64 bits and 128 bits), and b) two decimal floating-point formats. We explore the two key binary/base-2 floating-point formats: binary32 and binary64. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;IEEE binary32 (also known as &quot;single-precision&quot; or &quot;float&quot; or &quot;single&quot;) occupies 32 bits (4 bytes) in memory. It is implemented as &quot;float&quot; in Java, C, and C++, as &quot;single&quot; in Pascal and MATLAB, and as &quot;real&quot; in Fortran.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The layout of binary32 can be depicted as:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;table border=&quot;0&quot; style=&quot;border-collapse: collapse;&quot;&gt;&lt;colgroup&gt;&lt;/colgroup&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;colgroup&gt;&lt;col style=&quot;width: 153px;&quot;&gt;&lt;col style=&quot;width: 181px;&quot;&gt;&lt;col style=&quot;width: 213px;&quot;&gt;&lt;/colgroup&gt;&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Sign&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Bit index: 31 (1 bit)&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Exponent&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Bit index: 23-30 (8 bits)&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Significand&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Bit index: 0-22 (23 bits)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;IEEE binary64 (also known as &quot;double-precision&quot; or &quot;double&quot;) occupies 64 bits (8 bytes) in memory. It is implemented as &quot;double&quot; in Java, C++, C#, etc.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The layout of binary&amp;nbsp;64 can be depicted as:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;table border=&quot;0&quot; style=&quot;border-collapse: collapse;&quot;&gt;&lt;colgroup&gt;&lt;/colgroup&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;colgroup&gt;&lt;col style=&quot;width: 153px;&quot;&gt;&lt;col style=&quot;width: 189px;&quot;&gt;&lt;col style=&quot;width: 213px;&quot;&gt;&lt;/colgroup&gt;&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Sign&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Bit index: 63 (1 bit)&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Exponent&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Bit index: 52-62 (11 bits)&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Significand&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Bit index: 0-52 (52 bits)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Binary32 and binary64 have a similar layout and differ only on the number of bits devoted for the exponent and the significand. &lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Sign Bit:&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;The sign bit &lt;em&gt;(the high-order bit in the above tables)&lt;/em&gt; represents whether the number is positive or negative. 0 represents a positive number and 1 represents a negative number.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;Exponent:&lt;/strong&gt;&lt;/span&gt; The exponent represents the integer power of the base with which the significand must be multiplied. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The exponent needs to be able to represent both positive and negative exponents: positive for integer digits and negative for fractional digits, as we say earlier. Two&#39;s complement – the usual representation for signed values, would make comparison harder. Therefore, IEEE 754 standard establishes that the exponent be stored in biased form. A bias, in this context, refers to a constant that is added to the exponent in order to determine its final value. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Let&#39;s consider the single precision / binary32. Since the numerical range of 8 binary digits is 0 to 255 decimal, and half of this is approximately 127. Adding the constant 127 to all positive numbers would thus place them in the range 127-255. The negative exponents would fall in the range 1-126. Therefore, exponents of -126 to 127 are representable. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Exponents of -127 (all 0s) would be biased to 0, but is reserved to encode that the value is a denormalized number: a number that is very close to zero. It is also referred to as a &quot;denormal&quot;. Denormalized numbers or denormals occur when the exponent of the number is too small to represent in the corresponding floating-point format. Why is the unbiased exponent of -127 reserved? Let us look at an example to illustrate the reason. The smallest non-zero normal number is 2&lt;sup&gt;-126&lt;/sup&gt;. Now say, a = 1.01 x 2&lt;sup&gt;-126&lt;/sup&gt; x and b = 1.00 x 2&lt;sup&gt;-126&lt;/sup&gt;. The computation (a –b) would result in an exponent 2&lt;sup&gt;-128&lt;/sup&gt; , which is not representable. This the computation would result in a value 0.0, which is not what you&#39;d expect. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Similarly, exponents of +128 (all 1s) would be biased to 255, but are reserved for encoding an infinity or NaN (not a number). &lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Infinities are generated by divisions by zero or by overflows. Overflows are generated when the result of an operation is a number so large in magnitude, that it cannot be represented. 1/0 = infinity, 1/inifinity = 0, and 0 (or any number) + inifinity = infinity. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;NaNs represent the result of operations that cannot have meaningful result in terms of a finite number or infinity. For e.g., 0/0 or √-1.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;Significant/Mantissa:&lt;/strong&gt;&lt;/span&gt; The significand is also known by other names too: mantissa, significant digits, fractional part, etc. We saw earlier that any given number, in base-2 or base-10, can be represented in multiple ways. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Floating point numbers are &quot;normalized&quot; such that they are represented as a base-2 decimal with a digit 1 to the left of the radix point, adjusting the exponent as necessary. Since every number (except for denormals) is represented with 1 is the first digit of the significand, IEEE 754 implementations can assume the bit, i.e., the first digit does not need to be stored explicitly. In the normalized form, the integer portion (the left of the radix point) is exactly one bit. Therefore, all stored digits in the bits dedicated to the significand hold only fractional parts.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Refer to [13] page numbers 49-50, for a nice description on how a floating-point binary number is converted into a normalized form. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Also, by assuming a leading bit 1, the IEEE 754 single- and double- precision formats double the range of the representation.&amp;nbsp;Rhe normalized significand&#39;s range is 1.00000… (all 0s, since 1 is assumed) to 1.111111… (all 1s, since 1 is assumed). The subnormals range from 0.0000…1 to 0.1111…. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Thus, in general a given decimal number can be represented as: &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (-1)&lt;sup&gt;-sign&lt;/sup&gt; x mantissa x 2 &lt;sup&gt;(exponent-127)&lt;/sup&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Let&#39;s take an example of a decimal number -55.625 to illustrate the above concepts.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Since the number is negative, the sign is 1. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;55.625 can be represented in binary/base 2 as 110111.101 (equates to the integer: 32 + 16 + 0 + 4 + 2 + 1, and the fraction: 0.5 + 0 + 0.125). &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Normalizing the binary value, we get 1.10111101 and exponent 5 (base 2). The significand is 1.10111101. The fraction is: .10111101. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Now, apply the bias to the exponent 5: this results into 132 (5+127).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Thus, -55.625 would be represented in binary32 as:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;table border=&quot;0&quot; style=&quot;border-collapse: collapse;&quot;&gt;&lt;colgroup&gt;&lt;/colgroup&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;colgroup&gt;&lt;col style=&quot;width: 46px;&quot;&gt;&lt;col style=&quot;width: 84px;&quot;&gt;&lt;col style=&quot;width: 191px;&quot;&gt;&lt;/colgroup&gt;&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr style=&quot;background: #d9d9d9;&quot;&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Sign&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Exponent&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Significand&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;10000100&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;1011110100000000000000&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The effective ranges (excluding infinite values) of IEEE floating-point numbers are [17]:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;0&quot; style=&quot;border-collapse: collapse;&quot;&gt;&lt;colgroup&gt;&lt;/colgroup&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;colgroup&gt;&lt;col style=&quot;width: 213px;&quot;&gt;&lt;col style=&quot;width: 147px;&quot;&gt;&lt;col style=&quot;width: 150px;&quot;&gt;&lt;/colgroup&gt;&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr style=&quot;background: #d9d9d9;&quot;&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Binary Range&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: 0.5pt solid; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Decimal Range&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Single Precision/ binary32&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;± (2-2&lt;sup&gt;-23&lt;/sup&gt;) × 2&lt;sup&gt;127&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;~ ± 10&lt;sup&gt;38.53&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: 0.5pt solid; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Double Precision/ binary64&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;± (2-2&lt;sup&gt;-52&lt;/sup&gt;) × 2&lt;sup&gt;1023&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 0.5pt solid; border-left: medium none; border-right: 0.5pt solid; border-top: medium none; padding-left: 7px; padding-right: 7px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;~ ± 10&lt;sup&gt;308.25&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;If you printed Java&#39;s minimum and maximum values for the corresponding float and double data types,&amp;nbsp;you would get:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Float.MIN_VALUE = 1.4E-45 and Float.MAX_VALUE = 3.4028235E38&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Double.MIN_VALUE = 4.9E-324 and Double.MAX_VALUE = 1.7976931348623157E308&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-large;&quot;&gt;4) Practical Issues in Representing Numbers&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;We now turn to some of the errors that can occur when we try to represent a given real number in the binary form. &lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;4.1 Bit Patterns are Finite, Real Numbers are Not&lt;/span&gt;&lt;/h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Real numbers have the following properties (among others):&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;They have no upper and lower bounds: they go from –infinity to +infinity. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;They have infinite density: There is a real number between any two real numbers. Consider 1.1 and 1.2. There are infinite real numbers between the two: 1.11, 1.111, 1.12, 1.112… and so on. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Now, let&#39;s consider a binary representation of 8 digits containing all bits as 1. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;1111 1111 = 2&lt;sup&gt;7 &lt;/sup&gt;+ 2&lt;sup&gt;6&lt;/sup&gt;+ &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;2&lt;sup&gt;5&lt;/sup&gt; + 2&lt;sup&gt;4 +&lt;/sup&gt; 2&lt;sup&gt;3 + &lt;/sup&gt;2&lt;sup&gt;2 + &lt;/sup&gt;2&lt;sup&gt;1&lt;/sup&gt; + 2&lt;sup&gt;0 &lt;/sup&gt;= (128 + 64 + 32 + 16 + 8 + 4 + 2 + 1) = 256 &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Thus, using all 8 bits, you can get 256. In general, if you have n bits available, you have at most 2&lt;sup&gt;n&lt;/sup&gt; bit-patterns, and so you can represent at most 2&lt;sup&gt;n&lt;/sup&gt; numbers. For example, using Java&#39;s 32 bits integer data type&amp;nbsp;&quot;int&quot;, you can represent at most 2&lt;sup&gt;32 &lt;/sup&gt;integers. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Most data types have a finite set of bits and as such the type will have to have a largest number and a smallest number (bounded). Also, computations must also not exceed the bounds.&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;4.2 Not all Real Numbers Are Representable Exactly&lt;/span&gt;&lt;/h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;In the decimal numeral system (base-10), fractions such as 1/2, 1/4 and 1/5 can be represented exactly as 0.5, 0.25 and 0.2, respectively.&amp;nbsp;There are others (irrational numbers) that cannot be represented exactly. For example: 1/3 = 0.333333333333333333… (&lt;em&gt;3 repeats infinitely&lt;/em&gt;), 1/7 = 0.14285714285714285714285714285714… (and so on). &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;In the decimal numeral system, any decimal fraction whose value can be found with a sum of finite number of inverse power or 10, can be represented exactly as a decimal fraction. Others can&#39;t be represented exactly. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Similarly, in the binary system, some decimal numbers such as 0.5 are exactly representable ( 0.5 equates to 1/2).&amp;nbsp;There are others such as 0.1 and&amp;nbsp;1/5&amp;nbsp;that cannot be represented exactly.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;For example, the decimal value 0.1 can be represented roughly as a base 2 fraction &lt;span style=&quot;color: black;&quot;&gt;0.0001100110011001100110011001100110011001100110011..., where the fraction repeats inifinitely.&amp;nbsp;Stop at any finite number of bits, and what you have is an approximation, rather than the exact value. For binary representations, any decimal fraction whose value cannot be found with a sum of finite number of inverse powers of 2, cannot be represented exactly. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;4.3 Floating-Point Rounding Errors are Unavoidable&lt;/span&gt;&lt;/h3&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Arithmetic computations with integers are exact, except when they result in &quot;overflows&quot; (the result is outside the range of integers that can be represented. In contrast, floating point arithmetic is often not exact, because&amp;nbsp;there are real numbers that cannot be represented exactly (as we discussed earlier) and so,&amp;nbsp;must&amp;nbsp;be approximated or &quot;rounded off&quot;. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;These roundoff errors can show up in unexpected ways, if you are not careful. &lt;/span&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;Take the following code written in Java for an example.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;double i=0.0;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;while (i != 0.1) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = i+0.01; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The while-loop in the above code will run infinitely, even though your expectation may be it should loop only 10 times. You can fix the code by changing &quot;i !=0.1&quot; to &quot;i&amp;lt;=0.1&quot;.&lt;/span&gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Let&#39;s look at another example:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;double finalval = 0;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i=0; i&amp;lt;10; i++) {&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finalval +=0.1;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(finalval);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (finalval == 1.0) { &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // do whatever &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The &#39;finalval&#39; in the above example is not computed as 1.0 as you&#39;d expect. It is: 0.9999999999999999. So, the code within the if block below that checks does an exact comparision is not executed.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Refer to [14, 15] for&amp;nbsp;other great examples.&lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-large;&quot;&gt;5) Summary&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;A&amp;nbsp;floating point number is a finite representation that is designed to approximate (and not always represent exactly) a real number. It enables you to represent a much larger range of numbers, both integers and decimal fractions. &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Floating-point representation is done by breaking up a number into a fractional part and an exponent part and storing the parts separately. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;By varying the radix point and the exponent, one can represent a much wider range of numbers (both integers and fractions), even if the number of digits in the significand is much smaller than the range. &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The most widely adopted floating-point standard is IEEE 754 and most software, including programming languages, implement the two binary formats defined by the standard: binary32 and binary64.&amp;nbsp;A single-precision floating point number, i.e., binary32, contains 32 bits: 1 bit for the sign, 8 bits for the exponent and 23 bits for the significant digits. A double-precision floating point number, i.e., binary64, contains 64 bits: 1 bit for the sign,&amp;nbsp;11 bits for the exponent and 23 bits for the significant digits.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Although one does not need to know all the details of floating-point arithmetic used in hardware and software, having a basic understanding of how floating-point works makes it easier to represent real numbers, avoid potential issues due to rounding errors, and debug floating-point code. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-large;&quot;&gt;6) References&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[1] David Goldberg, &quot;&lt;/span&gt;&lt;a href=&quot;http://docs.sun.com/source/806-3568/ncg_goldberg.html&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;What Every Computer Scientist Should Know About Floating-Point Arithmetic&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&quot; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[2] Brian Goetz, &quot;&lt;/span&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/java/library/j-jtp0114/&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Java Theory and Practice: Where&#39;s your Point?&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&quot;, Jan 2003&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[3] &lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fixed-point_arithmetic&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;http://en.wikipedia.org/wiki/Fixed-point_arithmetic&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[4] Ronald Mak, &quot;Java number cruncher: the Java programmer&#39;s guide to numerical computing&quot;, Prentice Hall PTR, 2003&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[5] &lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/IEEE_754&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;http://en.wikipedia.org/wiki/IEEE_754&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[6] &lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Computer_numbering_format&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;http://en.wikipedia.org/wiki/Computer_numbering_format&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[7] David Monniaux, &quot;&lt;/span&gt;&lt;a href=&quot;http://hal.archives-ouvertes.fr/docs/00/28/14/29/PDF/floating-point-article.pdf&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The Pitfalls of Verifying Floating-Point Computations&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&quot;, May 2008&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[8] &lt;/span&gt;&lt;a href=&quot;http://www.mathsisfun.com/&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;http://www.mathsisfun.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[9] Horstmann, Cay. &quot;Appendix K - Number Systems&quot;. Big Java, Third Edition. John Wiley &amp;amp; Sons. © 2008&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[10] Daniel B. Sedory, &quot;&lt;/span&gt;&lt;a href=&quot;http://mirror.href.com/thestarman/asm/hexawhat.html&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;What is Hexadecimal? And Where/How/Why is it used in Computers?&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[11] &lt;/span&gt;&lt;a href=&quot;http://www.ibiblio.org/pub/languages/fortran/ch4-1.html&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;http://www.ibiblio.org/pub/languages/fortran/ch4-1.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[12] &lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Binary_numeral_system&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;http://en.wikipedia.org/wiki/Binary_numeral_system&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[13] Julio Sanchez &amp;amp; Maria P. Canton, &quot;Microcontroller Programming: The Microchip PIC&quot;, CRC Press&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[14] Robert Sedgewick Kevin Wayne, &quot;Introduction to Programming in Java&quot;, &quot;9.1 Floating Point&quot;, &lt;/span&gt;&lt;a href=&quot;http://www.cs.princeton.edu/introcs/91float/&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;http://www.cs.princeton.edu/introcs/91float/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[15] Bruce M. Bush, &quot;&lt;/span&gt;&lt;a href=&quot;http://www.lahey.com/float.htm&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;The Perils of Floating Point&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&quot;, 1996&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;[16] Steve Hollasch, &quot;&lt;/span&gt;&lt;a href=&quot;http://steve.hollasch.net/cgindex/coding/ieeefloat.html&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;IEEE Standard 754 Floating Point Numbers&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&quot;, 2005&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/09/floating-point-basics-made-easy.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-3129466563035946456</guid><pubDate>Tue, 28 Sep 2010 09:05:00 +0000</pubDate><atom:updated>2010-09-28T14:35:10.418+05:30</atom:updated><title>Using JavaScript with Apache Ant</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;a href=&quot;http://weblogs.java.net/blog/emcmanus/archive/2010/09/20/using-javascript-make-apache-ant-less-painful&quot;&gt;Here&lt;/a&gt; is &lt;a href=&quot;http://weblogs.java.net/blog/emcmanus/&quot;&gt;Eamonn McManus&#39;s&lt;/a&gt; post on using JavaScript with Apache Ant.&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/09/using-javascript-with-apache-ant.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-2701726616754658658</guid><pubDate>Fri, 27 Aug 2010 18:08:00 +0000</pubDate><atom:updated>2010-08-28T09:18:54.674+05:30</atom:updated><title>Java concurrency guidelines</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;An extensive report on Java concurrency guidelines -&amp;nbsp;by Fred Long et al. and published by&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.sei.cmu.edu/&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;SEI-CMU&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;recently - can be found &lt;/span&gt;&lt;a href=&quot;http://www.sei.cmu.edu/library/abstracts/reports/10tr015.cfm?DCSext.abstractsource=SearchResults&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;.&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/08/java-concurrency-guidelines.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-3325567402434062221</guid><pubDate>Wed, 04 Aug 2010 20:27:00 +0000</pubDate><atom:updated>2010-10-19T15:56:01.918+05:30</atom:updated><title>Eponymous laws</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Eponymous laws are adages, laws, principles, theorems, etc. named after a person. Wikipedia has a&amp;nbsp;fabulous list&amp;nbsp;of such laws &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_eponymous_laws&quot;&gt;here&lt;/a&gt;. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana;&quot;&gt;A&amp;nbsp;few from the above list&amp;nbsp;(taken as is) that may be of interest to folks in software engineering:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Amara&#39;s law —&lt;/strong&gt; &quot;&lt;em&gt;We tend to overestimate the effect of a technology in the &lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;em&gt;short run and underestimate the effect in the long run&lt;/em&gt;.&quot; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Brooks&#39; law —&lt;/strong&gt; &quot;&lt;em&gt;Adding manpower to a late software project makes it later.&quot; Named after Fred Brooks, author of the well known book on Project Management, The Mythical Man-Month&lt;/em&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Campbell&#39;s Law -&lt;/strong&gt; &quot;&lt;em&gt;The more any quantitative social indicator is used for social decision-making, the more subject it will be to corruption pressures and the more apt it will be to distort and corrupt the social processes it is intended to monitor.&lt;/em&gt;&quot; Named for Donald T. Campbell (1916 - 1996) &lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Classen&#39;s law —&lt;/strong&gt; Theo Classen&#39;s &quot;Logarithmic Law of Usefulness&quot; - &lt;em&gt;&#39;usefulness=log(technology)&lt;/em&gt;&#39;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Conway&#39;s Law —&lt;/strong&gt; &quot;&lt;em&gt;Any piece of software reflects the organizational structure that produced it.&quot;&lt;/em&gt; Named for Melvin Conway. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Dilbert Principle —&lt;/strong&gt; Coined by Scott Adams as a variation of the Peter Principle of employee advancement. Named after Adams&#39; Dilbert comic strip, it proposes that &quot;&lt;em&gt;the most ineffective workers are systematically moved to the place where they can do the least damage: management&lt;/em&gt;.&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Gall&#39;s law —&lt;/strong&gt; &quot;&lt;em&gt;A complex system that works is invariably found to have evolved from a simple system that worked.&quot;&lt;/em&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Gibrat&#39;s law —&lt;/strong&gt; &quot;&lt;em&gt;The size of a firm and its growth rate are independent&lt;/em&gt;.&quot; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Godwin&#39;s law —&lt;/strong&gt; An adage in Internet culture that states, &quot;&lt;em&gt;As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one.&lt;/em&gt;&quot; Coined by Mike Godwin in 1990. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Goodhart&#39;s law —&lt;/strong&gt; &quot;&lt;em&gt;When a measure becomes a target, it ceases to be a good measure.&lt;/em&gt;&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Kranzberg&#39;s First Law of Technology&lt;/strong&gt; — &quot;&lt;em&gt;Technology is neither good nor bad; nor is it neutral.&lt;/em&gt;&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Linus&#39; law&lt;/strong&gt; — &quot;&lt;em&gt;Given enough eyeballs, all bugs are shallow&lt;/em&gt;.&quot; Named for Linus Torvalds. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Murphy&#39;s law&lt;/strong&gt; — &quot;&lt;em&gt;Anything that can go wrong will go wrong&lt;/em&gt;.&quot; Ascribed to Edward A. Murphy, Jr. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Pareto principle&lt;/strong&gt; — States that for many phenomena 80% of consequences stem from 20% of the causes. Named after Italian economist Vilfredo Pareto, but framed by management thinker Joseph M. Juran. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Rothbard&#39;s law&lt;/strong&gt; — &quot;&lt;em&gt;Everyone specializes in his own area of weakness&lt;/em&gt;.&quot; &lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Sayre&#39;s law&lt;/strong&gt; — &quot;&lt;em&gt;In any dispute the intensity of feeling is inversely proportional to the value of the stakes at issue&lt;/em&gt;.&quot; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Wirth&#39;s law&lt;/strong&gt; — &quot;&lt;em&gt;Software gets slower faster than hardware gets faster.&lt;/em&gt;&quot;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;&lt;strong&gt;Dunning-Kruger Effect&lt;/strong&gt; - &lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Per &lt;/span&gt;&lt;a href=&quot;http://www.blogger.com/goog_1842108210&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;this Wikipedia&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;article&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;: &lt;em&gt;&quot;... is a &lt;/em&gt;&lt;/span&gt;&lt;em&gt;&lt;span style=&quot;color: black; font-family: Verdana, sans-serif;&quot;&gt;cognitive bias&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt; in which an unskilled person makes poor decisions and reaches erroneous conclusions, but their incompetence denies them the &lt;/span&gt;&lt;span style=&quot;color: black; font-family: Verdana, sans-serif;&quot;&gt;metacognitive&lt;/span&gt;&lt;/em&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;em&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;ability to realize their mistakes. The unskilled therefore suffer from &lt;span style=&quot;color: black;&quot;&gt;illusory superiority&lt;/span&gt;, rating their own ability as above average, much higher than it actually is, while the highly skilled underrate their abilities, suffering from illusory inferiority&lt;/em&gt;&quot;. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://ravisharda.blogspot.com/2010/08/eponymous-laws.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-8697772843299033460</guid><pubDate>Sat, 10 Jul 2010 13:45:00 +0000</pubDate><atom:updated>2010-08-28T08:17:18.549+05:30</atom:updated><title>Computer and software history</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Cicero (Roman author, orator, &amp;amp; politician - 106 BC - 43 BC) is quoted to have said: &quot;&lt;em&gt;History is the witness that testifies to the passing of time; it illumines reality, vitalizes memory, provides guidance in daily life and brings us tidings of antiquity.&lt;/em&gt;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;For those interested in the&amp;nbsp;history of computers: The Computer History museum, located &lt;a href=&quot;http://www.computerhistory.org/&quot;&gt;here&lt;/a&gt; on the Web, is&amp;nbsp;dedicated to preserving and presenting the stories and artifacts of the information age. It was established in 1996 in Mountain View, California, USA. &lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Also checkout&amp;nbsp;&lt;a href=&quot;http://www.youtube.com/user/ComputerHistory#p/a&quot;&gt;videos&lt;/a&gt;&amp;nbsp;of the many lectures and events at the museum and historic computer films, hosted on Youtube. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The museum has a &lt;a href=&quot;http://www.softwarehistory.org/&quot;&gt;special interest group&lt;/a&gt; on software history.&amp;nbsp;Besides&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;the history of software since the 1950s&amp;nbsp;it has interesting&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.softwarehistory.org/history/anecdotes.htm&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;anecdotes&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;, &lt;/span&gt;&lt;a href=&quot;http://www.softwarehistory.org/history/essays.html&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;first person essays&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;, etc.&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Keep in mind though,&amp;nbsp;the Website&amp;nbsp;is still in the making.&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/07/computer-and-software-history.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-2055594998678653935</guid><pubDate>Fri, 02 Jul 2010 14:09:00 +0000</pubDate><atom:updated>2010-07-10T19:17:06.479+05:30</atom:updated><title>Rift between business and IT</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Found this particularly hilarious picture on one of Anne Thomas Manes&#39; slides set (don&#39;t remember which one though). &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxrARqclApDCvm3SMiyFYSOPcHyut9ZHuLggYug6UzgSIsKjVYtlO6Iitm_VmnL07aDXeokPCDx1702Juoz7aH_GeYB7qSF5DDmBjBJj4WF2F75XX0o2luEtl9LKmxJBRuVp8f/s1600/Picture1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;301&quot; rw=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxrARqclApDCvm3SMiyFYSOPcHyut9ZHuLggYug6UzgSIsKjVYtlO6Iitm_VmnL07aDXeokPCDx1702Juoz7aH_GeYB7qSF5DDmBjBJj4WF2F75XX0o2luEtl9LKmxJBRuVp8f/s400/Picture1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://ravisharda.blogspot.com/2010/07/rift-between-business-and-it.html</link><author>noreply@blogger.com (Ravi Sharda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxrARqclApDCvm3SMiyFYSOPcHyut9ZHuLggYug6UzgSIsKjVYtlO6Iitm_VmnL07aDXeokPCDx1702Juoz7aH_GeYB7qSF5DDmBjBJj4WF2F75XX0o2luEtl9LKmxJBRuVp8f/s72-c/Picture1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-2931311235179129427</guid><pubDate>Thu, 01 Jul 2010 14:12:00 +0000</pubDate><atom:updated>2010-07-01T19:42:37.329+05:30</atom:updated><title>Mappings Among Architecture View Sets</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;This is my take on how some of the popular view sets map to each other:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKNMBxtjnr3tC3U-8LHIZkFqodprOmFosIPOAnNhLxZLROWq9hbgVfqaIy4nRTM3Vl-omp1nt-XonuzhyvRa0dAarn9qDxCuLy69Ai2p5HdFCv6uwKulhtPO4gNa-89MoGPtaf/s1600/View+Set+Mapping.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;161&quot; rw=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKNMBxtjnr3tC3U-8LHIZkFqodprOmFosIPOAnNhLxZLROWq9hbgVfqaIy4nRTM3Vl-omp1nt-XonuzhyvRa0dAarn9qDxCuLy69Ai2p5HdFCv6uwKulhtPO4gNa-89MoGPtaf/s400/View+Set+Mapping.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://ravisharda.blogspot.com/2010/07/mappings-among-architecture-view-sets.html</link><author>noreply@blogger.com (Ravi Sharda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKNMBxtjnr3tC3U-8LHIZkFqodprOmFosIPOAnNhLxZLROWq9hbgVfqaIy4nRTM3Vl-omp1nt-XonuzhyvRa0dAarn9qDxCuLy69Ai2p5HdFCv6uwKulhtPO4gNa-89MoGPtaf/s72-c/View+Set+Mapping.PNG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-5403437108583630820</guid><pubDate>Fri, 11 Jun 2010 11:56:00 +0000</pubDate><atom:updated>2010-06-16T11:12:20.112+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">OSS/BSS</category><title>&quot;Selling&quot; and &quot;Order Handling&quot; Overview (Communications Service Provider Environment)</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I often get queries related to basic aspects of selling and order handling business processes from&amp;nbsp;teams that I work with.&amp;nbsp;Here is&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;a brief (very brief) overview of these processes, &lt;/span&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;using TeleManagement Forum&#39;s Business Process Framework (widely known as eTOM) as a reference. &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: large;&quot;&gt;&lt;strong&gt;1. Selling&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;In sales terminology, a potential or a likely customer is called a &quot;prospect&quot;. Prospects are typically determined by one of the following:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;&lt;em&gt;Leads&lt;/em&gt;&lt;/strong&gt; – These are typically determined by product marketing teams and decision analytics systems supporting product marketing. For e.g., responses from email-, direct- or tele-marketing campaigns may provide good leads to potential customers. Similarly, website analytics tools may be used to analyze web page hits from a particular region to determine prospects.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;&lt;em&gt;Referrals &lt;/em&gt;&lt;/strong&gt;– The customer might indicate an interest to a branch or call center representative who then directs the referral to sales specialists. Service providers also provide customer portals where customers can register an interest.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;&lt;em&gt;Transaction-Based Triggers&lt;/em&gt;&lt;/strong&gt; – Prospects may also be determined by transaction-based activities combined with decision analytics. For e.g., based on customer&#39;s long distance calling pattern and its availability to a sales rep, the sales rep may be able to suggest a higher value unlimited long distance plan. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Prospects are turned into opportunities for further processing through the sales-pipeline, based on a number of factors, including but not limited to [TargusInfo]:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;li style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Which prospects are most likely to convert?&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;What is a prospect&#39;s potential lifetime value?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;What size order would the prospect place if she were to become a customer?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The sales-pipeline supports the key selling related functions such as analysis of customer needs, identification of respective product offerings, sales-negotiation, quotes, proposals, sales forecast, etc. eTOM classifies key selling sub-processes as illustrated in Figure 1 below.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2AU0LTtlvOCmggYOekaFAJAFyzAy9dYIUgB2-ZQYsNcp7sX5dPvde8a_UOn4yVL-SjpMDO1iAPEJ_vnZFPZjkh1GypuM4_sebhRwno-X-GLWp8hC6yQsfjJDSMPFwxZ33wFkm/s1600/1.bmp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;82&quot; qu=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2AU0LTtlvOCmggYOekaFAJAFyzAy9dYIUgB2-ZQYsNcp7sX5dPvde8a_UOn4yVL-SjpMDO1iAPEJ_vnZFPZjkh1GypuM4_sebhRwno-X-GLWp8hC6yQsfjJDSMPFwxZ33wFkm/s400/1.bmp&quot; width=&quot;400&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The sub-processes within &quot;Selling&quot; in eTOM are: &lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;a) Manage prospect:&lt;/strong&gt; This sub-process is responsible for matching assigned leads with the most appropriate products and ensuring that the prospects are handled appropriately [Etom_Gb921].&amp;nbsp;A&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;ctivities include capturing and processing the probability of successful sales closure, estimating the total attainable revenue, analyzing the needs of the prospect, identifying potential solutions from the service provider&#39;s portfolio, etc.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;b) Qualify opportunity:&lt;/strong&gt; This sub-process ensures that the opportunity is qualified in terms of any associated risk, and the amount of effort required (e.g., response to a RFP vs. potential revenue) to achieve a sale [Etom_Gb921]. Also, customer&#39;s needs are analyzed and matched against available product offerings or customized solutions. &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;c)&amp;nbsp;Negotiate sales/contract:&lt;/strong&gt; Customers may agree with the standard prices and promotions or may want to negotiate pricing. For example, although the sales rep may have already offered 5% discount, the customer might be looking for a 12% discount. Also, the customer may want to negotiate non-standard terms and conditions/contracts. This sub-process includes activities supporting sales and contract negotiation.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;d)&amp;nbsp;Acquire customer data:&lt;/strong&gt; This involves collection, association and organization of all pertinent data related to the customer, including those that are required to support the agreed product offerings and contract. &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;e)&amp;nbsp;Cross/up selling:&lt;/strong&gt; The purpose of this sub-process is to ensure that the value of the relationship between the customer and service provider is maximized by selling additional, or more of the existing products [Etom_Gb921]. Additionally, the ongoing analysis of customer&#39;s usage, problems or complaints can be used to identify when the current products may no longer be appropriate for the customer, or an opportunity for a larger sales arise [Etom_Gb921].&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;f)&amp;nbsp;Develop sales proposal:&lt;/strong&gt; The purpose of this sub-process is to develop a sales proposal to respond to customer&#39;s requirements [Etom_Gb921]. The development of a sales proposal may require selection of standard a product offering or may require the development of a non-standard offering [Etom_Gb921], leading to development of a unique solution design.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;g)&amp;nbsp;Manage sales accounts:&lt;/strong&gt; This sub-process is responsible for managing sales accounts assigned to a sales channel and/or manager [Etom_Gb921]. These accounts are then used on a regular basis to develop appropriate relationships and contacts, to prospect for leads for other offerings, or to offer specific discounts based on criteria such as sales volume, length of relationship, etc.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Note that the sub-processes defined in eTOM, as shown in Figure 1 above, are in no particular sequence. eTOM refrains from defining sequencing of these processes as different service providers may need to implement them in different sequences, based on their particular environment. Figure 2 below depicts a sample flow that might be applied in a service provider environment.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWM7Jwmch52cREdZjdZm-r_QeLJ0DP4VYV-0ESgp0HaKm3IBr4WVqZukQUH2DIWX2Ye_khvxLKvPjQtQ9LCg7uz_DSzjrfFx6Yz8tDT2GBOpcTOaqKTba4p-OCbRG-oRJUbHLF/s1600/2.bmp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; qu=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWM7Jwmch52cREdZjdZm-r_QeLJ0DP4VYV-0ESgp0HaKm3IBr4WVqZukQUH2DIWX2Ye_khvxLKvPjQtQ9LCg7uz_DSzjrfFx6Yz8tDT2GBOpcTOaqKTba4p-OCbRG-oRJUbHLF/s400/2.bmp&quot; width=&quot;400&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: large;&quot;&gt;&lt;strong&gt;2. Order Handling&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Once a sales contract has been signed by the customer, its time to create and process customer orders for fulfilling the services that form the product offering. Enter order handling. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Although the terms product offerings and services are often used interchangeably, they have separate meanings. As described by [McFadyen], &quot;&lt;em&gt;This is best thought of as the box that everything is put in. Just as when you buy cornflakes it is the flakes of corn you want inside the box, but it is the box with its logo, brand name, and barcode that you actually purchase.&lt;/em&gt;&quot; The &quot;flakes of corn&quot; is the service while the &quot;box of cornflakes&quot; is the product offering. From the viewpoint of a product manager, a product offering defines what functionality is provided at what price to which market segments over which sales channel. A service on the other hand is the functionality that the customer gets. Product offerings can get complex in that many different services may be combined in a single offering bundle to make it attractive (cost-effective, for e.g.). &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;eTOM classifies key order handling processes/activities as:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2S937-H6eZhat2yXwDEouGIv4Na4A7X9OnNSOz_8Ky-qIIq1ygBxUb8b4kYLxdz4NH7Abk3cZmHAmsaAvEahkQduXZbosMRHa29xN-413CIjtwxes0R19xBGxwS1Dloy5PduP/s1600/3.bmp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;77&quot; qu=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2S937-H6eZhat2yXwDEouGIv4Na4A7X9OnNSOz_8Ky-qIIq1ygBxUb8b4kYLxdz4NH7Abk3cZmHAmsaAvEahkQduXZbosMRHa29xN-413CIjtwxes0R19xBGxwS1Dloy5PduP/s400/3.bmp&quot; width=&quot;400&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;The sub-processes within order handling are:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;a)&amp;nbsp;Determine preorder feasibility&lt;/strong&gt; – This sub-process is responsible for determining whether the standard/customized product offering chosen for the customer is available and/or feasible. Examples of such checks include (but are not limited to): &lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Can the corresponding services be provisioned at the given location?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Are there enough circuits or lines available in the given region?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Can the services meet the specified SLA based on current network environment?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;b)&amp;nbsp;Authorize credit –&lt;/strong&gt; The purpose here is to assess a customer&#39;s credit worthiness in support of managing risk and company&#39;s exposure to bad depth [Etom_Gb921]. Credit checks are often made against credit check service providers like Dun and Bradstreet, etc. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;c)&amp;nbsp;Issue customer order&lt;/strong&gt; – This sub-process ensures that all necessary information about the customer order is captured and validated and that the customer has been issues a sales order. This sub-process typically kicks in after a purchase order has been received by the service provider.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;A purchase order (PO) is a commercial document issued by a buyer to a seller, indicating types, quantities, and agreed prices for products or services the seller will provide to the buyer [Wikipedia_po], and constitutes a legal offer to buy products or services. Acceptance of the PO by the seller (service provider in this context) forms a contract between the buyer and the seller. A PO ensures the service provider is protected in case of a customer&#39;s refusal to pay for agreed products or upon unilateral cancelling of the order [Wikipedia_po]. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;A sales order (SO), on the other hand, is an order issued by the seller (service provider in this context) to the buyer (customer). Information captured as part of the sales order may include originating PO (one or more), service locations, product configuration data (such as bandwidth, circuit speed, etc.), bill-to customer account, customer contacts, and so forth. Both the customer and the service provider use the issued order to track the status, make edits to the order, etc.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;d)&amp;nbsp;Track and manage customer order handling&lt;/strong&gt; – The objective of this sub-process is to ensure customer provisioning activities are assigned, managed and tracked efficiently to meet the committed availability date [Etom_Gb921]. This includes scheduling activities, generation of respective service order creation requests, tracking orders, adding additional information to existing customer order, cancelling customer order, monitoring jeopardy status of customer orders and escalating customer orders as necessary [Etom_Gb921]. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;e)&amp;nbsp;Complete customer order&lt;/strong&gt; – This process is responsible for ensuring that any customer information required by any other processes is updated as part of customer order completion [Etom_Gb921]. This may involve additional touch points with the customer. This may also involve sending relevant notifications to the customer on events such as service provider&#39;s acceptance of the order, commitment date, etc. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;f)&amp;nbsp;Report customer order handling&lt;/strong&gt; – The objective of this sub-process is to monitor the status of customer orders, provide notifications of any changes and provide management reports [Etom_Gb921]. Specialized notifications to customers may include those indicating service provider&#39;s validation and acceptance of the order, availability date of the services, completion of the provisioning, activations of the respective services, etc. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;g)&amp;nbsp;Close customer order&lt;/strong&gt; – The objective of this sub-process is to close a customer order when the customer provisioning activities have been completed. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;As mentioned earlier, eTOM doesn&#39;t specify how the sub-processes are sequenced. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;&lt;em&gt;References&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[McFadyen] Andrew McFadyen, http://telecomseim.blogspot.com/ &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[Etom_Gb921] GB921 Addendum D-Process Decompositions &amp;amp; Descriptions, Business Process Framework (eTOM), R 8.0, TeleManagement Forum (TM Forum), June 2009 &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[Wikipedia_po] http://en.wikipedia.org/wiki/Purchase_order&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[TargusInfo] &quot;Turning Prospects into Profits&quot;, TargusInfo, 2009&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/06/selling-and-order-handling-overview.html</link><author>noreply@blogger.com (Ravi Sharda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2AU0LTtlvOCmggYOekaFAJAFyzAy9dYIUgB2-ZQYsNcp7sX5dPvde8a_UOn4yVL-SjpMDO1iAPEJ_vnZFPZjkh1GypuM4_sebhRwno-X-GLWp8hC6yQsfjJDSMPFwxZ33wFkm/s72-c/1.bmp" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-5416360607975722210</guid><pubDate>Thu, 13 May 2010 09:51:00 +0000</pubDate><atom:updated>2010-08-28T09:15:42.466+05:30</atom:updated><title>Paul Graham on Startups</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;a href=&quot;http://www.paulgraham.com/&quot;&gt;Paul Graham&lt;/a&gt; is famous for his plain-spoken, deeply insightful and thought-provoking essays. &lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Some of his essays on startups:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&quot;&lt;a href=&quot;http://www.paulgraham.com/really.html&quot;&gt;What Startups are Really Like&lt;/a&gt;&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;&quot;&lt;a href=&quot;http://www.paulgraham.com/start.html&quot;&gt;How to Start a Startup&lt;/a&gt;&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;&quot;&lt;a href=&quot;http://www.paulgraham.com/startuplessons.html&quot;&gt;The Hardest Lessons for Startup to Learn&lt;/a&gt;&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;&quot;&lt;a href=&quot;http://www.paulgraham.com/startupfunding.html&quot;&gt;How to fund a Startup&lt;/a&gt;&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;&quot;&lt;a href=&quot;http://www.paulgraham.com/ideas.html&quot;&gt;Ideas for Startup&lt;/a&gt;&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;&quot;&lt;a href=&quot;http://www.paulgraham.com/startupmistakes.html&quot;&gt;The 18 Mistakes that Kill Startups&lt;/a&gt;&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;&quot;&lt;a href=&quot;http://www.paulgraham.com/fundraising.html&quot;&gt;A Fundraising Survival Guide&lt;/a&gt;&quot;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;A listing of his essays is &lt;a href=&quot;http://www.paulgraham.com/articles.html&quot;&gt;here&lt;/a&gt;.&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/05/paul-graham-on-startups.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-6908116102180679515</guid><pubDate>Tue, 11 May 2010 12:28:00 +0000</pubDate><atom:updated>2010-05-11T17:58:31.129+05:30</atom:updated><title>Philippe Kruchten et al. on Software Architecture Review &amp; Assessment</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The report is &lt;/span&gt;&lt;a href=&quot;http://philippe.kruchten.com/architecture/SARAv1.pdf&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;.&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/05/philippe-kruchten-et-al-on-software.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-5870002668471848954</guid><pubDate>Sat, 01 May 2010 02:18:00 +0000</pubDate><atom:updated>2010-08-28T19:22:20.526+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Engineering</category><title>Bjarne Stroustrup on what should be taught to new software developers in college</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Bjarne Stroustrup&#39;s article titled &quot;&lt;/span&gt;&lt;a href=&quot;http://cacm.acm.org/magazines/2010/1/55760-what-should-we-teach-new-software-developers-why/fulltext&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;What Should We Teach New Software Developers? Why&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&quot; (Communications of the ACM, Vol. 53 No. 1, Pages 40-42 ).&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/05/bjarne-stroustrup-on-what-should-be.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-6662345519493248922</guid><pubDate>Tue, 27 Apr 2010 13:13:00 +0000</pubDate><atom:updated>2010-08-28T07:58:09.608+05:30</atom:updated><title>REST Links</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;A&amp;nbsp;nice list of REST links: &lt;/span&gt;&lt;a href=&quot;http://www.gis.net/~amesar/links/rest.html&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Andre&#39;s REST Links&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;.&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/04/rest-links.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-4522299570783821941</guid><pubDate>Tue, 06 Apr 2010 08:06:00 +0000</pubDate><atom:updated>2010-04-06T15:36:46.100+05:30</atom:updated><title>TM Forum&#39;s MTOSI standard: Setting the Context</title><description>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;MTOSI stands for Multi-Technology Operations Systems Interface. It is a standard specified by TM Forum. It is now part of TM Forum&#39;s Interface Program (TIP). &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Why is it called &quot;multi-technology&quot;?&amp;nbsp;Why do you need to worry about it? What does it really do? How does it relate to other TM Forum standards and initiatives (&lt;em&gt;often, quite confusing for starters!&lt;/em&gt;)? This article attempts to explain the answers for these questions.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;This article is organized as follows:&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;a href=&quot;#intent&quot;&gt;Section &quot;1 - Intent&quot;&lt;/a&gt; provides a summary of what MTOSI aims to do.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;a href=&quot;#standards&quot;&gt;Section &quot;2 - Related TM Forum Standards&quot;&lt;/a&gt; provides a description of how MTOSI is related to some of the other TM Forum standards and initiatives.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;a href=&quot;#motivation&quot;&gt;Section &quot;3 - Motivation&quot;&lt;/a&gt; provides scenarios that illustrates the problem(s) MTOSI addresses. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;a href=&quot;#description&quot;&gt;Section &quot;4 - MTOSI Description&quot;&lt;/a&gt; provides more details on MTOSI.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span id=&quot;intent&quot; style=&quot;font-family: Verdana, sans-serif; font-size: large;&quot;&gt;1) Intent&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The intent of TeleManagement Forum&#39;s (TMF) Multi-Technology Operations Systems (MTOSI) is to provide open and standards-based interfaces between OSSs (e.g., Service Activation systems, Inventory systems, Network Management Systems, Element Management Systems, etc.). &lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;For a detailed exploration of OSS/BSS systems, see my earlier post titled &quot;&lt;a href=&quot;http://ravisharda.blogspot.com/2010/03/telecom-ossbss-overview.html&quot;&gt;Telecom OSS/BSS: An Overview&lt;/a&gt;&quot;. &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span id=&quot;standards&quot; style=&quot;font-size: large;&quot;&gt;2) Related TM Forum Standards&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;2.1 Relationship with MTNM&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;TeleManagement Forum&#39;s (TMF) Multi-Technology Operations Systems Interface (MTOSI) started as an MTNM (Multi-Tehchnology Network Management) substream sometime in 2003. Lets discuss MTNM first.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;MTNM provides CORBA-based&amp;nbsp;Element Management Layer (EML)-to-Network Management Layer (NML)&amp;nbsp;interfaces for the management of &quot;multi-technology&quot; networks (SONET, SDH, PDH, ATM, Frame Relay, DSL, connectionless networks such as Ethernet, etc.). However, it can also be used to support a single technology such as ATM. Examples of management areas are: connection management, NE and EMS configuration, network inventory discovery, euqipment inventory management, performance monitoring, alarm surveillance and event reporting, etc. MTNM can also be used to manage a particular subset of a management area - say, alarm surveillance. &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Around the time MTNM 3.5 commenced, it was realized that several vendors were using MTNM by converting the CORBA IDLs to XMLs, due to lack of XML based interfaces. Enter MTOSI.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;MTOSI has gradually taken sets of MTNM interfaces, generalized the operations systems to operations systems interactions and created XML, SOAP Web services based interfaces - recasting and extending MTNM. Like MTNM, it provides a single interface for the management of many technologies. Moreover, MTOSI has had the goal to make XML interfaces independent of the underlying transport (HTTP, JMS, etc.) &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;2.2 Relationship with TIP and mTOP&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;MTOSI has been part of TM Forum Interface Program (TIP) since April 2008. Multi Technology OSS Program (mTOP) coordinates advances in the SOAP and XML&amp;nbsp;based MTOSI interface standard, as well as the CORBA/IDL based MTNM standard. MTOSI service classifications are based on the eTOM model, while the information model is based on SID and MTNM data models. &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;2.3 Comparision with OSS/J&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;MTOSI APIs are focused towards providing interfaces at the service, network and element management layers. OSS/J on the other hand aims to provide open interfaces across the spectrum of both OSS and BSS. OSS/J APIs, unlike most MTOSI APIs are network technology independent [1]. OSS/J APIs are entity centric unlike MTOSI APIs that are task-centric. OSS/J provides a generic set of operations on &quot;Managed Entities&quot; [1]. There are efforts underway to draw the OSS/J and MTOSI communicaties together, and we may see a common goals and plans for migration for both OSS/J and MTOSI in the future. &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span id=&quot;motivation&quot; style=&quot;font-family: Verdana, sans-serif; font-size: large;&quot;&gt;3) Motivation&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Element Management Systems (EMS)&amp;nbsp;typically manage the functions of Network Elements (switches, CPU and remote hubs, gateways, routers, susbcriber line units, etc.)&amp;nbsp;from a single vendor. Examples of such management functions include receiving and executing commands sent by upstream activation systems, feeding equipment status data back to upstream systems such as network and trouble management systems, etc. Moreover, the EMS may be able to manage functions related to a single technology (e.g.,&amp;nbsp;ATM,&amp;nbsp;SONET, etc.) for a subset of management area (e.g., performance monitoring). &lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Therefore a service provider environment&amp;nbsp;typically has several types of EMS. Typically a Network Management System (NMS) manages functions of many EMSs. To be easily portable across different NMS systems, an EMS vendor can provide MTOSI based standards interface. This would enable easy integration of the EMS with various NMS that service providers could use.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Lets consider another example. A service activation system (an OS) may allow an order management system (also an OS), to request activation of a given service via a service request. The service activation system (an OS) may in turn need to send requests to multiple NMS and EMS OS&#39;s to complete the service activation request. A service provider environment in all likelihood contains multiple service activation systems as well as multiple EMS&#39;s. If each of those provided proprietary interfaces containing proprietary information models: a)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;the order management system must be integrated with each of the service activation interfaces, and b)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;the service activation systems must be integrated with the relevant EMS interfaces.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;With many services being added on frequent basis, this can easily turn into a nightmare. Utilizing standards-based interfaces provided by MTOSI the integration becomes lot more easier, reducing costs and increasing agility. &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Lets consider yet another example. Say, an operator uses Telcordia TIRKS system to administer Layer 1 facilities and equipment while it uses a seperate OSS inventory system to administer Layer 2/3 (logical inventory) and higher services. TIRKS provides an open interface (data dictionaries and XML message definitions) using MTOSI which can be used by the OSS inventory systems to receive messages generated by TIRKS systems (such as inventory update notifications) and to send messages to the TIRKS system. &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Similarly,&amp;nbsp;a fault managent system may need to&amp;nbsp;subscribe to alarm reports based on filtering conditions and may also handle subsequent reporting of alarms to subscribed OSs. Similarly, a manager fault management system may receive alarms from several technology-specific fault management system via active alarm sync.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span id=&quot;description&quot; style=&quot;font-family: Verdana, sans-serif; font-size: large;&quot;&gt;4) MTOSI Description&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;MTOSI defines OS-to-OS (OS stands for operations systems) interfaces for service and resource management, where OS functionality can be at the levels of Element Management Layer, Network Management Layer or the Service Management layer, in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Telecommunications_Management_Network&quot;&gt;Telecommunications Management Network (TMN) Logical model&lt;/a&gt;. &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Examples of such OS in this context include: Inventory Management, Performance Management Systems, Fault Management Systems, Service Activation, Service Assurance, CRM systems such as Order Entry system, Network Management systems, Element Management Systems (EMS). Refer to my earlier post titled &quot;&lt;a href=&quot;http://ravisharda.blogspot.com/2010/03/telecom-ossbss-overview.html&quot;&gt;Telecom OSS/BSS: An Overview&lt;/a&gt;&quot; for a description of some of these. &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Note, that MTOSI is not concerned with EMS-to-NE&amp;nbsp;API, which is typically based on&amp;nbsp;protocols such as SNMP, TL or CMIP. Nor is it concerned with internal implementation details such as an internal inventory model - it only provides a data format and a number of operations around retrieving or modifying the data.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Management functions covered by MTOSI include (but not limited to):&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Inventory Retrieval, Inventory Update Notifications, Enhanced Inventory Retrieval (attribute value matching based on XPath), Multi-Event Inventory Notifications (ability to send multiple inventory updates in a single notification)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Alarm Reporting, Active Alarm Retrieval&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Service Activation&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Service Inventory Management&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Resource configuration and activation&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Performance management and maintenance commands&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Multi-Action and Request Transactions (MART) (i.e., ability to package multiple requests into a single message)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The output of the MTOSI effort can be downloaded from the &lt;a href=&quot;http://www.tmforum.org/&quot;&gt;TM Forum Web site&lt;/a&gt;. The output is partitioned into something called as Document Delivery Packages (DDPs) - often organized based on functional areas (such as resource inventory management). The framework DDPs contain the generic aspects applicable to all other DDPs while the Data Model DDPs contain aspects related to entities, data structures, attributes and states. Each DDP also contains the following set of documents:&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;TMF 518, MTOSI Business Aggreement (BA): Identifies the requirements and use cases to be supported by the interface.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;TMF 612, MTOSI Information Aggreement (IA): UML description of the interface.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;TMF 864, MTOSI Interface Implementation Specifications (IIS): Maps the UML model to XML (WSDL, XSD, bindings, etc.)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Supporting documentation&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: large;&quot;&gt;5) References&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[1] &quot;&lt;a href=&quot;https://ossj-mtnm.dev.java.net/Presentations/OSSJ-MTOSIBridgingTheGap.ppt&quot;&gt;Bridging the Gap Between MTOSI and OSS/J&lt;/a&gt;&quot; by Nigel Davis, John Reilly and Suresh Bhandarkar&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[2] &quot;&lt;a href=&quot;http://dpnm.postech.ac.kr/papers/TMW/TMW2004-LongBeach/TMW2998%20NGOSS3.pdf&quot;&gt;Implementing NGOSS with MTOSI&lt;/a&gt;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[3] &quot;&lt;a href=&quot;http://www.tmforum.org/mTOPMTOSIOverview/2590/home.html&quot;&gt;A very short history of mTOP&lt;/a&gt;&quot; (Requires login to TM Forum site)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[4] Tim McElligott, &quot;&lt;a href=&quot;http://connectedplanetonline.com/software/technology/mtosi_oss_bss_111405/index.html&quot;&gt;MTOSI brings OSS Integration a Step Closer&lt;/a&gt;&quot;, Nov 2005, &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[5] &quot;De&lt;a href=&quot;http://www.ossline.com/2009/03/designing-a-standards-based-application.html&quot;&gt;signing a Standards-Based Application&lt;/a&gt;&quot;, March 2009, &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[6] Stephen Fratini, Irene McGoey, Garry Grimes and Enrico Grosso, &quot;&lt;a href=&quot;http://www.whitehorsepoint.com/international_marketing/irene_mcgoey_paper.pdf&quot;&gt;Introduction to the TM Forum&#39;s Multi-Technology Network Model&lt;/a&gt;&quot;, National Fiber Optic Engineers Conference, 2001&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;
&lt;div&gt;&lt;/div&gt;</description><link>http://ravisharda.blogspot.com/2010/04/getting-started-with-tm-forum-mtosi.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-1668335186143106698</guid><pubDate>Thu, 01 Apr 2010 12:12:00 +0000</pubDate><atom:updated>2010-04-01T17:42:44.645+05:30</atom:updated><title>On patterns of software degeneration</title><description>&lt;a href=&quot;http://www.laputan.org/mud/mud.html&quot;&gt;Here&lt;/a&gt; (&quot;&lt;a href=&quot;http://www.laputan.org/mud/mud.html&quot;&gt;Big Ball of Mud&lt;/a&gt;&quot; by Brian Foote and Joseph Yoder) is a&amp;nbsp;paper that explains some patterns of software&amp;nbsp;entropy.</description><link>http://ravisharda.blogspot.com/2010/04/on-patterns-of-software-degeneration.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-4526364787926454898</guid><pubDate>Wed, 24 Mar 2010 07:34:00 +0000</pubDate><atom:updated>2010-03-24T13:04:39.119+05:30</atom:updated><title>REST in practice and Richardson&#39;s RESTful maturity model</title><description>&lt;a href=&quot;http://jim.webber.name/&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Jim Webber&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;, &lt;/span&gt;&lt;a href=&quot;http://savas.me/&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Savas Parastatidis&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt; and &lt;/span&gt;&lt;a href=&quot;http://www.ianrobinson.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Ian Robinson&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;presented &quot;&lt;/span&gt;&lt;a href=&quot;http://dl.dropbox.com/u/2877247/2010-03%20QCon%20London%20Tutorial.pdf&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;REST in Practice&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&quot;&amp;nbsp;at a QCon talk, in&amp;nbsp;which they also presented a model of RESTful maturity developed by &lt;/span&gt;&lt;a href=&quot;http://www.crummy.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Leonard Richardson.&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://martinfowler.com/articles/richardsonMaturityModel.html&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Here&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt; (Richardson Maturity Model: steps toward the glory of REST) is&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://martinfowler.com/&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Martin Fowler&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&#39;s&amp;nbsp;explanation of the maturity model. &lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/03/rest-in-practice-and-richardsons.html</link><author>noreply@blogger.com (Ravi Sharda)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9302850.post-4374534621073376220</guid><pubDate>Fri, 19 Mar 2010 06:35:00 +0000</pubDate><atom:updated>2010-03-19T14:21:17.444+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">OSS/BSS</category><title>Telecom OSS/BSS: An Overview</title><description>&lt;span id=&quot;goog_1268974553322&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_1268974553323&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-large;&quot;&gt;1. Introduction&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Before the initial 1970s, most of the support activities in a telephone company such as taking orders, maintaining network inventory, provisioning services (for example, line assignment and testing), configuring network components, managing faults and collecting payments were performed manually. It was realized that many of these activities could be replaced by computers. In the next few years, a number of computer systems and software applications were created to automate these activities. Examples include TIRKS, RMAS, SES, etc. Thus came the term Operations Support Systems (OSS). &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;OSS are “network systems” dealing with the communications network and supporting processes such as maintaining network inventory, provisioning services, configuring network components, managing faults. &lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Business Support Systems (BSS) is a newer term and typically refers to “business systems” dealing with customers and support processes such as taking orders, processing bills, collecting payments, sales and marketing, supporting customer care agents in response to service requests, trouble reporting and billing inquiries, etc.&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;OSS and BSS systems together are often abbreviated as BSS/OSS or B/OSS. The term OSS was historically used to include both network and business systems. Some industry analysts, system integrators and service providers still use the term OSS to include both network and business systems, which sometimes causes confusion. &lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;This article provides an overview of some of the core areas in OSS&amp;nbsp;and BSS such as Order Fulfillment, Service Assurance and Billing systems. The following BSS/OSS systems are covered:&lt;/span&gt; &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;#fulfillment&quot;&gt;Order Fulfillment&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; – Order Management, Service Provisioning and Inventory Management&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;#assurance&quot;&gt;Service Assurance&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; - Fault &amp;amp; Trouble Management, Network Performance Management, Topology &amp;amp; Configuration Management, Planning &amp;amp; Testing&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;#billing&quot;&gt;Billing&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; - Billing Mediation, Rating, Billing Systems, Interconnection Billing, Revenue Assurance &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The article explains some of the basic functions of these systems. However, this article doesn&#39;t intend to provide extensive details. For an extensive overview of business activities, business process and functions, refer to standards such as eTOM and TAM at &lt;a href=&quot;http://www.tmforum.org/&quot;&gt;http://www.tmforum.org/&lt;/a&gt;. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-large;&quot;&gt;2.&amp;nbsp;The Realm of OSS/BSS in Order Fulfillment, Assurance and Billing&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span id=&quot;fulfillment&quot; style=&quot;font-family: Verdana; font-size: large;&quot;&gt;2.1 Order Fulfillment&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Communications products/services could range from Voice services to IP and Data services to Hosting and CPE services. Some of the examples of communications products/services are:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Voice – Basic telephony, long distance, toll-free, Voice over IP (VoIP), Contact Center, Local Access, etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Internet Protocol (IP) – Internet Access, VPN, Contact Center, VoIP, Remote Access, etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Data – Layer 1 Wide Area Network (WAN) Services such as SONET, Layer 2 WAN services such as ATM, Frame Relay, Private Lines, Layer 2 VPN and Metro Ethernet, etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Hosting – Custom Application Environments, Disaster Recovery, Managed Services such as storage, security and network services, Web Site Hosting, etc.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Order Fulfillment functions are a critical set of activities performed in order to fulfill customer orders for services in a Communications Service Provider (CSP) environment. &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The following figure shows a very high-level view of activities performed in a typical CSP environment.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimfa0Cp664TYfd84MHy0rUkbjynMc0jHT-FGxMHRWqeQ5pcXgvHpFIUZaDfzuUhkNk2iaQ7EGtd-b7XIb_e0UAfkhhqT3qF3eLXGRi_kCHxjCWagms7VLL-yY4MiS6_C6Tx91Z/s1600-h/Typical+flow.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimfa0Cp664TYfd84MHy0rUkbjynMc0jHT-FGxMHRWqeQ5pcXgvHpFIUZaDfzuUhkNk2iaQ7EGtd-b7XIb_e0UAfkhhqT3qF3eLXGRi_kCHxjCWagms7VLL-yY4MiS6_C6Tx91Z/s400/Typical+flow.png&quot; vt=&quot;true&quot; width=&quot;400&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;After order entry, validation and submission, orders are decomposed and sent for provisioning. Upon fulfilling the decomposed orders and appropriate testing of the circuits, the orders are put into inventory. The following sub-sections explain the Order Fulfillment related functions and OSS/BSS systems.&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;2.1.1 Order Management&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Order Management systems are complex systems that allow customer or customer service representatives to capture and process new orders, modify existing orders, process customer moves and changes, price quotes and orders, validate orders, etc., while supporting multiple channels such as Web, Order template documents and partner applications as well as multiple lines of businesses.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Order Management includes the following areas:&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;&lt;em&gt;Order Entry and validation&lt;/em&gt;&lt;/strong&gt; – The Order Entry process captures order details such as package or plan, service address, service details, customer accounts, relevant contacts and applicable contracts. Data entered during Order Entry is also validated against predetermined rules. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Orders can be validated as the data is entered and/or validation after all the data has been entered. Products/solutions that validate order data as they are entered and walk the user through the product configuration process are known as “Product Configurators”. One of such tools available in the market is Selectica COnfigurator.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;&lt;em&gt;Order Decomposition&lt;/em&gt;&lt;/strong&gt; – A single customer order can be decomposed into one or more service requests, typically based on service types or quantities, in order to be able to fulfill an order. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;For example, if a customer order contains both a VoIP order and a phone line order, two service requests would be created, one each for VoIP and the phone line, each of which would be sent to the appropriate provisioning systems. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;One of the major problems service providers often grapple with is that, as new services are added to the offerings, led by different business units, the lack of flexible order management platform results in product/service specific OSS/BSS applications. These in turn result in higher time-to-market as well as increased costs of maintaining many different applications and systems. Product catalog based Order Management solutions attempt to solve these problems by storing and processing qualification rules for services based on customer profiles, ordering channels, service locations, product interdependencies, availability, customer eligibility and other business constraints. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;2.1.2 Service Provisioning&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Service Provisioning systems are systems used to setup products/services for the customer after an order for the services has been created and accepted by the CSP. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Service provisioning activities include specifying the pieces of equipment and parts of the network to fulfill the service, configuring the customer’s routing path, allocation of bandwidth in the transport network, setting up of wiring and transmission, etc.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Some of the systems that constitute provisioning systems are: Circuit Design &amp;amp; Assignment Tools, Activation systems, and Field Service Management systems.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Circuit design refers to specifying whether facilities exist to provide the service and which pieces of the network equipment and routes the service shall utilize. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;One of the most widely used systems providing Circuit Design facility is Telcordia TIRKS. Apart from Circuit Design support, it also provides circuit order control, inventory record maintenance, selection and assignment of components from inventory, and preparation and distribution of circuit work orders. The order control module in TIRKS works with a circuit provisioning system and operates in conjunction with other TIRKS components to assign facility and equipment information for circuit orders and design circuits. TIRKS can then provide automated design criteria for certain circuit orders. The circuit design generated in TIRKS is then communicated to field operations or automated activation systems for implementation. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Circuit Design and Assignment tools these days often have graphical tools that allow a user to create services on a network map using mouse clicks and drag-and-drop rather than drawing maps by hand or using an abstract set of equipment identifiers displayed in a table. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;After a service is designed based on the existing equipment and circuit inventory, it is ready to be activated. If new equipment or lines need to be configured manually, a Field Service Management (FSM) system is notified which in turn dispatches technicians. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Moreover, certain activations can be performed automatically. For example, issuing commands to ATM or circuit switches to provision circuits, to SONET terminals to allocate bandwidth, and to a wide array of access devices such as DSLAMS, Digital Loop Carriers (DLC), or cable modems. For such activations, Service Activation systems pass the device specific commands and configuration changes to the network elements, Element Management Systems (EMS), Network Management Systems (NMS) or application hosts. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;EMSs are designed to receive and execute commands sent by activation systems on the devices. EMSs can also feed equipment status data back to network and trouble management systems. EMSs use protocols such as Common Management Information protocol (CMIP) or Transaction Language (TL) or Simple Network Management Protocol (SNMP) to communicate with activation and other systems.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Activation systems often comprise a library of adapters to various network systems. They usually also support transaction control, i.e. the capability to roll-back operations already performed, in case an error occurs. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;It should be noted that Provisioning systems interact with the Inventory systems, both to verify that the required network elements and other facilities are available, and once the resources are provisioned - to reflect the changed on-line configuration of the facilities. Therefore, provisioning systems have close channels with inventory systems. As a result, some vendors have combined workflow capabilities with inventory management capabilities in their products.&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;2.3 Inventory Management&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Tracking inventory involves tracking equipment, facilities and circuits. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Some examples of information tracked are: the location and quantities of the equipment, how a piece of equipment is configured and its status, etc.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Inventory Management Systems track both the physical network assets (such as equipment and devices) as well as “logical” inventory (such as active ports, circuit ids, IP addresses, etc.), although not all support both. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;By relating usage of network assets to specific customers and services, an inventory system can help network operations determine the network usage and available capacity as well as enable automated network design and planning. Inventory Management Systems also enable Service Assurance systems to find the impact of a network fault on the customer’s circuits. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Some tools also have “auto-discovery” features to automatically check physical network assets and match the results with the information held in the inventory. However, these work only with some of the newer intelligent network elements.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span id=&quot;assurance&quot; style=&quot;font-family: Verdana; font-size: large;&quot;&gt;2.2 Service Assurance&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana; font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Communications service providers (CSP) strive to differentiate themselves from their competitors by implementing attractive Service Level Agreements (SLA). SLAs are formal contracts where the level of service delivered by the CSP to his customer is stipulated. An SLA may specify levels of service availability, performance, operation, etc. as well as penalties upon violation of the SLA. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: large;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: small;&quot;&gt;Offering SLAs implies that the service provider has the ability to monitor, act and report the level of service, in order to assure the quality of services delivered to the customers. Service Assurance refers to all the activities performed for such an assurance. The goal of Service Assurance is to provide an optimal customer experience, that helps retain existing customers, attract new customers and prevent penalties arising out of violation of SLAs. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: small;&quot;&gt;The following sub-sections introduce some of the common service Assurance systems.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: small;&quot;&gt;&lt;strong&gt;2.2.1 Fault and Trouble Management&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: small;&quot;&gt;Fault Management Systems are designed for detection, isolation and correction of malfunctions in a communications network. They monitor and process network alarms generated by network elements (routers, switches, gateways, etc.). An alarm* is a persistent indication of a fault that is cleared only when the triggering condition is resolved. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: small;&quot;&gt;Examples of trouble or fault in a network are damage to an optical fiber line, switch failure, etc. Such a problem in the network can result in a chain reaction where many network elements in a certain path produce alarms*. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: small;&quot;&gt;Fault Management Systems may be either a component within Network Management Systems or as a standalone set of system and application software. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The following figure illustrates how fault management works. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1RmaQcabr5ScfAxfb4yxgrZ3H34u0_NJ8XHFMiQ92hMa9oithM9XS3ZijfhoVovB65bE7_G-waU52rQDJisppm8w3rr-VTI-qnIUUtwMKpNu3VYm-eCNl5h3n_KDd3L8sjJeW/s1600-h/Fault_Management.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1RmaQcabr5ScfAxfb4yxgrZ3H34u0_NJ8XHFMiQ92hMa9oithM9XS3ZijfhoVovB65bE7_G-waU52rQDJisppm8w3rr-VTI-qnIUUtwMKpNu3VYm-eCNl5h3n_KDd3L8sjJeW/s400/Fault_Management.png&quot; vt=&quot;true&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Network Elements are designed to provide various levels of self-diagnosis. Older Network Elements might simply send an alarm notifying a problem while newer Network Elements can provide more precise and detailed messages. Fault Management Systems may collect alarms via SNMP traps, CMIP events or proprietary agents, via EMS. They use complex filtering systems to assign alarms to specific severity levels and correlate different alarms to locate the source and cause of a problem.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;After a problem is identified, the FMS then notifies appropriate network operators as well as pass the problem information to a Trouble Management System that in turn logs the problem and issues a trouble ticket to start the repair process. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The Trouble Management System then sends commands to appropriate systems such as Field Service Management to schedule and dispatch technicians to repair the equipment and/or to EMS to reroute network traffic around the problem areas. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Trouble Management systems also handle automatic escalation, such as progression of a ticket from minor to major or major to critical, etc., and support a variety of notification methods such as paging, emails, synthesis voice dial-out. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Fault Management systems usually provide graphical network displays which are projected on large screens at the Network Operations Centres (NOC). NOC operators can see role-based views on their consoles, shortcuts to operations they perform the most as well as tools to quickly make connections to EMS to perform any testing or diagnostic operation.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;2.2.2 Network Performance Management&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Performance Management components in NMS and other Alarm Handlers monitor applications and systems and collect performance variables of interest at specified intervals. Performance variables of interest may be service provider network edge availability, customer premises availability, response times, packet delivery rate, packet losses, latencies, jitters and out of sequence packet reorder, etc., to name a few.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;One way to capture performance metrics is collecting event logs, CDRs and other performance data such as counters or timers that the network and system elements maintain as part of their normal operation. This is referred to as passive measurement. Performance data is captured by polling MIB using SNMP or using syslog, (I &amp;amp; II), FTP, EMS feeds, etc. Most passive measurements report on a single network element. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;For example, an Ethernet Switch may have a MIB which provides in and out data volumes of each port, histograms of frame sizes, number and types of erroneous frames, central processing unit (CPU) busy status. Associated Remote Monitoring (RMON) MIB-type data can then list ten most active users, etc. Performance Management tools can access the data by using SNMP to poll the MIBs at predefined intervals.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Statistics on performance variables can also be captured via dedicated network appliances known such as “probes” and “sniffers” that monitor or probe customer’s local loop connections, packet performance, etc. This form of performance testing is usually referred to as active testing. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Packet sniffers typically monitor signaling protocols such as SIP and RTP by inspecting packets on the wire/fiber, using pings, DNS, FTP, HTTP fetches, etc. Examples include WireShark and Geoprobes. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Probes such as Brix Networks BrixWorks Verifiers and Tektronix/Minacom IVR tools typically emulate customer traffic in order to test or probe specific paths to measure the quality of the services supported. Probes could be either placed into the network or could be built into network elements such as in the case of Cisco’s IP Service Level Agreements tools. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Note that active measurement measures a service, such as application response time, instead of the internal operation of a network element. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;An example of active network performance test is injecting “ping” (short, network layer echo packet) into the network aimed at a remote IP address. Round-trip time is measured if the ping packet returns, and an error counter is incremented if it doesn’t. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Performance statistics captured by “active” or “passive” performance tests are normalized and routed to relational databases and/or data-warehouses. An alternative is to pass the performance data directly to Performance Management tools. For example, Concord eHealth could collect performance statistics from Netcool agents via SNMP polls at a pre-defined interval. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Performance statistics are initially analyzed to determine the normal (baseline) levels. Appropriate thresholds are determined for each of the interesting performance variable so that exceeding the thresholds indicates a problem.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Performance Management tools then measure the performance variables against SLAs defined as thresholds per application or service, on an on-going basis. In case of exceptions they report them to alarm handlers. This form of performance monitoring is reactive performance monitoring. Some tools also support proactive monitoring by way of providing simulation tools that helps network operators project how growth in network traffic will affect performance metrics and plan to take proactive countermeasures such as increase capacity.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Performance Management tools may also support real-time and historical reporting. Some CSPs have taken performance statistics of the network affecting customers’ circuits to their customer self-service portals.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;2.2.3. Topology &amp;amp; Configuration Management&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Older networks and systems were static and the network wiring was fixed in place, and sometimes required long outages while changes to the network and its configuration were being made. Any error or inconsistency in the configuration files of different network devices caused problem, and therefore these changes were well controlled [3]. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;According to [3], with the rise of IP-based, dynamically routed networks, network topologies started becoming dynamic. The topology of the network became dynamic because a few of routers might decide, on their own, to shift routing patterns, or because a network operator group might add a new router or switch to the network, possibly without everyone else in the network operations center being aware of the changes. Instead of static associations between users and network addresses (as was set in the old “hosts” file), DHCP and other techniques allowed users to appear, move, and disappear without providing prior notice to the network administration.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Most major NMSs therefore provide capabilities to automatically discover a network’s actual topology, which is critical to understand network performance or root cause of network alarms, etc. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Probes are placed into the network to automatically find devices and circuits. Also, most network elements provide MIBs that can be polled via SNMP to discover the network, although discovering the network topology in its entirety may not be guaranteed. Backup paths, virtual private networks, MPLS, etc., can make it very difficult to discover actual paths, through multiplexed links, patch panels, and test equipment [3]. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Also, most Topology Management Systems allow the network operator to provide hints so that the system, for instance, in order that the system can ignore certain portions of the network. This makes it easier to discover relevant portions of the network more accurately. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Some service providers may run network discovery routines on a daily basis to discover any unauthorized changes to the network topology as a result of security intrusions or unplanned insertion of devices. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Moreover, network elements and computer systems have a variety of version information associated with them. For example, a workstation may have: Operation System, version 32, Ethernet Interface, version 5.4, TCP/IP Software, version 2.0 and SNMP Software, version 3.1. Since multiple engineers/network operators work on making changes to the network equipment, tracking the changes manually would be very tedious and error-prone. Configuration Management tools help automates the tracking of the changes. Configuration Management systems store the configurations in a database or LDAP server for easy access. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;They also enable network operators to change configurations of the network elements as well as to roll back a change to a previous configuration, if required. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;When a problem in the network occurs, network operators often search the Configuration Management database for clues that can help solve the problem.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;2.2.4. Planning &amp;amp; Testing&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Network Planning solutions help determine when a communication network needs an upgrade or additional equipment as well as to predict the impact of changes to a service provider’s network’s topology, configuration, traffic and technology. They provide simulation tools that help the network operators to project how growth in network traffic will affect the network performance. Based on the results and other planning activities, network operators can take countermeasures such as increase capacity.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Testing is an important activity in setting up a network or customer circuits. For simplicity in understanding the gamut of testing activities, let us divide them into the following:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span id=&quot;goog_1268977053728&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;1. Testing of existing network or a change&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;2. Integration testing of services configured for the customer&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;3. End-to-end testing of services configured for the customer&lt;span id=&quot;goog_1268977053729&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Testing the entire network platform - including the equipment, services and call quality – is critical for assessing the system prior to deployment and for service assurance in production environments [4]. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Network testing tools usually simulate a production environment and generate synthetic voice, video and data traffic, which helps measure call/data quality, network performance, and the affects of any changes to the network or increasing traffic or adding new applications. These tests typically include tests like DNS, HTTP, RTP, Ping, etc. Also, during ongoing operations, these testing tools enable active testing of facilities.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Another form of testing is integration testing of network setup for the customer, i.e., routes, circuits, etc. configured for a customer. Network operators or field engineers perform integration testing of services upon completion of activations and other provisioning activities. Field engineers typically use equipment and network element specific applications to perform integration testing. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Upon completion of integration testing, field operations teams are notified to perform end-to-end testing. End-to-end testing includes testing of circuits, both within the CSP’s network as well as local access circuits between the CSP and the customer premises. Some service provider’s use craft access systems for the benefit of field technician’s access to their internal systems through a hand held terminal [5]. The hand held terminal helps them to access loop testing system and to view the complete test summary from remote locations.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span id=&quot;billing&quot; style=&quot;font-family: Verdana, sans-serif; font-size: large;&quot;&gt;2.3 Billing&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;IDC [6] defines Billing as: the processing and compiling of charges and enabling of revenue collection for network usage, feature transactions, and access charges of the services.&lt;/span&gt;&lt;/span&gt;Mediation systems collect network usage data from the network elements and convert to billable statistics. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana;&quot;&gt;The following figure depicts a simple Billing flow:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEz41PTHp8xmye1hcS94anGlG5VdD7O36FrPE7Pl0-cu1uogOACFZH6ZI0aEHwYobS_5jUqzzt4TQQ7XEAZfj3XFOHHR5Afzu4nh7beLc354JelwBtBkqxfKdaFfWzDvQ-AmOl/s1600-h/Billing.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;226&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEz41PTHp8xmye1hcS94anGlG5VdD7O36FrPE7Pl0-cu1uogOACFZH6ZI0aEHwYobS_5jUqzzt4TQQ7XEAZfj3XFOHHR5Afzu4nh7beLc354JelwBtBkqxfKdaFfWzDvQ-AmOl/s400/Billing.png&quot; vt=&quot;true&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Traditionally, for phone calls, Call Detail Records (CDR) have been used to record the details of the circuit-switched phone call. CDR includes information on start time of call, end time of call, duration of call, originating and termination numbers. CDRs are stored until a billing cycle runs. For IP Based Services, a new standard is gaining acceptance called Internet Protocol Detail Record (IPDR). IPDR supports both voice and data. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Billing systems use mediation output to determine charges for the customers. It is also used to feed other downstream applications such as Fraud and Churn Management.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;2.3.2 Rating&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Rating systems calculate the charge for an individual call, IP usage event, etc. using the CDRs/IPDRs. Rating systems apply charges based on pre-configured pricing rules, applicable discounts and rebates from promotions.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;This rating process has grown increasingly complex in recent years. In older times, it was solely a matter of taking the length of the call, assigning a price based on the mileage band (calculated by cross-referencing the prefix of the originating and terminating numbers in a table of values), and assigning discounts based on the time of day (peak, evening, night), day of the week, and holidays.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Modern rating systems can assign discounts based on calling circles, provide flexible rating plans based on size of accounts and increase switching costs [2]. These serve as strategic marketing tools but can be very complex to administer and operate.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;2.3.3 Billing Systems&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Billing systems aggregate rated calls, IP/data usage events, etc. and calculate customer invoices. In the United States, billing is usually performed once a month. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Billing systems combine rated records with prior balance information, payment records, recurring charges (such as line rentals), one-time fees (such as installation and service charges), promotions and discounts associated with the customer account, taxes and credits. Overnight billing batch jobs are among the largest batch environment at a CSP’s operating environment. Each customer is assigned a specific billing cycle. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;According to Insight [2], the holy grails of the billing industry are unified billing and convergent billing. With unified billing, a customer gets a single bill for all services provided (or billed) by the service provider, appropriately rated, discounted, and taxed, and a single contact for inquiries and negotiation.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;2.3.4. Interconnection Billing&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;In the competitive world of communications, service providers often tie-up with partners, in order to bundle their own products with their partners. This helps the service providers to provide attractive bundles of products and services. However, in order to successfully settle interconnect billing settlements an effective Interconnection Billing is required.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Interconnection Billing products support inter-working of a service provider’s billing systems with the corresponding systems of another service provider, based on interconnect agreements and contracts.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;2.3.5. Revenue Assurance&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Revenue Assurance &amp;amp; Fraud Management systems verify billing, detect and identify unauthorized usage of service provider network assets. Some of the kinds of frauds are Usage and Subscription.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Usage Fraud means that a customer uses the telecommunications network illegally. This is accomplished either by obtaining a service with no intent to pay or by obtaining unauthorized access to the network (i.e. “hacking” or “cracking”). &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Fraud Management systems typically detect and prevent unauthorized access to a communications network by analyzing traffic patterns on the network. Some examples are provided in [8]:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;One technique involves analyzing the average call duration or the number of calls placed to foreign countries to determine whether the traffic patterns are consistent with a subscriber&#39;s call history or pattern. If a call is inconsistent with the subscriber&#39;s call pattern profile, the subscriber is provided with a report of the abnormal call activity.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Other methods for dealing with the problem of unauthorized use involve automatically denying or blocking access to the network when abnormal use is detected to minimize the subscriber&#39;s financial loss.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Subscription fraud means that a customer obtains a service account by giving a false identity (name and/or SSN) or by giving a false address or false credit worthiness.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Detecting subscription fraud involves searching recent order and existing customer data for multiple orders and/or accounts with the same customer name, SSN, or service address. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Common subscription fraud patterns include:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Change of billing address within a few weeks of opening an account.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Substantial deviation of usage profile of a new user from an average new user.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Common techniques to control subscription based fraud include threshold based analysis, inference rules analysis, profile based analysis such as habitual user profiles and neural networks. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Fraud Management Systems typically read and store usage data from the service provider’s network switching equipment and allows queries to be executed against the data that detect suspicious usage patterns. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;They also allow operators to review customer accounts that have suspicious activity, to track their investigation and record the final case resolution. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;It should be noted that fraud is different from revenue leakage. Revenue leakage is characterized by the loss of revenues resulting from operational or technical loopholes where the resulting losses are sometimes recoverable and generally detected through audits or similar procedures [1]. Fraud, on the other hand, is characterized with theft by deception, typically characterized by evidence of intent where the resulting losses are often not recoverable and may be detected by analysis of calling patterns.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Another important class of Revenue Assurance tools includes Churn Management tools. Churn management is an important area for service providers that have subscription-based business - due to price wars, aggressive marketing and promotions from competing service providers, and customer’s expectations related to customer service. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Churn Management tools provide functions such as automated behavior analysis, forecasting and simulation, empirical profiling, churn metrics capture, that enable service providers to learn which customers are likely to leave and take appropriate countermeasures.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-large;&quot;&gt;3. Conclusion&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: large;&quot;&gt;3.1 Summary&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;OSS/BSS systems and applications automate many of the day to day operations performed in a communications service provider’s operating environment. They optimize the time taken to perform these operations and make the business processes more efficient. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;There are no all-encompassing OSS/BSS systems that can be installed, integrated, tested and allow the service providers to easily modernize their end-to-end operations functions. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Service providers, therefore, use all the different approaches: best-of-breed in some areas, off-the-shelf in some, and home-grown custom applications in the remaining areas, to modernize and optimize their operations. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;More often than not, many of these OSS/BSS systems are integrated with the others in a point-to-point fashion, as part of discrete projects and programs, sponsored out of different business units. This leads to point-to-point integration of OSS/BSS systems unless the programs/projects are planned with a strategic goal.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;A side effect of the difficulty in integrating the various OSS/BSS systems is many of the OSS/BSS systems in a service provider’s operating environment may not be integrated at all. For example, it is not unusual to find the following scenario: when a customer orders a new telephone line, the ordering system takes the details of a customer’s order, but a manual process is present to configure the telephone exchange using a switch management system. Details of the order entered in the Order Handling system is re-keyed manually by the technician into the Switch Management System – a process often referred to as “Swivel-Chair Integration”.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The article provided an overview of some of the core OSS/BSS areas in Order Fulfillment, Service Assurance and Billing.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: large;&quot;&gt;3.2 References&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;[1] Who Makes What: OSS, http://www.lightreading.com/document.asp?doc_id=113052&amp;amp;print=true, Light Reading, Dec 2006&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[2] The 2007 Telecommunications Industry Review, The Insight Research Corp., Dec 2006&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[3] Eric Siegel, Architectural Overview of Network Management, The Burton Group, Oct 2005&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[4] Arindam Banerjee, Network Management is the Key to the Success of Next-Generation Architecture, Yankee Group, Jan 2007&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[5] Senthil K. Ramachandran, Order Fulfillment Core Processes and Pain Areas, TMFC 2122 White-paper&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[6] Sterling Perrin et al., IDC&#39;s Service Provider Infrastructure Taxonomy, 2004, IDC&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[7] Lars Andersson, OSS Solutions for Network Operators – white paper, 2002&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[8] Telecommunications Fraud Detection Scheme, US Patent 5504810, http://www.patentstorm.us/patents/5504810/description.html, April 1996&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[9] OSS Through Java Initiative, OSS/J Roadmap, TeleManagement Forum, Jan 2007&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[10] Element Management Systems – Definition and Overview, Web ProForums, International Engineering Consortium (IEC)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[11] Divakara K. Udapa, TMN Telecommunications Management Network, McGraw Hill, ISBN:9780070658158, 1999&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[12] Enhanced Telecom Operations map - eTOM: The Business Process Language of NGOSS, TeleManagement Forum&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[13] Wikipedia, http://en.wikipedia.org/wiki/Operational_Support_Systems&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[14] Elisabeth Rainge, Next-Generation OSS and Billing Market Taxonomy, IDC, Oct 2004&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[15] Wikipedia, http://en.wikipedia.org/wiki/Fault_management&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[16] Wikipedia, http://en.wikipedia.org/wiki/Management_information_base&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[17] Network Management Basics, http://www.cisco.com/en/US/docs/internetworking/technology/handbook/NM-Basics.html&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[18] Wikipedia, http://en.wikipedia.org/wiki/Network_planning_and_design&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[19] Balan Nair et al., Method and system for planning a telecommunications network, United States Patent 5974127, http://www.freepatentsonline.com/5974127.html, Oct 1999&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[20] Telecommunications Fraud Detection Scheme, US Patent 5504810, http://www.patentstorm.us/patents/5504810/description.html, April 1996&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[21] Stephen Brown, Telecommunication Fraud Management, Jan 2005, http://www.waveroad.ca/ressources/Whitepaper_SB_Janvier2005.pdf&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;[22] Eric Siegel, Measuring Performance of Networks and Applications, The Burton Group, Feb 2007&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[23] International Engineering Consortium (IEC), Tutorials, &lt;/span&gt;&lt;a href=&quot;http://www.iec.org/online/tutorials/&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;http://www.iec.org/online/tutorials/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;</description><link>http://ravisharda.blogspot.com/2010/03/telecom-ossbss-overview.html</link><author>noreply@blogger.com (Ravi Sharda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimfa0Cp664TYfd84MHy0rUkbjynMc0jHT-FGxMHRWqeQ5pcXgvHpFIUZaDfzuUhkNk2iaQ7EGtd-b7XIb_e0UAfkhhqT3qF3eLXGRi_kCHxjCWagms7VLL-yY4MiS6_C6Tx91Z/s72-c/Typical+flow.png" height="72" width="72"/><thr:total>77</thr:total></item></channel></rss>