Tuesday, 19 September 2017


UML DESIGN CLASS DIAGRAMS (DCD)

UML class diagrams show the classes of the system, their inter-relationships, and the operations and attributes of the classes. Class diagrams are typically used, although not all at once, to:
  • Explore domain concepts in the form of a domain model
  • Analyze requirements in the form of a conceptual/analysis model
  • Depict the detailed design of object-oriented or object-based software
A class model is comprised of one or more class diagrams and the supporting specifications that describe model elements including classes, relationships between classes, and interfaces. There are guidelines for:
  1. General issues
  2. Classes
  3. Interfaces
  4. Relationships
  5. Inheritance
  6. Aggregation and Composition



Because class diagrams are used for a variety of purposes - from understanding requirements to describing your detailed design - you will need to apply a different style in each circumstance. This section describes style guidelines pertaining to different types of class diagrams.
  1. Identify Responsibilities on Domain Class Diagrams.
  2. Indicate Visibility Only On Design Models.
  3. Indicate Language-Dependent Visibility With Property Strings.
  4. Indicate Types Only On Design Models.
  5. Indicate Types On Analysis Models Only When The Type is an Actual Requirement.
  6. Design Class Diagrams Should Reflect Language Naming Conventions. In Figure 1 you see that the design version of the Order class uses names that conform to common Java programming conventions such as placementDate and calculateTaxes().
  7. Model Association Classes On Analysis Diagrams. Figure 2 shows that association classes are depicted as class attached via a dashed line to an association - the association line, the class, and the dashed line are considered one symbol in the UML.
  8. Do Not Name Associations That Have Association Classes.
  9. Center The Dashed Line of an Association Class.
    1. Model Relationships Horizontally
    2. Collaboration Indicates Need for a Relationship
    3. Model a Dependency When The Relationship is Transitory
    4. Depict Similar Relationships Involving A Common Class As A Tree. In Figure 6 you see that both Delivery and Order have a dependency on OIDGenerator. Note how the two dependencies are drawn in combination in "tree configuration", instead of as two separate lines, to reduce clutter in the diagram.
    5. Always Indicate the Multiplicity
    6. Avoid a Multiplicity of "*"
    7. Replace Relationships By Indicating Attribute Types. In Figure 7 you see that Customer has a shippingAddress attribute of type Address - part of the scaffolding code to maintain the association between customer objects and address objects.
    8. Do Not Model Implied Relationships
    9. Do Not Model Every Single Dependency
    10. Center Names on Associations
    11. Write Concise Association Names In Active Voice
    12. Indicate Directionality To Clarify An Association Name
    13. Name Unidirectional Associations In The Same Direction
    14. Word Association Names Left-To-Right
    15. Indicate Role Names When Multiple Associations Between Two Classes Exist
    16. Indicate Role Names on Recursive Associations
    17. Make Associations Bi-Directional Only When Collaboration Occurs In Both Directions. The lives at association of Figure 9 is uni-directional.
    18. Redraw Inherited Associations Only When Something Changes
    19. Question Multiplicities Involving Minimums And Maximums

    7. Aggregation and Composition Guidelines

    Sometimes an object is made up of other objects. For example, an airplane is made up of a fuselage, wings, engines, landing gear, flaps, and so on.A delivery shipment contains one or more packages. A team consists of two or more employees. These are all examples of the concept of aggregation, which represents "is part of" relationships.An engine is part of a plane, a package is part of a shipment, and an employee is part of a team.Aggregation is a specialization of association, specifying a whole-part relationship between two objects.Composition is a stronger form of aggregation where the whole and parts have coincident lifetimes, and it is very common for the whole to manage the lifecycle of its parts. From a stylistic point of view, because aggregation and composition are both specializations of association the guidelines for associations apply.

    1. Apply the Sentence Rule for Aggregation
    2. You Should Be Interested In Both The Whole And The Part
    3. Depict the Whole to the Left of the Part
    4. Apply Composition to Aggregates of Physical Items
    5. Apply Composition When the Parts Share The Persistence Lifecycle With the Whole
    6. Don't Worry About Getting the Diamonds Right

