Sunday 24 May 2015

Software Engineering MCQs and Numericals

Multi Platform Testing

STQA Assignment 3 Solved

Click here to download it Questions: Short questions : Que 1 : Define Software Testing. Que 2 : What is risk identification ? Que 3 : What is SCM ? Que 4 : Define Debugging. Que 5 : Explain Configuration audit. Que 6 : Differentiate between white box testing & black box testing. Que 7 : What do you mean by metrics ? Que 8 : What do you mean by version control ? Que 9 : Explain Object Oriented Software Engineering. Que 10 : What are the advantages and disadvantages of manual testing tools ? Long Questions: Que 1 : What do you mean by baselines ? Explain their importance. Que 2 : What do you mean by change control ? Explain the various steps in detail. Que 3 : Explain various types of testing in detail. Que 4 : Differentiate between automated testing and manual testing. Que 5 : What is web engineering ? Explain in detail its model and features.

STQA Assignment 2 solved

Click here to download it Questions: Short questions : Q1: What is stress testing? Q2: What is Cyclomatic complexity? Q3: Define Object Oriented Testing Q4: What is regression testing? When it is done? Q5: How loop testing is different from the path testing? Q6: What is client server environment? Q7: What is graph based testing? Q8: How security testing is useful in real applications? Q9: What are main characteristics of real time system? Q10: What are the benefits of data flow testing? Long Questions: Q1: Design test case for: ERP, Traffic controller and university management system? Q2: Assuming a real time system of your choice, discuss the concepts. Analysis and design factors of same, elaborate Q3: How testing in multiplatform environment is performed? Q4: Explain graph based testing in detail Q5: Differentiate between Equivalence partitioning and boundary value analysis

STQA Assignment 1 (Solved)

Click here to download it as PDF Short Questions Q1: What do you mean by software testing? Q2: What should be the technical leadership quality of a team leader? Q3: What are failure costs? Explain its two types. Q4: What is meant by software process? Q5: Define Six Sigma. Q6: What are software risks? Q7: Differentiate between software quality assurance and quality control. Q8: Why the characteristics of requirements play significant role in selecting a model? Q9: What are the various factors that affect quality? Q10: What are various SQA activities? Long Questions Q1: What are quality assurance standards? Explain ISO 9000, ISO 9001:2000 standard. Q2: Why is prototype necessary? How this approach does save the cost and effort? Q3: Explain RAD model in detail Q4: What are software reviews? Explain Formal Technical Reviews in detail with their guidelines. Q5: Describe project management phases in detail

Explain Communication among Agents in Artificial Intelligence

Artificial Intelligence Assignment 3 Solved

Click here to download it Questions: Short questions : Q1: What are agents? Q2: What is predicate logic? Q3: What is certainty factor? Q4: Define supervised learning. Q5: Define branch and bound algorithm. Q6: What is LISP? Q7: What are facts? Q8: What is probability reasoning? Q9: What is reasoning under uncertainty? Q10: Give examples for heuristic search Long Questions: Q1: Explain Best First Search with example. Q2: Explain and prove Bayes Theorem. What is conditional probability? Q3: What are the steps in natural language processing? List and explain them briefly Q4: Explain partial order planning. Q5: Explain Neural Expert System

Artificial Intelligence Assignment 2 -Solved

Click here to download it Short Questions Q1: Mention the types of knowledge  Q2: What is monotonic reasoning? Q3: When A* is optimal? Q4: What are the various types of informed search? Q5: Name any two AI languages Q6: What are semantic nets? Q7: What is non-monotonic reasoning? Q8: What is FOPL? Q9: What is A* Search? Q10: Give examples for heuristic search Long Questions Q1: Define heuristic search. Discuss benefits and short coming. Q2: Discuss the following heuristic search techniques. Explain the algorithm with the help of example. Best First Search  A* Algorithm Q3: Explain non-monotonic reasoning and discuss various logic related to it. Q4: Explain the difference between forward and backward reasoning and under what conditions each would be best to use for given set of problems. Q5: Write A* algorithm and explain how it is used to find minimal cost path

