<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>

  var _gaq = _gaq || [];
  _gaq.push([‘_setAccount’, ‘UA-21502378-1’]);
  _gaq.push([‘_trackPageview’]);

  (function() {
    var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true;
    ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’) + ‘.google-analytics.com/ga.js’;
    var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s);
  })();</description><title>Today's Class</title><generator>Tumblr (3.0; @todaysclass)</generator><link>http://todaysclass.tumblr.com/</link><item><title>Updated Time Table for BSCS-SS1 5th </title><description>&lt;img src="http://24.media.tumblr.com/tumblr_luly23CCUy1qh9gd5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;Updated Time Table for BSCS-SS1 5th &lt;/span&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/12741940842</link><guid>http://todaysclass.tumblr.com/post/12741940842</guid><pubDate>Sun, 13 Nov 2011 21:34:51 +0500</pubDate><dc:creator>imibrahim</dc:creator></item><item><title>THE BOOKS FOR ARTIFICIAL INTELLIGENCE
DOWNLOAD HERE
The file is...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lrxoqwoRtp1qh9gd5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;THE BOOKS FOR ARTIFICIAL INTELLIGENCE&lt;/p&gt;
&lt;p&gt;&lt;a title="Ai Books Download Link" target="_blank" href="http://www.mediafire.com/?jzp7g9n1z5vllmx"&gt;DOWNLOAD HERE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The file is in 7-zip Compressed Format&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/10522362653</link><guid>http://todaysclass.tumblr.com/post/10522362653</guid><pubDate>Thu, 22 Sep 2011 22:04:08 +0500</pubDate><category>ai</category><category>artificial intelligence</category><category>ebook</category><category>download</category><dc:creator>imibrahim</dc:creator></item><item><title>APPLYING UML AND PATTERNS - An Introduction to Object-Oriented...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lrtrgbIibs1qh9gd5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a title="Applying UML and Patterns" target="_blank" href="http://www.mediafire.com/?qjr35rj36ue11ob"&gt;APPLYING UML AND PATTERNS - An Introduction to Object-Oriented Analysis and Design and Iterative Development - Third Edition by CRAIG LARMAN&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The file is in 7-Zip Compression Format&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/10441964029</link><guid>http://todaysclass.tumblr.com/post/10441964029</guid><pubDate>Tue, 20 Sep 2011 19:12:00 +0500</pubDate><category>ooad</category><dc:creator>imibrahim</dc:creator></item><item><title> 
1. Dietel and Dietel - C# 2010 for Programmers 
2. C#...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lrtq35H1si1qh9gd5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1. Dietel and Dietel - C# 2010 for Programmers &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2. C# Programming 3E by Barbara Doyle&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. An Introduction to Objected-Oriented Programming -Joyce Doyle&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span&gt;&lt;a title="3-in-1 C#" target="_blank" href="http://www.mediafire.com/?2r6gnf0z7igk24g"&gt;Download All 3 Here &lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;File has been compressed using &lt;strong&gt;7-ZIP&lt;/strong&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/10441450248</link><guid>http://todaysclass.tumblr.com/post/10441450248</guid><pubDate>Tue, 20 Sep 2011 18:42:00 +0500</pubDate><category>.net dotnet</category><category>dotnet</category><category>.net</category><dc:creator>imibrahim</dc:creator></item><item><title>Download Here WROX - Professional C# and .NET 
File has been...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lrs78zlG2j1qh9gd5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Download Here &lt;a title="WROX - Professsional C# and .NET" target="_blank" href="http://www.mediafire.com/?j62cpfp7qb3rq7q"&gt;&lt;strong&gt;WROX - Professional C# and .NET &lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;File has been compressed using &lt;strong&gt;7-ZIP &lt;/strong&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/10407885375</link><guid>http://todaysclass.tumblr.com/post/10407885375</guid><pubDate>Mon, 19 Sep 2011 22:58:00 +0500</pubDate><category>.net</category><category>.net book</category><category>download</category><category>ebook</category><category>dotnet</category><dc:creator>imibrahim</dc:creator></item><item><title>Time Table for BSCS-SS1 5th </title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lrrjviUQ2f1qh9gd5o1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Time Table for BSCS-SS1 5th &lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/10398597520</link><guid>http://todaysclass.tumblr.com/post/10398597520</guid><pubDate>Mon, 19 Sep 2011 14:33:17 +0500</pubDate><dc:creator>imibrahim</dc:creator></item><item><title>The Time Table updated so far.
You can download a printable...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lia9a6OYkN1qh9gd5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;The Time Table updated so far.&lt;/p&gt;
&lt;p&gt;You can download a printable version from &lt;a target="_blank" href="http://www.mediafire.com/?9u543kjdq3qr0dj"&gt;&lt;strong&gt;HERE&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3951698979</link><guid>http://todaysclass.tumblr.com/post/3951698979</guid><pubDate>Sat, 19 Mar 2011 07:22:53 +0500</pubDate><category>time table</category><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 8 - SOFTWARE ENGINEERING</title><description>&lt;p&gt;&lt;strong&gt;SCRUM&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Scrum is an agile software development technique.&lt;/p&gt;
&lt;p&gt;Scrum is used where time is a top priority. When a customer needs a project completed in a short time, the developers will partition their work by making the use of scrum.&lt;/p&gt;
&lt;p&gt;Scrum emphasizes the use of a set of software process patterns that have been proven effective for projects with tight timelines. These process patterns are (distinguishing features)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Backlog:&lt;/strong&gt; A list of project &lt;strong&gt;requirements&lt;/strong&gt; or features that provide business value to customer are called backlogs. The project manager can access the backlog and he updates it when ever required. Work is divided and organized according to their priority in a backlog.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sprints:&lt;/strong&gt; Sprints are small units that are defined in backlog. They are the modules that are arranged in a backlog according to their priority. A sprint must be completed in a given short time (typically a sprint might take up to 30 days of time to complete).&lt;/p&gt;
&lt;p&gt;While working on a sprint no changes are made to the sprint. instead the team works on one purpose. After one sprint is complete the changes are placed into a new sprint. This way the work flow is stable and there remains no room for confusion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Meetings: &lt;/strong&gt;Meetings are held on daily basis. They are usually very short, almost 15 minutes or so. These meetings help to know how much progress has been made by the team; If anyone is facing a problem, that problem is discussed; How much work should be completed before the next meeting.&lt;/p&gt;
&lt;p&gt;Meetings are held by a team leader called a Scrum Master.&lt;/p&gt;
&lt;p&gt;Daily meetings help solve problems as early as possible so there remains no time for delay in the delivery of the project.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Demos: &lt;/strong&gt;After a software increment is completed it is delivered to the customer so that they can check and confirm that the functionality implemented so far in the increment is either according to the will of the customer.&lt;/p&gt;
&lt;p&gt;The increment software may contain all the functionality but the only properly functional parts are those which were built in sprints in a specific time-box.&lt;/p&gt;

&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CRYSTAL:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When a less complex software needs to be developed an agile process called Cystal is introduced. A very small team is usually required to work on a Crystal Project. &lt;/p&gt;
&lt;p&gt;The basic emphasis of crystal is on &amp;#8220;Maneuverability&amp;#8221;, it is the technique of quickly finishing one project and moving on to the next one. The project being worked on has limited resources.&lt;/p&gt;
&lt;p&gt;As the name suggests, everything is pretty Crystal Clear to the people working on this project. Face to face communication is emphasized and clarity is gained by the talking to the customer directly. Meetings and workshops are held to gain understanding of the progress of the work and to solve any problems if occurring.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feature Driven Development (FDD)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As the name suggests it is an agile software development model that emphasizes on working on a project by dividing it into features. Like if a complex computational calculator needs to be made, they will divide it&amp;#8217;s features like basic calculations, trigonometric calculations, matrix calculations and so on. And every increment will deliver a new feature. &lt;/p&gt;
&lt;p&gt;A feature is defined as a client valued function that can be implemented and delivered in 2 weeks or less.&lt;/p&gt;
&lt;p&gt;Making a project by dividing it into smaller features has it benefits which include:&lt;/p&gt;
&lt;p&gt;&amp;gt; Because every feature is fully functional, a user can relate it better to the other features; error checking is made easier.&lt;/p&gt;
&lt;p&gt;&amp;gt; Features can be easily stacked in a business-related grouping.&lt;/p&gt;
&lt;p&gt;&amp;gt; Because a feature is an increment in the FDD a new feature is delivered every 2 weeks, which makes the customer to wait less.&lt;/p&gt;

