Saturday, 18 May 2013

New Trends in Software Development


The world is ever dynamical, and this is often very true once it involves software system development. IT professionals ar expected to require on new challenges as they seem, since being up to this point equals to staying productive and profitable within the IT business. the subsequent new trends in software system development ar expected to create a mark for the future years.

High performance computing moving to the cloud

There is a reason why cloud computing goes forward and additional and additional firms opt to move their high performance computing to the cloud. the flexibility the personal and therefore the public cloud offers for business applications takes this model of software system development to consequent level. Now, software system tools or applications is developed within the personal cloud, so as to point out effects and be effectively utilized in the general public cloud.

The most vital facet of cloud computing is that it permits firms to chop prices on hardware and development. With cloud computing, additional correct and economical prediction models ar expected to be developed.

Location primarily based apps

Being mobile has been fashionable for years currently, however with the mixing of GPS functionalities, location becomes even additional vital. the flexibility to develop applications with specialise in location are thought of of the utmost importance within the close to future. Knowing wherever shoppers ar so as to produce them with promptly out there data with reference to their location can facilitate businesses flourish within the following years. Facebook places and Foursquare represent simply the tip of the iceberg and a sample of what's to come back in terms of location primarily based applications.

Going agile

The recent model of developing software system tools from bottom to high is not any longer as economical as within the past. Agile methodologies ar currently most popular, as a result of they permit lowering any project in chunks referred to as iterations. The recent unidirectional  communication approach is not any longer in situ. groups will currently work on a similar project and exchange data and proposals on a daily basis, so as to make an improved, additional economical product, with a reduced time cycle.

Mobile: the new parcel of land

With additional and additional individuals feat mobile devices for human action, shopping, sharing and reading reviews, and for several different functionalities, it ought to return as no surprise that the parcel of land for software system development can move to the mobile market. the main target are placed on developing software system applications for shoppers victimisation their mobile devices on a daily basis.

Web 3.0

Web 2.0 has created a revolution within the method the globe Wide internet was being employed by shoppers. Now, the globe is prepared for internet three.0 or the linguistics internet because it is additionally referred to as. it's now not enough to possess access to an oversized amount of knowledge. This information should be coupled, created clear, and therefore the new technologies that ar getting to be developed within the years to come back should focus on their internet three.0 part.

IT professionals should reply to the new challenges for software system development for the subsequent years.

Sunday, 12 May 2013

Software - Old Software Is Just, Old Software


Remember the good old days when you fired up your PC, all 64K of it? Boy, they sure don't make them like that anymore, the PCs or the software that ran on them. If you're attempting to run any of those gems on a turbo 4 gigahertz Windows 2000 or XP model, you've got a very long wait before you see anything but a blank screen. But it sure was fun playing with some of those not so great pieces of, well, whatever they were.
Need some reminders?
Why don't we start with Visicalc for the Apple III? This was basically a Lotus 123 knock off. It ran in DOS, or the DOS equivalent for Apple and did basic spreadsheet functions. It wasn't too fancy and the only interface you had was your keyboard, so forget about drag and drop or anything like that. The color was a very ugly yellow border on a green background. You could only have one worksheet at a time as there was no windows. This was around 1984.
Then of course you had all the great IBM PC gems like Lotus 123 itself. The look was basically the same as Visicalc, except it did come first. This actually did run in DOS 3.0 when it first came out. Versions ran all the way until DOS 6.0 until they finally came out with Windows 3.1.
In 1985 a company by the name of Aldus came out with a piece of software called PageMaker. It was made for the MAC and was one of the first desktop publishing softwares made. PageMaker actually started a whole desktop publishing craze for the MAC. A couple of years later they did release a version for the IBM series.
Also that year, the C++ programming language came out. This was supposed to be an all purpose language that was more powerful than the BASIC language that came with your PC. C++ was supposed to be for the more "serious" programmer. While it was able to get more into the core of the machine, it still pales in comparison to the languages of today.
We now move on to 1987. That year a guy by the name of William Atkinson came up with a piece of software called HyperCard. This was something that was supposed to make it easier to design in house applications. The program was made interactive instead of language based. Basically, what programmers did was build stacks and links between pages. The software itself was actually given away free with every Apple computer until 1992.
Unlike old movies that just seem to get better with time, old software is just that, old. Almost none of it can be run any longer unless it's been updated, in which case it's not old anymore. And the truth is, a lot of the old software of the early 80s and 90s was pretty bad. It just about was able to do what you wanted it to and if you tried to push most of it even a little, it would crash and burn on you.
No, there is no need to keep any of this stuff around any longer.


