TVs. Consoles. Projectors and accessories. Technologies. Digital TV

Involving the customer in the development process. Development of a software package to automate the process of receiving and transmitting messages between the call center and clients

We provide comprehensive consideration of all elements

Why do you need to define requirements?

The development environment should contain everything necessary to create and deploy software-intensive systems (that is, systems in which software is the most important and obligatory element). Why is it important to have a consistent definition of development environment requirements? In short, many organizations strive to reduce time to market, reduce costs, and improve quality, all of which are business goals that are directly dependent on the quality of the environment used to create such systems. Having a consistent and comprehensive definition of the development environment at hand ensures that nothing is missed when planning actions to improve the existing environment, defining requirements for the environment, defining the architecture of the environment, assessing the environment, ensuring the appropriate level of return on investment as the environment changes, and so on. Defining your development environment is a critical input to all of these tasks.

Place of the development environment in context

Before looking at the specific elements that make up a development environment, it is very helpful to first understand where the environment fits into the overall picture.

Figure 1 shows quality assurance center(Center of Excellence), responsible for creating and maintaining the development environment. This environment is used in development projects, which, in turn, create and maintain software-intensive systems (or some other software assets, such as components or services). This simple visualization helps clarify the differences between the role of the quality assurance center (including the roles of team members, processes and the key node - the development environment) and projects that use this development environment (and also their roles, processes and nodes).


Development Environment Elements

According to IBM Rational software experts, the development environment consists of the following six elements, each of which is shown in Figure 2 and described in detail below:

  • Method
  • Tools
  • Enablement
  • Organization
  • Adoption

You may be familiar with the components of the people-process-technology model, which are the key building blocks successful project development. However, this model is overly simplified for the purposes of this article. However, this model is built on the elements shown in Figure 2:

  • Staff– this is organization and preparation.
  • Process- this is a technique.
  • Technology These are funds and infrastructure.

Implementation is a new (and very important) element that focuses on spreading the development environment across an organization, business unit, or project.

Method

A key element of any development environment is the methodology followed, formally or informally, by practitioners. Here are the key components related to the methodology:

  • Key elements of the methodology, such as roles, work products, tasks and processes.
  • Additional elements of the methodology, such as standards, recommendations, instructions, templates and examples.
  • The methodology deployment topology, which can be taken into account, for example, when deploying the methodology as a Web site on a company's intranet. In our example, a Web server is required to host the content, and the workstations must have a suitable Web browser installed and be connected to the Web server.

Tools

Development tools automate aspects of the chosen methodology. For example, you can use tools to store and manage requirements for a project under development, for visual modeling of architecture and design, for software testing, etc.

Key elements related to tools:

  • Development tools and tools for their integration.
  • Scenarios for installing and configuring development tools.
  • Development tools deployment topology that takes into account the required software and hardware, both client and server side, along with all target platforms and emulators (for example, when developing real-time or embedded devices).

Enablement

Preparing specialists to use the development environment (training and mentoring) is an important condition its successful implementation. Therefore, aspects of the development environment include defining and creating training and instructional materials. Also, leading companies pay special attention to increasing the level of professionalism of their personnel and focusing on external professional organizations.

Key elements related to preparation:

  • Curricula and courses. They cover a variety of needs, from training experienced professionals in the details of the development environment to a comprehensive retraining program for specialists.
  • Instructional materials. They are used by specialists when consulting less experienced colleagues.
  • Provisioning deployment topology. The deployment topology must be taken into account, for example, when training is organized through Web-based training. Again, a Web server is required to host materials, and workstations must be equipped with Web browsers. The deployment topology may also indicate the rooms and classrooms needed to conduct classroom training.

Organization

Another aspect of the development environment is ensuring that the appropriate organizational resources are available to define, deploy, and manage it. These may include specialists in specific aspects of the development environment (for example, trainers, specialists, trainers and mentors), personnel to administer and maintain the environment, personnel with suitable qualifications in the company's help desk, and relevant communities of practice.

Key elements related to the organization:

  • Define organizational roles and departments that are part of the development environment.
  • An organizational resource deployment topology indicating the location of these organizational units.

Infrastructure

From a development environment perspective, infrastructure is viewed in terms of hardware and software. This has already been discussed earlier when considering methodology, tools, preparation and organization. However, there are three reasons to consider infrastructure separately as a key element:

  1. First, consolidation. For example, when considering the infrastructure needs of the development environment as a whole, it may be determined that only one Web server is needed to support both Web content for the methodology and Web training.
  2. Second, ensure that all additional hardware and software supporting the development environment (eg, operating systems, database management systems, hardware control systems, testing tools for real-time and embedded device development) are properly taken into account.
  3. Third, the quality assurance center may require the deployment of infrastructure to support the creation and testing of the development environment before it is deployed into any production infrastructure to support business projects.

Key elements related to infrastructure:

  • Location, nodes and connectivity.
  • Software (eg operating systems, database management systems, hardware management systems, testing tools).

Adoption

In addition to the elements already listed, it is important to consider implementing the framework within an organization, business unit, or development project.

Key elements related to implementation:

  • Implementation plan. This plan defines the tasks typically performed when implementing the environment, such as purchasing hardware and software.
  • Methods for carrying out organizational changes. They will be needed to implement and integrate the development environment into the daily activities of the relevant organizational structures.
  • Determination of environmental indicators. Indicators are used to measure the effectiveness of the environment.

Solution Context

The context of the solution (where the solution in question is the development environment) is also important. The context represents the requirements for the development environment and can be viewed in terms of functionality, properties And restrictions.

  • Functionality represents the pattern or order of software development provided by the development environment. The implementation of these requirements forces you to take into account all the previously mentioned elements. For example, the requirements management process (see Figure 3) is supported by the following aspects:
    • Requirements management methodology.
    • Requirements management tools.
    • Requirements management training and mentoring.
    • A support team skilled in solving requirements management issues.
    • Hardware and software to support elements related to requirements management.
    • Appropriate implementation of requirements management procedures in projects.

