ComputersSoftware

Software Life Cycle: Concept, Standards, Processes

Software development is impossible without understanding the so-called software life cycle. This may not need to be known to an ordinary user, but it is desirable to master the basic standards (it will be further discussed why it is necessary).

The life cycle of software: what is it in the formal sense?

Under the life cycle of any software product, it is customary to understand the time of its existence, starting from the development stage and until the moment of full refusal to use it in the chosen sphere of application until the application is completely removed from everyday use.

In simple terms, information systems in the form of programs, databases or even "operating systems" are in demand only if the data and the capabilities provided by them are relevant.

It is believed that the definition of the life cycle in no way applies to test applications, for example, to beta versions, which are the most unstable in the work. The very life cycle of a software depends on many factors, among which one of the main roles is played by the environment in which the program will be used. However, it is possible to identify the general conditions used in determining the concept of the life cycle.

Initial Requirements

As it is commonly believed, for any software product several conditions are used, regarding its development and application, namely:

  • formulation of the problem;
  • Analysis of mutual requirements of the future software to the system;
  • design;
  • programming;
  • Coding and compilation;
  • testing;
  • Debugging;
  • Implementation and maintenance of the software product.

Software development consists of all the above-mentioned stages and can not do without at least one of them. But for the control for such processes special standards are established.

Standards of software life cycle processes

Among the systems that predetermine the conditions and requirements for such processes, today there are only three main ones:

  • GOST 34.601-90;
  • ISO / IEC 12207: 2008;
  • Oracle CDM.

For the second international standard there is a Russian analog. This is GOST R ISO / IEC 12207-2010, responsible for system and software engineering. But the software life cycle described in both rules is identical in essence. This is explained quite simply.

Types of software and updates

Modern information systems are such that they establish generally accepted concepts of the field of application.

For example, there are system programs and utilities, multimedia tools, device drivers, office applications, etc. For any type of software products, you can define the stages of the life cycle of existence.

To renew it, upgrade tools are most often used (for both operating systems, and for platforms and application software). Probably, it is not necessary to explain that any user of a computer system based on Windows has undergone the stage of updating the system itself or components such as the Microsoft .NET Framework or the Java virtual machine .

Design stage

Now a few words directly about the stages of development. The life cycle of software initially includes project planning, analysis of system and target requirements, the possibility of preliminary or detailed design, coding and testing, the possibility of using programs in specialized systems, and so on.

Software life cycle models assume that the initial task of creating software should be reduced to the development of universal applications or software products that use a certain launch environment.

Development

Development systems are programming languages. The design of software in the first stage can be reduced to this.

Whether it's C + / C ++, Java, Delphi, or the same obsolete Pascal is not that important. The question is how much the created application can integrate into the operating system and work without failures.

In this sense, 1 software life cycle is the time of its testing from the initial installation of the product to its complete removal due to non-compliance with the system requirements, inability or impossibility to perform the tasks originally set.

Next steps

Further maintenance, which determine the software life cycle, is reduced to coding and obtaining the application source code.

In the case of its free (open) distribution, a so-called certificate is used on the basis of the GNU license, which provides for the possibility of changing the software itself at the request of a third-party user familiar with the programming language with which the application was created.

If it is a closed code, you can use utilities such as Disassembler. But in this case it is possible to achieve only the decoding of the executable EXE-file, and in any way not attached dynamic DLLs.

But this is a theory. In practice, the stages of the software life cycle include much more elements in their list. Even the simplest simulated situation consists of examining standards and formulating remarks (high-level architecture requirements, compliance of executable code, means and verification methodology). This is the life cycle of the software. But here it is important to understand and some principles of management of such programs and systems.

Basics of management

Software lifecycle management is carried out on the basis of splitting programs into components, which gives a fairly wide range of tools for creating them.

