CA2077975C - System and method for computer aided software engineering - Google Patents

System and method for computer aided software engineering Download PDF

Info

Publication number
CA2077975C
CA2077975C CA002077975A CA2077975A CA2077975C CA 2077975 C CA2077975 C CA 2077975C CA 002077975 A CA002077975 A CA 002077975A CA 2077975 A CA2077975 A CA 2077975A CA 2077975 C CA2077975 C CA 2077975C
Authority
CA
Canada
Prior art keywords
objects
container
user
project
metaprogrammer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA002077975A
Other languages
French (fr)
Other versions
CA2077975A1 (en
Inventor
Roger A. Chang
Andrew J. Smith
Robert J. Torres
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CA2077975A1 publication Critical patent/CA2077975A1/en
Application granted granted Critical
Publication of CA2077975C publication Critical patent/CA2077975C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Abstract

A data processing system supports preparation of a software application by coordinating the efforts of a metaprogrammer and a plurality of system users responsible to the metaprogrammer. The data processing system includes a plurality of workstations, each having a display and a user input device. Each of the workstations is connected to shared memory for access to data objects stored therein.
One data object is a blank project container which includes a plurality of subject objects relating to phases in a product life for a software application. The metaprogrammer is authorized to replicate a blank project container to provide a project specified container available in shared memory to system users selected to work on a particular software application. The project specific container includes a plurality of subject objects relating to phases in a product life for the software application package. In addition, the project specified container includes a directory to templates for use in creating standard software modules and functions selected for use in generating code for storage in data objects. Data objects are stored in memory categorized within subject objects of the project container. An index is generated as data objects are created. Such an index is located with each sub-object with each subject object. Lastly, private instances of the project container are generated relating to users. Each private instance includes a subset o~ the objects within the project container, selected on the basis of usefulness to the tasks assigned to this particular user.

Description

DA9-91-00~
BACZCGRO~?ND OF TEIE: IP~'IOT~1 1. Field of the Irxvention:
The invention relates to a networked workstation system for software development. More particularly, the invention relates to coordinating the work of multiple users of the networked workstation system during creation of a software product. Still more particularly, the invention relates to a networked workstation system providing automated management of the design through 'the implementation of the software application.
2. Descrip~tiora of the Prior Art:
Software includes computer programs, routines, programming languages and systems, and supporting documentation for any of the above. It extends to detailed procedures to be followed by a computer or its operator and thus includes documents such as handbool~s, drawings, program listings and diagrams supporting use of an application on a computer.
In its broadest sense, software will comprise all materials and procedures other than hardware relating to execution of a function or family of functions on a computer system.
During the lifetime of a software product, additional documents or records that would be of interest to the product may be created. For example, for diagnostic purposes a complete record of all revisions may be valuable.
Customer comments and requests regarding a document may also be logged.
In a forma)_ development setting, the seed of a programming application is the request; doctunent. The request document describes, typically in general. terms, the desired ends of the program application. from the request document, an objective document is prepared specifying attributes of the programming application includ9.ng: (1) functional DA9-91-004 ?, features; and (2) the user interface. Upon completion of an initial objective document, generatian of. specific design documents begins. 'rhe dorumerxts include functi.anal specifications characterized by performance results required for operation tin specified bodies of data. Another design document is the programming specifications which outline how the functional. specifications are to be met. The request document, the objectives document, the functional specification and the programm.i.ng specification together constitute a textual record of the development of a system.
Completed design documents suppart programmer generation o.f source cods for the application. Bl.oc:lcs o.f source cede are an explicit ordering o.f the instructions to be carried out on a computer system. Any major programming application development project involves dozens to hundreds of designers and programmers, frequent7.y scattered among several locations. Management of such a project, particularly management aimed at generating and preserving a coherent body of supporting documentation relating to the project, has become a cumbersome undertaking. The management task of assuring that appropr9.ate and timely supporting materials reach the designated people at the rorrec t moment has been difficult. Also difficult has l.~een the sufficient appraisal of designers, developers, programmers and testers of the tasks facing non-members of their respective groups.
The term programming environment has been used to refer to the operating system environment and the collection of tools and subroutines with which software is rievel.oped. See for example, Leblang et al.. "Computer-Aided Software Engineering in a Distributed Workstation Environment'", reprinting in proceedings of the ACM Sigsoft/Sigplan Software Engineering Symposium on Practical Software Developments Environments, Pittsburgh, Pennsylvania, 23-25 April 1984. Leblang et al. describe an environment based on several managers, including a history manager which controls source code and provides complete version histories, a configuration manager which bui..lds systems from their components and detects the need to rebuild, a task manager which relates source code changes made to nodes throughout a ~o~~:o~~
network to a particular higher level octiviti.es, a monitor manager which watches user-dr~f:itapcl rlepr~r~rlencies and alerts users upon triggering of r;eri:ai.n rlependex~c:i.es, and an advice manager which holds genera.'i project re:l_ated information and provides templates for redoin.r~ common tasks.
Concepts relating to control of relationships between individuals in a networked workstation system are also of relevance to the present invention. Bly et al., United States Patent No. 5,008,853, discloses a multiuser collaborative system operating on a real-time basis. The particular focus of Bl.y et al. is the multiuser interface.
Another aspects of Bly et al. are methods relating to access of °'structured data objects". The term structured data object is used generically to denote a data object that contains a series of other data objer.ts linked together in a predetermined manner and which may include a visual representation or a functional abstraction for a display screen. Member data objects of the structured data object may have associated sets o.f operati.ons brought together for one or more functional pl.~rposes. An example of a structured data object is a word processing document with several pages, where each page is a data object and pages are preceding and subsequent pages i.n a predetermined order. A
structured data object that is ra.pabl.e of holding other structured data objects is referred to as a container. Bly discloses employment o.f conl:ainers in a shared multiuser environment, where it is accessible to more than one user.
through a plurality of network coupled personal workstations.
Representation of a structured data object in iconic form is discussed at column 2, lines 50--55 of Bl.y et al.. Among the iconic rep resentation.s are a con.ta:i.ner type known as a book, which is a special. directory that creates a relationship among document port:i.ons within 1-.he book. Consecutive documents in a boolt can share a single page number series and there is a facility to automatically create a 'table of contents and index.

