IEEE P1003.0 Draft 14 - November 1991 Copyright (c) 1991 by the Institute of Electrical and Electronics Engineers, Inc. 345 East 47th Street New York, NY 10017, USA All rights reserved as an unpublished work. This is an unapproved and unpublished IEEE Standards Draft, subject to change. The publication, distribution, or copying of this draft, as well as all derivative works based on this draft, is expressly prohibited except as set forth below. Permission is hereby granted for IEEE Standards Committee participants to reproduce this document for purposes of IEEE standardization activities only, and subject to the restrictions contained herein. Permission is hereby also granted for member bodies and technical committees of ISO and IEC to reproduce this document for purposes of developing a national position, subject to the restrictions contained herein. Permission is hereby also granted to the preceding entities to make limited copies of this document in an electronic form only for the stated activities. The following restrictions apply to reproducing or transmitting the document in any form: 1) all copies or portions thereof must identify the document's IEEE project number and draft number, and must be accompanied by this entire notice in a prominent location; 2) no portion of this document may be redistributed in any modified or abridged form without the prior approval of the IEEE Standards Department. Other entities seeking permission to reproduce this document, or any portion thereof, for standardization or other activities, must contact the IEEE Standards Department for the appropriate license. Use of information contained in this unapproved draft is at your own risk. IEEE Standards Department Copyright and Permissions 445 Hoes Lane, P.O. Box 1331 Piscataway, NJ 08855-1331, USA +1 (908) 562-3800 +1 (908) 562-1571 [FAX] P1003.0/D14 Annex E (informative) Additional Material E.1 Software Development Environments _R_e_s_p_o_n_s_i_b_i_l_i_t_y: _D_o_n _F_o_l_l_a_n_d E.1.1 Overview and Rationale Software Development Environments are dealt with as a particular application area needing special attention for the following reasons: - The domain of Software Development Environments is one of prime importance. Software development is a major area of expenditure for government and large commercial organizations. - The need for standardization is being driven not only by the SDE vendors and users, but also by the Independent tool developers who want to get their tool products on as many vendor platforms as possible. - The SDE domain calls not only for portability, but also for particular integration and interoperability requirements. - The domain is primarily of interest to that user community that has large complex software development requirements, but it is also of interest to all application areas as software development is an enabling technology for all applications. Software engineers seek more powerful assistance to improve productivity and quality in the software development process. Considered opinion currently favors Project Support Environments (PSE) underpinned in such a way that the facilities are capable of being implemented on different machines. A PSE needs a base holding information such as specifications, designs, code, schedules, configuration plans, tests, etc., to support the developers. The interface between the base and the tools must ensure portability of the tools. Again, these tools will be supported by relevant language standards. Copyright (c) 1991 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. E.1 Software Development Environments 297 P1003.0/D14 GUIDE TO THE POSIX OPEN SYSTEMS Certain design methodologies themselves have been modeled formally to establish their degree of rigor and self-consistency. Function Point Analysis is one method of measuring software systems and computing productivity that is increasing in use. It measures inputs, outputs, and entities accessed to determine transaction size; it gauges technical complexity by reference to 19 characteristics. These are combined to give a measure of systems size. Productivity is the ratio of system size in function points to the effort required to produce or maintain the system. Generally, software support for the development process is in its infancy and effective metrics have not yet been developed. E.1.2 Scope The problem domain is complex software development, from the generation of an idea to the delivery and ongoing support of a solution product set. Thus, an SDE may include some or all of the following: (1) Software Development Life Cycle (a) Requirements analysis (b) Logical design (c) Physical design (d) Functional and interface specification (2) Activity support (a) Prototyping (b) Program development and testing (c) Quality assurance and regression testing (d) Generation of user documentation (e) User training (f) Problem report tracking and maintenance (g) Maintenance and tracking of schedules (3) Configuration Management Copyright (c) 1991 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. 298 E Additional Material ENVIRONMENT INTERIM DOCUMENT P1003.0/D14 (a) Automatic version management (b) Integrity management (c) Traceability (4) Project Management (5) Data Administration (a) Access control In the context of developing software for a POSIX Open System Environment, design will take account of portability and interoperability requirements. The SDE tools themselves should be portable. The software development activities may be provided with a large set of tools and applications. The SDE must provide the necessary support for the integration of all of these tools. E.1.3 Reference Model _________________________________________________________________________ _________________________________________________________________________ Figure E-1 - Software Development Model In this clause the conceptual view of software development is related to the POSIX Reference Model (Figure 3-1). The software developer's view is shown in Figure E-1. The tools used to develop software can be viewed as Copyright (c) 1991 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. E.1 Software Development Environments 299 P1003.0/D14 GUIDE TO THE POSIX OPEN SYSTEMS _________________________________________________________________________ _________________________________________________________________________ Figure E-2 - Software Development Reference Model applications in their own right in the context of the POSIX Reference Model, requiring the same services from the platform as for Database Management. In the Software Development Model, the Environment Adaptation and Project Support Tools ``layer'' provides the essential link between the programmer, designer or analyst, the design method, and the development infrastructure. At this level are provided the tools and applications that are unique to the project or methodology; e.g., project management workbench. It requires support from a consistent human-computer interface to the Functional Tools. The Functional Tools and Integration Mechanisms embrace the essential tool set to enable software developers to build software. It includes simple tools such as editors, tools for tool-building, and integration mechanisms. There will be tools for Configuration Management, Version Management, and System Administration. It is not within the scope of this guide to discuss these in detail. The whole software development environment is underpinned by essential management systems, such as object management system, a data dictionary, a user interface management system, and environment management. A database will frequently be established to hold specifications, designs, configuration plans, etc. In the POSIX Open System Environment, the software development model can be incorporated into the POSIX Reference Model as in Figure E-2. The model shows that the tools and services required by the software Copyright (c) 1991 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. 300 E Additional Material ENVIRONMENT INTERIM DOCUMENT P1003.0/D14 developer are part of the POSIX Open System Environment and are available through the POSIX OSE API. E.1.4 Services Requirements Software developers, i.e., designers, analysts, and programmers, use software applications to facilitate the complex task of software development. A tool will require services from the application platform and will frequently require support from another application in the application set. There are many possible implementations of tool sets. Descriptions of these are beyond the scope of this guide. E.1.4.1 Application Program Interface Services The services required at the API are essentially similar to those described for Database Management in 4.4.4.1; i.e., Data Definition and Manipulation, Data Access, Data Integrity, and such Miscellaneous Services as Data Dictionary. E.1.4.2 External Environment Interface Services A consistent human-computer interface to the tool set is required. Some of the programmer's tool set will be explicitly focused on windowing services (such as 4.7 and 4.8) and provide assistance to develop software with improved usability. Resource data formats must be specified in order to ensure effective information interchange [for example, CASE Data Interchange Format (CDIF)], for which standards are currently under development under the aegis of the CDIF Technical Committee (see also E.1.5.2 and 4.5). Protocol services are required for the transport of data (see 4.3). E.1.4.3 Interapplication Software Entity Services Many of the tools depend for interface between one another upon the data dictionary/repository, which is a key software component and which may conceptually be regarded as part of the Applications Platform. Included in this category will be utilities for servicing the DBMS, such as recovery, reorganization, and restructure: - Object management system - User interface management system - Database management system Copyright (c) 1991 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. E.1 Software Development Environments 301 P1003.0/D14 GUIDE TO THE POSIX OPEN SYSTEMS - Transaction processing management system Details of these management systems may be recorded in the data dictionary/repository. E.1.4.4 Software Development Resource Management Services These services are generally not visible to the programmer or software developer at the Tools API, usually being provided by the tool building and other software development utilities. E.1.5 Standards, Specifications, and Gaps This subclause describes current accepted standards that are relevant to this area in addition to the language standards in 4.1.5 and the database standards in 4.4.5. Table E-1 - Software Development Standards __________________________________________________________________________________________________________________________________________________ Service SpecificationSubclause ___________________________________________________________________________ Miscellaneous Services: Labeling of magnetic tape ISO 1001 4.11.5.? Labeling of cassette and cartridge ISO 4341 4.11.5.? Labeling of flexible disks ISO 7665 4.11.5.? Volume and file structure for flexible disks ISO 9293 4.11.5.? Volume and file structure for CD-ROM ISO 9660 4.11.5.? Documentation symbols and flowchart conventions ISO 5807 4.11.5.? Documentation of applications ISO 6592 4.11.5.? Program flow for sequential files ISO 6593 4.11.5.? Data descriptive file for information interchangeISO 8211 4.11.5.? Program constructs and conventions ISO 8631 4.11.5.? User documentation ISO 9127 4.11.5.? __________________________________________________________________________________________________________________________________________________ E.1.5.1 Current Standards This subclause briefly identifies the current standards in this area. _T_h_e _f_o_l_l_o_w_i_n_g _p_r_o_v_i_d_e_s _p_l_a_c_e _h_o_l_d_e_r_s _f_o_r _f_u_r_t_h_e_r _t_e_x_t _t_o _b_e _i_n_s_e_r_t_e_d - _a_s_s_i_s_t_a_n_c_e _r_e_q_u_i_r_e_d _p_l_e_a_s_e. Copyright (c) 1991 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. 302 E Additional Material ENVIRONMENT INTERIM DOCUMENT P1003.0/D14 E.1.5.1.1 International Standards _L_a_b_e_l_i_n_g__a_n_d__F_i_l_e__S_t_r_u_c_t_u_r_e__o_f__M_a_g_n_e_t_i_c__M_e_d_i_a The following standards refer to the labeling of magnetic media and for the file structure on such media to facilitate information interchange: Labeling of magnetic tape ISO 1001 Labeling of cassette and cartridge ISO 4341 Labeling of flexible disks ISO 7665 Volume and file structure for flexible disks ISO 9293 Volume and file structure for CD-ROM ISO 9660 Data descriptive file for information interchange ISO 8211 _T_h_e _a_b_o_v_e-_m_e_n_t_i_o_n_e_d _s_t_a_n_d_a_r_d_s _m_i_g_h_t _b_e _m_o_r_e _s_u_i_t_a_b_l_y _c_a_l_l_e_d _o_u_t _i_n _R_i_c_h_a_r_d _S_c_o_t_t'_s _s_e_c_t_i_o_n _4._5. _S_o_f_t_w_a_r_e__D_o_c_u_m_e_n_t_a_t_i_o_n There are several standards dealing with documentation to assist with the task of software development, and therefore potentially facilitating programmer and designer portability, as well as user documentation. Documentation symbols and conventions ISO 5807 for data, program and system flowcharts, program network charts, and system resources charts Guidelines for the documentation of ISO 6592 computer-based application systems Program flow for processing sequential ISO 6593 files in terms of record groups Program constructs and conventions for ISO 8631 their representation User documentation and cover information ISO 9127 for consumer software packages E.1.5.1.2 Regional Standards ECMA has approved ECMA-149 as the standard for the Portable Common Tool Environment (PCTE). E.1.5.1.3 National Standards _T_o _B_e _P_r_o_v_i_d_e_d Copyright (c) 1991 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. E.1 Software Development Environments 303 P1003.0/D14 GUIDE TO THE POSIX OPEN SYSTEMS E.1.5.2 Emerging Standards This subclause describes the activities currently in progress to further standardize this area. E.1.5.2.1 International Standards _T_o _B_e _P_r_o_v_i_d_e_d E.1.5.2.2 Regional Standards _T_o _B_e _P_r_o_v_i_d_e_d _C_A_S_E__D_a_t_a__I_n_t_e_r_c_h_a_n_g_e__F_o_r_m_a_t__(_C_D_I_F_) The CDIF Technical Committee is developing a data interchange format to serve as an industry standard for exchanging information between Computer-Aided Software Engineering (CASE) tools. CDIF is an EIA- endorsed initiative. It assumes that two or more tools may interface asynchronously with each other and will transfer information from one to another via ``CDIF files.'' The types of information that may be contained in these files is defined by the CDIF Conceptual Models. _P_o_r_t_a_b_l_e__C_o_m_m_o_n__T_o_o_l__E_n_v_i_r_o_n_m_e_n_t__(_P_C_T_E_) ECMA TC33 has responsibility for the development and maintenance of PCTE. The committee formed a Task Group in 1988 to develop a Reference Model which would assist the standardization process. Such a model has been developed totally independent of PCTE, and is described in ECMA Technical Report 55. The model provides a way to describe, compare, and contrast CASE environment frameworks. E.1.5.2.3 National Standards _T_o _B_e _P_r_o_v_i_d_e_d E.1.5.2.4 National Standards _T_o _B_e _P_r_o_v_i_d_e_d E.1.5.3 Gaps in Available Standards E.1.5.3.1 Public Specifications _T_o _B_e _P_r_o_v_i_d_e_d Copyright (c) 1991 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. 304 E Additional Material ENVIRONMENT INTERIM DOCUMENT P1003.0/D14 E.1.5.3.2 Unsatisfied Service Requirements _T_o _B_e _P_r_o_v_i_d_e_d E.1.6 OSE Cross-Category Services Not applicable. E.1.7 Related Standards _T_o _B_e _P_r_o_v_i_d_e_d E.1.8 Open Issues - Relationship between methodology and formats [_P_C_T_E _a_n_d _C_A_I_S-_A _h_a_v_e _b_e_e_n _m_o_v_e_d _h_e_r_e _l_a_r_g_e_l_y _b_e_c_a_u_s_e _i_t _i_s _n_o_t _c_l_e_a_r _w_h_a_t _t_o _d_o _w_i_t_h _t_h_e_m. _T_h_e_y _a_r_e _n_o_t _a_d_e_q_u_a_t_e_l_y _a_c_c_o_m_m_o_d_a_t_e_d _b_y _t_h_i_s _m_o_d_e_l. _T_h_e_y _a_r_e _b_o_t_h _h_y_b_r_i_d_s _o_f _o_p_e_r_a_t_i_n_g _s_y_s_t_e_m _a_n_d _d_a_t_a_b_a_s_e _m_a_n_a_g_e_m_e_n_t _s_y_s_t_e_m _c_a_p_a_b_i_l_i_t_i_e_s _t_h_a_t _s_e_e_m _t_o _b_e_l_o_n_g _e_i_t_h_e_r _e_v_e_r_y_w_h_e_r_e _o_r _n_o_w_h_e_r_e. _T_h_e_y _c_o_u_l_d _b_o_t_h _w_e_l_l _b_e _u_s_e_d _i_n _c_o_n_j_u_n_c_t_i_o_n _w_i_t_h _a _P_1_0_0_3._1 _i_m_p_l_e_m_e_n_t_a_t_i_o_n, _b_u_t _t_h_e_y _c_o_u_l_d _a_l_s_o _b_e _i_m_p_l_e_m_e_n_t_e_d _o_n _o_t_h_e_r _b_a_s_e _o_p_e_r_a_t_i_n_g _s_y_s_t_e_m_s, _o_r _i_m_p_l_e_m_e_n_t_a_t_i_o_n_s _c_o_u_l_d _e_v_e_n _e_x_p_a_n_d _t_h_e_i_r _c_a_p_a_b_i_l_i_t_i_e_s _t_o _p_r_o_v_i_d_e _f_u_l_l _o_p_e_r_a_t_i_n_g _s_y_s_t_e_m_s. _P_1_0_0_3._0 _m_u_s_t _d_e_c_i_d_e _w_h_a_t _t_o _d_o _w_i_t_h _t_h_e_m.] _P_C_T_E An effort by the European Computer Manufacturers Association (ECMA) has resulted in the definition by Technical Committee 33 of the Basis for the Portable Common Tools Environment (PCTE). This is now an ECMA standard and is referred to as Standard ECMA-149. _C_A_I_S_-_A MIL-STD-1838A (CAIS-A) was developed by the US Department of Defense to provide a common foundation for Ada Programming Support Environments. Similar in nature to PCTE (see above), it too covers many of the system services covered by 4.2.4. In addition, it provides data management services such as those discussed in 4.4 and data interchange services (specifically, a Common External Form) similar to those discussed in 4.5. Copyright (c) 1991 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. E.1 Software Development Environments 305 P1003.0/D14 Alphabetic Topical Index A Application Platform Implementation Considerations Abbreviations ... 13 ... 33 ABS ... 288 application platform Accounting ... 221 definition of ... 7 ACID ... 119, 122, 126 Application Program Interface ACL ... 141, 212 (API) Elements ... 135 ACSE ... 95 Application Program Interface AD1 ... 91 (API) ... 20, 25 Ada ... 46, 48 application program interface Administration ... 175 (API) AEP ... 7, 228 definition of ... 7 AES ... 64, 69, 185, 288 Application Program Interface AFNOR: Association Francaise de Services ... 55, 83, 103, 113, Normalization ... 268 124, 136, 158, 172, 179 AFNOR ... 268 Application Program Interface Alphabetic Topical Index ... 307 ... 24 ANSI: American National Standards Application Program Services Institute ... 268 ... 45 ANSI X3.122 ... 115-116 Application Programming Interface ANSI X3.133 ... 107 Services ... 212 ANSI X3.135 ... 130 Application Software Elements ANSI X3.138 ... 106, 108 ... 135 ANSI X3.168 ... 106, 130 application software entities ANSI/ISO ... 159 ... 25 ANSI ... 48-50, 107-109, 115-116, application software 129, 145-146, 151, 159, 163- definition of ... 7 168, 234, 243, 245, 263, 268- Application to Application Service 269, 271-272, 275-276, 278-279, ... 84 282, 286, 291 Application to System Services API Service Requirements ... 198 ... 84 API application definition of ... 13 definition of ... 7 APL ... 46, 48 APP ... 278 APL ... 45-46, 48, 128, 162, 280 Approved POSIX Standardized Application Environment Profile Profiles ... 237 (AEP) APT ... 280 definition of ... 7 ASCE ... 80, 91 Application Platform Decomposition ASCII ... 192 III - Redirection ... 36 ASE ... 95 Application Platform Decomposition ASN.1 ... 91, 96, 110, 115, 117, II - Layering ... 36 207 Application Platform AT&T ... 69, 185, 291, 293 Implementation - Subdivision ... 35 Copyright (c) 1991 IEEE. All rights reserved. This is an unapproved IEEE Standards Draft, subject to change. Alphabetic Topical Index 307