Feeding African cities: Hinterland suitability and urban growth in twentieth-century sub-Saharan Africa
In: Economic history of developing regions, Band 39, Heft 3, S. 251-278
ISSN: 2078-0397
23 Ergebnisse
Sortierung:
In: Economic history of developing regions, Band 39, Heft 3, S. 251-278
ISSN: 2078-0397
In: International journal of social sciences: IJSS = Uluslararası sosyal bilimler dergisi : USBD, Band 8, Heft 34, S. 241-255
ISSN: 2548-0685
Poetics includes a poet's individual views on poetry or poetry, as well as a scientific field. In Dîvân literature, the poetics of the poet are not expressed in a precise language. The poet usually deals with information about his poetry and understanding of poetry in his poetry. In this study, the 18th century, which has an important place in classical Turkish literature. The poetics of the poet of the century, Hasan Yâver of Enderun, was tried to be explained by processing it based on ten couplets. First of all, the elements related to the understanding of poetry in Dîvân were identified, and the relevant couplets were registered. The plugged couplets are listed under the relevant items and examined and explained respectively under sub-headings. In each title, first of all, information about the article is given, what the substance means in terms of poetics and how it is the subject of poetry is explained. Finally, the couplet about the article is given with the translation into prose. Keyword: Dîvân Literature, Poetics, Understanding of Poetry, Enderunlu Hasan Yâver
In: Yüzüncü Yıl Üniversitesi Sosyal Bilimler Enstitüsü Dergisi, S. 281-302
In: International journal of academic value studies, Band 3, Heft 17, S. 56-65
ISSN: 2149-8598
Technical Report 2018-08-ECE-137 Technical Report 2002-09-ECE-006 Engineering of Enterprises a Transdisciplinary Activity Murat M. Tanik Ozgur Aktunc John Tanik This technical report is a reissue of a technical report issued September 2002 Department of Electrical and Computer Engineering University of Alabama at Birmingham August 2018 Technkal Report 2002-09-ECE-006 Engineering of Enter·prises A Transdisciplim•ry Activity Murat M. Tanik Ozgur Aktunc John Tanik TECHNICAL REPORT Department of Electrical and Computer Engineering University of Alabama at Birmingham September 2002 ENGINEERING OF ENTERPRISES A TRANSDISCIPLINARY ACTIVITY OVERVIEW Contributed by: Murat M. Tanik, Ozgur Aktunc, and John U. Tanik This module is composed of two parts: Part I surveys and defines Enterprise Engineering in the context of transdiscipline. Part II introduces Internet Enterprise and addresses engineering implementation consider ations. PART I ENTERPRISE ENGINEERING ESSENTIALS 1 INTRODUCTION When Henry Ford rolJed out his first automobile assembly during 1913, he created the archetype of single-discipline enterprise. Ford's adventure was a self-contained and efficient exercise in mechankal engineering. With no competition, no regulatory constraints, and no pressing need for cross-disciplinary partnerships, from design development to process development, all ideas primarily originated from Ford's own engineers. The world is a different place today. Automobiles are complicated hybrids of mechanical, electrical, electronic, chemicaJ, and software components. Modern 4 manufacturers must now pay dose attention to new technological developments in hardware (mechanisms associated with physical world), software (mechanisms associated with computational world), netware (mechanisms associated with communications), and peopleware (mechanisms associated with human element). The changes experienced in the automotive industry exemplify the needs of the ever increasingly complex nature of today's modern enterprise. In other words, the ubiqui tous existence of the ";computing element" forces us to take into account disciplinary notions, ranging from psychology to ecology. In one word, the world is becoming transdisciplinary. In this world of transdisciplinary needs, we need to approach designing of enterprises as engineers, moving away from the traditional ad hoc approach of the past. This module expl ai n~ the changes to be made to current enterprise organization in order to be successful in the networked economy. A brief definition of Enterprise Engineering is given as an introduction, foJJowed by a summary of Enterprise Engineering subtopics, namely modeling, analysis, design, and implementation. In the last section of Part I, the definition of an intelJigent enterprise is made with an emphasis on knowledge management and integration using Extensible Markup Language (XML) technology [1]. 2 DEFINITION The Society for Enterprise Engineering (SEE) defined Enterprise Engineering as ";the body of knowledge, principles, and practices having to do with the analysis, design, implementation and operation of an enterprise" [2]. Enterprise Engineering methods include modeling, cost analysis, simulation, workflow analysis, and bottleneck analysis. 5 In a continually changing and unpredictable competitive environment, the Enterprise Engineer addresses a fundamental challen ge: ";How to design and improve all elements associated with the total enterprise through the use of engineering and analysis methods and tools to more effectively achieve itsgoals and objectives" [3]. Enterpr.ise Engineering has been considered as a disdpline after its establishment in the last decade of the 20th Century. The discipline has a wor]dvicw that is substantial enough to be divided into sub-areas, with a foundation resting on several reference disciplines. In the Enterprise Engineering worldview, the enterprise is viewed as a complex system of processes that can be engineered to accompli sh specific organizational objectives. Enterprise Engineering has used several reference disciplines to develop its methods, technologies, and theories. These reference disciplines can be listed as the following: Industrial Engineering, Systems Engineering, Information Systems, Information Technology, Business Process Reengineeling, Organizational Design, and Human Systems [2]. 2.1 Understanding Enterprise Engineering Like most engineering profession als, Enterprise Engineers work on four main areas: modeling, analyzing, design, and implementation. One important issue facing Enterprise Engi neering is the development of tools and techniques to support the work of analyzing, designing, and imp1ementjng organizational systems. These tools must assist enterprise engineers in the initial transformation of functional, often disjoint, operations into a set of integrated business processes replete with supporting information and control systems [4]. To develop new models of enterprises, the enterprise should be analyzed 6 using process analysis, simulation, activity-based analysis, and other tools. Also an abstract representation of the enterprise and the processes should be modeled in a graphical, textual, or a mathematical representation. The . design issues in Enterprise Engineering consist of developing vision and strategy, integration and improvement of the enterprise, and developing technology solutions. Lastly, implementation deals with the transformation of the entetprise, integration of corporate culture, strategic goals, enterprise processes, and technology. We will take a look at these areas in the fol1owing section: • Enterprise Engineering Modeling (EEM), • Analyzing Enterprises, • Design of Enterprises, and • Implementation. 2.2 Enterprise Engineering Modeling Enterprise Engineering Modeling (EEM) is basically dealing with the abstraction of engineering aspects of enterprises and connecting them to other business systems. The model encompasses engineering organizations' products, processes, projects, and, ultimately, the ";engineered assets" to be operated and managed. EEM coordinates design and deployment of products and assets at the enterprise level. It integrates engineering information across many disciplines, allows engineering and business data to be shared through the combinatjon of enterprise IT (information technology) and engineering IT, and simulates the behavior of intelligent, componentbased models [5). 7 The selection and design of enterprise processes for effective cooperation is a prime objective of Enterprise Engineering. Enterprise models can assist the goal of Enterprise Engineering by helping to represent and analyze the structure of activities and their interactions. Models eliminate the irrelevant details and enable focusing on one or more aspects at a time. Effective models also facilitate the discussions among different stakeholders in the enterprise, helping them to reach agreement on the key fundamentals and to work toward common goals. Also it can be a basis for other models and for different information systems that support the enterprise and the business. The enterprise model will differ according to the perspective of the pers.on creating the model, including the visions of the enterprise, its efficiency, and other various elements. The importance of an enterprise model is that it wm provide a simplified view of the business structure that will act as a basis for communication, improvements, or innovations and define the Information Systems requirements that are \ necessary to support the business. The term business in this context is used as a broad term. The businesses or the activities that can be represented with Enterprise Engineering models do not have to be profit making. For example, it can be a research environment with the properties of an enterprise. Any type of ongoing operation that has or uses resomces and has one or more goals, with positive or negative cash flow, can be referred to as a business [6]. The ideal business model would be a single diagram representing all aspects of a business. However this is impossible for most of businesses. The business processes are so complex that one diagram cannot capture all the information. Instead, a business model is composed of different views, diagrams, objects, and processes: A business 8 model is illustrated with a number of different views, and each captu~cs infmmation about one or more specific aspects of the businesses. Each view consists of a number of diagrams, each of which shows a specific part of the business structure. A diagram can show a ~1ructure (e.g., the organization of the business) or some dynamic collaboration (a number of objects and their interaction to demonstrate a process). Concepts are related in the diagrams through the use of different objects and processes. The objects may be physical such as people, machines, and products or more abstract such as instructions and services. Processes are the functions in the business that consume, refine, or use objects to affect or produce other objects. There are cunently hundreds of modeling tools for enterprises, and many modeling techniques such as Integrated Definition Language (IDEF), Petri-Net, Unified Mode1ing Language (UML), and meta-modeling. Modeling involves a modeling language and the associated modeling tools. Different enterprises may need different modeling tools according to the nature of the enterprise. Before selecting the modeling tool, a detailed analysis should be made to select the most appropriate modeling language and the tool. For the software industry, UML has become the standard modeJjng language [7]. 2.3 Enterprise Analysis The increasing complexity of enterprises has stimulated the development of sophisticated methods and tools for modeling and analysis of today's modern enterprises. Recent advances in information teclu1ology along with significant progress in analytical and computational techniques have facilitated the use of such methods in industry. 9 Applying Enterprise Analysis methods results in a documentation that supports a number of programs, which are as follows: strategic information resource planning, information architecture, technology and services acquisition, systems design and development, and functional process redesign. Most organizations have a wealth of data that can be used to answer the basic questions supporting strategic planning: who, what, where, and bow much. By modeling with these data using an Enterprise Analysis toolset, the enterptise models can be built incrementally and in less time. The most important use of Enterprise Analysis is that it presents the organization's own business, demographic, and workload data in a compelling manner to tell the story. Whether they are used to support programs for acquisitions, information architectures, or systems development, Enterprise Analysis studies are rooted in the business of the organization and thus are easily understood and supported by executive management. 2.4 Enterprise Design The design of an enterprise deaJs with many issues, including development of a vision and a strategy, the establishment of a corporate cu.lture and identity, integration and improvement of the enterprise, and development of technology solutions. Optimization of several perspectives within an enterprise is the objective of Enterprise Design. Examples of enterprise perspectives include quality, cost, efficiency, and agility ,. and management perspectives s uch as motivation, culture, and incentives. For example, consider the efficiency perspective. The modeling task will provide ontologies (i.e., object libraries) that can be used to construct a model of the activities of a process, such as its resource usages, constraints, and time. Based on these models the efficiency 10 perspective will provide tools to design, analyze, and evaluate organizational activities, processes, and structures. These tools will also be capable to represent and model the current status of an enterprise and to analyze and assess potential changes. One issue is wbetber there exists sufficient knowledge of the process of designing and optimizing business activities/processes to incorporate in knowledge-based tools. The main goal of an Enterprise Design application is to deveJ~p a software tool that enables a manager to explore alternative Enterprise Designs that encompass both the stmcture and behavior of the enterprise over extended periods of time. lssues such as motivation, culture, and incentives are explored, along with other relevant parameters such as organizational structure, functions, activity, cost, quality, and information [8]. 3 STRATEGY FORMULATION FORE-BUSINESS Electronic commerce is becoming a growing part of industry and commerce. The speed of technological change is enabling corporations large and small to transact business in a variety of ways. Today, it is routine practice to transact some aspect of business electronically from e-mail to exchanging data via Electronic Data Interchange (EDI), World Wide Web (WWW), and various shades these technologies. Numerous benefits accrue to corporations when they use automated capabilities. In order to maximize such benefits, electronic enterprises must base their efforts on welJdeveloped strategies. In this manner, tbe probability of success is increased many folds. Embarking on electronic commerce or business should never be thought of as the sole quest of the information systems department. The following strategies are a synthesis of II best practices introduced to assist information systems departments to prepare the organization for the information age [9, 1 0]. 3.1 Strategy 1 - Improve Corporate System DeveJopment Skms In addition to developing technical skills, corporations must pay close attention to effective communication, eliminating cross-functional language barriers, and improving inadequate facilities in geographically dispersed systems. 3.2 Strategy 2 -Build a Proactive Infrastructure There must be a constant effort to keep up with technological changes. Frequently, these changes trickle down from the top as a result of various business strategies. For example, top managers may discover that they need video-conferencing capability, and the information technology people are under pressure to deliver it. This kind of approach will put the chief information officer(CIO) in a reactive posture, trying to put out fires as they appear. In putting out such fires, local resources may be used to satisfy higher level needs without any obvious benefits to local managers who may resent this fact and create barriers against success. CIOs should try to get the cooperation of all users in anticipating system needs. If users are not satisfied with an imposed system, they wiiJ try to build their bootleg systems for their own needs. Thus, project needs should be anticipated as far as possible and should be planned to meet both short-term goals of management and yield benefits for the development of the infrastmcture of the corporation in the Jong term. 12 3.3 Strategy 3 - Consolidate Data Centers A corporation embar1dng on developing an e-business system must realize that there do already exist semiautonomous data centers distributed throughout various geographical locations. There may have been a time when such data centers were desirable. Today, e-business demands integrated information systems, and the data centers must be consolidated. An integrated information system is far more effic ient in controlling corporate operations. Obviously, operating fewer facilities, maintaining minimum levels of inventory, and giving better service to customers will bring handsome returns to corporations. During the consolidation process, a number of problems of compatibility and standardization will occm, but tackling such problems is better than having semiautonomous data centers. 3.4 Strategy 4 - Standardize Data Structures As corporations grow, different data processing systems and data centers proliferate, especiaUy in transnational corporations. Consolidating data centers and systems as suggested in strategy 3 may not be sufficient. Corporations need to determine data needed at global levels and standarclize them. Standardization may not be possible for certain applications in an international setting since regulatory accounting of different countries may be a roadblock. However, this should not be taken as a signal for nonstandardization. Standardization will make useful information available throughout the corporation. For example, these days many corporations are adapting XML as part of data stmcture consolidation strategy. XML issues are addressed in the next section with more detail. 13 3.5 Strategy 5 - Accommodate Linkages with Cui-rent Strategic Allies and Provide Expansion for Future Str ategic Alliances Recent developments in globalization and Internet technology are spurring corporations to form sliategic alliances. Automobile manufacturers are, for example, forming alliances to influence prices and qualities of their raw materials and parts purchases. Similar alliances are growing at an accelerated pace in other industries. These alliances are designed to create not only purchasing power but also a variety of other mutual interests, from technological co-operation to joint production. 3.6 Strategy 6 - Globalize Human Resource Accounting As companies centralize their information systems through computerization, a global inventory of human skills should be developed. Frequent human resource problems arjse when Information Systems (IS) personnel focus locally rather than globally. Recmiting of specialists, for example, must be done not with a local perspective but with a global one. This will help eliminate possible redundancies with potential savings. 4 INTELLIGENT ENTERPRISES Enterprises competing in global markets assume complex organizational forms such as supply chain, virtual enterprise, Web-based enterprise, production network, e-business, and e manufacturing. Common traits of these organizations are willingness to cooperate, global distributed product development and manufacturing, and high coordination and communication. These traits have led the trend of transformation from 14 capital intensive to intelligence intensive entetprises [1 1]. Visions of the organization's future e-Business roles as an intelligent enterprise could be formulated as follows [12]: • Transparent - Intelligent enterprises will contain substantial amounts of information on capabilities, capacities, inventories, and plans that can be exchanged between tools, servers, and optimizing agents that will augment capabilities of their human masters. • Timely - Intelligent enterprises will be designed to meet a customer need exactly when the customer wants it. • Tuned - Through collaboration and sharing of knowledge, the intel1igent enterprise wiJl serve customer needs with a mjnimum of wasted effort or assets. 4.1 Knowledge Management and Integration with XML One important challenge for enterprises today is storing and reusing knowledge. For many organizations, up-to-dale knowledge of what is relevant and important to customers distinguishes their offerings. The challenge is to assimilate this rapidly changing knowledge about products and services quickly and distribute it rapidly to leverage it for improved performance and quality service. This means finding all knowledge that is embedded in and accessed through technologies and processes and stored in documents and external repositories and being able to share it quickly with the customers. The capital-based organization needs to transform into bigh-perforrn.ing, processbased, knowledge-based enterprises, characterized by agility, f lexibility, adaptability, and willingness to learn. To overcome the difficulties during the transformation, powetful tools are needed to manage the knowledge within the enterprise and to develop the 15 communication between the company and the customers. The key tool to be used within this process is XML, which will set the standards of communication and wm help to manage the knowledge [13]. To understand how XML will help us managing the knowledge, a def111ition of a knowledge-based business is needed. 4.2 Knowledge-Based Businesses The following six characteristics of knowledge-based business were defined in Davis and Botkin [14]. ~hese characteristics are actually guidelines for businesses to put their information to productive use. 4.2.1 The More You Use Knowledge-Based Offerings, The Smarter They Get This characteristic fits in the customer-defined offerings the companies give. For example, a credit card company can build a system that could understand the buying patterns of a customer that can protect the customer from fraud. A news agency can change the interface of its system to give the type of news that a newspaper or journal requests. Knowledge-based systems not only get smcuter but also enable their users to learn. For example, General Motors' computer-aided maintenance system not only helps novice mechanics to repair automobiles but also helps expe1t mechanics to refine their knowledge. As the technology advances, the amount of information that a mechanic needs to know expands rapidly. With tllis system a mechanic can leverage the knowledge of all mechanics using the system. As a result, the system continually improves, as does the service quality. 16 4.2.2 Knowledge-Based Products And Services Adjust To Changing Circumstances When knowledge is built into a product, the product may adjust itself in a smart manner to changing conditions. For example, a glass window that may reflect or transmit sunlight according to temperature is such a product. Producing tbese producl:s will not only be marketed well but also have important economical advantages. Tbe smart pr~ducts will guide their users as well. 4.2.3 Knowledge-Based Businesses Can Customize l1teir Offerings Knowledge-based products and servkes can determine customers' changing paltems, idiosyncrasies, and specific needs. For example, a smart telephony system can understand which language will be used on specific num bers~ also by using the voice recognition system, the need for telephone credit cards can be diminished. 4.2.4 Knowledge-Based Products A11d Services Have Relatively Short Life Cycles Many knowledge-based products have short life cycles, because they depend on the existing market conditions; their viability is short-lived. For example, the foreign exchange advisory services offered by a commercial bank are highly specialized and customized for corporate clients. Such services should be constantly upgraded to keep the profits and the proprietary edge. 4.2.5 Knowledge-Based Businesses Enable Customers To Act In Real Time Information becomes more valuable when it can be acted on constantly. A system that will deliver the tour book information while you are driving the car will have a great 17 value. An interactivity. added to the system will make the product's value even higher. Knowledge-based products can also act in real time. For example, a copier machine that calJs the maintenance provider when an error occurs wiJJ have a great value in this sense. 4.3 XML's Role in Business Applications The smallest cluster of knowledge is data. These are basic building blocks of information that come in four particular forms: numbers, words, sounds, and images. Manipulation of the data determines its value. The arrangement of data into meaningful patterns is information. For example, numbers can be arranged in tables, which is information; a series of sounds, which is music, can also be considered as information. Today, an important challenge for Internet-based businesses is using the information efficiently and in a productive way that will upgrade the information to knowledge. Thus, we say that knowledge is the application and productive use of information. The shift from the information to knowledge age will be via technology. The new enabling technologies of software development such as XML, J2EE, and Visual Studio are forcing e-businesses to build knowledge-based businesses. Here we will explain the most important enabling technology, XML, within the development of e~businesses. XML can be used effecti~ely for exchanging of business documents and information over the Internet. XML is a standard language that simultaneously presents content for display on the Intemet and describes the content so that other software can understand and use the data. Therefore XML can be a medium through which any business application can share documents, transactions, and workload with any other 18 business application [15]. In other words, XML can become the common language of ebusi. ness and knowledge management. One impmtant property of XML is providing .information about the meaning of the data. Thus, an XML-Jonnatted document could trigger a software application at a receiving company to launch an activity such as shipment loading. But to provide that level of data integration, trading partners would have to agree on definiti ons for the various types of documents as well as standard ways of doing business. In addition to facilitating e-commerce, having common defini tions and uses for data also enable an enterprise to better leverage the .knowledge ctmenrly stored in information silos. XML supports the searching and browsing of such information sHos [16]. It structures documents for granularity, such as alJowing access to sections within documents and fine-tuning retrieval Also, it annotates documents, which enables users to not restrict themselves to what is in the document. XML organizes documents by classifying documents into groups and supports browsing them. AdditionaiJy, it has Hyper Text Markup Language (HTML)-like linking options that help the information users to find the documents they arc seeking. Fig. I shows the tools that are common in the organization of information through XML. XML is the next evolution in knowledge management, and organizations are beginning to understand the potential of this technology to develop enterprise-wide information architectures. As a technology, XML does not bring any value to an organization. The value of XML wHI depend on how it js used within a company. The agreement on data definitions within an enterprise has always been a hard task. At rn.inlmum, XML should be implemented strategically within the organization. Ideally, the 19 Annotate Documents I RDF I Schemas J:: I XML I (.---, X-Poin- ter--, Fig. 1. Organization of information through XML. implementation should include strategic partners and other organizations that have a need to share data and information. XML is a majm advance in the standardization of information sharing across traditional information boundaries, both internal and external Information security and privacy issues are major concerns revolving around customer and corporate data flowing across wires. Successful knowledge management in a company often depends on having access to information outside the enterprise walls. XML can also be of value here by helping to improve the functioning of supply chains and the extranet. In conclusion, it becomes obvious that managing knowledge requires better tools. We need to create systems that manage documents, as people would do, and we know that better tools need better documents. Thus by building on a solid knowledge management strategy using XML, we believe an organization can gain competitive differentiation in the near future. 20 PART II INTERNET ENTERPRISE IMPLEMENTATION CONSIDERATIONS 1 INTRODUCTION In the first section of this module we introduced essential elements of enterprise engineering in abstract and general terms. Building on the notions explored in the first section, we will address here, specifics concerning designing and implementation of Internet enterprises. In this section, a review is provided of the key concepts and concerns an Internet enterprise engineering (IEE) project would encounter and need to address. Business engineering fundamentals, technologies, and strategies for the lrlternet such as Unified Modeling Language, Cosmos Model, Enterprise Maturity Model, Web Business . Models, Methods of Electronic Transaction, Online Contracts, Security Protocols, selected integrated development tools, Next Generation Internet, and Internet2 arc covered. Over 20 occupational roles within IEE are identified and described separately. A technology implementation platform and strategy are introduced, along with marketing and customer retention technologies and strategies on the Internet A detailed overview is provided of the various Internet business tools, technologies, and terminology for the systematic construction of new ventures on the Internet l7]. For convenience, all these issues are summarized in table fmm at the end of this section. 2 BUSINESS ENGINEERING FUNDAMENTALS 2.1 UML: Officially introduced in November 1997, UML has quickly become the standard modeling language for software development [6]. It bas a business model approach that provides a plan for engineering an orchestrated set of business functions. It 21 provjdes a framework by which business is to be performed, allowing for changes and various improvements in the process. The model is designed to be able to anticipate changes in business function in order to maintain an edge on the competition. One of the advantages of modeling in UML is that it can visually depict functions, relationships, and paradigms. UML is a recommended tool for business analysts to break down a large-scale business operation into its constituent parts. Capturing a business model in one diagram is not realistic, so it should be noted that a business model is actually composed of a number of different views. Each view is designed to capture a separate purpose or function without losing any important overall understanding of the business operation. A view is composed of a set of diagrams, each of which shows a specific aspect of the business structure. A diagram can show a structure or a kind of dynamic collaboration. The diagrams contain objects, processes, rules, goals, and visions as defined in the business analysis. Objects contain information about mechanisms in the business, and processes are functions that use objects to affect or produce other objects. Objectoriented techniques can be used to describe a business. There are similar concepts in business functions that mn parallel to object-oriented techniques of designconceptualization. Another advantage of UML is derived from the ability of business modelers and software developers to use the same conceplualization tools and techniques to achieve a common business end. Additionally, the power of UML is derived :from its ability to transcend tbe standard organizational chart [ 17]. 22 2.2 Cosmos Model: A generic approach for a business to manage change is through a holistic framework as described by Yeh in his three-dimensional model called Cosmos (Fig. 1). One of the important aspects of this model is that three dimensions exist interdependently because each dimension behaves as an enabler and an inhibitor to the other dimensions. The ";activity structure" dimension covers how work is structured in an organization, factoring in the steps and tasks that are taken to achieve an appropriate level of workflow. The ";infrastructure dimension" covers how resources are allocated and factors in the assets of an enterprise. The ";coordination dimension" covers how information is created, shared, and distributed. The cultural aspects of the enterprise are factored in here. The Cosmos model provides a conceptual space bounded by concrete factors for successfully navigating from one point of an organizational situation to another. Infrastructure Long-term vs. short-term objectives Activity Structure Stability vs. Flexibility Target Coordination Structure Modu]arity vs. Interconnectedness Fig. l. Cosmos model--holistic framework for managing change. [13) 23 The Cosmos model is an abstract tool for managers to guide their company along the best possible path. The trade-offs between the three dimensions at each point in the journey along the path are what the manager must determine to be most effective and best for the organization as a whole. In the case of work structure, there is an inherent tradeoff between stability and flexibility. In the case of a coordination structure, there is a tradeoff between strictly aligning of human resources with company objectives and providing each operating unit with sufficient autonomy. More autonomous organizations are generally organized with a greater degree of modularity, allowing for the ability to make rapid decisions by adapting to changing market conditions. In the case of infrastlucture, there is a trade-off between seeking short-term gain versus long-term gain. Overall, the Cosmos mode] provides an executive or project manager with another technique to visualize the overaJJ situation and path of an organization by laking into account the three dimensions that correspond to the three main forces that affect its future [ 18]. 2.3 Enterprise Maturity Model: In order to characterize a business in terms of its level of maturity, focus, activity, coordination, and infrastructure, please refer to Table l, provided by Yeh [18]. The table provides an overview of the various levels of enterprise maturity. 2.4 Web Business Models: Entrepreneurs who wish to start e-businesses need to be aware of e-business models and how to implement them effectively. The combination 24 of a company's policy, operations, technology, and ideology defines its business model. Table 2 describes in more detail the types of business models in existence today [6, 19]. 2.5 IVIethods of Elech·onic Transaction: There are various methods and mechanisms that merchants can collect income through electronic transactions. Table 3 provides the types of transactions covered such as credit card, e-walJets, debit cards, digital currency, peer-to-peer, smartcards, micro-payments, and e-billing [19]. 2.6 OnJine Contracts: An online contract can be accomplished throt1gh the use of a digital signature. Digital signatures are the electronic equivalent of written signatures. The Electronic Signatures in Global and National Commerce Act of 2000 (E-sign Bi11) recently passed into law were developed for use in public-key cryptography to solve the problems of authentication and integrity. The purpose of a digital signature is for electronic authorization. The U.S. government's digital authentication standard is called the Digital Signature Algorithm. The U.S. government also recently passed digitalsignature legislation that makes digital signatures as legally bindiqg as handwritten signatures. This legislation is designed to promote more activity in e-business by legitimizing online contractual agreements. 2.7 Security Protocols: Netscape Communkations developed the SSL protocol, developed as a non-proprietary protocol commonly used to secure communication on the Internet and the Web. SSL is designed to use public-key technology and digital 25 certificates to authenticate the server. in a transaction and to protect private information as it passes from one party to another over the Tnternet. SSL can effectively protect information as it is passes through the Internet but does not necessarily protect private information once stored on the merchant's server. An example of private information would be credit card numbers. When a merchant receives credit-card information with an order, the information is often decrypted and stored on the merchant's server until the order is placed. An insecure server wi th data that are not encrypted is vulnerable to unauthorized access by a third party to that information. SET protocol was developed by Visa International and MasterCard and was designed speci.tically to protect e-commerce payment transactions [20]. SET uses digital certificates to authenticate each party in an e-commerce transaction, including the customer, merchant, and the merchant's bank. In order for SET to work, merchants must have a digital certificate and special SET software to process transactions. Additionally, customers must have complementary digital certificate and digital walJet software. A digital wallet is similar to a real wallet to the extent that it stores credit (or debit) card information for multiple cards, as well as a digital certificate verifying the cardholder's identity. Digital wallets add convenience to online shopping because customers no longer need to re-enter their credit card information at each shopping site. 2.8 Integrated Tool Example: Drumbeat 2000: Macromedia Drumbeat 2000 is a tool capable of accepting and delivering complex infmmation and functionality through a web-interface [21]. The tool aids a visually skilled Web designer in competitively building a website without necessarily having to do any coding, which is useful in the 26 initial prolotyping phase. It is a tool that can interact with the back-end database with the ability to build a user-friendly client-side using Active Server Page (ASP) Web technology. ASP technology enables a real-time connection to the database, so any changes made to the database are immediately re flected on the client side. Macromedia D1umbeat 2000 claims to provide everything needed to build dynamic Web applications and online stores visually at a fraction of the typical development time and expense. The designers of Drumbeat 2000 also cl aim that the development environment can keep up with continuously evolving web technology, thus making it a future-oriented technology. 2.9 NGI: This initiatjve is a mulli-agency Federal research and development program began on October 1, 1997 with the participation of the following agencies: DARPA, DOE, NASA, NIH, NIST, and NSF (Table 4). These agencies arc charged with the responsibility of developing advanced networking technologies and revolutionary applications that require advanced networkjng. 2.10 Internet2: The Intemet2 is a consortium of over 180 uruversit ies leading the way towards a partnership with industry and government to develop advanced network applications and technologies in order to accelerate formation of a more advanced Internet. The primary goals of Internct2 are to create a leading edge network capability for the national research community, enable revolutionary Internet applications, and ensure the rapid transfer of new network services and applications to the broader Internet community. Through Intemet2 working groups and initiatives, Internet2 members are 27 collaborating on advanced app.lications, middleware, new networking capabilities, advanced network infrastructure, partnerships, and alliances [22). 3 OCCUPATIONAL ROLES IN illE In order to build, deploy, and maintain an Internet Enterprise, certain roles and positions most be filled for the organization to be effective. Table 5 lists and describes many of the relevant roles required within an enterprise initiative, such as Chief Privacy Officer (CPO), in addition to the more traditional organizational roles such as Chief Executive Ofilcer (CEO), Chief Technology Officer (CTO), and Chief Financial Officer (CFO) [20, 23]. 4 TECHNOLOGY IMPLEMENTATION AND STRATEGY 4.1 Microsoft Dotsmart Initiative: There are various approaches to imp.lementing strategic planning and technology implementations. For illustrative purposes, Microsoft is considered in this thesis to be one such approach for enterprise planning. Once the overall conceptualization and business pattern is created and a.ll the necessary occupational roles within the organization are identified, it is necessary to identify exactly which technology to utilize in order to build and implement the business venture. As the requirements of a business are analyzed, a useful guide is the Microsoft Dotsmarl Initiative. This mode of business analysis will help determine which business engineering concepts to use and what kinds of personnel are needed to 1un the operation. Additionally, the Microsoft Dotsmatt Initiative provides key points to address when building an Intemet operation from scratch. 28 4.2 Microsoft Technology Centers (MTCs): MTCs are areas designed for groups of entrepreneurs, Information Technology personnel, and businessmen for the rapid development. of robust e-commerce solutions. At these facilities, developers, entrepreneurs, and high-technology business persons use Microsoft Technology and the relevant knowledge to build enterprise solutions. The centers provide the essentials a team would need to develop an enterptise from the initial conception of the idea to launch. Microsoft provides essential equipment, support, and expe11ise, with an application of a ";best-practices" approach. These best practices have been tested before at MTCs, expediting the development progress and time to market. Laboratory sessions are designed to bring together an assortment of entrepreneurial individuals as they facilitate the development process using the latest Microsoft products. The MTCs offer customers wishing to capitalize on emerging Microsoft.NET technologies the service, infrastltlctme, and development environment to accelerate their projects and reduce thejr risk. The working laboratory is intended to help customers develop and test next-genera6on e-commerce technologies and demonstrate further the value of Windows platforms and other industry-standard systems for powering ebusiness. 4.3 Impact of XML: XML represents a more general way of defining text-based/ documents compared to Hypertext Markup Language (HTML). Both HTML and XML descend from Standard Generalized Markup Language (SGML). The greatest difference between HTML and XML is the flexibi lity of the allowable tag found in XML. An XMLbased document can define its own tags, in addition to including a set of tags defined by a 29 third-party. This ability may become very useful for those applications that need to deal with very complex data structures. An example of an XML-based language is the Wireless Markup Language (WML). WML essentially allows text pm1ions of Web pages to be displayed on wireless devices, such as cellular phones and personal digital assistants (PDAs). WML works with the Wireless AppHcation Protocol (W AP) to deliver this content. WML is similar to HTML but does not require input devi ces such as a keyboard or mouse for navigation. In the case of a PDA thal requests a Web page on the Intemet, a WAP gateway receives the request, translates it, and sends it to the appropriate Internet server. In response, the server replies by sending the requested WML document. The WAP gateway parses this document's WML and sends the proper text to the PDA. This introduces the element of device portability. 4.4 Microsoft.Net Initiative: Microsoft announced a new generation of software called Microsoft .NET. This software is intended to enable every developer, business, and consumer to benefit from the combination of a variety of new Internet devices and programmable Web services that characte1ize NGI. Microsoft is trying to create an advanced new generation of software that wiiJ drive NGI. This initiative is called Microsoft.NET and it.s key purpose is to make information available at any time, in any place, and on any device. 4.5 Microsoft BizTalk 0 1·chestration: For IEE purposes, BizTalk Server 2000 is the considered a nex t-generation software that plays an important role in forming the infrastructure and tools for building successful e-commerce communities. The core of 30 BizTalk Server offers business document routing, transformation, and tracking infras tructure that is mles based. BizTalk Server offers many services that allow for quickly building dynamic business processes for smooth integration of applications and business partners while utilizing pubJic standards to ensure interoperability. Essentially, BizTalk server provides a method to build dynamic business processes quickly. 4.6 Back-end Configurations Using Microsoft Technology: In the design of the backend of a website, special considerations must be given to security. This is done by providing a kind of safety buffer from the greater world of the Internet using a demiUtarized-zone (DMZ) strategy. The components of a DMZ such as the firewall, the front-end network, the back-end nelwork, and the secure network function as a security buffer from the outside world. 4.7 Rapid Economic Justification (RE.fl: The REJ framework makes it possible for IT and business executives to demonstrate how specific investments in IT will eventually benefit the business, ensuring in the process that the IT projects are aligned with the specific business strategies and priorities. IT investments play a critical role in Internet enterprises. Important decision-making at the early stages of any venture does require an effective methodology to identify the best strategic IT investments. Leaders in the upper echelon of organizations such as CEOs, CTOs, and CFOs are being overwhelmed with complex information. REJ may prove to be a reliable method to quickly evaluate the true value worth and potential of a company by taking into consideration its intangible IT assets. 31 In the past, companies developed metrics for the valuation of IT investments on the basis of cost improvements. Metric methodologies have focused on Total Cost of Ownership (TCO), whereas the strategic role of IT in boosting new opportunities for business has been largely ignored. Understandably, the benefits of IT can be traced to ways of measuring business value the traditional way. Unfortunately, current business practices are not necessarily adequately equipped to handle the complexities of the New Economy. Although the economic justification of IT projects has been researched extensively in the past decade, the problem is that these metiJods and techniques require too much data-crunching power and time to prepare. These unwieldy research techniques need to be replaced by a new and practical approach to quantify swiftly and accurately the true value of IT investments. 5 MARKETING AND CUSTOMER RETENTION 5.1 Online Marketing: The Internet provides marketers with new tools and convenience that can considerably increase the success of their marketing efforts. An Internet marketing campaign such as advertising, promotions, public relations, partnering and Customer Relationship Management (CRM) systems are all an integral prut of the marketing process. Table 6 describes the various techniques at the marketer's disposal when using the Internet as the medium of customer information delivery [19]. 5.2 CRM Systems: CRM is a general but systematic methodology using both business and technological techniques to maintain and grow a business's customer base. CRM systems enable a business to keep detaj led records on the activity of its c ustomers 32 by using new, sophisticated tracking systems on the Internet. Table 7 shows various areas where CRM technology and CRM business techniques can assist in managing a customer base [19]. 5.3 Web Design Technology Example: Dreamweaver Technology: Macromedia Dreamweaver is Web technology for building websites on the Internet without the need for programming directly in HTivlL [21]. Also, Web designers are easily able to create Web-based leaming content with Dreamweaver 4.0. A Web designer has the ability to create site maps of the website that can be easily maintained and enhanced. This is a very popular technology available on the market that can be used to make professional quality websites for marketing and promotional purposes. 5.4 Web Enhancement Technology Example: Flash Technology: Macromedia Flash is a multimedia technology for applications on the Web. This technology gives the user, especially one not artistically talented, the ability to develop interactive animations that can look quite impressive. A flash movie can be embedded into a Web site or run as a standalone program, and Flash is compatible with Dreamweaver. Flash movies can be made with sound and animation, so it is useful as a software tool to produce demonstrations at the user-interface. Flash can be used on CD-ROMs and allows for the construction of cross-platform audio/video animations and still jmages. 33 \ 6 SUMI\-IARY TABLES We would like to reiterate emphasis areas for Electronic Enterprise as listed in the introduction of this module. These are a) hardware (mechanisms associated with physical world), b) software (mechanisms associated with computational world), c) netware (mechanisms associated with communications), and d) peopleware (mechanisms associated with human element) [23, 24]. Following tables provide a useful Jist in all these areas. For convenience, we include all summary tables in following order: Table 1 Enterprise Maturity Levels Table 2 Web Business Models Table 3 Electronic Transactions Table 4 NGI Participating Agencies Table 5 Occupational Roles in lEE Table 6 Marketing Techniques on the Internet Table 7 Customer Relationship Management 34 Table 1 Enterprise Maturity Levels Levels Focus Activity Coordination Infrastructure 5. Whole Human-society Process Self-directed teams Long-term oriented; in engineering dominate orientation, harmony with methodology workplace; toLal personal mastery, nature, people institutionalized; alignment; open, heavy investments routinely do the Flexible and honest in IT, continuous right things: predictable communication improvement change is second process, right the channels institutionalized nature first time, value- throughout adderl activities only 4. Wise Stakeholders and Process monitored Organjzational Organi:z.ation community automatically for structure based on competency oriented in high performance; cross-trained case management; harmony with dominated by teams; vision continuing community; value-added al igned with the education; team-people routinely activities; high needs of the based structure; doing things right. degrl:e of society tenm-oriented HR Changes are concurrency; few policy planned and handoffs mannged 3. Mature Customer oriented; Process defined Vision defined Integrated customer's needs and is measured with extensive capacity, are anticipated; buy-ins, multi- con sol ida ted people are proud to functional project function; work here teams exist; investment in participatory training and work culture with force planning; managers as flattened coaches organization 2. Stable Competition- Process under Internal focus, Short-term focus, oriented reactive statistical control; control oriented, fragmented bench-marking as functional division capacity, little IT, a result of reaction, hierarchical, inflexible process, difficult to get has many information, no handoffs and a formal HR policy substantial number of non-value-added tasks I . Ignorant Disoriented- Fire-fighting Ad- No clear vision, Don' t know where chaotic hoc, unpredictable, resources exist fragmented Rumor mill rampant 35 e-Business Model Storefront Model Auction Model Portal Model Dynamic Pricing Model Comparison Pricing Model Demand-Sensitive Pricing Model Table 2 Web Business Models Description The~ storefront model is what many persons think of when they bear the word ebusiness. The storefront model combines transaction processing, security, online payment and information storage to enable merchants to sell their products on lhe web. This is a basic form of e-commcrce where the buyer and seller interact directly. To conduct storefront c-commerce, merchants need to organize an online catalog of products, take orders through their Web sites, accept pnyments in a secure envi ronment, send merchandise to customers, and manage customer data. One of the most commonly used e-commercc enablers is the shopping cart. This order-processing technology allows customers to accumulate items they wish to buy as they continue to shop. www.amazon.com is a good example. Forrester Research reveals that an estimated $3.8 billion will be spent on online person-to-person auctions in the year 2000 alone. This number is expected to rise to $52 billion for Business-to-Business (B2B) auctions. Usually auction sites act as forums through which Internet users can log-on and assume the role of either bidder or seller. As a seller, you are able to post an item you wish to sell, the minimum price you require to sell it, your item, and a deadline to close the auction. As a bidder, you may search the site for availability of the item you are seeking, view lhe current bidding activity and place a bid. They usually do not involve themselves in payment and delivery. www.ebay.com is a good example. Portal sites give visitors the chance to find almost everything they are looking for in one place. They often offer news, sports, and weather, as weU as the ability to search the Web. Search engines are h01i zontal portals, or portals that aggregate information on a broad range of topics. Yahoo! at www.yahoo.com is an example of a horizontal portal. America Online (AOL) www.aol.com is an example of a vertical portal because it is a community-based site. The Web has changed the way business is done and the way products are priced. Companies such as Priceline (www.pricelinc.com) and Imandi (www.imandi.com) have enabled customers to name their prices for travel, homes, automobiles, and consumer goods. The name-your-price model empowers customers by allowing them to choose their price for products and services. The comparison pricing model allows customers to polJ a variety of merchants and find a desired product or service at the lowest price (i.e. www.bottomdollar.com). The Web has enabled customers to demand bener, faster service at cheaper prices. It has also empowered buyers to shop in large groups to achieve a group rate (i.e., www.rnercata.com). Customers become loyal to Mercata because it helps them save money. 36 e-Business Model Bartering Model Advertising Model Procurement Model B2B Service Provider Model · Online Trading Model Online Lending Model Online Recruiting Model Online Travel Service Model TabJe 2 (Continued) Description A popular method of conducting e-business is bartering, offering one item in exchange for anotiier. If a business is looking to get rid of an overstocked product, iSolve ~isolve.com) can help sell it PotenHal customers send their pricing pre ferences to the merchant who evaluates the offer. Deals are often part barter and part cash. Examples of items typically bartered are overstocked inventory items, factory surplus, and unneeded assets. Forming business models around advertising-driven revenue streams is the advertising model. Television networks, radio stations, magazines, and print media usc advertising to fund their operations and make a profit. www.Iwon.com is a portal site that rewards users with raffle points as they browse the site's content. www.freemerchant.com offers free hosting, a free store builder, a free shopping cart, free traffic logs, free auction tools and all the necessary elements for running an e-commerce storefront. Frccmerchanl makes money from its strategic partnerships and referrals. The procurement model means acquiring goods and services with effective supply chain management via a B2B Exchange. ICG Commerce Systems (www.icgcommerce.com) is a site that enables businesses, customers, suppliers, purchasers, and any combination of these to interact and conduct transactions over the Internet. The system supports B2B, B2C, and all variations of these models. · B2B service providers make B2B transactions on the Internet easier. These e-businesscs help other businesses improve policies, procedures, customer service, and general operations. Ariba (www.ariba.com) is a B2B service provider. The online trading model is essentially securities trading on the Internet. Trading sites allow you to research securities and to buy, sell, and manage all of your investments from your desktop; they usually cost less. Charles Schwab (www.schwab.com) is a notable example. Companies are now making loans online. E-loan (www.eloan.com) offers creditcard services, home equity loans, and the tools and calculators to help you make educated borrowing decisions. Recruiting and job searching can be done effectively on the Web whether you are an employer or a job seeker. Refer.com (www.refer.com) rewards visitors for successful job referrals. Web surfers can search for and arrange for all their travel and accommodations online, and can often save money doing so. Cheaptickets (www.cheaptic kets.com) .is a similar site that helps customers find discount fares for airl.ine tickets, hotel rooms, cruise vacations and rental cars. 37 e-Business Model Online Entertainment Model Energy Distribution Model Braintrust Model Online Learning Model Click-and-Mortar Model Table 2 (Continued) Description The entertainment industry has recognized this and has leveraged its power to sell movie tickets, albums and any other entertainment-related content they can fit on a Web page. ICast.corn (www.icast.com) is a multimedia-rich entertainment site. A number of companies have set up energy exchanges where buyers and sellers come together to corrununicate, buy, sell, and distribute energy. These companies sell crude oil, electricity, and the products and systems for distributing them. Altranet (_www.altranet.com) also sells energy commodities. Companies can buy patents and other intellectual property online. Yet2 (www.yct2.com) is an e-business designed to help companies raise capital by selling intellectuaJ property such as patents and trademarks. Universities and corporate-training companies offer high-quality distance education directly over the Web. Click2learn ~www.click2 1earn.com) has created a database of products and services to elp mdtvtdunls and companies fi.nd the education they need. Brick-and-mortar companies who wish to bring their businesses to the Web must determine the level of cooperation and integration the two separate entities will share. A company that can offer its services both offline and o nline is called click-and-mortar, such as Barnes & Noble (www.bn.com). 38 Electronic Transaction T e Credit Card Transactions E-wallets Debit cards Digital Currency Table 3 Electronic Transactions Descrjption Merchant must have a merchant. account with a bank. Specialized Internet merchant accounts have been established to handle online credit card transactions. These transactions are processed by banks or third-party services. To faci litate the credit card process, many companies are introducing electronic wallet services. E-wallets allow you to keep track of your billing and shipping information so it can be entered with one click. Banks and businesses are also creating options for online payment that do not involve credit cards. There are many forms of digital currency; digital cash is one example. It is stored electronically and can be used to make online electronic payments. Digjtal cash is often used with other payment technologies such as digital wallets. Digital cash allows people who do not have credit cards to shop online, and merchants accepting digital-cash payments avoid creditcard transaction fees. 39 Examples Companies like Cybercnsh (www.cybercash.com) and ICat (www.icat.com) enable merchants to accept credit card payments online like www.Charge.com. www. visa.com offers a variety of ewallets. Entrypoint.com offers a free, personalized desktop toolbar that includes an e-wallct to facltitate one click shopping at its affiliate stores. In order to standardize e-wallet technology and gain wider acceptance among vendors, Visa, Mastercard, and a group of e-wallet vendors have standardized the technology with the Electronic Commerce Modeling Language (ECML), unveiled in June 1999 and adopted by many online vendors. Companies such as AroeriNet allow merchants to accept a customer's checking-account number as a valid form of payment. AmeriNet provides authorization and account settlement, handles distribution and shipping (fulfi11ment), and manages customer service inquiries. E-Cash Technologies (www.ccas.b.com) is a secure digitalcash provider that allows you to withdraw funds from your traditional bank account. Gift cash is another form of digital currency that can be redeemed at leading shopping sites. Web. Flooz (www.Jlooz.wm) is an example of gift currency. Some companies offer points-based rewards. www.beenz.com is an international, points-based currency system. Electronic Transaction Peer-to-peer Smart Cards Micropaymenls Table 3 (Continued) Description Peer-to-peer transactions allow online monetary transfers between consumers. A card with a computer chip embedded on its face is able to hold more information than an ordinary credit card with a magnetic strip. There are contact and contactless smartcards. Similar to smart cards, ATM cards can be used to make purchases over the Internet. Merchants must pay for each credit card transaction that is processed. The cost of some items could be lower than the standard transaction fees, causing merchants to incur losses. Micropayments, or payments that generally do not exceed $10.00, offer a way for companies offering nominal.ly priced products and services to generate a profit. 40 Examples cCash runs a peer-to-peer payment services that allows the transfer of digital cash via email between two people who have accounts at eCashcnablcd banks. Pay Pal offers a digital payment system known as X payments. PayPal allows a user to send money to anyone with an email nddress, regardless of what bank either person uses or whether the recipient is pre-registered with the service. EConnect has technology in the form of a device that connects to your computer and scrambles financial data, making it secure to send the data over the Internet. EpocketPay is another product developed by eConnect that allows a consumer to make secure purchases from the ePocketPay portable device. This device acts as a cell phone with a card reader built into it and will allow you to make secure purchases anywhere. Millicent js a micropayment technology provider. Millicent handles all of the payment processing needed for the operation of an e-busi ness, customer support, and distribution services. Millicent's services are especially useful to companies that offer subscription fees and small pay-per-download fees for digjtal content. c-Billi ng Electronic llill Presentment and payment (EllPP) offers the ability to present a company's bill on multiple platforms online. Payments arc generally electronic transfers from consumer checking accounts. 41 The Automated Clearing House (ACH) is the current method for processing electronic monetary transfers. Table4 NGI Participating Agencies _A~c~ro~t~1Y~n_l_ _~ E_x~p_a_n_si~n --- ~ --- ~--~ --- DARPA Defense Advnnced Research Projects Agency DOE Department of Energy (beg inning in PY 1999) NASA National Aeronautics and Space Administration NIH National Insti tutes of Health NIST National Institute of Standards and Tec hnology NSF National Science Foundation 42 Occupation Entrepreneur e-Commerce Program Manager Enterprise Architect Business and Infonnation Architect Table 5 Occupational Roles in illE Descdptjon An entrepreneur on the Internet is usually the person with the initial idea for the entire business and is involved in its early stages of inception before official management takes over. e-Commerce Program Managers are involved in enterprise-wide ecommerce initiatives and projects, managing e-cornmerce integration and overall business and technology architecture and infrastn1cture. Usually, they arc senior-level line managers who are effective at uniting the business and technology front by coordinating units within an organization and across the extended enterprise. Enterprise Arc hitects are involved in the definition, alignment, and refinement of the overall ente rprise architecture. Their responsibilities include seeing to it that many of the tasks of program management are can·ied out properly. More important, they must provide guidance so individual projects can make optimal use of infrastructure resources for e-Cornmerce. A balancing act between business requirements and tcchnologicnl capabilities is accomplished through their efforts . Enterprise Architects have a duty to identify the requirements, goals, and constraints of the project. They allocate responsibilities for each of the architectural elements. They are also responsible for lhe coordination of the modeling and design activities for the overall enterprise architecture. They are the chief e-commerce architects because they coordinate the work information, infrastructure and application architects. All architects and modelers should be completely capable in design patterns common to the many facets of business and technology. The design pattern movement has affected all aspects of analysis, design, and implementation of componentbased systems. Design patterns are the reusable material of architecture and have an important role in the complex distributed information systems lhat are conceived and developed today. Business and Information Architects have business domain knowledge, including business processes and logical information structures. They coordinate the work of business and technology analysts and modelers who develop abstract representations or business object models of the subjects, rules, roles, events, tasks, activities, and policies of the business domain. Application-neutral models that are built enable the reuse of business engineering analysis and design patterns and artifacts 43 Occupation Infrastructure Architect Application Architect Humru1 Factors Engineer Business Manager Internet Commerce Architect Table 5 (Continued) Description Infrastructure Architects identify the technical services required of the technology infrastructure to empower and support the logical busi ness and information architecture. They evaluate existing infrastructure services, s\~l ect those appropriate to a given project and acquire (via build or buy) new components needed in the infrastructure. They oversee the work of technical specialists in modeling the service architecture of the technical infrastmcturc. They maintain the technical components of the development repository. Application Architects coordinate the business process modeling activities across multiple projects and business domains. They coordinate the work of domain modelers and maintain the repository of business and component models. They evaluate existing business component services, sclectthose appropriate to a given project and (via build or buy) new components needed in the evolving business model. They maintain the business application components of thC development repository. Most importantly. tl1ey guide solution developers in blending the business object model with the infrastruchJre services needed to implement the models in an e~com merce platform. Human Factors Engineers are needed to design the next generation of user interfaces. While the graphical user Interface (GUD is recognized as the enabler of wide-spread personnl computing, task centered user interfaces provide assistance to end-users and can be a boon to productivity in the world of e-commerce. E-commerce transactions can involve a multitude of complex steps and processes. Well-designed user interfaces can help navigate and guide the user through these tasks, keeping track of the progress, and picking up where users leave off when transactions span multiple sessions of work. The Business Manager is responsible for the business approach on the Internet, creating and operating the Internet presence for the business, deciding what products and services are sold online, determining pricing, and establishing the key business relationships needed lo make a venture successful. This is primarily a business role, with particular attention paid to the success of the online business and bottom line. The Internet Commerce Architect is generally a systems analyst who turns the business requirements into a system design that incorporates the creation and management of content, the tnmsaction processing, fulfillment, and technical aspects of customer service 44 Occupation Solution Developer Content Designer Content Author Implementor Database Administrator Internet Sales and Marketing Customer Service Representative T~lble 5 (Continued) Description Solution Developers are application developers. They develop the use cases for the specific application at hand, compose solutions through extensive use of business object models, and use repositories. They assemble application components to implement c-commercc application. Unlike conventional programmers or programmer/analysts, they do not build or pmgram components. Instead, they assemble or glue together business solut ions from prefabricated components. They use highly integrated development environments (IDEs) such as IBM's VisuaiAge, Symantec's Visual Caf6, Sybase's PowcrJ, and Inprise's Jbuilder. Emerging Computer Assisted Software Engineering (CASE) tools and related methods will likely appear that tighten the link between business modeling and software development. Tools for understanding and managing business processes, such as Inte11icorp's LiveModel allows solution developers to build logical business that can automate the configuration and management of the SAP/R3 ERP system. The Content Designer is responsible for the look and feel of an Internet commerce system, including the graphic design, page layout, and user experience. The Content Author creates or adapts product information into a form that can be used for internet commerce, working within the design laid out by the content designer. The Impleme::ntor is responsible for creating any programs or software extensions needed to make the Internet commerce system work. For example, an Implementor might write the software or construct an ASP page using Drumbeat 2000 that takes product information from a database and dynamically renders it into a Web page. In the case that a database is used in the back-end, the Database Administrator (DBA) manages the creation and operation of the database to ensure its reliability, integrity, and performance. The Sales and Marketing team is responsible for focused efforts in promoting Internet-based commerce. Customer Service Representatives answer questions about products, assist buyers with registration or the purchasing of goods and services. 45 Occupation Component Developer Operations Manager System Supervisor System Administrator Security Officer Fulfillment Agent CPO Internet Lawyer Internet Accountant Table 5 (Continued) Description Component Developers usually build components in the form of coding projects. They are masters of component technology and know the intricacies of composition, delegation, and object-oriented systems analysis and design. They are proficient in component development languages (such as Java and C++), modeling standards (such as UMLand XMI), and distributed computing platforms (such as CORBA, DCOM, EJB). They understand and think in terms of architectural design patterns. In the meanti me, they will close the gap between business requirements and available components. Component developers must be highly qualified software engineers since quality'components do not just happen. They are carefully constructed using quality soflware engineering disciplines. Component Developers, therefore, must be highly trained specialists and masters of software quality processes such as CMM and ISO, as well as masters of component-based development methods. The Operations Manager is responsible for managing all service activities for the Internet commerce system. The System Supervisor manages the system staff. The System Administrator is responsible for the technical operations of the computer systems and networks. The Security Officer ensures that appropriate security measures have been taken in the design and implementation of the Internet commerce system. The Fulfillment Agent is responsible for shipping and handling of physical goods or delivery of services. In the case of digital goods, the fulfillment agent is responsible for overseeing the operation of the fulfillment system. The Chief Privacy Officer is io charge of measures for ensuring the security of vital company information, such as customer credit card numbers remains secure within the company network. An Internet Lawyer is a legal expert for Internet fu nctions. The .importance of this position cannot be overstated, because new laws and regulations could ki ll a company without legal assistance, prevention, or intervention. The Internet Accountant is responsible for ensuring that the proper accounting procedures have been followed for Internet-based transactions. 46 Technique Domain name FAQ Forum Networking Faci litation Promotions c-Business advertising Pay-per-click Pay-per-lead Pay-per-sale Webcasting Interactive Advertising Public Relations and press releases Trade shows Table 6 Marketing Techniques on the Internet Description The Universal Resource Locator (URL) represents the address of the domain name, which must be chosen with care because it reflects the company's values immediately and connotes immediate meaning to customers with its first impression. One can purchose a domain name at www.networksolutions.com. A frequently asked questions (FAQ) section contributes to a userfiiendly site. An onli ne forum on the website enables customers to congregate at a pre-de~ign at cd place on the site to post comments and to share ideas. This promotes site activi ty. It is important to make it easy for the customer to recommend a site to a friend. This can be accomplished with a quick button that brings up an email exchange. c-Business promotions can attract visitors to your s ite and can influence purchasing. Netcenlives.com is a company that can provide your business with customer reward programs. P ublicizing through traditional channels such as television slots, movies, newspapers, and magazines is effective. Pay-per-click is a mode of operation that calls for paying the host according to the number of click-throughs to a site. Pay-per-lead is a mode of operation that pays the host for every lead generated from the advertisement. Pay-per-sale is a mode of operation that pays the host for every sale resulting from a click through. Webcasting is a broadcasting technique on the Web that uses streaming media to broadcast an event over the Web. Interactive Advertising involves consumers in the advertising campaign. An example is WebRIOT, a game show on MTV. The game is aired on television, and viewers can join in the game at the same time by playing online. Public Relations (PR) and press releases keep customers and your company's employees current on the latest information about products, services, and intemal and external issues such as company promotions and consumer reactions. Trade shows arc excellent opportunities to generate site interest by speaking at conferences, which increases brand awareness 47 Table 7 Customer Relationship Management CR.M:Area Handling Sales tracking Transaction support Data-mining Call center Log-file analysis Cookie Customer registrntion Personalization One-to-one marketing Onsite Search engine Registering with Internet search engines Partnering Afffiiate Programs Culture management Description Handling is essentially the maintenance of out-bound and in-bound calls from customers and service representatives. Sales tracking is the process of tracing and recording all sales made. Transaction support entails technology and personnel used for conducting transactions. Data-mini ng is a wny to analyze information collected from visitors. Data-mining uses algorithms and statistical tools to find patterns in data gathered from customer visits. A call center gathers customer-service representatives who can be reached by an 800 number or through email, online text chatting, or real-time voice communications. A log-file analysis is a useful way to keep track of your visitors in tenns of site visits, including each visitor's location, IP address, time of visit, frequency of visits, and other key indicators. A cookie is a technology that keeps a profile on each visitor. Customer registration is an excellent method to create customer profiles because visitors fi ll out a form with personal information. Personalization technology can help a company understand the needs of its customers and the effectiveness of its website, thereby catering to the whims of the customer. One-to-one marketing such as e-mails confirms purchases and offers new products, showing customers that the business appreciates their patronage. Onsite Search engines allow people to find information relative to a subject of interest amidst the large amounts of information available on a personal website. Registering with Internet search engines is important because there are reportedly over 400 se::arch engines in usc on the Internet. This process makes a website known to the world by submitting the website as a searchable domain name in a sea of domain names. Partncring is a way of forming a strategic union with another company. Generally, legal contracts are usually written to define the relationship in a wf'ly to help a company provide customers with complimentary services and product<;. An Affiliate Program is an agreement between two parties that one will pay the other a commission based on a designated consumer action. Affi liate programs establish new income streams for companies and individuals that host the advertising affili ate websites. Culture management is the ability to understand and cater lo a target audience's patronage and culture, especially in global enterprises. 48 LIST OF REFERENCES [1] 0. Aktunc, ";The Role of Component Technologies on Enterprise Engineering,"; Masters Thesis, Department of Electrical and Computer Engineering, University of Alabama at Birmingham, 2002. [2] D.H. Liles, M.E. Johnson, L.M. Meade, and D.R. Underdown, ";Enterprise Engineering: A Discipline?"; Society for Ente1prise Engineering Conference Proceedings, June 1995. [3] L. Whitman, Enterprise Engineeiing IE8801 class webpage, http://webs.twsu. edu/enteng, 2002. [4] W.D. Barnett and M.K. Raja, ";Object-Oriented Enterprise Engineering,"; http:/ /webs. twsu .edu/enteng/papers/OOEE. pdf, 1999. [5] J. Orr, ";Enterprise Engineedng Modeling,"; http://www.cadinfo.net/editorial!eem. htm, 2002. [6] H. Eriksson and M. Penker, Business Modeling with UML, New York: Wiley, 2000. [7] G. Herzum and 0. Sims, Business Component Factory, New York: Wiley, 2000. [8] ";Enterprise Design and Engineering,"; http://www.eil.utoronto.ca/ent-eng/, 2002. [9] M. Segal, M. N. Tanju, 0. Aktunc, and M. M. Tanik, ";Strategy Formulation for E-Business ,"; in The fifth World Conference on Integrated Design & Process Technology, 2000, Proceedings CD. [10] E.M. Roche, ";Managing Information Technology in Multinational Corporations,"; Macmillan Publishing Company, New York, 1992. [11] C. Chandra and A.V. Smirnov, ";Ontology-Driven Knowledge Integration for Consumer-Focused Smart Companies,"; Proceedings of the Twelfth Annual Conference of the Production and Operations Management Society, POM-2001, Orlando FL, 2001. [12] G.J. Cross, ";Now e-Business is Transforming Supply Chain Management,"; Journal of Business Strategy, March/April, pp. 36-39, 2000. [13] S. Chincholikar, 0. Aktunc, and M.M. Tanik, ";TheN-Queens Test-Bed,"; Technical Report 2001-1 0-ECE-0 11, Department of Electrical and Computer Engineering, University of Alabama at Birmingham, 2001. [14] S. Davis and J. Botkin, ";The Coming of Knowledge-Bases Business,"; D. Tapscott, eds., Creating Value in the Network Economy, Boston: Harvard Business School Publishing, 1999. 49
BASE
In: The journal of international social research: Uluslararası sosyal araştirmalar dergisi, Band 11, Heft 55, S. 729-733
ISSN: 1307-9581
In: Researcher: social science studies, Band 6, Heft Cilt 6 Sayı 1, S. 358-370
ISSN: 2199-1553
Technical Report 2018-08-ECE-138 Technical Report 2002-09-ECE-007 Enterprise Engineering - A Transdisciplinary Activity: Mapping IT to Core Competency Rajani S. Sadasivam Urcun J. Tanik Murat M. Tanik This technical report is a reissue of a technical report issued December 2002 Department of Electrical and Computer Engineering University of Alabama at Birmingham August 2018 Technical Report 2002-09-ECE-007 Enterprise Engineering- A Transdisciplinary Activity: Mapping IT to Core Competency Rajani S. Sadasivam Urcun J. Tanik Murat M. Tanik TECHNICAL REPORT Department of Electrical and Computer Engineering University of Alabama at Bi1mingham December 2002 ENGINEERING OF ENTERPRISES: A TRANSDISCIPLINARY ACTIVITY Mapping Information Technology to Core Competency Contributors: Murat M. Tanik, Rajani S. Sadasivam, lJrcun J. Tanik 1. ELEMENTS Qli' INTERNET ENTERPRISE ENGINEERING 1.1) Uusiness Language Structure Before any e n gin~ring takes place, the requirements of the project must be identified in as much detail as possible to satisfy the customer. Hence a customer-driven system is created, with the goal of ensuring that the end product is profitable. Business analysts should be able to accurately assess customer needs and break them down into manageable pieces for the technology analysts and engineering team, and that analysis can be effectively done on common ground with an object-oriented design language called Unified Modeling Language (UML). Introduced in November 1997, UML has quickly become the standard modeling language for software development, later adapted by business analysts to systematically design business processes [15]. UML has a business model approach that provides a pJan for engineering an orchestrated set of business functions. It provides a framework by which business is to be perf01med, allowing for changes and various improvements in the process. The model is designed to anticipate changes in business function and adapt software implementation accordingly in order for a business to maintain a competitive edge. One of the advantages of modeling in UML is that it can visually depict functions, relationships, and paradigms. UML is reconunended for business analysts to breakdown a large-scale business operation into its constituent parts for restructming and design. 1.2 Strategic Guidance One innovative approach to safely guiding an lEE venture through unce11ain waters is the Cosmos model, proposed by Yeh [10]. It is a model designed to assist a business manage change through holistic, three-dimensional modeling. One of the important aspects of this model is that it should be noted that three dimensions exist interdependently, as each dimension behaves as an enabler and an inhibitor to the other dimensions. The Cosmos model provides a conceptual tool for managers to guide their company along the best possible path by providing a structure for effective decision-making, while navigating from one point of an organizational situation to another over . time. The managerial decision made at each point in the path detetmines the future course of the company and the most optimum tradeoff's along the way. 1.3 General Business Types and Characterizations The Enterprise Maturity Model is introduced in the beginning of Chapter 2 to serve as a general reference for business and technology analysts working together to build an Intemet enterprise riO]. This model helps to accurately define the objectives for the specific type of organization they wish to build with respect to the maturity level of the organizational structure. In order to characterize a business in terms of its level of maturity, focus, activity, coordination, and infrastructure, these various faclors are covered explicitly. It is very helpful to understand the maturity level of a given organization in order to apply the most appropriate management techniques according to enterprise type. 1.4 Online Business Model Selection and Analysis An enterprise business model is one of the most important aspects in the construction of a viable business initiative. The combination of a company's policy, operations, technology, and ideology defines its business model [16]. Entrepreneurs who wish to launch e-businesses need to be aware of these models and how to implement them effectively. An array of business model types are provided that have proven profitable for actual enterprises in operation today, including the storefront model, auction model, portal model, and dynamic pricing model [11]. The case study is used as an example for online business model selection and analysis. 1.5 Online Financial Transactions In financial transactions, it is critical to have a reliable method to collect payment. Since the scope of this thesis covers lEE systems, this thesis describes those that would be relevant to Cyberspace operations. There are various methods and mechanisms that merchants online use to collect income through electronic transactions. The types of transactions covered include credit card, ewallet, debit card, digital currency, peer-lo-peer, smartcard, micropayment and ebilling mechanisms [11]. 1.6 Online Legal Contracts In order for proper oversight of monetary operations, legal issues must be addressed for lEE projects, so the concept of the online contract is introduced. An online contract can be accomp.lished through the use of Digital Signatures [1 1]. These electronic signatures are the electronic equivalent of written signatures. The ";Electronic Signatures in Global and National Commerce Act of 2000" (E-sign Bill) was recently passed into law [ 1 I, 4]. This technology was developed for use in public-key cryptography to solve the problems of authentication and integrity. The purpose of a digital signature is for electronic authentication. The U.S. govemment's digitalauthentication standard is called the Digital Signature Algorithm (DSA) [1 1]. The U.S. government also recently passed digital-signature legislation that makes digital signatures as legally binding as hand-written signatures. This legislation is designed to promote more activity in e-business by legitimizing online contractual agreements. 1.7 OnUne Security For centuries in human society whenever something of value was transferred, a method to protect that shipment or trade had to be established. Naturally, this subject is discussed to illustrate the measures taken by current security agencies to protect value on the Internet. For example, Netscape Communications developed the Secure Sockets Layer (SSL) protocol, developed as a non-proprietary protocol commonly used to secure communication on the Internet and the Web. SSL is designed to use public key technology and digital certificates to authenticate the server in a transaction and to protect private information as it passes f1·om one party to another over the Internet. Secure Electronic Transaction (SET) protocol was developed by Visa International and Mastercard and was designed specifically to protect e-commerce payment transactions [11, 12]. SET uses digital certificates to authenticate each party in an e-commerce transaction, induding the customer, the merchant, and the merchant's bank. 1 . 8 Online Business Prototyping Technologies and Development In order for technologists to satisfy the requirements set forth by the business analysts expressed in a language such as UML, various high-level tools are needed to develop an accepta~le solution. One such tool, Macromedia . Drumbeat 2000, recently released by Elemental Software, is capable of accepting and delivering complex information and functionality through a Web-interface [20). This technology is introduced as a recommended tool for building a professional enterprise through rapid prototyping. The tool aids a visually skilled Web designer to competitively build a website without necessarily having to do any coding. It is a sophisticated tool that interacts with the back-end database by building user-friendly client-side applications with Active Server Page (ASP) Web technology. 1.9 Government Initiatives in Cyberspace An enterprise planning for the future should consider the overall development of the global Internet infrastructure. It is important to understand the territory in which an Internet enterprise is to be launched. In addition to the current Intemet environment, a new government initiative is in the works, entitled The Next Generation Internet (NGI). This multi-agency, national U.S. research and development program began on October 1, 1997 with the partidpation of the following agencies: DARPA, DOE, NASA, NJH, NIST, and NSF. These agencies are charged with the responsibility of developing advanced networking technologies, developing revolutionary applications that require advanced networking, and demonstrating these capabilities on test beds that are 100 to 1,000 times faster th
BASE
In: Yüzüncü Yıl Üniversitesi Sosyal Bilimler Enstitüsü Dergisi, Heft Cumhuriyet Özel Sayısı, S. 413-433
19. yüzyılın sonlarından itibaren Avrupa ülkelerinde kullanımı hızla artış gösteren elektrik aynı yüzyıl içerisinde Osmanlı İmparatorluğu'nda da kullanılmaya başlanmıştır. İmparatorluk genelinde elektrik ilk olarak, Osmanlı donanmasında, sinema alanında telgraf ve postaların ulaşımında ve sağlık ile tıbbi teçhizat alanında kullanılmıştır. 20. yüzyıla gelindiğinde ise elektriğin kullanım alanı oldukça yayılmıştır. Bu yayılışa bağlı olarak pek çok insan elektrikten faydalanma girişiminde bulunmuştur. Bu girişimler daha çok elektrik makinaları ile aydınlatma şeklinde gerçekleşmiştir. Nitekim imparatorluk bu talebe karşılık kayıtsız kalmayarak elektriği kamu hizmeti olarak halkın kullanımına sunmuştur. Böylece elektriğin son kullanım alanı kamu hizmeti olarak gerçekleşmiştir. Bu hizmet ise imparatorluğun son yıllarında olduğu gibi ilk yıllarında da özel girişimciler aracılığı ile hayata geçirilmiştir. Cumhuriyet döneminde kurumları millileştirme politikası çerçevesinde yerli sermayenin denetimi altına alınan elektriğin bir örneği de Urfa kentinde gerçekleşmiştir. Bu bağlamda Urfa kentinde elektrik ile ilgili her türlü gelişmenin değerlendirildiği bu çalışmada Devlet Arşivleri, yerel basın arşivi ile araştırma ve inceleme eserlerden istifade edilmiştir.
This paper proposes a framework for software system design. The framework is based on the decomposition and abstraction. The design formalism will employ an Object Descriptive Attributed Notation (ODAN) for software design representation which records three types of primary information of software system detail design: the decomposition hierarchy (of the system being designed), the taxonomic structure (recognizing the construction and function similarities), and the coupling specification (specifying the way of component integration). A message switching simulation system will be taken as an example during the discussion. An Ada program based on this design is also presented. ; Technical Report 2018-07-ECE-017 Technical Report 88-CSE-11 The Design of a Message Switching System: Software Reusability Applied to Discrete Event Simulation W. P. Yin Murat M. Tanik This technical report is a reissue of a technical report issued February 1988 Department of Electrical and Computer Engineering University of Alabama at Birmingham July 2018 Technical Report 88-CSE-11 THE DESIGN OF A MESSAGE SWITCHING SYSTEM: SOFTWARE REUSABILITY APPLIED TO DISCRETE EVENT SIMULATION W. P. Yin M. M. Tanik Department of Computer Science and Engineering Southern Methodist University Dallas, Texas 75275-0122 February 1988 The Design of a Message Switching System: Software Reusability Applied to Discrete Event Simulation W.P.Yin M. M. Tanik Department of Computer Science SMU Abstract - This paper proposes a framework for software system design. The framework is based on the decomposition and abstraction. The design formalism will employ an Object Descriptive Attributed Notation (ODAN) for software design representation which records three types of primary information of software system detail design : the decomposition hierarchy (of the system being designed), the taxonomic structure (recognizing the construction and function similarities), and the coupling specification (specifying the way of component integration) . A message switching simulation system will be taken as an example during the discussion . An Ada program based on this design is also presented. I. INTRODUCTION Recent years, software engineers gradually realize that reuse concepts play a key role in several issues [1] : productivity, maintainability, portability, quality, and standards. A carefully engineered collection of re t:·sa.ble software components can reduce the cost of software development, improve the quality of software products, and accelerate software production [2] . Many approaches have been proposed and implemented which have tried to make the reuse of software components a reality. Among them , subroutine libraries, software generators and object-oriented programming have achieved relative popularity [3, 9]. The technical foundations for making software reuse a viable alternative to program development have been identified and demonstrated by several projects [4, 11] . In this paper a software detail design methodology and a design representation system (ODAN) [10] is presented. One specific example, a message switching communication system, is developed using this methodology and representation. A message switching communication system was chosen as the application because it shows the range of ODAN's applicabilities and presents a number of interesting design problems. Ada was chosen as the implementation language because it is capable for dedicated concurrent programming, provides much needed facilities for synchronization, and appears to be good at supporting software reusability. The specific design technique used here is described in Section II. The communication system itself is then developed in Section III through V. Section III specifies the functional requirements of the system. Section IV summarizes the major features of ODAN and presents the system decomposition, abstraction, and integration in terms of ODAN. Section V refines the decomposition by giving outlines of Ada programs for some of the interesting - II - parts of the system. Finally, Section VI summaries the conclusion of our explorative work. II. DESIGN TECHNIQUE The process of design is a transformation of a designer's ideas and expertise in to a concrete implementation [ 5]. Observing the design process, we can see the following facts: • Software design is a creative act of individuals using basic problem-solving techniques, building conceptual solutions based upon a software system specification . • By providing decomposition and abstraction mechanisms, a large-scale, complex problem will become an aggregation of subproblems. The solution for original problem will be the • combination of the solutions for subproblems. The design representation is a knowledge representation that facilitates expressing the system decomposition hierarchy, the similarities of system components presented, and the coupling constraints on which system components are identified in the decomposition hierarchy. The design described here is developed in two major steps: system decomposition and component abstraction. By iterating between decomposition and abstraction , three kinds of information are derived: decomposition, taxonomy and integration. By decomposition we mean that dividing the original problem into smaller models that are themselves small problems and interact with one another in simple, well-defined ways [6]. By abstraction we mean the change in the level of detail to be considered in which certain details are ignored in an effort to convert the original problem to a simpler one. In our design technique, we use a decomposition form which gives software system designers opportunity to concentrate on the behavior of the entities of the application and the relationships among them. Therefore, a designer is to be working at the level of general construction and functionality description, but not to the degree of precision necessary for executability. The design process can be characterized as [ 5] :"The design procedure is a series of successive refinements comprising two types of design activities. The first type concerns the transitions between the so-called design levels. The second type defines a set design actions associated with a given design level. The design levels are successive refinements of the decomposition of the system under consideration." At the beginning of a software system design , designers decompose the original problem into subproblems based upon a behavioral scenario. Each subproblem corresponds to one object in the problem, in which changing the state of one object will affect the state of other objects. Decomposition continues until the subproblems are not further decomposable, i.e., any state changing on that object will not have effect on any other objects. During the decomposition, each object in the problem space will be designed as an entity in the solution space. Entities in solution space will be represented in computers. For each solution entity, three kinds of information are derived. First, the decomposition hierarchy (of the system) is declared. The decomposition hierarchy is the composition schema for the object. Composition schema contains data items which indicate the object states and operations which manipulate the data items. Second, the taxonomic - III - knowledge is specified. This knowledge can be viewed as a representation for inheritance relar tions which declare the reusability information, i.e., one entity in solution space can inherit some facilities designed in another entity. Inherited facilities include data items, operations or a whole entity. One entity can have multiple inheritance. These taxonomic knowledge will be used during further evolutionary stages in making reusable code segments. Third, the integration rules are specified. The primary goal for decomposition of the original problem is to divide-and-conquer. The partial solutions of subproblems must be coupled together to solve the original problem. The integration rules specify the data flow and control flow among the entities, input and output constraints, and an activating algorithm . ODAN [10] is used for design representation. For each entity in the solution space a set of attributes is attached. Attributes are classified into three groups corresponding to the above three kinds of information. The values for attributes are designer-defined, e.g., the value can be a single word, a sentence, a piece of code, a rule, an abstract algorithm, or a link to another entity based on the attribute meaning. We choose ODAN as our design representation because it gives software designers flexibility to add or erase attributes, or assign a specific value to the attribute. In addition , ODAN is easy to be machine representable and computable. This benefit will help software engineers to store and retrieve the previous design . III. SPECIFICATION OF A MESSAGE SWITCHING SYSTEM A typical message switching system [7] has been chosr'n as an example to show the detail of our design technique because it is a problem that is realistic in nature and implements many of concepts of embedded systems. This generalized system is typical of several communication systems used by the U.S. government and NATO. The complete system consists of a network of switching nodes connected via high-speed trunk lines. Each switching node has an auxiliary memory, an archive facility, an operator, and can support up to fifty subscriber terminals. Figure 1 shows configuration for a given node in the system . The general function of each node is to accept input messages from the trunk or local subscriber lines, and route them to one or more output destinations. Input can be received from local subscribers or from another switching node (via the trunk line). The input message is stored in the auxiliary memory and then forwarded to the output destinations, which can be either local subscribers or another node in the network. Since messages must be completely received before forwarded, this type of communication is often called store-andforward message switching. Three successive phases are required to process each message: input, switching, and output. Figure 2 presents the system components and interfaces required to perform these functions. The following summary describes the processing that must be done during each of these phases. Input Figure 1. Typical node configuration • • Oper-ator- Read the input message from a subscriber or trunk link and store the message on both auxiliary memory and archive tapes. Each input message consists of a header, a body and an end (end-of-message indicator). Switch Examine the header to determine the output destinations. For each destination , consult a directory to determine the appropriate output line to use (local subscriber or trunk to remote destination). Add a copy of the message header to the output queue on each line . Output Retrieve the message from the auxiliary memory and display it. Each message contains a priority-at all times. The message with the highest priority is transmitted first. Each node has an operator who can send and retrieve messages like a subscriber. In addition, he can monitor and control the message activity at the node; for example, he can cancel a message or check the messages in each output queue. Also the operator is notified of exceptions-for example, end of archive tape. The simulation of this system addresses the following requirements. Figure 2. Message switch system components • Maximum I/ 0 parallelism must be provided. • Two different types of I/0 devices exist (trunks and terminals) . Both process messages. • Switch must coordinate output to multiple destinations. • Messages have priorities. • The auxiliary memory and terminal devices must be controlled and synchronized because we are simulating more than one l/0 device . We now turn our attention to the design of a message switching simulation system that solves each of these problems. V. DETAIL SYS'IEM DESIGN IN 0DAN The main activity of software design is not only generating new programs but also maintaining, integrating, modifying, and explaining existing ones [8]. Based upon the problem modelling and system specification, designers know what the message switching system should look like and how it should behave. Iterating between decomposition and abstraction, designers will know how the system is divided, what are the functionalities for each component, and how those components will be integrated together. Our objective for using ODAN to represent the design idea is for keeping the reusability in mind before and during the coding not after the coding. -VIA. System Decomposition Acceding to Grady Booch [2] : " Simply stated, object-oriented development is an approach to software design and implementation in which the decomposition of a system is based upon the concept of an object. An object is an entity whose behavior is characterized by the operations that it suffers and it requires of other objects". Using object-oriented design methodology, an object existing in the model of reality will have a corresponding structureentity in the solution. As specified above, each message processed by a switching node goes through three phases: input, switch, and output. In the problem space, there are several different objects participate these three phases, I/ 0 devices for sending and reading messages, a temporary memory for storing messages, a long term memory for message backup, a reference table for destination list, and a switching node for scheduling message transmission. The decomposition is shown in Figure 2. Each I/ 0 device manages one subscriber or trunk line . The auxiliary memory provides a temporary storage. The archive tape provides a tape storage for recording all message transmission . The table provides the destination cross-reference. The switch coordinates the output to multiple destinations. Using ODAN, we can describe the system decomposition in the following way. Message_8witching_8ystem Components: (Aux.:Mem , Archive_Tape, Reference_Table, Subscribers, Trunks, Switch , Operator) Interface: ~Operator Aux_Mem Components: ( Storage_Cell, directory_Cell) Access_Constrain t: mutual exclusive Operations: (Write, Read, Write_Directory, Read_Directory) Archive_Tape Components: (Tape) Access_Constrain t: mutual exclusive Operations: (Arch ive.:Msg, Re trieve_Msg) Reference_Table Components: (Table) Operations: (Look_Up, Insert, Delete) Trunk Components: (Msg_Queue) Access_Constrain t: mutual exclusive Operations: (Broad cast_Msg) Subscriber Components: (Msg_Queue) Access_Constrain t: mutual exclusive Operations: -VII- (Add, Delete, ls_Empty, Read_Terminal, Write_Terminal) Switch Components: (Msg_Queue) Access_Constrain t: mutual exclusive Operations: (Add, Delete, ls_Empty) For abstraction reasons, we ignore some details here. Actually, for each component and operation, ODAN provides a set of attributes. For example, in Aux_Mem entity, the system designer may specify the structure for Storage_Cell and Directory_Cell, algorithm skeleton for each operation, and exceptions for the operations. The algorithm skeleton may take an existing program code as its body, or a set of rules, or a PDL like specifications. We take an Ada like specification as the algorithm body. B. Similarity Recognition As we mentioned before, our goal is to make design information not only used to develop a new program, but also provide reusable designs. During the system design stage, based upon the object-oriented decomposition and construction as well as function specification on those objects, designers have an opportunity to recognize the construction - VIII - and function similarities among those objects. In ODAN, we introduce knowledge representation into software design. More specificly, we take inheritance relations in semantic nets and modify the semantics of those relations to represent the construction or function similarities. For example, the components of two entities, Reference_Table and Archive_Tape, have a functional similarity. Reference uses a "table" to save all the destination information, Archive_Tape uses a "tape" to backup all the messages. Ignoring the structures of destination and message information, functions for a table and tape can be the same, sequential data structure and no priority. In our design, we use a non-priority queue to implement the reference table and archive tape. The design representation is as follows. Non_Friority_Qu eue Components: ( Queue_En try) Operations: (Clear, Is_Empty, Add, Position_Of, Remove, En try_Of) Archive_ Tape Components: (Tape) instance of Non_Friority_Queue • • • Reference_Table Components: (Table) insta.nce of Non_Friority_Queue • • • Here we modified the semantics of instance of relation because the component for reference table is an instance of a non-priority queue, the non-priority queue will be biding inside the reference table. The manipulations on the table will be specified by reference table operations. In the same way, message queues are designed as follows: Priority_Queue Components: ( Queue_Entry) Operations: (Clear, Is_Empty, Add, Delete) I f Trunk Components: -IX- (Msg_Queue) instance of Priority_Queue • • • Subscriber Components: (Msg_Queue) instance of Priority_Queue • • • Switch Components: (Msg_Queue) instance of Priority_Queue • • • C. Component Integration Entities of a software system are not isolated. They are related with each other to do a specific task. One important information in the software design is the coupling specification, (how those entities coordinate). In ODAN we use the "interface" attribute, to indicate the relation information and coupling specification. The operations provide static default interface if no explicit interface specified. In the message switching system, we specify the interface for auxiliary memory, switch, and subscriber in the following way. Aux_MemJnterface time_rule: concurrent con trol_ru le : iterative im port_ru le: single body: (loop select ac ce pt Read_Msg or acce pt Wri te_Msg end select end loop) SwitchJnterface time_rule: concurrent controLrule: iterative body: (loop if not Is_Empty(Msg_Queue) -- Delete(Msg_Header) -- Look_Up(Msg_Header) - X - -- Add( Su bscriber_Msg_Queue) end if end loop) Su bscriberJn terface time_rule: concurrent control_rule: iterative body: (loop while not Is_Empty(Msg_Queue) -- Delete(Msg_Header) -- Aux_Mem.Read_Msg(Msg) -- Display(Msg) end loop -- Read_Terminal(Msg) -- Aux_Mem.Write_Msg(Msg) -- Archive_Tape.Archive_Msg(Msg) -- Add(Switch_Msg_Queue) end loop) -XIXI. DESIGN IMPLEMENTATION We choose Ada as the implementation language. Ada is a general-purpose language that embodies and enforces the modern software engineering principles of abstraction , information hiding, modularity, and locality. Ada offers a number of features that facilities the expression of reusable software components and real-time systems. For example, generic program units are parameterized templates for generating software components; tasks operates in parallel with other program units and imply the mutual exclusion; systematic separation between visible syntactic interface specifications and hidden bodies allow the programmer to separate concerns of module interconnections from concerns about how the module performs its task. Ada is used here as an implementation language for message switching system also because it is available in our VAX 11 / 780 under Unix operating system. Some specific algorithm designs can be written in Ada, and taken as the value of some ODAN attributes. Those algorithms written in Ada serves as intermediate steps between system detail design and coding. Since our goal is also to show how to make a reusable software component during the design stage, we will not show the complete detail of program code . The executable code runs on VAX 11 / 780 under Unix operating system . A. Message Queue As we mentioned before in system decomposition section, we decided to design a priority queue to implement the message queue for subscribers, trunks and switches. Ada's generic package provides a powerful too!· &.t this point. Generic packages have the ability to create templates of program units with generic parameters needed at translation time . The specification of generic priority queue package is as follows. genenc type QUEUE_ENTRY is private; type PRIORITY is limited private; with function PRIORITY_OF(THE_ENTRY : in QUEUE_EN1RY) return PRIORITY; with function " SIGNAL, PRIORITY => PRIORITY_TYPE, PRIORITY _OF=> CHEOK_PRIORITY, " " PORT2, PORT_QUEUE = > QUEUE_?KG .SUBSCRIBERl_QUEUE, -XIVPORT_ QUEUE_8EMAPHOR => TABLEYKG.SUBSCRIBERLQUEUE_8EMAPHOR, GETJIEADER => DEVICE_DRIVERSYKG.GETJIEADER_VTlOO, GET_BLOCK => DEVICE_DRIVERSYKG.GET_BLOCK_VTlOO, PUTJIEADER => DEVICE_DRIVERSYKG.PUTJIEADER_VTlOO, PUT_BLOCK => DEVICE_DRIVERSYKG.PUT_BLOCK_VTlOO) ; package TRUNK is new NOD EYKG (PORT =>PORTS, PORT_QUEUE => QUEUEYKG.TRUNK_QUEUE, PORT_QUEUE_8EMAPHOR => TABLEYKG.TRUNK_QUEUE_8EMAPHOR, GETJIEADER => DEVICE_DRIVERSYKG.GETJIEADER_TRUNK, GET_BLOCK => DEVICE_DRIVERSYKG.GET_BLOCK_TRUNK, PUTJIEADER => DEVICE_DRIVERSYKG.PUTJIEADER_TRUNK, PUT_BLOCK => DEVICE_DRIVERSYKG.PUT_BLOCK_TRUNK); C. Simulation Control Message switching system is a multiple processing system, but we simulate this multiple I/0 device activities on a single 1/0 device - one terminal. Thus, it is necessary to synchronize the access to the terminal. This synchronization is implemented by an Ada task. The semantics of Ada tasks guarantee the mutual exclusion . Only one task can access the terminal at a time, and if more than one task try to access at the same time, the remaining ones except one have to wait in an implicit queue so as not to interfere with each other. If those tasks arrive at different times, the first task will be permitted accessing first, the remaining ones are put in the queue based upon a time stamp. The task for synchronizing the terminal access is as follows: task I0_8YNC is entry REQUESTJO_DEVICE; entry RELEASEJOJ)EVICE; end I0_8YNC; task body 10_8YNC is BUSY: BOOLEAN:= false; begin loop select when not BUSY=> accept REQUESTJOJ)EVICE do BUSY :=true; end REQUESTJOJ)EVICE; or accept RELEASE_IO_DEVICE do BUSY :=false; end RELEASE_IO_DEVICE; end select; end loop; end IO_SYNC; -XVXV. CONCLUSION Current approaches for software reusability are primarily based on code sharing and subroutine libraries . Ada's generic units provide additional reusability techniques. We believe that if we can find ways to express reusable software components at a higher level than at the programming code level, software reusability will significantly improve the software productivity. The message switching system design is our explorative work on software reusability. 'Ne feel that it is necessary to develop a software design representation . Such a representation must not bind the implementation too early and must capture the logic of system functions. The programming environment support is also important for applying software reusability more effectively. REFERENCES [1] P . G. Bassett, " Framed-Based Software Engineering," IEEE Software, July, 1987. [2] G. Booch, Software Components With Ada, The Benjamin/ Cummings, Publishing Company Inc., 1987. [3] G. E. Kaiser and D. Garlan, " Melding Software Systems from Reusable Building Blocks," IEEE Software, July, 1987 . [ 4] W. Tracz , " Reusability Comes of Age," IEEE Software ", July, 1987. [5] J. W. Rozenblit and B. P. Zeigler, "Concept For Knowledge-Based System Design Environment," Proc. of the 1985 Winter Simulation Conference, San Francisco, Dec.1985. [ 6] B. Liskov and J. Guttag, Abstraction and Specification in Program development, The MIT Press, McGraw-Hill Book Company, 1986. [7] G. R. Andrew, "The design of a Message Switching System : An Application and Evaluar tion of Modula," IEEE Trans. Software Eng., Vol.SE-5, No.2, Mar.1979. [8] G. Fischer, "Cognitive View of Reuse and Redesign," IEEE Software, July, 1987. [9] W. P. Yin, M. M. Tanik, D. Y. Y. Yun, T. J. Lee and A. G. Dale, "Software Reusability: A Survey and A Reusability Experiment", Proc. of FJCC, Dallas, Oct. 1987. [10] W. P. Yin , M . M. Tanik, and D . Y. Y. Yun "Software Design Representation : Object Descriptive Attributed Notation (ODAN), " (Available from authors). [11] R. T. Yeh and T. A. Welch , "Software Evolution: Forging a Paradigm," Proc. of FJCC, Dallas, Oct. 1987.
BASE
Ada is a general-purpose programming language with considerable expressive power. It is a language that embodies and enforces the modern software engineering principles of abstraction, information hiding, modularity, and locality. Following an object-oriented design technique, this paper illustrates the use of Ada for the design and implementation of a message switching simulation system. Message switching simulation poses a number of interesting problems: a high degree of concurrent activity, a variety of I/O devices to be considered, and messages with multiple destinations. In this paper, we will discuss how Ada is used in an object-oriented fashion in solving these problems. ; Technical Report 2018-07-ECE-020 Technical Report 88-CSE-14 Simulation of a Message Switching System with Ada Objects W. P. Yin Murat M. Tanik This technical report is a reissue of a teclmical report issued March 1988 Department of Electrical and Computer Engineering University of Alabama at Birmingham July 2018 Technical Report 88-CSE-14 SIMULATION OF A MESSAGE SWITCHING SYSTEM WITH ADA OBJECTS W. P. Yin M. M. Tanik Department of Computer Science and Engineering Southern Methodist University Dallas, Texas 75275-0122 March 1988 Simulation of a Message Switching System with Ada Objects 1-'V. P. Yin J.1. M. Tanik Department of Computer Science and Engineering Southern Methodist University Dallas, TX 75275 Abstract - Ada is a general-purpose programmmg language with considerable expressive power. It is a language that em bodies and enforces the modern software engineering principles of abstraction, information biding, modularity, and locality. Following an object-oriented design technique, this paper illustrates the use of Ada for the design and implementation of a message switching simulation system . Message switching simulation poses a number of interesting problems: a high degree of concurrent activity, a variety of I / 0 devices to be controlled, and messages with multiple destinations. In this paper, we will discuss how Ada is used in an object-oriented fashion in solving these problems. 1. Introduction Ada is a general-purpose programming language developed with the initiative of the U.S. Department of Defense in response to the crisis in software development [1]. As Wegner points out, there are several features in Ada that directly support modern software engineering principles [2 ]: • A rich variety of program units, including subprograms, packages, and tasks. • Systematic separation between visible syntactic interface specifications and hidden bodies that allow the programmer to separate concerns of module interconnections from concerns about how modules perform their task. • Strong typing, which imposes constraints on module interconnections and allows consistency between formal parameters of module definitions and actual parameters of module invocations to be enforced at compile time . • Genetic program units, which are parameterized templates for generating software components. • Program libraries with separately compiled reusable program units. There is a trend that software engineers treat Ada as an expressive language rather than just a programming language . Ada, thus serves not just to program some computer but as a program design language (PDL) that captures the concrete implementation of software compo n en ts [ 1] . In this paper, the design of one specific example, a message switching simulation system [3] is developed using Ada. Our objectives are : 1) to present an object-oriented system design technique; 2) to illustrate the use of Ada as an assistant for design documentation; 3) to describe the use of Ada as implementation language . A message switching simulation - 2 - system was chosen as the application because it shows the range of Ada's applicability and presents a number of interesting implementation problems. Ada was chosen as the target language because it is specifically intended for dedicated real-time, multitasking systems, and provides much needed facilities for parallel execution. The specific design technique used here is described m section 2. The communication system itself is developed in section 3 through 5. Section 3 specifies the functions and external interfaces of the system . Section 4 presents the system organization, information and control flow, and module interfaces in terms of Ada components. Section 5 describes some related simulation issues by giving outlines of Ada programs for the most interesting parts of the system. Finally, section 6 summaries the utility of Ada for the design of software systems by reflecting on aspects of the communication systems and reusable software components. 2. Design Technique The design described here is developed in two major steps: system decompositions and component abstractions. We use the object-oriented decomposition because it gives system designers a good opportunity to concentrate on both structures and functions of entities in the application . Therefore, designers can work at the level of general construction and function descriptions, but not to the degree of precision necessary for executability. The decomposition step involves specifying the major components of the system, their structures and their behaviors. It includes outlining the data blocks and operations for each component. This step will characterize what information is processed and express the user's view of system. The abstraction step will specify the way of system integration. It involves changing the level of decomposition, ignoring certain details in an effort to couple the system components. In our simulation system design with Ada, various organizations were considered to support the system components. The specification of integration includes specifying the information [ flow, control sketch and other connections. 3. Specification of a Message Switching Communication System A typical message switching system [3] has been chosen as an example to show the details of Ada's capabilities because it is a problem that is realistic in nature and implements many of the concepts of em bedded systems. This generalized system is typical of several communication systems used by the U.S. government and NATO. The complete system consists of a network of switching nodes connected via high-speed trunk lines. Each switching node has an auxiliary memory, an archive facility and an operator, and can support up to fifty subscriber terminals. Figure 1 shows the configuration for a given node in the system . The general function of each node is to accept input messages from the trunk or local subscriber lines, and route them to one or more output destinations. Input can be received from local subscribers or from another switching node (via the trunk line). The input message is stored in the auxiliary memory and then forwarded to the output destinations, which - 3 - Subscriber- Switching Node Trunk Huniliar-y Me10or-y Hrchiue Tape Table Figure 1. The typical configuration for a local node. Can be either the local subscribers or another node in the network. Since messages must be completely received before forwarded , this type of communication is often called store and forward message switching. Three successive phases are required to process each message: input, switching, and output. The following summary describes the processing that must be done during each of these phases. Input Read the input message from a subscriber or trunk link and store the message on both auxiliary memory and archive tapes. Each input message consists of a header, a body and an end mark (end-of-message indicator) . Switch Examine the header to determine the output destinations. For each destination, consult a directory to determine the appropriate output line. to use (local subscriber or trunk to remote destination) . Add a copy of the message header to the output queue on each line. Output Retrieve the message from the auxiliary memory and display it. Each message contains a priority-at all times the message with the highest priority is transmitted first. Each node has an operator who can send and retrieve messages like a subscriber. In addition , he can monitor and control the message activity at the node . For example, he can cancel a message or check the messages in each output queue. Also the operator is notified of exceptions-for example, end of archive_ tape . In our simulation system design , we will - 4 - ignore the operator because the mam function of our design is to simulate how the switching node process messages. The simulation system addresses the following requirements. • Maximum 1/ 0 parallelism must be provided. • There are two different types of 1/0 devices (trunks and terminals), both process messages. • Switch must coordinate output to multiple destinations. • All the messages have a priority. • The auxiliary memory and terminal devices must be controlled and synchronized because we are simulating more than one 1/0 device. Now, we turn our attention to the design of a message switching simulation system m Ada that solves those problems. 4. System Architecture in Ada The Ada programming language supports modern programming practices and integrates features. Ada packages offer the opportunity for defining data structure and operations on those structures. This capability provides abstraction previously not available in widely used languages. A package consists of a specification which is all the user of the abstraction need to know and a body (implementation) which provides application specific facilities which other programmers may use. The specific implementation details may be hidden by the use of the PRIVATE facility. A design using these facilities will provide a good level of modularity and information hiding. Ada tasks provide facilities to define and control concurrent processes. Independent tasks may be defined and synchronized by rendezvous. Those tasks will proceed in parallel, at least logically, execute on separate processors. A task may call another task by specifying an ENTRY point. A called task is synchronized by executing an ACCEPT statement. The type of synchronization offered by this rendezvous model allows a natural implementation of a number of communication and synchronization protocols such as message passmg. For our purposes, the Ada package and task concepts are adequate to model the set of activities of the message switching system. A . System Components According to Grady Booch [2]: "simply stated, object-oriented development is an approach to software design and implementation in which the decomposition of a system is based upon the concept of an object. An object is an entity whose behavior is characterized by the operations that it suffers and it requires of other objects." Using object-oriented design methodology, an object existing in the model of reality will have a corresponding structureentity in the solution . As specified in the previous section, each message processed by a switching node goes through three phases: Input, ·switch, and output. Analyzing the problem space , it is observed that there are several different objects participate these three phases (1 / 0 - 5 - de vices for sending and reading messages, a temporary memory for storing messages, a long term memory for backup messages, a refere nce table for destination list, and a switching node schedules message transmission) . The decomposition is show in the figure 2. Using Ada, we can design the system decompositio n in the following way. Msg. boay 1 Ruailiary ~ : Memory 'I / 1 ,_' Msg. header-- ·,, 1\ I I L Oest. line5 Input lines i 1 / I \ . utput --- .t-•\lnput 1-•'-.-tt-~, Switching . _ '._, --~--~ !IIIII --~ Msg. body & header Hn:hiue Tape ·=· =j I I ·· .'i . c-·,.) I Table · l_.~ Figure 2. Message switch system components The auxiliary memory provides a temporary storage for messages. In particular, it provides READ and WRITE processes with sequential structures. For the efficiency reasons, we need to handle each message by blocks rather than characters. It, therefore , has two levels, en tire message level and a block level. The block level is nested inside the message level, since a message is composed of several blocks. This leads to the following Ada specification. package AUX_MEMYKG is type MSG_ACCESS is private; type DIRECTORY_ACCESS is private; procedure WRITE_BLOCK (NEW_BLOCK : in BLOCK; NEW_CELL :in out MSG_ACCESS; AUX_MEM_BLOCK: outMSG_ACCESS); procedure WRITE_DIRECTORY (FIRST_BLOCK :in out MSG_ACCESS; AUX_MEM_HEADER: out DIRECTORY _ACCESS) ; - 6 - procedure READ_BLOCK (NEW _BLOCK :out BLOCK; AUX_MEM_BLOCK :in outMSG_ACCESS); procedure READ _DIRECTORY (FIRST_BLOCK : out MSG_ACCESS; AUX_MEM_HEADER: in out DIRECTORY ACCESS); AUX_MEM_ERROR : exception ; AUX_MEM_OVERFLOW : exception; private end AUX_MEM_FKG Subscribers and trunks are full-duplex, they have both input and output capabilities. Input capability provides the facility for subscribers and trunks reading messages sent to them ; and output capability provides the facility of sending messages to others. Subscribers and trunks handle different devices, but the functionalities are similar. It results the following Ada package design . package NOD E_FKG is function GET_HEADER(PORT : in DEVICE) return HEADER; procedure GET_BLOCK(MSG_TEXT: out BLOCK; EOF :out BOOLEAN); procedure PUT_HEADER(MSG_HEADER: in HEADER; PORT : in DEVICE) ; procedure PUT_BLOCK(MSG_TEXT: in BLOCK); end NODE_FKG; The switch is the central control process of our simulation system. It serves as a coordinator for multiple message destinations . It needs to talk to every subscriber and trunk , knowing the message source and distinguishing the multiple destinations. Therefore switch itself needs "READ " and "WRITE" functions , too. The Ada specification is as the following. package SWITCH_FKG is procedure PUT_HEADER(MSG_HEADER: in HEADER; PORT: in DEVICE) ; procedure PUT_BLOCK (MSG_TEXT : in BLOCK); end SWITCH_FKG; - 7 - B. System Integration Components in a software system are not isolated, but connected together to do a specific task. One important information in the software design is the component integration specification which includes the data flow and control flow specification . Figure 2 shows the data flow. Based upon the system requirement: maximum I/0 parallelism, we choose Ada tasks as interfaces for these components. Ada provides a direct communication mechanism without memory between tasks [4]. It supplies static interfaces between tasks, (i.e., fixed number and type of the entries, and synchronization with rendezvous before communication). This feature also provides necessary visibility requirements in network system . On the other hand, fixed number and type of entries for Ada tasks provide the facility a discrete event system needed. In the message switching system, the messages are transmitted one by one. At all times, a component in the system processes the information not in stream style but a single message. Subscribers and trunks need to communicate with archive tape and auxiliary memory. They also need to communicate with the switch in order to coordinate the message transmission. Those two components repeat the receiving (reading from the auxiliary memory and output to the terminal) and sending (reading from the terminal and writing into both auxiliary and archive tape) actions. During the processing, they only care whether there is any coming message. When they send messages out, they do not concern whether others will read or not. In the same way, the switch needs to communicate with all subscribers and trunks, noticing them there is a message coming. Thus, we add the following specification into the subscriber and trunk package. task COMMUNICATION is entry STARTINGYROCESSING; end COMMUNICATION; For the switch, we add the following task specification into the switch package . task SWITCH is entry STARTING; end SWITCH; The auxiliary memory and archive tape act passively. Until other entities require their actions, the auxiliary memory and archive tape will not communicate with any others. They just wait for request. We specify the interfaces for them as the following. task ARCHIVE_TAPE_HAND LER is entry STARTING; entry ARCHIVE_REQUEST (NEW_MSG : in WHOLE_MSG) ; - 8- en try RETRIEVE_REQUEST (MSG_ID : in ID _RECORD; NEWJvfSG :out WHOLEJvfSG); end ARCHIVE_TAPE_HANDLER; task AUXJvfEM_HANDLER is en try starting; entry WRITEJvfSG (NEWJvfSG.SIZE :in POSITIVE; MSG_BOD Y : in MSG; MSG_ADDRESS :out DIRECTORY _ACCESS) ; entry READJvfSG (NEWJvfSG.SIZE : in POSITIVE; MSG_BODY : out MSG; MSG_ADDRESS : in out DIRECTORY _ACCESS); end A UXJvfEM_HANDLER; 5. Implementation and Simulation Issues We choose Ada as the implementation language, since Ada offers anum ber of features that facilitates the expression of reusable software components, which helps to increase the productivity. For example, generic program units are parameterized templates for generating software components; tasks operates in parallel with other program units; systematic separation between visible syntactic interface specifications and hidden bodies allow the programmer to separate concerns of module interconnections from concerns about how the module performs it task. Ada is used here as an implementation language for message switching system also because it is available in our VAX 11 / 780 under Unix operating system (Verdix Ada 4 .51) , the design written in Ada serves as an intermediate step between detailed system design and coding that helps one develop and reason about the design decisions. A. Global Data Types Subscribers, trunks and switch processes exchange several types of information . The two most important kinds are message header and message body. To facilitate the declaration of variables referring to these types of information and to make use of Ada's type checking facilities, the format of header and block are specified using an individual data package which does not have a body. In particular, a message header and body are specified as the 'followmg. package D A TA_FKG is type DEVICE is (PORT1, POR1'2, PORT3, PORT4, PORTS, PORT6, '@') ; type DESTINATION_LIST is array( l . MAX_OUTPUT_COUNT) of DEVICE; type ID_RECORD 15 --Unique message identifier record _ 9 _ ORIGIN :DEVICE; -- Device ID DATE : CALENDAR.TIME; --Date and time (seconds) end record; type PRIORITY_TYPE is (INFO, ROUTINE, FLASH); -- Possible priorities type HEADER is -- Header record for each message record IDENTIFIER : ID_RECORD; --Message identifier PRIORITY :PRIORITY _TYPE; -- Priority rating SIZE : NATURAL; -- #of blocks of text OUTPUT_COUNT: NATURAL; -- #of destinations DESTINATION : DESTINATION_LIST;-- Destinations of this msg. end record; subtype BLOCK is STRING( 1 . CHARYER_BLOCK); --Block of message text type MSG is array ( LMAX.JviSG_SIZE) of BLOCK; --Entire message text end DATAYKG; B. Message Queue Based upon the requirements for the system , each message has a priority. We decide to use a priority queue to implement priority message transmission. Each time, the switch will process a message that has the highest priority by inserting the message into the destination message queue based upon its priority. And each time, subscribers or trunks will read amessage which has the highest priority from its message queue. Since the message queue is dedicated to its owner, for each subscriber, trunk and switch , we need create one message queue . Ada's generic package· provides a powerful tool in this situation. Generic packages have the ability to create templates of program units with generic parameters that needs at translation time. The specification of generic priority queue is the following. genenc type QUEUE_ENTRY is private; type PRIORITY is limited private; with function PRIORITY_OF(THE_ENTRY : in QUEUE_ENTRY) return PRIORITY; with function " SIGNAL, PRIORITY => PRIORITY_TYPE, PRIORITY_OF => CHECKYRIORITY, " " PORT2, PORT_QUEUE => QUEUE_FKG.SUBSCRIBERLQUEUE, PORT_QUEUE_SEMAPHOR => TABLEYKG.SUBSCRIBERl_QUEUE_8EMAPHOR, GET_HEADER GET_BLOCK PUT_HEADER PUT_BLOCK - 12 - => D EVICE_D RIVERSYKG .GET _HEADER_ VT100, = > D EVI CE_j) RIVERS_?KG .G ET_BLOCK_ VT100, = > D EVI CE_D RIVERSYKG .PUT _HEADER_ VT100, = > D EVICE_D RIVERS_?KG .PUT _BLOCK_ VT100) ; package TRUNK is new NODEYKG (PORT => PORTS, PORT_QUEUE => QUEUEYKG.TRUNK_QUEUE, PORT_QUEUE_.SEMAPHOR => TABLEYKG.TRUNK_QUEUE_8EMAPHOR, GET_HEADER = > DEVICE_DRIVERSYKG.GET_HEADER_TRUNK, GET_BLOCK = > DEVICE_DRIVERSYKG.GET_BLOCK_TRUNK, PUT_HEADER PUT_BLOCK => DEVICE_DRIVERS_?KG.PUT_HEADER_TRUNK, = > D EVICE_j) RIVERSYKG .PUT_BLOCK_TR U NK) ; Here, we need to mention Ada's another good feature , rename. During the system modelling, we specified that it was possible to send messages to the switch . Therefore, the switch also needs function , writing messages to the terminal, just as subscribers and trunks do. For the simulation reasons, we do not need to program two different sets of code to do this. Ada's rename facility provides what we need. The rename facility is used in SWITCHYKG to benefit the reusable component and avoid the ambiguities. The clearer specification for SWITCHYKG is the following. package SWITCHYKG is procedure PUT_HEADER(MSG_HEADER : in HEADER; PORT : in DEVICE) renames D EVI CE_j) RIVERSYKG .PUT _HEADER_ VT100; procedure PUT_BLOCK (MSG_TEXT : in BLOCK) renames D EVI CE_D RIVERSYKG .PUT _BL OCIL VT100; task SWITCH is entry STARTING; end SWITCH; end SWITCHYKG; D. Simulation Control Message switching system is a multiple processing system, but we simulate this multiple 1/ 0 device activities on a single I /0 device -one terminal. It's necessary to synchronize the access to the terminal. This synchronization is implemented by an Ada task. The semantics of - 13 - Ada tasks guarantee the mutual exclusion. Only one task can access the terminal at a time , and if more than one task try to access at the same time, the rest have to wait in an implicit queue so as not to interfere with each other. If those tasks arrive at different times, the first task will be permitted accessing first, the rest wait in the queue based upon the time stamp. The task for synchronizing the terminal access is the following. task IO_$YNC is entry REQUEST.JO_DEVICE; entry RELEASE.JO_DEVICE; end IO_$YNC; task body IO_$YNC is BUSY : BOOLEAN := false ; begin loop select when not BUSY=> or accept REQUEST.JO_D EVICE do BUSY := true ; end REQUEST.JO_DEVICE; accept RELEASE.JO_DEVICE do BUSY :=false; end RELEASE.JO_DEVICE; end select; end loop; end IO_$YNC; Actually, all the message queues should be accessed in a mutual exclusive manner, since subscriber task, trunk task and switch task logically operate in parallel with each other. In our implementation, all message queues are shared by two tasks , the switch task and queue owner task. The switch will insert the coming message to the message queue, and the queue owner will remove the message from the message queue . We need to consider the mutual exclusion problem because the queue operations are not atomic operations based upon our software implementation. If we did not treat queue operations in a mutual exclusive manner then there would be errors. 6. Conclusion Through the design and implementation activities of message switching system, we feel that Ada is suitable for dedicated multiprogramming systems such as the message switch implementation. The major units of Ada-packages, tasks and subprograms-were both - 14 - appropriate and easy to use. One of the easiest ways to tell if a language is suited to the problem is to see whether it helps or hinders the design of system functions into a program implementation. A good target language should guide the organization and implementation by providing a structured framework and adequate facilities [3]. Ada worked well for this switch simulation program organization. For example, the tasks made it easy to implement process communication and synchronization, the package with private data type provided encapsulated implementation algorithm, data abstraction and information hiding. The second positive aspect of Ada is the facility of generic package . It provides much needed reusability and flexibility. The parameters of generic packages can not only be usual variables, but also data types, functions, and procedures. In addition, generic packages can be nested. Those features are just what we needed when we deal with the problems that are logically same. Thirdly, Ada's programming environment allows systematic separation between visible syntactic interface specifications and hidden bodies. Here the separation includes syntactic separation, and compilation separation . Many errors, not only syntax error, but also the static semantics errors, are discovered during the compilation. References [1] G. Booch, Software Components With. Ada, The Benjamin/Cummings Publishing Company, Inc., 1987. [2] P. Wegner, "Capital-Intensive Software Technology," IEEE Software, vol. 1(3), July 1984. [3] G. R. Andrews, "The Design of a Message Switching System: An Application and Evaluation of Modula," IEEE Tran. Software Eng., vol. SE-5(2), March 1979. [4] A. Fantechi, P. Inverardi and N. Lijtmaer, "Using High Level Languages for Local Computer Network Communication: A Case study in Ada," SOFTWARE-PRACTICE and EXPERIENCE, vol. 16(8), August 1980.
BASE
In: Rekabet Dergisi 2012, 13(3): 79-138
SSRN
In: Environmental management: an international journal for decision makers, scientists, and environmental auditors, Band 35, Heft 2, S. 220-230
ISSN: 1432-1009
This paper will present our explorative work in software reusability and concurrent programming. This work was divided into two parts. First, in order to abstract the reusable components, three application problems were tried to be solved by means of object-oriented programming using Ada. Second, in order to address how Ada provides an environment for concurrent programming, several concurrent programming concepts were described using Ada. ; Technical Report 2018-07-ECE-005 Technical Report 87-CSE-11 Reusability and Concurrency Issues in the Real-time Use of Ada* W. P. Yin P. H. Liou Murat M. Tanik This technical report is a reissue of a technical report issued May 1987 Department of Electrical and Computer Engineering University of Alabama at Birn1ingham July 2018 Technical Report 87-CSE-11 REUSABILITY ABD COBCURREIICY ISSUES IB THE REAL-TIME USE OF Ada• V. P. I:in P. B. Liou H. H. Tanik Department of Computer Science and Engineering Southern Methodist University Dallas, Texas 75275 May 1987 *Ada is a registered trade mark of the U.S. government, Ada Joint Program Office. Abstract REUSABILITY AND CONCURRENCY ISSUES IN THE REAL-TIME USE OF Ada* W. P. Yin P. H. Liou M. M. Tanik Department of Computer Science and Engineering Southern Methodist University Dallas, 'IX 75275 This paper will present our explorative work in software reusability and concurrent programming. This work was divided into two parts. First, in order to abstract the reusable components, three application problems were tried to be solved by means of object-oriented programming using A da. Second, in order to address how Ada provides an environment for concurrent programming, several concurrent programming concepts were described using Ada. 1. Introduction Reusability is a general engineering principle . It derives from the desire to avoid duplication and to capture commonality in undertaking classes of inherently similar works[ 1]. When software engineers try to apply this principle to software production, it brings many research questions into the open. The arguments focus on the question that what are the candidates for software reuse, how reusable software components should be stored, how we can locate reusable software components, and how we can incorporate reusable software components into our own software system. Concurrent Programming is the name given to programming notations and techniques for expressing paten tial parallelism and for solving the resulting synchronization and communication problems. Traditionally, the programs that run asynchronously were written in assembly language for the reasons : • High-level languages did not provide the appropriate tools for writing concurrent programs. • High-level languages for concurrent programming were not efficient. However, high-level language programs are easier to test, verify, and modify. Due to the progress on compiler techniques, we can obtain efficient object code for concurrent programs written in a high-level language. Concurrent programming is important because it provides an abstract setting in which studying parallelism becomes possible . The basic problem in writing a concurrent program is to identify the activities which are concurrent. It is also difficult to ensure the correctness of concurrent programs. In addition, concurrent programs are much more difficult to debug than sequential programs. * Ada is a registered trade mark of the U .8. government, Ada Joint Program Offi ce. - 2- Occasionally, asynchronous processes must interact with one another and these interactions can be complex. The following sections constitute a brief presentation of our explorative work for software reusability and concurrent programming using Ada. 2. Reusability Issue 2.1 Software Components and Their Reusability The term "; Computer Software" is used very often by most professionals and many members of the public at large . They feel they understand it. Most professionals have an intuitive feeling of it, but there is no complete and formal definition . Informally, computer software can be regarded as information having two basic formats: non-machine-executable and machine-executable[2]. Any information unit created by a software engineer during software development, such as specification, design, code, data and so on , is a software component. More abstractly, the problem solving knowledge, programming knowledge, problem domain knowledge and other knowledge which are used by software engineers in order to solve a problem by computer software are also software components. These knowledge assume specification, design, code and data as their external formats . Therefore, software reusability manifests itself in many forms . It can roughly be classified into reuse of data, reuse of code including programs, systems and libraries, reuse of programming knowledge including system architecture and detail design , reuse of domain knowledge including specification and reuse of abstract modules[3 ,4] . With respect to the time the reusable components are used , software reusability can be divided into two groups-reusability of components in building a variety of structures and reusability of components in performing a variety of tasks . Figure 1 depicts this idea. 2.2 Software Reusability Problems As a general engineering principle, reusability implies the obvious system benefits of lower cost, increased reliability and easier maintenance. It appears that the reusability principle should be used widely in software engineering. Unfortunately this is not true . According to some statistics, in commercial banking and insurance applications, about 75% of the functions were common ones that occurred in more than one program. There is also statistical data indicating that less than 15% of the code written in 1983 was unique, novel and specific to individual applications while the remaining 85% was more or less generic[3]. The main reason for the above situation is that regardless of the particular programming technique , design methodology or developing environment, software engineering is divided into individual creative processes. The exact nature of those individual process, such as problem identification, conceptual solution , design of implementation, testing of solution and so on , is poorly understood. Hence, reusing the software designed by other people is in general not a simple matter. Besides this , there are other reasons. First, some software is ";malevolent" because it is strongly self-centered and highly proprietary. That means it cannot be reused by organizations other than the developer. Second, even with "; benevolent" software, there are software engineers who may feel that they could produce a "; better" solution anyway. Third, some software may have to be modified excessively to fit the new application precisely. Fourth , some software may require a great effort to be understood in order to be reused. In the last two situations, software engineers would rather rewrite .[ 5] . - 3 - Figure 2 shows reusable component characteristics m terms of their functionality and scope. 2.3. Explorative Work in Software Reusability 2.3.1. The Problems In the following sections three problems are investigated. The problems are the environmental monitor problem[6], the cruise-control problem[7] and the message switching problem [8]. Those three are real-time problems. All of them require parallel processing, realtime control, exception handling and unique input/ output control. 2.3.2. The Method The ";object-oriented methodology" is chosen for solving the problems . Object-oriented methodology is a software approach in which the decomposition of a system is based upon the concept of objects. In real-time systems, often the problem is given by the description of entities, their behaviors and relations among the entities . In addition, object abstraction is a promising avenue for reusability. The object-oriented design methodology has the following steps [6, 7]: • Identify the objects and their attributes. • identify the operations. • Establish the visibility of each object in relation to other objects. • Establish the interface of each object. • Implement each object. 2.3.3. The Language Ada was chosen as the design language. Ada was chosen as a design language because of its rich variety of program units such as subprograms, packages and tasks . It is convenient for software engineers to choose one of the most suitable program units to represent classes of objects, instances of objects and primitive operations of each object. More importantly, the capabilities of Ada make it possible for us to break from the traditional flat, sequential design style into the object-centered design style. In particular, using Ada as a design language can improve the quality of the design by highlighting interfaces and formally capturing many important design decisions. 2.3.4. The Case Studies The case studies are concerned with the use of object-oriented design method for software reusability. The goal of the case-study was to explore how well the object-oriented method can apply the reusability principle. More specifically, how well the object-oriented method can recognize and abstract reusable software components for a specific class of problems (the real-time systems) . In this paper, the detailed case explanations will not be presented. Only are the observations and experiences listed. For each problem, first, a problem definition in problem space is given , then an informal system architecture design in conceptual solution space is presented . In the solution space , the details will be ignored; only objects and their operations are indicated. - 4- 2.3.4.1. Ca.se-1: Environmental Monitor Problem The environmental monitor problem is explained in detail in [6]. The figure 3 is the problem definition abstracted from [ 6] . And the figure 4 is the partial formalization of the system architecture design. Problem~ Objects and their Operations: ( 1) A user interacts with the system by setting the sensor limits, reading the status of all sensors , or q.u.it the system . ( 2) A printer Jlli,n.ts. the current reading of each sensor or s.h.u.t. rl.mYn. by the user. (3) Sensor r.e.ads. temperature or setting limit or s.h.u.t. d.mm. or initialized by user. ( 4) Monitor responds to out-of-limits sensor reading or detects the printer failure by setting an alarm. Also the alarm can be sh.n.t ~ Keeping the object-oriented methodology in mind, the transformation from the figure 3 to figure 4 is straightforward. In the step of identifying the objects and their attributes, the decision for specific representation of objects is delayed . We only take into account what objects in the problem space we are interested in . In general, the nouns denote the objects and the adjectives represent the attributes of each object. After identifying objects, extracting operations appropriate to each object is straightforward . The verbs attached to each object can be abstracted as corresponding operations . Those operations are visible outside. The object together with its operation forms one unit which can be defined by one program unit. The arrows are used to indicate the operation application direction . If there is one arrow from object A to object B, it indicates that the object A does one operation requiring something from B, or triggering B's operation . In this situation , the object A is an active object. If A is a passive object which does not have operations, all the arrows connected to A must point to A. System Specification in A.d.a package PRINTER is task THEYRINTER is entry PRINT_READING (THE_ITEM: in STRING); entry SHUT_DOWN; end THEYRINTER; end PRINTER; package ALARM is task THE_ALARM is entry REPOR T_OF LIMIT; entry REPORTYRINTER_ERROR; entry SHUT_DOWN; end THE_alarm; end ALARM; generic type NAME is ( ); type VALUE is range ; SENSE_RATE: in DURATION; - 5 - with function VALUE_OF (THE_NAME m NAME) return VALUE; with procedure SOUND_ALARM; package SENSORS is task type SENSOR is entry START (THE_NAME : in NAME) ; entry SET_LIMIT (THE_VALUE : in VALUE) ; entry GET_8TATUS (THE_VALUE : out VALUE; OUT_OF LIMITS : out BOOLEAN); entry SHUT_D OWN; end SENSOR; end SENSORS; type COMMAND is (SET_LIMIT, GET_8TATUS, SHUT_DOWN); procedure MONITOR is -- local type declarations -- ALARM task specification -- PRINTER task specification -- SENSOR task specification -- USER_COMMAND declaration -- task bodies begin -- manipulation of USER_COMMAND end MONITOR; Abstractions from ease-l: 1 Object-oriented design methodology is fundamentally different from traditional functional methods. Traditional functional methods factor system in problem space into operational modules in solution space , in which each operation module represents a major step in the overall transformation process. The object-oriented design method decomposes problem around objects that exist in the real world. 2 The object-oriented design method needs different requirement analysis to support. During the problem definition step, the requirement analyst must keep object orientedness in mind, because different analysis will get different problem decompositions. During the problem analysis , a good domain knowledge certainly helps a lot. 3 4 - 6 - It is necessary to use object-oriented system specification methodology during the system specification step. The specification is the result of a process of requirements analysis, and represents the first complete description of the conceptual solution. It contains clear descriptions of the external view of the system the user required along with any related or implied system constraints. The object-oriented system specification ideally closely matches the user's problem. It is desirable to make system specification consistent, completely, comprehensible and traceable to the requirement. Also , the object-oriented s specification will make the transaction between system specification and system design smooth, and easy. It is desirable to keep the system specification to be independent from the implementation . That means the transaction from problem space to conceptual solution space should not be restricted by implementations, especially not limited by the capability of implementation tools. Ada has the design description capability, but there is no direct notations for objects. 2.3.4.2. Ca.se-2: Cruise-Control System The Cruise-Control system problem is given in [7]. A data flow diagram (figure 5) is used to express the problem. This problem is more complicated than the environmental monitor system problem. The data flow diagram gives a clear view of each main step of the system transaction . Using object-oriented method the problem space is abstracted as in figure 6. From problem space the system architecture was abstracted using the object-oriented method (figure 7) . First, the objects and their operations are identified . Especially, the passive objects (no operations) and active objects (having operations) are distinguished; the required operations (triggered externally) and suffered operations (not triggered by outside world) are distinguished. For example, brake and accelerator are passive objects, others are active objects. Throttle has two v visible operations which are triggered by other objects and one invisible operation which is hiding in throttle's body. That invisible operation can only be seen by throttle itself. Problem~ Objects and their Operations: ( 1) Pulse from wheels: A pulse is. 5.f.D.t for every revolution of the wheel (2) Clock: Timing~ every milli-second. ( 3) Driver: If the driver s.fls. system on, it denotes that the cruise-control system should maintain the car speed. Also , the driver may require increasing or decreasing maintained speed when cruise-control on . Or, the driver requires resuming the last maintained speed. ( 4) Brake: If brake is. pressed, then cruise-control temporarily reverts to the manual control. ( 5) Brake state: Cruise-control requires the current brake state . ( 6) Engine state: If engine-on, the cruise-control may be active. (7) Accelerator: Accelerator state is. required by the cruise-control system. (8) Throttle: Setting the throttle value . Abstraction from case-2: - 7 - 1 An object is an entity that exists in time and space . An obje ct also has state . The operations indicate the object's state. Each object will be in one state at one time . The object state may change by the activity of other objects or as the time changes. We can trace the system activity in the state space . 2 We need facilities to indicate the time constraints of the system . For example, the clock's and wheel's operations must be synchronized. and the throttle has one operation-desired speed which can be visible by all the three operations of control increase, decrease and resume . 3 The ease-l and case-2 deal with different problems. The objects abstracted from these two problems are different, except one situation that the control object in cruise-control system is interacting with driver's requirement, the monitor object in environmental monitor system is interacting with user's command. Both system needs an interface with the user who will dynamically input his requirements / commands. This interface can be a reusable component. 2.3.4.3. Ca.se-3: Message Switching System The message switching problem is addressed in [8] . Figure 8 is the problem abstraction . The message switching system consists of a network of switching nodes connected via trunk lines. Each switching node is locally attached to subscribers , an operator, archive tape , and auxiliary memory. The operator can send and receive messages like any subscriber. In addition , the operator monitors and controls the node activity. The function of each node is to route input messages to one or more output destinations . Three successive phases are involved in processing each message: input, switch and output. inputReading input from a local subscriber or trunk link and storing the message on both auxiliary memory and an archive tape . switch Each input message contains a header, body and end marker. The header is examined to determine the output destination. For each destination , a directory is consulted to determine the appropriate output line to use and a copy of the message is queued for output on each distinct line. output A message is retrieved from auxiliary memory and written on the appropriate output line . Each message contains a priority as part of its header so that, at all times, the highest priority message for an output line is transmitted . If preempted, a message is later transmitted in its entirety. Having the experience of solving previous two problems, abstract objects and their operations can be obtained by repeatedly using the object-abstraction. Thus, we get the problem definition in object space (figure 9) and the concept solution (figure 10~. Pro b 1e m 8.p.a.c.e. Objects and their Operations: (1) Switches i.n.p.u.t message head and control signal. (2) Switches s.tu.r.e. the message on the auxiliary memory. (3) Switches archive message on the tape. . 8 . ( 4) Switches consult the cross-reference table to determine the appropriate output port. (5) Switches handle th e output message priority and preemption-output queue. (5) Switches output the message head and control signal to the output port. (7) Operator monitors the switch system . (8) Output ports retrieve the message body. This problem solution must solve the following four problems: • maximize I/ 0 parallelism , • control different I/0 devices, • coordinate mode activity, • handle output message preemptions. System Specification in A.d.a type MSG_A.DDR is STRING(l.20); type MSG is record HEAD : STRING(l.20); BODY: STRING(l.lOO); end record; task type ARCHIVE_TAPE is entry ARCHIVE (THE_NISG: in MSG); end ARCHIVE_TAPE; task type AUX_MEM is entry OUTPUT_NISG (THE_NISG_A.DDR in MSG_A.DDR); entry INPUT . MSG (THE_NISG_A.DDR : in MSG_A.DDR); end AUX_MEM; task type OUTPUT_CONTROL IS entry OUTPUT. . Jv1SG ( OUTPUT_pORT THE_NISG_A.DDR : in end OUTPUT_CONTROL; task type SWITCH is in STRING(1.20); MSG_A.DDR); entry INPUT_CONTROL (THE_NISG in MSG); end SWITCH; task type OPERA TORS is entry INPUT_MSG (THE_MSG m MSG); end OPERA TORS; task type SUBSCRIBER is entry INPUT.Jv1SG (THE_NISG in MSG); end SUBSCRIBER; OPERA TOR : OPERATORS; task body OPERA TOR is -- local type declarations -- ARCHIVE TAPE task declaration - g - -- AUXILIARY MEMORY task declaration -- OUTPUT CONTROL task declaration -- REFERENCE TABLE data structure declaration -- OUTPUT QUEUE data structure declaration THE.BUBSCRIBER : array ( 1.100) of SUBSCRIBER; task body THE.BUBSCRIBER is task OUTPUT_MSG; • • • end THE.BUBSCRIBER; THE.BWITCH : SWITCH; task body THE.BWITCH is procedure STORE_MSG (THE_MSG in MSG); procedure ARCHIVE_MSG (THE_MSG : in MSG); procedure CONSULT_TABLE (OUTPUT _FORT : out STRING( 1.10); THE_MSG : in MSG) ; procedure PREEMPTION (THE_MSG : in MSG; -- subprogram body • • • end THE.BWITCH ; -- other task bodies begin loop PRIORITY : out INTEGER); accept INPUT_MSG ( THE_MSG in MSG) do • • • end INPUT_MSG; end loop; end OPERATOR; - 10- Abstractions from case-3: 1 2 Using the object-oriented method to do system design really requires a great deal of real world knowledge and intuitive understanding of the problem, especially for abstracting operations. Listing the goal of the system requirements helps to decide which object should do which operation . For example, for this specific problem, the solution must solve the maximizing I / 0 parallelism and control different I/0 devices, it had better make auxiliary memory and archive-tape become active objects. The control issue and time constraint are important. It definitely needs some facilities to specify them . For example, the input-control for switch needs to specify its input trigger is exclusive OR, its output is sequential. In system architecture design using Ada, it seems that Ada's program units are not sufficient for this specification. 3 The three case studies come from different application fields. The software systems are required for different purposes. They deal with totally different objects. From the domain object level, it is not clear what is the reusable component. 2.3.5. Summary of Reusability Concepts 1 2 3 Software reusability is an attribute of software relative to its applicability in different computational contexts as well as different application areas. The object-oriented methodology is a better fit for real applications than other traditional methodologies. It is at least useful to apply reusability principle in the same application domain. Reusable software components tend to be objects or classes of objects. Given a rich set of reusable software components, the implementation would proceed via composition of these parts, rather than further decomposition. The greater abstraction of object models provides greater potential reusability. The level of abstraction has a great effect on reusability. Higher the abstraction, the greater overhead it may require for interpretation and it provides less intuitive understanding. Lower the abstraction, the chance of recognizing reusable components become less. 3. Concurrency Issues 3.1. Synchronization In a real time system, several processes may access the same data at the same time . This situation may result in inconsistent data. A language dealing with concurrent programming must guard against this possibility. That is, the language must provide the means to guard against time-dependent errors. When a process is accessing shared data, the process is said to be in its critical section ( or critical region). The concept of allowing only one process into its critical region at a time is known as mutual exclusion. An elegant software implementation of mutual exclusion was presented by Dekker. Dijkstra also abstracted the key notation of mutual exclusion in his concept of semaphores [10] . 3.1.1. Semaphores A semaphores is a protected integer variable which can take on only non-zero values and whose value can be accessed and altered only by the operations P(s), stands for wait, and V(s), stands for signal, and an initialization operation. Binary semaphores can accept only the - 11 - values 0 or 1. General semaphores can accept non-negative integer values . The definition of P and S is as follows : P(s): If s > 0 then s :=s- 1 else the execution of the process that called P(s) is suspended. V(s) :If some process P has been suspended by a previous P(s) on the semaphores then wake up P else s := s + 1 3.1.2. Monitors The above methods are so primitive that it is difficult to express solutions for more complex concurrency problems, and their presence in concurrent programs increases the existing difficulty of proving program correctness [ 12]. Another drawback of the above methods was that every procedure had to provide its own synchronization explicitly. A desire to provide the appropriate synchronization automatically led to the development of a new construct, a monitor [10]. A monitor is a concurrency construct that contains both the data and the procedures needed to perform allocation of a shared resource or group of shared resources. The monitor enforces information hiding - processes calling the monitor have no idea of, nor access to, data inside the monitor. Mutual exclusion is rigidly enforced at the monitor boundary- only one process at a time is allowed to enter. If a process inside the monitor cannot proceed until a certain condition becomes true, the process calls wait (variables name) and waits outside the monitor on a queue for ";variables name" to be signaled by another process. To ensure that a process already waiting for a resource eventually does get it, the monitor gives higher priority to a waiting process relative to a new requesting process attempting to enter the monitor. A process calling wait is threaded into the queue; a process calling signal causes a waiting process to be removed from the queue. 3.2. Ada Rendezvous Ada is a higher-level program mg language which can be used for conventional programming. In this section, we are concerned with the features of Ada related to concurrent programming. Central to these features is the concept of the task which is a program module that is executed asynchronously. Tasks may communicate and synchronize their actions through : 1 accept statement: It is a combination of procedure calls and message transfer. 2 select statement : It is a non-deterministic control structure based on guarded command construct. The BNF of them are : accept statement has the form : accept entry~imple_name [( entry_index)] [formal_part] do sequence_of~tatemen ts end [ entry~imple_name]; select statement has the form : select [when boolean_expression =>] - 12- acce p L.s tate men t seq ue n ce_of .s tatements {or [when boolean_expression =>] acce pt.s tatemen t} se qu ence_of.s tatemen ts [else se quence _of.s tatemen ts] end select; Following sections are Ada programs that implement the above mentioned concurrent problems. 3.2.1. Dekker's Algorithm procedure DEKKER is FAVOREDPROCESS : INTEGER; Pl WANTSTOENTER, P2WANTSTOENTER : BOOLEAN; procedure TWOYROC (PlWANTSTOENTER, P2WANTSTOENTER : in out BOOLEAN; FAVORED PROCESS : in out INTEGER) is task Pl; task body Pl is begin loop Pl WANTSTOENTER :=TRUE; while P2WANTSTOENTER loop if FAVOREDPROCESS = 2 then Pl W ANTSTOENTER := FALSE; while FAVOREDPROCESS = 2 loop null; busy waiting end loop; PlWANTSTOENTER :=TRUE; end if; -- you can enter critical region for Pl from here FAVOREDPROCESS := 2; PlWANTSTOENTER :=FALSE; -- you may put other s tuff here end loop; end loop; endPl; task P2; task body P2 is begin P2WANTSTOENTER :=TRUE; while Pl WANTS TO ENTER loop - 13 - ifF A VORED PROCESS = 1 then P2WANTSTOENTER := FALSE; while FAVORED PROCESS = 1 loop null; busy waiting end loop; P2WANTSTOENTER :=TRUE; end if; -- you may enter critical region for P2 form here FAVOREDPROCESS := 1; P2WANTSTOENTER :=FALSE; --you may put other stuff here end loop; end loop; endP2; begin null; -- main program for TWO_pROC end TWO_pROC; begin P1 W ANTSTOENTER := FALSE; P2WANTSTOENTER :=FALSE; FAVORED PROCESS := 1; TWO_pROC (P1wantstoenter, P2wantstoenter, favoredprocess) ; end DEKKER; 3.2.2. Semaphore (Binary) The following are two approaches of Binary Semaphore . The first one is described in [10] and the second one exactly follows the original definition of sem aphore. 3.2.2.1. procedure BINARY ,SEMAPHORE is ta.sk SEMAPHORE is entry P; entryV; end SEMAPHORE; ta.sk body SEMAPHORE is begin loop accept P; only after P has been called that V accept V; can be accepted and vice versa end loop; end SEMAPHORE; task Pl; task body P 1 is begin loop - 14- -- you may put the remainde r of the program one here SEMAPHORE.P; -- call the P entry -- now you can go ahe ad to access the critical region SEMAPHORE.V; -- call the V entry end loop; end Pl; task P2; task body P2 is begin loop -- you may put the remainder of the program one here SEMAPHORE.P; -- call the Pen try -- now you can go ahead to access the critical region SEMAPHORE.V; -- call the V entry end loop; end P2; begin -- main program for BINARY_8EMAPHORE null; end BINARY_8EMAPHORE; 3.2.2.2. According to the definition, semaphore is a protected variable whose value can be accessed and altered by operations P and V and initial operation. So, we declare semaphore as private type and only those subroutines inside this package can access its value package BIN_8EMAPHORE is type SEMAPHORE is private; procedure P (S: in out SEMAPHORE); procedure V (S: in out SEMAPHORE); procedure INITIAL_8EMAPHORE(S: in out SEMAPHORE; VALUE : in INTEGER); private type SEMAPHORE is record VAL : INTEGER; end record; end; package body BIN.SEMAPH ORE is NO_ WAITING :INTEGER := 0; - 15 - -- Il:um her of processes that have been suspended task CONTROL is entry SUSPEND ; entry W AKE_UP; end; task body CONTROL is begin loop accept WAKE_UP do accept SUSPEND; end; end loop; end CONTROL; procedure P (S : in out SEMAPHORE) is begin if S.VAL > 0 then S.VAL := S.VAL - 1; else NO_ WAITING := NO_WAITING + 1; CONTROL.SUSPEND; -- suspend the process end if; endP; procedure V (S : in out SEMAPHORE) is begin if NO_ WAITING > 0 then CONTROL.WAKE_UP; -- wakeup one of the suspended processes NO_WAITING := NO_WAITING- 1; else S.VAL := S.VAL + 1; end if; end V; procedure INITIAL.SEMAPHORE (S: in out SEMAPHORE; VALUE : in INTEGER) is begin S.V AL :=VALUE; end INITIAL_sEMAPH ORE; end BIN_sEMAPH ORE; - 16 - with BIN_sEMAPHORE; use BIN_sEMAPHORE; procedure SEMAPH ORE_EXAMPLE is S: SEMAPHORE; procedure TWOYROC is task PROCESSONE; task body PROCESSONE is begin loop -- put some stuff here P(S); -- now you are inside the critical region one V(S); -- put some other stuff here end loop; end PROCESSONE; task PROCESSTWO; task body PROCESSTWO is begin loop -- put some stuff here P(S); -- now you are inside the critical region two V(S); end loop; end PROCESSTWO; begin null; -- main program for two_proc end TWOYROC; begin -- main program for semaphore example INITIAL_sEMAPHORE(S, 1); TWOYROC; -- now, two processes are executing concurrently - 17 - end SEMAPH ORE_EXAMPLE; 3.2.3. Binary Semaphore Using Monitor Concept In the following example we describe the implementation of a binary semaphore by a monitor written in Ada. generic package GENERIC_MONITOR is task type COND PTR is entry WAIT; entry SIGNAL; end COND PTR; type CONDITION is access COND PTR; -- This condition type of variab le provides a queue for wait entry, also for the signal entry. end GENERIC_MONITOR; package body GENERIC_MONITOR is task body COND PTR is begin loop accept SIGNAL do accept WAIT; end; end loop; end CONDPTR; end GENERIC_MONITOR; with GENERIC_MONITOR; procedure SEMAPHORE_USE_MONITOR is This package(monitor) performs information hiding. Procedures calling the monitor have no idea of, nor access to, data inside the monitor. package MONITOR is procedure P; procedure V; end MONITOR; package body MONITOR is - 18- package TEMP is new GENERIC_MONITOR; use TEMP; NOT_BUSY : CONDITION; BUSY: BOOLEAN := FALSE; procedure P is begin if BUSY then NOT_BUSY.WAIT; -- wait entry provides a queue for the -- procedures waiting to be accepted end if; BUSY :=TRUE; endP; procedure V is begin BUSY := FALSE; NOT_BUSY.SIGNAL; -- wake up the procedure at the first -- on the queue of wait entry endV; end MONITOR; use MONITOR; procedure TWOYROC is task P1 ; task body P1 is begin loop P; -- you can enter the critical region 1 now V ; -- you may put the rest of the stuff here end loop; endP1; task P2; task body P2 is begin loop P; -- you can enter the critical region 2 now V; -- you may put the rest of the stuff here end loop; end P2 ; - 1 g - begin -- main program of two_proc null; now Pl and P2 are executing concurrently end TWOYROC; begin -- main program of SEMAPHORE_USE_MONITOR TWO_?ROC; end SEMAPHORE_USE_MONITOR; 3.3. Real-Time Interrupt Handling Efficient interrupt handling is critical in real-time environments. Interrupts are used to control the transfer of data to and from external devices, which often generate interrupts at high frequencies. If the interrupt is not handled quickly, external data can be lost or overall efficiency of the system can be severely degraded . Real-time performance requirements are determined by the minimum time between arrival of interrupts and the maximum time that can elapse while an interrupt is pending before data are lost or a hardware time-out occurs. When an interrupt occurs, a processor must begin executing code in another environment. Context switching is machine dependent, and in most modern computers it is supported by special privileged instructions. Interrupt handling takes at least two context switches, one from the program currently running to the interrupt handler and one at the completion of the interrupt handler. However, neither of these need to be full context switches, nor do interrupts need to be disabled for long. 3.3.1. Language Mechanisms for Interrupt Handlers in Ada Most real-time software for embedded systems use interrupt handlers to control and communicate with external devices . Interrupt handlers are usually responsible for initializing devices, initiating physical I/0 operations and responding to both anticipated and unanticipated interrupts. Ideally, interrupts would arrive only as a direct consequence of a previously issued software command. However, in practice, interrupts can arrive unexpectedly or fail to arrive when expected. Interrupt handlers have traditionally been written in assembly language because few high-level languages provide support for interrupts and because interrupt handlers must often meet severe real-time constraints [15] . Mechanisms for implementing interrupt handlers provided by systems programming languages such as Concurrent Pascal and Modubv-2 are usually not optimized for real-time applications. Since Ada was intended for embedded applications, interrupt-handling mechanisms were integrated into Ada. The Ada Language Reference Manual (LRM) [18] briefly describes interrupt handlers and their semantics (in sec. 13.7) . The following example from the LRM illustrates the specification of an interrupt handler: t.a.sk INTERRUPT_HAND LER is entry DONE; for DONE use at 16#40#; end INTERRUPT_HANDLER; - 20- The task specification n, or interface, de fines each externally visible task operation , referred to as an entry. The semantics of an interrupt is defined in terms of the rendezvous which was dis- [ cussed in previous sections. Each Ada process, or task, declares a list of entry procedures that can be called by other tasks. A rendezvous occurs between a calling task and the serving task when the caller is waiting to execute an entry call, and the server is waiting to accept the en try call. Each task specification must have a corresponding body that contains the executable code of the task. The following is a more realistic example of an interrupt handler for a printer device [ which illustrates some of the hardware and software run-time support actions that must be considered when programming interrupt handlers. task PRINTER_8ERVER is entry OUTPUT__LINE (ST : in STRING); entry IO_INTERRUPT; for IO_INrERRUPT use at 16#1234#; end PRINTER_8ERVER; task body PRINTER_8ERVER is HARDWAREYORT : CHARACTER; for HARDWAREYORT use at 16#1234#; begin loop accept OUTPUT__LINE (ST : in STRING) do for INDEX in ST'RANGE loop HARDWAREYORT := ST(INDEX); accept IO_INTERRUPT; end loop end OUTPUT__LINE; HARDWAREYORT := ASCII.CR; accept IO_INTERRUPT do HARDWAREYORT := ASCII.LF; end IO_lNTERRUPT; accept IO_INTERRUPT; end loop; end PRINTER_8ERVER; The above example illustrates how it is possible in Ada to serve the same interrupt entry point with different accept bodies. 3.3.2. Interrupt Handling Model in Ada Hardware interrupts generated by a device or its controller are usually described informally by means of flowcharts and timing diagrams, in contrast to software whose behaviour is defined by a program . A uniform description of both the hardware and software makes it possible to define a model for a general-purpose , interrupt-handling mechanism [17]. The complete chain of control from the hardware to the server can be modeled by three Ada tasks , where the first two are asynchronous tasks external to the server. The first task - 21 - represents a hardware device, which is a producer of interrupts and a producer or consumer of data. The second task represents the hardware /software interface , and performs interrupt enabling , disabling and context switching outside the normal Ada rendezvous mechanisms. The task specifications are as follows: HARDWARE_DATA : DEVICE_DEPENDENT; task ASYNCHRONOUS_HARDWARE; task INTERFACE is entry D ISPA TCHJNTERRUPT; end INTERFACE; task SERVER is entry OUTPUT_LINE (ST: in STRING) ; entry IOJNTERRUPT; for IOJNTERRUPT use at 16#1234#; end SERVER; The advantage of adopting an Ada model for devices and their run-time support is that the semantics of interrupt handling can be defined entirely in Ada. This model can be used conveniently to illustrate some of the problems an effective implementation must be able to handle : 1. hardware that generates interrupts at power-up and in error situations where there is no Ada program or handler ready to serve interrupts 2. hardware that generates spurious interrupts when the interrupt handlers are not ready to serve interrupts 3. hardware that requires immediate action on the interrupt to prevent the loss of data 4. a hardware interrupt that demands a specific program action to mask it out so that it is not constantly pending. 3.3.2.1. The Hardware/Software Interface The interface is modeled by a task representing the connection between the hardware and server tasks that are running concurrently on two conceptually different processors with a need to communicate. The hardware task has no knowledge of the state of the software and can try to interact with it at unexpected times. Some hardware tasks must be serviced immediately, even if the server is not ready, and can therefore generate unexpected interrupts (and race conditions in the server) when interrupt handlers are too slow to handle successive interrupts. A model for robust and usable interrupt support environment must provide services for situations in which either software or hardware is malfunctioning. This kind of failure handling can be represented by the following body of the interface task . task body INTERFACE is begin loop - 22- accept DISPATCHJNTERRUPT do select-- conditional en try call SERVER.IOJNTERRUPT; else FAIL URE_8ERVER.SERVER_NOT_READ Y; end select; end DISPATCHJNTERRUPT; end loop; end INTERFACE; 3.3.2.2. The Hardware Task The Ada hardware task example below models many of the problems caused by actual hardware . In the ex ample , the server and interface tasks communicate with the hardware task v1a a global HARDWARE_DATA variable, which includes the fields INTERRUPT_ENABLED , STARTJO and IO_DA TA. task body ASYNCHRONOUS_HARD WARE is -- lo cal declarations procedure GENERATEJNTERRUPT(TIMEOUT NATURAL) is begin PENDING JNTERR UPT: for I in O . TIMEOUT loop if HARDWARE_DATA.INTERRUPT_ENABLED then select -- conditional en try call INTERF A CE.D ISPA TCHJNTERRUPT; ifDATA_UNSTABLE then HARDWARE_DATA.IO_DATA := IND ETERMINANT; end if; exit PENDINGJNTERRUPT; else if DATA_UNSTABLE then HARDWARE_DATA.IO_DATA end if; end select; end if; end loop PENDINGJNTERRUPT; end GENERA TEJNTERRUPT; begin loop IND ETERMINANT; SERVICEJNTERVAL := SERVICEJNTERV AL + 1; if SERVICEJNTERVAL > SERVICE_TIMEOUT then GENERATEJNTERRUPT (INTERRUPT_TIMEOUT) ; SERVICEJNTERVAL := 0; end if; if HARDWARE_DATA.STARTJO then - 23- for I in O . DO_IO_TIME loop null; end loop; HARD WARE.J) ATA.IO_DA TA :=VALID _DATA; GENERA TE_INTERRUPT ( IO_D ONE_TIMEOUT); end if; end loop; end ASYNCHRONOUS.JIARD WARE; The hardware and interface model is sufficiently general to cover a wide range of hardware devices and enables a specification of requirements for designing a system hardware support package. Without such a formal definition, it is difficult to verify the correctness of the interrupt run-time support package. In addition, the model permits a software task to simulate a hardware device and test the interrupt run-time support package. 3.4. Conclusion The traditional approach to implementing interrupt handlers using assembly language le ads to systems that are difficult to develop, maintain or adapt to new hardware and software requirements. By providing a high-level interface, Ada simplifies the design and maintenance of interrupt handlers . And Ada defines the semantics of tasking mechanism, making it possible to construct asynchronous and synchronous programming models. Ada not only provides a powerful tool from software resuability point of view but also provides a powerful tools for concurrent programming. It really is "; The Language for the 1980s ";(May be 1990s). References [1] P.Wegner ";Capital-Intensive Software Technology,"; IEEE Software, Vol. 1, No.3, July, 1984, p. 3-45. [2] R. S. Pressman, Software Engineering, McGRAW-HILL, Inc. 1987, p. 5-8. [3] T . C. Jones , ";Reusability In Programming: A Survey of the State of the Art,"; IEEE Trans. Software Eng., Vol. SE-10, No.5, sept. 1984, p. 488-497. [ 4] G. Jones, ";Software Reusability: Approaches and Issues,"; Pro c. of IEEE computer Software f3 Applications Gonf., Nov. 1984, p. 476-477 . [ 5] M. D . Lubars, ";Code Reusability in the Large vs . in the Small,"; AG!vf SIGSOFT Software Engineering Notes, Vol. 11, No.1, Jan. 1986, p. 21-27. [6] G . Booch, Software Engineering With Ada, The Benjamin/Cummings Publishing Company, Inc., 1987, p. 334-354. [7] G. Booch, "; Object-Oriented Development,"; IEEE Trans. software Eng., Vol. SE-12, No. 2, Feb. 1986, p. 211-221. [8] G . R. Andrews, ";The Design of a Message Switching System : An Application and Evaluation of Modula,"; IEEE Trans. Software Eng., Vol. SE-5, No.2, Mar. 1979, p. 138- 147. [9] J. G . P. Barnes, Programming in Ada, Addison-Wesley, 1984. - 24- [10] M. Ben-Ari, Principles of Concurrent Programming, Prentice-Hall International, 1983. [11] G. Booch , Software Engineering with Ada, Benhamin/Cummings, 1983. [ 12] H. M. D eitel, An Introduction to Operating System, Addison-Wesley, 1983. r [13] J. Peterson and A. Silberschatz, Operating System Concepts, Addison-Wesley, 1983 . [ 14] M. M. Tanik, ";A Comparative Study of Synchronization Models Exploitable for Real [ Time Software Development Environment Design and Testing", SMU Technical Report 87-CSE-1, 1987. M. M. Tanik, ";Message Based Kernel in Communications", AACI Tech . Report, 1984. ( [ 16] ";Analyzing Ada Concurrent Programming", ACM Ada LETTERS, March-April, 1987. [ 17] J. B. Rasmussen and B. Appelbe, ";Real-time Interrupt Handling in Ada", Software Practice and Experience, Vol. 17, No. 3, Mar. 1987, p.197-213. [18] United States Department of Defense, Reference Manual for the Ada Programming Language, ANSI/MIL-STD 1815A, Feb. 1983.
BASE
In: Environmental management: an international journal for decision makers, scientists, and environmental auditors, Band 26, Heft 6, S. 607-614
ISSN: 1432-1009