Artificial Intelligence Assignment-1 Solved

Click here to download the Solved Assignment as PDF Short Questions Q1: What do you mean by AI? Q2: What is State Space Search? Q3: Write any two difference between informed search and blind search Q4: Define heuristic search Q5: What is production system? Q6: Write down the major components of AI Q7: What is knowledge? Q8: Write down the complexity of Breadth First Search Q9: What are the advantages of ai? Q10: What are the applications of ai? Long Questions Q1:  Difference between AI and Expert system? Q2: What is a production system? Explain it with example. Discuss the characteristics of production system Q3: How to define a problem as state space search? Explain it with an example. Q4: Explain turing test with a suitable diagram. Q5: What are task domains of Artificial Intelligence? Explain with example

Arificial Intelligence Notes- Set 6

Artificial Intelligence Notes- Set 5

To Download as .ZIP file click the following link: Click here to download

Artificial Intelligence Notes- Set 4

To Download as .ZIP file click the following link: Click here to download

Artificial Intelligence Notes- Set 3

To Download as .ZIP file click the following link: Click here to download

Artificial Intelligence Notes- Set 2

To Download as .ZIP file click the following link: Click here to download

Artificial Intelligence Notes- Set 1

To Download as .ZIP file click the following link: Click here to download

Thursday 14 May 2015

Blinking Effect by Css



To use above effect just write down the following CSS rules in HEAD section or in external css file :


.blinking{
    animation-name: blinking;   /*  animation name which is attached to .blinking class */
    animation-duration:1s;
      animation-iteration-count:infinite;   /*this effect will run for infinite times*/
      animation-direction: alternate;  

}


@keyframes blinking {
      from {
        opacity:1;
    }

    to {
        opacity:0.7;
    }
}

@-moz-keyframes blinking {
    from {
        opacity:1;
    }

    to {
        opacity:0.7;
    }
}

@-webkit-keyframes blinking {
     from {
        opacity:1;
     }

    to {
        opacity:0.7;
    }
}


After that just assign the class="blinking" to any HTML element to have this effect. To use this in ASP.NET add:

CssClass="blinking"

Note: Sometimes animations not work on Google Chrome, So use Mozilla Firefox


Program to print rhombus in C


#include<stdio.h>
int main( )
{

            int n = 5, inc = 1, i, j,k;     //n is number of stars to be printed in middle row
            for (i = 1; i <= n && i >= 1; i = i + inc)
            {

                for (j = 1; j <= n - i; j++)
                   printf(" ");     //prints a space

                for (k = 1; k <= i;k++ )
                    printf("* ");   //prints star and space

                printf("\n");   //prints a new line

                if (i == n)
                    inc = -1;
            }

             return 0;
}

Program to find missing elements in an array in C


#include<stdio.h>
int main( )
{

        int a[ ]={2,4,7};    //array to be tested
        int n=sizeof(a)/sizeof(a[0]);    //length of array
        int i,j,match;

        for(i=1;i<=9;i++)    //here we are testing the missing elements from 1 to 9
        {
                 match=0;
                 for(j=0; j<n | | (match==0);j++)    //it will loop until the array ends or we found a match
                           if(a[j] = = i)
                                  match=1;
   
                  if(match==0)   //no match found
                         printf("%d  ",i);
         }
     
          return 0;
}

How to find length of an array in C or C++?


To find the length of an array in C or C++, you can use the following:

int n=sizeof(a)/sizeof(a[0]);

Here, a is array

What is Object slicing? Give an example.

