During the last few years, software evolution research has explored new domains such as the study of socio-technical aspects and collaboration between different individuals contributing to a software system, the use of search-based techniques and meta-heuristics, the mining of unstructured software repositories, the evolution of software requirements, and the dynamic adaptation of software systems at runtime. Also more and more attention is being paid to the evolution of collections of interrelated and interdependent software projects, be it in the form of web systems, software product families, software ecosystems or systems of systems.
In the late 1960s it became clear that in order to cope with the rising complexity of software systems, more disciplined techniques were needed. This need gave rise to the first international conference on Software Engineering, organized by the NATO Science Committee, in 1968. Its goal was “the establishment and use of sound engineering principles in order to obtain reliable, efficient and economically viable software”. Inspired by this, Belady and Lehman explored and emphasized the role of program evolution and evolution dynamics in the seventies. Their work gave rise to Lehman's “laws of software evolution”, an area that is still under active study today by many researchers.
At McHolmes we know the need to create an ever evolving software, a Dynamic software; is predicated on its continuity and the longevity of its users. Anyone who uses software of any kind has encountered prompts to update or upgrade that software. Software updates and upgrades may sound like the same thing, but there are important differences you should understand.
Before you install any update or upgrade, back up the affected program or device. Read the information issued with the update and upgrade announcements to make sure your computer or mobile device and its operating system are compatible and won't suffer any repercussions.
A software update, which is sometimes called a software patch, is a free download for an application, operating system, or software suite that provides fixes for features that aren't working as intended or adds minor software enhancements and compatibility. Software updates are issued to address security issues when they occur, to address minor bugs discovered in the software, to improve the operation of hardware or peripherals, and to add support for new models of equipment. These small, incremental updates improve the operation of your software.
A common operating system update is a security update, which is issued to protect your computer against vulnerabilities that might be exploited by hackers and viruses. It is wise to install security updates when they are released to ensure your system is as protected as possible against constantly changing threats.
The operating system and apps that run on your phone and tablet, the smartwatch on your wrist, and the peripheral that live streams video to your TV all use software that occasionally needs to be updated.
In most cases, unless you have chosen a setting that allows automatic updates, the device notifies you when a software update is available and gives you some information on why the update is important. Then, you decide whether to allow the update to go forward. The vast majority of software updates are applied over the internet, so an internet connection is often a requirement.
In the case of smartphones and tablets, software takes the form of apps. When an updated version of an app is available, you are notified either by message or by a visual indicator on the app icon. App updates are almost always no-cost and occur wirelessly over a Wi-Fi connection after you give your permission.
Operating system updates for smartphone and tablets are usually made through the devices' settings. In some cases, the mobile device must be connected to a power outlet during the installation of an operating system update, because the process takes much longer than an app download.
If you subscribe to an internet application or a suite of apps, such as Office 365, software updates—and upgrades—may take place under the hood. You may not even realize the software has been updated. This is because the internet applications may not need to place a software update on your computer or device to work properly. In other cases, such as with Adobe Creative Cloud, you are notified when an update is available for the applications you previously downloaded, and you choose when to apply the update.
Although they are typically small and free, software updates play important roles often related to solving or preventing a problem:
A software upgrade is a new version of the software that offers a significant change or major improvement over your current version. In many cases, a software upgrade requires the purchase of the new version of the software, sometimes at a discounted price if you own an older version of the software.
If you bought your software recently and an upgrade is released soon after that, some software companies offer the upgrade to the latest version for free. Be sure to register the software when you install it so you know if you qualify for deals like this.
Operating system (OS) upgrades are large and have significant effects on your computer. These upgrades can make significant changes to your system in functionality, user interface, and general appearance over the previous version.
Examples of operating system upgrades include upgrading from Windows 7 to Windows 8 or Windows 10, or on Macs, to upgrading from OS 9 to OS X or macOS.
Software manufacturers usually offer free software updates for their products to make them compatible with new versions of operating systems. However, these updates may not be immediately available when the new OS software is released.
All software applications have version numbers associated with them. This number helps track iterations of the software, including updates and upgrades. It is represented as a series of numbers separated by periods.
The leftmost number in a software's version number represents major upgrades to the software. For example, going from version 1.0 to 2.0 in software is a major upgrade. These upgrades may also have version names associated with them such as Windows 10 or OS X Mavericks.
The rightmost number in a software's version number generally represents minor updates. Going from version 3.0.2 to 3.0.3 is usually a small change and is usually delivered as a free update.