DA9-91~-00~
Structured data objects, such as fi.l.e folders and documents digitally stored in a fit-a drawer, can be shared by many users in accordance with inrli.v.i.dt~al.l,y assigned access rights. This is accomplished by p:l.ac:i..ng a cligital. copy of a structured data object on the ~.i::.er.-'s desktop metaphor for the user's subsequent manipulation. Communications of revisions among users, if desired, must be specifically provided for.
Bly et al. specifically relates to construction of a publication management system. (See column 11, lines 32-61).
The system is implemented tht.°ougla the abstraction of a shared book metaphor. The desktop metaphor of each workstation includes an abstraction representing the shared data structure, which abstraction is referred to as the shared book. A new book is begun by rep l.i.cation of a blank shared book and naming the replicated structure. Upon opening of a shared book by a user, a listing of entries, analogous to a table of contents, is displayed. Hotrever, a shared book does not admit other container type files (see column 18, lines 50--60). Beyond the pages of text fox the shared book, the shared boolz also includes a property sheet providing fields for items that concern the shared book as a whole. These incl.ttde the shared books name, its file service, its database, its access 7-i.st, the number of remote consecutive versions among other operational details.
SUNl~IAR'Y OF TEIE: TNVFNTION
It is one object o.f the invention to provide a network of workstations supporting a software development project.
It is another object of 'the invent:i.on to coordinate the work of a metaprogrammer and other users of a system of networked workstations in deve:Loping a software application project.

~~"l'~(~~~
DAg-91-004 s It is still another object: of t:he invention to atztornate management of ttie design through tY~e imp l.ernentat_ion of. a software application..
The foregoing objects are achieved as is now described. A
data processing system supports preparation of a software application by coordinating the efforts of. a metaprogrammer and a plurality of system users responsible to the metaprogrammer. The data processing system includes a plurality of workstations, each having a display and a user input device. Each of the workstations is connected to shared memory .for access to data objects stored therein. One data object is a blanlc project container which includes a plurality of subject objects relating to phases in a product life for a software application. The metaprogrammer is authorized to replicate a blank project container to provide a project specified container available in shared memory to system users selected to work on a particular software application. The project specific container includes a plurality of subject objects relating to phases in a product life fox the software application package. In addition, the project specified container _n.cludes a directory to templates for use in creating standard software modules and functions selected for use in generating code for storage in data objects. Data objects are stored in memory categorized within subject objects of 'the project container. An index is generated as data objects are created. Such an index is located with each sub-object with eacYz subject object.
Lastly, private instances of the project container are generated relating to users. Each private instance includes a subset of the objects within the project container, selected on the basis of_ useful.ness to -the 'tasks assigned to this particular user.
The above as well as additional. objects, features, and advantages of the invention will become apparent in the following detailed description.

s~:crF' nrsc~TpTZO~a oi~ ~r~t-~ D;~A~aTr~cs The novel :Feature s be l.i.evPC1 cl~a.racrt:e~r:i.r;fi:ie of the invention are set forth i.n the appended. c:l.ai.ms. ThF~ invention itse7.f however, as well. as a preferred mode of use, ftzrther objects and advantages thereof, w:il.l_ best be und.er.stood by reference to the following detailed c)escription of an illustrative embodiment when read in conjunrti.on with the accompanying drawings, wherein:
Figure 1 is a pictorial_ represent anon of a distributed data processing system which may be tut:ilized to implement the method and system of 'the pr.eser~t invention;
Figure 2, is a block diagram representation of inter-relationships between data objects and users which may be utilized to implement the method and system of 'the present invention;
Figure 3 is a pictorial representation of a desktop metaphor which may be utilized to implement the method and system o.f the present invention;
Figure 4 is a pictorial rep re senta.t9.on of a control through which a blank software coo)zbook is accessed by a user utilizing the syst;ern and method o:F the present invention;
Figure 5 is a block diagram ofi a user class table utilized in constructing private instance=~ of a program instance notebook;
Figure 6 is a pictorial representation of a noteboak control opened to an introductory page;
Figure 7 is a pictorial represerxtation of. a notebook control depicting an opened tab :in the notebook;
Figure 8 is a pictorial representation of a notebook control for a program instance opened to an index page;