When a Derived Class object is assigned to Base class, the base class' contents in the derived object are copied to the base class leaving behind the derived class specific contents. This is referred as Object Slicing. That is, the base class object can access only the base class members. This also implies the separation of base class members from derived class members has happened.
class base
{
     public:
          int i, j;
};
class derived : public base
{
      public:
           int k;
};
int main()
{
      base b;
      derived d;
      b=d;
      return 0;
}
here b contains i and j where as d contains i, j& k. On assignment only i and j of the d get copied into i and j of b. k does not get copied. on the effect object d got sliced.

Pointer to member of class

We can assign the address of a member of a class to a pointer by applying operator & to a "fully qualified" class member name. Pointer to class member can be declared using the operator ::*. For example:

class abc
{
      int x;
      public :
      void show( );
};

Now we can define a pointer to the member x as follows:

int abc::* p=&abc :: x;

The p pointer created thus act like a class member in that it must be invoked with a class object. In the statement above, the phrase abc::* means  "pointer-to-member of abc class". The phrase &abc::x means the "address of the x member of abc class".

abc a;
cout<<a.*p;
cout<<a.x;

Above two statements are identical

How to declare const member functions?

If a member function does not alter any data in the class, then we may declare it as a const member function as follows:

void func(int , int) const;
float sum(float , float) const;

The qualifier const is appended to the function prototypes (in both declaration and definition). The compiler will generate an error message if such functions try to alter the data values of the data members of that class.

Some facts about static member functions in C++

Like static member variable, we can also have static member functions. A member function that is declared static has the following properties:
  1. A static function can have access to only other static members (functions or variables) declared in the same class.
  2. A static member function can be called using the class name (instead of its objects) as follows:
                   class-name  : :  function-name;

Situations where inline expansion may not work

The inline keyword merely sends a request, not a command, to the compiler. The compiler may ignore this request if the function definition is too large or too complicated and compile the function as a normal function.

Some of the situation where inline expansion may not work are:

1. For functions returning value, if a loop, a switch, or a goto exists.
2. For functions not returning values, if a return statement exist.
3. If functions contain static variables.
4. If inline functions are recursive.

Compiler VS Interpreter


Some facts on C/C++

  1. Functions defined in a class are by default inline.
  2. Memory space for the members of a class is allocated when an object of that class is created, not before that(at declaration of the class).
  3. Compiler provides a zero argument constructor only when there is no other constructor defined in the class.
  4. Realloc can be used to reallocate the memory allocated using new operator.
  5. Size of the pointer does not depend on where it is pointing to, it is always the same.
  6. Copy constructor and assignment operators are provided by default by the compiler.
  7. When an object is passed or returned to/from a function by value the copy constructor gets called automatically.
  8. For a template function to work it is mandatory that its definition should always be present in the same file from where it is called.
  9. All static data members are initialized to zero.
  10. For every static data member of a class it should also be defined outside the class to allocate the storage location.

Some facts about comma operator

Consider the following C programs.
// PROGRAM 1
#include<stdio.h>
int main(void)
{
    int a = 1, 2, 3;
    printf("%d", a);
    return 0;
}
The above program fails in compilation, but the following program compiles fine and prints 1.
// PROGRAM 2
#include<stdio.h>
int main(void)
{
    int a;
    a = 1, 2, 3;
    printf("%d", a);
    return 0;
}
And the following program prints 3
// PROGRAM 3
#include<stdio.h>
int main(void)
{
    int a;
    a = (1, 2, 3);
    printf("%d", a);
    return 0;
}

In a C/C++ program, comma is used in two contexts: (1) A separator (2) An Operator.
Comma works just as a separator in PROGRAM 1 and we get compilation error in this program.
Comma works as an operator in PROGRAM 2. Precedence of comma operator is least in operator precedence table. So the assignment operator takes precedence over comma and the expression “a = 1, 2, 3″ becomes equivalent to “(a = 1), 2, 3″. That is why we get output as 1 in the second program.

Some facts about static variable

IN C STATIC VARIABLE CAN BE INITIALIZED USING ONLY CONSTANT LITERALS.........

FOR EXAMPLE :  