Other parts of the development environment, such as architecture or quality management, can be viewed in the same way. This methodology can also be applied to specific activities, for example, to iterative development (which is the basis of the dynamic (agile) approach to software development and delivery), which also requires consideration of all elements.

  • Properties– these are the parameters that the development environment must have. They also require consideration of all elements of the development environment. For example, to implement scalability properties (for example, the ability to support different numbers of concurrent users), the following approaches are used:
    • A method that can be customized to fit the size of the project.
    • Tools that can be configured to support the method being configured.
    • Appropriate mechanisms and training levels for projects of various sizes.
    • Organizational resources to ensure the availability of personnel with the appropriate skill levels to support the expected number of development projects.
    • Infrastructure that can scale to support the expected number of concurrent users.
    • Appropriate mechanisms for implementing the environment.
  • Restrictions that the development environment must comply with also require consideration of all elements of the development environment. For example, if you need to migrate from an existing environment, you may need to do the following:
    • Take rules from an existing methodology and incorporate them into a new one.
    • Migrate work products from a legacy toolset to a new set (or integrate with existing tools).
    • Provide training that is adequate to the current state of affairs and properly organized.
    • Provide personnel to ensure smooth transition from original states in planned.
    • Identify infrastructure that makes the most of existing infrastructure (e.g., reuse existing hardware and software licenses where possible).
    • Provide implementation mechanisms to confirm migration progress.

Another important constraint when considering changing your existing development environment is, of course, Return On Investment (ROI). For such an initiative to be successful, it must, of course, deliver positive results consistent with the business plan. Every aspect of the development environment impacts ROI from both a cost and profit perspective.

Although not shown in Figure 2, the functionality, properties, and limitations typically correspond to a specific business context (eg, stated business goals). In this sense, the decision context also includes business aspects. This can be especially important when demonstrating the direct or indirect contribution of the development environment to achieving business goals.

Define, Deploy, Manage

When defining the various elements of a development environment, it is useful to consider the following elements of the environment's life cycle (see Figure 4) because, in addition to the context of the solution, each of them has its own aspects that influence the definition:

  • Definition of environment.
  • Deployment of the environment.
  • Environment management.

Before looking at the areas in Figure 4, it is worth explaining why they are related in cycle. This figure confirms that effective change (in in this case improvement of the development environment) is usually achieved through a series of incremental changes rather than by big bang(evolution, not revolution), and each incremental change represents one pass through the cycle. However, a change implemented in one cycle, by definition, changes the context of the next (for example, specialists now have the necessary qualifications, new equipment has appeared, new tools have been acquired, etc.), i.e., the cyclical nature of changes is demonstrated.

The following sections discuss each element of the development environment along with defining the solution, deploying the solution, and managing the solution.

Definition

In relation to definition development environment, recall the previous discussion of key elements. This discussion is not repeated here, although for completeness, Table 1 summarizes the various elements previously defined.

It should also be noted that the definition is usually considered at the organizational level and may require local implementation to meet the requirements of a specific business unit or project during deployment. This is reflected in the following sections.

Table 1. Aspects of the definition
ElementDescription
MethodRoles, work products, tasks, processes
Standards, recommendations, instructions, etc.
Methodology deployment topology
ToolsDevelopment and integration tools
Scenarios for installing and configuring development tools
Development tools deployment topology
EnablementStudy programs and courses
Instructional materials
Provisioning deployment topology
OrganizationOrganizational roles and divisions
Organizational resource deployment topology
Location, nodes and connectivity
Supporting software (such as operating systems)
AdoptionImplementation plan
Methodologies for carrying out organizational changes
Environmental indicators

Deployment

Deploying a development environment raises specific questions regarding each element (see Table 2).

Table 2: Deployment Considerations
ElementDescription
Method
Deployment Methodology
ToolsPerforming Local Configuration
Installing Tools
Local data migration
EnablementOn-site configuration
Deployment of guidance materials
Performer training
OrganizationDefining Local Configuration
Reorganization
InfrastructureDefining Local Infrastructure
Providing locations, nodes, and connectivity
Providing supporting software
AdoptionFormulation of a local implementation plan
Environment check

Key elements techniques:

  • Define local configuration. When deploying a methodology to a business unit or development project, some local configuration may be required to reflect the specific characteristics of the business unit, development project, or system (for example, by ensuring appropriate level of formality).
  • Deployment of the methodology. It guarantees the availability of the technique for specialists.

Key elements tools:

  • Execution local settings. Any local customization of the tools is used to automate the customization of the local methodology.
  • Installation of tools. Makes installed tools (and their integration) accessible to specialists.
  • Migration of local data. For example, you may need to transfer data from existing set tools to the new one.

Key elements preparation:

  • Perform local configuration. local settings. If necessary, adapt, clarify or update training materials. You might, for example, revise your training materials to align them with the process defined for a given business unit or development project.
  • Deployment of training materials. Guarantees access to them for performers, including access to all Web materials.
  • Performer training. During training, feedback from performers is collected.

Key elements organizations:

  • Define local configuration. Experts may be needed to support the specific needs of a particular business unit or development project.
  • Reorganization. Organize personnel and resources to support the development environment.

Key elements infrastructure:

  • Define local configuration. Determine the infrastructure needed for a specific business unit or development project.
  • Providing location, nodes and connectivity. Make available all necessary hardware (including all target platforms and emulators for real-time and embedded devices).
  • Providing supporting software. Install all necessary software to support the development environment (for example, database management systems or testing tools).