Figure 9 is a pictorial represent:ati.on of a control for a program instance depicting inter--re,l.ati.otZShip of ol">jec;ts for testing in accordance wi t:tt t:lte rne thud and system of the present invention;
Figure 10 is a high level, lod:ic flowchart illustrating accessing a deslctop metaphor incl.uc7.:ing ironic abstracts for data objects used in the method and system of the present invention;
Figure 11 is a high level, logic flowchart illustrating accessing of func;tional sub-routines utilized to implement the method and system o.f the present: i.nvent.i.on;
Figure 12 is a high level., logic flowchart illustrating creation of a program instance conta:i.ner utilized to implement the method and system of the present invention;
Figure 13 is a high level, logic flowchart illustrating user selection of a program instance notebook;
Figure 14 is a high level, log:i.c flowchart illustrating accessing a control table f.or setting object storage locations and establ.ishi.ng commurli.cat:ions links utilized to imp7.ement the method and system o.f the present invention;
Figure 15 is a high level., logic f_lowrhart illustrating accessing a source code document :Eor translation thereof to object code and generation of an object t:o retain the object code for implementing the method and system of the present invention;
Figure 16 is a high level., logic flowchart illustrating selecting data objects as i.n~nvts for object code objects which may be utilized to implement the method and system of the present invention; and Figure 17 is a high level, logic flowchar.~t illustrating the testing of code modules which may be utilized to implement the method and system of the present invention.

DA9-91-004 F;
DF:2AIhED DT~:BC:R.:IPTTOhf Oh '1.'EIT; IINVEPdTIOT) With reference rtow to t:he f:i.gtnrer and i.n par. tiwular with reference to figure 1, there i.s dF~p.i.cted a pictorial representation of a d7.stri.buted data processing system 8 which may be utilized 'to implement the method and system of the present invention. As may be seen, distributed data processing system 8 may include a plurality of networks, such as local area networks 10 and 32, each of which preferably includes a plurality o.f individual computers 12 and 30, respectively. Of course, those skilled in the art will appreciate that a plurality of intelligent workstations coupled to a host processor may be uti.7.ized to implement each such network.
As is common in such data processing systems, each individual. computer may be coupled to a storage device 14 and/or a printer/output device 16. One or more such storage devices 14 may be utilised, 9.n accordance with the method and system of the present invention, to store the various objects or documents which may be per:i.odir.ally accessed by a user having access to such objects o:.r documexzts in the data processing system implemented computer aided software development environment.
Still referring to figure 1, i.t rnay be seen that distributed data processing system 8 may also include mainframe computer, such as a mainframe computer 1.8, which may be preferably coupled to local area networlc 10 by means of communication link 22. Mainframe computer 18 may be coupled to a storage device 20 which may serve as a remote storage for local area network 10 and may be coupled via communications controller 26 and communications link 34 to gateway server 28. Gateway server 2.8 is preferably an individual computer or inteJ.l:i.gent workstation which serves to link a local area networlt 3?, to local area network 10.
As discussed above with .reference to local area networFc 32 and local area network 10, a plurality of data objects or documents may be stored within storage device 2.0 and controlled by mainframe computer 7.8, as resource manager or DA9-97.-004 library service for the dat<~ ob-ject:s and documents there stored.
Figure 2 is a block diagram rep:.recentat:i.on i.ll.ustrating relationships among various dat:a object:s and system users employed in practicing the method o.f the :invention. A blank proj ect container 36 i. s a st:ruc lured data obj ect which provides a shell for use by a metaprogrammer 37 in creating a program instance specific container 40. Blank project container 36 includes a plural_i ty of d-ivi.sions referred to here as subject objects relating to subject headings for different phases and aspects o:F a software development project. Blank project <:orttainet: 36 may also include data objects such as: help text; function lists to tools for creating standard program modules; and features supporting generation of a control. o.n various user displays resembling a spiral bound notebook i.ncludinc~ t:ab division headings and numbered pages. The meta.programmer 3'7, in composing a program instance container 40, may supplement the container with additional. programm:i.ng tools such as editors, compilers, debuggers drawn :From a l.ibra.ry 38 of such tools and/or generate an index poiti.ti.ng t:o such tools. In addition, metaprogrammer 37 may supp:Lement program instance container 40 'through direct r.omposi.tion of a user list, object rights, user classes and definition of locations for storage of member data objects of the program instance container. Member data objects may be distributed among the storage devices of data processing system 8.
A plurality of_ user specific, vi.rtua7. program instances 42a-42n depend from program instance container 40. The contents of user. specific :inst:ance,, 42a-42n are drawn from the contents of program instance container 40 and extend only to those objects to which users 39a--39n have some form of access rights. Such rights i.ncl.ude read rights and manipulation rights. Tn additi.on, users 39a-39n, upon creation of data objects and/or manipulation of data objects to which they have manipulation access .rights, pass changes back from user specific instances 42a-42n to program instance container 40. User specific instances 42a-42n may DA9-91-004 1.0 be apparent data objects, car~rt:nm:ted from the contents of the program instance court:~iner, t.lrer~ access lists are used to select member. objects of. thri v.i.n.-l:ua7. instance of the program instance container 40. 11:1_t:erwative7.y, they rnay be local instances o.f_ data r~bjc~c:tr~ trzemsel.ves, periodically conformed to the contents o:f_ pragram in;-lance container. 40.
Figure 3 is a pictorial .repres~emt~tiom depicting a desktop metaphor 44 such as is presented a metaprogrammer on the display of a terminal, or personal workstation. A
rnetaprogrammer is so-called becai.ise of the individua l s authority to initiate development or. administration of a software application. Desktop meta~>ho.r 44 will be familiar to those skilled in t:he art as si.ipported by a graphic user interface running on a local wo:rkstatian. Desktop metaphor 44 supports an object action paradigm exercised through pointer 46 which may be positioned with respect to an icon for selection and or drag operations. An iconic representation 48 appears in desktap metaphor 44 representing a blank project container. 36. A second iconic representation 50 appears in metaphor 44 representing a program instance container 40. Tile metaprogrammer may use pointer 46 to open either iconic representation. Typically, a metaprogrammer will select: ironic representation 48, drag it to a new position, and sel.ec:t it again to create a program instance container 40 represented by iconic representation 50. Icanic representations 48 and 50 are distinguished by their ti.tl.es, i.n this case "Software Cookbook" for the blanl~ project container and "Program-instance" for container 40.
Figure 4 is a pi.ctor:ial represerut:at.ion o:E controls 'through which a metaprogrammer may def_i.ne a project and thereby create a program instance conta.i.ner 40. Upon opening a newly created program instance iconic representation 50, a window 52 is generated. Within window 52 is a control 54 resemb7.ing a spiral bound notebook. Notebook control 54 includes a title bar 56 which is an entry field through which a name may be applied to the project. A tab control 58 extending from one side of not:eboolr cantrol 54 is an open DA9-91-004 1.1 tab allowing display of_ c:ontents: o.f the program instance container 40.
A second window 60 is prormidecl through which a metaprogrammer may exercise cant;rol. of objects within program instance container 50. An add user class control tab 62 and an add book. tab control 64 may be selected by a mouse pointer. An entry Field 66 :i.s avaiJ.able through which the metaprogrammer may name a newly added book tab. Eook tabs appear as sections within notebook control 54 after it is opened. In addition, user classes may be defined through entry field 66.
Figure 5 is a table through which a metaprogrammer may define user class rights, which are required before private instances o.f the program instance container 40 may be created. Rights in user classes are defined by tab sections of the notebook control 54. A table 68 including user c:Lasses across the top and boob tabs across one side provides a plurality o:E' intersections in which access rights are set. Appearing be7.ow table 68 is a block 70 which includes help text for the metaprogrammer.
Figure 6 is a pictorial .representation o~ notebook control 54 opened within a window 71. 1'lotebook 54, having been opened, now displays internal tabs which here include tutorial 'tab 72, internals 'tab 74, requirements tab 76, code tab 78, externals tab 80 ;znd test tab 82. Dlotebook 54 is opened to tutorial tab 72 and a page 73 from the tutorial may now be read. As is well understoocl in the art, pointer 46 may be moved to control features such. as tabs 72-82 or paging points 84 to move about within notebook 54. The current location of a user within notebook 54 is indicated by alteration of the boundary for a tab, either by highlighting or by erasure of a line separating the tab from the display field portion o~ notebook 54.
Figure 7 illustrates notebool~ control 54 opened to 'the index page 81 of externals tab 80. Member objects of program DA9-91-004 J.
~o~~o~~
application exte:rnal.s may be lccecred by keying onto a line , or by paging through the t:ab spcti.on.
Figure 8 i s a pictorial. r°e~-rresetrtat:i.on o:E a control depicting, in tabu.l.ar representwt.ior~, a 7.isting of program modules by name to r,onstitute the rode objects of the program application. Next to each program name, the storage location of the program is given., .i.dentif:i.cation o.f_ the data type in the program, i.e. sourc;e rode, object code, message text or help text is given, and l.astl.y the responsible author or owner is identified. T'he entries in the control table are manipulable by the metaprogrammer. For example, resignation of an owner o.f a program named in the table requires naming a new owner, which can be done through control table 84. Avail.ab:il:i.ty o.f compil.ed or interpreted versions of. program is easily ascertained under the type heading. Further, under 'the location heading, a user may quickly determine where to retrieve a program from for required editing. Notebook control 54 appears in opened window 82.
Figure 9 is a pictorial repre sentat:ion illustrating a control within notebook control 54. Illustrated is a constructed interrelationship of object s developed by a user for testing o.f a program module. Control notebook 54 has been opened to test 'tab 82. The page within test tab 82 relating to operational tests o.f. various programs on test bodies o.f data includes a. graphic. i.nd:ication of linkages between data objects. Spec:if:ical:l.y, a program represented by icon 86 is operating on a data object represented by icon 88, as represented by connection 89. Test results generated thereby are represented by iron 90 as :indicated by line 91.
Data objects having iconic represen'ta'tions within notebook 54 are identified by their names, wlui<:h appear below the icons to identify the represented object to a user.
Programming tools provided with the program instance automatically generate anc'l name test result documents if desired. Pictorial representations such as illustrated in Figure 9 may be generated by conventional graphic user interface applications.