static int i=20;
 

 IF WE DO NOT INITIALIZE ANY VALUE THEN......



 FOR EXAMPLE : 

static int i;

then by default value of i will be ZERO.......
MEANS i will be 0  ......



Note: All objects with static storage duration must be initialized   before execution of main() starts......

 FOR EXAMPLE : 

BELLOW PROGRAM WILL GIVE COMPILE TIME ERROR...


#include<stdio.h>
int a( )
{
return 6;
}
main( )
{
static int i=a( );       /* Compile Time Error*/
printf("%d",i);
return 0;
}




Explanation: All objects with static storage duration must be initialized   before execution of main() starts......

Disadvantages of C

The most common disadvantages of C are:
  1. No Run Time Checking mechanism.
  2. Does not support Object Oriented Programming (OOP) features.
  3. No Strict Type Checking.
  4. Does not support Exception Handling.

Features of C

Following are the features of C:
1 . Low Level Features: C Programming provides low level features that are generally provided by the Lower level languages. C is Closely Related to Lower level Language such as Assembly Language.

2 . Portability: C Programs are portable i.e they can be run on any Compiler with Little or no Modification.

3 . Powerful: Provides Wide variety of Data Types, Functions, useful Control  Loop Control Statements

4 . Bit Manipulation: C Programs can be manipulated using bits. We can perform different operations at bit level.

5 . High Level Features: It is more User friendly as compare to Previous languages. Previous languages such as BCPL, Pascal and other programming languages never provide such great features to manage data.

6 . Modular Programming: Modular programming is a software design technique that increases the extent to which software is composed of separate parts, called modules C Program Consist of Different Modules that are integrated together to form complete program.

7 . Efficient Use of Pointers: Pointers has direct access to memory. C Supports efficient use of pointers. .

Multiple Choice Questions of C

Part 1:

      


Part 2:

      


 




Multiple Choice Questions of C++ with solution

List of valid escape sequence

To learn escape sequence you can use following sentence for easy learning

Very Big Farms Need A Red Tractor

So valid escape sequence are:

\v for Vertical Tab
\b for Backspace
\f for Form Feed
\n for Newline(Line Feed)
\a for Alarm(Beep, Bell)
\r for Carriage Return
\t for Horizontal Return


Other escape sequence are:

\\ for Backslash
\' for Single Quotation Mark
\" for Double Quotation Mark
\? for Question Mark

How to read string of any size in C++?

#include<iostream.h>
#include<stdio.h>
#define SIZE 1
void main( )
{
             char* str[SIZE];
             gets(str[0]);         //Read string of any string
             cout<<str[0];      
 }

Function to find whether a given string is a substring of another string

Following function finds whether a given string is a substring of another string. If a given string is a substring of another string it returns 1 which means success, otherwise it will return 0.

int substr(char* str1, char* str2)
{
                  int m, n, i, j;
                  m=n=0;

                  //Find the lengths of strings
                  while(str1[m])
                             ++m;
                  while(str2[n])
                              ++n;

                   for(i=0; i<m-n+1;++i)
                   {
                              for(j=0; j<n;++j)
                                         if(str2[j] != str1[i+j])
                                                       break;
                                
                               if( j == n )
                                         return 1;        //Substring exists
                     }
          
                      return 0;         //Substring does not exists
}

How to concatenate two strings?

The following function will concatenate two strings and return the concatenated strings:

char* strcat(char* str1,char* str2)
{
             int len=0,i=0;
             while(str1[len])     //until a null character founds
                       ++len;

              while(str2[i])         //until a null character founds
              {
                          str1[len]=str2[i];
                          ++i;
                          ++len;
               }
           
               str1[len]='\0';       //terminate the string
               return str1;
}
                 
for e.g.:

strcat("hello","hi");

will return :

hellohi
             

A function to calculate length of string

The following function will calculate the length of a given string
int strlength(char *s)
{
      int len=0;
      while(s[len])  //repeat until a null character is found
            ++len;
      return len;
}