Use Case Diagram Relationships Explained with Examples
When it comes to drawing use case diagrams one area many struggles with is showing various relationships in use case diagrams. In fact many tend to confuse <<extend>>, <<include>> and generalization. This article will look into various use case diagram relationships in detail and explain them using examples. To get a deeper understanding of use cases check out our use case diagram tutorial. If you want to draw them while learning you can use out tool to create use case diagrams.
There can be 5 relationship types in a use case diagram.
  • Association between actor and use case
  • Generalization of an actor
  • Extend between two use cases
  • Include between two use cases
  • Generalization of a use case
Let’s take a look at these relationships in detail.
Association Between Actor and Use Case
This one is straightforward and present in every use case diagram. Few things to note.
  • An actor must be associated with at least one use case.
  • An actor can be associated with multiple use cases.
  • Multiple actors can be associated with a single use case.
use case diagram relationships for actor and use case
Different ways association relationship appears in use case diagrams
Check out the use case diagram guidelines for other things to consider when adding an actor.
Generalization of an Actor
Generalization of an actor means that one actor can inherit the role of the other actor. The descendant inherits all the use cases of the ancestor. The descendant has one or more use cases that are specific to that role. Let’s expand the previous use case diagram to show the generalization of an actor.
actor generalization use case relationship
A generalized actor in an use case diagram
Extend Relationship Between Two Use Cases
Many people confuse the extend relationship in use cases. As the name implies it extends the base use case and adds more functionality to the system. Here are few things to consider when using the <<extend>> relationship.
  • The extending use case is dependent on the extended (base) use case. In the below diagram the “Calculate Bonus” use case doesn’t make much sense without the “Deposit Funds” use case.
  • The extending use case is usually optional and can be triggered conditionally. In the diagram, you can see that the extending use case is triggered only for deposits over 10,000 or when the age is over 55.
  • The extended (base) use case must be meaningful on its own. This means it should be independent and must not rely on the behavior of the extending use case.
Lets expand our current example to show the <<extend>> relationship.
use case diagram relationships with extend
Extend relationship in use case diagrams
Although extending use case is optional most of the time it is not a must. An extending use case can have non-optional behavior as well. This mostly happens when your modeling complex behaviors.
For example, in an accounting system, one use case might be “Add Account Ledger Entry”. This might have extending use cases “Add Tax Ledger Entry” and “Add Payment Ledger Entry”. These are not optional but depend on the account ledger entry. Also, they have their own specific behavior to be modeled as a separate use case.
Include Relationship Between Two Use Cases
Include relationship show that the behavior of the included use case is part of the including (base) use case. The main reason for this is to reuse the common actions across multiple use cases. In some situations, this is done to simplify complex behaviors. Few things to consider when using the <<include>> relationship.
  • The base use case is incomplete without the included use case.
  • The included use case is mandatory and not optional.
Lest expand our banking system use case diagram to show include relationships as well.
How to use include in use case diagrams
Includes is usually used to model common behavior
For some further reading regarding the difference between extend and include relationships in use case diagrams check this StackOverflow link.
Generalization of a Use Case
This is similar to the generalization of an actor. The behavior of the ancestor is inherited by the descendant. This is used when there is common behavior between two use cases and also specialized behavior specific to each use case.
For example, in the previous banking example, there might be a use case called “Pay Bills”. This can be generalized to “Pay by Credit Card”, “Pay by Bank Balance” etc.
I hope you found this article about use case diagram relationships helpful and useful. You can use our diagramming tool to easily create use case diagram online. As always if you have any questions don’t hesitate to ask them in the comments section.

Saturday, 17 September 2016

                                   NETWORK COMPONENTS

Computer network requires the following devices (some of them are optional):-
• Network Interface Card (NIC)
• Hub
• Switches
• Cables and connectors
• Router
• Modem

1. Network Interface Card

Network adapter is a device that enables a computer to talk with other computer/network. Using unique hardware addresses (MAC address)encoded on the card chip, the data-link protocol employs these addresses to discover other systems on the network so that it can transfer data to the right destination.

There are two types of network cardswired and wireless. The wired NIC uses cables and connectors as a medium to transfer data, whereas in the wireless card, the connection is made using antenna that employs radio wave technology. All modern laptop computers incorporated wireless NIC in addition to the wired adapter.

