SASSEE ("ZAZY") auf der SEUGI Madrid 1997
- SASSEE
- A Software Engineering Environment for SAS Application Development
REINER UHL, Hoechst Marion Roussel AG MARTIN STUDEMUND, Hoechst Marion Roussel AG ROBERT N. LEMBKE-NOE, baTz DV-Consulting GmbH WOLF-DIETER BATZ, baTz DV-Consulting GmbH
- Summary
The proposed paper presents a modular menu-driven environment, to meet a wide variety of QA-Requirements, in Large-Scale Applications Developement, based on the SAS System.
- Abstract
Power and flexibility are two of the major benefits the SAS System provides to the SAS User, thus offering increased productivity.
In the past two decades - since 1976 - this has led to a rapidiy growing number of applications of varied complexity. These have usually been initiated, driven and managed to date by individuals who recognized the SAS System’s immediate advantages as „The Individual Data Processing Tool of choice‘.
Software Engineering Efforts were believed to be superfluous in this domain, even when a 4th GL like the SAS System was used. This opinion has been subject to fundamental change recently.
SASSEE has its origin in the early 90s, when we felt the need to track the ongoing process of gradual small changes when an application is moved to beta- and production-status. Maintained transparency and clarity in coding and documentation is one quality aspect of premier relevance.
The presented Release of SASSEE provides the User with an up-to-date Graphical Interface that eases access to SASSEE’s functionality which in turn can be summarized as follows: (i) RMU - Release Management Utility; (ii) GSE Graphical Syntax Editor; (iii) AMG - Automated Manual Generator; (iv) VPF Versatile Parser Family.
The functionality within SASSEE makes it an attractive tool, firstly for the development team that starts implementing SAS-Applications from scratch, and secondly for the concerned individual, who keeps the more aged SAS-Applications in his domain up and running.
While the former group might be happy with the RMU- and GSE-Parts to set up their production environment, the latter group will be pleased to see how the VPF- and AMG-Parts produce an almost complete technical reference out of his recently undocumented application after it has been analyzed.
During further development SASSEE will face further extension of the VPF-Part with parsers for yet more syntax structures and languages which can be found in SAS-Applications. As of now SASSEE is capable of handling Macro-Code, SCL-Code, Methods including embedded documentation in each of the formerly mentioned. Current activities concentrate on the SLIST-Parser.
Another target of future developement activities is SASSEE’s performance. Some enhancement will surely be appreciated in the future when more than 500 modules are involved.
This paper concerns SAS Application Develeopment. The experiences of the authors and their colleagues over the past 15 years was its foundation. The result is SASSEE. SASSEE tranforms these experiences into a framework which allows a company or a development team to maintain long-term transparency in SAS application development. The presentation begins with a short theorefical introduction, followed by a quick look into the internals of the product. Next, the benefits accomplished with SASSEE are revealed. Finally, some SASSEE screenshots are displayed so that one obtain a 'Feel' for the product. Authors The authors and programmers are looking forward to your questions at the baTz-DV (#20) booth which is located in the exhibition area. Motivation The need to produce quality computer application with as much transparency as possible was the motivation for this project. What is ment by productivity, quality, and transparency? How are these three elements related? Most firms have standards of quality and, normally, these standards are formulated into SOPs. These SOPs cover everything from answering the telephone to written computer applications.
For the manager it is fairly easy to observe whether employees follow the given SOPs when answering the telephone; most often there exist a telephone formula which should be completed with every telephone call. On the other hand, it is difficult for the same manager to assess whether employees follow the given SOPs when writing a large application. Though it is difficult, it is not impossible. With proper documentation of an application a manager control whether the programmes are following the SOPs. Therefore, ensuring that the application meets the firms standard of quality. With the ever increasing demands for new functions and improvements of applications it seems one has not yet finished with version X of a product and already the customer wants version X.YY. How quickly can one add a new function or fix a bug Influences productivity. With proper documentation such changes and improvements are accomplished relatively quick. Without proper documentation, just finding where the changes must be made can cost weeks. Code that is transparent and accomplishes a little is many times better than code that cannot be followed but accomplish much, because one must, eventuvally, make changes. How much time can the manager allocate or, more accuratelly, the programmer to deciphering brillant code, which noone understands?® With proper documentation a programmer obtains the desired level of transparency. Hopefully, one nofices the link between maintaining quality, productivity, and writing transparent code is proper documentation. With proper documentation changes which meet the SOPs are developed quickly and easily. SASSEE helps programmers and managers produce this documentation. Orientation This conceptual framework from Wallmüller (1990) orientates one.
One sees that SASSEE does not deal with strategies. As an environment which is derived from and matured on an operational basis it covers the "doing"-aspects of application development.
On the module level, SASSEE serves the developer with functions for design, generation and maintenance of program code.
On the application level, it provides techniques to handle the complexity of module interaction and to manage configurations of an application as they follow each other.
Although there's no direct support for design, testing and quality assurance in SASSEE it eases passing an application through these phases. SASSEE provides: What does SASSEE do®
Support for the life cycle model mean that one does not have to start from scratch with application development efforts every time request change. The life cycle model adds the evolutionary view to application development. As it has been the motivation for object oriented programming we also recognize the amount of time and money contained in written code. As a consequence SASSEE relies on and requires the reusability of components or modules.
Very few programmers have the ability to develop a complete application alone and given time constraints what manager could afford that. Therefore, SASSEE creates a comman team platform and easily allows cooperation amongst programming professionals on a projekt.
Paperwork is fine as long as one does not have to make major revisions or must spend hours finding the required information. Consequently, SASSEE has built in analysis features which deliver with up-to-date documentation and reference structure. The SASSEE Components SASSEE’s concept is made up of four functional blocks.
The Release Management Utility (RMU) implements the life cycle support within SASSEE. It can be viewed as a specialized version of the well known Windows Explorer and manages the directory structure containing an application's modules. It automates the life cycle as development-test-production. There will be a foil to illustrate this later. The Graphical Syntax Editor (GSE) is a third party product. We use Siemens EasyCASE®/EasyCODE® but SASSEE can also interact with your product of choice.
When there is inline documentation in your source code the Automated Manual Generator (AMG) will assemblee a document for a wordprocessor based on the extracted documentation segments.
The needed extraction is done by the Versatile Parser Family (VPF). Althouch it appears to be a "family" to the user it is one single parser that is capable of resolving different source structures; the number of which can be extended as needed.
As you might suppose there is much information in every module which could be useful in constructing a complete system documentation. AMG and VPF together form a submodule of SASSEE which we called "Browser'. Later on we willlock a little more into this. Release Management Utility This is the iconized life cycle model which is implemented as Release Management Utility.
Released applications are derived from a tested beta version which in turn is derived from the work done by the application developerlis). Activities at all three stages happen simultaniously. Solid drawn arrows represent the process of copying; the dashed one represents feedback only.
As you can see here, the beta version can be copied back to development if it fails beta test success or copied forward to production in case of success.
Beginning with release 2.xx the developer(s) are returned their old product for improvement purposes. That way the life cycle closes.
The Release Management Utility guides and accompanies the manager and programmer through the whole scheme and releases them from administrative work such as release numbering and directory management. Development Turning our focus to the development box in the lower left region now the three left components of SASSEE can be seen. While the RMU is a file and directory manager the other components operate on the source code level. That's why "SAS Source" appears in the central node of the icon.
The baseline represents the already introduced "Browser" subsystem that reads source code for filtering and analysis puposes. On demand the browser can feed the filtered and analyzed code back to the source files.
This single example shows what the term "system documentation" could cover if the information in the source code were fully exploited.
In the upper central position of the icon the Graphical Syntax Editor is located which can read the beaufified output from VPF and feed his output to the AMG. Versatile Parser Family Obviousiy the Versatile Parser Family is the most dynamic part inside SASSEE.
When the develeoper has committed himself to a set of programming rules that regulates the quality and transparency of coding, then the main function of the VPF can be seen as that of a static analyzer of module interactions.
The VPF then outputs a complete call hierarchy which can be transformed to a list "who-calls-whom" and a second list "who-is-calledby-whom". Of course there is always a need to extend the parser to accept more different programming styles and conventions and also to analyze more languages inside the SAS System. Work will be continued in this section. We are waiting for your response and recommendation. More important information that could be derived from VPF output is related to measurement or meltrics. At least theoretically the VPF delivers the "raw material" for such an approach to productivity measurement. Benefits To summarize my speech let me raise the four main benefits SASSEE provides in short. The Release Management Utility lets the developer team easily ufilize the life cycle model in applications development. It handles most administrative work necessary on the file level when an application is moved from development to beta and production status. SASSEE makes source code "handsome:‘. This enables the development team to give it the form they like, be it a document prepared for a wordprocessor or a list of references/referencees. The documentation is always up-to-date. There will be more diffyculfies to miss e.g. production deadlines when SASSEE is used. Responsibles like a project supervisor have a chance to keep track of the project status or even to evaluate the maturity of a product. Through maintained transparency the individual programmer (also in a team) gets immediate feedback on the progress achieved. The Elimination of errors is very much easier as it has been. This enables him to spend creativity and time where he gets the most out of it.