DA9-91-004 l..>
Figure 7.0 is a h:i.gh Level., l.r>ciic; fl.osrrchart illustrating generation o:E a, des)ctop met:apl~rnr irrr~:Ludi.ng i.con:ic abstracts far a blan)c project cornta:i.rrer ar7r1 program instances.
Flowchart 7.00 is e~mterect at si;ep 10~. Next, at step 104, conventional program 9. n9.tiali2,at::i.on measures o.f a graphic user interface application running on a local processor are taken. Next, at step 106, the usual features of the desktop metaphor are fetched and a main window is established. Step 108 is applicable only to metaprogrammers. In step 108 the icon .representing a blan)z project container is fetched for display on the des)~top metaphor. Diext, at step 110, icons for existing pr-otJram instances to which the metaprogrammer or user is perm:i.tted access are fetched. At step 112, blank project iron and the program instance icons are loaded unto the main window and transferred to the display buffer. Next, at step :114, i:he main window is d9.splayed and operation enters the monitor routine 200.
Monitor routine 200 relates to user. access to the functional sub-routines utilized to 9.mplement 'the method and system of the present invention. Figure la is a high level, logic flowchart of monitor routine 200. Essentially, a user s actions through a keyboard or moose are mon9.tored for one of six requests. The requests are, at step 2,02, a request to open existing program instance icon. At step 204, a user may select a control content routine re l.ating to changes in control. table are detected. A1; c-L;ep 706, a user may request a function to build object code from <7or.trce code. Decision block 208 permits user access U:o too7.s such as editors for modifying the contents of. d.ai;a objects such as program modules, help texts, or test: data. modules among other things. Test routines for a programmer available through .run program decision block 21Ø >or metaprogrammers, an additional decision block ?...".2, i.s p.rovided relating to establishment of a new program instance container. Block 214 labeled "perform other action" ir~rdi.cates that the compwter system is available for other tasks from 'the desktop metaphor than those related construction of a program. From the return, 'the program returns to step 202 to monitor further steps. Decision steps 20.4-2,10 are not available from the main window anti.). ~ program 5.con has been opened through open routine 400 or x new program instance has been established through rotttane 300.
The YES branches from decision bl.ocJ~s 202 through 212 transfer operation to functiona7_ routines indicated by open routine 400, control routine 500, build routine 600, data routine 700, run routine 800 and new routine 300, respectively.
New routine 300 provides generally for establishment of new project instance containers and The outlining of a software application package de~,relopment: projer,t. Upon selection of software cookbook icon 48, a window frame is fetched for display over the desktop metaphor (step 302. Next, at step 304, the blank project container includes a default notebook format represented by tab controls fox the subject headings or subject objects of_ the notebook. This format is fetched at step 304 and at step 306 the window frame and default notebook format are written. to a display buffer for update of the display screen.
Now, the me~taprogramme.r may modify the natebool~ format to conform with the outlines of the new project. At step 308, it is determined if the me~taprogr_ammer has decided upon adding a subject object to the project instance container.
This step will be represented to the metaprogrammer as the addition of a tab sectian to the program instance notebook.
Such a selection .is detected at step 308. Along the YES
branch front step 308 the operating steps required to establish such a tab section are t:alcen. first, at step 3:10 the new tab appears i.n the noteboolz. At step 37.2., the metaprogramrner is prompted to name the tab. Optionally, at step 314, a default user class may be assigned access rights to the tab. Operations from step 314 merge with the NO
branch from step 308 for steps relating to identification of new user classes and assignment o.f access .rights.
The metaprogrammer has the ul_t:imate :right to assign access rights arid authorize users Of a program :instance container.

~~~~~~~i These rights are exerci sed b~j =;e:l.ect:i.on of a near user clasp.
operation through decis:i.on t:>l.oc:Jc 37.F~. Even though such modification or addition :i.s .roc~uPSt~:cJ, t:he NO branch from step 316 rettz.rns operation to t:he mon:l,t:or program. AJ.ong the YES branch from cJec9.s:i.on k>l.ocJc 3:1.6, ~~tep 318 relating to fetching of the metapr.ojc>rt: tabJ.e :i.s reached. The metaproject table is that accessed through window 60 of Figure 4 arid is represented in blocJc 68 and 70 of Figure 5.
At step 320, existing classes and user groups, and the respective rights o.f t:he users a.re displayed to the metaprogrammer. Then, at step 32?., a prompt is provided for adding a new user. class to 'the data project table. At step 324, the metaprogrammer is monitored for editing of the metaproject table. Upon compJ..etion of such editing, the monitor program is reentered.
Figure 13 is a high level, J.ogic flowchart illustrating user accessing o.f a program instance container. The program instance container will be presented to the user as a notebook within a window. Accordingly, flowchart 400 provides for fetching a windotsr frame ( step 402 ) . The window frame is written into buffer :For display (step 404). Next, the notebook format permitted t:he user and program data are fetched and merged for presentation as a notebook to the user (step 406). The program l~ooJ~ and data are thereupon written into the window buffer (step 408) and the program notebook control are then dispJ.ayed (step 410). Operation is returned to monitor. program 2,00 for further user actions.
Figure 14 is a high level, J.og:i.c flowchart illustrating user or metaprogrammer accessing o:f a control table for determining data object storage locations and for the establishment of communication :for moving of or interaction between data objects. Essentia.J..l.y, a user is allowed to edit table 84 through control. content i°outine 500. Steps 502, 504 and 506 relate to creat:i.on and di. splay of a control table 84 to a user. A table :frame axed the appropriate data for placement in the frame are recovered :from memory (step 502), the book image 5.n. the window buffer is updated to reflect the appropriate controls for manipulating 'the ~~'~"~~~'~
DA9-91-004 1,F, control table ( step 504) and then the entire boolt table and appropriate data a.re w:r:itaen i.nf:.r, the window (step 506). At step 508, addressc,s far i>rogr;zrn c~omponenk:s are interpreted for machine usage to ar~cerr~ oc~mpanentes stared at sites remote to the current user. . Step 510 ref lec;~ts the establishment of communication ~~e:si.ons or. 7.inks to remote components to access program components stored on those remote units. Thus, control tab:l.e 84 is made available for user editing. User edit inputs arP detected at step 512.
The user inputs may constitute an addition of an object to the table or a request to moclify an entry. Step 514 reflects detection of such a user action. Along the YES branch from step 514, a source management :Eaci.lity :LS accessed to carry out the user requestec7 modi.:fi.cations. For example, a modification of a :Location requires source management to transfer the data object :from one remote facility to another remote facility, preferably requiring establishment of a direct communication session between the two remote components to carry out the t:r.ansfer. (step 518). The NO
branch from derision block 514 a.ll.ows far performance of some other action (step 57.6), surh a-zs rearrangement of entry records in the control tab:Le. from both steps 516 and 518, execution is returned to the monitor routine 200.
Figure 15 is a high level, l.agi.c flowchart depicting a build object code routine 600 :i.nvolced when translation of object code to source code i.s underta)cen. The routine is not concerned with the actual. mech.arzi.cs o.f translation, but rather with the event and wit la :i.nforming a user that a translation event has occurred. An object code module may be accessed through its control tab7.e entry ( step 602 ) . ~1t step 604, a link definition from the c.~bject code data object to a source code data object i s esU:abl:LShed and the translation or compilation process is tzndertal,en to provide data for the source code data ol:>ject. Step 606 reflects save operation of the data object contai.ninct the executable source code and the creation of a library entry identifying the object.
Next, at step 608, an icon is r..r_eated representing the new source code data object. At step 6.'L0, a :new program icon is z 20~'~~~5 DA9-91-004 1.'7 displayed in a window anr7 at- steps 67.2 and 614, respectively, the user. i.s prompted to attach a name to the data object and its represemtat:;ive :i.c:on and to select a location for storage of the data ok>:ject. Aga_i.n, execution is returned to the monitor program 200.
Data routine 700 relates to event display of user editing and creation of modules, particularly source code data objects within a project container. Steps 702, 704 and 706 relate to memory fetches of appropriate indices for identification of a data object For recovery, and the display within a window buffer of the appropriate lists, notebook controls and representative irons to a window for user use. At step 708, upon user selection of a data object, addresses .for recovery of 'the object are determined and a communication session is established permitting user editing of the object. Further, user inputs are then monitored (step 709).
User inputs resulting in modification of a data object or the addition of a data object; are detected at step 710. Any other user inputs result in exit from decision block 710 along the NO branch and return to the monitor routine 200.
Along the YES branch from decision block 710, the user is provided conner.tion to a system editor far modifying the actual data of a data object. The modi.fi.ed data object or new data object is marked within the system upon a save of the object by the user. At step 714, a representative icon for a new entry is added and th.e data object is linked to the program instance container. At step '716, the icon may be displayed in the window and. operation is returned to monitor routine 200.
No program application is complete for release to the use of the public until it has been tested. Run routine 800 relates to event monitoring of such testing. Steps 802, 804 and 806 relate to the fetching and display to a user of data objects, lists and generatian o:E the window for display of the lists and objects that a user. may wish to access in ~0~'~~~5 nA9-91-00~.
executing testing. Upon user recit.iests o..f objects, addresses for those objects are r~etermi.necl an<a communicat:i.on sessions are establ.:ished l:o al:l.ow :inter; r..:ti.c>r7 between the objects (step 808). User. :i.ni.i;iat:i.on of ;~r.tvi.v:it:y :i.s then mr~nitareci (step 810).
A test of a program modr.rl.e involves a test of a functionality of the program with respect to data designed to exercise those functions. A user initiates such a test by selecting an icon representing the appropriate test data and dragging i.t to the program to be exercised.. Such user action is detected at step 812. The DIO branch from step 812 reflects detection of some other user action and returns operations to monitor routine 2,00. Along the YFS branch from step 812, step 81~ is run, resultincJ in the program module executing on the indicated test data. Results are obtained and are displayed to the user. The user may wish to save The results as verif.icat:ion of the operability of the towline or for. use in diagnostic purposes in editing the underlying source code module. Accordingly, at step 816, the user is allowed to save the resists. If tyre user chooses not to save the .results, they are dvi.scarded and execution is returned to 'the monitor rowtirve ?,QO. If a user saves the results, a data object within the project instance container is created and a results icon :i.s generated for user selection of display of the results in a window (step 818).
After step 818, the execution returns t:o monitor routine 200.
Although the invention has been clesc.ribed with reference to a specific embodiment, this description is not meant to be construed in a limiting sense. Various modifications of 'the disclosed embodiment as well. a s al.ternat.i.ve embodiments of the invention will. become apparent -to persons stilled in the art upon reference to the descr:i.pti.on of -the invention. zt is therefore contemplated that the appended claims will rover any such modifications or embodiments that fall within the true scope of 'the inventi.on..

