Technological Advances In Software Engineering-Books Download

Technological Advances in Software Engineering
04 Feb 2020 | 29 views | 0 downloads | 9 Pages | 1.00 MB

Share Pdf : Technological Advances In Software Engineering

Download and Preview : Technological Advances In Software Engineering


Report CopyRight/DMCA Form For : Technological Advances In Software Engineering



Transcription

software engineering is the means and methods that are applied to For software there are some general criteria that distinguish a. the creation of software and not the substance of the software good design from a poor one and some specific criteria that. product A peculiar aspect of software engineering however is the depend on the specific nature of the software product To begin. fact that these means and methods are largely expressed in terms with the latter a banking system requires absolute accuracy of the. of software Translated back to the example above this state of numbers it moves around while an electronic mailsystem can. affairs would correspond to a situation in which the mechanical tolerate an occasional misspelling in the text of a message and if it. engineer would choose to provide another bridge instead of a is smart even in the address part of a message Another example is. floating crane as the tool that would enable the civil engineer to the rigid response time requirement for a realtime system versus the. build his bridge The result is a recursive relationship where the tolerance of modest compile time delays for a timesharing system. tool to achieve the desired goal the bridge that replaces the. floating crane is of the same nature as the ultimate goal the bridge Software engineering is particularly concerned with the general. to be built by the civil engineer An interesting consequence of this criteria that determine the quality of a design and of the resulting. software product Criteria frequently discussed in the literature are. recursive relationship between tool and goal is that the means and. methods invented for achieving the goal the creation of software Correctness the correspondence of specification design. are also applicable to the tools designed for achieving that goal the and implementation. software that supports the development of software. Reliability the ability to reproduce a result, Engineering skills can often be judged by the quality of the. resulting product This is true for all forms of engineering be it Performance the ability to respond within tolerable time limits. mechanical electrical or software engineering Examples of high without excessive demands on storage capacity. and poor quality are known to all of us What to say for instance of. Adaptability the ability to modify software to take advantage. a text formatting program that allows the title of a section to go on. of hardware improvements or to respond to, the last line of a page while the text starts on the next page. changing application requirements, Another example is the coin box of my car that is not wide enough. for my hand but too deep for my thumb It is not so easy to move a Extensibility the ability to extend the functionality of a system. coin forward with one or two fingers and then catch it with your. Friendliness the ability to interact with the user in terms of. thumb A particularly nasty example of poor engineering used to be. understandable messages while not requiring, in the electronic mail system at CMU when it was first introduced. irrelevant precision of user input, The sender of a message was not notified of a misspelling in the.
address part until after invoking the send command Instead of Reusability the use of parts of a system in the design and. returning the undeliverable message the mail system discarded the implementation of another system. message and forced the sender to retype the entire text Another. Fault Tolerance the protection of information integrity against. example of questionable engineering is the operating system that. hardware or power failure, does not let you get out when you type logoff but reacts with an. error message that says Type Iogout to log off Robustness the protection of information integrity against. unintentional user mistakes and malicious u er, Compilers are also notorious for the poor quality of error analysis. and error reporting Many compilers get confused after the. detection of the first error and produce long lists of spurious Privacy Security the protection of information against. messages because of failing to distinguish internally between a unauthorized access and against the effects of. correct and an erroneous program state An error detection that modification in someone else s data. makes sense in the correct state may be irrelevant in the erroneous. The most important principle developed in the fields of software. state in which preceding errors were found, engineering and programming languages is that of modularity. Fartieularly frustrating are cryptic messages for which no further based on data encapsulation and data abstraction The modularity. information is obtainable When I switched to a new operating concept allows us to control the interface to objects of a particular. system environment the system told me that I was using an type by showing the specifications of basic operations that apply to. outdated version and that I lacked the benefit of some substantial these objects while hiding the particular implementation Data. system improvements It did not tell me however how I could get encapsulation restricts all access to objects to the basic operations. access to this improved version and obvious procedures such as defined in the interface while data abstraction hides the internal. editing my Iogin file did not work Another frustrating example was object structure in addition to hiding the implementation of these. my first encounter with an Ada compiler that claimed to provide a basic operations This form of modularity localizes the effect of. friendly user interface Part of the program I had written was implementation modifications which greatly enhances the quality of. the software product along many of the criteria listed above. with text io use text io, package body HELLO is The purpose of this section has been to present a global image of. software engineering and its major concerns This presentation. procedu re sayhello is sets the tone for a brief characterization of software engineering s. print hello there newline history and for a discussion of its current highlights and its future. end sayhello development, end HELLO 3 The Evolution of S o f t w a r e Engineering.
The foundation for software engineering was laid in the sixties. The compiler indicated the print line as erroneous listed an with the invention and formulation of basic concepts in. obscure number of five digits and announced that the result type programming languages and operating systems The design of. did not match the type of a library subprogram It seems rather FORTRAN which introduced the concept of procedural abstraction. difficult to derive the actual mistake which is the spelling of was soon followed by the design of Algol60 which introduced a. new line as newline from the text of the given error message wealth of new concepts including data types parameter evaluation. modes recursive procedures static and dynamic scopes dynamic Lu79 that can handle small to medium size programs but not large. data objects and a formal description of language syntax Later in systems consisting of many components that are not always. the decade SIMULA67 introduced the concept of object oriented collectively available. programming through classes and subclasses while Algol68 and. The state of the art in program verification at the end of the last. Pascal introduced user defined data types reference variables and. decade was one of the causes for another change in the direction. disjunctive type structures Much of the engineering during this. of software engineering leading to the exploration of software. period was concerned with the optimization of parsing and code. development tools and environments Two other causes were the. generation and with the efficient use of hardware resources in. ana lytic approach to improving the software production process. timesharing operating systems, and the labor intensive implementation of life cycle support The. Around 1970 the focus of attention shifted from basic concepts in analytic approach blocked further progress because of the tacit. languages and systems and their implementation to the assumption that the software production process was basically well. construction of systems out of program modules Programmers organized and needed only further local optimization The labor. became more ambitious and wanted to construct systems that were intensive approach to life cycle support puts system development. hard to express in a single program At this point in time the need and project management entirely in the hands of people with little. arose for programming in the large which concerns itself with or no support from software technology In the next section we. program interface specifications the modification process of discuss the resulting events of the present that are characterized by. program modules in the context of an evolving system and the a mechanization ot life cycle support into integrated programming. interaction between programmers in the context of a software environments. production project This development had the effect that software. 4 Programming environments, engineering shifted its focus from the construction of individual. A programming environment is a software system that supports. programs to the process that controls the creation of software. the development and maintenance of software products The term. programming environment does not refer so much to the activity. The transition from pure programming in the small to the more of writing programs but more to the manipulation of programs for. ambitious programming in the large is viewed by many as the the pwpose of system generation configuration and version. actual birth of software engineering The distinction between these control project management and documentation Althougl the. two forms of programming was clearly stated for the first time in a term system development environment is actually more. seminal paper by DeRemer and Kron DK76 Some of the most appropriate in this context we will stay with tradition and stick to. important initial results of software engineering were the modularity the widely used term programming environment to denote. concept and Parnas hiding principle Pa72 Other constructive systems that support the entire spectrum of activities involving. work in software engineering of that period included the design of software production The goal is for programming environments to. system version control and configuration management support the entire life cycle and not just the programming fraction. mechanisms In addition a substantial effort was put into of lhe cycle. measurements of performance and productivity as well as into. models for controlling the software life cycle which includes the Traditional programming environments lack some properties that. production process from inception and specification to seem very desirable in modern programming environments These. implementation and successive releases The waterfall model is the properties are tool integration and uniformity of the user interface. best known among the various models proposed for life cycle Tools are integrated when they possess common knowledge that. management Le80 can be applied in each tool This common knowledge often takes. the form of shared data formats or of information stored in a. An alternative approach to controlling the complexity of large common database An example of tool integration is the. software systems is taken by the founders of a programming combination of editor compiler and debugger that all operate on a. methodology Their activities give rise to the concept of structured common syntax tree The editor shares syntactic knowledge with. programming Di76 and to various approaches to program the compiler and is able to enforce the syntax rules while a program. verification Structured programming is in fact a philosophy based is being written The debugger shares program structure. on the limitations of human beings in dealing witt the substance of knowledge with the compiler and is able to translate problems back. programs It builds on our strengths rather than our weaknesses into source representation through the common database Tool. by promoting the utilization of three of our abilities in dealing with integration is of great help to create environments that are more. algorithms enumeration induction and abstraction Enumeration specifically task oriented than the traditional general purpose. allows us to distinguish between an overseeable number of cases environments which are still most common today. induction allows us to make use of iteration and recursion. abstraclion allows us to ignore details at proper moments and to Tool integration is almost totally lacking in the traditional. programming environment Tools such as the text editor the. reduce complexity by viewing collections of objects as atomic units. compiler the linking loader ned the debugger share at best some. Program verification has been put on a solid basis in the last knowledge of the underlying file system No information is shared. decade The axiomatic approach is particularly suitable for proving however about data formats or data values and no information is. the correclness of programs based on their control structure exchanged through a common database All communication. Algebraic verification is particularly well suited for demonstrating between traditional tools takes place through input output while. the completeness and consistency of a collection of operations correctness of the representation is entirely in the eye of the. defined for an encapsulated data structure The method of a beholder not in the toolt A text file is a Pascal program for. denotational description of the semantics is particularly suitable for instance because the author believes it is one not because the text. showing the consistency of a language design and for expressing editor checked that it really is. the meaning and interpretation of language constructs. Uniformity of the interlace is obtained by using the same. Although program verification is well understood a major command formats and parameter conventions for all tools In. drawback of the state of the art is our inability to apply the various modern programming environments uniformity of the interface is. methods to large systems The attempts in that direction have obtained by default through the general editing environment that. resulted in some interesting interactive verification systems Go75 controls all interactions between user and programming. environment This arrangement has the additional advantage that particular system design methodology These environments. the user may not always have to know which tool is being applied provide support tools for designing software according to certain. Traditional environments often do not provide a uniform interface rules that are based on a ottware development philosophy. Users have to remember for each tool a particular command syntax Popular methodologies primarily used in i dustry are those by. a parameter convention and the interpretation of various switches Jackson Ja75 and Yourdon Yo75 An environment based on a. In contrast to the traditional environment uniformity of the interface specification methodology is HOS HZ83. matches well with the image of a task oriented programming. The first category is distinct from the other three in that each. environment that provides a collection of cooperating tools. member of that category provides a single language environment. designed to assist a user in various complementary subtasks of a. and supports only that specific language Another typical. characteristic of this category is that its members are by and large. Programming environments can be categorized by the basic single user environments in contrast to the e vironments in the. philosophy underlying their design We distinguish four categories other categories that are more oriented towards team work A. A first category consists of the language extension environments common characteristic of the first second and fourth categories is. The design of these environments starts out with a particular that their products are all handcrafted and are therefore fairly hard. programming language Making a programming language the to modify It is relatively difficult to adapt these environments to the. cornerstone of your design leads naturally to environments that specific wishes of their users Task oriented environments which. emphasize programming in the small but don t support form the third category escape this limitation by the generic. programming in the large Examples ot language environments approach that early on has been recognized by their designers as. that have that characteristic are Interlisp Te781 Smalltalk Go83 being crucial to satisfying the need for constructing many variations. and Gnome for Pascal Ga84 Several designers of language of a task oriented environment An additional advantage of the. extension environments realized soo enough th t tealing with generic approach is that a particular software design philosophy. modular interfaces version control con iguration management does not have to be hardwired into the environment as it has to in. etc is often more intricate than writing programs Since the environments of all three other categories Further discussion. programming languages provide little or no support for daaling will of the generic approach follows when the topics of reusability and. system building issues the natural slep is to extend the language automation are addressed. environment with a collection of tools for programming in the large Programming environments for software development serve three. Exarnples of language environments of this kind are Cedar for main purposes. Mesa Sw85 Lillith for Modula2 tWiSt Toolpack for FORTRAN. Os83 APSE for Ada Bu80 and the Gandalf Prototype for C to support the programming task. to control the system construction task, A second category of programming environments is the group of. life cycle support systems These systems focus primarily on to assist in project management. system version control and or project management Emphasis of. these systems is on documentation of the specifications of the Environments of the programming language extension category. modifications and of the development history Features frequently initially provide most of their support for the programming task. added are automatic recompilation access control and which corresponds to programming in the small In terms of. propagation of changes Most of the systems in this category are programmers and program modules one might characterize the. built as an extension of an available file or database system Some programming task as one to one the individual programmer is. examples of such environments are CADES Sn80 PWB Do77 working on a single program at a time. and DSEE Le84, Environments of the life cycle category tend to stress the system. A third category of programming environments is the class of construction task leaving the support of the programming task to. task oriented environments In this category emphasis is on the the traditional too s such as text editor compiler debugger and file. integration of tools to assist the users in performing a specific task system The sy tem construction task is commonly viewed as. The idea of integration is tightly connected to the useful idea of programming in the large This is the one to many situation where. putting knowledge about the task to be performed in the tools and an individual programmer assembles a version of his program. in the programming environment The origin of this category of module with modules written by other programmers into a system. environments is in the concept of syntax directed editors which version. later evolved into structure editors The first system of this kind is. the Emily system Ha71 The idea of tool integration starting with Project management adds a new dimension to the software. editors was later extended to other tools such as interpreters development process often labeled programming in the many. debuggers and documentation support A major breakthrough in The purpose of project management is to control the interaction of. this area was the partial automation of generating these programmers and their rights to access and modify programs. environments This addition is so important because the desire to Project management facilities enforce design and development. build task specific environments creates the need for a large rules but also provide information on current status development. number of slightly different programming environments The task history and future goals Project management is poorly supported. orientation makes sense only if specific environments can be by most programming environments The environments of the. generated fairly easily It would not work if every task oriented software development and methodology categories may support. environment had to be constructed from scratch and took an project status information but are usually not designed to enforce a. amount of time comparable to that of writing a handcrafted set of coherent project management rules This form of control is. compiler Some well known environments in this category are the generally left to costly human labor The category of task oriented. Program Synthesizer Te81 RT84 the Gandalf System Ha83 environment is the most promising with respect to supporting. No85 Mentor DOS0 Ka82 POE Fi84 SYNED Ga83 and project management because of its generic approach which allows. PECAN IRe84 the implementation of a variety of policies that can serve specific. needs The task of project management puts us in the many to. A fourth category is formed by environments that support a many situation where the main issue is to control the actions of. programmers who work together on program modules in various task of the SEI is to make existing advanced technology ready for. states of completion transition into the user environment The SEI plans to do this. The work on programming environments is a constructive through building prototype and demonstration systems and by. response to the challenge of solving the software production providing training services An industrial affiliates program has. problem The development started out with environments that been established for the purpose of sharing the SErs expertise with. provided useful tools to support various programming tasks The DoD contractors and organizing joint projects It is the intention. current state of the art of generating programming environments is that industry will turn the SEI s prototypes into useful marketable. able to handle the syntactic issues of structure formatting and products. representation and also the semantic issues of static consistency The SEI has produced a one and five year plan that describes the. runtime support and dynamic modifications Re82 Ka85 spectrum of activities in the software engineering field that is of. We are at a stage where environments can be built that have more immediate relevance to its mission The plans call for six areas of. the character of an assistant than of a tool box These interest addressing both the software production process and the. environments provide an integrated set of task oriented tools that resulting product The six areas are. complement the work of the people involved in software Technology Identification and Assessment. production Another useful task these assistant type environments find promising advanced technology that is. can perform is to enforce desirable project management rules and ready for transition. maintain a development history The future is in environments that. show intelligent behavior In addition to maintaining correctness of The Nature of the Transition Process. a software product during all stages of its development such find ways to make new technology attractive. environments are designed to make value judgements about the and viable for the production environment. quality of the product and its components These future. Education design with universities and industry software. environments will display knowledge about the software production. engineering course material at the master, process similar to what has already been accomplished today by degree level.
designers of special purpose expert systems,Reusability and Automation. 5 The S o f t w a r e Engineering Institute, build software as a variation of existing software. Reports published in the literature and presented at conferences. rather than from scratch, show that there are serious problems in the software production. process which have a negative effect on the resulting software System Construction and Evolution. product Part of the problem is caused by the difficulty of changing integrated environments that support the. the process to make use of modern technology Although new software development and maintenance. equipment and new tools exist it is often hard to change process. established methods and hard to integrate new methods into an. Reasoning about Software,existing organization,quality and performance control of the software. Rethinking the way large software systems are produced and. maintained has been of great concern to the Office of the Under Work in these areas is organized in the form of projects that. Secretary of Defense for Research and Engineering OUSDRE concentrate on topics such as the evaluation of existing Ada. This office has undertaken a major effort to alleviate software environments the legal issues of software licensing and general. related problems in the military directly by standardization of software development tools Intermediate results of the projects. proven tools and techniques and indirectly by stimulating research are presented and demonstrated regularly at open house meetings. and development of software engineering techniques OUSDRE to which representatives of DoD contractors government agencies. has eslablished a special program for this purpose known as the and universities are invited One of the projects takes the form of a. Software Initiative This program has three major components series of workshops in which a gradually increasing number of. the Ada Joint Program Office AJPO the STARS program attendees discuss the issues of software production A summary of. Software Technology for Adaptable Reliable Systems not to be these discussions will be available as an SEI tech report in the. confused with the Strategic Defense Initiative commonly known as summer of 1986. Starwars and the Software Engineering Institute The task of the. 6 Reusability and Automation, AJPO is to promote the use of the new Ada rM language and.
encourage the development of Ada related tools and standards Programming environments software metrics and software. The STARS program consists of six task forces that prepare engineering methodologies are helpful but not enough to bring. requests for proposals in a variety of areas such as software about an order of magnitude improvement in the quality of our. engineering environments development methodologies business software products and in the predictability of the production cost. applications software metrics etc and effort Constructive and analytic techniques are both valuable. and should be further pursued to facilitate the software production. The Software Engineering Institute SEI was established at process However one must expect no more than a gradual. Carnegie Mellon University in December 1984 The Institute is one improvement from applying these techniques because none of. of four institutes in the university structure and has the status of a them necessarily changes the software production process itself. college It is planned to grow to 250 technical people over a period. of five years As of November 1985 the Institute has just over It seems that a major problem in software production is the fact. seventy employees that most software is written from scratch The reasons why this is. common practice are threefold, The purpose of the SEI is to accelerate technology transition in. order to improve the software production process and its resulting programs are hard to read. products Ba85 The plans call for close interaction with the DoD. and its software suppliers on the one hand and with the research. laboratories in industry and academia on the other hand The main 1Adais a registeredtrademarkof the US Government. programs are strongly tied to their context Reuse of software is at this point in time our best hope for. improving the software production process and its resulting. information on existence of programs is often hard to product It has the potential of reducing the cost and effort of the. get process and it has a good chance of increasing reliability through. incremental modifications of programs of proven quality However. the preceding discussion shows that the term reusability must not. The f cf hat the meaning of a program is hard to derive from the be given the narrow interpretation of reusing existing programs. source code gives programmers the feeling that one might as well without change In fact reusability spans a spectrum of. write the rogram from scratch instead of trying to understand the applications that each makes sense in a particular context. designer s reasoning behind an existing program text Although. Two direct applications of reusability are the use of program. des dp ivt document dion is of some help its two major drawbacks. libraries and of shared code The best example of reused program. are its separation hem the source text and its lack of rules that. libraries is that of mathematical subroutines The IEEE Society has. guarantee uniformily and completeness Formal specifications are. done us a good service by standardizing a set of mathematical. in fact far more ho pful for an accurate description of what a. routines including specifications of input output precision It. program does but 3re generally even harder to understand than. would be extremely helpful if similar standard packages were. tl e source text A possible solution to this problem is to agree on a designed and maintained for string processing window. functional description of programs that does not describe in detail management and namespace management The Ada language. what a program does but describes the data structures it uses the made a useful contribution by including in the language a standard. input values it accepts and the output values it produces He78. package for file handling and for text I O, After going through the effort of understanding someone else s Users of timesharing operating systems are very familiar with the. program good intentions are often rewarded with disappointment idea of sharing code Their programs routinely use common. becc use of the program s dependency on the runtime environment operating system facilities for file handling input output and. Even if a program is designed to run on a popular operating system memory management It is in this context immaterial whether or not. such as UNIXrM2 the programmer who wants to make use of it in. executable versions of code are shared Even if programs each use. his environment will discover that the Program does not run their own copy of a common program the fact that counts is that. because of incompatible peripheral equipment or local operating the utility program was not written by the user but taken as is from. system extensions Context dependencies are often hard to detect. an available pool, because documentation on these matters is rarely provided A. programming language such as Ada may alleviate this problem Practice has shown that reusability through code sharing is. because of its precise description of package dependencies greatly facilitated by eliminating the context dependency factor. Explicit description of a program s dependency on other programs This can be done in one of two ways either by writing a program. is strongly recommended over implicit dependencies that are that is independent of its context this is basically t h e Ada. generated by deep nesting of scopes and by an excessive use of Language approach or by having the various users work in the. global objects same context so that context dependencies are irrelevant. Although the latter seems to be a cop out its usefulness has been. It is often very hard to find out which programs written by other. firmly established by the success of the UNIX operating system. peopJe can be used again Many programs are designed as system. The reason why many companies are interested in standardizing on. modules and are bu ied deep down in a system description Names. of program modules often make little sense outside of the system UNIX as universities basically have done over the last decade is to. context while the purpo e of a program usually is described in capitalize on the available software that runs on UNIX while. relation to the modules it interacts with instead of in terms of its own avoiding the problems o having to translate and rewrite existing. independent functionality The result is that a design always seems programs to run on different operating systems. unnecessarily complicated to an outsider This phenomenon The Aria language provides another form of reusability through. causes the outsider to think that he could have done a better job type abstraction Ad83 Generic packages can be written in Ada. than the designer of the existing program This lack of coTffidence that specify the traversal and updating operations on data. in your fellow programmer is a major cause of unnecessary structures while leaving the element type unspecified This facility. duplication of effort supports the concept of reusability by allowing a programmer to. The problem of acquiring information about the existence of define the details of a data structure once and for all independent. programs is solved in part by encouraging the pote tial user to try of what type of objects will be stored in that structure A generic. harder to find out what is available and how it is used However package for queues for instance can be instantiated for messages. this is not a reasonable proposition witttout counting on substantial for jobs for arrival and departure schedules etc. help from the original designer The onty way that one can Other practical forms of reusability are through specification and. realistically hope that people will try to reuse software is to demand through common design An example of the former is contained in. that designers of original programs take reusability into account the large volume of literature on data structures e g Kn73J in. from the start If reusability is adopted as an original design which sorting algorithms take much of the limelight The algorithms. objective one may expect a program documentation style to dealing with the manipulation of these structures are specified. emerge that clearly explains a program s independent functionality independent of a particular programming language but in sufficient. its intended use and its dependency on its context detail to be implemented in any language Examples of common. design are found in the literature on operating systems Ha76 and. A programming environment can play an importan role in making compilers Ah77 Memory management and parsing techniques. software reusable It can provide tacilities that allow users to are the typical examples of common design that is applied in many. browse through libraries that describe existing programs and their operating systems and compilers Although this form of reusability. usage The better programming environment will provide in has the drawback of requiring implementation it has the great. addition an engineering environment that is used for transforming. an existing program into one needed for a specific application or. for deriving a specific program from a general description. 2UNIXis a trademarkof Bell Laboratories, advantage of building on a conceptual basis that can be taught in The use of these descriptions is best illustrated by an example. the classroom Suppose the target system is an electronic mail system Typical. objects in a maitsystem are messages mailboxes and bulletin. Reusability can be greatly enhanced by automation of the. boards The common facilities provide general operations for. program generation process Automation in this context means. creating deleting and browsing through objects in the target. using tools that translate a precise program specification into a. system Specific are the structtr es of messages mailboxes and. program form for which a compiler or interpreter exists The. bulletin boards A message for instance is composed of more. automation tools are commonly known as generator programs or. primitive objects such as a date an address and a text The. generators for short The input of a generator is a program. description and its output is a program in a programming language abstract syntax describes lhis logical tructure of messages as it. or in some other form that can be translated into machine code also dee 3 for maUboxes and bulletin boards The concrete syntax. The target of a generator might for example be intermediate code describes the outpul format of these objects in order that the user. as generated by the front end of a compiler This intermediate carl read messages and see mailboxes and bulleth boards The. code is then translated into machine code by the code generator runtime support description defines how the specilic objects use. part of a compilsr Ca80 The idea of a generator was first the common facilities such as memor3t or output wiudc ws what. proposed for compilers in the form of a compiler compiler Br62 upd0tir g is needed when objects are created or deleted and what. kind of consistency rules or access control applies to the objects in. Reusability and automation can be very effective when applied to the target system. the design of a family of systems that have a large part in common. Examples of such families are database management systems Reusability may even apply to the system specific part It is not. compilers and programming environments The kind of facilities uncomrnon that system family members provide just slightly. which members of a system family typically have in common are the different operations on the objects in the target system This. facilities for database or file management for input output and for commonality can be captured in a library of specific facilities. maintaining the user interface available to the designer for copying or slight modification This. idea has been successfully applied in the design of many task. oriented programming environments that were mentioned earlier. rile common facilities are basically used unchanged by all. members of a system family Slight differences may be expressed Automation of the abstract and concrete syntax is not difficult to. iJ parameters or system generation switches The additional achieve since designing formalisms for the description of syntax. system specific part however is what distinguishes one family has been well understood for more than two decades Automation. member from another Here automation comes into play program of the runtime support however is far more difficult because most. generators translate a designer s description that is written in a of the runtime support consists of active procedures that play the. predefined formalism into a collection of compilable or role of watchdogs for the objects they are attached to Writing. interpretable programs and data A scheme for generating runtime support in a traditional programming language is an. systems is depicted below acceptable alternative if automation is lacking because it still. requires only a small part of the code to be written from scratch Of. course if automation of the runtime support is not achievable the. existence of a library of standard runtime support routines becomes. Description all the more important,of System 7 Conclusion.
The main objective of software engineering is to help produce. 1 Programs f o r,t h e System, high quality software systems within reasonable bounds of time and. cost The major factors that determine the quality of a software. Specific Part product in addition to its desired functionality are reliability. J performance flexibility and friendliness of the user interface. I Program ttnker J System Software engineering is right now facing the challenge of solving. Generators the serious problems encountered in the software production. Conmlon process which lead to cost and time overruns and products that are. Facilities lacking in many of the quality factors, Tools most frequently used for improving the software production. process are program measurement and software development. The designer describes the specific behavior of the target system support tools Measurement tools are helpful in finding the. by defining the objects that the user will be able to create bottlenecks in the existing software production methodology. manipulate and delete in that target system The designer s Support tools are helpful in alleviating the task of the people. description consists of three parts involved the production process Both kinds of tools help to make. the abstract syntax the production process more effective and more reliable The. describing the logical structure of the objects in original design of isolated support tools is gradually being replaced. the target system and how they are composed by integrated programming environments that behave more as. intelligent assistants than as toolboxes,the concrete syntax. describing the representation of objects in the Measurements and support tools are designed to correct flaws in. target system in user readable form an existing methodology but do not address the more fundamental. the runtime support question of methodology itself There is a general feeling Ihat. describing the actions that must be taken at current practices are inadequate and will become more so in the. runtime for purposes such as checking near future to satisfy the growing demand for reliable soltware that. semantics resource allocation or project is produced on time and within budget The basic flaw of the. management current process are its labor intensive approach to project. z L C Z L L iJ W, management and product development and its propensity for Fi84 Fischer C N et al. programming from scratch The POE Language Based Editor Project. It seems that a significant improvement can be achieved if we can Proceedings of the SIGSOFT SIGPLAN Software. produce reusable software and automate the generation of new Engineering Symposium on Practical Software. software Success in the area of reusability may reduce the Development Environments April 1984. production of new software to a fraction of what is commonly. written today while automation has the potential of simplifying the Ga83 Gansner E R et al. production process with an additional gain in reliability A Language Based Editor for an Interactive. Programming Environment, Reusability has no chance of being successful unless taken into Proceedings IEEE Compcon83 San Francisco Calif.
account as a major design objective from the start A major February 198 3. obstacle to overcome is the problem of information dissemination. With current software production practices it is extremely difficult Ga84 Garlan David and P Miller. to find out what is available and how things work Time is ripe for a GNOME An Introductory Programming Environment. major effort to define the concept of reusable software precisely Based on a Family of Structure Editors. and to develop techniques for creating reusable software Proceedings of the ACM SIGSOFT SIGPLAN Software. Engineering Symposium on Practical Software, Refe r e n c e s Development Environments April 1984. Ad83 Reference Manual for the Ada Programming Language Go75 Good D I R L London W W Blesdoe. United States Department of Defense January 1983 An Interactive Program Verification System. Sigplan Notices June 1975,Ah77 Aho A V and J UIIman. Principles of Compiler Design Go83 Goldberg A and D Robson. Addison Wesley 1977 Smalltalk 80 The Language and its Implementation. Addison Wesley Reading Mass 1983,Ba85 Barbacci M R A N Habermann M Shaw. The Software Engineering Institute Bridging Practice Ha71 Hansen W J. and Potential Creation of Hierarchic Text with a Computer Display. IEEE Software 2 6 November 1975 Ph D Thesis Stanford Univeristy June 1971. Br62 Brooker R A and D Morris Ha76 Habermann A N, A General Translation Program for Phrase Structure Introduction to Operating System Design. Languages Science Research Associates Inc Chicago Pelo Alto. Journal of the ACM 9 pp 1 10 1962 Toronto 1976, Bu80 Buxton J N Ha83 Habermann A Nico and D Notkin.
Requirements for Ada Programming Support The Gandalf Software Development Environment. Environments Stoneman Proceedings of the Second International Symposium on. US Government Department of Defense February Computation and Information Monterrey Mexico. 1980 September 1983, Ca80 Cattell R G G He78 Heninger J D L Parnas et el. Automatic Derivations of Cede Generators from Software Requirements for the A TE Aircraft. Machine Descriptions Naval Research Lab Washington D C Memo Rep. Transactions on Programming Languages and 3876 November 1978. Systems VoI 2 2 April 1980,HZa3 Hamilton M and S S Zeldin. Di76 Dijkstra E W The Functional Lifecycle Model and Its Automation. A Discipfine of Programming USE IT, Prentice Hall Englewood Cliffs New York 1976 Journal of Systems and Software VoI 3 No 1 March. Dk76 DeRemer F and H Kron, Programming in the LargeVersus Programming in the Ja75 Jackson M. Small Principles of Program Design, EEE Transactions Software Engineering 2 2 June Academic Press 1975.
Ka82 Kahn G et al, Do77 Dolotta T A and R C Haight Metal A Formalism to Specify Formalisms. PWB UNIX Overview and Synopsis of Facilities Technical Report INRIA 1982. Technical Report Bell Laboratories June 1977,Ka85 Kaiser El E. Do80 Donzean Gouge V et el Semantics for Structure Editing Environments. Programming Environments Based on Structure Ph D Dissertation Carnegie Mellon University 1985. Editors the Mentor Experience,INRIA Rapports de Recherche No 26 July 1980. Kn73 Knuth D Te78 Teitelman W et al, The Art of Computer Programming Volume IIh Sorting The Interlisp Reference Manual. and Searching Xerox Palo Alto Research Center Palo Alto Calif. Addison Wesley Reading Mass 1973 1978,Le8O Lehman M M Te81 Teitelbaum T and T Reps.
On Understanding Laws Evolution and Conversation in The Cornell Program Synthesiser A Syntax Directed. the Large Program Life Cycle Programming Environment. The Journal of Systems and Software 1 3 1980 CACM September 1981. Le84 Leblang D B and R P Chase Jr Wi81 Wirth N and R Ohran. Computer Aided Software Engineering in a Distributed Lilith A Personal Computer for Software Engineering. Workstation Environment Proceedings 5th International Conference on Software. Proceedings of the ACM SIGSOFT SIGPLAN Software Engineering San Diego Calif March 1981. Engineering Symposium on Practical Software, Development Environments Pittsburgh Pa April Yo75 Yourdon E. 1984 Techniques of Program Structure and Design,Prentice Hall 1975. Lu79 Luckham D C et al,The Stanford Pascal Verifier User Manual. Stanford University Stanford Calif March 1979,No85 Notkin D S. The GANDALF Project,The Journal of Systems and Software 5 2 May 1985.
os83 Osterweil L J,Toolpack An Experimental Software Development. Environment Research Project,EEE Transactions on Software Engineering. pp 673 685 November 1983,Pa72 Parnas D L, On Criteria to Be Used in Decomposing Systems into. CA CM December 1972,IRe82 Reps T W,Generating Language Base Environments. Ph D Dissertation Cornell University 1982,Re84 Reiss S.
Graphical Program Development with PECAN Program,Development Systems. Proceedings of the ACM SIGSOFT SIGPLAN Software,Engineering Symposium on Practical Software. Development Environments April 1984,RT84 Reps T W and R Teitelbaum. The Synthesizer Generator,Proceedings ACM SIGSOFT Software Engineering. Symposium on Software Development Environments,Pittsburgh Pa April 1984.
Sn80 Snowdon R A,An Experienced Based Assessment of Development. Software Development Tools pp 64 75t,Springer Verlag Berlin Heidelberg New York 1980. Sw85 Sweet R E,The Mesa Programming Environment,Proceedings ACM SIGPLAN85 Symposium on. Language Issues in Programming Environments,Seattle Washington 1985.

