Sie sind auf Seite 1von 18

Distributed Software Development 2013

A&M (Imaginary Company)

Modern Human Machine Interfaces (HMI) with Touch Display


Proposed by: Angelus Vincent P. Guilalas

Final Project

Page 1

Distributed Software Development 2013


I. ITRODUCTION Software development is an intense collaborative process where success depends on the ability to create, share and integrate information. Given the trend towards globalization in the software development industry, distance creates an additional challenge to development processes, as fewer opportunities for rich interaction and lower frequencies of direct communication. Here it introduces taxonomy of software engineering tools for distributed projects and presents collaborative development environments, ranging from classic platforms for dispersed developers in open source software projects to modern environments for flexible and distributed processes. Moreover, it introduces computermediated communication theories which reveal some patterns of tool usage to overcome the challenges of distance. Building upon the theoretical background of media selection, and summarizes research activities aimed to build an evidence-based model of task-technology fit for communication-intensive activities such as distributed projects. Distributed software development takes a concurrent rather than sequential development approach, effectively using iteration to show progress and manage risk. This provides a basis for more rapid development, with smooth transitioning from one stage of a project to the next as well as continuous delivery of staged results that are of value in the total solution. The use of this approach implies iteration with a checkpoint at the conclusion of each stage to validate the quality of stage results, as well as the scope of the next stage. In addition to concurrency across stages, a release-based strategy ensures that there are short intervals between incremental releases of tangible results. This ensures that the direction of the project can be adjusted dynamically to accommodate critical events and needs. In order to support collaborative work on their projects, software engineers communicate both directly, through meetings and informal conversations, and indirectly, by means of software artifacts. Adequate tool support is paramount to enable collaboration in distributed software development. However, most work in collaborative environments for distributed development has focused on codespecific tasks rather than on other software engineering activities at a higher level of abstraction like requirements engineering or software design. Collaboration in Distributed Software Development scenario is significantly affected by the stakeholders, developers teams geographical distributed. There is a need to further our knowledge of what is the most appropriate collaboration tool set to achieve a

Final Project

Page 2

Distributed Software Development 2013


shared understanding among distributed project stakeholders, then distributed software development can be benefited from an interdisciplinary approach. The subject is A&M Company which is a software development firm with the main office in New York, United States and the auxiliary office at Cebu City, Philippines, and Singapore. A&M Software stands for innovation, competency and quality. Being 25 years in business, A&M has gained the reputation as a reliable partner for many renowned customers worldwide. Our vast industry know-how is reflected in a wide range of innovative and unique software solutions that we have developed for and together with our customers in the factory- and process automation, maritime technology, mechanical engineering, building automation and energy technology. A&M is the competent service provider for all matters concerning software products in the industrial automation. Our service portfolio includes Management & Technology Consulting, Software Development, Quality Assurance, IT Operations & Services and Software Maintenance & Support. We mainly focus on solutions for Human Machine Interfaces (HMI), device integration, engineering systems and web applications. The companys headquarter is in New York, United States. Our subsidiary in Talamban, Cebu City, Philippines was established in 2005 while the innovation center in Singapore was founded on November 2007. There we do not only serve the upcoming markets in Asia, but also offer offshore development services to our customers in Europe and America in a proven A&M quality to significant price advantages. Offshore-Development with A&M is different. To us, offshore development means distributed development of your software by mixed project teams, which comprise Americans, Filipino and Singaporean software developers. This offer holds the following benefits for you:

Substantially reduced average hourly rates, due to a mix of Americans , Filipino and Singaporeans team members

Faster realization through the deployment of additional, highly qualified software engineers in Philippines, Singapore

Final Project

Page 3

Distributed Software Development 2013

Convenient communication. You interface exclusively with our staff in America. They will coordinate the upcoming development tasks with their colleagues in Philippines, and Singapore

We avoid the overhead with a pure interpreter-frontend without real technical know-how. Your contact persons in New York, USA are technical project managers and architects, who actively participate in the development of your project and who are responsible for the quality of the end product

No disadvantages in productivity. Our Filipino and Singaporeans colleagues are highly qualified. Their technical standard is as good as ours here in USA and they speak perfect English

A low fluctuation rate means stable teams. The special A&M team spirit also reigns supreme among our colleagues in Philippines and Singapore