Claims (7)

1. In a data processing system including a plurality of workstations, each having a display and a user input device, the data processing system further including a shared memory with each of the workstations being connected for accessing data stored in the shared memory, a method of organizing work of a metaprogrammer and a plurality of system users in the generation of a software application package, the method comprising the steps performed by a computer system of:
creating a blank project container including a plurality of subject container objects for access by the metaprogrammer;
responsive to system user selection, storing a project specific container in the shared memory, said project specific container initially replicating the contents of the blank project container wherein the subject container objects relate to phases in a product life for the software application package;
creating a directory to templates for use in creating routine modules;
establishing functions for generating code for data objects;
generating an index of objects located in each subject container object, and to objects in the project specific container;
creating for each user a private instance derived from the project specific container, each private instance including a selected subset of the objects within the project specific container;
establishing a session between a user and the project specific container on a workstation; and generating an iconic abstraction for the private instance of the user on the display screen of the workstation in response to the establishment of a session.
2. A method of organizing work of a metaprogrammer and a plurality of system users as set forth in claim 1, the method further comprising the steps of:
establishing a session for a metaprogrammer on a workstation; and generating an iconic abstraction of the blank project container on the display of the workstation.
3. A method of organizing work of a metaprogrammer and a plurality of system users as set forth in claim 1 or claim 2, the method further comprising the steps of:
responsive to user selection of the iconic abstraction of the private instance, displaying on the display of the workstation a control that resembles a notebook displaying contents of the private instance.
4. A method of organizing work of a metaprogrammer and a plurality of system users as set forth in claim 3, the method further comprising the steps of:
organizing data corresponding to program code and support documentation by objects; and displaying the objects as pages of the control.
5. A method of organizing work of a metaprogrammer and a plurality of system users as set forth in claim 1, wherein the objects of the project specific container include user oriented system tutorials, a library of functions, a list of users, a library list of program objects, a library list of documents, a library of test cases, a library of programming specifications, an objective document and a request document.
6. A method of organizing work of a metaprogrammer and a plurality of system users as set forth in claim 1, the method comprising the further steps of:
responsive to metaprogrammer selection, identifying permitted system users;
responsive to metaprogrammer selection, defining classes of system users; and establishing access rights to objects for each class of users, wherein the private instance of each user includes objects based upon a system user having some type of access right to the objects.
7. A computer-readable memory for storing instructions usable in a computer of any one of the methods of claims 1 to 6.
CA002077975A 1991-12-20 1992-09-10 System and method for computer aided software engineering Expired - Fee Related CA2077975C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/811,775 1991-12-20
US07/811,775 US5428729A (en) 1991-12-20 1991-12-20 System and method for computer aided software engineering