Key elements implementation:

  • Define a local implementation plan. Refine your implementation plan based on the specific needs of your business unit or development project.
  • Checking the correctness of the environment. Test the deployed environment and verify that it meets defined requirements in terms of specified functionality, properties, and limitations.

Control

As shown in Table 3, managing the development environment after it has been deployed also has specific aspects for each element.

Table 3. Management aspects
ElementDescription
MethodCollecting feedback on the methodology
ToolsBackup, archiving, data recovery
Gathering feedback on tools
EnablementTraining of specialists
Collecting feedback on preparation
OrganizationCollecting feedback on
InfrastructureProviding or withdrawing infrastructure as needed
Gathering feedback on infrastructure
AdoptionMeasuring the effectiveness of the environment
Collecting feedback on implementation

Key elements techniques:

  • Collecting feedback on the methodology. A key aspect of managing your development environment is to continually improve it. Therefore, collecting feedback concerns all elements. Feedback is usually collected subjectively using questionnaires, for example.

Key elements tools:

  • Backup, archiving, data recovery. Verify that the work products created by specialists are managed properly and "good administration" practices are applied.
  • Gathering feedback on tools. Collect feedback (positive and negative) on the availability and performance of the tools.

Key elements preparation:

  • Performer training. Assign project supervisors so that performers know how to use the environment.
  • Collecting feedback on preparation, e.g. for training or mentoring.

Key elements organizations:

  • Collecting feedback on the organization. Performers provide their comments on the support provided for using the development environment (for example, on the quality of the support service).

Key elements infrastructure:

  • Providing or withdrawing infrastructure elements as needed. From the beginning to the end of projects, the development environment must be sized accordingly to optimally support the number of people using the environment in certain moment time.
  • Gather feedback on infrastructure, including both hardware and supporting software.

Key elements implementation:

  • Measuring the effectiveness of the environment. This is a key aspect of successful implementation. For example, you can provide performers with a questionnaire and ask them to evaluate the effectiveness of introducing new work methods.
  • Collecting feedback on implementation. Feedback on implementation approaches is collected.

Interdependencies

Finally, keep in mind that the various elements of the development environment are not independent. An alternative representation of Figure 2 is given in Figure 5, which shows that each element has relationships with all other elements.

Here are some examples of dependencies between elements:

  • Methodology (methodology) refers to available training courses (preparation).
  • Tools (tools) automate tasks (techniques).
  • Administrative roles (organization) are defined to support the tools (tool).
  • Servers (infrastructure) are provided to host a set of tools (tools).
  • The implementation of work practices (implementation) is assessed using a specific approach (methodology).

Conclusion

This article complements the article (EN) published by the same author in The Rational Edge in 2008. It details the key elements of a development environment and highlights the various aspects of defining, deploying, and managing that environment. It provides a simple framework to ensure that all these aspects are taken into account when planning actions to improve the existing environment, defining environmental requirements, defining the architecture, assessing the environment, and so on.

Alexey Fedorov, Natalia Elmanova

The previous article in this series was devoted to the consideration of logical and physical data design and the tools used in this process. We are convinced that data design plays a key role in the development of information systems - after all, the costs associated with creating applications for end users, as well as the subsequent maintenance and modernization of the created product, depend on the quality of this work. The result of this stage is an "empty" database (that is, a database whose tables for the most part do not contain records, with the possible exception of reference tables such as a list of subjects Russian Federation or telephone area codes).