Monday, 6 May 2013

Open Source Software: Benefits and Disadvantages


Open Source software has been responsible for several innovations in the tech world, including the Linux operating system and Mozilla Firefox browser, to name just a couple. Today, open source software is being regarded as more and more of a valuable asset to companies.
Open source software allows for complete collaboration to occur. Because this type of software allows anyone in information technology to dissect, examine and alter a product's source code, anyone can distribute their own version for sale and profit. The ability for such freedom in source code manipulation is what has allowed many companies to continuously improve their products, a move that's vital if the goal is to compete in the marketplace. But as with everything, open source has two sides, positive and negative.
Advantages
For users of this widely used technology, the ability to download and use software at no cost is a big positive. Open source software developers don't feel the same pressure to profit as those working with larger corporations. Therefore, improvements made to their code can be more focused toward what each user may need, and less to what will appeal to the mass market.
The benefit to developers is that more time can be spent on the improvement of existing software. This can mean much less risk for bugs, as time can be taken in solving issues before the software is released to the market instead of being quickly altered for stability prior to release.
Open source software can be installed numerous times and in numerous locations without the need for tracking or monitoring, such as is usually the case with licensed software. This is a definite benefit for companies.
And, this type of software can continue its existence even if the company who created it fails, as it can then become a part of the user and developer community to manipulate as they see fit.
Disadvantages
Competition is a definite con of open source. Because everyone can have access to the code, including developers, competing products can easily be created. As well, since the code is public, any mistakes made by developers can be as well, meaning a developer's reputation can become quickly tarnished.
In some cases, open source software may require specialized operating knowledge by the user. One good example is the Linux operating system, which requires much more than navigating menus and choosing options to configure. A user without this knowledge may also find no help in the software documentation, which can be vague if it exists at all.
And although it's largely offered at no cost, this doesn't necessarily mean that open source is completely free to develop or to use. Situations can arise which may require paid administration and support costs to be submitted.
Ultimately, it is the end-user who will judge the usefulness of the free technology. Therefore, every benefit and disadvantage should be carefully made when attempting to make the decision of switching to open source.

Friday, 3 May 2013

Why Do We Need Software Testing ?


For any company developing software, at some point pressure to reach the deadline in order to release the product on time will come into play. Additional pressure from project stakeholders, such as 'Marketing' will not want to delay the release date as significant effort and money may have already been spent on an expected release date.   
Quite often, planned time to test the software (e.g. ascertain its quality - QA) will become reduced so as not to impact the release date. From a pure business perspective, this can be seen as a positive step as the product is reaching the intended customers on time. Careful consideration should be taken though as to the overall impact of a customer finding a 'bug' in the released product. Maybe the bug is buried deep within a very obscure functional area of the software product, and as the impact only results in a typo within a seldom-used report, the level of impact is very low. In this case, the effect on the business for this software company would probably be insignificant. But what if the bug resulted in the program crashing and losing data? Maybe this software product is used within an air traffic control system? As you can imagine, the impact of this type of bug could be incredibly high and may result in loss of life and destroying the entire company responsible. So basically, the level of risk of a bug being found (likelihood) and what is the effect of the bug (impact) prove to be critical in how much software testing is performed prior to a products release.

