Are you unsure what a software development-related concept entails? Is it a term commonly used but never explained? Here, we’ll touch on 5 such terms and help you update your software development dictionary:
1. Software Development Dictionary: Responsive Web Design(RWD)
Put simply: if you find yourself having to pan and zoom repetitively around a site, then it probably isn’t designed using RWD. Responsive Design is a programming approach that uses a website’s CSS functions to gauge the dimensions of the browser it’s running in, and resize, crop and move assets and text around based on that size. This should be done on-the-fly if a user decides to resize their browser, but is primarily used to allow viewing the same site on multiple devices (PCs, phones, tablets etc.) without having to design a separate “mobile” version of the site.
2. Software Development Dictionary: Object-Oriented Programming
This is a programming model focusing on objects to be defined instead of actions to be taken (the latter is the traditional “procedural programming” model). To compare it to traditional models, a “program” in traditional methods is just a procedure of logic where input data is processed and outputted in some way. In OOP, the focus is on the objects you want to manipulate more so than the logic needed to do so. Objects may be categorized into generalised “classes”, which inform the program exactly what features (“attributes”) the object has, and what logic can be used to manipulate it (“methods”). Properties such as inheritance allow “type-of” relationships between objects. (i.e. “VW is a type of Car” given a car base class and a VW derived class)
3. Software Development Dictionary: Agile Software Development
Certainly a popular term the past few years, the “agile” approach to software development seeks to change the ‘traditional’ paradigm of code design. In the past, rigid steps (as in the Waterfall Model) had to be followed if software was to actually get to market. Code would be written, tested completely, and signed off on before the next stage began. Plenty of form-filling and rigidity was the norm here. Agile methods instead championed developers responding quickly to change, and encouraging changes of plan, having frequent client-developer interactions, and using new methods like pair programming and self-motivation as opposed to set deadlines, to build software.
4. Software Development Dictionary: Compiler/Linker
Usually a part of an IDE, but can be used on its own. The compiler is the software portion that takes the high-level language you’re coding in and translates it into something lower-level, to be understood by the computer you’re compiling on. This lower-level language is referred to as machine code.
The linker is the helper to the compiler. Once the compiler has generated the machine code from the high-level language, it stores the machine code in some form of generic object. The linker’s purpose is to aggregate the objects generated by the compiler, as well as any dependencies the program needs (read: the includes you added in your file or the libraries it needs to use) into one neat package.
5. Software Development Dictionary: Patching
This is common for large software projects. A patch is a piece of code, or some new executable, which is created in response to a deficiency in existing code. Patches often correct bugs discovered by users in software, or could treat vulnerabilities in code which are endangering the security of users. Patches do not have to be the optimal solution, but simply the stop-gap measure for an issue (these are often known as “hotfixes”).
How many of these terms were you already familiar with? Was there anything new you learnt? Comment with your views on this article in the comments section below, and follow Hyperion Hub developments in the future if you’d like to see more articles like these for the South African market.