Latest Post

Latest POSTS

Features of Java

  • Simple, Small and familiar
  • Compiled and interpreted
  • Platform independent and portable
  • Pure Object_Oriented
  • Distributed
  • Robust
  • Secure
  • High Performance
  • Multithreaded and Interactive
  • Dynamic and Extensible
 Platform Independent:
  • The concept of Write-once-run-anywhere (known as the Platform independent) is one of the important key feature of java language that makes java as the most powerful language. Not even a single language is idle to this feature but java is more closer to this feature.
  • The programs written on one platform can run on any platform provided the platform must have the JVM.
Simple, Small and Familier:
  • There are various features that makes the java as a simple language. Programs are easy to write and debug because java does not use the pointers explicitly.
  • It is much harder to write the java programs that can crash the system but we can not say about the other programming languages.
  • Java provides the bug free system due to the strong memory management. It also has the automatic memory allocation and deallocation system.
Object Oriented:
      To be an Object Oriented language, any language must follow at least the four characteristics.
   Inheritance         
          It is the process of creating the new classes and using the behavior of the existing classes by   extending
          them  just to  reuse  the existing code and adding the additional features as needed. 
   Encapsulation         
          It is the mechanism of combining the information and providing the abstraction.
   Polymorphism          
          As the name suggest one name multiple form, Polymorphism is the way of providing the different       
          functionality by the  functions  having the same name based on the signatures of the methods.
     Dynamic binding  
          Sometimes we don't have the knowledge of objects about their specific types  while writing our code. It is    
          the way  of providing the maximum functionality to a program about the specific type at runtime. 
  • As the languages like Objective C, C++ fulfills the above four characteristics yet they  are not fully object oriented languages because they are structured as well as object oriented languages.
  • But in case of java,  it is a fully Object Oriented language because object is at the outer most level of data structure in java. No stand alone methods, constants, and variables are there in java. Everything in java is object even the primitive data types can also be converted into object by using the wrapper class.
Robust:
  • Java has the strong memory allocation and automatic garbage collection mechanism. It provides the powerful exception handling and type checking mechanism as compare to other programming languages.
  • Compiler checks the program whether there any error and interpreter checks any run time error and makes the system secure from crash. All of the above features makes the java language robust.
Distributed:
  • The widely used protocols like HTTP and FTP are developed in java. Internet programmers can call functions on these protocols and can get access the files from any remote machine on the internet rather than writing codes on their local system.
Portable:
  • The feature Write-once-run-anywhere  makes the java language portable provided that the system must have interpreter for the JVM.
  • Java also have the standard data size irrespective of operating system or the processor. These features makes the java as a portable language.
Dynamic:
  • While executing the java program the user can get the required files dynamically from a local drive or from a computer thousands of miles away from the user just by connecting with the Internet.
Secure:
  • Java does not use memory pointers explicitly. All the programs in java are run under an area known as the sand box. Security manager determines the accessibility options of a class like reading and writing a file to the local disk.         
  • Java uses the public key encryption system to allow the java applications to transmit over the internet in the secure encrypted form. The bytecode Verifier checks the classes after loading.
Performance:
  • Java uses native code usage, and lightweight process called  threads. In the beginning interpretation of bytecode resulted the performance slow but the advance version of JVM uses the adaptive and just in time compilation technique that improves the performance.
Multithreaded:
  • As we all know several features of Java like Secure, Robust, Portable, dynamic etc; you will be more delighted to know another feature of Java which is Multithreaded.
  • Java is also a Multithreaded programming language. Multithreading means a single program having different threads executing independently at the same time.
  • Multiple threads execute instructions according to the program code in a process or a program. Multithreading works the similar way as multiple processes run on one computer.  
  • Multithreading programming is a very interesting concept in Java. In multithreaded programs not even a single thread disturbs the execution of other thread.
  • Threads are obtained from the pool of available ready to run threads and they run on the system CPUs. This is how Multithreading works in Java which you will soon come to know in details in later chapters.
Interpreted:
  • We all know that Java is an interpreted language as well. With an interpreted language such as Java, programs run directly from the source code. 
  • The interpreter program reads the source code and translates it on the fly into computations. Thus, Java as an interpreted language depends on an interpreter program.
  • The versatility of being platform independent makes Java to outshine from other languages. The source code to be written and distributed is platform independent. 
  • Another advantage of Java as an interpreted language is its error debugging quality. Due to this any error occurring in the program gets traced. This is how it is different to work with Java.

Functional specification