Due to the complexity of modern software it is impossible to ensure that software is bug-free.......it really is!
Imagine a simple form on a software application that was designed to accept one of ten specific values, in order to test this completely, you would need to create a test case for each and every permutation of the entries that could be entered by the user, for example:
10(inputs) to the 10(values)th power
10 to the 10th power
Result = 10,000,000,000 test cases
So, if you were the tester hired to perform the testing, and it only took you one second to perform each test case, it would take around 317 years to complete. Therefore, the test planning should take into consideration what is actually 'achievable.'
Software testing (synonymous with the term Quality Assurance) itself can have many different purposes (quality assurance, validation, performance etc). This is a key decision when planning the QA /software testing, as not testing enough or testing in the wrong areas will inevitably result in missed bugs. The aim should be first ascertaining 'why' we are going to test and not simply 'what' we are going to test.
Software testing and or Quality Assurance is still a kind of art, mainly due to a limited understanding of the complexities of modern software. Recent years has seen the development of software testing certification such as ISEB and ISTQB. This is good news for the software industry as a whole, as the more experienced a software tester is then the level of quality of the software they are testing can only increase.
Software testing cannot ensure software is bug-free, but it CAN increase software quality.

Tuesday, 30 April 2013

Software Based Vs Hardware Based

Software License Protection is means the security solution where software developers use to integrate into their software applications with the intention to prevent unauthorized usage or illegal execution of their software. Software developers can either purchase Software License Protection solutions from third party solution providers or develop it in-house. Currently, there are 2 common Software License Protection methods, i.e. Software based and Hardware based.
Software based Software License Protection is the earliest protection method available and usually the protected application will require user to key in Serial No., License Key or Unlock Code to activate the software license. Most of the third party Software License Protection provider will provide a ready made encryption engine of which software developers can use this to encrypt their software applications as to add the protection layer onto their software applications. Usually, the protection will tie with some unique ID from the computer system such as Hard Disk ID or Network Card ID. Also due to this reason, usually if there is any hardware problem such as Hard Disk or Network Card spoiled, license re-activation will be needed. It will also means the Software Developers will need to keep track and verify the License Key reissue request from the end users, of which some end users might try to take advantage on it. As Software based Protection do not come with any additional devices, it will have to store all the licensing information into the computer system and mostly hide it inside registry.
Pro
- Lower ownership cost
Most probably it is cheaper than Hardware based in long run if you purchase from third party provider with one-off purchase (without license loyalty model).
- Easier to implement
Usually it comes with limited security features and thus the implementation can be easier.
Con
- Lower security
As Software based can only store and hide all the protection information into the computer system, it will come with higher risk as hackers are able to find those information easily and perhaps crack it.
- Too dependent on computer hardware
Most Software based protections are too computer hardware dependent and thus if any computer hardware problem, reinstallation or license reactivation will be required. There are also possibilities some end users will try to take advantage of it by requesting additional license keys for additional workstations instead.
Hardware based Software License Protection is now the most popular protection method where the end user will require to plug in the valid hardware device to the computer in order to run the application. Third party provider will sell the devices which is commonly called Dongles together with software SDK for software developers to do the integration. Usually for Hardware based Software License Protection, end user will not require to key in any Serial No., License Key nor Unlock Code, just plug in the Dongle and run the application, the protection will authenticate the license through Dongle. There are many different forms of Dongles available in the market and the most advanced Dongles are now built based on MCU Smart Card of which it is able to provide very maximum protection and thus make hacking almost impossible. As now, software developers are able to determine your software licenses with their Dongles thus make software distribution much easier and more secure.
Pro
-Higher security
A good Dongle can provide very maximum security if software developers implement it in the right way. As Software developers not only able store the license information inside the Dongle but also able to perform many others security features onboard of which it will certainly make hacking more difficult. The lasted MCU Smart Card based Dongles will make hacking such protection like hacking our EMV Credit Cards, at least it is impossible with today hacking technology.
-Better software distribution
With Dongle, software developers will be able to distribute their software as ready-pack product and thus make many different software distribution models possible.
Con
-Higher cost per license
As the protected software will need to distribute together with Dongle, it will add into the software costing as well.
-Compatibility issue
Some Dongle might have some compatibility problem to certain environment such as different OS, different network settings or even different firewall configuration. Choosing the proven and well-known Dongle will be able to eliminate such issue.
Different software developers might have different preferences on selecting either Software based or Hardware based Software License Protection into their software applications. The common factors influence their decisions are as below:-
Total Cost of Ownership
-This will include overall investment on acquire such protection method which can be the Initial cost to obtain, cost to integrate and cost per software license. Most importantly, will the choice taken provide positive return on investment.
Time to Roll-Out
-Overall implementation time, will this protection affect the software roll out schedule or will the integration consume too much of our resources to accomplish it. A good protection strategy should find the right balance point among this consideration.
Security
-How strong can the protection method combat against the potential threat of being pirated, usually higher value software might require higher security protection then low value mass market software.
Business Model
-Whether the protection method can best suit into their overall business model of which will include product distribution, product pricing, licensing management and of course marketing activities.