Publications (2)

Publication Number Publication Date
CA2077975A1 CA2077975A1 (en) 1993-06-21
CA2077975C true CA2077975C (en) 2000-02-15

Family

ID=25207537

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002077975A Expired - Fee Related CA2077975C (en) 1991-12-20 1992-09-10 System and method for computer aided software engineering

Country Status (4)

Country Link
US (1) US5428729A (en)
EP (1) EP0549510A3 (en)
JP (1) JPH0789316B2 (en)
CA (1) CA2077975C (en)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5950169A (en) * 1993-05-19 1999-09-07 Ccc Information Services, Inc. System and method for managing insurance claim processing
US5500929A (en) * 1993-08-30 1996-03-19 Taligent, Inc. System for browsing a network resource book with tabs attached to pages
US5655086A (en) * 1994-04-28 1997-08-05 Ncr Corporation Configurable electronic performance support system for total quality management processes
AU2516195A (en) * 1994-05-13 1995-12-05 Apple Computer, Inc. Support for custom user-interaction elements in a graphical, event-driven computer system
US5729710A (en) * 1994-06-22 1998-03-17 International Business Machines Corporation Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
US5745716A (en) * 1995-08-07 1998-04-28 Apple Computer, Inc. Method and apparatus for tab access and tab cycling in a pen-based computer system
US5873106A (en) * 1995-09-18 1999-02-16 Oracle Corporation Geometry management for displaying objects on a computer
EP0876647B1 (en) 1996-01-25 2001-10-31 Siemens Aktiengesellschaft Graphic operating surface for programming programmable controllers
US5838315A (en) * 1996-02-01 1998-11-17 Apple Computer, Inc. Support for custom user-interaction elements in a graphical, event-driven computer system
WO1997028500A1 (en) * 1996-02-02 1997-08-07 Daly & Wolcott Method and apparatus of developing a business application computer-program
CA2201275A1 (en) * 1997-03-27 1998-09-27 Chris L. Brealey Locking tool data objects in a framework environment
US5912668A (en) * 1997-05-30 1999-06-15 Sony Corporation Controlling a screen display of a group of images represented by a graphical object
JPH1125076A (en) * 1997-06-30 1999-01-29 Fujitsu Ltd Document managing device and document management program storage medium
US6240414B1 (en) 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US7447712B2 (en) 1997-09-28 2008-11-04 Global 360, Inc. Structured workfolder
US6026401A (en) * 1997-10-14 2000-02-15 International Business Machines Corporation Locking tool data objects in a framework environment
KR100269258B1 (en) * 1997-10-21 2000-10-16 정선종 Integrated CASE Information Repository Metamodel System for Process Methodology and its Integration Support Method
US5946680A (en) * 1997-11-28 1999-08-31 International Business Machines Corporation Method of determining the unique ID of an object in a peer to peer configuration of object indexes
BE1011617A3 (en) * 1997-12-16 1999-11-09 Rijck Freddy De Method for estimating time for software development
US6058395A (en) * 1998-01-29 2000-05-02 Buzaglo; Jacques Computerized communication system for managing multi-disciplinary engineering virtual community
US6088702A (en) * 1998-02-25 2000-07-11 Plantz; Scott H. Group publishing system
US6275223B1 (en) 1998-07-08 2001-08-14 Nortel Networks Limited Interactive on line code inspection process and tool
US6351777B1 (en) 1999-04-23 2002-02-26 The United States Of America As Represented By The Secretary Of The Navy Computer software for converting a general purpose computer network into an interactive communications system
US6463460B1 (en) 1999-04-23 2002-10-08 The United States Of America As Represented By The Secretary Of The Navy Interactive communication system permitting increased collaboration between users
US7024456B1 (en) 1999-04-23 2006-04-04 The United States Of America As Represented By The Secretary Of The Navy Method for facilitating collaborative development efforts between widely dispersed users
US7043529B1 (en) 1999-04-23 2006-05-09 The United States Of America As Represented By The Secretary Of The Navy Collaborative development network for widely dispersed users and methods therefor
US6339436B1 (en) * 1998-12-18 2002-01-15 International Business Machines Corporation User defined dynamic help
US6993710B1 (en) * 1999-10-05 2006-01-31 Borland Software Corporation Method and system for displaying changes of source code
US7308440B2 (en) * 2000-12-11 2007-12-11 Microsoft Corporation System and method for representing an object used in management of multiple network resources
US20020107970A1 (en) * 2001-02-07 2002-08-08 David Wiegand Method of and apparatus for remotely preparing a targeted procedures model for transforming a data stream
US20030056207A1 (en) * 2001-06-06 2003-03-20 Claudius Fischer Process for deploying software from a central computer system to remotely located devices
EP2290532A3 (en) * 2001-07-26 2013-04-24 IRiSE System and process for gathering, recording and validating requirements for computer applications
US20040010772A1 (en) * 2001-11-13 2004-01-15 General Electric Company Interactive method and system for faciliting the development of computer software applications
JP2003242321A (en) * 2002-02-20 2003-08-29 Hitachi Ltd Project information processor and computer software
US20030212587A1 (en) * 2002-05-13 2003-11-13 International Business Machines Corporation Apparatus and methods for coordinating Web services using role based interpretation of coordination plans
US7454744B2 (en) * 2003-07-03 2008-11-18 International Business Machines Corporation Private source code commenting
GB0503836D0 (en) * 2005-02-24 2005-04-06 Axis Shield Asa Method
US8020147B2 (en) * 2007-10-12 2011-09-13 Infosys Limited Software package implementation sizing
JP5026926B2 (en) * 2007-11-02 2012-09-19 アズビル株式会社 Project management system and project management method
WO2009070319A1 (en) * 2007-11-27 2009-06-04 Ortiz David J Computer graphic user interface and display system
US10055392B2 (en) 2008-05-12 2018-08-21 Adobe Systems Incorporated History-based archive management
US9329744B2 (en) 2008-05-12 2016-05-03 Adobe Systems Incorporated Segmented scroll bar
US7945595B1 (en) 2008-05-12 2011-05-17 Adobe Systems Incorporated System and method for generating an item list in electronic content
US8996621B2 (en) 2008-05-12 2015-03-31 Adobe Systems Incorporated Asynchronous comment updates
US9418054B2 (en) 2008-05-12 2016-08-16 Adobe Systems Incorporated Document comment management
US7949633B1 (en) 2008-05-12 2011-05-24 Adobe Systems Incorporated Shared edit access of electronic content
US9176943B2 (en) 2008-05-12 2015-11-03 Adobe Systems Incorporated Comment presentation in electronic documents
US8893017B2 (en) 2008-05-29 2014-11-18 Adobe Systems Incorporated Tracking changes in a database tool
US8677506B2 (en) 2009-12-03 2014-03-18 Osocad Remote Limited Liability Company System and method for loading application classes
EP2625606A4 (en) 2010-10-08 2014-11-26 Irise System and method for extending a visualization platform
US9612826B2 (en) * 2014-07-31 2017-04-04 Facebook, Inc. Attributing authorship to segments of source code

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US5237651A (en) * 1987-08-21 1993-08-17 Eden Group Limited Electronic personal organizer
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US4974173A (en) * 1987-12-02 1990-11-27 Xerox Corporation Small-scale workspace representations indicating activities by other users
US4899299A (en) * 1987-12-23 1990-02-06 International Business Machines Corporation Method for managing the retention of electronic documents in an interactive information handling system
US5065347A (en) * 1988-08-11 1991-11-12 Xerox Corporation Hierarchical folders display
US5159669A (en) * 1988-12-15 1992-10-27 Xerox Corporation Automatically creating a second workspace operation record including history data and a unit ID based on a first workspace operation
US5202828A (en) * 1991-05-15 1993-04-13 Apple Computer, Inc. User interface system having programmable user interface elements