In systems engineering a functional specification is a document that clearly and accurately describes the essential technical requirements for items, materials, or services including the procedures by which it can be determined that the requirements have been met. 

         Specifications help avoid duplication and inconsistencies, allow for accurate estimates of necessary work and resources, act as a negotiation and reference document for engineering changes, provide documentation of configuration, and allow for consistent communication among those responsible for the eight primary functions of Systems Engineering. 
                      They provide a precise idea of the problem to be solved so that they can efficiently design the system and estimate the cost of design alternatives. They provide guidance to testers for verification of each technical requirement.

Purpose  :
            There are many purposes for functional specifications. One of the primary purposes on team projects is to achieve some form of team consensus on what the program is to achieve before making the more time-consuming effort of writing source code and test cases, followed by a period of debugging. Typically, such consensus is reached after one or more reviews by the stakeholders on the project at hand after having negotiated a cost-effective way to achieve the requirements the software needs to fulfill. 

Process :
      In the ordered industrial software engineering life-cycle (waterfall model), functional specification describes what has to be implemented. The next, Systems architecture document describes how the functions will be realized using a chosen software environment. In non industrial, prototypical systems development, functional specifications are typically written after or as part of requirements analysis. When the team agrees that functional specification consensus is reached, the functional spec is typically declared "complete" or "signed off". After this, typically the software development and testing team write source code and test cases using the functional specification as the reference. While testing is performed, the behavior of the program is compared against the expected behavior as defined in the functional specification. 

Methods :
        One popular method of writing a functional specification document involves drawing or rendering either simple wire-frames or accurate, graphically designed UI screenshots. After this has been completed, and the screen examples are approved by all stakeholders, graphical elements can be numbered and written instructions can be added for each number on the screen example. For example, a login screen can have the username field labeled '1' and password field labeled '2,' and then each number can be declared in writing, for use by software engineers and later for beta testing purposes to ensure that functionality is as intended. The benefit of this method is that countless additional details can be attached to the screen examples.

Strategies for Risk Management

During the software development process various strategies for risk management could be identified and defined according to the amount of risk influence.

Based upon the amount of risk influence in software development project, risk strategies could be divided into three classes namely careful, typical, and flexible . Generally,careful risk management strategy is projected for new and in experienced organizations whose software development projects are connected with new and unproven technology.

Typical risk management strategy is well-defined as a support for mature organizations with experience in software development projects and used technologies, but whose projects carry a decent number of risks, and flexible risk management strategy is involved in experienced software development organizations whose software development projects are officially defined and based on proven technologies .

Firewalls

A firewall is a set of related programs, located at a network gateway server, that protects the resources of a private network from users from other networks. (The term also implies the security policy that is used with the programs.) An enterprise with an intranet that allows its workers access to the wider Internet installs a firewall to prevent outsiders from accessing its own private data resources and for controlling what outside resources its own users have access to.

    Basically, a firewall, working closely with a router program, examines each network packet to determine whether to forward it toward its destination. A firewall also includes or works with a proxy server that makes network requests on behalf of workstation users. A firewall is often installed in a specially designated computer separate from the rest of the network so that no incoming request can get directly at private network resources.

   There are a number of firewall screening methods. A simple one is to screen requests to make sure they come from acceptable (previously identified) domain name and Internet Protocol addresses. For mobile users, firewalls allow remote access in to the private network by the use of secure log on procedures and authentication certificates.

A number of companies make firewall products. Features include logging and reporting, automatic alarms at given thresholds of attack, and a graphical user interface for controlling the firewall. Computer security borrows this term from firefighting, where it originated. In firefighting, a firewall is a barrier established to prevent the spread of fire.

Front Side Bus (FSB)

  FSB is also known as the Processor Bus, Memory Bus, or System Bus and connects the CPU (chipset) with the main memory and L2 cache. 

The FSB can range from speeds of 66 MHz, 133 MHz, 100 MHz, 266 MHz, 400 MHz, and up. The FSB is now another important consideration when looking at purchasing a computer Motherboard or a new computer.
            The FSB communicates with components through the computer’s chipset. The chipset consists of two processors, known as the Northbridge and the Southbridge. These two chips collect data from specific components, channeling all information to the CPU through the front side bus.
                          The speed of the front side bus is measured in Megahertz or Gigahertz, just like the processor. Most computers' processors run faster than their system buses, so the FSB speed is typically a ratio of the processor speed. For Example :- a Pentium 4 processor that runs at 2.4 GHz may have an FSB speed of only 400 MHz . The CPU to FSB ratio would be 6:1. A Power Mac G5, however, with a 2.0 GHz processor, has a 1.0 GHz front side bus. 
 Therefore, its CPU to FSB ratio is 2:1.


                                                                  Back Side Bus :-