Tuesday, 16 April 2013

Learning the Basics of Software Development

Software development is a discipline in the computer science field focusing on the creation of programs that control computer hardware. These computer programs, also known as "software applications" or "apps" for short, are groups of instructions which tell a computer what to do. The software development field, containing many different computer programming languages each designed to fulfill various requirements depending on the project at hand.
It is almost unbelievable to think early programmers did not even have desktop computers to work with, instead punching instructions into paper cards to input into a mainframe computer centrally located in a "machine room". These early instructions were written in what is known as assembly language or machine code, the native language used by all computers. As software development evolved, "higher level" languages were developed patterning natural languages and better reflecting the human problem-solving process. Assembly language is still used today, especially by low-level engineers developing computer components and embedded systems. However, most desktop and web-based development is conducted in high-level languages such as ASP, C++, C#, Java, Perl, etc.
If you ask a hundred programmers, "What is the best programming language for beginners?" you will get one hundred and one answers. Everyone has an opinion, and then some. The question is akin to asking what is the best vehicle to drive - there is simply no right or wrong answer. Some general guidelines do exist, fortunately, to get the novice programmer off to a good start. Those who are completely new to computers and unsure whether they are up to the task (or whether software development will be of interest) should start with a language that is designed to teach basic principles with as little complexity as possible. The BASIC and LOGO programming languages were early attempts to bring computer programming to the masses. Nowadays a language like Microsoft's Visual Basic would be ideal for a beginner. Visual Basic allows you to make practical applications with a visual interface in a matter of hours without getting bogged down by the technical details other more advanced languages. Unlike BASIC and LOGO, Visual Basic has practical applications that can be used in both casual and commercial environments.
Those who are technically inclined or already have a fair amount of experience with computers may be prepared for more advanced programming concepts. For years, Pascal was typically the entry language for such people, used in schools and universities to teach programming at a professional level. Nowadays more "practical" languages like C++, C#, and Java are taught, as they provide a more direct approach to learning how to develop software with tools that are more commercially viable than Pascal.
Programming is not just for nerds or geeks! Its for people who want to succeed online! Learning a software development language can benefit even those who do not specifically pursue bespoke software development as a career or hobby. Learning how to program will help you become more logical in thinking and develop a greater awareness of how computers operate. You will be able to speak more intelligently to other computer professionals you may work with throughout the course of your career.

Monday, 15 April 2013

An Overview of Software Patenting

