Software Development for Beginners
Like any business, the creation of a site begins with setting a goal, filling out a brief and writing a statement of work for the development of the site. Brief, as a rule, is a standardized form for Remotal company document in which customers are invited to answer a number of questions about their future site. Based on the completed brief, a general picture of the future site is formed. If the site functionality is small, there are no any technical frills and "bells and whistles", the brief may be enough to do the job of creating the site.
Of what constitutes the cost of creation and what are the stages of the site creation? If a web site is planned to develop any modules or components, advanced functionality of standard services, it will require a more complete description - terms of reference with a detailed description of all the necessary functions of the future web-site.
Despite the fact that, logically, writing terms of reference should engage the customer site, very often these duties are assigned to a company-executor. After an initial review of what should be developed site, the company writes a detailed TOR and agrees on its content with the customer. Thus formed the first component of the cost of site development.
Software development is of interest both to programmers and those who want to become programmers. The article touches on the concepts needed to get started.
When we learn languages that are as close as possible to our own, namely programming languages, we are learning binary languages. They are clearly structured and must be studied carefully.
There are high and low levels. High-level programming languages are further away from machine programming than low-level languages. This "further" is usually called abstraction.
A computer needs to understand our human language. It will need an interpreter to do this.
Definition of interpreters.
Source code refers to code written in the chosen programming language. Translators, on the other hand, are responsible for converting source code into machine language (those ones and zeros). We can refer to binary files such as object code, a program or, in today's accepted term, an application.
Interpreters can be anything:
For software development to be successful, you need to understand that languages can be interpreted. An interpreter then processes the source code line by line and runs each line in the finished program (application) as well. This means that the interpreted source code runs until it encounters an error. Then the interpreter stops reporting such errors.
Python is a good example of an interpreted programming language.
Compilers work in different ways. They completely convert source code by compiling it into a binary file. The binary code is then executed. If there were errors in the source code, they are detected and flagged during compilation. This interrupts the binary generation process.
Interpreters work line by line and execute one line before moving on to the next. A compiler, on the other hand, translates all program lines into a (binary) file and executes it in its entirety.
Remember the definition of a computer program? It is a sequence of instructions for a computer. The execution of a program is usually called a process. Such software uses certain resources in a computer system or any other device. Resources include memory, disk space, and the file system.
We use the word "run" when running a computer program. The time it takes to run is called the program's execution time.
Usually products known as applications are considered. We also associate programs with the platforms or environments in which they run or for which they are intended. There are web applications that run in browsers, there are mobile software that runs on smartphones, and desktop software such as Evernote.
Interpreted source code is executed from a source file, compiled source code is converted into a binary file. This file is then executed. Compiled code can fail at runtime even after successful compilation.
A hybrid interpreter is a combination of an interpreter and a compiler. A popular hybrid programming language is Java.
Developing software in Java is convenient. First, the source code is compiled into an intermediate format known as Bytecode. Bytecode is then interpreted and executed using a virtual machine. This allows hybrid interpreters to run Bytecode in different operating systems, making it cross-platform.
Assemblers are also used to translate the low-level Assembler language into binary, but we'll focus on high-level languages.
A good way to understand the differences between translators is to see them in person. Just download the ones you need and install them on your computer.
There are hundreds of YPs. They are judged on popularity, community, long-term support, pedagogy, and usage. They can also be judged on technical parameters. For example, whether they are functional, imperative, static, strong or weakly typed.
Some programming languages are intended solely for educational purposes and not for business use. A good example is a programming language for children. There are also powerful languages that are easy to set up and learn. Python is one of them. It is usually recommended for beginners.
If you are interested in learning more about it, here are some good studies.
When you want to learn a new language, you will need a language translator. This is a program that is installed and set up on your computer system.
We recommend that you start mastering the command line interface (CLI). Think of the terminal as an alternative to the graphical user interface (GUI). When working with a computer through a GUI, you depend on visual representations of directories and everything you do. But with the CLI you interact directly with the computer, using the terminal and special commands.
On Windows, the built-in terminal is a command line. For Mac and Linux users, the default terminal is Bash. To use it on Windows, install Git Bash or PowerShell.
Get ready, because software development has begun! Let's get ready to write the first line of code. You will need the following:
A computer system. It does not need to be a complex or very expensive PC. Just a computer that works well.
CLI setup. Here is a good course to get you started.
Installation of a text editor (such as Notepad++).
Understanding at least one programming language. From this article, you'll learn the basic elements that make up the foundation of most JDs.
To summarize the above, we have learned the basics with an introduction to translators. The word "source code" is no longer strange to you. We'll look at it in more detail next.
The development of any program, whether it is a small procedure for processing information coming to the console or a complex software product, consists of several stages, the proper implementation of which is a prerequisite for a good result. Strict adherence to the time-adjusted stages of software development becomes a fundamental criterion for the companies involved in the creation of software and their customers who are interested in obtaining a perfectly functional program. Let's consider in detail each stage of a recognized software development methodology to evaluate their high importance for achieving the goal set before the performers.
The very first stage of software development is rightfully called the procedure of comprehensive analysis of the requirements put forward by the customer for the software being created in order to define the key goals and objectives of the final product. At this stage, the most effective interaction between the client who needs a software solution and the developer's staff takes place while discussing the project details which helps formulate the requirements set for the software more precisely. The result of this analysis is the formation of the main regulation that the developer relies upon in his work - the requirements specification for the software development. TOR should fully describe the tasks set before the developer and characterize the final goal of the project as understood by the customer.
The next key stage in software development is the design stage, i.e. the modeling of the theoretical basis of the future product. Most modern programming tools allow to partially combine the stages of design and coding, i.e. technical implementation of the project, being based on object-oriented approach, but full-fledged planning requires more thorough and scrupulous modeling. Qualitative analysis of prospects and possibilities of the created product will be the basis for its full functioning and performance of the whole set of tasks assigned to the software. One of the components of the design stage, for example, is the choice of tools and operating system, which are present in the market today in large quantities.
As part of this stage, the parties should carry out:
Evaluate the results of the initial analysis and the constraints identified;
Search for critical areas of the project;
Formation of a final architecture for the system;
analysis of the need to use software modules or ready-made solutions of third-party developers;
design of the basic elements of the product: database model, processes, and code;
Selection of programming environment and development tools, approval of the program interface, including graphical data display elements;
Defining the basic security requirements for the software being developed.
The next step is to directly work with the code based on the programming language selected in the course of preparation. There is hardly any need to describe the specifics and subtleties of the most labor-intensive and difficult stage, it is enough to note that success of implementation of any project directly depends on the quality of preliminary analysis and evaluation of competing solutions with which the program being created will have to "fight" for the right to be called the best in its niche. If we speak about writing the code for accomplishing highly tailored tasks in a particular enterprise, then the effectiveness of the company that ordered the development depends on the competent approach to the coding stage. Coding can occur simultaneously with the next stage of development - software testing, which helps introduce changes right in the process of coding. The level and efficiency of interaction of all the elements involved in performing the tasks formulated by the company-developer at the current stage are the most important - the quality of the project depends on the coordination of actions of programmers, testers and designers.
Testing and debugging
After the programmers have achieved what they have planned in the written code, the no less important stages of software development follow which are often united in one phase - testing of the product and debugging which allows to eliminate programming defects and to achieve the final goal - full functionality of the developed program. The testing process allows to simulate situations in which the software product fails to function. Debugging Department then locates and corrects the detected code errors, "polishing" it to a nearly ideal state. These two steps take not less than 30% of the time spent on the whole project, since the fate of the software created by programmers depends on their qualitative execution. Quite often functions of a tester and a debugger are performed by one department, but the most reasonable way is to distribute these duties between different executors, what will allow you to increase the efficiency of searching errors in program code.
The procedure of introducing the software into operation is the final stage of development and often takes place together with the system debugging. As a rule, software commissioning is carried out in three stages:
Bringing of the created software to the designed capacity.
The key goal of the stage-by-stage implementation of the developed software is the gradual detection of errors and code defects that were not detected earlier. At this stage of software development both the customer and the contractor can face a number of rather narrow range of errors related to the data partial inconsistency during their loading to the database, and also failures of program procedures execution due to application of multi user access. It is at this stage that the final picture of user interaction with the program is crystallized, and also the degree of loyalty of the latter to the developed interface is determined. If an exit of the system to design capacity after a number of carried out revisions and improvements took place without any complications, it means that preliminary work on the project and realization of the previous stages of development was carried out correctly.
Creation of even a small and technically simple software depends on the clear implementation of each phase, i.e. the activities of all departments involved in the development process. A clear plan of necessary actions fulfillment with indication of final goals becomes an integral part of developers' work who plan to remain specialists that are in great demand on the labor market. Only correctly drawn up terms of reference will help to achieve the necessary result and to develop a truly qualitative and competitive software for any platform - server, stationary or mobile.
An integral part of the final stage of software development is also the follow-up technical support of the created product in the process of its usage at the customer's enterprise. Competently organized technical support service often becomes a key factor in choosing a contractor in order to achieve the set goal.