Network Card Speed

Network Interface card, one of the main computer network components, comes with different speeds, 10Mbps, 100Mbps, and 1000Mbps, so on. Recent standard network cards built with Gigabit (1000Mbps) connection speed. It also supports to connect slower speeds such as 10Mbps and 100Mbps. However, the speed of the card depends on your LAN speed. For example, if you have a switch that supports up to 100Mbps, your NIC will also transfer a data with this same speed even though your computer NIC has still the capability to transfer data at 1000Mbps (1Gbps). In modern computers, network adapter is integrated with a computer motherboard. However if you want advanced and fast Ethernet card, you may buy and install on your computer using the PCI slot found on the motherboard (desktop) and ExpressCard slots on laptop .

2. Hub
Hub is a device that splits a network connection into multiple computers. It is like a distribution center. When a computer request information from a network or a specific computer, it sends the request to the hub through a cable. The hub will receive the request and transmit it to the entire network. Each computer in the network should then figure out whether the broadcast data is for them or not.
Currently Hubs are becoming obsolete and replaced by more advanced communication devices such as Switchs and Routers.

3. Switch
Switch is a telecommunication device grouped as one of computer network components. Switch is like a Hub but built in with advanced features. It usesphysical device addresses in each incoming messages so that it can deliver the message to the right destination or port. Like Hub, switch don’t broadcast the received message to entire network, rather before sending it checks to which system or port should the message be sent. In other words switch connects the source and destination directly which increases the speed of the network. Both switch and hub have common features: Multiple RJ-45 ports, power supply and connection lights.

4. Cables and connectors

Cable is one way of transmission media which can transmit communication signals. The wired network typology uses special type of cable to connect computers on a network.

There are a number of solid transmission Media types, which are listed below. - Twisted pair wire
It is classified as Category 1, 2, 3, 4, 5, 5E, 6 and 7. Category 5E, 6 and 7 are high-speed cables that can transmit 1Gbps or more. -
Coaxial cable
Coaxial cable more resembles like TV installation cable. It is more expensive than twisted-pair cable but provide high data transmission speed.
Fiber-optic cable
It is a high-speed cable which transmits data using light beams through a glass bound fibers. Fiber-optic cable is high data transmission cable comparing to the other cable types. But the cost of fiber optics is very expensive which can only be purchased and installed on governmental level.

5. Router

When we talk about computer network components, the other device that used to connect a LAN with an internet connection is called Router. When you have two distinct networks (LANs) or want to share a single internet connection to multiple computers, we use a Router. In most cases, recent routers also include a switch which in other words can be used as a switch. You don’t need to buy both switch and router, particularly if you are installing small business and home networks.
There are two types of Router: wired and wireless. The choice depends on your physical office/home setting, speed and cost.

6. Modems
A modem enables you to connect your computer to the available internet connection over the existing telephone line. Like NIC, Modem is not integrated with a computer motherboard. It comes as separate part which can be installed on the PCI slots found on motherboard. A modem is not necessary for LAN, but required for internet connection such as dial-up and DSL. There are some types of modems, which differs in speed and transmission rate. Standard PC modem or Dial-up modems (56Kb data transmission speed), Cellular modem (used in a laptop that enables to connect while on the go), cable modem (500 times faster than standard modem) and DSL Modems are the most popular.

                                                  What are protocols?

When two humans converse, they may have to use the same language but they generally understand each other without having to adhere to rigid rules of grammar or formal language frameworks. Computers, on the other hand, have to have everything explicitly defined and structured. If computers wish to communicate with one another, they have to know in advance exactly how information is to be exchanged and precisely what the format will be. Therefore, standard methods of transmitting and processing various kinds of information are used and these methods are called "protocols". Protocols are established by international agreement and ensure that computers everywhere can talk to one another. There are a variety of protocols for different kinds of information and functions. This article will discuss some of the common protocols that the average PC user is likely to encounter.

TCP/IP