Related Books

The Prophylactic Use of Probiotics in the Prevention of ...

The Prophylactic Use of Probiotics in the Prevention of

and to apply evidence-based practice principles in patients with cancer receiving RT to promote positive outcomes. The Prophylactic Use of Probiotics in the Prevention of Radiation Therapy-Induced Diarrhea At a Glance F Radiation therapy (RT) to the abdominal and pelvic region can cause RT enteritis, a gastrointestinal tract inflammatory process that leads to severe diarrhea. F Probiotics such ...

Product-Oriented Entrepreneurial Capstone Experience Workshop

Product Oriented Entrepreneurial Capstone Experience Workshop

Product-Oriented Entrepreneurial Capstone Experience Workshop Introduction Earned value is a tool used by project managers to gauge the performance of the

THE ELEVENTH ICAO AIR SERVICES NEGOTIATION EVENT (ICAN2018)

THE ELEVENTH ICAO AIR SERVICES NEGOTIATION EVENT ICAN2018

THE ELEVENTH ICAO AIR SERVICES NEGOTIATION EVENT (ICAN2018) NAIROBI, KENYA ... 1.1. The meeting will take place at the Kenyatta International Conference Center and the Intercontinental Hotel in Nairobi located within the Central Business District (CBD) 1.2. The Venue details and contacts are: a) Opening Ceremony Venue: Kenyatta International Convention Centre- Amphitheater (KICC) Harambee ...