The concept of "intellectual property" in India over the last few years has taken on some epic proportions for a number of reasons. One of the primary reasons, attributable to the growing awareness among the urban Indian population, is of the significance and, more importantly, the commercial benefits in protecting its intellectual property rights both within and outside India. And under traditional principles of intellectual property protection, patent law is to encourage scientific research, new technology and industrial progress. The fundamental principle of patent law is that the patent is granted only for an invention i.e. new and useful the said invention must have novelty and utility. The grant of patent thus becomes of industrial property and also called an intellectual property. And the computer software is a relatively new recipient of patent protection.
The term "Patent'' has its origin from the term "Letter Patent''. This expression 'Letter Patent' meant open letter and were instruments under the Great Seal of King of England addressed by the Crown to all the subjects at large in which the Crown conferred certain rights and privileges on one or more individuals in the kingdom. It was in the later part of the 19th century new inventions in the field of art, process, method or manner of manufacture, machinery and other substances produced by manufacturers were on increased and the inventors became very much interested that the inventions done by them should not be infringed by any one else by copying them or by adopting the methods used by them. To save the interests of inventors, the then British rulers enacted the Indian Patents and Design Act, 1911.


With respect to patentability of software -related inventions, it is currently one of the most heated areas of debate. Software has become patentable in recent years in most jurisdictions (although with restrictions in certain countries, notably those signatories of the European Patent Convention or EPC) and the number of software patents has risen rapidly.
MEANING OF SOFTWARE PATENTING
The term "software" does not have a precise definition and even the software industries fails to give an specific definition. But it is basically used to describe all of the different types of computer programs. Computer programs are basically divided into "application programs" and "operating system programs". Application programs are designed to do specific tasks to be executed through the computer and the operating system programs are used to manage the internal functions of the computer to facilitate use of application program.
Though the term 'Software patent' does not have a universally accepted definition. One definition suggested by the Foundation for a Free Information Infrastructure is that a software patent is a "patent on any performance of a computer realized by means of a computer program".
According to Richard Stallman, the co-developer of the GNU-Linux operating system and proponent of Free Software says, "Software patents are patents which cover software ideas, ideas which you would use in developing software.
That is Software patents refer to patents that could be granted on products or processes (including methods) which include or may include software as a significant or at least necessary part of their implementation, i.e. the form in which they are put in practice (or used) to produce the effect they intend to provide.
Early example of a software patent:
On 21st Sep 1962, a British patent application entitled "A Computer Arranged for the Automatic Solution of Linear Programming Problems" was filed. The invention was concerned with efficient memory management for the simplex algorithm, and may be implemented by purely software means. The patent was granted on August 17, 1966 and seems to be one of the first software patents.
CONCEPTUAL DIFFERENCE BETWEEN COPYRIGHT AND PATENT
Software has traditionally been protected under copyright law since code fits quite easily into the description of a literary work. Thus, Software is protected as works of literature under the Berne Convention, and any software written is automatically covered by copyright. This allows the creator to prevent another entity from copying the program and there is generally no need to register code in order for it to be copyrighted. While Software Patenting has recently emerged (if only in the US, Japan and Europe) where, Patents give their owners the right to prevent others from using a claimed invention, even if it was independently developed and there was no copying involved.
Further, it should be noted that patents cover the underlying methodologies embodied in a given piece of software. On the other copyright prevents the direct copying of software, but do not prevent other authors from writing their own embodiments of the underlying methodologies.
The issues involved in conferring patent rights to software are, however, a lot more complex than taking out copyrights on them. Specifically, there are two challenges that one encounters when dealing with software patents. The first is about the instrument of patent itself and whether the manner of protection it confers is suited to the software industry. The second is the nature of software, and whether it should be subject to patenting.