Also Published As

Publication number Publication date
EP0549510A3 (en) 1993-12-22
EP0549510A2 (en) 1993-06-30
CA2077975A1 (en) 1993-06-21
US5428729A (en) 1995-06-27
JPH0789316B2 (en) 1995-09-27
JPH05241797A (en) 1993-09-21

Similar Documents

Publication Publication Date Title
CA2077975C (en) System and method for computer aided software engineering
US11789706B2 (en) Development system with improved methodology for creation and reuse of software assets
US5949999A (en) Software testing and requirements tracking
US6651240B1 (en) Object-oriented software development support apparatus and development support method
US6851089B1 (en) Software application and associated methods for generating a software layer for structuring semistructured information
US6694509B1 (en) Automated regression testing of workstation software
US7313564B2 (en) Web-interactive software testing management method and computer system including an integrated test case authoring tool
US6292792B1 (en) System and method for dynamic knowledge generation and distribution
Bracewell et al. DRed and design folders: a way of capturing, storing and passing on knowledge generated during design projects
US6901407B2 (en) System and method for updating project management scheduling charts
Chen et al. RIPPLES: tool for change in legacy software
WO2006003485A2 (en) Automatic guide for data analysis
JP2001519559A (en) Computer-based decision management system using dynamically generated question and answer options
WO1998047068A2 (en) Method and apparatus for binding user interface objects to application objects
Robbes et al. Characterizing and understanding development sessions
KR100261265B1 (en) Apparatus for making a web document and method of operating it
Della Penna et al. An environment for the design and implementation of visual applications
Yerkey Active server pages for dynamic database Web access
Riley An object-oriented approach to software process modeling and definition
Beams et al. Providing reusability and learning support in the simulation model development environment
Siti Azrin Rescue 991: The Malaysian Civil Defence Emergency System/Siti Azrin Abdul Aziz
Gan Supermarket Inventory System/Gan Jit Sin
Condit Fagan Transition to a unified system: using Perl to drive library databases and enhance Web site functionality
Parker et al. Extensibility Experiments with the Software Life-Cycle Support Environment
Singh Web Enabling a Bibliographic Database of Indian Biomedical Journals: IndMED

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed