UCI ICS 228 - Overview of Software Development Environments

Unformatted text preview:

Overview of Software Development EnvironmentsSusan A. Dart, Robert J. Ellison, Peter H. Feiler, and A. Nico Habermann Edited by Peter FritzsonOverview1 IntroductionLanguage-centered Environments2 Language-centered Environments2.1 Exploratory Style2.2 Semantic Information2.3 Programming-in-the-large2.4 ObservationsStructure-oriented Environments3 Structure-oriented Environments3.1 Manipulation of Structure and Text3.2 Multiple Views of Program Structures.3.3 Semantics and Incremental Processing3.4 Generation of Structure-oriented Environments3.5 ObservationsTookit Environments4 Toolkit environments4.1 Extensibility and Portability4.2 Operating System Extensions4.3 Programming-in-the-large4.4 ObservationsMethod-based Environments5 Method-based Environments5.1 Support for Development Methods5.2 Support for Managing the Development Process5.3 ObservationsUser Interfaces6 User Interfaces6.1 Structure-oriented Environments6.2 The Rational Environment6.3 Elision6.4 Browsing6.5 Method-based environmentsConclusions7 Conclusions7.1 Data Management7.2 Programming-in-the-large/programming-in-the-many7.3 Tailorability8 A Sampler of Software Development EnvironmentsA Sampler of Environments8.1 Language oriented environmentsAdaCedarCommon LispDIANAInterlispObjectMathThe Rational EnvironmentSmalltalk8.2 Structure-oriented environmentsAloeSynthesizer GeneratorDICEEmilyGandalfLOIPEMentorMjølner/OrmPecan8.3 Toolkit enviroments:Apollo DSEEArcadiaCAISPCTEUnix/PWBVMS VAXset CMSReferences9 References9.1 Main reference9.2 Other references[1] E. Sandewall, "Programming in an Interactive Environment: The Lisp Experience," in Interactiv...[2] C. Ghezzi and D. Mandrioli, "lncremental Parsing," ACM Trans. Programming Languages and syste...[3] M.M. Lehman and L.A. Belady, Program Evolution—Processes of Software Change, Academic Press, ...[4] M. Dawson, "Iteration in the Software Process: Review of the 3rd Int'l Software Process Works...[5] Proc.9th Int'l Conf. on Software Engineering, Computer Society Press, Los Alamitos, Calif.,1987.[6] R. Balzer, "A 15 Year Perspective on AUtomatic Programming", IEEE Trans. Software Engineering...[7] D.R. Smith, G.B. Kotik, and S.J. Westfold, "Research on Knowledge- based Software Environment...Overview1Overview ofSoftware DevelopmentEnvironmentsSusan A. Dart, Robert J. Ellison, Peter H. Feiler, and A. Nico HabermannEdited by Peter FritzsonOverview1 IntroductionEnvironmentrefersto the collectionof hardwareand software tools asystemdeveloper uses to build software systems. As technology improves anduser expectations grow, an environment's functionality tends to change.Over the last 20 years the set of software tools available to developers hasexpanded considerably.We can illustrate this change by observing some distinctions in the termi-nology. Programming environment and software development environment areoften used synonymously, but here we will make a distinction between thetwo. By "programming environment" we mean an environment that sup-ports only the coding phase of the software development cycle—that is,programming-in-the-small tasks such as editing and compiling. By softwaredevelopment environment we mean an environment that augments or auto-mates the activities comprising the software development cycle, includingprogramming-in-the-large tasks such as configuration management andprogramming-in-the-manytaskssuch as project and teammanagement. Wealso meanan environment that supports largescale, long-term maintenanceof software.The evolution of environments also demands that we distinguish basic op-erating system facilities—fundamental services such as memory, data, andmultipleprogram management—from the enhanced functionality thatcharacterizes state-of-the-art environments. This enhanced functionality istypically achieved through tools such as browsers, window managers, con-figuration managers, and task managers. In a sense, environments haveevolved in concert with the software engineering community's understand-ing of the tasks involved in the development of software systems.To better understand the technological trends that have produced state-of-the-art environments, we here present a taxonomy of these trends. We citeexamples of research and commercial systems within each class. We intendthe taxonomy to show the description of the trends and to suggest wheremore work needs to be done.2OverviewThe taxonomy comprises four categories,each representing trends havingasignificant impact on environments—on their tools, user interfaces, and ar-chitectures. The four categories are:■ Language-centered environmentsThese are built around one language, thereby providing a tool set suited tothat language. These environments are highly interactive and offer limitedsupport for programming-in-the-large.■ Structure-oriented environmentsThese incorporate techniques that allow the user to manipulate structuresdirectly. The language independence of the techniques led to the notion ofgenerators for environments.■ Toolkit environmentsThese provide a collection of tools that includes language-independent sup-port for programming-in-the-large tasks such as configuration manage-ment and version control.Thereis little, if any,environment-definedcontroland management of tool usage.■ Method-based environmentsThese incorporate support for a broad range of activities in the software de-velopment process, including tasks such as team and project management(programming-in-the-many).These environments also incorporate toolsforparticular specification and design methodsWe could discuss the trends from several perspectives. For example, wecould take a tool builder's perspective, focusing on techniques for tool inte-gration. We could take an expert system builder's perspective, focusing onthe automation of the software development process by means of a pro-grammer's assistant that uses knowledge-based concepts. However, we dis-cuss the trends from the user's perspective; that is, we examine how thetrends affect the user's perception of, and interaction with, an environment.User requirements for environments cover a broad spectrum. The function-ality of environments includes support for a single user for programming-in-the-small, coordination and management of multiple users for program-ming-in-the-large, and management of the software development cycle.The nature of the user interface is of considerable importance. Undoubted-ly, the user of an environment needs to be able to


View Full Document
Download Overview of Software Development Environments
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Overview of Software Development Environments and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Overview of Software Development Environments 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?