The next stage of the life cycle information system- development client applications. The result of this stage is a finished product consisting of a number of applications that allow users to enter data into tables or edit existing data, analyze the entered data and present them in a more user-friendly form - graphs, pivot tables or reports (including in the form of " paper documents).

The process of designing data for relational DBMSs is to a certain extent a logical process and is subject to a single standard methodology. This determines the low degree of dependence of the sequence of actions performed during data design both on which data design tool is used, and on whether it is used at all. Actually, this is why data design tools are more or less similar in their interface, which essentially reflects the process of drawing data models on paper.

The process of creating client applications that work with databases is quite difficult to describe in the form of such a universal sequence of actions, since the logic of a particular application almost completely depends on the logic of the business process being modeled. Application development tools as a category of software products have been around much longer than data engineering tools, and they are more varied - from a compiler running from command line, to tools, where the finished application is assembled with the mouse from ready-made components, and the code is generated automatically. With such a variety of development tools, they should be classified in some way, which we will try to do in this article, simultaneously telling which of them are convenient to use in a particular case.

Classification of application development tools

Development tools can be classified from various positions, for example, based on the programming language they support, or the functionality of the created applications on a particular platform, or the presence of certain libraries and visual tools in them. We will try to classify application development tools based on the ease of their use for creating products that represent a user interface to a database.

Almost any development tool that has the slightest claim to universality can be made to work with any database - it is enough to support the use of third-party libraries in this development tool and for this database to have a set of client interfaces (APIs) for the platform on which the created applications should function . However, not every pair of products “development tool plus DBMS” is attractive from the point of view of labor costs associated with creating such applications. You can write full application, which calls client API functions and implements a convenient user interface using a C language compiler and a simple graphics library (for example, allowing you to change the color of pixels on the screen) for that operating system, in which this application will run. But the costs associated with implementing such a project may be completely unjustified - after all, in this case, developers will have to implement functions that are already contained in class and component libraries of development tools that are more deeply focused on creating database applications or include support for creating such applications.

Development tools targeted at specific DBMSs

Ten to twenty years ago, in many applications that used databases, client API functions were called from code written in one of the programming languages, most often in C. Just look at the description of the client-side API of almost any server DBMS - and you will find many examples of the most typical code fragments, for example, for registering a user, executing requests, etc. However, it quickly became clear to the DBMS developers that the labor costs associated with writing such code could be significantly reduced by collecting the most typical code fragments and the most frequently occurring elements into libraries user interface(even for alphanumeric terminals), designing these libraries as a separate product and adding to it a development environment and utilities for designing user forms for viewing and editing data, as well as reports. This is exactly how the first development tools appeared, focused on specific DBMSs, such as Oracle*Forms (the predecessor of the current Oracle Forms Developer).

Products of this class are still available on the development tools market today. Almost all server DBMS manufacturers also produce application development tools. In the vast majority of cases, modern versions of these development tools support access to DBMSs from other manufacturers using at least one of the universal data access mechanisms (ODBC, OLE DB, BDE). However, access to “your” DBMS is usually carried out in the most efficient way, that is, using client APIs, objects contained in the libraries of the client part of server DBMSs, special classes for accessing data from this DBMS, or by implementing drivers for universal data access mechanisms, capable of taking into account the specific features of a given DBMS.

Desktop DBMS development environments can be classified as a separate category. In the article of this series devoted to desktop DBMSs, we have already noted that the vast majority of desktop DBMSs that have survived to this day, such as Microsoft Visual FoxPro, Microsoft Access, Corel Paradox, Visual dBase, support access to server DBMSs, at a minimum, using universal data access mechanisms, which allows them to be conditionally classified as development tools. Note, however, that currently creating applications in a client-server architecture with their help is an infrequent phenomenon. The exception, perhaps, is the pairs Microsoft Access - MSDE, Microsoft Access - Microsoft SQL Server and Microsoft Visual FoxPro - Microsoft SQL Server. This is the result of a competent Microsoft policy, striving for maximum compatibility of its products and ensuring the most painless replacement for users of their desktop DBMSs with their own database servers (Access->MSDE->Microsoft SQL Server, FoxPro->Visual FoxPro->Microsoft SQL Server).

Development tools that are universal in relation to the DBMS

Development tools that are universal in relation to a DBMS (or claim to be similar universality) are, as a rule, followers of conventional application development tools that are not directly related to databases. Typical examples of such development tools are Borland Pascal, Borland C++, Microsoft QuickC. Capable of using third-party libraries, these tools made it possible to access the functions of client APIs, and with the development of universal data access mechanisms (such as ODBC), also access the API functions of libraries that implement such mechanisms. Note that these development tools were often used to create desktop DBMS environments (such as dBase, FoxBase) or pseudo-compilers for languages ​​of the xBase family (for example, Clipper).

More later versions These development tools have acquired libraries of functions and classes designed to access data using certain universal mechanisms. Further development of development tools led to the emergence of two categories of products for similar purposes.

The first category includes development tools with extensive class libraries, a large number"masters" and code generators, but focused on "manual" code creation and quite rarely used to create "standard" applications for working with databases (here under the phrase " standard application"we mean an application that has direct access to the database with which the user interacts, that is, it is a “classic” client of a server DBMS). A typical (and the only truly popular in the software market) representative of this class of products is Microsoft Visual C++. C using Microsoft Visual C++ and MFC (Microsoft Foundation Classes) libraries can create any application if you have the skill, knowledge, ability and time. However, applications with a complex user interface (for example, using databases) are not developed with its help so often (although examples of such use can be found even in Russian literature). This product is mainly used to create client applications in case of special requirements for them, such as high performance, the ability to carry out any non-standard operations, etc.

The second category includes development tools with developed visual tools that allow you to literally “draw” the user interface, partially erasing the differences between the work of the programmer and the user and reducing the cost of the final product by involving developers who are not highly qualified in interface design (if you carefully study the course programs training centers specializing in training in Microsoft, Borland and Sybase development tools, you can find that the duration of the training course, after listening to which regular user Windows must learn to create client applications for server DBMSs, takes from 5 to 10 working days).

It is this category of development tools that is most often used when creating client applications. The most popular products of this class include Microsoft Visual Basic Borland Delphi Sybase PowerBuilder and Borland C++ Builder. The development environments for such products are very similar in appearance (up to the default arrangement of windows on the screen): as a rule, the development environment for such a product contains a “blank” of the designed form (analogue of a window), a separate panel with icons of user interface elements and other objects used in the application that can be selected and placed on the form, a window in which the properties of one of the elements selected on the form are displayed and edited (and sometimes a list of events to which this element reacts), a code editor window where you can enter code fragments , related to the processing of certain events, as well as code that implements the logic of the application. As a rule, modern development tools of this class allow you to create simple applications for editing data with virtually no coding required.

IN lately It has also become very popular to create applications that use access to databases, but are located inside ordinary documents. The development tools for such applications are based on the macro languages ​​of the corresponding editors. The most typical and practically the only popular representative of development tools in this category is Visual Basic for Applications, which is similar to the visual development tools listed above and differs from them in that applications created with its help are contained inside documents Microsoft Office and do not alienate themselves from them.

Note, however, that the above division of development tools into these two classes is very arbitrary. As we said above, almost all database application development tools, including those focused on specific DBMSs, support at least one of the universal data access mechanisms. And almost all “universal” application development tools, if they belong to the manufacturer of any server DBMS, support “their” DBMS better than third-party DBMS (this can be expressed, for example, in special libraries of classes or components for accessing this server, as well as the presence of common repositories of objects and data models, and sometimes editors of data access parameters or data schemas common with the client part of the server DBMS)

Classification of applications using databases

Applications in a client-server architecture

In previous articles in this series, we have already talked about what a client-server architecture is in the traditional sense. Therefore, we will only briefly recall that information systems created in such an architecture are a database server that manipulates data and a client application that accesses it and uses either client APIs (or classes and components encapsulating their calls) or one from universal data access mechanisms. Typically, when using such an application architecture, the database server is also responsible for monitoring compliance with business rules implemented in the form of stored procedures, triggers, server restrictions and other database objects.

To create client applications in this case, development tools with advanced visual tools, such as Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C++Builder, are most often used.

Note, however, that the choice of architectures modern applications is currently quite broad and is not limited to the “classical” client-server architecture, which implies that the application consists of a database server and client applications that interact with this server. Therefore, below we will discuss which development tools are convenient to use when creating distributed applications.

Distributed Applications

Distributed (or multi-tier) applications typically consist of presentation services (or "thin" clients with which end users typically interact), business logic services implemented as business objects (or middle tier services; often to describe a collection of the term middleware is used for such services), and data services (usually consisting of a database server and data access mechanisms). Business logic services are designed to receive user input from presentation services, interact with the data services to perform business operations (for example, order processing or balance sheet calculations), and return the results of these operations to the presentation services.

Unlike conventional applications in a client-server architecture, in multi-tier systems, thin clients, as a rule, do not have direct access to data. Instead, clients send requests to business objects specifically designed for this purpose. They, in turn, can carry out business operations requested by the client (such as processing an order, completing a bank transaction, etc.).

Some of the business objects may access data services using one or another data access mechanism. Because the end user does not directly interact with business objects, they typically do not have a user interface in the traditional sense. Physically, business objects can be implemented in the form of operating system services, console applications or Windows applications, as well as in the form of libraries loaded into the address space of a server application specially designed for this purpose (Web server, application server, transaction monitor, etc. ). It is not uncommon for one business entity to serve many customers.

To create business objects, both development tools with advanced visual tools and development tools focused on the “manual” creation of application code (such as Visual C++) are used. Note that latest versions almost all of the most popular Windows application development tools (Microsoft Visual Basic, Visual FoxPro and Visual C++, Borland Delphi and C++Builder, Sybase PowerBuilder) support the creation various types business objects (Web applications, ASP objects, COM servers, etc.), with the possible exception of Microsoft Access - this product is designed more for qualified users than for developers distributed systems. Java application creation tools (such as Borland JBuilder) are often used for this purpose.

Note that, in addition to the “universal” tools listed above for creating both applications in the client-server architecture and business objects for distributed systems, the development tools market also has specialized tools designed specifically for creating business objects (usually , Web applications). From development tools of this class for Windows platforms the most popular is Microsoft Visual InterDev, the first version of which appeared in 1998. We can also mention another interesting product belonging to the same category of development tools - Borland IntraBuilder, which appeared two years earlier, but for some reason, despite the growing need for products of this class, did not receive further development. Development tools of this class, as a rule, allow you to create applications that dynamically generate HTML code or code in one of the scripting languages ​​(VBScript or JavaScript), which is transmitted by the Web server to the user's browser as part of the Web page, and perceives data entered by the user in HTML form and transmitted by the browser to the Web server.

Conclusion

In this article, we discussed the process of creating applications that use databases, as well as the various categories of tools used in their development. We have seen that development tools can be divided, on the one hand, into tools focused on the use of specific DBMSs, tools that are universal in relation to DBMSs, and desktop DBMS environments used for application development. On the other hand, they can be divided into tools focused on visual user interface design (this category includes Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C++Builder) and tools focused on writing application code (Visual C++ ).

Having reviewed several of the most popular application development tools, we have seen that most of these products typically support:

  • at least one of the universal data access mechanisms, which allows you to use created applications data from various DBMSs;
  • creating several types of distributed applications;
  • automatic generation of application code based on models created using the most popular data design and business process modeling tools.

We also discussed how client-server applications differ from distributed systems and what development tools can be used to create both types of applications.

The life cycle of an information system does not end with application development. Once created, they are supposed to be tested, implemented, trained to use by users, and finally operated for a number of years. As a result of such exploitation, data accumulates, which, as a rule, is much more valuable than the applications themselves. These data are often necessary for making important management decisions material, so it is important to be able to convert them to a form suitable for such a purpose. For this purpose, there are tools belonging to the Business Intelligence category - report generators, tools for analytical data processing and searching for patterns. We will talk about them in the next article in this series.

1.3 Selecting software development tools

Currently, there is a huge number of software products that allow you to effectively and efficiently develop a software package for various subject areas in a short time.

These include software such as Delphi, Visual C++, C Builder, Visual Basic, Java Builder;

The use of tools of this type is justified when it is necessary to create an application with a convenient and understandable graphical interface in a short time.

Taking into account the above arguments, it is advisable to use tools like RAD for the developed software and methodological complex.

For operation software package, some software environment is also required, in the simplest case represented by an operating system. In more complex cases, when the system works with a large amount of data that needs to be kept up to date, some kind of DBMS must be present.

For the correct and informed choice of RAD products, it is necessary to evaluate products according to certain criteria by experts. You can get product ratings from special sources. But this assessment is given taking into account the specifics of application development. A more or less rational choice of application development tool can only be made in the context of a specific project or a specific organization leading the development.

Therefore, for a correct assessment of application development tools, an assessment by experts familiar with the specifics of the application being developed and the issues of its further modification and maintenance is needed. Due to the impossibility of obtaining such an assessment from recognized experts and the insufficient seriousness of the application being developed, I decided to accept the students of the group and other persons involved in program development as experts.

Various criteria were taken into account to assess the quality of a software product, in particular those that take into account aspects of the software product being developed:

Availability of software development and implementation tools;

Correspondence of the selected software to the programmer’s level of preparedness;

Software capabilities for developing professional applications and complex software systems;

Assessing the quality of tools in terms of reliability, productivity, ease of use and labor intensity of their operation;

The prospects and viability of software manufacturing companies, the possibility of updating and the availability of new versions of products when modernizing the software and hardware environment;

The ability to move from a single-user version (for debugging and local use) to a network version, for development tools and operational tools, as well as its complexity;

Docking with wide range other DBMS and the possibility of transferring the database for this software tool to other DBMS;

Ability to connect to corporate networks and the Internet/Intranet, support for constantly developing WEB technologies;

The modular principle of construction, the degree of its versatility.

Availability of documentation in Russian, help systems, documentation in printed and electronic versions, consultation opportunities;

Simplicity of the programming language;

Application speed;

Application compilation speed;

Availability of an integrated debugger;

Exception handling;

The method for determining a suitable software product is as follows.

First, several available and well-known software products are selected. I chose Delphi 5.0, Visual C++ 6.0 and Visual Basic for consideration. Each criterion was assigned a weight based on the design goals in such a way that the sum of the weights of all criteria was equal to 1.

Then, for each criterion parameter, an assessment was given software product on a ten-point scale, and the integral score for each software product was calculated using formula 1.1.

Fifth year students of the IT98-1 group acted as experts who gave the expert assessment.

Calculations using formula (1.1) are summarized in table 1.2.

As can be seen from Table 1.2, the most suitable tool for developing a software package is Delphi 5.0.


Table 1.2 - Comparison of software products

1.4 Terms of reference 1.4.1 Introduction

The software package is designed to create a course of study in the discipline and for teaching the discipline.

1.4.2 Reasons for development

The development of the software package is carried out on the basis of a thesis assignment, approved by order of the rector of the Donbass Engineering Academy in accordance with GOST 19.101-77.

The topic of the thesis is “Software and methodological complex for multimedia presentation educational information».

Special part of the development – ​​“Development of software for the interface of the complex shell and an example of information content”

1.4.3 Purpose of development

The software package is designed to create a large number of educational discs in various disciplines. Includes an interface for creating a training course and a training shell.

1.4.4 Requirements for the software product 1.4.4.1 Requirements for functional characteristics

The software package must perform the following functions:

Provide the ability to enter lectures and other educational material with pictures, videos and audio;

Provide the opportunity to change the course;

Provide the opportunity to take a course (study);

Provide the opportunity to control acquired knowledge;

Provide the ability to search the entire course.

1.4.4.2 Reliability requirements

The software package must function stably and not cause the operating system to freeze in emergency situations.

Control of the generated educational material is assigned to the user who creates the educational course.

1.4.4.3 Operating conditions

Ambient air temperature, humidity and other microclimate parameters must meet the requirements for premises equipped with personal computers.

To create a training course, you need a person - a teacher or a user who will create the material. A person must have the skills to work with a personal computer equipped with an operating room Windows system.

1.4.4.4 Requirements for composition and parameters technical means

For normal functioning The software package requires a personal computer with the following characteristics:

Volume RAM at least 32 megabytes;

Processor not lower than Pentium 166, mouse, keyboard;

Availability free space on a hard disk of at least 5 megabytes;

3.5'' disk drive;

Sound card;

SVGA monitor.

1.5.4.5 Requirements for information and software compatibility

The program must run under the Windows operating system. The BDE Administrator program must be installed to work with databases. The source codes of the program must be written in Object Pascal language in the Delphi 5.0 development environment. Information must be entered directly through the GUI. The result of information visualization should be presented in a clearly understandable form.

1.4.4.6 Requirements for software documentation

The preliminary composition of the program documentation is established in accordance with GOST 19.101-77. Below is a list program documents and their content.

Program text – a recording of the program with the necessary explanations and comments.

Description of the program - information about logical structure and the functioning of the program.

Test program and methodology - requirements to be verified when testing the program, as well as control procedures and methods.

Terms of reference – this document.

Explanatory note– results of a study of information presentation structures, a general description of the functioning of the program, as well as justification for the adopted technical and technical-economic decisions.

1.4.5 Stages and milestones of development

The stages and phases of development must comply with GOST 19.101-77 and consist of the following points.

1 Technical specification – a rough definition of the requirements for the software package and software documentation.

2 Draft design – development of structures for presenting information in the software package, development of the structure of classes necessary for the implementation of the given algorithm. Formulation of methods for implementing nesting in a software package, development of program structure.

3 Technical project– clarification of the structure of classes and methods of presenting information. Detailed clarification of the nesting implementation method. Development of the program structure.

4 Working project - program development, development of program documentation, testing of the program.

1.4.6 Inspection and acceptance procedure

The developed software must meet the customer's requirements and meet all specified functional requirements. The program must be tested for the possibility of exceptions occurring and an appropriate review must be made.

1.5 Development of a mathematical model

A very important step in creating an electronic textbook is the selection of materials for training and the structure of presentation of these materials.

The following steps are suggested for designing a training course:

Methodological development of the topic of the training program.

By analyzing the results of special model experiments, develop a chapter model for a specialized textbook.

To determine the requirements for a software product with which teachers in educational institutions can create electronic textbooks for specialized schools, taking into account the level of teachers’ training in using a computer.

Develop a software package intended for development electronic means educational purpose: information and expert systems, electronic textbooks, special tools for studying students.

To propose a technology for developing electronic textbooks for specialized training using a package.

Develop a number of textbooks and conduct experiments to test them with students and teachers.

Based on the analysis of electronic tools created by teachers and special research, develop new project software for creating electronic textbooks.

When developing a textbook, it is necessary to take into account: the interests of students, their psychological characteristics, attitude towards the subject and the teacher, the ability of students to complete creative tasks and orientation towards it, the difficulties of schoolchildren in studying the subject and the types of help that they prefer.

The stages of developing an electronic textbook can be represented in the form of a diagram shown in Figure 1.2.

The textbook requires special attention to motivate students to study each topic. Common points in this area are: the possibilities of applying mathematics in the relevant subject area, the need to pass exams.

The opportunity to gain experience in creative activities in different subject areas, familiarity with interesting applications of computers.

The textbook must provide the student with the opportunity to choose not only the level at which he will study the educational material of the topic, but also a different way of studying the topic (at least two ways). At the same time, the student must realize that he and only he is responsible for his choice of level of study of the topic.


Figure 1.2 - Stages of development of power plant

The textbook is designed to protect students from overload. In particular, this is served by the homework section on new material (it presents the minimum number of tasks that will be offered at home and for which the student will again have to choose the level of difficulty).

The textbook should have a special simulator, by accessing which, on his own initiative, the student can not only work out algorithms for solving basic types of problems, but also learn: to abandon the known method of solving problems and find other methods, compose problems, look for and correct errors in solving problems, analyze situations in different ways etc.

The textbook should have a personal monitoring section intended for students who, before taking a test, want to evaluate the results of their work on the topic and make the necessary adjustments in a timely manner, want to know the forecast of the test result and receive instructions from the computer on how to improve it.

Provided various types helping students. Particularly important is the inclusion of a special expert system, which is intended not only to help students solve specific problems in the classroom or at home, but is also focused on conveying the experience of the textbook author with different elements of the textbook.

A section for creative assignments, which offers possible projects for the needs of the educational institution and for participation in conferences and competitions held both within the educational institution and outside it.

It is important that the textbook can be significantly changed and supplemented based not only on the developments of the author of the textbook, the teacher who uses it, but also by students together with the teacher based on projects completed by students and taking into account the characteristics of the educational institution and the profile of the class. Here's one illustration: a mathematics textbook for humanities classes can be translated by students into the foreign languages ​​the students are studying. In this case, new students using the updated version of the electronic textbook receive a new possible option studying a topic – studying a topic in a foreign language.

It is essential that students become familiar with the experience of performing some work that is important for the profile of the class, that causes known difficulties for students, and that was performed by their peers. This is achieved by including sections in the textbook that present different options for completing the same tasks by students who studied the material using an electronic textbook (for example, for reflection or systematization, for composing problems, etc.) and analysis of the performance performed by the students and the author of the electronic textbook.

Based on the above, the structure of materials shown in Figure 1.3 is proposed.

1.6 Development of software package components 1.6.1 Development of a logical model of the software package

One of the ways to describe the logical model of a software package is structural analysis.

The essence of the structural approach lies in the decomposition (partitioning) of the system into automated functions: the system is divided into functional subsystems, which in turn are divided into subfunctions, subdivided into tasks, and so on. The partitioning process continues down to specific procedures. At the same time, the automated system maintains a holistic view in which all components are interconnected. When developing a system "bottom-up" from individual tasks to the entire system, integrity is lost, and problems arise in the information connection of individual components.

All of the most common structural approach methodologies are based on a number of general principles. The following two basic principles are used:

The principle of solving complex problems by breaking them down into many smaller independent problems that are easy to understand and solve;

The principle of hierarchical ordering is the principle of organization components problems into hierarchical tree structures with new details added at each level.

Isolating two basic principles does not mean that the remaining principles are secondary, since ignoring any of them

they can lead to unpredictable consequences (including the failure of the entire project). The main ones of these principles are the following:

The principle of abstraction is to highlight the essential aspects of the system and abstract from the unimportant;


Risk 1.3- Structure of materials


The principle of formalization is the need for a strict methodological approach to solving the problem;

The principle of consistency - lies in the validity and consistency of the elements;

The principle of data structuring is that data should be structured and hierarchically organized.

Structural analysis mainly uses two groups of tools to illustrate the functions performed by the system and the relationships between data. Each group of tools corresponds to certain types of models (diagrams), the most common of which are the following:

SADT (Structured Analysis and Design Technique) models and corresponding functional diagrams;

DFD (Data Flow Diagrams) data flow diagrams;

ERD (Entity-Relationship Diagrams) entity-relationship diagrams;

In biology lessons. [Electronic resource]. Access mode: http://www. nenc.gov.ua/index.php? id=79. - Heading and title. screen. ABSTRACTS Slipchuk I.Yu. Methodology for teaching biology to 8th-9th grade students using advanced computer technologies. - Manuscript. Dissertation for the development of the scientific level of a candidate of pedagogical sciences for the specialty 13.00.02 – theory and methods of science (biology). – National...

The spheres of intellectual activity brought with it completely new ideas about the possibilities of information processing, new techniques and forms of work, a new level of information security of society. In this sense, there is every reason to talk about the advent of an era computer technology as a new round of civilization. By the way, the expression “computer civilization” really exists, it’s real...

Currently, each programming system is associated not with individual tools (for example, a compiler), but with a certain logically connected set of software and hardware tools that support the development and maintenance of software in a given programming language or are focused on a specific subject area. We will call such a collection tool environment for software development and maintenance. Such tool environments are characterized, firstly, by the use of both software and hardware tools, and, secondly, by a certain orientation either to a specific programming language or to a specific subject area.

The tool environment does not necessarily have to function on the computer on which the software developed with its help will be used. Often this combination is quite convenient (if only the power of the computer used allows it): there is no need to deal with computers different types, the components of the instrumental environment itself can be included in the developed software. However, if the computer on which the software is to be used is inaccessible to the developers of this software (for example, it is constantly busy with other work that cannot be interrupted, or it is still under development), or is inconvenient for developing the software, or the power of this computer is insufficient for ensuring the functioning of the required instrumental environment, then the so-called instrumental-object approach. Its essence lies in the fact that the software is developed on one computer, called instrumental, and will be used on another computer called targeted(or objective).

There are three main classes of instrumental environments for software development and support (Fig. 16.1): ·

programming environments, ·

computer technology jobs,

programming technology instrumental systems.

Programming environment is intended mainly to support the processes of programming (coding), testing and debugging of the software. Computer technology workplace is focused on supporting the early stages of software development (specifications) and automatic generation of programs according to specifications. Programming Technology Tool System is designed to support all development and maintenance processes throughout the entire software life cycle and is focused on the collective development of large software systems with long-term life cycle. For such systems, the cost of maintenance usually exceeds the cost of development.

Rice. 16.1. Main classes of tool environments for software development and maintenance.

  1. Programming tool environments.

Instrumental programming environments contain, first of all, a text editor that allows you to construct programs in a given programming language, tools that allow you to compile or interpret programs in this language, as well as test and debug the resulting programs. In addition, there may be other tools, for example, for static or dynamic program analysis. These tools interact with each other through regular files using standard file system capabilities.

There are the following classes of programming tools (see Fig. 14.2): ·

general purpose environments,

language-oriented environments.

Programming Environments general purpose contain a set of software tools that support the development of programs in different programming languages ​​(for example, a text editor, a link editor, or an interpreter for the language of the target computer) and usually represent some extension of the capabilities of the operating system used. To program in such an environment in any programming language, additional tools targeted at this language (for example, a compiler) will be required.

Fig. 16.2. Classification of programming tools.

Language-oriented The programming tool environment is designed to support the development of software in any one programming language, and knowledge about this language was significantly used in the construction of such an environment. As a result, quite powerful capabilities that take into account the specifics of a given language can be available in such an environment. Such environments are divided into two subclasses: ·

interpretive environments, ·

syntactically-driven environments.

Interpretive The programming tool environment provides interpretation of programs in a given programming language, i.e. contains primarily an interpreter of the programming language for which this environment is oriented. Such an environment is necessary for interpretive programming languages ​​(such as Lisp), but can also be used for other languages ​​(for example, on an instrumental computer). Syntactically-driven The programming tool environment is based on knowledge of the syntax of the programming language for which it is targeted. In such an environment, instead of a text editor, a syntactically controlled editor is used, which allows the user to use various templates of syntactic constructions (as a result of this, the developed program will always be syntactically correct). Simultaneously with the program, such an editor forms (in computer memory) its syntax tree, which can be used by other tools.

To optimally develop a software environment, it is necessary to combine different programming languages, since each of them is aimed at achieving specific goals and objectives. For example, a few PHP commands can create an entire Web page, but in practice the script is almost always used in conjunction with HTML, and usually the source text of the script contains a large number of lines. However, it should be noted that PHP code can be located anywhere in an HTML document, but it does not have to use HTML. You just need to ensure that the PHP code produces the correct HTML code, which will then be correctly displayed by the Web browser.

HTML is a hypertext markup language that is used to create documents on the Internet. With its help, the necessary structure and grid of the page are created, the appearance of which is further improved by CSS and JavaScript. Currently the latest version is HTML5, which was preceded by HTML4.01. Most Web resources are built on the basis of this particular language.

Unlike HTML 4, which has 3 validators, HTML 5 has one validator:. HTML 5 supports MathML and SVG.

New tags: section, article, aside, hgroup, header, footer, nav, dialog, figure, video, audio, source, embed for inserting content with the plugin (only), mark, progress, meter, time, ruby, rt, rp , canvas, command, details, datalist, keygen, output.

New input types: tel, search, url, email, datetime, date, month, week, time, datetime-local, number, range, color.

New attributes for tags: ping media attributes for a and area, etc.

The disappearance of some tags, due to the fact that they can be replaced with CSS: basefont, big, center, font, s, strike, tt, u.

Frames disappearing due to negative impact on the entire page

The disappearance of some tags, replaced in the updated specification with more relevant ones: acronym (abbr is used), applet (object is used), isindex, dir.

Some tag attributes are not supported due to lack of necessity: rev and charset for link and a, shape and coords for a, etc.

Some attributes of tags are not supported due to the fact that when using CSS the best effect is achieved: align for all tags, alink, link, text, vlink for the body and so on.

New APIs: drawing 2D pictures in real time; control over the playback of media files; storing data in the browser; editing; Drag-and-drop; working with the network; MIME; new elements in the DOM.

CSS is a formal language for describing the appearance of a document written using a markup language. CSS is an acronym for Cascading Style Sheets. CSS is a styling language that defines the display of HTML documents. For example, CSS works with fonts, color, margins, lines, height, width, background images, positioning of elements and many other things. HTML can be used to design Web sites, but CSS is more powerful and more precise and refined. CSS is currently supported by all browsers.

HTML is used to structure the content of a page. CSS is used to format this structured content. As the Web evolved, designers began to look for ways to format online documents. To meet increased consumer demands, browser manufacturers (then Netscape and Microsoft) invented new HTML tags, such as , which differed from the original HTML tags in that they defined appearance rather than structure. This also led to original structuring tags such as

, have become increasingly used for page design instead of text structuring. Many new design tags such as , were supported by only one browser. “You need browser X to view this page” has become a common disclaimer on Web sites.

CSS was created to correct this situation by providing Web designers with precision design capabilities that are supported by all browsers. At the same time, the presentation and content of the document were separated, which greatly simplified the work.

The advent of CSS was a revolution in the world of Web design. Specific benefits of CSS:

Control the display of multiple documents using a single style sheet;

More precise control over appearance pages;

Different views for different media (screen, print, etc.);

Complex and sophisticated design technique.

There are ways to apply CSS rules to the HTML document.

Method 1: Inline/In-line (style attribute). You can apply CSS to HTML using the HTML style attribute. The background color can be set to red like this:

Example

This is a red page

Method 2: Internal (style tag). The second way to insert CSS codes is an HTML tag