Ideal starting conditions for cost-efficient maintenance of the finished software. There is no need for a costly transfer to a new team.

II. RATIONALE The proposed distributed project is to develop and implement solutions for Modern Human Machine Interfaces (HMI) with Touch Display. This is a user interface in a manufacturing or process control system which provides a graphics-based visualization of an industrial control and monitoring system. Based on studies Poor HMI designs have been identified as factors contributing to abnormal situations, billions of dollars of lost production, accidents, and fatalities. Many HMIs actually impede rather than assist operators. Many of the poor designs are holdovers due to the limitations of early control systems and the lack of knowledge of system designers. However, with the advent of newer and more powerful systems, these limitations no longer apply. Also, decades of research has identified better implementation methods. Unfortunately, change is difficult and people continue to follow poor design practices. The development of modern human machine interfaces with touch displays poses a new challenge for manufacturers of industrial devices and machines. The users have highest expectations regarding design and intuitive usability, projecting their everyday experience with handling consumer devices such as iPhone, iPad, or Tablet-PCs onto industrial applications. These user requirements need workflow-oriented interaction models and a first-class UI design. User guidance and screen layout of the individual interaction scenarios have to be adapted to achieve sound finger operation.

Final Project

Page 4

Distributed Software Development 2013


a. Why touch interfaces? Touch-sensitive displays have become widely accepted not only in the consumer industry. While in the past industrial applications were mainly operated via key panels, membrane keyboards or even external interfaces like keyboards or mouse, touch-sensitive displays are more and more taking over. The driving force is the economic benefit for manufacturers of equipment, machinery and plants: Their popularity in consumer electronics has dramatically brought down the cost of touch interfaces - with continuously increasing quality (resolution, size, colors, reliability, industryfitness) Touch interfaces combine display and operating elements in the most confined space and reduce space and cost for machine operation Interfaces as a human machine interface can visualize additional information for the user (application support / work instructions, graphic representation of fault causes, dash boards, etc.) In contrast to keyboard and mouse, touch interfaces are more appropriate for hygiene measures and are therefore increasingly used in medical engineering, amongst others Extensive feature enhancements with updates can be incorporated into touch interfaces with great flexibility. Space requirements for operating elements remain the same in spite of varying functionalities of machine types and generations

With the GUI design supporting intuitive operation of devices and machines, the entire economic potential of touch interfaces is highlighted: A good and easy to understand user interface, adapted to language, application and situation, can considerably reduce training cost for the operating personnel Comprehensive work instructions for the operator, according to the situation, through to complete workflows for configuration and / or correction of errors allow for an operation of equipment with less user errors and thus more productivity With a comprehensible way of operation, more complex functionalities and specific machine advantages can be utilized by the operator A modern and superior operating concept can differentiate the products of a manufacturer from the competition, improve brand communication and enhance customer loyalty Final Project Page 5

Distributed Software Development 2013


b. Why traditional development methods fail for touch interfaces Traditional software development is sequential. Summarized, the practice is as follows: Functional software is developed on the basis of specifications. Only afterwards, the user interface is created - and more often than not by the developers of the functional software itself. The result is that in the majority of cases the GUI is created in a very technology- and function-focused way. At best, only after the development of the first GUIs by the software developers, graphical artists and designers will be involved to apply cosmetic changes to the user interface. Without knowing users and applications, they can only change the visual design (icons, colors and fonts), but not the operating concept. An involvement of users in the development process often does not take place or, if at all, only at a very late stage. At this late time in the development process, requests for changes are usually refused due to cost and time expenditures or the already imminent launch of the product, since major changes to the user interface cause complex changes to the software itself. The consequences of this procedure are reflected in the users reactions: User interfaces are perceived as being complex, confusing or even "unusable". The operating concept, generated from the developer's point of view, in many ways does not meet the requirements and operation sequences in practice. Countermeasures are expensive trainings. In a nutshell: Instead of making a device intuitively usable, the operation is being trained and learned. Thus the product can later be operated reliably by well-trained core staff and in standard functions. Personnel changes, the use of rarely used features or advanced configuration options, however, lead to operating errors, declining productivity and high cost. Indirectly, the uncertainties and training expenses are reasons for customers and users to consider the introduction of new machine models as extremely complicated and to delay it in practice. The manufacturer should be encouraged to reconsider the optimization of its human machine interface, at the latest when facing these indirect effects and economic concerns. In addition, the widespread use of attractive touch display interfaces in consumer electronics creates subconscious expectations of users. The demand on functionality, ergonomics and an attractive look and feel is increasing and makes HMI development more challenging. It is a fact that, in many cases, manufacturers of industrial applications do not have the necessary experience to develop an intuitive and appealing touch interface operating concept. The following three aspects appear to be vital: The design of operating surfaces for touch interfaces is subject to its own rules. A transfer of usability concepts from PC software is not possible even when using large

