Monday, 16 October 2017
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:
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.
- Identify
Responsibilities on Domain Class Diagrams.
- Indicate Visibility Only On
Design Models.
- Indicate Language-Dependent
Visibility With Property Strings.
- Indicate Types Only On Design
Models.
- Indicate
Types On Analysis Models Only When The Type is an Actual Requirement.
- 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().
- 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.
- Do Not Name Associations That
Have Association Classes.
- Center The Dashed Line of an Association Class.
- Model Relationships
Horizontally
- Collaboration Indicates Need
for a Relationship
- Model a Dependency When The
Relationship is Transitory
- 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.
- Always Indicate the
Multiplicity
- Avoid
a Multiplicity of "*"
- 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.
- Do Not Model Implied
Relationships
- Do Not Model Every Single
Dependency
- Center Names on Associations
- Write Concise Association Names
In Active Voice
- Indicate Directionality To
Clarify An Association Name
- Name Unidirectional Associations In The Same Direction
- Word Association Names
Left-To-Right
- Indicate Role Names When
Multiple Associations Between Two Classes Exist
- Indicate Role Names on
Recursive Associations
- Make Associations
Bi-Directional Only When Collaboration Occurs In Both Directions.
The lives at association of Figure 9 is
uni-directional.
- Redraw Inherited Associations Only When Something
Changes
- 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.
- Apply the Sentence Rule for
Aggregation
- You Should Be Interested In
Both The Whole And The Part
- Depict the Whole to the Left of
the Part
- Apply Composition to Aggregates
of Physical Items
- Apply Composition When the Parts Share The Persistence
Lifecycle With the Whole
- Don't Worry About Getting the
Diamonds Right
- Model Relationships
Horizontally
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.
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.
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.
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.
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 cards: wired 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.
Subscribe to:
Posts (Atom)