TCP (Transmission Control Protocol) and IP (Internet Protocol) are two different procedures that are often linked together. The linking of several protocols is common since the functions of different protocols can be complementary so that together they carry out some complete task. The combination of several protocols to carry out a particular task is often called a "stack" because it has layers of operations. In fact, the term "TCP/IP" is normally used to refer to a whole suite of protocols, each with different functions. This suite of protocols is what carries out the basic operations of the Web. TCP/IP is also used on many local area networks. The details of how the Web works are beyond the scope of this article but I will briefly describe some of the basics of this very important group of protocols. More details can be found in the references in the last section.
When information is sent over the Internet, it is generally broken up into smaller pieces or "packets". The use of packets facilitates speedy transmission since different parts of a message can be sent by different routes and then reassembled at the destination. It is also a safety measure to minimize the chances of losing information in the transmission process. TCP is the means for creating the packets, putting them back together in the correct order at the end, and checking to make sure that no packets got lost in transmission. If necessary, TCP will request that a packet be resent.
Internet Protocol (IP) is the method used to route information to the proper address. Every computer on the Internet has to have its own unique address known as the IP address. Every packet sent will contain an IP address showing where it is supposed to go. A packet may go through a number of computer routers before arriving at its final destination and IP controls the process of getting everything to the designated computer. Note that IP does not make physical connections between computers but relies on TCP for this function. IP is also used in conjunction with other protocols that create connections.

UDP and ICMP

Another member of the TCP/IP suite is User Datagram Protocol (UDP). (A datagram is almost the same as a packet except that sometimes a packet will contain more than one datagram.) This protocol is used together with IP when small amounts of information are involved. It is simpler than TCP and lacks the flow-control and error-recovery functions of TCP. Thus, it uses fewer system resources.
A different type of protocol is Internet Control Message Protocol (ICMP) . It defines a small number of messages used for diagnostic and management purposes. 

Mail Protocols POP3 and SMTP

Email requires its own set of protocols and there are a variety, both for sending and for receiving mail. The most common protocol for sending mail is Simple Mail Transfer Protocol (SMTP). When configuring email clients, an Internet address for an SMTP server must be entered. The most common protocol used by PCs for receiving mail is Post Office Protocol(POP). It is now in version 3 so it is called POP3. Email clients require an address for a POP3 server before they can read mail. The SMTP and POP3 servers may or may not be the same address. Both SMTP and POP3 use TCP for managing the transmission and delivery of mail across the Internet.
A more powerful protocol for reading mail is Interactive Mail Access Protocol (IMAP). This protocol allows for the reading of individual mailboxes at a single account and is more common in business environments. IMAP also uses TCP to manage the actual transmission of mail.

Hypertext Transfer Protocol

Web pages are constructed according to a standard method called Hypertext Markup Language (HTML). An HTML page is transmitted over the Web in a standard way and format known as Hypertext Transfer Protocol (HTTP). This protocol uses TCP/IP to manage the Web transmission.
A related protocol is "Hypertext Transfer Protocol over Secure Socket Layer" (HTTPS), first introduced by Netscape. It provides for the transmission in encrypted form to provide security for sensitive data. A Web page using this protocol will have https: at the front of its URL.

File Transfer Protocol

File Transfer Protocol (FTP) lives up to its name and provides a method for copying files over a network from one computer to another. More generally, it provides for some simple file management on the contents of a remote computer. It is an old protocol and is used less than it was before the World Wide Web came along. Today, Its primary use is uploading files to a Web site. It can also be used for downloading from the Web but, more often than not, downloading is done via HTTP. Sites that have a lot of downloading (software sites, for example) will often have an FTP server to handle the traffic. If FTP is involved, the URL will have ftp: at the front.


                                                           C++ AND JAVA
C++ supports OOP, while Java is OOP out of the box.
C++ supports multiple class inheritance, while Java only gives you a single class inheritance, but solves the multiplicity via interfaces.
C++ has got a pointers, and can directly manipulate/violate the memory addresses.
Java is a type-safe language, and you have no availability of pointers in Java. They're present in the background, but not on the scene.
Generics in Java, and templates in C++
Java does not include structures or unions.
Java does not support destructors but adds a finalize() method.
All the code in Java program is encapsulated within classes therefore Java does not have global variables or functions.
C++ requires explicit memory management, while Java includes automatic garbage collection.