NL9002460A - METHOD FOR ANALYZING AND FORECASTING A PROGRAM DEVELOPMENT PROCESS - Google Patents
METHOD FOR ANALYZING AND FORECASTING A PROGRAM DEVELOPMENT PROCESS Download PDFInfo
- Publication number
- NL9002460A NL9002460A NL9002460A NL9002460A NL9002460A NL 9002460 A NL9002460 A NL 9002460A NL 9002460 A NL9002460 A NL 9002460A NL 9002460 A NL9002460 A NL 9002460A NL 9002460 A NL9002460 A NL 9002460A
- Authority
- NL
- Netherlands
- Prior art keywords
- parameters
- program
- determined
- development
- values
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
- G06F11/3616—Analysis of software for verifying properties of programs using software metrics
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
Werkwijze voor het analyseren en voorspellen van een programma tuurontwikkelingsproces .Method for analyzing and predicting a program development process.
De uitvinding heeft betrekking op een werkwijze voor het analyseren van een door de computer ondersteund programmatuur ontwikkelingsproces, volgens welke werkwijze ten minste één keer gedurende het proces één of meer parameters van het in ontwikkeling zijnde product worden bepaald en worden vergeleken met eerder in het produktieproces bepaalde overeenkomstige parameters teneinde aan de hand daarvan inzicht in het ontwikkelingsproces en het daaruit resulterende produkt te verwerven.The invention relates to a method for analyzing a computer-aided software development process, according to which method at least once during the process one or more parameters of the product under development are determined and compared with previously determined in the production process corresponding parameters in order to gain insight into the development process and the resulting product.
Het ontwikkelen van programmatuur kent diverse fasen, zoals probleem analyse, specifikatie van eisen, programma ontwerpen, ontwerpen van data-strukturen, coderen, testen, documenteren. Niet alleen deze fasen maar ook andere kunnen overigens door verschillende systeemontwik-kelaars in een eigen selektie en volgorde worden uitgevoerd. Meestal is er echter een vaste werkwijze per bedrijf of per projekt.Software development has various phases, such as problem analysis, specification of requirements, program design, design of data structures, coding, testing and documentation. Not only these phases but also others can be carried out by different system developers in their own selection and sequence. Usually, however, there is a fixed working method per company or per project.
Tegenwoordig worden deze fasen steeds meer ondersteund door automatische hulpmiddelen, zoals Computer Aided Software Engineering (CASE) tools. Voorbeelden van dergelijke tools (programma's) zijn: tekenpakketten voor het samenstellen van schematische diagrammen, syntax checkers, entiteits relatie diagrammerings pakketten, consistentie controle programma's, configuratie (versie) beheer pakketten, tekstverwerkers, programma's voor het aanmaken van kruis referentie lijsten, programma's voor normalisatie van data strukturen, bestands en data-base beheers pakketten, compilers, test generators, "make" Utilities etc.Today, these phases are increasingly supported by automatic tools, such as Computer Aided Software Engineering (CASE) tools. Examples of such tools (programs) are: drawing packages for compiling schematic diagrams, syntax checkers, entity relationship diagram packages, consistency control programs, configuration (version) management packages, word processors, programs for creating cross reference lists, programs for standardization of data structures, file and database management packages, compilers, test generators, "make" Utilities etc.
Een kompleet software systeem zal in het algemeen bestaan uit meerdere onderdelen, die elk meestal slechts een bepaalde funktionali-teit van het geheel realiseren. De opsplitsing van het totale systeem in zgn. systeemcomponenten heet het architectuur ontwerp van het systeem.A complete software system will generally consist of several parts, each of which usually only realizes a certain functionality of the whole. The division of the total system into so-called system components is called the architectural design of the system.
Gedurende het ontwikkelingsproces zal elke systeemcomponent de verschillende fasen van de ontwikkeling doorlopen voordat gesproken kan worden van een kant en klaar geprogrammeerde systeemcomponent. Op elk tijdstip zal een systeem dat in ontwikkeling is en groot aantal van dergelijke componenten hebben. Zoals bij de deskundigen op dit terrein bekend is kunnen aan de ontwikkeling van een groot systeem meestal meerdere systeemontwikkelaars tegelijkertijd werken.During the development process, each system component will go through the different phases of development before a ready-made system component can be said. At any time, a system under development will have a large number of such components. As is known to those skilled in the art, multiple system developers can usually work on developing a large system simultaneously.
Een in ontwikkeling zijnd systeem zal daarom op elk tijdstip bestaan uit een verzameling van systeem componenten, die elk in een eigen fase van ontwikkeling zijn.An evolving system will therefore at any time consist of a collection of system components, each in its own phase of development.
Teneinde systeem componenten te beoordelen op kwaliteit, onder- houdbaarheid, complexiteit, omvang, testbaarheid, stabiliteit etc. hanteert men diverse - al of niet geautomatiseerde - technieken. In dit verband wordt in het bijzonder gewezen op het meten van diverse parameters van systeemcomponenten, zoals bijvoorbeeld het aantal lijnen code, het aantal verschillende funkties, het aantal entiteits relaties, het aantal aangeroepen funkties, het aantal nivo's van geneste-routines etc. Dergelijke meetwaarden zijn bekend onder de verzamelnaam "metrics". Hetrics kunnen ook (complexe) samenvoegingen zijn van diverse gemeten parameters. Voorbeelden van dergelijke complexe metrics zijn o.a. de metrics van McCabe (maat voor complexiteit), Rechenberg metric, Halstead metric etc.In order to assess system components on quality, maintainability, complexity, size, testability, stability, etc., various techniques are used, whether or not automated. In this context, particular attention is drawn to the measurement of various parameters of system components, such as, for example, the number of lines of code, the number of different functions, the number of entity relations, the number of functions called, the number of levels of nested routines, etc. Such measured values are known under the collective name "metrics". Hetrics can also be (complex) aggregations of various measured parameters. Examples of such complex metrics include McCabe's metrics (measure of complexity), Rechenberg metric, Halstead metric etc.
Over het algemeen worden metrics bepaald van systeem componenten die gereed zijn wat hun ontwikkeling betreft. Een gehele of gedeeltelijke herontwikkeling als gevolg van een analyse is echter niet abnormaal. Hierna zal dan weer een nieuwe analyse van de systeemcomponent worden uitgevoerd om vast te stellen of de component nu binnen de aksep-tatie kriteria valt.In general, metrics are determined for system components that are ready for their development. However, a full or partial redevelopment as a result of an analysis is not abnormal. After this, a new analysis of the system component will be performed to determine whether the component now falls within the criteria criteria.
Het opslaan van metrics in files of databases is daarbij niet nieuw. Ook worden wel metrics opgeslagen van één systeemcomponent op verschillende tijdstippen, zodat een bepaald historisch overzicht van de ontwikkeling van die systeemcomponent kan worden gemaakt. Over het algemeen worden metrics echter opgeslagen in aparte metrics bestanden, die niet in de systeemomgeving van de systeemontwikkelaars behoren, doch bijvoorbeeld behoren in de omgeving van de kwaliteitscontroleur, van de manager etc. Het gebrek aan een optmale integratie van metrics met de componenten die de bron van de metrics zijn wordt als nadeel ondervonden. Om de parameters van het in ontwikkeling zijnde produkt te kunnen bepalen, zal het produkt immers op een daartoe geschikt moment door de betreffende programmeur aan het analyseprogramma ter beschikking moeten worden gesteld. Het ongemak dat de programmeur daarvan ondervindt, hij wordt in zijn normale werkzaamheden onderbroken, en het feit dat door anderen of eventueel door de programmeur zelf stappen moeten worden ondernomen om de analyse uit te voeren, blijken er in de praktijk toe te leiden, dat het aantal keren dat tijdens het produktieproces de betreffende parameters worden bepaald, relatief klein is. De analyse die op basis van de op deze wijze bepaalde parameters kan worden uitgevoerd, is derhalve zeer grof en biedt slechts weinig inzicht in het verloop van het ontwikkelingsproces op willekeurige momenten.Storing metrics in files or databases is not new. Metrics of one system component are also stored at different times, so that a specific historical overview of the development of that system component can be made. In general, however, metrics are stored in separate metrics files, which do not belong in the system environment of the system developers, but belong, for example, in the environment of the quality controller, the manager etc. The lack of an optimal integration of metrics with the components that the source of the metrics is considered a disadvantage. After all, in order to determine the parameters of the product under development, the product will have to be made available to the analysis program by the relevant programmer at an appropriate time. The inconvenience to the programmer is interrupted in his normal work, and the fact that steps must be taken by others or possibly by the programmer himself to carry out the analysis have, in practice, shown that the number of times that the relevant parameters are determined during the production process is relatively small. The analysis that can be carried out on the basis of the parameters thus determined is therefore very crude and offers little insight into the course of the development process at random moments.
De uitvinding heeft nu ten doel aan te geven op welke wijze de genoemde structurele parameters in detail en op eenvoudige en doeltref fende wijze kunnen worden bepaald, zonder dat daartoe door de programmeur dan wel door een ander speciale stappen moeten worden ondernomen.The object of the invention is now to indicate how the said structural parameters can be determined in detail and in a simple and effective manner, without the programmer or any other special steps having to be taken for this purpose.
Aan deze doelstelling wordt bij een werkwijze van in de aanhef genoemd soort voldaan, dat maatregelen zijn getroffen om de uitvoering van een analyse-programma, dat dergelijke parameters bepaald, te koppelen aan een of meer voor het ontwikkelingsproces essentiele en door de computer uit te voeren akties, zodat telkens wanneer het in ontwikkeling zijnde produkt een dergelijke aktie ondergaat tevens de genoemde parameters worden bepaald en de waarden daarvan worden opgeslagen in een geheugen.This objective is met in a method of the type mentioned in the opening paragraph, that measures have been taken to link the execution of an analysis program, which determines such parameters, to one or more essential elements for the development process and to be executed by the computer. actions, so that whenever the product under development undergoes such an action, said parameters are also determined and the values thereof are stored in a memory.
Door de structurele parameters, die nodig zijn in het analyse-proces telkens te bepalen telkens in combinatie met een voor het ontwikkelingsproces essentiele aktie die niet kan worden overgeslagen wordt bereikt het analyseprogramma automatisch wordt gestart zonder dat de programmeur daarvoor stappen moet ondememem. Aangezien er een relatief groot aantal van dergelijke akties door de computer moet worden uitgevoerd op relatief korte tijdsafstanden wordt tevens bereikt dat de parameters ook telkens op relatief korte tijdsafstanden worden gequan-tificeerd en de waarden ervan in een geheugen worden opgeslagen. Tijdens het ontwikkelingsproces wordt daardoor een verzameling van parameter-waarden opgebouwd die een, ten opzichte van de bestaande werkwijze, nauwkeuriger en gedetailleerder inzicht in het proces en in het daaruit resulterende produkt kunnen verschaffen.By determining the structural parameters, which are necessary in the analysis process, each time in combination with an essential action for the development process that cannot be skipped, the analysis program is automatically started without the programmer having to take steps. Since a relatively large number of such actions have to be performed by the computer at relatively short time intervals, it is also achieved that the parameters are also quantified at relatively short time intervals each time and the values thereof are stored in a memory. As a result, a set of parameter values is built up during the development process that can provide a more accurate and detailed insight into the process and the resulting product compared to the existing method.
Bij voorkeur worden tezamen met de genoemde parameterwaarden tevens het tijdstip, waarop de waarden van de betreffende parameters werden bepaald, in het geheugen opgeslagen. Daarmee wordt bereikt dat er een duidelijke rlatie kan worden gelegd tussen het stadium waarin het produkt zich bevind en de tijd die nodig was om dat stadium te bereiken.Preferably, together with the said parameter values, the time at which the values of the relevant parameters were determined is also stored in the memory. This ensures that a clear relationship can be made between the stage of the product and the time it took to reach that stage.
Zoals gezegd zorgt de uitvinding ervoor, dat tijdens het ontwikkelingsproces het tijdstip van het analyseren samenvalt met essentiele akties. Volgens een voorkeursuitvoeringsvorm van de werkwijze volgens de uitvinding bestaat de actie, waarmee het analyse-programma is gekoppeld of geïntegreerd, bestaat uit de uitvoering van één of meer van de volgende soorten computer programma's of Utilities (kleine akties die meestal onderdeel zijn van de systeem omgeving): een tekenprogrammapakket voor het samenstellen van schematische diagrammen, een syntax controleprogramma, een entiteitsrelatie-diagrammerings-programmapakket, een consistentie-controleprogramma, een configuratie (versie) beheer-programmapakket, een tekstverwerker, een programma voor het aanmaken van kruisreferentielijsten, een programma voor normalisatie van datastrukturen, een bestands- en data-base-beheersprogrammapakket, een compiler, een testgenerator, een "make"-utilitie.As stated, the invention ensures that during the development process the time of analysis coincides with essential actions. According to a preferred embodiment of the method according to the invention, the action with which the analysis program is linked or integrated consists of the execution of one or more of the following types of computer programs or Utilities (small actions that are usually part of the system environment ): a drawing program package for compiling schematic diagrams, a syntax checking program, an entity relationship diagramming program package, a consistency checking program, a configuration (version) management program package, a word processor, a cross reference list creation program, a program for normalization of data structures, a file and database management program package, a compiler, a test generator, a "make" utility.
Met andere woorden, het analyseprogramma wordt automatisch uitgevoerd telkens als een programeur bijvoorbeeld de syntax van een systeemcom-ponent cotroleerd met een syntaxcontroleprogramma, een broncode com-pileerd gebruik makend van en compiler of een programma documentatie (tekst), vervaardigd met een tekstverwerker, opslaat in een directory, etc.In other words, the analysis program is executed automatically whenever a programmer, for example, syntax a system component combined with a syntax checking program, a source code compiled using a compiler or a program documentation (text), produced with a word processor. in a directory, etc.
Volgens een verdere uitvoeringsvorm van de werkwijze wordt bij voorkeur bij elke systeemcomponent van de in ontwikkeling zijnde programmatuur een apart parameterbestand aangemaakt, waarin de waarden van de bepaalde parameters worden opgeslagen. Bij voorkeur bezitten de aparte parameterbestanden een zodanige benaming dat relatie tussen dit parameterbestand en de betreffende systeemcomponent voor eenieder die tot het betreffende bestand toegang kan krijgen direct duidelijk is.According to a further embodiment of the method, a separate parameter file is preferably created for each system component of the software under development, in which the values of the determined parameters are stored. Preferably, the separate parameter files have a designation such that the relationship between this parameter file and the relevant system component is immediately clear to anyone who can access the relevant file.
De vinding heeft derhalve in de bovenbeschreven voorkeursuitvoe-ringsvormen ook invloed op de indeling van de metric bestanden, namelijk door naast het bronbestand van elke systeemcomponent (bijvoorbeeld de source van een programmadeel, of de file waarin het ontwerp van een systeemdeel wordt opgeslagen) een parallel bestand te creëren waarin de metrics worden bewaard. Zo kunnen bijvoorbeeld de sources van alle programma's de bestandsnamen "abcdefg.c" hebben (voor C-code) of "abcdefg.pas" (voor Pascal code). Het bijbehorende metric bestand zal volgens de werkwijze van deze vinding nu de extensie ".met" krijgen, dus "abcdefg.met" . Het is hiermee eenvoudig geworden de metrics bestanden in de directories van de elke programmeur en/of projekt of systeem op te nemen. Door deze decentrale opslag is de toegang tot de metric bestanden eenvoudiger en kan bijvoorbeeld elke systeemontwikkelaar zijn eigen metrics bestanden inspekteren. Hierdoor wordt een groter gebruiksnut van metrics bereikt en wordt het "Big Brother is Watching You" syndroom terug gedrongen. Om het inspekteren van alle metrics bestanden door dë centrale kwaliteits afdeling te kunnen laten geschieden, hoeven de hun toebehorende programma's slechts eenvoudigweg toegang te krijgen tot alle directories van de systeemontwikkelaars. Een centrale metrics data base is op deze wijze niet nodig, hetgeen tevens de daarmee verbonden werkzaamheden en kosten voorkomt. Het voordeel is tevens, dat de indeling van de metrics bestanden nu automatisch de struktuur van de projekt organisatie volgt, dat immers in de directory indeling zal zijn weerspiegelt.Thus, in the preferred embodiments described above, the invention also affects the format of the metric files, namely, in addition to the source file of each system component (for example, the source of a program part, or the file in which the design of a system part is stored) a parallel create file in which the metrics are stored. For example, the sources of all programs may have file names "abcdefg.c" (for C code) or "abcdefg.pas" (for Pascal code). According to the method of this invention, the associated metric file will now have the extension ".met", ie "abcdefg.met". This makes it easy to include the metrics files in the directories of each programmer and / or project or system. This decentralized storage makes access to the metric files easier and, for example, every system developer can inspect their own metrics files. This achieves greater utility of metrics and reduces "Big Brother is Watching You" syndrome. In order for inspection of all metrics files to be carried out by the central quality department, the programs belonging to them simply need access to all directories of the system developers. In this way, a central metrics database is not necessary, which also prevents the associated work and costs. The advantage is also that the format of the metrics files now automatically follows the structure of the project organization, which will indeed be reflected in the directory format.
Toepassingen van de werkwijze volgens de uitvinding.Applications of the method according to the invention.
Toepassing 1Application 1
Door informatie over de ontwikkelingsgang van systeemcomponenten op de beschreven wijze op te slaan, ontstaat statistisch materiaal om een model van de ontwikkelingsgang te kunnen maken. Aan de hand van een dergelijk model kan men een actuele ontwikkeling ijken. Bijvoorbeeld kan men na meting van de ontwerpfase een voorspelling doen over de hoeveelheid manuren die de verdere ontwikkelingsfasen nog zullen kosten.By storing information about the development progress of system components in the manner described, statistical material is created to be able to make a model of the development progress. Current developments can be calibrated on the basis of such a model. For example, after measuring the design phase, a prediction can be made about the amount of man-hours that the further development phases will still cost.
Als een uitvloeisel hiervan, kan men op basis van een aanvangsbud-get voor de ontwikkeling van een systeemcomponent op elk ogenblik de budgetruimte bepalen per ontwikkelingsfase en voor de gehele ontwikkelingsgang.As a corollary to this, based on an initial budget for the development of a system component, the budget space can be determined at any time for each development phase and for the entire development process.
Toepassing 2.Application 2.
Door informatie over de ontwikkelingsgang van systeemcomponenten op de beschreven wijze op te nemen, kan men direkt detekteren als er grote veranderingen in de metrics waarden optreden. Discontinuïteiten in de ontwikkeling kunnen zodoende snel ontdekt worden en corrigerende akties kunnen worden ondernomen.By recording information about the development of system components in the manner described, one can immediately detect if major changes in the metrics values occur. Thus, discontinuities in development can be quickly discovered and corrective actions can be taken.
Een voorbeeld van zo'n discontinuïteit is bijvoorbeeld het plotseling sterk kleiner worden van het aantal funkties in een bepaalde module. Normaliter zal het aantal funkties stijgen vanaf de start van een de ontwikkeling van een module. Deze stijging zal op een gegeven moment flauwer worden en tenslotte niet meer toenemen. De ontwikkeling van de module kan dan nog wel doorgaan, maar zal dan detail ontwikkelingen omvatten per funktie: het aantal funkties in die module verandert niet meer.An example of such a discontinuity is, for example, the sudden sharp decrease in the number of functions in a certain module. Normally, the number of functions will increase from the start of a module development. At a certain point, this increase will become more subdued and will not increase again. The development of the module can then continue, but will then include detailed developments per function: the number of functions in that module will no longer change.
Indien echter tijdens de ontwikkeling, het aantal funkties sterk afneemt, om daarna weer toe te nemen, kan men er met grote zekerheid vanuit gaan, dat de opvatting aangaande de uitgangspunten van de module zijn gewijzigd. Dit komt vaak voor nadat er overleg heeft plaats gevonden over verschillende systeemdelen en men tot de konklusie komt, dat de afstemming niet optimaal was. Een ingrijpende funktionele verandering is vaak het gevolg. Deze zgn. "sudden jumps" kunnen nu snel worden gedetek-teerd en een corrigerende aktie kan worden gestart.However, if during development, the number of functions decreases sharply, and then increases again, it can be assumed with great certainty that the concept of the basic principles of the module has changed. This often occurs after consultation has taken place about various system parts and it is concluded that the coordination was not optimal. A radical functional change is often the result. These so-called "sudden jumps" can now be quickly detected and a corrective action can be started.
Toepassing 3.Application 3.
Door de vinding is het optreden van dergelijke "sudden jumps" in alle systeemcomponenten te detekteren en kan aan de hand van tijdstippen van optreden nader worden onderzocht of systeemcomponenten met dergelijke overeenstemmende "sudden jumps" afhankelijk van elkaar zijn. Indien systeemcomponenten geen direkte verwijzingen naar elkaar hebben, is deze methode een unieke mogelijkheid voor het management om afhankelijkheid te detekteren.The invention makes it possible to detect the occurrence of such "sudden jumps" in all system components and it is possible, based on times of occurrence, to further investigate whether system components with such corresponding "sudden jumps" are interdependent. If system components do not have direct references to each other, this method is a unique opportunity for management to detect dependency.
Toepassing 4.Application 4.
Het analyse programma kan zodanig worden ingericht, dat bij het optreden van vooraf te bepalen waarden van bepaalde metrics direkt een waarschuwing gegeven wordt, waardoor de uitvoering van bepaalde ontwik-kelings hulpmiddelen wordt gestuurd. Bijvoorbeeld kan men een norm aanleggen ten aanzien van het aantal nivo's dat men in een programma mag nesten. (Overschrijding daarvan houdt een te grote complexiteit in, waardoor het onderhoud van het programma onaanvaardbaar kostbaar wordt). Indien het analyse programma een dergelijke overschrijding van deze norm ontdekt, kan bijvoorbeeld automatisch het compilatieproces worden afgebroken, of indien de analyse aan de compilatie vooraf gaat hoeft de compilatie zelfs niet te gebeuren. De systeemontwikkelaar kan dan slechts verder als hij de systeemcomponent in dat opzicht herstructureert.The analysis program can be arranged in such a way that when predetermined values of certain metrics occur, a warning is given immediately, whereby the implementation of certain development aids is controlled. For example, a standard can be set with regard to the number of levels that can be nested in a program. (Exceeding this would be too complex, making maintenance of the program unacceptably expensive). If the analysis program detects such a violation of this standard, the compilation process can be stopped automatically, for example, or if the analysis precedes the compilation, the compilation does not even have to be done. The system developer can then only proceed if he restructures the system component in this respect.
Dergelijke waarschuwingen kunnen uiteraard ook eenvoudig aan de systeemontwikkelaar worden gegeven, die binnen zijn eigen verantwoordelijkheid aktie neemt.Such warnings can of course also simply be given to the system developer, who takes action within his own responsibility.
Indien er omstandigheden zijn waardoor dergelijke normen niet door de systeemontwikkelaar gehandhaafd kunnen worden, zou de procedure kunnen zijn, dat hij/zij een toelichting moet documenteren. Slechts na het maken van een bestand met een dergelijke toelichting zou de ontwikkeling van de systeemontwikkelaar vrij gegeven kunnen worden de norm te overschrijden.If there are circumstances that prevent such standards from being maintained by the system developer, the procedure may be that he / she must document an explanation. Only after creating a file with such an explanation could the development of the system developer be released to exceed the standard.
Toepassing 5.Application 5.
Struktuur metrics geven de mogelijkheid binnen systeemcomponenten informatie over de struktuur van de systeemcomponent te geven, gesepareerd van details die geen invloed op die struktuur hebben. Door dergelijke metrics direkt te tonen aan de systeemontwikkelaar na het uitvoeren van een ontwikkelings hulpmiddel, kan direkt gewaarschuwd worden als een systeemontwikkelaar veranderingen aanbrengt die buiten zijn competentie vallen. Dergelijke waarschuwingen kunnen bijvoorbeeld naar een speciaal bestand van de kwaliteits afdeling worden doorgegeven, die op gezette tijden over dergelijke situaties wordt gewaarschuwd. Toepassing 6.Structure metrics provide the ability to provide information about the structure of the system component within system components, separated from details that do not affect that structure. By showing such metrics directly to the system developer after executing a development tool, immediate notification can be made if a system developer makes changes that are beyond his competence. Such warnings can, for example, be passed on to a special file of the quality department, which is regularly warned about such situations. Application 6.
Door de analyse te integreren met ontwikkelings hulpmiddelen kan de belasting van de computersysteem worden geoptimaliseerd. Het analyse programma kan bijvoorbeeld eerst nagaan of een systeemcomponent relevante wijzigingen heeft ondergaan. Bijvoorbeeld kan een broncode zijn aangevuld met commentaar, zonder een enkel statement te hebben gewijzigd. Een nieuwe compilatie is dan overbodig, omdat de compiler geen ander resultaat zal geven dan van de voorgaande versie van die systeemcomponent .By integrating the analysis with development tools, the load on the computer system can be optimized. The analysis program can, for example, first check whether a system component has undergone relevant changes. For example, a source code can be supplemented with comments, without changing a single statement. A new compilation is then unnecessary, because the compiler will not give any other result than from the previous version of that system component.
Omgekeerd zijn ontwikkelings hulpmiddelen zelf soms reeds voorzien van dergelijke controles, de integratie kan dan ook gebruikt worden om de analyse niet onnodig uit te voeren.Conversely, development tools themselves are sometimes already provided with such controls, so the integration can be used to avoid unnecessary analysis.
De uitvinding zal in het volgende in meer detail worden verklaard aan de hand van de bijgaande figuren.The invention will be explained in more detail below with reference to the accompanying figures.
Figuur 1 toont de opeenvolgende programmeer- en compileerstappen, die volgens de stand der techniek tijdens een programmatuurproduktie-proces worden uitgevoerd.Figure 1 shows the successive programming and compiling steps performed according to the prior art during a software production process.
Figuur 2 toont de stappen die tijdens een produktieproces in overeenstemming met de uitvinding worden uitgevoerd.Figure 2 shows the steps performed during a production process in accordance with the invention.
Figuur 3A illustreert voor een eerste geselecteerde parameter de wijze waarop de verzameling van de voor deze parameter bepaalde waarden kan worden gebruikt voor analyse van het programmatuurproduktieproces.Figure 3A illustrates for a first selected parameter how the set of the values determined for this parameter can be used for analysis of the software production process.
Figuur 3B illustreert een soortgelijk diagram als figuur 3A maar nu voor een andere geselecteerd parameter.Figure 3B illustrates a similar diagram to Figure 3A, but now for another selected parameter.
De figuren 4A en 4B illustreren het voordeel van een in overeenstemming met de uitvinding verkregen gedetailleerde parameterverzameling bij analyse van het programmatuurproduktieproces.Figures 4A and 4B illustrate the advantage of a detailed parameter set obtained in accordance with the invention when analyzing the software production process.
Figuur 1 toont de stappen die zoals algemeen bekend is bij een programmatuurproduktieproces achtereenvolgens moeten worden uitgevoerd. In stap 1 worden een aantal regels code geprogrammeerd, in stap 2 wordt het verkregen programmagedeelte gecompileerd, in stap 3 worden nog meer regels code geproduceerd, in stap 4 wordt opnieuw gecompileerd, enz. Dit produktieproces eindigt tenslotte met een laatste compilatiestap aan het eind waarvan vastgesteld kan worden dat het programma volledig functioneert en geen fouten meer bevat.Figure 1 shows the steps which, as is well known in a software production process, must be performed sequentially. In step 1 a number of lines of code are programmed, in step 2 the obtained program part is compiled, in step 3 more lines of code are produced, in step 4 recompiled, etc. This production process finally ends with a final compilation step at the end of which it can be established that the program is fully functional and free from errors.
Naast dit eigenlijke programmatuurproduktieproces worden af ten toe van het in bewerking zijnde programma de waarden van bepaalde parameters vastgesteld en eventueel vastgelegd of opgeslagen. Daarbij kan het bijvoorbeeld gaan om het aantal regels code dat het programma tot dan toe bevat, het aantal modules waaruit het programma is opgebouwd, het aantal functies dat in het programma is ingebouwd, het aantal geheugentoegangen dat het programma nodig heeft, enz. Deze parameterbepa-lingsstap die in figuur 1 met cijfer 5 is aangegeven, staat echter geheel los van het eigenlijke programmatuurproduktieproces (stappen 1, 2, 3, 4.....). In feite vormt het uitvoeren van deze parameterbepalings- procedure een inbreuk op het eigenlijke produktieproces en wordt dan ook als zodanig door de programmeur ondervonden. Het gevolg daarvan is dat in de praktijk deze parameterbepalingsstap 5 slechts een gering aantal keren of wellicht helemaal niet zal worden uitgevoerd, zodat er geen of zeer weinig inzicht in het programmatuurproduktieproces wordt verkregen. Wat het gevolg daarvan kan zijn, zal aan de hand van de navolgende figuren, in het bijzonder de figuren 4A en 4B nog worden verduidelijkt.In addition to this actual software production process, the values of certain parameters are occasionally determined and possibly recorded or stored. This may include, for example, the number of lines of code that the program has contained so far, the number of modules that make up the program, the number of functions built into the program, the number of memory accesses that the program needs, etc. However, the individual step indicated by the number 5 in Figure 1 is completely separate from the actual software production process (steps 1, 2, 3, 4 .....). In fact, the implementation of this parameter determination procedure is an infringement of the actual production process and as such is experienced by the programmer. The result of this is that in practice this parameter determination step 5 will be carried out only a few times or perhaps not at all, so that little or no insight is obtained into the software production process. What the consequence may be will be explained in more detail with reference to the following figures, in particular figures 4A and 4B.
Figuur 2 illustreert een programmatuurproduktieproces in overeenstemming met de uitvinding. Ook in dit produktieproces komen weer de afwisselende programmeer en compileerstappen voor, waarvan in figuur 2 de programmeerstap 1, de compileerstap 2, de programmeerstap 3 en de compileerstap 4 met name zijn aangegeven. In overeenstemming met de uitvinding is er nu een koppeling aangebracht tussen de compiler die wordt gebruikt voor het uitvoeren van de diverse compileerstappen en het parameterbepalingsprogramma waarmee parameters van het in bewerking zijnde programma kunnen worden gequantificeerd. Deze koppeling leidt ertoe dat, zoals in figuur 2 schematisch is aangegeven, telkens wanneer een programmagedeelte wordt gecompileerd tevens de parameters van dit programmagedeelte worden gequantificeerd. Meer in het bijzonder is in figuur 2 te zien dat tegelijkertijd met de compilatiestap 2 ook de parameterbepalingsstap 5a wordt uitgevoerd. Tegelijkertijd met de compilatiestap 4 wordt ook het parameterbepalingsproces 5b uitgevoerd, enz. Door een koppeling aan te brengen tussen het compilatieproces en het parameterbepalingsproces wordt enerzijds bereikt, dat telkens wanneer dit mogelijk is, de betreffende parameters van het in bewerking zijnde programma worden gequantificeerd, terwijl anderzijds de programmeur geen enkele bijzondere stap daartoe behoeft te ondernemen en ook niet in zijn normale werkzaamheden wordt gestoord.Figure 2 illustrates a software production process in accordance with the invention. Also in this production process the alternating programming and compiling steps occur again, of which in figure 2 the programming step 1, the compiling step 2, the programming step 3 and the compiling step 4 are specifically indicated. In accordance with the invention, a link has now been made between the compiler used to perform the various compilation steps and the parameter determination program with which parameters of the program in progress can be quantified. This coupling leads to the fact that, as schematically indicated in figure 2, the parameters of this program part are also quantified each time a program part is compiled. More specifically, it can be seen in Figure 2 that the parameter determination step 5a is performed simultaneously with the compilation step 2. Simultaneously with the compilation step 4, the parameter determination process 5b is also executed, etc. By linking the compilation process and the parameter determination process, on the one hand, it is achieved that, whenever possible, the relevant parameters of the program in progress are quantified, while on the other hand, the programmer does not need to take any special steps to this end nor is his normal work interrupted.
In het uitvoeringsvoorbeeld van figuur 2 is weliswaar aangegeven dat het compilatieproces en het parameterbepalingsproces simultaan plaatsvinden. In werkelijkheid zullen de betreffende programma's direct na elkaar worden uitgevoerd. Van essentieel belang is echter dat de programmeur door het geven van een compilatie-opdracht ook automatisch een opdracht geeft om de parameters van het betreffende programma te guantificeren. De in figuur 2 voorgestelde uitvoeringsvorm kan bij bestaande compilers worden toegepast. Anderzijds zal het bij veel bestaande compilers mogelijk zijn om het parameterbepalingsprogramma in de compiler te integreren.It is admittedly indicated in the exemplary embodiment of figure 2 that the compilation process and the parameter determination process take place simultaneously. In reality, the programs in question will run immediately one after the other. However, it is essential that by giving a compilation command the programmer also automatically gives an order to guarantee the parameters of the program concerned. The embodiment shown in Figure 2 can be used with existing compilers. On the other hand, with many existing compilers it will be possible to integrate the parameter determination program in the compiler.
Aan de hand van de volgende figuren 3A en 3B zal getracht worden uiteen te zetten op welke wijze de structurele parameters in een ana-lyseproces kunnen worden gebruikt en zal tevens aangegeven worden waarom het met relatief korte tijdsafstanden en in het bijzonder automatisch vastleggen van de telkens wijzigende waarden van de betreffende parameters van belang is om een goed inzicht te krijgen in het verloop van het produktieproces.On the basis of the following figures 3A and 3B, it will be attempted to explain how the structural parameters can be used in an analysis process and it will also be explained why the recording of the each time with relatively short time distances and in particular automatically Changing values of the relevant parameters is important to gain a good insight into the progress of the production process.
Ter vereenvoudiging van het voorbeeld wordt uitgegaan van een analyseprogramma waarin alleen wordt gekeken naar het aantal regels code dat een programma op een bepaald moment bevat en naar het aantal foutmeldingen dat aan het eind van elke compilatiestap door de compiler wordt gegenereerd.To simplify the example, an analysis program is assumed that only looks at the number of lines of code that a program contains at a given time and the number of error messages generated by the compiler at the end of each compilation step.
In figuur 3A is het aantal regels code uitgezet tegen de tijd. Aan het begin van het produktieproces staat er nog geen regel op papier en is het aantal regels code dus gelijk aan 0. Geleidelijk aan groeit dit aantal in de tijd, welke groei over het algemeen aanvankelijk relatief steil zal lopen en tegen het eind van het produktieproces zal afnemen naar 0. In de eindfase zal het aantal regels code nagenoeg constant zijn en worden alleen de laatste foutmeldingen geëlimineerd.In figure 3A the number of lines of code is plotted against time. At the beginning of the production process there is no line on paper yet and the number of lines of code is therefore equal to 0. This number will gradually increase over time, which growth will generally run relatively steeply initially and towards the end of the production process. will decrease to 0. In the final phase, the number of lines of code will be almost constant and only the last error messages will be eliminated.
In figuur 3B is het aantal "error"-meldingen uitgezet dat telkens door de compiler na elke compilatiestap is gegenereerd. Dit aantal meldingen kan variëren en zal over het algemeen in dat deel van figuur 3A waar de steilste helling optreedt, nogal aan grote schommelingen onderhevig kunnen zijn. Aan het eind van het produktieproces zal het aantal fouten natuurlijk naar 0 moeten gaan om als gereed produkt een foutloos programma te kunnen opleveren.Figure 3B plots the number of "error" messages generated by the compiler after each compilation step. This number of notifications can vary and will generally be subject to large fluctuations in that part of Figure 3A where the steepest slope occurs. At the end of the production process, the number of errors will of course have to go to 0 in order to be able to deliver an error-free program as a finished product.
In het voorbeeld van de figuren 3A en 3B is uitgegaan van een relatief groot aantal waardebepalingspunten gedurende het programmatuur-produktieproces. Dit grote aantal waardebepalingspunten levert in zowel figuur 3A als in figuur 3B een relatief nauwkeurig bepaalde kromme op. Wordt echter, zoals in de stand der techniek gebruikelijk is, slechts enkele keren gedurende het gehele produktieproces een reeks van parameters voor het betreffende programma bepaald, dan kan daardoor een volledig verkeerd inzicht in het produktieproces ontstaan. Een voorbeeld daarvan wordt geïllustreerd aan de hand van de figuren 4A en 4B.The example of Figures 3A and 3B assumes a relatively large number of valuation points during the software production process. This large number of valuation points yields a relatively accurately determined curve in both Figure 3A and Figure 3B. However, if, as is customary in the prior art, a series of parameters for the particular program is determined only a few times during the entire production process, this may result in a completely incorrect understanding of the production process. An example thereof is illustrated with reference to Figures 4A and 4B.
Figuur 4A toont de curve die wordt verkregen indien slechts drie waarden van de betreffende parameter, ook in dit geval weer een aantal regels code, ter beschikking staan. De drie waarden, in figuur 4A aangeduid met a, b en c, leveren zo op het eerste gezicht een normale curve op. Zou echter dit betreffende produktieproces op een meer gedetailleerde wijze zijn gecontroleerd door op een groter aantal tijdstippen de waarde van de betreffende parameter te bepalen dan zou weleens een hele andere curve kunnen ontstaan zoals getoond is in figuur 4B.Figure 4A shows the curve that is obtained if only three values of the relevant parameter, also in this case again a number of lines of code, are available. The three values, indicated in figure 4A with a, b and c, thus yield a normal curve at first sight. However, if this particular production process had been checked in a more detailed way by determining the value of the relevant parameter at a greater number of times, a completely different curve could arise, as shown in figure 4B.
In figuur 4B zijn enerzijds dezelfde drie waarden a, b en c uitgezet met daartussen een groot aantal andere geguantificeerde waarden voor de betreffende parameter (het aantal regels code). Uit het nu verkregen, veel gedetailleerde verloop blijkt duidelijk dat er niet een continu stijgende lijn in het aantal regels code aanwezig was, maar dat er twee keer een aantal regels code is geschrapt waardoor het totaal aantal verminderde. Deze programmeur heeft dus kennelijk tijd besteed aan het schrijven van een aantal regels code, die vervolgens weer werden geschrapt. Voor een manager die deze programmeur moet controleren levert de kromme uit figuur 4A geen enkele informatie op, terwijl de kromme uit figuur 4B duidelijk aangeeft dat er op bepaalde momenten in het program-matuurproduktieproces onregelmatigheden zijn opgetreden, waar aandacht aan besteed zou moeten worden.In figure 4B, on the one hand, the same three values a, b and c are plotted with a large number of other guaranteed values for the relevant parameter (the number of lines of code) in between. From the now obtained, much more detailed course, it is clear that there was not a continuous upward trend in the number of lines of code, but that a number of lines of code has been deleted twice, which reduced the total number. Apparently, this programmer spent time writing a few lines of code, which were subsequently deleted. For a manager who has to monitor this programmer, the curve of Figure 4A does not provide any information, while the curve of Figure 4B clearly indicates that irregularities have occurred at certain times in the software production process that should be addressed.
De figuren 4A en 4B tonen aan dat enerzijds de werkwijze, zoals die in de stand der techniek wordt gebruikt, nadelen heeft welke nadelen met behulp van de uitvinding kunnen worden geëlimineerd.Figures 4A and 4B show that on the one hand the method as used in the prior art has drawbacks which can be eliminated with the aid of the invention.
Resumerend kan worden gesteld dat door het analyseren te koppelen aan het aanroepen van een ontwikkelingsprogramma (tooi) behorende bij een procesfase, zoals in de werkwijze volgens de uitvinding geschiedt, men de volgende voordelen verkrijgt: de analyse vindt plaats op een door de systeemontwikkelaar bepaald tijdstip, nadat er een significante wijziging in de systeem-component is opgetreden (anders zou hij/zij geen aktie van het ontwikkelingsprogramma vragen) de systeemontwikkelaar hoeft geen extra handeling te verrichten de systeemontwikkelaar kan direkt na de door hem gewenste aktie van het hulpmiddel een overzicht krijgen van de analyse, waardoor hij/zij geattendeerd wordt op diverse aspekten van zijn werk en navenant kan reageren, hetgeen de kwaliteit van z'n werk positief zal beïnvloeden (Bijvoorbeeld kan hij/zij na compileren gewaar- · schuwd worden dat het aantal testpaden van zijn nieuwe versie sterk is gestegen. Hij/zij kan nu wellicht inzien dat verdere ontwikkeling in deze richting in een slecht testbare module zal resulteren. Een aangepaste strategie kan nu reeds in een vroeg stadium worden overwogen.) daar de ontwikkelingsprogramma's behoren bij een bepaalde ontwikkelingsfase kan in de ".met" bestanden tevens automatisch informatie worden opgeslagen over die procesfase, zoals de hoeveelheid tijd die aan de procesfase is besteed, het aantal toetsaanslagen etc. Op deze wijze zijn automatisch nauwkeurige management overzichten te krijgen per procesfase. Dit is een groot voordeel, omdat de informatie voor dergelijke overzichten tegenwoordig geheel manueel worden ingevoerd, hetgeen weinig nauwkeurigheid oplevert. Dergelijke overzichten zijn fundamenteel voor produk-tiviteits analyses.In summary, it can be stated that by linking the analysis to calling a development program (tool) associated with a process phase, as is done in the method according to the invention, the following advantages are obtained: the analysis takes place at a time determined by the system developer. , after a significant change has occurred in the system component (otherwise he / she would not request any action from the development program) the system developer does not need to take any additional action the system developer can get an overview immediately after the action of the tool he wants of the analysis, which draws his / her attention to various aspects of his work and can respond accordingly, which will positively influence the quality of his work (For example, he / she can be warned after compilation that the number of test paths of his new version has risen sharply, he / she may now see that further development in this The direction will result in a poorly testable module. An adapted strategy can now be considered at an early stage.) Since the development programs belong to a particular development phase, the ".met" files can also automatically store information about that process phase, such as the amount of time spent on the process phase, the number of keystrokes etc. In this way, accurate management overviews can be obtained per process phase. This is a great advantage, because nowadays the information for such overviews is entered entirely manually, which results in little accuracy. Such overviews are fundamental to productivity analyzes.
Claims (11)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| NL9002460A NL9002460A (en) | 1990-11-09 | 1990-11-09 | METHOD FOR ANALYZING AND FORECASTING A PROGRAM DEVELOPMENT PROCESS |
| PCT/NL1991/000224 WO1992009034A1 (en) | 1990-11-09 | 1991-11-08 | Method for analysis and prediction of a software program development process |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| NL9002460A NL9002460A (en) | 1990-11-09 | 1990-11-09 | METHOD FOR ANALYZING AND FORECASTING A PROGRAM DEVELOPMENT PROCESS |
| NL9002460 | 1990-11-09 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| NL9002460A true NL9002460A (en) | 1992-06-01 |
Family
ID=19857959
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| NL9002460A NL9002460A (en) | 1990-11-09 | 1990-11-09 | METHOD FOR ANALYZING AND FORECASTING A PROGRAM DEVELOPMENT PROCESS |
Country Status (2)
| Country | Link |
|---|---|
| NL (1) | NL9002460A (en) |
| WO (1) | WO1992009034A1 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| BE1011617A3 (en) * | 1997-12-16 | 1999-11-09 | Rijck Freddy De | Method for estimating time for software development |
| SE0202019D0 (en) * | 2002-06-28 | 2002-06-28 | Abb As | Rehabilitation of a compiler for safety control |
| US7975257B2 (en) * | 2006-06-13 | 2011-07-05 | Microsoft Corporation | Iterative static and dynamic software analysis |
| US9789071B2 (en) | 2012-06-27 | 2017-10-17 | G2B Pharma, Inc. | Intranasal formulation of epinephrine for the treatment of anaphylaxis |
| US10614093B2 (en) | 2016-12-07 | 2020-04-07 | Tata Consultancy Services Limited | Method and system for creating an instance model |
| CN110737985B (en) * | 2019-10-15 | 2024-07-16 | 上海联影医疗科技股份有限公司 | Operation data verification method, device, computer equipment and readable storage medium |
-
1990
- 1990-11-09 NL NL9002460A patent/NL9002460A/en not_active Application Discontinuation
-
1991
- 1991-11-08 WO PCT/NL1991/000224 patent/WO1992009034A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| WO1992009034A1 (en) | 1992-05-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4864569A (en) | Software verification and validation configuration management system | |
| US7536678B2 (en) | System and method for determining the possibility of adverse effect arising from a code change in a computer program | |
| Mende et al. | An evaluation of code similarity identification for the grow‐and‐prune model | |
| US5255385A (en) | Method of testing program, and compiler and program testing tool for the method | |
| EP1861776A4 (en) | Apparatus for analysing and organizing artifacts in a software application | |
| EP3220222A1 (en) | Evaluation system, evaluation method, and evaluation program | |
| US20090055804A1 (en) | Method and device for automatically evaluating the quality of a software source code | |
| CN111679989A (en) | Interface robustness testing method and device, electronic equipment and storage medium | |
| CN111444093A (en) | Method and device for determining quality of project development process and computer equipment | |
| CN114089965A (en) | Program development project management method and device based on monolithic code warehouse Monorepo | |
| CN114116505B (en) | Code testing method and device | |
| NL9002460A (en) | METHOD FOR ANALYZING AND FORECASTING A PROGRAM DEVELOPMENT PROCESS | |
| Mazkatli et al. | Continuous integration of architectural performance models with parametric dependencies–the CIPM approach | |
| CN109977016B (en) | Test triggering method, device and equipment and test system | |
| JP5834991B2 (en) | Schematic program test coverage measuring apparatus and method, and program | |
| CN118363862A (en) | Method, apparatus and storage medium for determining code coverage | |
| CN113778735B (en) | Fault processing method and device and computer readable storage medium | |
| JP2009181180A (en) | Inspection program, inspection method, and inspection device of program creating tool | |
| US6496975B1 (en) | Method, system, and program for performing conditional program operations | |
| US20250306917A1 (en) | System For Identifying Same Or Similar Instances Of Source Code | |
| Tomimori et al. | Automated Testing Framework for Embedded Component Systems | |
| Cellamare | AI-Driven Unit Test Generation | |
| CN120780307A (en) | Compiling method and device | |
| EP4290368A1 (en) | Computer-implemented method and system for generating a command pipeline for controlling a technical device | |
| Malaiya | Software Reliability: A Quantitative Approach |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A1B | A search report has been drawn up | ||
| BV | The patent application has lapsed |