How to sort digits of a number in C++?

To sort digits of a number in C++ the code is as follows:

//Program to sort digits of a number in C
#include<iostream.h>
using namespace std;
int main()
{
int n,temp,digit;
cout<<"Enter the number: ";
cin>>n;
for(digit=0;digit<=9;++digit)   //traverse the digits from 0 to 9
      for(temp=n;temp>0;temp/=10)  //temp/=10 means temp=temp/10
                  if(temp%10 = = digit)
                        cout<<digit;
return 0;
}

How to sort digits of a number in C?

To sort digits of a number in C the code is as follows:

//Program to sort digits of a number in C
#include<stdio.h>
int main()
{
int n,temp,digit;
printf("Enter the number: ");
scanf("%d",&n);
for(digit=0;digit<=9;++digit)   //traverse the digits from 0 to 9
      for(temp=n;temp>0;temp/=10)  //temp/=10 means temp=temp/10
                  if(temp%10 = = digit)
                        printf("%d",digit);
return 0;
}

What is difference between C & C++?



Following are the differences between C & C++:

                              C                              C++
1. C is Procedural Language.1. C++ is non Procedural i.e Object oriented Language.
2. No virtual Functions are present in C2. The concept of virtual Functions are used in C++.
3. In C, Polymorphism is not possible.3. The concept of polymorphism is used in C++.
Polymorphism is the most Important Feature of OOPS.
4. Operator overloading is not possible in C.4. Operator overloading is one of the greatest Feature of C++.
5. Top down approach is used in Program Design.5. Bottom up approach adopted in Program Design.
6. No namespace Feature is present in C Language. 6. Namespace Feature is present in C++ for avoiding Name collision.
7. Multiple Declaration of global variables are allowed.7. Multiple Declaration of global variables are not allowed.
8. In C
  • scanf() Function used for Input.
  • printf() Function used for output.
8. In C++
  • Cin>> Function used for Input.
  • Cout<< Function used for output.
9. Mapping between Data and Function is difficult and complicated.9. Mapping between Data and Function can be used using "Objects"
10. In C, we can call main() Function through other Functions 10. In C++, we cannot call main() Function through other functions.
11. C requires all the variables to be defined at the starting of a scope.11. C++ allows the declaration of variable anywhere in the scope i.e at time of its First use.
12. No inheritance is possible in C.12. Inheritance is possible in C++
13. In C, malloc() and calloc() Functions are used for Memory Allocation and free() function for memory Deallocating.13.In C++,  new and delete operators are used for Memory Allocating and Deallocating.
14. It supports built-in and primitive data types.14. It support both built-in and user define data types.
15. In C, Exception Handling is not present.15. In C++, Exception Handling is done with Try and Catch block.
16. ANSI C recognizes only the first 32  characters in identifier names.16. ANSI C++ places no limits on its length.
17.In ANSI C, we can assign a void pointer to a non-void pointer without using a cast to non-void pointer type. For example:

void *ptr1;
char *ptr2;
ptr2=ptr1;
17. In ANSI C++ we must use cast operator as shown below:

ptr2=(char *) ptr1;
18. ANSI C does not require an initializer; if none is given, it initializes the const to 018. C++ requires a const to be initialized.
19. In C character constants are stored as int, therefore,
sizeof('a')
is equivalent to
sizeof(int)

19. In C++ char is not promoted to the size of int, and therefore,
sizeof('a')
is equivalent to
sizeof(char)
20. In C, the global version of a variable cannot be accessed from within the inner block. 20. In C++, this problem is resolved by the introduction of a new operator : : called the scope resolution operator.
21. C notation for type casting is:

(type) expression
21. C++ notation for type casting is:

type (expression)
22. In C struct keyword is necessary while creating a object of structure. For example:

struct student a;
22. In C++ struct keyword is not necessary while creating a object of structure. For example:

student a;

Authentication and Authorisation