There is also a downside to the coin. The choice of modules is limited to the developer of the initial platform, on the basis of which programming is done. Of course, if we take into account the unification and typing of the development tools used (especially the reusable modules), there are no questions.

But the stages of the software life cycle necessarily include the creation of data processing protocols, subroutines, standard libraries and much more.

Used modules

And no single software life cycle process is complete without using very specific components. Among them, the following are considered priority:

  • The main (head) module responsible for launching the software product;
  • A control module responsible for calling the attached components or dynamic libraries;
  • Functional and service tools for data processing and additional utilities.

The executable file, as a rule, for Windows-systems is presented in the form of "exeshnika". Control components have a configurator extension (config.sys for operating systems), additionally connected libraries have a DLL extension. The controls and processing of the functions and settings of some applications can look like XML files.

By the way, for the majority of nowadays known multimedia programs they are means of preserving the basic configuration parameters. The use of software of this type, of course, is rather limited, but understanding the general principles of working with the same media players will not hurt. And that's why.

In fact, in them the life cycle of software is laid only at the level of the update version of the player itself or the installation of codecs and decoders. And audio and video transcoders are inherent attributes of any audio or video system.

Example based on FL Studio

Initially, the virtual studio sequencer FL Studio was called Fruity Loops. The life cycle of the software in its primary modification expired, but the application was somewhat transformed and acquired the current form.

If we talk about the stages of the life cycle, first at the stage of setting the task, several mandatory conditions were set:

  • The creation of a drum module by the type of rhythm machines like the Yamaha RX, but with the use of one-shot samples or sequences in WAV format recorded in studios live;
  • Integration into Windows operating systems;
  • The ability to export projects in WAV, MP3 and OGG formats;
  • Compatibility projects with an additional application Fruity Tracks.

At the development stage, the means of C programming languages were used. But the platform looked rather primitive and did not give the end user the necessary sound quality.

In this regard, at the testing and debugging stage, the developers had to follow the path of the German Steinberg corporation and apply support for the Full Duplex mode in the requirements to the main sound driver. The sound quality became higher and allowed to change the tempo, pitch and superimpose additional FX-effects in real time.

Completion of the life cycle of this software is considered to be the release of the first official version of FL Studio, which, unlike its ancestors, already had the interface of a full sequencer with the ability to edit parameters on a virtual 64-channel mixing console with unlimited addition of audio tracks and MIDI tracks.

The promotion of the program did not stop there. At the project management stage, support for connecting VST plug-ins (first, second, and then third version), developed by Steinberg at the time, was introduced. Roughly speaking, any virtual synthesizer that supports VST-host could connect to the program.

Not surprisingly, soon any composer could use analogues of "iron" models, for example, complete sets of sounds of the once popular Korg M1. Further more. The use of modules like Addictive Drums or the universal plug-in Kontakt made it possible to reproduce live sounds of real instruments recorded with all the shades of articulation in professional studios.

At the same time, the developers tried to achieve the maximum quality by creating support for the ASIO4ALL drivers, which turned out to be higher than the Full Duplex mode. Accordingly, the bitrate also increased. To date, the quality of the exported audio file can be 320 kbit / s at a sampling rate of 192 kHz. And this is a professional sound.

As for the initial version, its life cycle could be called completely complete, but such a statement is relative, since the application only changed its name and gained new opportunities.

Development prospects

What stages of software life cycle represent are already clear. But it's worth mentioning the development of such technologies separately.

It is not necessary to say that any software developer is not interested in creating a fleeting product that is unlikely to remain on the market for several years. In the long term, everyone is looking at its long-term use. This can be achieved in many ways. But, as a rule, almost all of them boil down to the release of updates or new versions of programs.

Even in the case of Windows OS, such trends can be seen with the naked eye. Hardly today there will be at least one user using systems like modifications 3.1, 95, 98 or Millennium. Their life cycle ended after the release of the version of XP. But server versions based on NT technologies are still relevant. Even Windows 2000 to date is not only very relevant, but also for some parameters of installation or security, even surpassing the latest developments. The same goes for the NT 4.0 system, as well as the specialized modification of Windows Server 2012.