MATERIAL SAFETY DATA SHEET - ALUMINUM ALLOYS

MATERIAL SAFETY DATA SHEET ALUMINUM ALLOYS

MATERIAL SAFETY DATA SHEET - ALUMINUM ALLOYS SECTION I: CHEMICAL PRODUCT AND COMPANY IDENTIFICATION Product Name: Aluminum Alloys Note: Aluminum alloys in their usual ...

Layer II Security - mikrotikbrasil.com.br

Layer II Security mikrotikbrasil com br

Layer II Security Poland MUM ... Mikrotik since 2006 Mikrotik Certified Trainer since June, 2007 ... (EoIP, IPIP, static PPtP, etc) has MNDP enabled by

Defense Casualty Information Processing System (DCIPS)

Defense Casualty Information Processing System DCIPS

Defense Casualty Information Processing System (DCIPS) Personnel Casualty Reporting (PCR) DCIPS-PCR . User Guide . Hasty Report . Version 2, 15 May 2018 . As the DoD Lead Component for DCIPS: Casualty and Mortuary Affairs Operations Division . The Adjutant General Directorate . U. S. Army Human Resources Command . Fort Knox, Kentucky 40122 . Email: usarmy.knox.hrc.mbx.tagd-dcips@mail.mil ...

Municipal wireless network using mikrotik