Authentication
Authentication is the process of verifying the identity of a user using some credentials like username and password. Authentication merely ensures that the individual is who he or she claims to be, but says nothing about the access rights of the individual.

Authorization
The process of granting or denying access to a network resource.  Authorization determines the parts of the system to which a particular identity has access. 

Authentication is required before Authorization.

For e.g. If an employee authenticates himself with his credentials on a system, authorization will determine if he has the control over just publishing the content or also editing it

ALGOL COBOL

ALGOL stands for ALGOrithimic Language

COBOL stands for COmnon Business Oriented Language 

Features of OOPS

Features of OOPS are:

  1. Abstraction 
  2. Encapsulation 
  3. Inheritance 
  4. Modularity 
  5. Polymorphism 

Origin of C


C is a programming language developed at AT & T's Bell Laboratories of USA in 1972. It was designed and written by Dennis Ritchie.
Possibly why C seems so popular is because it is reliable, simple and easy to use.


When we mention the prototype of a function are we defining the function or declaring it?

We are declaring it. When the function, along with the statements belonging to it is mentioned, we are defining the function.

What are the differences between a declaration and a definition?

There are two differences between a declaration and a definition:

  1. In the definition of a variable space is reserved for the variable and some initial value is given to it, whereas a declaration identifies the type of the variable.
  2. Redefinition is an error, whereas, redeclaration is not an error.
Example of Definition:
int a=10;
char  ch='A';

Example of Declaration:
extern int a;
extern char ch;

What are portable programs?


Portable programs are the programs that would be compiled successfully by different compilers without any need to make changes in the program to suit a particular compiler.
Though hundred percent probability may not always be possible, it is good idea to reduce compiler dependencies to the extent possible


Device Drivers and Embedded Systems are created in C


Device Drivers and Embedded Systems are created in C. Also major part of popular operating system like Windows, UNIX, LINUX are still written in C. This is because even today when it comes to performance(speed of execution) nothing beats C. The programs on Embedded systems not only have to run fast but also have to work in limited amount of memory, and are written in C


What is a Programming Paradigm?

Programming Paradigm means the principle that is used for organizing programs. There are two major Programming Paradigms:

  1. Structured Programming
  2. Object Oriented Programming(OOP)

C language uses the Structured Programming Paradigm, whereas, C++, C#, VB.NET or Java make use of OOP

Tuesday 12 May 2015

Cloud Computing Notes


Automation in Cloud: Click here to download it

Cloud Security: Click here to download it

Cloud Agility: Click here to download it

Cloud Computing: Click here to download it

A vertical Cloud: Click here to download it

Identity as a Service: Click here to download it

Big Data: Click here to download it

Precursor Technologies: Click here to download it

Virtualisation-1: Click here to download it

Virtualisation-2: Click here to download it

Deployment Models: Click here to download it

ABI and API: Click here to download it

Security issues: Click here to download it

SSL: Click here to download it

Vertical VPC: Click here to download it

XML: Click here to download it


Cloud Computing Assignment 3 Solved

What is Difference Between HTTP and HTTPS Protocol?


HTTP
Hypertext Transfer Protocol (HTTP) is a protocol used in networking. When you type any web address in your web browser, your browser acts as a client, and the computer having the requested information acts as a server. When client requests for any information from the server, it uses HTTP protocol to do so. The server responds back to the client after the request completes. 


HTTPs
Hypertext Transfer Protocol Secure (HTTPS) is a combination of two different protocols. It is more secure way to access the web. It is combination of Hypertext Transfer Protocol (HTTPS) and SSL/TLS protocol. It is more secure way to sending request to server from a client, also the communication is purely encrypted which means no one can know what you are looking for. This kind of communication is used for accessing those websites where security is required. Banking websites, payment gateway, emails (Gmail offers HTTPS by default in Chrome browser), and corporate sector websites are some great examples where HTTPS protocols are used.
For HTTPS connection, public key trusted and signed certificate is required for the server. These certificate comes either free or it costs few dollars depends on the signing authority. There is one other method for distributing certificates. Site admin creates certificates and loads in the browser of users. Now when user requests information to the web server, his identity can be verified easily.