But in relation to these systems, the support at the highest level is still declared. But the notorious in its time Vista is clearly experiencing the sunset cycle. Not only was it unfinished, there were also mistakes in it and there was so much damage in its security system that one can only guess how it was possible to release such an untenable solution to the software market.

But if we talk about the fact that the development of software of any type (manager or application) does not stand still, we can only state the facts. After all, today it's not just computer systems, but also mobile devices, in which the technologies used are often ahead of the computer sector. The emergence of processor chips based on eight cores - is not the best example? And yet not every laptop can boast of having such an "iron".

Some additional questions

As for understanding the life cycle of software, it can be very arbitrary to say that it ended at a certain point in time, because software products still have support from the developers who created them. Rather, the ending refers to obsolete applications that do not meet the requirements of modern systems and can not work in their environment.

But even taking into account the technical progress, many of them already in the near future may turn out to be untenable. That's when you have to decide whether to release updates, or to completely revise the entire concept, originally embedded in the software product. Hence - and a new cycle that involves changing the initial conditions, the development environment, testing and possible long-term application in a certain area.

But in computer technology today, preference is given to the development of automated control systems (ACS) that are used in production. Even operating systems, in comparison with specialized programs, lose.

The same environments based on Visual Basic remain much more popular than Windows-based systems. And the application software for UNIX-systems is not at all. What to say, if practically all the communication networks of the same United States work exclusively on them. By the way, systems like Linux and Android, too, were originally created on this platform. Therefore, most likely, UNIX has much more prospects than other products combined.

Instead of the total

It remains to add that in this case only general principles and stages of the life cycle of the software are given. In fact, even the initial tasks can differ very significantly. Accordingly, differences can be observed in the remaining stages.

But the basic technologies for developing software products with their subsequent maintenance should be clear. Otherwise, you should consider the specifics of the software being created, and the environment in which it supposedly should work, and the capabilities of the programs provided to the end user or production, and much more.

In addition, sometimes life cycles can depend on the relevance of development tools. If, for example, some programming language becomes obsolete, no one will write programs based on it, and even more so - to introduce them into automated control systems in production. Here, even programmers do not come to the forefront, but marketers who should respond to changes in the computer market in a timely manner. And there are not so many such specialists in the world. Highly qualified personnel, able to keep a hand on the pulse of the market, are becoming more and more in demand. And they are often the so-called "gray cardinals", on which depends the success or loss of a certain software product in the IT field.

Let them not always understand the essence of programming, but they are clearly able to determine the software life cycle models and the duration of their application, based on global trends in this area. Effective management often produces more tangible results. Yes, at least PR technology, advertising, etc. Maybe some application to the user and do not need it, but if it's actively advertised the user will install it. This is already, so to speak, the subconscious level (the same effect of the 25th frame, when information is stored in the consciousness of the user, regardless of himself).

Of course, such technologies in the world are forbidden, however, many of us do not even guess that they can still be used and influence the subconscious mind in a certain way. What is the only "zombification" of news channels or Internet sites, not to mention the use of more powerful tools, such as exposure to infrasound (this was used in one opera production), so that a person may experience fear or inadequate emotions.

Returning to the software, it's worth adding that some programs use a sound signal when they start, which draws the attention of the user. And, as studies show, such applications are more viable, in comparison with other programs. Naturally, the life cycle of the software increases, no matter what function is assigned to it initially. And this, unfortunately, is used by many developers, which raises doubts about the validity of such methods.

But do not judge us about this. Perhaps in the near future will be developed tools that determine such threats. So far, this is only a theory, but, according to some analysts and experts, little remains to practical application. If you already create copies of the neural networks of the human brain, then what to say?

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 en.atomiyme.com. Theme powered by WordPress.