In Java, variables are only accessible inside the region they are created. This is called scope.In Method Scope Variables declared directly inside a method.
Example
public class Tree{
public static void main(String[] args) {
// Code here CANNOT use numTree
int numTree = 100;
// Code here can use numTree
System.out.println(numTree );
}
}
output
100
Besides, Block Scope means a block of code refers to all of the code between curly braces {}. Variables declared inside blocks of code are only accessible by the code between the curly braces.
Example
public class Tree{
public static void main(String[] args) {
// Code here CANNOT use numTree
{ // This is a block
// Code here CANNOT use numTree
int numTree = 100;
// Code here CAN use numTree
System.out.println(numTree );
} // The block ends here
// Code here CANNOT use numTree
}
}
output
100
Java Recursion
In, java programming the technique of making a function call itself is Recursion. This technique provides a way to break complicated problems down into simple problems which are easier to solve.
Recursion may be a bit difficult to understand. The best way to figure out how it works is to experiment with it.
Recursion Example
Adding two numbers together is easy to do, but adding a range of numbers is more complicated. In the following example, recursion is used to add a range of numbers together by breaking it down into the simple task of adding two numbers:
Example
//Use recursion to add all of the numbers up to 10.
public class Tree {
public static void main(String[] args) {
int result = sum(5);
System.out.println(result);
}
public static int sum(int k) {
if (k > 0) {
return k + sum(k - 1);
} else {
return 0;
}
}
}
output
15
Example Explained
When the sum() function is called, it adds parameter k to the sum of all numbers smaller than k and returns the result. When k becomes 0, the function just returns 0. When running, the program follows these steps:
5 + sum(4)
5 + ( 4 + sum(3) )
5 + ( 4 + ( 3 + sum(2) ) )
…
5 + 4 + 3 + 2 + 1 + sum(0)
5 + 4 + 3 + 2 + 1 + 0
Since the function does not call itself when k is 0, the program stops there and returns the result.
Halting Condition
In java, like loops can run into the problem of infinite looping, recursive functions can run into the problem of infinite recursion. Infinite recursion is when the function never stops calling itself. Every recursive function should have a halting condition, which is the condition where the function stops calling itself. In the previous example, the halting condition is when the parameter k becomes 0.
It is helpful to see a variety of different examples to better understand the concept. In this example, the function adds a range of numbers between a start and an end. The halting condition for this recursive function is when end is not greater than start:
Example
Use recursion to add all of the numbers between 5 to 10.
public class Tree {
public static void main(String[] args) {
int result = sumTree(5, 10);
System.out.println(result);
}
public static int sumTree(int start, int end) {
if (end > start)
{
return end + sumTree(start, end - 1);
}
else
{
return end;
}
}
}
output
45
Factorial of a Number Using Recursion
#Factorial of a Number Using Recursion in java
public class Factorial {
public static void main(String[] args) {
int num = 6;
long factorial = multiplyNumbers(num);
System.out.println("Factorial of " + num + " = " + factorial);
}
public static long multiplyNumbers(int num)
{
if (num >= 1)
return num * multiplyNumbers(num - 1);
else
return 1;
}
}
Output
Factorial of 6 = 720
Initially, the multiplyNumbers() is called from the main() function with 6 passed as an argument.
Since 6 is greater than or equal to 1, 6 is multiplied to the result of multiplyNumbers() where 5 (num -1) is passed. Since, it is called from the same function, it is a recursive call.
In each recursive call, the value of argument num is decreased by 1 until num reaches less than 1.
When the value of num is less than 1, there is no recursive call.
And each recursive calls returns giving us:
6 * 5 * 4 * 3 * 2 * 1 * 1 (for 0) = 720.
Draftsbook is a learning base blog. The blog share Article series based on Subject. For example:
JAVA : JAVA is a object-oriented programming(OOP) language. This language classes and objects are the two main aspects of OOP. The blog content discuss below principles of OOP:
Data Structure: Data structure refers a several way of organizing data in a computer system.
Android : Android software development apps can be written using Kotlin, Java, and C++ languages” using the Android software development kit (SDK). This blog contains android feature Navigation drawer implementation and its usage are mention.
IELTS : IELTS Four module with strategies are written hereby
OOP stands for Object-Oriented Programming where java is a procedural programming. It is about writing procedures or methods to perform operations on the data. OOP is concerns creating objects that contain both data and methods.
Object-oriented programming (OOP) has several advantages over procedural programming:
is faster method or procedure
and easier to execute code
provides a clear structure for the programs
helps to keep the Java code easier to maintain, modify and debug
makes it possible to create full reusable applications with less code and shorter development time.
easier to maintain flexibility.
What are Java Classes and Objects?
Classes and objects are the two main aspects of OOP (object-oriented programming). Look at the theoritical illustration to see the following difference between class and objects:
class
Fruits
objects
Apple
Banana
Mango
So, a class is a frame for objects, and an object is an instance of that class. When the individual objects or a single object is created, they inherit all the variables and methods from the class. Actually verything in Java is associated with classes and objects, along with its attributes and methods. For a Everything in Java is associated with classes and objects, along with its attributes and methods. For a real life example , a Tree is an object. example: leaves, leave_color, fruits_color etc are attributes of Tree.
Create a Class
To create a class, use the keyword”class”:
Tree.java
Create a class named “Tree” with a variable treeNumber:
public class Tree{
int treeNumber= 5;
}
Create an Object
In Java, an object is created from a class. We have already created the class named MyTreeClass, so now we can use this to create objects. To create an object of MyTreeClass, we specify the class name, followed by the object name, and use the keyword new: Example
Create an object called “treeObj” and print the value of treeNumber:
public class Tree {
int treeNumber = 5;
public static void main(String[] args) {
Tree treeObj= new Tree();
System.out.println(treeObj.treeNumber );
}
}
Multiple Objects
You can create multiple objects of one class: Example
Create two objects of Tree:
public class Tree {
int treeNumber = 5;
public static void main(String[] args)
{
Tree treeObj1 = new Tree(); // Object 1
Tree treeObj2 = new Tree(); // Object 2
System.out.println(treeObj1.treeNumber );
System.out.println(treeObj2.treeNumber );
}
}
Using Multiple Classes
Multiple Classes means you can also create an object of a class and access the object in another class. This is frequently used for better decoration of classes. That is one class has all the attributes and methods, while the other class holds the main() method. Actually code to be executed. This is important to name the java file should be matched with the class name. In this example, we have created two files in the same directory/folder:
Tree.java
Treeotherclass.java
Tree.java
public class Tree
{
int treeNumber = 5;
} Treeotherclass.java
class Treeotherclass {
public static void main(String[] args) {
Tree treeObj = new Tree();
System.out.println(treeObj.treeNumber );
}
}
Java Class Attributes
In the above class Tree.java we used the term “treeNumber ” for treeNumber in the example. It is actually an attribute of the class. Or you could define attribute as class attributes are variables within a class.
Example
Create a class called “Tree ” with two attributes: treeNumber and treeNumber_2:
public class Main {
int treeNumber= 5;
int treeNumber_2= 3;
}
Another term for class attributes is fields.
Accessing Attributes
You can access attributes by creating an object of the class, and by using the dot syntax (.):
The following example will create an object of the Main class, with the name treeObj. We use the treeNumber attribute on the object to print its value:
Example
Create an object called “treeObj” and print the value of treeNumber :
public class Tree {
int treeNumber = 5;
public static void main(String[] args) {
Tree treeObj = new Tree ();
System.out.println(treeObj .treeNumber );
}
}
Modify Attributes
You can also modify attribute values:
Example
Set the value of treeNumber to 10:
public class Tree {
int treeNumber;
public static void main(String[] args) {
Tree myObj = new Tree();
treeObj.treeNumber = 10;
System.out.println(treeObj.treeNumber);
}
}
Or override existing values:
Example
Change the value of treeNumberto 20:
public class Tree{
int treeNumber = 10;
public static void main(String[] args) {
treeNumber treeObj = new treeNumber();
treeObj.treeNumber = 20; // treeNumber is now 20
System.out.println(treeObj.treeNumber);
}
}
Final keyword
If you don’t want the ability to override existing values, declare the attribute as final:
Example
public class Tree
{
final int treeNumber = 10;
public static void main(String[] args)
{
Tree treeObj = new Tree();
treeObj.treeNumber = 20; // will generate an error: cannot assign a value to a final variable
System.out.println(treeObj.treeNumber);
}
}
Multiple Objects
TO create multiple objects of one class, you can change the attribute values in one object, without changing the attribute values in the other:
Example
Change the value of treeNumber to 20 in treeObj2, and leave Tree in treeObj1 unchanged:
public class Tree
{
int treeNumber = 5;
public static void main(String[] args) {
Tree treeObj1 = new Tree(); // Object 1
Tree treeObj2 = new Tree(); // Object 2
treeObj2.treeNumber = 20;
System.out.println(treeObj1.treeNumber ); // Outputs 5
System.out.println(treeObj2.treeNumber ); // Outputs 20
}
}
Multiple Attributes
You can specify as many attributes as you want:
Example
public class Tree
{
String fname = “John”;
String lname = “Joe”;
int age = 21;
public static void main(String[] args) {
Tree myObj = new Tree();
System.out.println(“Name: ” + myObj.fname + ” ” + myObj.lname);
System.out.println(“Age: ” + myObj.age);
}
}
Java Constructors
In Java, a constructor is a special method that is used to initialize objects. The constructor is called when an object of a class is created. It can be used to set initial values for object attributes:
Example
Create a constructor:
// Create a Main class
public class Tree
{
int treeNumber = 5; // Create a class attribute
// Create a class constructor for the Main class
public Tree() {
treeNumber = 5; // Set the initial value for the class attribute x
}
public static void main(String[] args) {
Tree myObj = new Tree(); // Create an object of class Tree. This will call the constructor.
System.out.println(myObj.x); // Print the value of treeNumber
}
}
// Outputs 5
It is keep to mind that the constructor name must match the class name, and it cannot have a return type (like void). Also note that the constructor is called when the object is created. Even if, all classes have constructors by default: if you do not create a class constructor yourself, Java creates one for you. But, then you are not able to set initial values for object attributes.
Constructor Parameters
Constructors can also take parameters, which is used to initialize attributes. The following example adds an int y parameter to the constructor. Inside the constructor we set x to y (x=y). When we call the constructor, we pass a parameter to the constructor (5), which will set the value of x to 5:
Example
public class Tree{
int x;
public Tree(int y) {
x = y;
}
public static void main(String[] args) {
Tree myObj = new Tree(5);
System.out.println(myObj.x);
}
}
// Outputs 5
Java Modifiers
Modifiers are quite familiar with the public keyword that appears in almost all of our examples:
public class Main
The public keyword is an access modifier, meaning that it is used to set the access level for classes, attributes, methods and constructors. We divide modifiers into two groups:
Access Modifiers – controls the access level
Non-Access Modifiers – do not control access level, but provides other functionality Access Modifiers
For classes, you can use either public or default:
Modifier
Description
public
The class is accessible by any other class
default
The class is only accessible by classes in the same package. This is used when you don’t specify a modifier.
For attributes, methods and constructors, you can use the one of the following:
Modifier
Description
public
The code is accessible for all classes
private
The code is only accessible within the declared class
default
The code is only accessible in the same package. This is used when you don’t specify a modifier.
protected
The code is accessible in the same package and subclasses and superclasses in the Inheritance.
Non-Access Modifiers
For classes, you can use either final or abstract:
Modifier
Description
final
The class cannot be inherited by other classes
abstract
The class cannot be used to create objects . To access an abstract class, it must be inherited from another class.
For attributes and methods, you can use the one of the following:
Modifier
Description
final
Attributes and methods cannot be overridden/modified
static
Attributes and methods belongs to the class, rather than an object
final
Attributes and methods cannot be overridden/modified
static
Attributes and methods belongs to the class, rather than an object
abstract
Can only be used in an abstract class, and can only be used on methods. The method does not have a body, for example abstract void run();. The body is provided by the subclass or inherited from other class.
transient
Attributes and methods are skipped when serializing the object containing them
synchronized
Methods can only be accessed by one thread at a time
volatile
The value of an attribute is not cached thread-locally, and is always read from the “main memory” final.
If you don’t want the ability to override existing attribute values, declare attributes as final:
Example
public class Main {
final int x = 10;
final double PI = 3.14;
public static void main(String[] args) {
Main myObj = new Main();
myObj.x = 50; // will generate an error: cannot assign a value to a final variable
myObj.PI = 25; // will generate an error: cannot assign a value to a final variable
System.out.println(myObj.x);
}
}
Static
A static method means that it can be accessed without creating an object of the class, unlike public:
Example
An example to demonstrate the differences between static and public methods:
public class Main {
// Static method
static void myStaticMethod() {
System.out.println(“Static methods can be called without creating objects”);
}
// Public method
public void myPublicMethod() {
System.out.println(“Public methods must be called by creating objects”);
}
// Main method
public static void main(String[ ] args) {
myStaticMethod(); // Call the static method
// myPublicMethod(); This would output an error
Main myObj = new Main(); // Create an object of Main
myObj.myPublicMethod(); // Call the public method
}
}
Abstract
An abstract method belongs to an abstract class, and it does not have a body. The body is provided by the subclass:
Example
// abstract class
abstract class Tree {
public String fname = “Leaves”;
public int age = 24;
public abstract void study(); // abstract method
}
// Subclass (inherit from Tree )
class Green extends Tree{
public int plantYear = 2018;
public void plant() { // the body of the abstract method is provided here
System.out.println(“Planting all the year long”);
}
}
// End code from filename: Tree .java
// Code from filename: TreeSecond.java
class TreeSecond {
public static void main(String[] args) {
// create an object of the Student class (which inherits attributes and methods from Tree )
Green myObj = new Green ();
System.out.println(“Name: ” + myObj.fname);
System.out.println(“Age: ” + myObj.age);
System.out.println(“Plantation Year: ” + myObj.plantYear );
myObj.plant(); // call abstract method
}
}
Back-end web development by converting static web pages into dynamic web pages. Back-end web development is the first step in web development. A web developer that converts a static web page into a dynamic web page is called a back-end web developer or back-end developer. If you want to read the full article please see previous one to easily understand content.
Back-end web developers create dynamic web pages using server-side languages PSP, Python, ASP.net, etc.) and RDBMS (MySQL, mongoDB, etc.). Back-end web developer converts static web pages created by front-end web developers or static web pages created by web designers into dynamic web pages.
Back-end web developer, who controls the server’s data and requests. Many services are needed or work in the back-end of a dynamic website. After inputting any information on the website, a database is required to save it. Through database connection the server automatically saves the data and outputs the data as required.
Back-end developers use
PHP,
NodeJS,
Python or
Ruby
Languages to develop server side and use SQL or NoSQL (MySQL, MongoDB) language to write database queries.
Web Design and Development: Full-stack developer
A full-stack developer is one who has full knowledge and skills in all of the developments discussed above. Someone who is a full-stack developer can build a website from start to finish.
Generally, full-stack developers have a basic idea about design and user experience. To be a full-stack developer you need to be an expert in all languages; Of course not. Being an expert or professional in many languages at once is not an easy task. Moreover, web technology is changing in a very short time.
Definitely a plus point for a full-stack developer who has all the basic knowledge about the web. Yet it is more important to focus on any one of them than to be an expert on everything. In web development, front-end or back-end should be practiced with more time on the subject that would be better to work on.
Web Development is the process of making every tool of web design functional and dynamic. A web site can be divided into three parts such as design or template, content management system and database. A web developer combines these three things to make the whole process active and changeable. The job of the web developer is to process data, control the database, build security, control the user and admin capabilities, make all the features of the application functional and dynamic, and control the functionality and usability of the entire system. To be a good web developer you need to have detailed knowledge and
skills about:
PHP,
Python,
MySQL as well as
HTML,
CSS,
JAVASCRIPT,
JQUERY,
Practice web design and development?
You can design or develop a website on a local server. You can use xampp or wampserver for that. If you want to practice on a web server directly or make your website open to everyone in the world, you can take a server or web hosting from sharewebhost. It is a very good company in Bangladesh, you can take any kind of hosting here. You can use Amazon server, Bluehost server if you want.
Where and how to work?
Outsourcing marketplaces such as upwork.com, freelancer.com, fiverr.com are in great demand among web page designers and web developers. In these markets you can earn a minimum of 5 to 100 per hour. Apart from that, you can earn money by selling your web applications in marketplaces like themeforest.net, codecanyon.net. You can work in thousands of software and web development companies in our country. The big advantage in this sector is that you can get a well-paid job in software companies without having to study computer science.
If you want to learn web design and development on your own:
You must take help from the internet. In this case Google, Youtube is the best platform. The following is a list of some of the sites to learn from the Internet:
Alison
W3School
Web Professionals
Dreamweaver
Treehouse
Udemy
Alistapart
Pluralsight
CreativeBloq
Mockplus
Sass Extensions
LinkedIn Learning
What is the monthly income of a Web Developer?
A web developer can be established as a software architect in any company starting from junior web developer or junior software engineer. In the initial stage of this profession, a very small salary of 15 to 25 thousand Taka is available. If you do well in entry level jobs, after 2/5 years, the salary as a software engineer and software architect can be 50 thousand to one lakh rupees. Later it may increase to 2 to 3 lakh rupees. If you have skills and qualifications, there are opportunities for remote jobs outside the country. Many are also earning Tk 8-10 lakh through remote jobs outside the country.
What is web design and development? Concept How to Develop them?
Websites are web content stored on a web server that can be viewed via the Internet.
Web development is the process of making information stored on a web server viewable in a web browser connected to the Internet.
A web page is basically an HTML (Hypertext Markup Language) document, which is transferred from the web server to the Internet user’s web browser via the HTTP (Hypertext Transfer Protocol) protocol. All published websites are collectively referred to as the “world wide web”.
How to create a website on the Internet?
Curiosity-loving people have such an interest in knowing it; Similarly, many people want to sell web design and development as a profession. If you are interested in learning about web design and development;
Then this article is for you.
A person who sets up or develops a website is called a web developer.
Client-side language following the design or image of the web developer website. He decorated the website using server-side languages.
Web development can be defined in many ways from creating a website. All the work that has to be done from the beginning to the end of the Internet Together it is called web development.
Or creating software to make the information stored on the web server viewable over an Internet connection is called web development.
The world has become a village for the benefit of the net. One click treatment from anywhere, Information on every part of the basic needs including education is known instantly.
Beyond the boundaries of knowledge, curious people are running towards strangers at an endless pace. The internet is an integral part of entertainment as it has become a basic tool of education. With the development of social civilization, people have made the world comfortable with their innovative energy, Has made life dynamic. And all this has been possible because of the millions of websites on the Internet.
Web Design is the visual representation of the website. Determining what the website will look like. A complete template for a web site steps are:
Created web design work. Website Layout, Header, Menu, Sidebar,
Designing / planning how the images will develop.
In a nutshell, web design is about determining how the web will display information.
Some tools (PHOTOSHOP, GIMP, notepad ++) are used to design the web.
Also, markup language and scripting language (HTML, CSS, JavaScript) etc.
A visually pleasing webpage can be created using.
Web designers are called front-end developers.
Web development
The process of making information stored on a web server viewable in a web browser connected to the Internet is called web development. A person who sets up or develops a website is called a web developer. The web developer decorates the website using client-side languages and server-side languages following the design or image of the website.
Web development can be defined in many ways. All the work that needs to be done, from creating a website to making it visible on the Internet, is called web development.
Or the development of software to make the information stored on the web server viewable over the Internet is called web development.
Steps to Web Design and Development
Web development is usually divided into three stages-
Front end web development
Back-end web development
Web mastering
Front end web development
Front end web development is the creation of a static static web page of a pre-planned or illustrated image website. Front end web development is the first step of web development.
A web developer who creates a static web page according to a fictional image or according to a web designer’s plan is called a front-end web developer or front-end developer. A front end web developer needs to have a deep knowledge of the technique of creating static web pages.
Hypertext Markup Language (HTML), Cascading Style Sheets (CSS) and JavaScript (JS) are the three languages that can be used to create any kind of professional and modern webpage. From design layouts to images, typography – using font families, animations or motion graphics, it is the job of the front-end developer to create new and awesome webpages in many interfaces.
Next Tutorial content about back-end and process to become full stack developer process.
Example 1: The above example Given IP address: 167.199.170.82/27 find total number of address What is first address? What is last address?
Solution:
Given address: 167.199.170.82/27; prefix length, CIDR, n=27
total number of address 2^(32-n) =2^5 = 32 address
Find First Address
Given address, Its binary form 10100111.11000111.10101010.01010010
As (32-n) = 32-27 = 5; So, the last octet right last 5 bits will let ‘0’
That is the now the binary form 10100111.11000111.10101010.01000000 which decimal form is
167.199.170.64
So, first address 167.199.170.64/27.
OR,
Address: 167.199.170.82= 10100111.11000111.10101010.010 10010(as range 128-191 so Class B)
Netmask: 255.255.255.224 = 27 11111111.11111111.11111111.111 00000(as default mask Class B)
Wildcard: 0.0.0.31 =00000000.00000000.00000000.000 11111
=>
Network Address: 167.199.170.64/27 =10100111.11000111.10101010.010 00000 (Class B ‘AND ‘ operation on given address and mask)
Find Last Address
Given IP binary form 10100111.11000111.10101010.01010010
As (32-n) = 32-27 = 5; So, the last octet right last 5 bits 1
That is the now the binary form 10100111.11000111.10101010.01011111 which decimal form is
167.199.170.95
Broadcast Address: 167.199.170.95 =10100111.11000111.10101010.010 11111( ‘OR ‘ operation on given address and mask)
So, Last address 167.199.170.95/27.
Example 2: An address several prefix lengths can place on a address block 230.8.24.56/16.
As (32-16)=16 so first bit address right 16 bit will 0
SO binary form 230.8.24.56 = 011100110.00000100.00011000.00111000
First address = 230.8.0.0
To find last address last rightmost 16 bit will 1
SO binary form 230.8.24.56= 011100110.00000100.11111111.11111111
=230.8.255.255
A rule: Number of requested address N need to be power of 2
N= 2^32-n
Or, n= 32- log2^N
Example 3: A company start adreess 14.24.74.0/24 they need subblock. Each subblock 10 address, 6 subblock 60 and 3rd subblock 120 adress?
Solution:
Subblock address always power of 2. For 1st block address has 2^(32-24)=256, which need to divided.
32-24=8 that is rightmost 8 bit will 0; so 1st address 14.24.74.0/24;
32-24=8 that is rightmost 8 bit will 1; so last address 14.24.74.255/24;
As question 120 is not a power of 2 so immediate power 128(2^7)
So, n=32-log2^128=32-7=25; therefore so 1st address 14.24.74.0/25 and so 1st address 14.24.74.127/25;
(b) as 60 blocks not power of 2 immediate large 64 n=32-log2^64 =32-4=26
so 1st address 14.24.74.128/26; last address 14.24.74.191/26;
Example 6: A block address is granted to a small organization. If one of the address is 205.16.37.39/28. What is the first and last address of the block? [ministry (AP)-2017]
Given IP Address: 205.16.37.39 11001101.00010000.00100101.0010 0111
“IP” stands for Internet Protocol where data is sent by which the method or protocol from one computer to another. Actually, each computer on the Internet has at least one IP address that uniquely identifies it from all other computers on the Internet. An IP address is a unique global address for a network interface.
IP is an real life example of the postal system. It allows you to address a package and drop it in the system, but there’s no direct link between you and the recipient. TCP/IP, in contrast, creates a connection between two hosts, so that they can send messages back and forth for a period of time.
TCP is one of the main protocols in TCP/IP networks. Whereas the IP protocol deals only with packets, TCP enables two hosts to establish a connection and exchange streams of data. TCP guarantees delivery of data and also guarantees that packets will be delivered in the same order in which they were sent.
Two (2) IP addressing standards are in use today. The IPv4 standard is most familiar to people and supported everywhere on the Internet, but the newer IPv6 standard is gradually replacing it.
IPv4 addresses consist of four (4) bytes (32 bits)
IPv6 addresses are sixteen (16) bytes (128 bits) long.
IP Address space
An IPv4 address is a 32-bit or 4 byte address that uniquely and universally defines the connection of a device (for example, a computer or a router) to the Internet.
An IPv4 address consists of four numbers, with a single dot (.) separating each number or set of digits.
Each of the four numbers can range from 0 to 255.
An address space is the total number of addresses used by the protocol. If a protocol uses N bits to define an address, the address space is 2N because each bit can have two different values (0 or 1) and N bits can have 2N values.
IPv4 uses 32-bit addresses, which means that the address space is 232 or 4,294,967,296 (more than 4 billion).
There are two prevalent notations to show an IPv4 address:
(1) Binary notation and
(2) Dotted decimal notation.
Binary Notation:
01110101 10010101 00011101 00000010
Dotted-Decimal Notation: 117. 149. 29. 2
Classful Addressing
IPv4 addressing, at its inception, used the concept of classes. This architecture is called classful addressing. In classful addressing, the address space is divided into five classes: A, B, C, D, and E.
Class
Binary
Decimal
A
0
0-127
B
1o
128-191
C
110
192-223
D
1110
224-239
E
1111
240-255
Class
Start address
End Address
A
0.0.0.0
127.255.255.255
B
128.0.0.0
191.255.255.255
C
192.0.0.0
223.255.255.255
D
224.0.0.0
239.255.255.255
E
240.0.0.0
255.255.255.255
Exercise
193.14.56.22
The first byte is 193 (between 192 and 223); the class is C.
14.23.120.8
The first byte is 14 (between 0 and 127); the class is A.
In classful addressing, an IP address of class A, B and C is divided into two parts : Netid and Hostid.
The netid and hostid are of varying lengths that is varies on depending on the class of the address.
Netid(n): The part of an IP address that identifies the network.
Hostid(32-n): The part of an IP address that identifies a host in a network.
Class
Net Id
Host Id
Start address
End Address
A
8
24
0.0.0.0
127.255.255.255
B
16
16
128.0.0.0
191. 255.255.255
C
24
8
192.0.0.0
223. 255.255.255
D
Not define
–
224.0.0.0
239. 255.255.255
E
Not define
–
240.0.0.0
255. 255.255.255
Class A address
If the first decimal number in IP address is 0 to 127, then it is a class A address.
Class A IP addresses use the 1st 8 bits (1st Octet) to designate the Network address.
The 1st bit which is always a 0, is used to indicate the address as a Class A address & the remaining 7 bits are used to designate the Network.
The other 3 octets contain the Host address.
There are 128 (27) Class A Network Addresses, but because addresses with all zeros aren’t used & address 127 is a special purpose address, 126 Class A Networks are available.
formula to compute the number of hosts available in any of the class addresses, where “n” represents the number of bits in the host portion:
(2n – 2) = Number of available hosts
For a Class A network, there are:
224 – 2 or 16,777,214 hosts.
Half of all IP addresses are Class A addresses.
You can use the same formula to determine the number of Networks in an address class.
, a Class A address uses 7 bits to designate the network, so (27 – 2) = 126 or there can be 126 Class A Networks.
Class B IP Addresses
If the first decimal number in IP address is 128 to 191, then it is a class B address.
Class B addresses use the 1st 16 bits (two octets) for the Network address.
The last 2 octets are used for the Host address.
The 1st 2 bit, which are always 10, designate the address as a Class B address & 14 bits are used to designate the Network. This leaves 16 bits (two octets) to designate the Hosts.
So how many Class B Networks can there be?
Using our formula, (214 – 2), there can be 16,382 Class B Networks & each Network can have (216 – 2) Hosts, or 65,534 Hosts
Class C IP address
If the first three bits of the address are 1 1 0, it is a class C network address.
The first three (3) bits are class identifiers.
The next 21 bits are for the network address.
The last eight (8) bits identify the host.
There are millions of class C network numbers.
However, each class C network can have 254 hosts.
Class
Number of Blocks/ Networks
Block size/ Address per block
Start address
End Address
Application
A
128(27)
16,777,216(224)
0.0.0.0
127.255.255.255
Unicast
B
16384(214)
65536(216)
128.0.0.0
191. 255.255.255
Unicast
C
2097152(221)
256(28)
192.0.0.0
223. 255.255.255
Unicast
D
224.0.0.0
239. 255.255.255
Multicast
E
240.0.0.0
255. 255.255.255
Multicast
Mask
the form /n where n can be 8, 16, or 24 in classful addressing. This notation is also called slash notation or Classless Interdomain Routing (CIDR) notation.
the length of the netid and hostid (in bits) is predetermined in classful addressing, we can also use a mask.
Synonyms or IELTS synonyms are words which are related each other or have a similar in meaning. IELTS Students just need to know this vocabulary list for test to be able to practice Speaking and Writing a lot. Because learning synonyms words is a basic and very important part of learning English. Specially discover a selected List of IELTS Vocabulary Words guaranteed increase Score in test. They can be lifesavers Make Writing Shine and Plagiarism Detection. Here are some of the most useful synonyms words for IELTS. Synonyms Words List for IELTS share in the blog. Read more on the IELTS Synonyms LIST PART 1 for first list of synonyms.
Word
Synonyms
Worthy
Noteworthy, great , distinguished, remarkable, grand, considerable, powerful, much, mighty
Synonyms are words which are related each other or have a similar in meaning. IELTS Students just need to know this vocabulary list for test to be able to practice Speaking and Writing a lot. Because learning synonyms words is a basic and very important part of learning English. Specially discover a selected List of IELTS Vocabulary Words guaranteed increase Score in test. They can be lifesavers Make Writing Shine and Plagiarism Detection. Here are some of the most useful synonyms words for IELTS. Synonyms Words List for IELTS share in the blog.
In IELTS reading module, a number of sentences will be given with gaps in them and asked to complete the sentences with words from the reading text.
This is actually your vocabulary tests as they are reading tests. They require you to be aware of paraphrasing and synonyms. More on these reading vocabulary are given below.
Range
Direct
Physical
Adopt
Particular
Technical
Individual
Theory
Access
Potential
Responsible
Period
Major
Influence
Facilities
Establish
Occur
Feature
Essential
Factor
Source
Focus
Experiment
Efficient
Project
Accurate
Innovate
Demand
Aim
Material
Adapt
Compete
Average
Evolve
Institute
Positive
Crucial
Method
Provide
Arrange
Relevant
Vital
Survive
Alternative
Unique
Stage
Original
Create
Evidence
Revolution
Several
Respond
Strategy
Diverse
Require
Area
Risk
Role
Combine
Observe
Resource
Network
Context
Experience
System
Avoid
Despite
Apply
Key
Generation
Expert
Ensure
Research
Structure
Connect
Vary
Identify
Involve
Region
Policy
Series
Process
Previous
Achieve
Organisation
Extend
Inevitable
Site
Technique
Behavior
Absorb
Adjust
Annual
Consequence
Current
Enable
Enormous
Expand
Identify
Majority
Measure
Numerous
Permanent
Practical
Visual
Shrink
Tool
Broad
Figure
Narrow
Sharp
Scale
Branch
Emphasis
Decline
Detect
Legislation
Supplement
Commerce
Foundation
Sophisticated
Integrate
Visible
Inevitable
Regular
Mechanism
Relatively
Superior
Perspective
Interpret
Contribute
Therapy
Substance
Minor
Undertake
Campaign
Facilitate
Independent
Practical
Primary
Skip
Subsidise
Distribute
Imitate
Attribute
Rate
Threaten
Operate
Consult
Priority
Outcome
Pioneer
Sufficient
Favorable
Sector
Status
Primitive
Innovation
Section
Reflect
Boundary
Administration
Principle
Theoretical
Budget
Accelerate
Modify
Subsequent
Anxiety
Define
Reject
Funding
Gradual
Inferior
Property
Maintain
Estimate
Vegetation
Probability
Halt
Reverse
Exhibition
Transmit
Authority
Contradict
Prohibit
Perceive
Conflict
Transform
Volume
Approach
Durable
Identical
Explore
Obligation
Duty
Specific
Exterior
Restrict
Alter
Shift
Inspire
Ultimately
Marine
Jackson
Release
Discriminate
Proof
Prior
Category
Labour
Mature
Distinguish
Acquire
Pattern
Attempt
Shape
Account for
Spread
Sole
Initial
Immigrate
Instance
Exaggerate
Consistent
Weigh
Challenging
Gene
Numerous
Justify
Doubt
Debate
Dominate
Represent
Context
Classify
Concept
Surround
Planet
React
Target
Sense
Reveal
Seed
Determine
Originate
Element
Reproduce
Assess
Emerge
Duration
Controversial
Impress
Comprehensive
Milestone
Hostile
Disintegrate
Joint
Avoid
Circulate
Synthetic
Invade
Coincidence
Consensus
Accessory
Superficial
Abandon
Compromise
Puzzle
Melt
Tide
Demand
Frame
Prehistoric
Creature
Criteria
Route
Nerve
Matter
Terrain
Skeptical
Campaign
Catastrophe
Pedestrian
Ancestor
Ignore
Expose
Privileged
Influence
Auditory
Assign
Deduce
Tolerate
Equivalent
Capacity
Grant
Dissolve
Pour
Predator
Senior
Cultivate
Biography
Reef
Ripe
Peer
Agency
Moral
Sediment
Navigate
Universal
Terrestrial
Straightforward
Colony
Guarantee
Linguistic
Collapse
Counselling
Simultaneous
Inherent
Frequency
Degree
Ethical
Evaluate
Incidence
Bury
Apparatus
Coordinate
Deliberately
Craft
Laboratory
Classic
Manipulate
Application
Descend
Cognitive
Limbs
Manual
Instrument
Concrete
Judge
Optimise
Revolution
Link
Dynamic
Trace
Reverse
Compatible
Mineral
Component
Interior
Indigenous
Trait
Military
Decorate
Indicate
Mode
Constitute
Continent
Imply
Consensus
Refer to
Assume
Primitive
Dual
Passage
Apparent
Implications
Ascend
Automobile
Pace
Investigate
Algae
Conscious
Overwhelming
Emigrate
Model
Monitor
Cover
Surface
Motion
Court
Aggressive
Witness
Vulnerable
To know more tips and information on speaking module see blog
IELTS Speaking band descriptors that are public version across the world. The blog is provide most important resources for IELTS speaking module. One can take as a opportunity of the huge amount of information to get ready for IELTS test.
In this blog we discuss about speaking band description available here. For the first time we details all the four form band score 0-9 and their detail description criteria depend on score.
Band
Fluency and coherence
9
Always speaks confidently with only self-correction and avoid repetition.
Don not any hesitation is content related to find words or grammar.
Fully speaks coherently with appropriate structures.
Appropriately develops subjects.
8
Speaks smoothly with only occasional repetition or self-correction.
Usually hesitation is content-related and only rarely to search for language.
Frequently develops themes coherently and appropriately
7
·
Speaks at length without noticeable loss of coherence
May demonstrate language related uncertainty at times, or some repetition or self-correction
Uses a variety of connectives and dialogue markers with some flexibility.
6
Willing to speak at length, though may lose coherence at times as an occasional repetition or self-correction or hesitation
Not always suitably uses a range of connectives and speech markers.
5
Frequently maintains flow of speech but uses repetition, self-correction / slow speech to keep going
May overuse definite connectives and dialog markers.
Produces simple speech fluently, but more complex communication causes fluency problems
4
Cannot respond without noticeable pauses and may speak slowly, with frequent repetition and self-correction
Links basic sentences but with repetitious use of simple connectives and some breakdowns in coherence
3
Speaks with long pauses
Has limited ability to link simple sentences
Provides only simple responses and is frequently unable to convey basic message
2
Often pauses lengthily before the most words and little communication possible.
1
No communication possible
0
Does not attend.
The next table concern with the band score 0-9 and their detail description criteria depend on score of vocabulary.
Band
Lexical resources (Vocabulary )
9
All the topics uses vocabulary with occupied flexibility and accuracy.
Precisely practices idiomatic language.
8
To convey precise meaning a wide range of vocabulary resources readily and flexibly.
To uses less common and idiomatic vocabulary skillfully, with occasional inaccuracies
Effectively paraphrase.
7
Vocabulary resources flexibility discuss a wide range of topics
Less common and idiomatic vocabulary uses.
Awareness of style and collocation, with some incorrect choosing.
Efficiently uses paraphrase
6
Enough vocabulary to discuss topics at length and make meaning clear instead of inappropriateness paraphrases successfully
5
Generally manages to talk about familiar and unfamiliar topics but uses vocabulary with limited flexibility.
Need attempts to use paraphrase but with mixed success.
4
Able to speak with familiar topics but can only convey basic meaning on unfamiliar topics and makes common.
Mistakes in term choice.
rarely attempts paraphrase
3
Simple vocabulary uses to convey personal information.
Less familiar topics has insufficient vocabulary.
2
only products inaccessible words or memorized utterances
1
0
The next table concern with the band score 0-9 and their detail description criteria depend on score of Grammatical range and accuracy(GRA). This type mainly focus how a examinee use grammar and its accuracy.
Band
Grammatical range and accuracy(GRA)
9
Full range of structures uses naturally and appropriately
Regularly structures separately from ‘slips’
Distinguishing of native speaker speech
8
A series of structures uses flexibly
A majority of sentences without error with inappropriacies or basic or non-systematic errors
7
A range of complex structures uses with some flexibility
Frequently produces without error sentences, yet some grammatical mistakes carry on
6
A mixture of simple and complex structures uses, but with limited flexibility
Recurrent mistakes with complex structures
Although these rarely cause problems
5
Basic sentence yields forms with practical accuracy
A limited range of more complex structures practices, but these contain errors and may cause some comprehension problems
Positive features of Band 4 and some, but not all, of the positive features of Band 6.
4
Basic sentence produces forms and a few correct simple sentences but secondary structures are rare errors are frequent and may lead to misunderstanding
3
Tries basic sentence forms but with limited success, or depends on speciously memorised utterances.
Makes several errors except in memorised expressions
2
Basic sentence forms cannot produce
1
0
The last table contain information with the band score 0-9 and their detail criteria depend on score of Pronunciation. This kind of speaking part focus how a examinee pronunciation with the accuracy or pauses or lengthily.
Band
Pronunciation
9
A full range of pronunciation features uses with precision and subtlety sustains flexible use of features throughout is easy to understand
8
A extensive range of pronunciation uses features
Sustains flexible use of features, with only occasional lapses is easy to understand throughout; accent has minimal effect on intelligibility.
7
All the positive features shows Band 6 and some, but not all, of the positive features of Band 8
6
A range of pronunciation uses features with varied control
Some effective use of features but this is not sustained can generally be understood throughout, though
Mispronunciation of individual words or sounds decreases clearness at times
5
Often produces basic sentence forms with reasonable accuracy
A limited series of more complex structures uses, but these usually contain mistakes and may reason some comprehension problems
The positive features shows all of Band 4 and some, but not all, of the positive features of Band 6
4
A incomplete range of pronunciation usages features
Attempts to control features but lapses are frequent mispronunciations are frequent and cause some difficulty for the listener
3
Shows some of the features of Band 2 and some, but not all, of the positive features of Band 4
Examiners look at five different things to determine an examinee’s score:
Pronunciation -mean in how naturally you sound
Grammar – refers how good is your grammar
Vocabulary or Lexical Resource (LR) – how much enrich is your vocabulary
Fluency and Coherence – refers how clear and structured is your speech.
Grade Distributions:
IELTS Speaking score calculation Pronunciation: 7.0, Grammatical Range and Accuracy – 7.5, , Lexical Resources(Vocabulary ): 7.0 and Fluency and Cohesion: 7.5.
Now have a look on Scoring: If the average score is not a whole number or a 0.5 number, for example, 6.5, the examiner goes down to the next whole number or 0.5 number.
Example 1
1. Pronunciation
5
2.Grammer
4
3. Vocabulary (LR)
5
4. Fluency and Coherence
5
Average = 19/4 = 4.75 = Band =4.5
Example 2
1. Pronunciation
6
2.Grammer
5
3. Vocabulary (LR)
6
4. Fluency and Coherence
5
Average = 22/4 = 5.5 Band =4.5
Example 2
1. Pronunciation
7
2.Grammer
7
3. Vocabulary (LR)
8
4. Fluency and Coherence
7
Average = 29/4 = 7.25 Band =7.0.
SOME PRONUNCIATION ADVICE
Firstly, Overall, clear and understandable pronunciation is one of the vital thing. Secondly, the correct use of the following features will determine the pronunciation grade:
Use basic word pronunciation.
Practice with linked speech sounds.
Use correct and appropriate sentence stress that is record your speech and work on the words that you spell incorrectly.
Appropriate use of intonation or rising and falling to emphasize.
See speaking test simulator in IELTS.
SOME GRAMMATICAL RANGE AND ACCURACY ADVICE
Basic grammar, especially the verb tenses. Know how to make the tenses and use them correctly.
Do not use simple sentences all the time. Often try to use sentences consist of parts that are joined together with conjunctions and other linking words. This rule is necessary for those who are wish to have Band above or 6.
Focus on complex structures so that you can show that you have some higher level grammar knowledge. Use more advanced grammatical structures such as passive voice, direct speech, tenses and conditional etc.
SOME ADVICES for FLUENCY
You should speed yourself to speak a little faster if your pronunciation is good.
Keep in continuity with proper pauses and avoid long pauses. This is must applicable in speaking Part 2 also.
Use linked pronunciation and use contractions to ensure smoothness in speaking.
COHERENCE ADVICE
Enlarge your answers with a suitable amount of relevant information in details.
Connectives to link sentences especially when using more complex ideas. This rule is must be followed examiner who want to a Band 6 or above.
Directly answer all the questions.
Extra relevant information should be added after first answering the key point of the question.
When link answers to the questions by the same verb
In every sentence keep on eye either answers to questions for the real meaning of the questions.
Express knowledge of the short form of answer for yes or no questions.
In IELTS preparation, one would be able to feel own progress in speaking and writing, mainly when they will keenly use grammar structures to express their ideas. Though, properly knowing grammar will also help one understand language, both in reading and in listening. They will become more used to with grammar structures and will understand what others want to say right away. Therefore, the best way to progress grammar is to study each rule one by one, read related examples. Try to make own examples and then practice each rule by doing exercises.
Here This blog concerns with some sentence structure use during speaking practices. As it is need to be remember to the learner the more you read the more you learn.
Don’t say
say
I like Apple
I like Apples
I saw a dream last night
I had a dream last night
I have got many works for this week
I have got a massive quantity of works for this week
Or, I have got an impressive amount of works for this week.
Or, I have got a lot of works for this week.
You can use informal word instead of a lot of such as:
loads/tons (informal): I have got as loads/ton of works for this week.
A whole bunch (informal): I have got a whole bunch of works for this week.
Galore(informal): I have got a galore of works for this week.
Testing Levels Testing itself may be clear at several levels of Software Development Life Cycle. The testing process runs equivalent to software development. Testing distinctly is done just to make sure that there are no hidden bugs or issues left in the software. Software is tested on various levels –
Unit Testing
While coding, the programmer performs some tests on that unit of program to know if it is error free. Testing is performed under white-box testing approach. Unit testing helps developers decide that individual units of the program are working as per requirement and are error free.
Integration Testing
Even if the units of software are working fine individually, there is a need to find out if the units if integrated together would also work without errors. For example, argument passing and data updating etc.
System Testing
The software is compiled as product and then it is tested as a whole. This can be accomplished using one or more of the following tests:
Functionality testing: Tests all functionalities of the software against the requirement.
Performance testing: This test proves how efficient the software is. It tests the effectiveness and average time taken by the software to do desired task. Performance testing is done by means of load testing and stress testing where the software is put under high user and data load under various environment conditions.
Security & Portability :These tests are done when the software is meant to work on various platforms and accessed by number of persons.
Acceptance Testing
When the software is ready to hand over to the customer it has to go through last phase of testing where it is tested for user-interaction and response. This is important because even if the software matches all user requirements and if user does not like the way it appears or works, it may be rejected.
Alpha testing: The team of developer themselves perform alpha testing by using the system as if it is being used in work environment. They try to find out how user would react to some action in software and how the system should respond to inputs.
Beta testing: After the software is tested internally, it is handed over to the users to use it under their production environment only for testing purpose. This is not as yet the delivered product. Developers expect that users at this stage will bring minute problems, which were skipped to attend.
Regression Testing
Whenever a software product is updated with new code, feature or functionality, it is tested thoroughly to detect if there is any negative impact of the added code. This is known as regression testing.
Testing Documentation Testing documents are prepared at different stages –
Before Testing
Testing starts with test cases generation. Following documents are needed for reference –
SRS document: Functional Requirements document
Test Policy document : This describes how far testing should take place before releasing the product.
Test Strategy document : This mentions detail aspects of test team, responsibility matrix and rights/responsibility of test manager and test engineer.
Traceability Matrix document : This is SDLC document, which is related to requirement gathering process. As new requirements come, they are added to this matrix. These matrices help testers know the source of requirement. They can be traced forward and backward.
While Being Tested
The following documents may be required while testing is started and is being done:
Test Case document: This document contains list of tests required to be conducted. It includes Unit test plan, Integration test plan, System test plan and Acceptance test plan.
Test description: This document is a detailed description of all test cases and procedures to execute them.
Test case report: This document contains test case report as a result of the test.
Test logs: This document contains test logs for every test case report.
After Testing
The following documents may be generated after testing :
Test summary: This test summary is collective analysis of all test reports and logs. It summarizes and concludes if the software is ready to be launched. The software is released under version control system if it is ready to launch.
Testing vs. Quality Control, Quality Assurance and Audit
Software testing is different from software quality assurance, software quality control and software auditing.
Software quality assurance: Software quality assurance are software development process monitoring means, by which it is assured that all the measures are taken as per the standards of organization. This monitoring is done to make sure that proper software development methods were followed.
Software quality control: Software quality control is a system to maintain the quality of software product. It may include functional and non-functional aspects of software product, which enhance the goodwill of the organization. This system makes sure that the customer is receiving quality product for their requirement and the product certified as ‘fit for use’.
Software audit : Software audit is a review of procedure used by the organization to develop the software. A team of auditors, independent of development team examines the software process, procedure, requirements and other aspects of SDLC. The purpose of software audit is to check that software and its development process, both conform standards, rules and regulations.
A test needs to check if a webpage can be opened in Internet Explorer. This can be easily done with manual testing. But to check if the web-server can take the load of 1 million users, it is quite impossible to test manually. There are software and hardware tools which helps tester in conducting load testing, stress testing, regression testing.
Testing Approaches
Tests can be conducted based on two approaches –
Functionality testing
Implementation testing
When functionality is being tested without taking the actual implementation in concern it is known as black-box testing. The other side is known as white-box testing where not only functionality is tested but the way it is implemented is also analyzed. Exhaustive tests are the best-desired method for a perfect testing. Every single possible value in the range of the input and output values is tested. It is not possible to test each and every value in real world scenario if the range of values is large.
Black-box testing
It is a software testing method in which the internal structure or design or implementation of the item being tested is known to the tester. It is carried out to the internal structure or design or implementation of the item being tested is not known to the tester that is test functionality of the program. It is also called ‘Behavioral’ testing. The tester in this case, has a set of input values and respective desired results. On providing input, if the output matches with the desired results, the program is tested ‘ok’, and problematic otherwise. In this testing method, the design and structure of the code are not known to the tester, and testing engineers and end users conduct this test on the software.
Black-box testing techniques:
Equivalence class – The input is divided into similar classes. If one element of a class passes the test, it is assumed that all the class is passed.
Boundary values – The input is divided into higher and lower end values. If these values pass the test, it is assumed that all values in between may pass too.
Cause-effect graphing – In both previous methods, only one input value at a time is tested. Cause (input) – Effect (output) is a testing technique where combinations of input values are tested in a systematic way.
Pair-wise Testing – The behavior of software depends on multiple parameters. In pairwise testing, the multiple parameters are tested pair-wise for their different values.
State-based testing – The system changes state on provision of input. These systems are tested based on their states and input.
White-box testing
It is conducted to test program and its implementation, in order to improve code efficiency or structure. It is also known as ‘Structural’ testing. In this testing method, the design and structure of the code are known to the tester. Programmers of the code conduct this test on the code. The below are some White-box testing techniques:
Control-flow testing – The purpose of the control-flow testing to set up test cases which covers all statements and branch conditions. The branch conditions are tested for both being true and false, so that all statements can be covered.
Data-flow testing – This testing technique emphasis to cover all the data variables included in the program. It tests where the variables were declared and defined and where they were used or changed.
Q Distinguish or deference between Black Box Testing and White Box Testing
Black Box Testing
White Box Testing
In this software testing in which the internal structure or the program or the code is hidden and nothing is known about it.
In this testing the software in which the tester has knowledge about the internal structure or the code or the program of the software.
It is mostly done by software testers.
It is mostly done by software developers.
No knowledge of implementation is needed.
Knowledge of implementation is required.
It can be referred as outer or external software testing.
It is the inner or the internal software testing.
It is functional test of the software.
It is structural test of the software.
This testing can be initiated on the basis of requirement specifications document.
This type of testing of software is started after detail design document.
No knowledge of programming is required.
It is mandatory to have knowledge of programming.
It is the behavior testing of the software.
It is the logic testing of the software.
It is applicable to the higher levels of testing of software.
It is generally applicable to the lower levels of software testing.
It is also called closed testing.
It is also called as clear box testing.
It is least time consuming.
It is most time consuming.
It is not suitable or preferred for algorithm testing.
It is suitable for algorithm testing.
Can be done by trial and error ways and methods.
Data domains along with inner or internal boundaries can be better tested.
Example: search something on google by using keywords
Example: by input to check and verify loops
Types of Black Box Testing: A. Functional Testing B. Non-functional testing C. Regression Testing
Types of White Box Testing: A. Path Testing B. Loop Testing C. Condition testing
Software design is an iterative process through which requirements are interpreted into a blueprint for creating the software. The design is represented at a high level of abstraction due to design iterations arise. Here subsequent refinement principals to design representation at much lower levels of abstraction. A set of principles for software design are mention below,
The design should be structured to accommodate change.
The design should be structured to degrade gently.
The design process should not suffer from “tunnel vision”.
The design should be traceable to the analysis model.
The design should “minimize the intellectual distance” between the software and the problem in the real world.
The design should exhibit uniformity and integration.
The design should not reinvent the wheel.
Design is not coding.
The design should be assessed for quality.
The design should reviewed to minimize conceptual errors.
Q Describe test strategy testing techniques and strategy in software engineering.
Software testing techniques and strategy in software engineering. Software Testing is comprises of Validation and Verification appraisal of the software contrary to requirements gathered from users and system specifications. This is conducted at the phase level in software development life cycle either module level in program code.
Software Validation:
Software Testing Validation is process of investigative satisfies the user requirements which is carried out at the end of the SDLC. If the software matches supplies for which it was made, it is validated.
Validation safeguards the product under development is as per the user requirements.
Validation answers the question Are we developing the product which attempts all that user needs from this software?
Validation highlights on user requirements.
Software Verification:
Software Verification is the process of confirming if the software is meeting the business requirements, and is developed following to the proper specifications and methodologies.
Verification guarantees the product being developed is according to design specifications.
Verification answers the question Are we developing this product by firmly following all design specifications?
Verifications focusses on the design and system specifications. Target of the test are errors. These errors are actual coding mistakes made by developers. Additionally, there is a variance in output of software and desired output, is considered as an error. Fault refers when error exists fault occurs. A fault, also known as a bug, is a result of an error which can cause system to fail. Failure is thought to be the inability of the system to perform the desired task. Failure occurs when fault exists in the system.
Manual testing is testing of the software where tests are executed manually by a QA Analyst to discover bugs in software under development. Automation software testing tools where classical method of all testing types and helps find bugs in software systems. It is generally conducted by an experienced tester to accomplish the software testing process.
Manual – This testing is performed without taking help of automated testing tools. The software tester prepares test cases for different sections and levels of the code, executes the tests and reports the result to the manager. Manual testing is time and resource consuming. The tester needs to confirm whether or not right test cases are used. Major portion of testing involves manual testing.
Automated This testing is a testing procedure done with aid of automated testing tools. The limitations with manual testing can be overcome using automated test tools.
Spiral Model is a risk-driven software development process model with the amalgamation of waterfall model and iterative model. Spiral Model helps to implement software development elements of several process models for the software project based on unique risk patterns ensuring efficient development process.
Spiral model each phase in software engineering initiates with a design goal and ends with the client reviewing the progress. The development process in Spiral model in SDLC, starts with a small set of necessity and goes through each development phase for those set of requirements. The software engineering team enhances functionality for the additional requirement in every-increasing spirals until the application is ready for the production phase. The below figure very well explain Spiral Model:
Spiral Model Diagram
Spiral Model Phases
Spiral Model Phases
Activities corresponding each phase
Planning
This phase includes guessing the cost, schedule and resources for the iteration. It also involves understanding the system requirements for continuous communication between the system analyst and the customer
Risk Analysis
Risk Analysis is the Identification of potential risk is done while risk mitigation strategy is planned and finalized
Engineering
The phase includes testing, coding and deploying software at the customer site
Evaluation
This phase concern Evaluation of software by the customer. Similarly, take account of identifying and monitoring risks such as schedule slippage and cost overrun
phase activities
Spiral Model Usage:
Spiral methodology is useful for medium to high-risk projects
When necessities are undecided and complex, Spiral model in SDLC is useful
Where modifications may require at any time
When risk and costs evaluation is important
Where long term project commitment is not feasible due to changes in economic priorities
For a large project spiral model in software engineering is used.
When releases are required to be frequent, spiral methodology is used
When creation of a prototype is applicable
When there is a budget constraint and risk evaluation is important.
For medium to high-risk projects.
Advantages and Disadvantages of Spiral Model
Advantages
Disadvantages
At a later stage Additional functionality or changes can be done.
Risk of not meeting the schedule or budget
Cost estimation becomes easy due to prototype building is done in small fragments
Spiral development works best for large projects only also demands risk assessment expertise
It is Continuous or repeated development helps in risk management
For its smooth operation spiral model protocol needs to be followed strictly
The Development is fast and features are added in a systematic way in Spiral development
In This model the Documentation is more as it has intermediate phases
There is always a space for customer feedback
Spiral software development is not advisable for smaller project, it might cost them a lot.
Changing requirements can be accommodated.
Management is more complex
Users see the system early.
Spiral model process is complex.
The risky parts can be developed earlier which helps in better risk management.
Spiral may go on indefinitely. Large number of intermediate stages requires excessive documentation.
The Basics of Software Quality Attributes: Software Quality Attributes are features that facilitate the measurement of performance of a software product by Software Testing professionals and include attributes such as availability, interoperability, correctness, reliability, learnability, robustness, maintainability, readability, extensibility, testability, efficiency, and portability. High scores in Software Quality Attributes enable software architects to guarantee that a software application will perform as the specifications provided by the client.
Availability This attribute is indicative as to whether an application will execute the tasks it is assigned to perform. Availability also includes certain concepts that relate to software security, performance, integrity, reliability, dependability, and confidentiality. In addition, top-notch availability indicates that a software-driven system will repair any operating faults so that service outage periods would not exceed a specific time value.
Interoperability Software-driven systems could be required to communicate and act in tandem to solve certain tasks. Interoperability describes the ability of two systems to engage in the exchange of information via certain interfaces. Therefore, Software Quality Assurance engineers must examine the interoperability attribute in terms of both syntactic and semantic interoperability.
Performance This attribute pertains to the ability of a software-driven system to conform to timing requirements. From a testing point of view, it implies that Software Testing engineers must check whether the system responds to various events within defined time limits. These events may occur in the form of clock events, process interruptions, messages, and requests from different users, and others.
Testability Software testability indicates how well a software-driven system allows Software Testing professionals to conduct tests in line with predefined criteria. This attribute also assesses the ease with which Software Quality Assurance engineers can develop test criteria for a said system and its various components. Engineers can assess the testability of a system by using various techniques such as encapsulation, interfaces, patterns, low coupling, and more.
Security This attribute measures the ability of a system to arrest and block malicious or unauthorized actions that could potentially destroy the system. The attribute assumes importance because security denotes the ability of the system to protect data and defend information from unauthorized access. Security also includes authorization and authentication techniques, protection against network attacks, data encryption, and such other risks. It is imperative for Software Testing professionals to regularly conduct updated security checks on systems.
Usability Every software-driven system is designed for ease of use to accomplish certain tasks. The attribute of usability denotes the ease with which users are able to execute tasks on the system; it also indicates the kind of user support provided by the system. The most well-known principle for this property is KISS (Keep It Simple Stupid). In addition, Software Quality Assurance engineers must test software to check whether it supports different accessibility types of control for people with disabilities. Usability has a critical and long standing bearing on the commercial fortunes of a software application or package.
Functionality This attribute determines the conformity of a software-driven system with actual requirements and specifications. Most Software Testing professionals view this attribute as crucial and a foremost requirement of a modern application, and would therefore advocate the performance of tests that assess the desired functionality of a system in the initial stages of Software Testing initiatives.
Navigation drawers comes with mesmerizing access to destinations, functionality, switching collapsing tabs. Tabs can either be permanently on-screen or controlled by a navigation menu icon.
Navigation drawers are consumed for:
Apps with five or more top-level targets,
Apps with two or more levels of navigation hierarchy
and Fast navigation between unrelated target.
Tab navigation:
Tabs are a good usage ” navigation” between sibling views. ViewPager is a layout manager which allows to flip left and right through pages of data. ViewPager is most often used in utilization with Fragment.
Primary class used for tabs is TabLayout in the Android Design with Support Library.
One of the two standard adapters for using ViewPager: FragmentPagerAdapter or FragmentStatePagerAdapter. If a ViewPagertogether with this layout, you can call setupWithViewPager(ViewPager) to link the two together. This layout will be automatically populated from the PagerAdapter‘s page titles.
app_bar_main.xml
The app bar or action bar, is one of the most important design elements because it provides a attractive structure and interactive elements that are user friendly. Using the app bar allowing users to quickly understand how to operate your app. The key functions of the app bar are as follows:
indicating and Identity the user’s location in the app. Access to important actions in navigating and view switching with tabs or drop-down lists.
Set up the app bar: Allow add a Toolbar widget to activity, and set it as the activity’s app bar. Add and handle actions:Allow add actions to the app bar and its overflow menu, and how to respond when users choose those actions. Add an up action: Allow add an Up button to your app bar, so users can navigate back to the app’s home screen. Use action views and action providers:Allow to use these widgets to provide advanced functionality in app bar.
Toolbar add TabLayout:
TabLayout provides a horizontal layout to display tabs.Population of the tabs to display is done through TabLayout.Tab instances. Creating tabs via newTab() can change the tab’s label or icon via setText(int) and setIcon(int) respectively. To add it to the layout via one of the addTabvia tab methods. Example App,
tabLayout.addTab(tabLayout.newTab().setText("Tab one"));
FloatingActionButton:
A material design floating action button. A floating action button is a circular icon button to promote a primary action in the application.
Vocabulary is important for practicing English. IELTS Formal and informal word Knowing and using is essential for higher scores. In Speaking and Writing, for both General and Academic students. Speaking part, talking to a office is different from talking with family’s members. Besides in writing, writing an academic essay is different from writing a letter to a close friend.
Using the correct form of language is essential for getting a high score in the writing section. Let’s take a look at the FREQUENT situations and several main differences of formal and informal WORD writing in the IELTS.
Informal
Formal
Sorry
Apologize
Tell
Inform
Need
Require
Ask
Request
Check
Verify
Get
Receive
So
Therefore
Choose
Select
Look for
Seek/Search
Maybe
Perhaps
Say no
Reject
Buy
purchase
Start
Commence
Check
Verify
Help
Assist
Use
Consume
Kids
Children
Call off
Cancel
I think
In my opinion
To sum up
In conclusion
But
however
Point out
indicate
Think about
consider
Empty
Vacant
Worse
Inferior
Hurt
Damage
Want
Desire
Build
Construct
Seem
Appear
mad
Insane
Go up
increase
tough
difficult
book
reserve
In the end
finally
What’s up?
How do you do?
Nice to meet you
It is a pleasure to meet you?
As soon as you can
At your earliest convenience
Worried about you
Concerned about you
To start with/ For a start
Firstly
Say hello to
Give my regards to
Heard from her lately
Have you heard from her lately
Seen her?
Have you seen her?
She’s right
I agree with her,that..
Don’t forget
I would like to remind you that…
Thanks a lot!
I appreciate your assistance!
Because
In light of the fact that
I think..
In my opinion that…
I need to..
It is necessary for me
You don’t hafta
It is not necessary for yo to..
We recommend
It is recommended
Sorry…
Please accept our apologies for…
Another good thing is
Secondly..
What’s more
Besides
Not only that
Furthermore
And one of the best things is…/The most important thing is../And best of all..
Lastly,
She can
She has the ability
They put the plan into action
The plan was implemented/carried out
The place where you want to go
Our destination
I’m sorry to tell you that..
I regret to inform you of..
Could you?
I was hoping that you could
It wasn’t be a problem anymore
It will cease to be a problem
When you get here,
Your arrival
I’m getting tired of this junk.
One grows waery in these matters.
This seemed to fix the problem
This appeared to rectify the problem
Can I help you?
Please State your business
Please get back to me ASAP
I would be grateful if you could reply early
Could you..?
I’d really appreciate it if you could..
We want to
We would like to
Shall I?
Would you like me to.?
To think about
To consider
This shows that..
This demonstrates.
To tell the difference
To distinguish
We’ve received
We are in receipt of
You should revise
Revision should be done
It will do you good
This will be of great benefit to you
What’s going on?
How are you doing?
Just a note to say..
I am writing to inform you..
As we discussed this morning
As per our telephone conversation on today’s date
It would be great if you could attend this event
We would be honored if you would attend this event