Software engineering definitions

Hack Reactor

Software engineering definitions's Image

.NET

A framework of programming guidelines that can be used in web, mobile or applications. .NET is popular for its low costs and high speed, as well as support for numerous programming languages and a large library.


Agile

Software development via collaboration. Agile development allows for high-quality software through teamwork, self-organization, and accountability. Agile focuses on incremental delivery, usually every two weeks, instead of waiting until all work is complete. This requires frequent development and testing.


Algorithm

A set of steps written for a computer program that directs the program to perform certain tasks.


Algorithm Engineering

Taking algorithm theory and making it into practical applications. Engineering focuses on all areas of the process, including design, analysis, implementation, and optimization.


Architecture

The blueprint for a software project that explains the system and development. It defines all the assignments that must be performed, looks at all the qualities of the system, and helps identify risks before they become an issue.


Array

A data structure where a fixed-size collection of the same types of data are stored together in contiguous memory locations.


AsyncTask

A computation that runs in a background thread and is published on a UI thread. There are three types – params, parameters sent upon execution; progress, progress units published during background computation; and result, the result of background computation.


C++

A general-purpose, object-oriented programming language used mostly for system and application software, client-server applications, drivers, and embedded firmware. C++ is one of the most widely used languages, popular for its speed and use on multiple platforms, and also because it has a large support community and standard template library.


Cloud

Another term for the internet, where users can find analytics, databases, networking, servers, software, and storage. The benefit is that companies can choose which services they want and pay as they go, which leads to cost savings, a faster adaptation of new technologies, and higher efficiency.


Coding Bootcamp

An immersive class that teaches a specific type of coding in a few months. In addition to teaching high-potential students, bootcamps have proven successful to help current software engineers keep up-to-date on the latest technologies. Top coding bootcamps like Hack Reactor see their graduates command a higher salary than average software engineers.


Data Science Bootcamp

A data science bootcamp uses Python-based curriculum, real-world case studies, and machine learning concepts to prepare qualified students for a career as a Data Scientist. Top-ranked data science bootcamps, like Galvanize, have created a network of top-tier data scientists who work everywhere from early-stage startups to some of the most prestigious tech companies. Successful graduates can expect an average base salary of $97,875.


Design

An overall view of a software solution that provides specifications for software engineering. This usually includes a flowchart that specifies what needs to be done, but this can be anything that shows a plan for what is desired.


Immersive Education

An advanced coding bootcamp that allows attendees to learn about coding while also networking and building projects. Many bootcamps also offer job placement and career support after participating in an immersive program. Programs typically run for several months, with some providing online courses. The immersive courses are designed to teach participants multiple types of coding that can be used immediately, while also focusing on basics to help handle future technologies.


Income Share Agreements

Available at bootcamps and designed to help cover costs for those who may not be able to pay upfront for them. ISAs allow you to pay a smaller portion of tuition, then start payment on the balance only after you’ve obtained a job at a set salary, typically around $50,000.


Java

A class-based, object-oriented programming language that is meant to allow users to write once, run anywhere, avoiding the need for compiling, as long as the platform has Java Runtime Environment.


JavaScript

A high-level, just-in-time compiled, object-oriented programming language. JavaScript is used by almost all web sites because it allows the user to interact with pages. JavaScript is the most commonly used programming language.


Object-Oriented Design

A conceptual model that consists of using interacting objects to solve a software issue. It consists of five stages – definition of the system, architecture design, identification of objects, construction of models, and object interfaces.


Object-Oriented Programming

Programming using objects that contain data. The objects are usually fields and code that are designed to interact with one another.


Reverse Engineering

Taking a program’s code and reversing it to the source code. This is done to retrieve source code that may have been lost, fix bugs, improve performance, or deal with viruses. Some reverse engineering is done just to see how a program performs specific operations.


Software Engineering

Software engineering is the development of applications, systems, and programs for computers, according to the Bureau of Labor Statistics.  More deeply, software engineering is designing, constructing, modifying, and testing applications based on user needs. Engineering is used for large and complex software systems where simple programming would not work.


Scrum

A subset of Agile that is used for complex software and is good for times where there may be changes not expected during the start of the project. 


Software entropy

This occurs when a software undergoes changes to the point that it becomes difficult and costly to maintain. This usually occurs when new functionalities are added to the point where it becomes disorganized and affects the design structure. It works off the Broken Window Theory that states if you ignore the little problems, it will eventually develop into bigger problems.


Software Life Cycle

All phases of software development from concept to obsolescence.


Transformation Sequence

Automation of building and modification of models in an effort to help reduce errors. 


Usability

An assessment of how easy it is for the user to accomplish tasks when running a program. If the usability is low or difficult, then user may abandon the program. If that isn’t possible, then productivity can be adversely affected. 


Waterfall

A software development process is a series of steps during the life cycle of software. Each step relies on the completion of the previous step. Waterfall works well for large projects that can handle the rigidness of the process.