Municipal wireless network using mikrotik

Municipal wireless network using mikrotik Prepared by : MatDawamAbas Landasan Teknologi (M) SdnBhd Kuala Lumpur, Malaysia ... Using EoIP for PPoE & Hotspot

THE INTERNATIONAL JOURNAL OF APPLIED FORECASTING

THE INTERNATIONAL JOURNAL OF APPLIED FORECASTING

THE INTERNATIONAL JOURNAL OF APPLIED FORECASTING Winter 2016 Issue 40 THE INTERNATIONAL JOURNAL OF APPLIED FORECASTING 8 Superforecasting: A Review of The New Book 20 Virtues of Simplicity in Forecast Modeling 27 Beyond S&OP to Enterprise-Wide Planning 44 New Ways to Set Sales Quotas 50 Top Ten Strategic Forecasts

Fall 2013 Issue 31 THE INTERNATIONAL JOURNAL OF APPLIED ...

Fall 2013 Issue 31 THE INTERNATIONAL JOURNAL OF APPLIED

THE INTERNATIONAL JOURNAL OF APPLIED FORECASTING 6 Supply Chain Forecasting & Planning: Move On from Microsoft Excel? 14 Forecasting with In-Memory Technology 21 The Future of Financial Market Forecasting 35 Two Important New Books: Demand and Supply Integration and Keeping Up with the Quants 41 Using Process Behaviour Charts to Improve Forecasting 49 New Directions in Managing the Forecasting

BUKU PEDOMAN PROGRAM PENGALAMAN LAPANGAN (PPL) FKIP UNS

BUKU PEDOMAN PROGRAM PENGALAMAN LAPANGAN PPL FKIP UNS

ii KATA PENGANTAR Buku Pedoman Program Pengalaman Lapangan (P PL) ini disusun dengan m aksud agar digunakan sebagai petunjuk pelaksanaan PPL di sekolah ...