Материал: Крючков Фундаменталс оф Нуцлеар Материалс Пхысицал Протецтион 2011

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

No software lifecycle stages are expressly identified, still the most important steps are as follows:

∙concept;

∙review of requirements to software;

∙development;

∙implementation;

∙tests;

∙deployment and testing;

∙operation and servicing.

Depending on the purpose and scope, the effort and cost relation for various steps may vary between projects. Planning/design (covers the three initial steps) and testing/deployment are the two most costly stages.

One should also remember something some US developers call a 1:10:100 rule, which is understood like this. The cost involved in correcting an error (inaccuracy) at the planning/design stage is assumed to be 1. The error correction cost at the programming stage will then be equal to 10. The error correction during the final test stage will ultimately require a 100 times greater effort to spend. This estimate gives an idea about how important predesign is.

The USA has up to 175 thousand program projects undertaken yearly in various fields, the total spending for these reaching 250 billion dollars. Only 16% of these are implemented on time and at the cost planned. 31% of the projects simply fail and are not brought to fruition. This has given US developers rather a broad experience, both positive and negative, and has led to the underlying requirements having been shaped on all system development stages that are decisive to the success of the project.

Planning of accounting and control systems

The system planning opens with a requirements review. This review has the purpose of formulating, analyzing and documenting functional, information, operating, interface, characteristic and design constraints for the software product. This is the stage for the designer to detail WHAT the system must do and, by no means, HOW this must be done. This is also the reason for software developers not to be preferably involved in this project stage. Anyone with an experience in building systems inevitably thinks about how to realize requirements, and so, when doing this, may turn to ready-made solutions to satisfy the customer requirements.

The following is involved in the requirements review:

∙determination of the initial project scope;

366

∙analysis of the task membership region;

∙determination of the region’s key functions;

∙determination of alternative project decision patterns;

∙selection of the unique decision;

∙generation of the output document (Software Requirements Specification or SRS);

∙determination of the deployment program.

A work unit is formed to implement these stages. This unit is expected to include the following roles:

∙a business leader. This is an expert in the subject matter (business) for which the project is established. He/she is in charge of business decisions;

∙a coordinator – chairs meetings (a project manageme nt and performance expert). The physical project leader;

∙an administrator – a representative of the develope r in charge of the overall guidance, budget and project implementation;

∙a sponsor – the person responsible for funding;

∙a technical leader – a representative of the develo per in charge of technical guidance;

∙a user representative – acts on behalf of end users ;

∙a program project unit – a work unit.

Work starts. So now we shall talk in brief about the project planning and design key stages.

Determination of the initial project scope. This stage requires the developer to expressly:

∙define what shall be or shall not be included in the project, i.e. identify a subtask in the overall task region that can be solved for the money and time allocated;

∙conceive the problem in general;

∙select the requirements review procedures and tools;

∙secure the customer’s and the sponsor’s documented approval for the project scope.

A project unit is formed at this stage to prepare activities and equipment and to outline the general concept.

Workshops and interviews are used to acquire data at the planning stage. The most important thing to focus on is to have all information recorded and do not permit leaders to suppress the opinions of other people involved. Often it is required to keep division or enterprise leaders away from these workshops. The discussion should be as free as it can be. The main thing at this stage is to have immediate users involved. As the experience of

367

successful US projects shows, the user involvement is decisive to the success of any project.

The next stage deals with design as such. This will analyze the functions and processes the designs will involve.

Functions are what is performed or is to be supported by the system. Process is a specific realization of a function – a process starts, continues and ends. Specified processes and functional requirements are documented and presented graphically. Development needs to include decomposition of functions. This means that global functions, say, a material movement function, are considered first. Then the function is subdivided into lowerlevel functions: movement of material inside MBA, offsite receipt of material or shipment of material. All this continues until one obtains elementary functions or functions one cannot subdivide into further lowerlevel functions.

Dependencies are established between functions. The following dependencies are identified:

∙direct dependency – a process starts after another process ends;

∙mutually exclusive dependency – conditions are used ;

∙recursive dependency – the process is rerun;

∙parallel dependency – the result leads to more than one process run.

Objects of activities and attributes thereof should be further identified. Object is a person, a place, a thing, an event or an idea, information on which needs to be obtained for the activity to be performed successfully. Objects have attributes; which are properties of an information object. Later into the database design stage, objects will be realized in tables, while attributes will become table fields (columns). This is a very important stage that requires immediate user involvement. If an object fails to be specified at this stage or no attributes thereof are identified but come out as late as at the programming or deployment stage, the whole of the database structure will need a change.

After objects are specified, relations between them are established. This process is close to the process of linking database tables.

Technical requirements are established at the next stage. This stage requires the following technical constraints to be established and documented for the future system:

∙capacity;

∙design;

∙information security;

∙accessibility;

368

∙interface;

∙DBMS in use.

Requirements need to have a particular measurable form. Let us take an example. The time of access to a table is 2 s. The number of users, clients and transactions is per day. The requirements of standards and reports should be taken into account. We were considering examples of such requirements when reviewing specific software products and the CoreMAS and E/Z MAS A&C systems.

Following the above procedures, the developers need to screen the potential decisions for the unique or the best decision. One screening technique is expert appraisal. An expert unit evaluates different key requirements giving them rankings and evaluating alternatives in these rankings. The parameters are tabulated. The ranking is multiplied by the appraisal value and summed up. The result specifies the options preferred. Then potential risks of the project failure are evaluated.

We proceed finally to the closing design planning stage when the software requirements specification (SRS) is prepared. This stage will result in a document that describes the key software requirements. Further on, this will be what will guide the design of essential software components. The extent to which the SRS is formal depends on the design dimensions and relevance. The specification shall contain:

∙functional requirements;

∙data requirements;

∙technical requirements;

∙decisions;

∙problems;

∙recommended decisions.

Software design

After the SRS is prepared, the developer starts software design. The deliverable at this stage is the database created, including fully structured tables with links and facilities to support information integrity (triggers, limits, saved procedures) and the Software Design Description (SDD), a detailed document about the data structure and functions. Following this preliminary review, the next postdesign step (coding proper) turns into merely a technical operation.

Let us now look at the software design process and some of the techniques this involves. The deliverables for the design stage are:

369

∙the architecture design which mutually relates the system’s major structural components;

∙the procedural design which supports the conversion of major structural components to a procedural software description leading to a program source code generation;

∙the data system design which converts the information model to the data structure (database and program data).

The first of these three stages is, normally, development of data. The most important thing in the development of data is selection of logic object representations identified when the SRS was being written. The following data development strategy has been proposed:

∙systems analysis, which is used to analyze functions and processes, is applicable to data as well;

∙all data structures and operations on these should be identified;

∙a data glossary should be generated and used during the program creation;

∙consistent detailing of data – low-level data is le ft for the next design stage,

∙data structures should be known only to the models that use them directly;

∙libraries of data structures and associated functions should be created;

∙the programming language should support abstract data types.

The program architecture development is aimed primarily at getting a developed modular structure and showing the relations among different modules. The program architecture development combines program structure development with development of data via the interface among the modules.

Procedures are developed after the program structure (architecture) and the data structure are established. The development of procedures involves largely two techniques: use of flow charts and a reference programming language (pseudocode).

Software testing

After the software is designed, the coding stage begins. It makes no difficulty with all the work done before. The coding stage accounts for just a small portion of all efforts spent. As evidenced by the US experience, the cost of code writing is negligibly low as compared to the program design and functional check costs. After codes are written, we set on a new step, which is a software test stage.

370

Источник: https://studfile.net/preview/16708779/