Final Project

Page 6

Distributed Software Development 2013


touch displays. The often tried 1:1 reproduction fails regularly. The involvement of usability experts, specialized tools and new development processes is essential. Equipment and machine operators need a comprehensive, highly efficient operating concept that is close to applied practice. The users, in particular, have to be involved in the development process. The design of innovative touch interfaces requires intensive interdisciplinary and often multi-site collaboration of application specialists, ergonomists, design engineers / computer scientists and users in an iterative, user-centered process framework. New methods and systems have to be implemented for the team work (collaboration infrastructures (DSD) in order to make this cooperation efficient and to further reduce the development time despite the complexity of the project. The proposed Modern Human Machine Interface (HMI) with Touch Display will look to these conditions and find ways, methods for a successful development of innovative touch interfaces. There are best practice approaches, proven and tested methods and tools that development managers and product managers can use to prepare their own processes and development staff for new challenges. This proposal presents methods, processes and software development tools that have proven to be successful in the development of award-winning HMI projects. The key success components of this approach are the early and intensive involvement of users in the development process and the parallel and agile development of interface design and software. The installation of an infrastructure for distributed development (Distributed Development Platform) allows for an efficient division of labor between specialist teams for the development of hardware, software and user interfaces. A&M offers support for the development of touch interfaces tailored to your requirements from developing an interaction concept to establishing a development platform to embedding an optimized control system into an ergonomic user interface achieving highest standards in design and usability. To this end A&M has developed an innovative procedure model based on best practice experience. c. PHASES The location where the development and the planning stage is done at the head quarters in New York, USA because it is located close to the technical university and pursues a lively national and international knowledge exchange. It transfers promising topics from research and academics to industrial-standard applications, products and approaches.

Final Project

Page 7

Distributed Software Development 2013


Our subsidiary office in Talamban, Cebu City, Philippines takes the responsibility for the support in series for all diagnostic parts of the new infotainment system MMI-3G. This includes the Specification, Analysis, Design and Operation of test systems as well as the Planning and Execution of tests. The tests are executed on a diagnostic and flash test bench developed by A&M. Coding and testing happens in Singapore because our test system is located in this subsidiary. Simulations and tests during development allow us to detect errors in software functions quickly and cost-effectively. Our integrated technologies provide various possibilities to reuse test cases from early development stages at the Hi Level Test bench stands. Apart from turnkey simulation and test solutions we develop interesting operational concepts in our own test laboratories. Benefits for our customers: We relieve them from test execution and enable them to meet the Verification and Validation independence required in safety-critical developments. Based on modern software products, cost-effective commercial-off-the-shelf (COTS) hardware and state-of-the-art test system A&M develops customized solutions for test automation. Thus our customers achieve a maximum of process safety, respond quickly to customer requirements by means of short turn-around-times and accelerate the entire development process.

III. IMPLEMENTATION Knowing different studies in distributed software development experienced the proposed Modern Human Machine Human (HMI) with Touch Display project has individually been confronted with the weaknesses of traditional development procedures described above, seeking answers to questions such as: How do we involve the customer's product experts and the product end users in the development of the interaction concept for an interface as early as possible? How can we achieve as many intermediate steps as possible in the development being presented to users with their feedback flowing into the ongoing development of software and HMI? How can development cycle times in projects of touch interfaces be reduced and undesirable developments be avoided? How can the communication be optimized between the project participants, e.g. between application developers and GUI designers or customers and developers?

Final Project

Page 8

Distributed Software Development 2013


How can we keep a project open for alterations and variations? Both the headquarters and subsidiary offices recognized the need for new approaches and procedure models. Based on this motivation, they established a partnership for innovative touch interface software solutions. Since then, A&M have developed a process model based on their different competencies as well as on existing and improved tools and processes. The basis has already been established with methods such as: 1. Iterative and incremental development processes, Middleware, agile development models, the user-centered design process (UCD), rapid prototyping and usability tests 2. Object-oriented system development process, using Unified Modeling Language (UML) and Unified Process (UP) specification languages and 3. Incorporation of the procedural approaching proposed by PMBOK, expanding the management areas indicated. Incremental development Incremental development is based on the idea of developing an initial implementation, exposing this to user comment and evolving it through several versions until an adequate system has been developed (Figure 1.1). Specification, development, and validation activities are interleaved rather than separate, with rapid feedback across activities. Incremental software development, which is a fundamental part of agile approaches, is better than a waterfall approach for most business, e-commerce, and personal systems. Incremental development reflects the way that we solve problems. We rarely work out a complete problem solution in advance but move toward a solution in a series of steps, backtracking when we realize that we have made a mistake. By developing the software incrementally, it is cheaper and easier to make changes in the software as it is being developed. Each increment or version of the system incorporates some of the functionality that is needed by the customer. Generally, the early increments of the system include the most important or most urgently required functionality. This means that the customer can evaluate the system at a relatively early stage in the development to see if it delivers what is required. If not, then only the current increment has to be changed and, possibly, new functionality defined for later increments. Incremental development has three important benefits: 1. The cost of accommodating changing customer requirements is reduced. The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model.

Final Project

Page 9

Distributed Software Development 2013


2. It is easier to get customer feedback on the development work that has been done. Customers can comment on demonstrations of the software and see how much has been implemented. Customers find it difficult to judge progress from software design documents. 3. More rapid delivery and deployment of useful software to the customer is possible, even if all of the functionality has not been included. Customers are able to use and gain value from the software earlier than is possible with a waterfall process. Although incremental development has many advantages, it is not problem-free. Concurrent Activities

Specification

Initial Version

Outline Description

Development

Intermediate Versions

Validation

Final Versions

Figure 1.1 Iterative and incremental development processes

Middleware The components in a distributed system may be implemented in different programming languages and may execute on completely different types of processor. Models of data, information representation, and protocols for communication may all be different. A distributed system therefore requires software that can manage these diverse parts, and ensure that they can communicate and exchange data. The term middleware is used to refer to this softwareit sits in the middle between the distributed components of the system. This is illustrated in Figure 1.2, which shows that middleware is a layer between the operating system and application programs. Middleware is normally implemented as a set of libraries, which are installed on each distributed computer, plus a run-time system to manage communications.

Final Project

Page 10

Distributed Software Development 2013

Application Components

Coordinated Operation

Application Components

Middleware

Information Exchange and Common Services

Middleware

Operating System

Logical Interaction Physical Connectivity

Operating System

Wireless Networking

Wireless Networking

System 1 Figure 1.2 Middleware in a distributed system

System 2

The proposed Human Machine Interfaces (HMI) with Touch Display will incorporate COBRA as a middleware of the development team. CORBA is a well-known specification for a middleware system that was developed in the 1990s by the Object Management Group. It was intended as an open standard that would allow the development of middleware to support distributed component communications and execution, plus provide a set of standard services that could be used by these components.

Figure 1.3 The structure of a CORBA-based distributed application

Final Project

Page 11

Distributed Software Development 2013


This proposes that a distributed application should be made up of a number of components:

Application objects that are designed and implemented for this application. Standard objects that are defined by the OMG for a specific domain. These domain object standards cover finance/insurance, electronic commerce, healthcare, and a number of other areas.

Fundamental CORBA services that provide basic distributed computing services such as directories, security management, etc.

Horizontal CORBA facilities such as user interface facilities, system management facilities, etc. The term horizontal facilities suggests that these facilities are common to many application domains and the facilities are therefore used in many different applications. Procedural communication in a distributed system is usually implemented using remote

procedure calls (RPCs). In RPC one component calls another component as if it was a local procedure or method. The middleware in the system intercepts this call and passes it to a remote component. This carries out the required computation and, via the middleware, returns the result to the calling component. It communicates with the middleware, which is responsible for ensuring that messages are passed to the appropriate system.

Figure 1.4 User Centered Design

The proposed distributed project based also of user-centered design (UCD) in (figure 1.4) is a type of user interface design and a process in which the needs, wants, and limitations of end users of a product are given extensive attention at each stage of the design process. User-centered design can be Final Project Page 12

Distributed Software Development 2013


characterized as a multi-stage problem solving process that not only requires designers to analyze and foresee how users are likely to use a product, but also to test the validity of their assumptions with regards to user behavior in real world tests with actual users. The proposed distributed project will also incorporate Unified Modeling Language (UML) it is a recent synthesis of object-oriented languages. It includes a set of consistent diagrams that can be used to describe and communicate system requirements of a software, project and code. It can be used to provide insights of the project vision and project requirements of different abstraction levels and its artifacts provide a common view that works as basis for the collaborative project. Modeling provides three key benefits: Visualization Clear communication

The UML focuses primarily on specifying and documenting system requirements and projects. It is important to keep using UML during the development process. If used in the initial phases only and do not connect UML artifacts to build and test activities, it is possible to lose control of the project. The project manager must establish a structure for the precise can among the team, and then insist with its usage. The implementation of a modeling language of standard object is a component of this structure. UML provides a number of static and dynamic diagrams that specify not ambiguously the system and its behavior. It deals about a precisely and clearly way to capture and share requirements. Thus UML, if used properly, provides documentation that eases the communication with clients as well as with team members.UML can be use with all processes throughout the development lifecycle and across different implementation technologies. Due to clients demands that always look something more, better and faster. We face the need of creating more complex software each time. The presence of highly trained developers is not enough. It is necessary an organizational guide a process. It is necessary a process that integrates diverse development facets. UP (Unified Process) is one of the solutions presented for these problems. UP is a generic framework of a development process, based on components and it uses the entire UML definition. UP is guided by use cases, centered in the architecture, interactive and incremental.

Final Project

Page 13

Distributed Software Development 2013


Process model for the successful development of modern touch interfaces in industrial applications a. Development of an interaction concept (workshop) and early prototyping The requirements for functionality and display have to be worked out at an early stage and have to be constantly reviewed by an iterative and incremental further development of the HMI. Consequently, graphical and interactive touch panels meet the experiences and needs of the users in the daily practice and in the best possible way. For this purpose, the following approach is recommended: At the beginning of the development, a joint workshop takes place involving all stakeholders and representatives of customers and users. The goal is the definition of use cases and based on this the development of a workflow-oriented interaction concept. It is good practice to design the essential elements with paper and pencil and or on a flip chart and to discuss the necessary interaction mechanisms with all stakeholders. Participation of relevant disciplines ensures that all aspects are taken into account. Both the fundamental interaction interfaces and the basic layout of the application can be derived from the jointly developed drafts. Experience shows that the main functionalities and operating controls can be defined in appropriately moderated workshops. In the course of the project, the participant groups of the workshop stay involved. In this way, intermediate results of the touch interface development are presented to users again and again. Embedded in mockups (reduced function models), the practical use can be simulated and the usability can be optimized with interactive sequences of screen designs - long before a functional device prototype is available. The development proceeds iteratively and incrementally, user feedback is taken into account at the earliest possible stage minimizing cost and complexity of changes.

b. Parallel development of functional software and GUI design The second component of the process model is crucial for the efficiency of the development project. Due to the incremental development of the GUI with active user participation, priorities are changing in the interface development. Unlike in classical technical and functional designs, the user sets the priorities:The focus is on the operation flow, not the function implementation. But isn't the software development process suffering from the stepwise optimization of the user interface in user discussions? No, because the consequent use of new software development tools such as the GUI description languages XAML (Microsoft.NET), MycroXAML (OpenSource, C++), SwiXML Final Project Page 14

Distributed Software Development 2013


(OpenSource, Java) and QML (Nokia Qt, C++) allows for the design of the user interface being almost completely decoupled from the development of the functional software. Both development processes can thus be completed in parallel. The software developers are working on the hardware functionality and interaction based on the jointly developed interaction concept, while the GUI designers and usability experts refine the user interface in close consultation with the users based on the interaction model. They utilize their specific tools such as Adobe Photoshop to create screen designs pixel by pixel as well as MS Expression Blend to create dynamic and interactive prototypes. Merging of function and interface design is carried out using the page description languages - and can thus be parameterized in one file. In traditional software development processes, it has been complicated to transfer functionalities from one special user interface to another. This can now be done by the designer via parameter settings on user request - the underlying function call in the software migrates automatically. Using GUI description languages, designers and developers have a common basis for the first time and can develop functions and layout simultaneously without impeding one other. Professional WYSIWYG editors for these languages give the designers the freedom for design and enrichment with interactive process steps without requiring them to take care of the code. This results in a great advantage for the rapid HMI development, separated by design and function. The user interfaces can be configured with flexibility without software modification. The realization of product variants, such as country-specific or customer-specific versions, can easily be implemented. This applies also for different operating system platforms.

c. Infrastructure for a linked, agile development (Distributed Development Platform) The procedure model described in this paper requires a very intensive communication within the project team, which is larger than in traditional development processes, due to its incremental and interactive development stages and close involvement of users and designers. The partially parallelized development lines cannot be successful without the following conditions: permanent exchange of information, access to current software versions and total transparency of the project progress for all parties. Good intentions alone do not lead to the desired communication. In most cases, the participation of users, hardware and software specialists as well as external service providers requires the team to cooperate nationwide or even internationally. Such development projects are only successful when using appropriate software infrastructure. Final Project Page 15

Distributed Software Development 2013


The Distributed Development Platform, developed by A&M, is a comprehensive development platform that can be used worldwide with defined access rights and is adapted to the respective project. This infrastructure supports the project team with the following functions: Role-based access rights Ticketing system for a task management, traceable without gaps. Change requests and their connection to the code versions, in particular, can reliably be recorded, communicated, and their completion be monitored Project management functionalities (project plan, times, milestones, progress, etc.) Source code management with configuration management for versions including their history Build management and automatic generation of documents to facilitate the access of all project participants to the current software version Integration of automated regression tests, in particular for HMI software (variants, multilingualism, test cases for typical interaction sequences) The platform allows for short cycles and thus a modern, agile software development. The HMI build process is executed automatically by the push of a button or by being triggered through the setting of a change; hence, the various development teams have always the latest software version available. The involvement of customers and users is possible at any time. The development process reaches an extremely high level of transparency. The possibility to include automatic regression tests directly into such an infrastructure is crucial, in particular for agile HMI software development, in order to continuously validate the increasing development functionality. Tools such as Google Test offer HMIs the possibility to simulate a virtual user. Here, user actions are recorded and reused as automatic test cases. Large parts of software and HMI can be tested in this way, efficiently and completely automated. For Qt-based GUI applications it is possible to perform automatic text length verification for all GUI elements and thus to review all languages at the push of a button. IV. SUCCESS CRITERIA Manufacturers and project managers who want to differentiate their industrial products through intuitively operable touch interfaces and outstanding GUI designs have a best practice approach with the process described above. It covers the essential requirements for an efficient, parallelized development process via its tool architecture. Final Project Page 16

Distributed Software Development 2013

Figure 1.5 Examples of the development process of a touch interface for a testing device, the original draft, a prototype version and the final product version of the user interface.

With its interaction concept, it creates the basis for a team-wide understanding of the practical application and ensures the early and continuous involvement of users and usability experts. Experience shows that the project teams of the manufacturers need to apply new ways of working and new tools. The early and intensive involvement of users, design and usability experts Final Project Page 17

Distributed Software Development 2013


require new thinking and methods, utilizing elements of agile software development. Accordingly, the intensive coordination between all project stakeholders enforces the use of effective tools for distributed development - not at least to achieve the necessary efficiency and transparency in the overall process. Such fundamental changes in tools and methods require manufacturers to provide a professional management of this change process in order not to overstrain their employees. Most development projects suffer from time constraints and high pressure to succeed. Therefore, manufacturers should build a team with experienced external specialists and openminded internal staff to develop touch interfaces in the first projects. In doing so, it is easier to learn the new ways of working and to gain practical experience with these methods and tools. Factors of success for the HMI development process:

Workflow-oriented interaction concepts are designed, involving the end-user. From an early stage onwards, they are verified using interactive prototypes and mock ups.

Agile, parallel development of interface design and software through the effective separation of design and function.

Special infrastructure for distributed development to secure the efficient cooperation of all teams of experts involved.

A good project management approach based on PMBOK which includes the unified process (UP) and UML language, for e-business software development in a physically distributed environment to ensure the quality, standard of the proposed HMI distributed project.

Final Project

Page 18

Das könnte Ihnen auch gefallen