However, issues involved in conferring patent rights to software are a lot more complex than taking out copyrights on them. Specifically, there are two challenges that one encounters when dealing with software patents. The first is about the instrument of patent itself and whether the manner of protection it confers is suited to the software industry. The second is the nature of software and whether it should be subject to patenting.
a) Different Subject Matters
Copyright protection extends to all original literary works (among them, computer programs), dramatic, musical and artistic works, including films. Under copyright, protection is given only to the particular expression of an idea that was adopted and not the idea itself. (For instance, a program to add numbers written in two different computer languages would count as two different expressions of one idea) Effectively, independent rendering of a copyrighted work by a third party would not infringe the copyright.
Generally patents are conferred on any 'new' and 'useful' art, process, method or manner of manufacture, machines, appliances or other articles or substances produced by manufacture. Worldwide, the attitude towards patentability of software has been skeptical.
b) Who may claim the right to a patent /copyright?
Generally, the author of a literary, artistic, musical or dramatic work automatically becomes the owner of its copyright.
The patent, on the other hand is granted to the first to apply for it, regardless of who the first to invent it was. Patents cost a lot of money. They cost even more paying the lawyers to write the application than they cost to actually apply. It takes typically some years for the application to get considered, even though patent offices do an extremely sloppy job of considering.
c) Rights conferred
Copyright law gives the owner the exclusive right to reproduce the material, issue copies, perform, adapt and translate the work. However, these rights are tempered by the rights of fair use which are available to the public. Under "fair use", certain uses of copyright material would not be infringing, such as use for academic purposes, news reporting etc. Further, independent recreation of a copyrighted work would not constitute infringement. Thus if the same piece of code were independently developed by two different companies, neither would have a claim against the other.
A patent confers on the owner an absolute monopoly which is the right to prevent others from making, using, offering for sale without his/her consent. In general, patent protection is a far stronger method of protection than copyright because the protection extends to the level of the idea embodied by a software and injuncts ancillary uses of an invention as well. It would weaken copyright in software that is the base of all European software development, because independent creations protected by copyright would be attackable by patents. Many patent applications cover very small and specific algorithms or techniques that are used in a wide variety of programs. Frequently the "inventions" mentioned in a patent application have been independently formulated and are already in use by other programmers when the application is filed.