&lt;p&gt;Use of a special template called the feature template is used which helps to define a feature:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;lt;action&amp;gt;&lt;/strong&gt; the &lt;strong&gt;&amp;lt;result&amp;gt; &amp;lt;by|for|to|of&amp;gt;&lt;/strong&gt; a(n) &lt;strong&gt;&amp;lt;object&amp;gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are five processes involved in the FDD.&lt;/p&gt;
&lt;p&gt;1. Gain an idea of requirements&lt;/p&gt;
&lt;p&gt;2. Build the list of features that are to be included in the project&lt;/p&gt;
&lt;p&gt;3. Give priorities to the features&lt;/p&gt;
&lt;p&gt;4 &amp;amp; 5. Design and Construction go on in a cycle. Design is achieved by developing different diagrams and flow charts to gain understanding of the features. Then those diagrams and algorithms are implemented into a code and a feature is developed.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agile Model&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Another agile model technique that works on the following principles:&lt;/p&gt;
&lt;p&gt;1. Model with a Purpose: A developer must have a well defined purpose of creation in mind. He should understand his project by constantly communicating with the customer. And should start working only when he is very certain and clear about the requirements.&lt;/p&gt;
&lt;p&gt;2. Use Multiple Models: A software can be defined by many different models. Each model gives a different aspect of the project. But only those models should be provided that are of the value to the intended customer.&lt;/p&gt;
&lt;p&gt;3. Travel Light: The models that you keep, should be maintained as new changes are introduced. These models help the team gain abstraction.&lt;/p&gt;
&lt;p&gt;4. Content is more important than representation: A very good looking model that perform very little or useless tasks is not important to the customer than that model which has problems and bugs but provides the customer with the functions that they required by the developers.&lt;/p&gt;
&lt;p&gt;5. Know the models and the tools you use to create them: Understand the strengths and weaknesses of the models designed and the developer must use the tools that they know how to properly use.&lt;/p&gt;
&lt;p&gt;6. Adapt locally: The modelling approach should be adapted to the needs of the agile team.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lean Software Development:&lt;/strong&gt; (Will Explain Later)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agile Unified Process: &lt;/strong&gt;(Will Explain Later)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3932252255</link><guid>http://todaysclass.tumblr.com/post/3932252255</guid><pubDate>Fri, 18 Mar 2011 07:29:34 +0500</pubDate><category>software engineering</category><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 7 - SOFTWARE ENGINEERING</title><description>&lt;p&gt;&lt;strong&gt;OTHER AGILE PROCESS MODELS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Other then XP agile model there are&lt;/p&gt;
&lt;p&gt;1. Adaptive Software Development&lt;/p&gt;
&lt;p&gt;2. Scrum&lt;/p&gt;
&lt;p&gt;3. Dynamic Systems Development Methos&lt;/p&gt;
&lt;p&gt;4. Crystal&lt;/p&gt;
&lt;p&gt;5. Feature Drive Development&lt;/p&gt;
&lt;p&gt;6. Lean Software Development&lt;/p&gt;
&lt;p&gt;7. Agile Modelling&lt;/p&gt;
&lt;p&gt;8. Agile Unified Process&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adaptive Software Development&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ASD is another Agile Modelling techique. It is basically used for the building of complex software and systems.&lt;/p&gt;
&lt;p&gt;The distinguishing features of adaptive software development are as follows:&lt;/p&gt;
&lt;p&gt;&amp;gt; Mission Driven Planning&lt;/p&gt;
&lt;p&gt;&amp;gt; Component-based focus&amp;#160;: instead of writing a new code every time, special objects are prepared which are then used again and again to maintain speed, rewriting a new code takes a lot of time.&lt;/p&gt;
&lt;p&gt;&amp;gt; Uses &amp;#8220;Time-Boxing&amp;#8221;&amp;#160;: Assign time to specific activities and modules. Like the phase of coding needs more time and that of testing needs less etc.&lt;/p&gt;
&lt;p&gt;&amp;gt; Explicit consideration of risks: Risks are considered a high priority in the development process. It is constantly checked that there are no or very little chance of any kind of a risk&lt;/p&gt;
&lt;p&gt;&amp;gt; Emphasizes collaboration for requirement gathering: Information about the project is constantly gathered through collaboration between the developers and the customer.&lt;/p&gt;
&lt;p&gt;&amp;gt; Emphasizes &amp;#8220;Learning&amp;#8221; through out the process: Feedback is acquired and gained from the developers and the customer after every increment as to know if everything is going on properly.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Phases of ASD&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ASD involves 3 phases of development&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Speculation: &lt;/strong&gt;This stage is the starting stage. Here the information about the project is gained from the customer. Delivery dates or user descriptions about different parts of the project are discussed.&lt;/p&gt;
&lt;p&gt;An idea is gained about the time that will be required to do everything by the developers and everything is properly arranged in a manner according to their priorities as to not leave anything important out.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Collaboration:  &lt;/strong&gt;The next stage is the teamwork. The developer work as a team and constantly collaborate with one another to gain knowledge and help each other solve problems regarding the project. Ideas of an individual developer are discussed and the best one&amp;#8217;s are used for the project. An environment of trust is built among the developers which helps them maintain their speed and working capability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Learning: &lt;/strong&gt;A constant process of learning is going on when developing a project. The developers use tests on their codes and get to learn the flaws and defects in their code. They also learn by revising the requirements of their project and then comparing those requirements with every module of the software that they have built.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dynamic System Development Method&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The dynamic system development method is also an agile development method. This technique uses the idea of building incremental prototypes. These prototypes are very close to the final product. These prototypes help the developers maintain a tight time schedule.&lt;/p&gt;
&lt;p&gt;If you are given 100 percent of time. You will be able to complete 80% of the total work in about 20 percent of your given time. How is this possible? When you make a prototype as an increment you get more and more close to the product completion. You do not pay much attention to tiny bits of detail. You just keep on adding new features every time you are given some new information from the customer or business.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Phases of DSDM&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt; Feasibility Study: Basic business requirements for a project are discussed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;gt; &lt;/strong&gt;Business Study: The basic application architecture is discussed and ways are discussed in which the product can be built according to the needs of the business&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;gt; &lt;/strong&gt;Functional Model Iteration: Prototypes are built that can provide full functionality to the customer with every new increment. The feedback is obtained from the user and new changes are made according to the feedback in the next incremental prototype&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;gt; &lt;/strong&gt;Design and Build Iteration: It is checked if the prototypes can provide the user with the proper functionality. Usually Functional Model Iteration and Design and Build Iteration occur together&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;gt; &lt;/strong&gt;Implementation: An increment is placed in the operational environment. The users might demand changes or modification at any level and after every increment there might be need to rework a few things or add new features.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Candy- Difference between Prototype and Increment: Prototype is a close-to-full model of the project and is demonstrated only in meetings between the customer and the developers. But an increment is a fully functional (sometime short of a few features from the required project) software that is sent to the customer to use until a new increment is made or the project is completed.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3878623129</link><guid>http://todaysclass.tumblr.com/post/3878623129</guid><pubDate>Tue, 15 Mar 2011 21:32:00 +0500</pubDate><category>software engineering</category><dc:creator>imibrahim</dc:creator></item><item><title>The Software required for database management is
Microsoft SQL...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_li1myqI1nS1qh9gd5o1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;The Software required for database management is&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft SQL Server Management Studio&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can download&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft SQL Server Management Studio 2008 Express Edition &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;—————————————————————————————————&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;from here&lt;/p&gt;
&lt;p&gt;For&lt;a target="_blank" href="http://www.microsoft.com/downloads/info.aspx?na=46&amp;SrcFamilyId=08E52AC2-1D62-45F6-9A4A-4B76A8564A2B&amp;SrcDisplayLang=en&amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f6%2f7%2f4%2f674A281B-84BF-4B49-848C-14873B22F977%2fSQLManagementStudio_x86_ENU.exe"&gt; &lt;strong&gt;32-bit Windows&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For &lt;a target="_blank" href="http://www.microsoft.com/downloads/info.aspx?na=46&amp;SrcFamilyId=08E52AC2-1D62-45F6-9A4A-4B76A8564A2B&amp;SrcDisplayLang=en&amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f6%2f7%2f4%2f674A281B-84BF-4B49-848C-14873B22F977%2fSQLManagementStudio_x64_ENU.exe"&gt;&lt;strong&gt;64-bit Windows&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;—————————————————————————————————&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You May Also Download&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft SQL Server 2008 R2 Express Edition &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For &lt;a target="_blank" href="http://care.dlservice.microsoft.com/dd/download/5/5/8/558522E0-2150-47E2-8F52-FF4D9C3645DF/SQLEXPRWT_x86_ENU.exe?lcid=1033&amp;cprod=SQLEXP"&gt;&lt;strong&gt;32-bit Windows&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For&lt;a target="_blank" href="http://care.dlservice.microsoft.com/dd/download/5/5/8/558522E0-2150-47E2-8F52-FF4D9C3645DF/SQLEXPRWT_x64_ENU.exe?lcid=1033&amp;cprod=SQLEXP"&gt; &lt;strong&gt;64-bit Windows&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3852976946</link><guid>http://todaysclass.tumblr.com/post/3852976946</guid><pubDate>Mon, 14 Mar 2011 15:40:02 +0500</pubDate><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 6 - SOFTWARE ENGINEERING</title><description>&lt;p&gt;Chapter # 3&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introduction to Agile Development&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In 2001 a new modelling technique was presented known as Agile Development model. The reason why a new model was presented was because the conventional modelling techniques like waterfall model, incremental model etc had their drawbacks. They were time consuming and whenever user wanted a change it would be lengthy process to provide the user with that change.&lt;/p&gt;
&lt;p&gt;Agile development technique eradicated this problem. It&amp;#8217;s main focus was to help develop a healthy relation between the customer and the developer so that a better product could be produced.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Manifesto For Agile Software Development&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Manifesto is a statement that changes the way the things were previously going on. In a political movement we can refer to it as a Revolution. Agile development has brought about a change in the way we used to develop software. The conventional methods has a lot of weaknesses and agile development was a medicine for that weakness.&lt;/p&gt;
&lt;p&gt;In a conventional method the communication between the customer and the developer usually occurred at the very beginning of the development or at the end when the product was delivered. This would pose a problem if by any chance the user wanted something changed or the project was not what the user had in mind.&lt;/p&gt;
&lt;p&gt;Agile development focuses on making increments. Increment is software that is a stripped down version of the requirement of the user, and it is in fully functional state. Lets consider and increment with this example. Lets say a customer wants us to make a scientific calculator. We first write a code and make the calculator perform the basic tasks such as the basic four functions and equaling the answer. We deliver this bit of the software to the customer. Then we add the trigonometric functions in the calculator and deliver it to the customer again. Then we add the roots and deliver another increment to the customer. And so on. So you see instead of waiting for the whole thing the user gets to have a functional calculator in every increment. To make a change will also become easier, like if the customer is not satisfied with an increment we will only need to change the code that the was added to that increment instead of starting the whole thing from the start. This will also result in less development cast and it will be a speedy process.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;!-- more --&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agility Principles&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are 12 principles involved to achieve agile development.&lt;/p&gt;
&lt;p&gt;1. Satisfication of Customer: By making increments we are continuously providing the customer with something. The customer will not have to wait and will feel a part of the process when he will be getting pieces of software.&lt;/p&gt;
&lt;p&gt;2. Welcome Change: Whenever the customer wants a change, implement it even when a lot of the software has been developed.&lt;/p&gt;
&lt;p&gt;3.Increments:  Make a lot of increments for the user to interact with the product continuously. Keep the timescale for increments short not expanding over a couple of weeks or months&lt;/p&gt;
&lt;p&gt;4. Collaboration: Throughout the development contact and interact with the customer&lt;/p&gt;
&lt;p&gt;5. Motivate Developers: Give the developers proper incentives to help them achieve stay motivated to work. Give them a good environment and trust so that they get the job done properly.&lt;/p&gt;
&lt;p&gt;6. Face-To-Face Communication: Communicate with the developers and the customers face to face, because the conversation made direct is more efficient and understandable than that done over the phone or through written documents.&lt;/p&gt;
&lt;p&gt;7. Test: Test drive the software alot so to not have any kind of problem in it at any later stage.&lt;/p&gt;
&lt;p&gt;8. A proper speed should be maintained while developing the software among developers and users.&lt;/p&gt;
&lt;p&gt;9. Constant attention should be given to a good design&lt;/p&gt;
&lt;p&gt;10. Simplify the work, not complicate it. Complicated work is smaller but is hard to debug. while a simpler code is easy to understand and fix if a problem arises.&lt;/p&gt;
&lt;p&gt;11. The team should be self organizing meaning it should be able to organize the work after short intervals to combine it into a product whenever the need arises.&lt;/p&gt;
&lt;p&gt;12. The team should decide which approaches to development are better and they should be able to adjust accordingly.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HUMAN FACTORS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When working in a agile development environment, the humans involved play a very important role in how the work progresses and what is later achieved.&lt;/p&gt;
&lt;p&gt;These factors are:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Competence: &lt;/strong&gt;In agile development specific software related skills should be taught to all the developers so that everyone works to their fullest potential and no one is weak at any point from the other.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Basic Focus: &lt;/strong&gt;The different member in a development team maybe working on different aspects of the project like design, code etc. Their main focus should be to deliver the software in time so they should manage the time in such a way that everything goes right.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Collaboration: &lt;/strong&gt;Every member of the group should work as a group contacting each other at times and arranging different bits of the project.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Decision Making: &lt;/strong&gt;An individual developer should have the power to take a decision related to the project whenever and where ever it is required. He should not run to anyone for help.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fuzzy Problem Solving Ability: &lt;/strong&gt;Every developer should have the ability to solve a problem that is confusing while in the development phase. They should always be ready for ambiguous and confusing problems.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mutual Trust and Respect:&lt;/strong&gt; All the member of the agile team should have be given and should give respect and should trust each other. This will keep them working and solving the problems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Self-Organization: &lt;/strong&gt;The agile team should have the power to organize itself to work properly, should organize the codes properly and should organize to complete their job in time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agile Process Models&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. XP or Extreme Programming&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Adaptive Software Engineering Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE EXTREME PROGRAMMING (XP)&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;XP is the most widely used agile development model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It works on 5 values:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1. Communication: Communication between the developers should be brought into action at the very beginning and at any stage wherever the developers need to know about a particular bit of the project properly.&lt;/p&gt;
&lt;p&gt;2. Simplicity: The developer should right a code that&amp;#8217;s easy to implement.&lt;/p&gt;
&lt;p&gt;3. Feedback: Three sources give feedback. The software gives feedback when it is implemented and tested. It tells us what needs to be improved or where a change is required. A special test called unit test is applied to the software increment. In this test every module and function of the software increment is tested. The developers may also give each other feedback, and the final feedback is derived from the customer when an increment is delivered and run by the customer.&lt;/p&gt;
&lt;p&gt;4. Courage: The developers should be able to take decisions where ever required.&lt;/p&gt;
&lt;p&gt;5. Respect: An environment of trust and respect should be developed among the users, developers and customers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;XP PROCESS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;XP is an object oriented approach as the coding occurs in 4 framework activities: Planning, Design, Coding and Testing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;XP Planning&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Planning starts with listening. The developers ask the requirements and gain the idea from the customer about the project. How the project needs to work, what will the requirements be, how the final design will look like every such thing is discussed at this stage. The time the customer wants the product in is also discussed. This is collectively known as user stories.&lt;/p&gt;
&lt;p&gt;Then the developer then gives an over view of the cost and development time in which they can make the product. They arrange the parts of the user stories in 3 categories. Ones that need to be completed immediately, one that are important and need time to be developed after the most immediate ones and the last one are those that can be created at the later stage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;XP Design: &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The XP design is based on the following principles:&lt;/p&gt;
&lt;p&gt;1. Keep it simple, don&amp;#8217;t make complicated codes because they will need more time to implement and debug if error occurs.&lt;/p&gt;
&lt;p&gt;2. encourage the use of CRC (Class Response Collaboration) cards. CRC cards are used to organize the objects that are required for a specific increment.&lt;/p&gt;
&lt;p&gt;3. Spike Solutions: Make prototypes if there is some confusion in understanding. This will help the customer identify with the project and confirm if it is what the customer wants. So this way there will be less chances of rejection in the end.&lt;/p&gt;
&lt;p&gt;4. Refactoring: Refine the code with new increments. Make changes where required and organize it in a better way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;XP Coding:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Unit tests should be created to keep on removing any errors found in the increments.&lt;/p&gt;
&lt;p&gt;Pair programming should also be welcomed. Pair programming is a technique in which two programmers of same capabilities are asked to write a code for same bit of the project, because every person think differently both the programmers will come up with a different view point and their logic will be different and probably unique in many respects. At the end the code that is better among the two will be encouraged and used.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;XP testing:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Testing should be made frequently so that any problems that arise can be removed. Perform acceptance test meaning ask the customer is the product is what they were looking for after every increment to maintain the work flow properly.&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3826565951</link><guid>http://todaysclass.tumblr.com/post/3826565951</guid><pubDate>Sun, 13 Mar 2011 12:06:15 +0500</pubDate><category>software engineering</category><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 10 - DATABASE MANAGEMENT</title><description>&lt;p&gt;&lt;strong&gt;Associative Entities&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sometimes a relationship having it&amp;#8217;s own attributes is made into an entity. If a relationship is many to many, is ternary and the relationship entity can participate with other entities.&lt;/p&gt;
&lt;p&gt;Like a Student has a relationship of Certificate with a Subject. Many or One Student study Many or One subject to achieve certificate. Now certificate is a relationship as long as we don&amp;#8217;t consider it&amp;#8217;s attributes. But lets say we combine it&amp;#8217;s attributes such as completion date, certificate number and certificate value (position) we can create a certificate entity. Then this certificate entity will act as a bridge between the student and the course entity.&lt;/p&gt;
&lt;p&gt;This relationship is shown below&lt;img src="http://media.tumblr.com/tumblr_lhzbuiw9e01qd98he.png"/&gt;&lt;/p&gt;
&lt;p&gt;The above diagram shows the certificate as a relationship between an employee and a course. While the diagram below shows how we can convert the certificate as a separate entity.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lhzbvoZ96T1qd98he.png"/&gt;&lt;/p&gt;
&lt;p&gt;Now the above association can be read as one employee can get zero or many certificates. And on the right side one course may giveout zero or many certificates. Combined we can read it as one employee might get more than one certificate for more than one subjects and more than one people might get certificates for a single subject.&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3823782208</link><guid>http://todaysclass.tumblr.com/post/3823782208</guid><pubDate>Sun, 13 Mar 2011 09:48:56 +0500</pubDate><category>database</category><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 6 - DATACOMMUNICATION AND NETWORKING</title><description>&lt;p&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;The OSI MODEL (CONT.)&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;SESSION LAYER&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;The session layer is responsible for Dialog Control and synchronization.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Dialog Control: &lt;/strong&gt;This layer is the layer which allows the two systems to either enter Half-Duplex or Full-Duplex Communication.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Synchronization: &lt;/strong&gt;When streaming data the session layer adds special stop points called Checkpoints. For example if sending a 2000 pages book it will put a check point after every 100-pages, now when the first 100 pages will be sent and received an acknowledgment will sent and then it start sending the next 100 pages and so on until the whole book has been sent. This way we ensure there is no problem occurring while sending any data.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;PRESENTATION LAYER&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;This layer deals with the semantics and syntax of data.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Its responsibilities include:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Translation:&lt;/strong&gt; When the data has to be sent to someone, it is required to first change it to bits. Different computers use different encoding schemes, by right clicking in word, or notepad you can find out a lot of encoding schemes. So in order for the data converted in bit form to be understood on the receiving end properly it required that converted in the encoding scheme being used by the receiver. Presentation layer translates the data into a common format at the sender end and the presentation layer at the receiver end translates the common format in the receiver encoding format.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Encryption: &lt;/strong&gt;At the sender side the data is encrypted, this is a process in which the data is converted to a special locked format, this helps protect the information so that it does not get hacked. On the receiver’s side the information is decrypted, meaning brought back to its original form.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Compression: &lt;/strong&gt;Data bits are compressed to transmit more data in a smaller package. It also makes the transmission faster. On the sender side the data is compressed and on the receiver end it uncompressed.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;APPLICATION LAYER&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;This layer provides the users with a network. A user interface is provided for services such as Email, Remote file access, transfer, shared database management etc.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;TCP/IP PROTOCOL SUITE&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;The TCP/IP protocol when compared to the OSI Model has 4 layers. The first 2 layers of the OSI model, the Physical and the Data-link layer are combined as the host to network layer. The Network layer from the OSI now contains IP, ICMP, IGMP, ARP and RARP. The transport layer still does it’s work and the last three layers i.e. session layer, presentation layer and the application layer are again combined to form the last,4&amp;#160;&lt;sup&gt;th&lt;/sup&gt; layer of the TCP/IP protocol suite.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;1. Physical and Data-Link Layer:&lt;/strong&gt; The data is converted to bits and sent to the nodes as in the OSI model.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;2. Network Layer: &lt;/strong&gt;At the network layer TCP/IP supports IP, ARP, RARP, ICMP and IGMP protocols. These protocols convert and transmit different kinds of address.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;IP: &lt;/strong&gt;It is the faster, unreliable delivery service. It does not provide any kind of error checking, the data that has been sent cannot be tracked either. IP sends data in the form of datagrams (data packets). The data may travel from multiple routes and might arrive out of order or duplicated at the receiving side. There is no facility of reordering the data once it has been sent.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;ARP:&lt;/strong&gt; Address resolution protocol (ARP) finds out the physical address of a device connected on a network and then connects the logical address with physical address. The Physical address of a device is imprinted on the network interface card or NIC.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;RARP:&lt;/strong&gt; Reverse address resolution protocol allows a computer’s to discover a physical address when a computer is booted without a disk. Or when the physical address is known it helps identify the internet address&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt; ICMP: &lt;/strong&gt;Internet control message protocol is a mechanism used by hosts and gateways to send notification of datagram problems back to the sender&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;IGMP:&lt;/strong&gt;Internet group message protocol is used to provide transmission of a me&lt;strong&gt;s&lt;/strong&gt;sage to a group or multiple users.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;3.Transport Layer:&lt;/strong&gt; This layer works in the same manner as the one in OSI model. It records the port address and sends a message to a particular process on the receivers side&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Transport layer uses UDP, TCP and SCTP,  protocols for process to process delivery.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;UDP:&lt;/strong&gt; The user diagram protocol adds port addresses, checksum(&lt;em&gt;a fixed size of data code used to match the sent and received data to identify and eradicate any transmission errors&lt;/em&gt;) error control and length information to the data from the upper layer.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;TCP&lt;/strong&gt;: Data is sent in the form of segments from the sender using the transmission control protocol. Each segment has its number called sequence number for purpose of knowing it&amp;#8217;s order at the receiving side. When the data is received by the user it is then reordered using the sequence number.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;SCTP: &lt;/strong&gt;The stream control protocol provides support for newer applications such as VOIP. It combines features from UDP and TCP. &lt;strong&gt;It is explained in chapter 23 in detail :P&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;4. Session, Presentation and Application Layer: &lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;This layer combines the functions of the session, presentation and application layer into one. It provides the user with synchronization and dialog control. The next step is to translate, encrypt and compress the data and then translate, decrypt and decompress on the receivers side. At the end it provides the user with the ability to form an internet connection. (To understand it more properly read about the session, presentation and application layer in the start)&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;ADDRESSING&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Four levels of addresses are used when connecting over the internet.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;br/&gt;1. Physical Address (&lt;em&gt;related to physical and data link layer&lt;/em&gt;): &lt;/strong&gt;Physical address also known as link address is the address of a node in a LAN or WAN. It can be found printed on the network interface card or NIC. Ethernet card uses 6-byte or 48 bit physical address called MAC. It is comprised of hexadecimal values&lt;/p&gt;
&lt;p class="MsoNormal"&gt;It looks like this&amp;#160;: &lt;em&gt;&lt;strong&gt;07:01:02:01:2C:4B&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;2. IP Address (&lt;em&gt;related to network layer&lt;/em&gt;): &lt;/strong&gt;An IP address is required to achieve virtual networking (not dependent on the physical connections) like over the internet. It helps identify a computer on the internet regardless of what it&amp;#8217;s physical address is and changes every time a new connection is established. An IP address can be of 32bits(IPv4) with four pairs of 3 numbers e.g. &lt;em&gt;&lt;strong&gt;255.255.255.255&lt;/strong&gt;&lt;/em&gt; and a new system being implemented makes an IP address of 64 bits(IPv6) it comprises of hexadecimal values e.g.&lt;em&gt;&lt;strong&gt;&lt;code&gt; 2001:0db8:85a3:0000:0000:8a2e:0370:7334&lt;/code&gt;. &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;3. Port Address (&lt;em&gt;related to transport layer&lt;/em&gt;): &lt;/strong&gt;The purpose of Physical and IP address is solely to send data over the network and the internet respectively. But what needs to be done with the data after it arrives at the destination is a question we answer with a port address. The Port address decides what the data is and how it should be brought up on the computer. Now a days computers and operating systems support multiple processing. You may be working on ten programs all at once (10 running at the same time). Now how does the computer decide which process to show the received data in? It uses a port address. A port address helps the computer identify which specific process is the message for. Like a port address for Microsoft Outlook express will be different from that of Yahoo Messenger. So if a message has the port address of yahoo messenger it will show the message in yahoo messenger and not in Outlook Express. Another example for the port address is that it helps identify on similar type of process from the other as well. Like Yahoo and Windows live Messenger are both same kinds of programs and their purpose is to IM. But it never happens that a user sends a message in yahoo messenger and it arrives in a window of Windows Live Messenger.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;4. Specific Address (&lt;em&gt;related to application layer&lt;/em&gt;(session, presentation, application)): &lt;/strong&gt;Some applications have user friendly addresses, meaning the addresses users can understand and remember easily. Like an email address or a URL. Email address helps find a person over the internet and a URL finds a document on the internet. These addresses are searched over the internet and then the network changes them into the receiver&amp;#8217;s logical address.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3823685352</link><guid>http://todaysclass.tumblr.com/post/3823685352</guid><pubDate>Sun, 13 Mar 2011 09:30:04 +0500</pubDate><category>data communication</category><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 10 - OPERATING SYSTEM</title><description>&lt;p&gt;&lt;strong&gt;CHAPTER # 4 - Threads&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;THREAD:&lt;/strong&gt;A thread can be simply defined as a  lightweight process, that has shared code/text, data and file segment of  a process. Multiple threads save memory and other system resources by  using the code, data and file segment of the main process and they also  speed up the tasks that a process needs to perform. It can somewhat  allow the users to achieve multitasking.&lt;/p&gt;
&lt;p&gt;A thread has a thread id which helps identify it from the other  threads running alongside a process, it has a program counter, a  register set and a stack.&lt;/p&gt;
&lt;p&gt;The Concept of thread or the &lt;strong&gt;motivation&lt;/strong&gt; for threads  was the conventional parent child process system. Every time a service  was required from a child the parent needed to call a child, and then  the child would create a new data, file and text segment in the memory  along with its own registers and stack. This required more system  resources and system memory. Also when a child was running the parent  had to go in the waiting state and after the child finished it&amp;#8217;s task  the control was returned to the parent and the work was resumed from  where it was left. So you see the problem was obvious not only did the  users have to pay for more system resource but they also had to wait for  a long time. Lets see this problem with a server example. Lets say we  have a Online server, the server currently has 1000 users online. It  needs to provide the services to all of those users. In a conventional  process system when the server will give control to one user the  remaining 999 users will have to wait for the 1st one to complete it&amp;#8217;s  job. So you can see it will be a very hard job for the 1000th users, as  he might have to wait for days or even months considering every user  uses the server for 12 or more hours.&lt;/p&gt;
&lt;p&gt;So to eliminate the expensiveness and the time waiting thread system  was introduced. With multiple threads the process could share the code,  data and file segment of the parent and this enabled them to work  alongside the parent. Like on a webpage the work is shared among the  threads. One thread works to download the code, the other downloads the  text and one thread starts to download images on the webpage all at the  same time. This enables the webpage to appear faster. But if we were  using a single process, it will call a child process to load the text,  then images and so on which will make the loading slow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BENEFITS OF USING THREADED PROCESSES&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1&amp;gt; RESPONSIVENESS: &lt;/strong&gt;Threads  make the computer response faster than a single threaded process. When  they complete the given tasks in a short time we are free to perform any  other task we require on the computer.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2&amp;gt; RESOURCE SHARING: &lt;/strong&gt;Threads make  use of the already present code, data and file segment of the parent  which saves alot of system memory and also makes them use less system  resources as compared to single-threaded process&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3&amp;gt; ECONOMY: &lt;/strong&gt;When less memory is required you won&amp;#8217;t require to buy extra, so it also saves a lot of money.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4&amp;gt; SCALABILITY (Utilization of multiprocessor architectures):&lt;/strong&gt; On multiprocessor system, the benefits of multithreading greatly  increases. Multithreading allows the cpu&amp;#8217;s on multiple processors to be  utilized all at the same time which enables them to run parallel to one  another. While a single-threaded process does not make the use of the  other processors and CPUs so they keep on sitting idle.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MULTICORE ARCHITECTURE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now  a days new computers come with multicore processors. On the commercial  scale about 12-16 cores are present on a single chip while on a business  scale upto about 336 cores can be found.&lt;/p&gt;
&lt;p&gt;Using the multicore architecture has its benefits which can be achieved by keeping the following things in mind:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1&amp;gt;&lt;/strong&gt; Dividing Activities: Microsoft Office Word works on multiple tasks all  at once. It is checking for spelling and grammatical errors, it is  counting the words, it is formatting the text and it is making it  possible for the user to type all at once. Using a multicore processors  the tasks are shared on different CPU on multiprocessors so all the work  gets done parallel to one another.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2&amp;gt;&lt;/strong&gt; Balance: The activities that are being given to the multipleprocessors  are are divided in such a way that every CPU gets equal share of work.  It is the programmers duty to keep in check that every task gets an  equal share of the &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3&amp;gt;&lt;/strong&gt; Data Splitting: Data provided on request is splitted among the cores.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4&amp;gt;&lt;/strong&gt; Data Dependency: If one task is dependent on the result of another task  it is the programmer&amp;#8217;s duty to make sure that that task waits to get  the result from the task it is dependent on. Other wise it might end up  showing a wrong value.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5&amp;gt;&lt;/strong&gt; Testing and  Debugging: Error checking can become a problem in multiprocessors as all  the tasks are going on all at once and to find out where the problem is  occurring can be time consuming and brain tiring. So the code and  information that is being sent to the processors should be properly  implemented so that testing and debugging should become easy.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;THREAD TYPES&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Support for threads can be provided on two levels one is that on the user level for &lt;strong&gt;user threads &lt;/strong&gt;and the other on the kernel level by &lt;strong&gt;kernel threads. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;User threads&lt;/strong&gt; are created, scheduled, destroyed at user-level using thread libraries  while they work above the kernel, there management does not involve  kernel support.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kernel threads&lt;/strong&gt; on the other hand are created, scheduled, destroyed on kernel-level that is by the operating system itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thread Library(a short definition):&lt;/strong&gt; A thread library provides the user with an API for creating and managing threads.&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3822621643</link><guid>http://todaysclass.tumblr.com/post/3822621643</guid><pubDate>Sun, 13 Mar 2011 08:40:08 +0500</pubDate><category>operating system</category><category>os</category><category>operating</category><category>system</category><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 7, 8, 9 (Combined Concepts) - DATABASE MANAGEMENT </title><description>&lt;p&gt;&lt;strong&gt;Modelling Data in Organization&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Business Rules&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A Business rule is a statement that defines the kind and direction of a specific business. &lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;Business Rules tell what is to be done in a business environment, how things happen etc.&lt;/p&gt;
&lt;p&gt;Every organization has their set of rules and they are implemented in different manners.&lt;/p&gt;
&lt;p&gt;Following are &lt;strong&gt;Good Business Rules&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Declarative: &lt;/strong&gt;The rule made by some organization should be a statement that tells what must be done and how.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Precise:&lt;/strong&gt; There should be no confusion in explaining a law, the rule should be exact.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Atomic: &lt;/strong&gt;The rules should not be modified in any form to cause confusion. It should be read and forwarded the same to the others.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Consistent: &lt;/strong&gt;It should not be mixed up with other rules, by adding something from another rule. Each rule should be individual in itself.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Expressible: &lt;/strong&gt;Simple and easy to understand language should be used so that the rule is not misinterpreted&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6. Distinct: &lt;/strong&gt;Business rules can not mix up with other individual rules but they can refer to the other rules if a reference is required.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7. Business-Oriented: &lt;/strong&gt;A business rule is a rule that is created for that specific business and no one from outside the business organization should modify or change it in any form. In other words a business rule is the property of the business.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;THE E-R MODEL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;E-R stands for Entity and Relation.&lt;/p&gt;
&lt;p&gt;Entity is something for which someone(an organization etc) requires to collect information and data. Entities are of great importance to the organization as they help them direction their business.&lt;/p&gt;
&lt;p&gt;Relationship between these entities is shown by a diagrammatic representation, this diagram is known as an &lt;strong&gt;E-R Diagram.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In a school environment students and subjects are two entities and they create a relationship with one another.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;!-- more --&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CARDINALITY&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The type of relationship that they create is known as the &lt;strong&gt;Cardinality.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are 4 types of cardinalities possibles&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Mandatory One&amp;#160;: &lt;/strong&gt;This kind of relationship means that an entity can have only one(must have one) relationship with the other entity&lt;strong&gt;.&lt;/strong&gt; Like lets take an institute and an employee. An institute can only have one and only one Head or Incharge so we can say that an institute has a mandatory one relationship with the employee&lt;strong&gt;.&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Mandatory Many: &lt;/strong&gt;This kind of relationship means that an entity can have either only one(must have one) relationship with the other entity or more than one&lt;strong&gt;.&lt;/strong&gt; Like lets take an institute and an employee again. An institute can only have either one or more than one employees working in it. Or for a project there can be either one developer working on it or more, but for that project to actually see the light of the day it is necessary that there is at least one developer working, so this concludes that a project has a mandatory many relationship with the developer entity&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Optional One: &lt;/strong&gt;As the name suggests there either needs to be only one relationship or none at all. For this let&amp;#8217;s consider the relationship between a student and a university library. Now the student might have one and only one Library membership Id or he might not get any Library Membership ID at all.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Optional Many: &lt;/strong&gt;There needs to be either no relationship with an entity or there are more than one. An Employee can either have no past experience and skills or more than one experiences and skills.&lt;/p&gt;
&lt;p&gt;Now that we are clear with the types of cardinality we have a new definition&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cardinality Constraints: &lt;/strong&gt;There are two types of cardinality constraints&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Minimum Cardinality&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;For Mandatory many or one there needs to be atleast 1 relation at every cost so their minimum cardinality value is 1.&lt;/p&gt;
&lt;p&gt;While for Optional Many or One there needs to be either no or one or more than one so their minimum cardinality value is 0&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Maximum Cardinality: &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For Mandatory One the Max C. is 1&lt;/p&gt;
&lt;p&gt;For Mandatory Many the Max C. is more than one&lt;/p&gt;
&lt;p&gt;For Optional One the Max C. is 1&lt;/p&gt;
&lt;p&gt;For Optional Many the Max C. is more than 0&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attributes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An Attribute is a property or characteristic of some entity.&lt;/p&gt;
&lt;p&gt;The Attributes are divided into 5 VS categories.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Required VS Optional Attributes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Attributes that are necessary to be provided are known as required attributes while those attributes that are not necessary but can be helpful in some way possible are known as optional attributes.&lt;/p&gt;
&lt;p&gt;A students name, father name, ID etc are Required attributes while Attributes such as his email, or phone number are Optional attributes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Simple VS Composite Attributes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Attributes that can not be broken down into sub attributes are known as simple attributes while attributes that can be broken down into sub attributes are called composite attributes.&lt;/p&gt;
&lt;p&gt;An ID number is a simple attribute as it can not be broken down into sub attributes in any form, it has to be used as it is. While a name is composite attribute as it can be divided into First Name, Middle Name, Last Name, Family Name etc.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Single-Valued VS Multi-Valued Attributes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Those attributes that can only have one instance at a time are known as single-valued attributes while those attributes that might have more than one values are known as multi-valued attributes.&lt;/p&gt;
&lt;p&gt;An ID is a single-valued attribute because you can only have one ID at a time. While an employee might have more than one skills, so skills are multivalued attributes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Stored VS Derived Attributes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Those attributes that are stored and kept as a record are stored attributes while those that are derived from the stored attributes are known as derived attributes.&lt;/p&gt;
&lt;p&gt;A person&amp;#8217;s joining date in a certain company is a stored attribute. When his job time will be calculated that will be calculated by subtracting the current date into the date recorded as the joining date. So that will be a derived attribute.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Identifier Attribute&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This attribute is what makes a certain entity special and makes it stand out from the others. Like For a student entity, student id will be the attribute that will help identify it from the others.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Characteristics of Identifiers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;gt; They will not change their value&lt;/p&gt;
&lt;p&gt;&amp;gt; They can never be NULL&lt;/p&gt;
&lt;p&gt;&amp;gt; No intelligent Identifiers Should be used (Phone Numbers, Address etc that might change in time e.g the semester number is not added with student id because it&amp;#8217;s change in every semester will cause confusion, but it is intelligent because we will keep on finding out the semester of the student as well)&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Degree Of Relationships&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Degree of relationship is defined as the number of entities involved in creating a relationship.&lt;/p&gt;
&lt;p&gt;There are three types of degrees of relationship.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Unary Relationship: &lt;/strong&gt;A single entity building relation with an instance of itself is known as unary relationship. A person can be married to another person, this relationship shows us that an entity Person is creating a relationship with itself that is entity Person.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Binary Relationship: &lt;/strong&gt;A relationship in which two entities form a relationship with the each other. Student and Subject are two entities forming a relationship with each other.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Ternary Relationship: &lt;/strong&gt;A simultaneous relationship among the instances of three entity types. For example A student needs a teacher to teach him a subject here we have three entities related to each other, A student, A teacher and A subject. A student needs to teacher to understand a subject. A teacher needs to student to teach the subject, a teacher knows a subject. A student needs to know a subject. So you can see how these three entities are making a relationship with each other at a same time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Multiple Relationships&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sometimes an organization might need to form more than one relationships between entities. These relationships are known as multiple relationships.&lt;/p&gt;
&lt;p&gt;Lets look at an example&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lhqzedMHtJ1qd98he.png"/&gt;&lt;/p&gt;
&lt;p&gt;An employee in an organization might become the supervisor or head of the other employees which will give him the power to supervise optional many employees and mandatory one employee is the supervisor or head. At the same time. Mandatory many employees work in a department and a department has mandatory one employees. And a mandatort one  employee is the head of the department and an employee might be the head of the department or not at all&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3723959749</link><guid>http://todaysclass.tumblr.com/post/3723959749</guid><pubDate>Tue, 08 Mar 2011 21:39:00 +0500</pubDate><category>database</category><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 5 - DATA COMMUNICATION AND NETWORKING</title><description>&lt;p&gt;&lt;strong&gt;The OSI Model (Details)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Physical Link&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It transmits the message or data in the form of bits. The data is converted to bits and then transferred to a node near by. This kind of communication usually occurs between a router and a computer. The computer sends the message in the form of bits to the router.&lt;/p&gt;
&lt;p&gt;Now the data sent in the form of bits is either a 0 (a 0 volt signal) or a 1 (a 5 volt signal). An extra bit known as a Trailer or Parity Bit is attached to data so that chances of error can be eliminated.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Hop:&lt;/strong&gt; a node in a network  is also known as a Hop&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Data Link Layer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The purpose of data link layer is to transfer data to a computer or physical node in the same network.&lt;/p&gt;
&lt;p&gt;This is the layer that after receiving the data from the Data Link layer starts to divide the whole data into small fragments or pieces called Frames, this process is called framing. Framing the data helps the router identify which part is the actual message, which part has the addresses of the sender and the receiver and which part is the trailer&lt;/p&gt;
&lt;p&gt;It looks something like this&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lhpxhv3ZUX1qd98he.png"/&gt;&lt;/p&gt;

&lt;p&gt;The sender and the receiver addresses are known as&lt;strong&gt; MAC address&lt;/strong&gt;. Which stands for Media Access Control. It is a 48 Bit address which might look something like&amp;#160;: &lt;strong&gt;&amp;#8220;60-EB-69-43-DB-83&amp;#8221;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Again in this layer, the presence of trailer means that the data being transmitted is checked for errors.&lt;/p&gt;
&lt;p&gt;Now because the purpose of the data layer is to transfer the data in a physical network it also makes sure that the speed of data receiving and sending is the same. If lets say one computer has a modem attached to it which has the power to allow 56&amp;#160;KB at a time and the other computer has a 128&amp;#160;KB modem attached what the data link layer node will do is that it will send data at the speed of the receiver&amp;#8217;s power that is close to 56&amp;#160;KB. it will make sure that no data gets lost during transmission.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Network Layer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now the purpose of the Network layer is to send data from one network to another. This network can be identified by a new kind of address known as the &lt;strong&gt;IP Address.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If a computer in one network wants to send data to a computer on another non-physical network (not close to it or connected to it by the use of cables), it will add the IP address of that computer along with the data. The new data frames will look something like below.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lhpy5bwWaT1qd98he.png"/&gt;&lt;/p&gt;
&lt;p&gt;Now what happens in this network is that first the message is converted into the form of bits (&lt;strong&gt;Physical Layer&lt;/strong&gt;), then it is framed (&lt;strong&gt;Data Link Layer&lt;/strong&gt;)&lt;strong&gt;, &lt;/strong&gt;then the data is sent to the first physical node which checks the address, it finds out that there are IP addresses included so it changes the MAC addresses replacing the source with it&amp;#8217;s own MAC address and making a node close to it as Destination MAC. IP addresses will not change in this process. Then if the new destination MAC node has the computer with the destination IP address in it&amp;#8217;s network it will send the message to that computer. if it doesn&amp;#8217;t have that computer in it&amp;#8217;s network it will again change the MAC addresses as explained before. This process will continue until the IP address is found.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Transport Layer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The purpose of the transport layer is to transmit data from one process to another process by passing the data through physical, data-link and network layers, using a &lt;strong&gt;port address(address of a process)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Lets consider that i want to send a Chat IM to  someone using a yahoo messenger. Yahoo messenger is a process. Now when i write and press enter what will happen is that my IM(message) will be converted to bits and sent to my router(node - physical layer). Then that router will frame the data and put all the addresses with the message(data-link layer) then the message will pass through nodes and arrive at the destination IP(network-layer) now on the computer of the person i am chatting with the the computer will check what port address is the message being transmitted to, in this case it will find out that the message is intended for yahoo messenger. So a window will pop up, or the message will appear in an already open yahoo messenger window on the person&amp;#8217;s computer who i am chatting with.&lt;/p&gt;
&lt;p&gt;Using port addresses the computer on the receiving side understands which process to run and how. The port addresses are also required when there are multiple processes running on a computer.&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3715122477</link><guid>http://todaysclass.tumblr.com/post/3715122477</guid><pubDate>Tue, 08 Mar 2011 08:22:52 +0500</pubDate><category>data communication</category><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 3 - DATA COMMUNICATION AND NETWORKING</title><description>&lt;p&gt;&lt;em&gt;Note: Ask Away Questions at the end of this Post-If Any&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MULTIPLEXING&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When multiple users are using the network using a single link it is known as multiplexing. When multiplexing we feel the need to decide how the users can communicate over the network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;There are two techniques used&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TDM or&lt;/strong&gt; Time Division Multiplexing: This is multiplexing in which we give the users  a specific time period to use the network. When the given time is over the next user is given the same time period to spend and so on. This way every user gets to use the full bandwidth of the network at any one time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FDM or Frequency Division Multiplexing: &lt;/strong&gt;This is the type of the multiplexing in which we divide the frequency of the the network (The Bandwidth) among all the users. This way no user has to wait for a long time to get the access to the network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What Goes Wrong In the Network &lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1&amp;gt; The Bits might get mixed when the time slot is taken away from a user with the communication of the second user on the slot.&lt;/p&gt;
&lt;p&gt;2&amp;gt; The users might receive the messages late due to low bandwidth speed&lt;/p&gt;
&lt;p&gt;3&amp;gt; If the link(the wire etc) gets broken, there might be no communication available for any network user&lt;/p&gt;
&lt;p&gt;4&amp;gt; If the node (the router etc) gets broken this might also result in loss of communication among the users of the network&lt;/p&gt;
&lt;p&gt;5&amp;gt; The messages might get late in arriving the reciever.&lt;/p&gt;
&lt;p&gt;6&amp;gt; There are chances that some hacker might break in and disturb the conversation.&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3684333930</link><guid>http://todaysclass.tumblr.com/post/3684333930</guid><pubDate>Mon, 07 Mar 2011 00:13:02 +0500</pubDate><category>data communication</category><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 4 - DATA COMMUNICATION AND NETWORKING</title><description>&lt;p&gt;&lt;strong&gt;Hierarchical Organization Of The Internet&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ISP (Internet Service Provider):&lt;/strong&gt; Someone who provides us with the ability to connect to the internet. The quality of the service of the internet (e.g. the speed of the connection etc), Data transfer rate etc are all provided to us by the ISP.&lt;/p&gt;
&lt;p&gt;The ISPs are further divided into International ISP, National ISP and Local ISP depending upon their duty.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How the ISPs work to provide us the internet channel:&lt;/strong&gt; When we want to communicate, lets say with a computer in the US from Pakistan. We will send our request to the local ISP (the ISP for one city) who will forward it to the National ISP(The ISP for multiple cities or a country) The National ISP will forward our request to the International ISP who works as a connection bridge between two countries and it will connect Pakistan&amp;#8217;s National ISP to the American National ISP and this way our message will be able to reach it&amp;#8217;s designated destination.&lt;/p&gt;
&lt;p&gt;The Local ISP&amp;#8217;s are capable of handling only a little bit amount of data and they have limited connectivity. While the international ISP&amp;#8217;s are more powerful and they can handle very big amounts of data at a certain time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NAP (Network Access Point)&lt;/strong&gt;: The internet provided at a country level via the National ISP&amp;#8217;s is maintained by a backbone of networks, who operate at a high speeds (up to 600 MBPS), these special networks are responsible for exchange of data among local ISPs and they are called Network access points.&lt;/p&gt;
&lt;p&gt;In Todays world NAP are replaced by IXP. There were only 4 NAPs and they were made when the internet age began, only in America.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PROTOCOL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In common world a Protocol is a set of rules used to communicate messages among two or more people.&lt;/p&gt;
&lt;p&gt;In a network it is a rule that we use to send messages from one place to the other in a networked environment. Without a protocol in a network the communication between two devices will be as useless as it is among two people who speak different languages. &lt;/p&gt;
&lt;p&gt;A protocol decides what to communicate, how to communicate, when to communicate and such.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;STANDARDS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Standards are like values, they are required to make sure that the product manufacturers make things that are good and that can provide the users with the possibility to use them according to the needs in the today&amp;#8217;s world.&lt;/p&gt;
&lt;p&gt;By implementing standards we make sure that the manufacturers are making network devices that can help provide us with the power to connect with anyone, anywhere at a national as well on an international level.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CHAPTER#2&lt;/strong&gt; NETWORK MODELS&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;LAYERED TASKS&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We use layers in our daily life on daily bases. To understand how we use layers let us consider an example of a letter.&lt;/p&gt;
&lt;p&gt;Lets consider two people PA and PB.&lt;/p&gt;
&lt;p&gt;L1. PA writes a letter to PB&lt;/p&gt;
&lt;p&gt;   L2. PA puts the letter to the Postbox&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;L3. A PA mailman takes the letter to the PA post office&lt;/p&gt;
&lt;p&gt;L3. The PA Post Office send it to PB&amp;#8217;s location Post Office&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;   L2. The PB Post Office gives the letter to the PB postman&lt;/p&gt;
&lt;p&gt;L1. The PB postman delivers the letter to PB.&lt;/p&gt;
&lt;p&gt;so in the above steps you see that we have used layers. Starting from a very basic layer we have gone to the advance one.&lt;/p&gt;
&lt;p&gt;i.e.&lt;/p&gt;
&lt;p&gt;Layer1: Higher Layer (Because this is where the communication starts and ends it is called &lt;strong&gt;higher&lt;/strong&gt;)&lt;/p&gt;
&lt;p&gt;   Layer2: Middle Layer (because this layer works as a bridge to send and receive from the higher layer, it is called &lt;strong&gt;middle&lt;/strong&gt;)&lt;/p&gt;
&lt;p&gt;      Layer3: Lower Layer (because this layer works as an entrance and exit from one, it is called &lt;strong&gt;lower&lt;/strong&gt;)&lt;/p&gt;
&lt;p&gt;In a network the same thing takes place. The communication is done using layers.&lt;/p&gt;
&lt;p&gt;When networking started &lt;strong&gt;The OSI Model &lt;/strong&gt;was proposed as the layered task model. But &lt;strong&gt;TCP/IP&lt;/strong&gt; took it&amp;#8217;s place.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;THE OSI MODEL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The OSI model was designed with the purpose of ease in mind. It was supposed to make thing less complex in a network environment.&lt;/p&gt;
&lt;p&gt;There were 7 layers in the OSI&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Physical&lt;/strong&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Data link&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Network&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4.Transport&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Session&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6. Presentation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7. Application&lt;/strong&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3684299774</link><guid>http://todaysclass.tumblr.com/post/3684299774</guid><pubDate>Mon, 07 Mar 2011 00:13:00 +0500</pubDate><category>data communication</category><dc:creator>imibrahim</dc:creator></item><item><title>**Technical Difficulties**</title><description>&lt;p&gt;&lt;strong&gt;Due to technical difficulties with my computer there will be no lecture posting for a few days. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#8212;Until things are back on track &lt;/strong&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3521997336</link><guid>http://todaysclass.tumblr.com/post/3521997336</guid><pubDate>Sat, 26 Feb 2011 18:07:00 +0500</pubDate><dc:creator>imibrahim</dc:creator></item><item><title>Lecture # 5 - DATABASE MANAGEMENT </title><description>&lt;p&gt;&lt;em&gt;Note: If you have problem understanding anything ask questions in the comment boxes below.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;E&lt;/strong&gt;NTERPRISE DATA MODEL DEVELOPMENT&lt;/p&gt;
&lt;p&gt;When developing an Enterprise Data Model, we consider three major components.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1&amp;gt; A Functional Break-Down/Decomposition&amp;#160;: &lt;/strong&gt;Here the functions of the company are broken down. Meaning the functions of the company are discussed in detail. Every detail is enlisted for those functions. Breaking down the functions this way helps to remove any chances of error or redundancy when implementing the actual enterprise model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2&amp;gt; Entity-Relation Diagram:&lt;/strong&gt; This is a graphical representation of the functions or entities of an organization. This diagram represents how one function or entity is related to the other and some text is written along with the diagram to help understand the diagram better.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3&amp;gt; Planning Matrix: &lt;/strong&gt;There are sometimes the relationships between the data entity and the information system, such entities are represented in a special kind of tabular or matrix representation called the Planning Matrix. In This matrix we give columns to one entity and rows to the other. Where ever a relationship exists we mark that place with a symbol (the one used in the book is a cross), while the one&amp;#8217;s that don&amp;#8217;t have a relation are left empty.&lt;/p&gt;
&lt;p&gt;For example: Order fulfillment and Customer are related to one another so in the following matrix you can see their relationship&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lh5kmnJB071qd98he.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;!-- more --&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SYSTEM DEVELOPMENT LIFE CYCLE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When a team of developers, may they be database designers; programmers etc, follow a special cycle that helps them develop and complete their project.&lt;/p&gt;
&lt;p&gt;There are mainly 5 steps (7 with sub steps from planning and design phase) which can overlap each other if a certain task has not been completed properly or needs some changes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The 5 Steps are&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Planning: &lt;/strong&gt;In this stage there are two are sub stages&lt;/p&gt;
&lt;p&gt;&amp;#187;&amp;#187;&amp;#187;&amp;gt;&lt;strong&gt;1&amp;gt;Indentification: &lt;/strong&gt;In this stage the developers review the whole enterprise. They find out what is the nature of the business they are dealing with and considering the nature they try to list things that they will be needing to carry on the project.&lt;/p&gt;
&lt;p&gt;&amp;#187;&amp;#187;&amp;#187;&amp;gt;&lt;strong&gt;2&amp;gt;Initiation of Project:&lt;/strong&gt; At this point the developers make diagrams and a brief documentation of the major functions. This documentation is very necessary as it helps to decide how to work on the project. These documented notes helps in meetings with the organization that is demanding the project.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Analysis: &lt;/strong&gt;In this stage the analyst/developer takes details from the end-user. They might perform meetings, calls or through any other form of communication, proper understanding of the project will be brought. In this step the developers gain more understanding of the project and if they had any misunderstanding regarding something in the Planning phase of the project those will be corrected.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Design:&lt;/strong&gt; Now the design phase is redivided into two sub phases&lt;/p&gt;
&lt;p&gt;&amp;#187;&amp;#187;&amp;#187;&amp;gt;&lt;strong&gt;1&amp;gt; Logical Design &amp;gt; &lt;/strong&gt;In this phase the collection of data so far is checked by bottom up technique (detailed data to most important data only). Those elements are found that are a requirement for the main design and those are separated that are just related at some point. Like if they are making a database for students. The data they have collected lets say was student name, father name, subject teachers, subjects, credit hours, fee submission, library fee etc. Now they will use the bottom up technique and describe that the main elements are Student, Subjects and Fee. They will separate them and the remaining info like father name will be placed for making a relation with the student later, the subject teacher will be given a separate small relation with the subject and the library fee will be given a relation with the fee and so on.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;#187;&amp;#187;&amp;#187;&amp;gt;&lt;strong&gt;2&amp;gt; Physical Design &amp;gt; &lt;/strong&gt;In this phase the main functions and entities are indexed, listed and related properly. Methods are found out that will best fit the database or project. How tables are to be formed, how data will be entered etc. All of these points are discussed and elaborated in this phase.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Implementation: &lt;/strong&gt;In this phase a designer or developer starts to code the project. He makes it, tests&lt;strong&gt; it, installs the programs to process on the database etc. In this phase the developer might use any programming language of choice, like the standard programming languages like COBOL, C++, or DB processing language SQL or web designing language like HTML etc. By the end of this stage the project is completed by the developer. But the user has still not checked and approved it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Maintenance:&lt;/strong&gt; In this phase the user tests the software, of there are some amends required they are made. And usually the maintenance process continues even after the users approval. You can consider the maintenance process as the update or bug fix to the project&lt;strong&gt;.&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;</description><link>http://todaysclass.tumblr.com/post/3495863860</link><guid>http://todaysclass.tumblr.com/post/3495863860</guid><pubDate>Fri, 25 Feb 2011 08:41:00 +0500</pubDate><dc:creator>imibrahim</dc:creator></item></channel></rss>