The main motivation for HTTPS is to provide authentication of the visited website and prevent wiretapping and man-in-the-middle attacks.
Here are some major differences between HTTP and HTTPS:
HTTPHTTPS
URL begins with “http://”URL begins with “https://”
It uses port 80 for communicationIt uses port 443 for communication
UnsecuredSecured
Operates at Application LayerOperates at Transport Layer
No encryptionEncryption is present
No certificates requiredCertificates required

Cloud Computing Assignment 2- Solved

Types of Cloud


Based on deployment model

The deployment model tells you where the cloud is located and for what purpose. On the basis of deployment model following are the types of cloud:
  • Public 
  • Private
  • Community 
  • Hybrid

Based on Service Model

Service model describe the type of service that the service provider is offering. The best-known service models are:
  • Software as a Service
  • Platform as a Service
  • Infrastructure as a Service
This is also known as SPI model


What is cloud computing?


Cloud Computing refers to applications and services that run on distributed network using visualized resources and accessed by common Internet protocols and networking standards. In cloud computing, resources are virtual and limitless and details of the physical systems on which software runs are abstracted(hidden) from the user.


Cloud Computing PPT 3

Cloud Computing Assignment 1 (Solved)

Cloud Computing PPT 2

Various cloud deployment models.


Click here to download it as PDF


Cloud services can be deployed in different ways, depending on the organizational structure and the provisioning location. Four deployment models are usually distinguished, namely public, private, community and hybrid cloud service usage.

Public Cloud

The deployment of a public cloud computing system is characterized on the one hand by the public availability of the cloud service offering and on the other hand by the public network that is used to communicate with the cloud service. The cloud services and cloud resources are procured from very large resource pools that are shared by all end users. These IT factories, which tend to be specifically built for running cloud computing systems, provision the resources precisely according to required quantities. By optimizing operation, support, and maintenance, the cloud provider can achieve significant economies of scale, leading to low prices for cloud resources. In addition, public cloud portfolios employ techniques for resource optimization; however, these are transparent for end users and represent a potential threat to the security of the system. If a cloud provider runs several datacenters, for instance, resources can be assigned in such a way that the load is uniformly distributed between all centers.
Three users accessing a public cloud
Figure 1: Three users accessing a public cloud

Some of the best-known examples of public cloud systems are Amazon Web Services (AWS) containing the Elastic Compute Cloud (EC2) and the Simple Storage Service (S3) which form an IaaS cloud offering and the Google App Engine with provides a PaaS to its customers. The customer relationship management (CRM) solution Salesforce.com is the best-known example in the area of SaaS cloud offerings.

Private Cloud

Private cloud computing systems emulate public cloud service offerings within an organization’s boundaries to make services accessible for one designated organization. Private cloud computing systems make use of virtualization solutions and focus on consolidating distributed IT services often within data centers belonging to the company. The chief advantage of these systems is that the enterprise retains full control over corporate data, security guidelines, and system performance. In contrast, private cloud offerings are usually not as large-scale as public cloud offerings resulting in worse economies of scale.
A user accessing a private cloud
Figure 1: A user accessing a private cloud

Community Cloud

In a community cloud, organizations with similar requirements share a cloud infrastructure. It may be understood as a generalization of a private cloud, a private cloud being an infrastructure which is only accessible by one certain organization.
Three users accessing a community cloud
Figure 3: Three users accessing a community cloud

 

 Hybrid Cloud

A hybrid cloud service deployment model implements the required processes by combining the cloud services of different cloud computing systems, e.g. private and public cloud services. The hybrid model is also suitable for enterprises in which the transition to full outsourcing has already been completed, for instance, to combine community cloud services with public cloud services.
Hybrid cloud usage
Figure 4: Hybrid cloud usage