d) Duration of protection
The TRIPS agreement mandates a period of at least 20 years for a product patent and 15 years in the case of a process patent.
For Copyright, the agreement prescribes a minimum period of the lifetime of the author plus seventy years.
JURISDICTIONS OF SOFTWARE PATENTING
Substantive law regarding the patentability of software and computer-implemented inventions, and case law interpreting the legal provisions, are different under different jurisdictions.
Software patents under multilateral treaties:
o Software patents under TRIPs Agreement
o Software patents under the European Patent Convention
o Computer programs and the Patent Cooperation Treaty
Software patenting under TRIPs Agreement
The WTO's Agreement on Trade-Related Aspects of Intellectual Property Rights (TRIPs), particularly Article 27, are subject to debate on the international legal framework for the patentability of software, and on whether software and computer-implemented inventions should be considered as a field of technology.
According to Art. 27 of TRIPS Agreement, patents shall be available for any inventions, whether products or processes, in all fields of technology, provided that they are new, involve an inventive step and are capable of industrial application. (...) patents shall be available and patent rights enjoyable without discrimination as to the place of invention, the field of technology and whether products are imported or locally produced."
However, there have been no dispute settlement procedures regarding software patents. Its relevance for patentability in the computer-implemented business methods, and software information technology remains uncertain, since the TRIPs agreement is subject to interpretation.
Software patents under the European Patent Convention
Within European Union member states, the EPO and other national patent offices have issued many patents for inventions involving software since the European Patent Convention (EPC) came into force in the late 1970s. Article 52 EPC excludes "programs for computers" from patentability (Art. 52(2)) to the extent that a patent application relates to a computer program "as such" (Art. 52(3)). This has been interpreted to mean that any invention which makes a non-obvious "technical contribution" or solves a "technical problem" in a non-obvious way is patentable even if a computer program is used in the invention.
Computer-implemented inventions which only solve a business problem using a computer, rather than a technical problem, are considered unpatentable as lacking an inventive step. Nevertheless, the fact that an invention is useful in business does not mean it is not patentable if it also solves a technical problem.
Computer programs and the Patent Cooperation Treaty
The Patent Cooperation Treaty (PCT) is an international patent law treaty, which provides a unified procedure for filing patent applications to protect inventions. A patent application filed under the PCT is called an international application or PCT application. Under the PCT, the international search and the preliminary examination are conducted by International Searching Authorities (ISA) and International Preliminary Examining Authority (IPEA).
CURRENT TREND
However, before we start hailing the advent of a new era and equating the patenting of software in India it would be well worth our while to take a pause and examine the realities of software patenting. We could do this by looking at examples of countries in which software patenting has already become the order of the day, such as in the US and Japan .
United States
The United States Patent and Trademark Office (USPTO) has traditionally not considered software to be patentable because by statute patents can only be granted to "processes, machines, articles of manufacture, and compositions of matter". i.e. In particular, patents cannot be granted to "scientific truths" or "mathematical expressions" of them. The USPTO maintained the position that software was in effect a mathematical algorithm, and therefore not patentable, into the 1980s. This position of the USPTO was challenged with a landmark 1981 Supreme Court case, Diamond v. Diehr. The case involved a device that used computer software to ensure the correct timing when heating, or curing, rubber. Although the software was the integral part of the device, it also had other functions that related to real world manipulation. The court then ruled that as a device to mold rubber, it was a patentable object. The court essentially ruled that while algorithms themselves could not be patented, devices that utilized them could.
But in 1982 the U.S. Congress created a new court i.e the Federal Circuit to hear patent cases. This court allowed patentability of software, to be treated uniformly throughout the US. Due to a few landmark cases in this court, by the early 1990s the patentability of software was well established.
Moreover, Several successful litigations show that software patents are now enforceable in the US. That is the reason, Patenting software has become widespread in the US. As of 2004, approximately 145,000 patents had issued in the 22 classes of patents covering computer implemented inventions.
Japan
Software is directly patentable in Japan. In various litigations in Japan, software patents have been successfully enforced. In 2005, for example, Matsushita won a court order barring Justsystem from infringing Matsuhita's Japanese patent 2,803,236 covering word processing software.
Indian Position
With respect to computer software, in Patents (Amendment) Act, 2002, the scope of non-patentable subject matter in the Act was amended to include the following: "a mathematical method or a business method or a computer programme per se or algorithms".
However, the recent amendment changes (Ordinance, 2004), which amends the Patents Act, 1970, has been promulgated after receiving assent from the President of India and has came into effect from 1st Jan., 2005. Apart from change in pharmaceuticals and agro chemicals, one of the seminal amendments this Ordinance seeks to bring is to permit the patenting of embedded software.
Hence, the amendment means that while a mathematical or a business method or an algorithm cannot be patented, a computer programme which has a technical application in any industry or which can be incorporated in hardware can be patented. Since any commercial software has some industry application and all applications can be construed as technical applications, obviously it opens all software patenting.

In any case, any company seeking to file a patent application for software under the Ordinance should ensure that its invention firstly, follows the three basic tests:
o Inventive Steps
o Novelty
o Usefulness
Therefore, it is important that the software sought to be protected is not merely a new version or an improvement over an existing code.
Further, in accordance with the specific requirements of the Ordinance with regard to patentability of software, the software should necessarily have a technical application to the industry or be intrinsic to or "embedded" in hardware. This is to prevent against any future litigation or claims of infringements being raised, which is a distinct probability even after a patent has been granted.
CONCLUSION
India for its part seems to have adopted the more conservative approach of the European patenting norms for software. But the Ordinance definitely has its use and relevance in today's India, particularly for our growing domestic semi- conductor industry. This, along with judicial tempering might definitely ensure a judicious use of patent protection while allowing the industry to grow through innovations and inventions, thereby, mitigating the risks of trivial patents chocking the life out of real innovations and inventions. This is the reason a patent should always be treated as a "double edged sword", to be wielded with caution and sensitivity.