The non-trivial Java example Mouse in a Maze
|
|
- Melvin Augustus Long
- 8 years ago
- Views:
Transcription
1 The non-trivial Java example Mouse in a Maze A simple software development process from specification, to design, implementation, and test DAAD project Joint Course on OOP using Java Humboldt University Berlin, University of Novi Sad, Polytehnica University of Timisoara, University of Plovdiv, University of Belgrade Author: Klaus Bothe Version: Sep. 29, 2004 Source Based on an idea from S.N. Kamin, M.D. Mickunas, E.M. Reingold: An introduction to computer science Using Java, McGraw-Hill, 1998 DAAD project Joint Course on OOP using Java 2 1
2 Points of this Java sample program For the lecturer only Introduce a non- trivial Java program Illustrate a methodology how to present larger Java programs in lectures Using Java API Demonstrate the importance of software engineering principles for ordinary Java program development Interactive style of the lecture improves learning effects DAAD project Joint Course on OOP using Java 3 Course materials For the lecturer only Lecture slides: about 90 slides takes 3 x 2 lecture hours at HU (interactive style) Java sources Classes Mouse Maze MouseMaze Easel SoftFrame MazeTest LOC Sum: 378 Assignments: modify, extend the program implement as an applet (grafical interface) DAAD project Joint Course on OOP using Java
3 Didactical mistake in presenting complex Java programs in lectures The lecturer tries to explain each technical detail of program code non-understandable in a lecture boring For the lecturer only The lecturer starts with a Java program too early details of requirements specification still open design / class structure not well discussed Finding a proper class structure may be more challenging then implementing the Java program code. DAAD project Joint Course on OOP using Java 5 Didactical principles in presenting complex Java programs in lectures For the lecturer only Follow the software engineering process: requirements analysis, design, implementation & test Involve students into this process (interactivity) Only outline the main ideas of the implementation Assignments support detailed understanding the code DAAD project Joint Course on OOP using Java 6 3
4 Requirements analysis: Mouse in a Maze Task: Develop a program, that simulates the movement of a mouse in a maze (labyrinth) from an entry to an exit. What to do? Next steps? DAAD project Joint Course on OOP using Java 7 Facts concerning software development phases Most errors of software systems result from misunderstanding the problem to be solved. Software development consists only of a small part of programming: Requirements analysis: 20 % Design: 15 % Implementation: 20 % Test: 45 % DAAD project Joint Course on OOP using Java 8 4
5 Learning goals This example should illustrate the importance of a complete and correct requirements specification for the project success. Before implementing, the next step is the design of the application: Which components belong to the program architecture? Starting with the implementation too early may lead to project s failure. DAAD project Joint Course on OOP using Java 9 Development process of Mouse in a Maze Requirements analysis Design Implementation and test DAAD project Joint Course on OOP using Java 10 5
6 Requirements analysis: Mouse in a Maze Task: Develop a program, that simulates the movement of a mouse in a maze (labyrinth) from an entry to an exit. Open questions? DAAD project Joint Course on OOP using Java 11 Open questions How does a maze look like? What is a mouse able to do (e.g. which kinds of movements)? What is the initial state of the mouse? What, if there is no way from entry to exit? In which way should the solution be presented? DAAD project Joint Course on OOP using Java 12 6
7 How does a maze look like? DAAD project Joint Course on OOP using Java 13 Examples of our kind of mazes DAAD project Joint Course on OOP using Java 14 7
8 Requirements specification (1) Develop a program, that simulates the movement of a mouse in a maze (labyrinth) from an entry to an exit. 1. The Maze A maze is a collection of quadratic rooms arranged in a rectangle. Two adjacent rooms are separated by a wall or opening (gap). The maze is surrounded by a wall which is open at two locations (entry and exit). The size of the maze (length and height) is variable. Examples: DAAD project Joint Course on OOP using Java 15 How does a mouse look like? DAAD project Joint Course on OOP using Java 16 8
9 Our mouse DAAD project Joint Course on OOP using Java 17 Mouse confronted with different mazes This will become hard No problem exit entry exit entry DAAD project Joint Course on OOP using Java 18 9
10 Which kinds of movements is our mouse able to do? step forward turn left turn right DAAD project Joint Course on OOP using Java 19 Possible movements of the mouse May move one step forward into the adjacent room in the line of vision exit entry May turn left or right by 90 degrees DAAD project Joint Course on OOP using Java 20 10
11 Two implemented solutions entry exit What may be suspicious with these solutions? Proper solution for the wrong problem. In each case: the shortest path has been found. Requirements specification is incomplete entry exit DAAD project Joint Course on OOP using Java 21 Requirements specification is incomplete entry exit entry exit In each case: the shortest path has been found Only possible if the mouse knows the whole maze (view from above) This is not the characteristic of maze problems. DAAD project Joint Course on OOP using Java 22 11
12 Perceptions of the mouse Line of vision only straight forward May see only inside of one room (not into the adjacent room) exit entry May decide: Am I inside or outside the maze? May decide: Do I face a wall or an opening (gap)? DAAD project Joint Course on OOP using Java 23 Field of view of a mouse DAAD project Joint Course on OOP using Java 24 12
13 The problem may be huge DAAD project Joint Course on OOP using Java 25 Requirements Specification (2) 2. The Mouse: The mouse has no general overview of the maze. a) Themousemaymovein thefollowingway: turn left, turn right (by 90 degrees), move forward into the adjacent room. b) The mouse is located either in a fixed room inside the maze or just next to the entry or exit. In addition, it has a fixed line of vision. c) The mouse can see only in the line of vision. It can decide wether it faces a wall or not. DAAD project Joint Course on OOP using Java 26 13
14 Requirements specification: open problems? Description of the initial state of the mouse Description of the final state of the mouse Description of the task Special cases User interface DAAD project Joint Course on OOP using Java 27 Requirements Specification (3) 3. Desription of the initial state of the mouse: The mouse is initially placed in front of the entrance to the maze (the next step forward takes her to the maze). Example: exit entry DAAD project Joint Course on OOP using Java 28 14
15 Requirements Specification (4) 4. Desription of the final state of the mouse and of the task: We a looking for a sequence of movements (turn left, turn right, step forward) leading the mouse from the entry to the exit. Example: exit entry DAAD project Joint Course on OOP using Java 29 Requirements Specification (5) 5. Special case: If there is no exit or if there is no way from the entry to the exit, then the mouse should leave the maze through the entry. Example: entry DAAD project Joint Course on OOP using Java 30 15
16 Requirements Specification (6) 6. User interface a) Textual output of the solution: Example: step forward, turn right, b) Graphical user interface: The sequence of movements will be displayed with the help of a graphical applet, i.e. the steps of the mouse are visualized. The user can interactively trigger the next step. DAAD project Joint Course on OOP using Java 31 Solvability of the problem Is there an algorithm at all that solves the problem for arbitrary mazes taking into account the characteristic properties of the mouse? DAAD project Joint Course on OOP using Java 32 16
17 Algorithm: basic principle Principle: Have the mouse walk with its right side on the wall of the maze. Still not an algorithm An algorithm has to determine the sequence of mouse movements. DAAD project Joint Course on OOP using Java 33 Algorithm: as a pseudo code program only one step: if mouse is still inside the maze: turn right; if (facing a wall?): then turn left and test if (facing a wall?); if (facing a wall?) then turn left and test... else step forward DAAD project Joint Course on OOP using Java 34 17
18 Strong pseudo code: one step IF (NOT outside the maze?) BEGIN /*do next step*/ turn right; WHILE (facing a wall?) DO turn left; ENDWHILE step forward; END Impossible: DAAD project Joint Course on OOP using Java 35 Strong pseudo code: whole algorithm step forward; /* enter the maze */ WHILE(NOT outside the maze?) BEGIN /*do next step*/ turn right; WHILE (facing a wall?) DO turn left; ENDWHILE step forward; END ENDWHILE Think about: The algorithm fulfills the principle. DAAD project Joint Course on OOP using Java 36 18
19 Mouse movements according to the algorithm: first example exit entry DAAD project Joint Course on OOP using Java 37 Mouse movements according to the algorithm in detail: first example exit entry DAAD project Joint Course on OOP using Java 38 19
20 Mouse movements according to the algorithm: : second example exit entry DAAD project Joint Course on OOP using Java 39 Mouse movements according to the algorithm in detail: second example exit entry DAAD project Joint Course on OOP using Java 40 20
21 Mouse movements: graphical and textual output entry exit step forward turn right step forward turn right turn left turn left step forward turn right turn left turn left step forward turn right step forward DAAD project Joint Course on OOP using Java 41 Textual output of the solution xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x x x x x x x x x x x x x x x x x x x x x x x x x x xxxxxxxxxxxxxx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx step forward turn to the right step forward turn to the right turn to the left turn to the left turn to the left step forward DAAD project Joint Course on OOP using Java 42 21
22 Mouse in a maze only a nice game? Sample of finding algorithms for robots dealing with different tasks: Playing soccer Robot moving on the moon Rescue robots DAAD project Joint Course on OOP using Java 43 Development process of Mouse in a Maze Requirements analysis Design Implementation and test DAAD project Joint Course on OOP using Java 44 22
23 Task Requirements specification Next step? Start with programming? If so, with which part/component???? DAAD project Joint Course on OOP using Java 45 Design: develop the software architecture SW architecture description languages: UML Our task: define an object-oriented architecture Main problem: How to find classes? DAAD project Joint Course on OOP using Java 46 23
24 Software development: Phases and results Analysis & Definition Requirements specification Design Software architecture Implementation Program Test Test cases DAAD project Joint Course on OOP using Java 47 As a matter of fact Finding a proper class structure may be more challenging then implementing the Java program code. DAAD project Joint Course on OOP using Java 48 24
25 Software architecture Structure of the software: Which components exist? Which relations are between them? Stack: Push(e) Pop() Top() DAAD project Joint Course on OOP using Java 49 Architecture specification languages Graphical languages for the specification of software architectures Industry standard: UML Unified Modelling Language Now: examples of one graphical element of UML: class diagram What programming languages mean to the implementation phase, are architecture specification languages to the design phase. DAAD project Joint Course on OOP using Java 50 25
26 Name UML classes: the structure Time Attributes: state hidden - hour : int - minute : int Time (hour: int, minute : int) addminutes (Min : int) printtime ( ) Operations: behaviour DAAD project Joint Course on OOP using Java 51 UML classes as interfaces Time - hour : int - minute : int UML classes provide an interface: Which information is visible from outside? Time (hour: int, minute : int) addminutes (Min : int) printtime ( ) Why are hidden data which are not visible from outside part of UML class? DAAD project Joint Course on OOP using Java 52 26
27 The usable interface of a class: only visible features Time - hour : int - minute : int Hidden data support the understanding of the interface. They are part of the class model. Time (hour: int, minute : int) addminutes (Min : int) printtime ( ) The only way to interact with objects of this class is to call its methods DAAD project Joint Course on OOP using Java 53 Relations between classes: Associations, inheritance, Class 1 Class 2 Association Class 1 Class 2 Directed association: objects of class one know objects of class two and not vice versa DAAD project Joint Course on OOP using Java 54 27
28 How to find classes? Principles? By separation of the problem to subproblems Sub-problems may become classes From the objects of the problem area Investigate the requirements specification to find objects of the problem area DAAD project Joint Course on OOP using Java 55 Case study: Mouse in a Maze Which objects of the problem area should be implemented as component / class of the system? Mouse Maze Algorithm for mouse movement User interface /output DAAD project Joint Course on OOP using Java 56 28
29 Which relations exist between the components? Which relations? Who needs whom? Mouse Maze Algorithm for mouse movement User interface /output DAAD project Joint Course on OOP using Java 57 Which relation: Who needs whom? no Mouse e.g. test if in front of a wall Maze Alg. has not to know the maze? Algorithm for mouse movement?? User interface /output DAAD project Joint Course on OOP using Java 58 29
30 Class diagram for a mouse Which data and which operations characterize the mouse? Mouse?? DAAD project Joint Course on OOP using Java 59 Mouse Interface of the mouse: Which data, which operations? (first approach) State: place / direction in a maze - Location : Point - Direction : int stepforward ( ) turnleft ( ) turnright ( ) facingwall ( ) : boolean outsidemaze ( ) : boolean Behaviour: abilities of the mouse (movements & perceptions) DAAD project Joint Course on OOP using Java 60 30
31 Detailed interface of the mouse Mouse Visible attribute - Location : Point - Direction : int + started : boolean - themaze : Maze Mouse (Maze m) getlocation ( ) : Point stepforward ( ) turnleft ( ) turnright ( ) facingwall ( ) : boolean outsidemaze ( ) : boolean Create a mouse in relation to a particular maze Current position of the mouse DAAD project Joint Course on OOP using Java 61 Interface of the maze Class diagram of the maze: data and operations? Maze?? Interface of the maze: Which information is necessary for a user of this class (user = objects of class Mouse )? DAAD project Joint Course on OOP using Java 62 31
32 Interface of the maze (first approach) Maze Is the current position outside of the maze? outside (pos : Point) : boolean checkwall (direction : int, pos : Point) : boolean getstartlocation ( ) : Point Is there a wall at position pos in this direction? Where to place the mouse initially? (position & direction) DAAD project Joint Course on OOP using Java 63 Interface of the maze: attributes? Maze outside (pos : Point) : boolean checkwall (direction : int, pos : Point) : boolean getstartlocation ( ) :? The representation of the maze is too complex to be included as attributes (array) DAAD project Joint Course on OOP using Java 64 32
33 Maze Detailed interface of the maze - height : int - width : int Detailed maze data are too complex to be included in a class diagram. The height and width of the maze are useful to draw the maze getstartlocation ( ) : Point getstartdirection ( ) : int Height and width as a point. getsize ( ) : Point checkwall (direction : int, pos : Point) : boolean checkwall (direction : int, col : int, row : int) : boolean outside (pos : Point) : boolean To find class diagrams is an iterative process: start with a simple solution and extend and modify if necessary. DAAD project Joint Course on OOP using Java 65 Software Architecture: the whole view (textual output) Mouse - Location : Point - Direction : int + started : boolean - themaze : Maze Mouse (Maze m) getlocation ( ) : Point stepforward ( ) turnleft ( ) turnright ( ) facingwall ( ) : boolean outsidemaze ( ) : boolean Maze - height : int - width : int getstartlocation ( ) : Point getstartdirection ( ) : int getsize ( ) : Point checkwall (direction : int, pos : Point) : boolean checkwall (direction : int, col : int, row : int) : boolean outside (pos : Point) : boolean Algorithm for mouse movement main ( ) Textual output of the maze printmaze ( ) DAAD project Joint Course on OOP using Java 66 33
34 Problems of the development of a software architecture Software architecture: Not unique (many good and many bad solutions) Design of a software architecture does not succeed for the first time Long process: Software architecture develops stepwise Principle: Start with one preliminary architecture The usability of the methods finally turns out only during the implementation. DAAD project Joint Course on OOP using Java 67 Development process of Mouse in a Maze Requirements analysis Design Implementation and test DAAD project Joint Course on OOP using Java 68 34
35 Java sources Classes Mouse Maze MouseMaze Easel SoftFrame MazeTest LOC Sum: 378 DAAD project Joint Course on OOP using Java 69 Information to the audience This presentation gives only an outline of the principle points of the implementation. Several crucial technical details will be explained. However, not each implementation detail will be presented. This would be boring in a lecture. During the self-study and with assignments, everybody should explain oneself open questions. DAAD project Joint Course on OOP using Java 70 35
36 Planning of implementation steps In which order should the classes be implemented? 2 Mouse Maze 1 3b Algorithm for mouse movement User interface: Textual output of the maze 3a UML class diagram: Dependencies order of implementation DAAD project Joint Course on OOP using Java 71 2 Mouse - Location : Point - Direction : int + started : boolean - themaze : Maze Mouse (Maze m) getlocation ( ) : Point stepforward ( ) turnleft ( ) turnright ( ) facingwall ( ) : boolean outsidemaze ( ) : boolean Software Architecture: the whole view Maze - height : int - width : int getstartlocation ( ) : Point getstartdirection ( ) : int getsize ( ) : Point checkwall (direction : int, pos : Point) : boolean checkwall (direction : int, col : int, row : int) : boolean outside (pos : Point) : boolean 1 3b Algorithm for mouse movement main ( ) Textual output of the maze printmaze ( ) 3a In the lecture: 1, 2, 3b (main ideas) Self-study: 3a; 1, 2, 3b (details) DAAD project Joint Course on OOP using Java 72 36
37 Implementation of the maze Starting from the class diagram Maze - height : int - width : int getstartlocation ( ) : Point getstartdirection ( ) : int getsize ( ) : Point checkwall (direction : int, pos : Point) : boolean checkwall (direction : int, col : int, row : int) : boolean outside (pos : Point) : boolean DAAD project Joint Course on OOP using Java 73 Representation of the maze as a data structure How to represent the maze by Java data structures? DAAD project Joint Course on OOP using Java 74 37
38 Position in a maze Position = coordinate (x,y) = (number of column, number of line) (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) DAAD project Joint Course on OOP using Java 75 Movement path of the mouse Path: (0,2), (1,2), (1,3), (1,2), (1,1),, (4,0) (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) DAAD project Joint Course on OOP using Java 76 38
39 Movement path of the mouse: Long form Detailed description: (0,2), step forward to (1,2), turn to right, step forward to (1,3), turn to right, turn to left, turn to left, turn to left, step forward (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) DAAD project Joint Course on OOP using Java 77 Representation of the maze: store the walls For each relevant position: Is there a wall to the south boolean [][] swall Is there a wall to the east boolean [][] ewall DAAD project Joint Course on OOP using Java 78 39
40 Representation of the maze: store the walls boolean [][] swall (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) boolean [][] ewall DAAD project Joint Course on OOP using Java 79 South walls of the maze: example boolean [][] swall = {{true, true, true, false}, {false, false, false, true}, {false, false, false, false}, {true, true, true, true}} (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) DAAD project Joint Course on OOP using Java 80 40
41 South walls of the maze: the array boolean [][] swall = {{true, true, true, false}, {false, false, false, true}, {false, false, false, false}, {true, true, true, true}} true true true false 1 false false false true 2 false false false false 3 true true true true DAAD project Joint Course on OOP using Java 81 Method outside public boolean outside (Point pos){ return ((pos.x < 1) //left... (pos.x > width) //right... (pos.y < 1) //over... (pos.y > height) //under... ); // the maze } API: Point pos : (x, y) DAAD project Joint Course on OOP using Java 82 41
42 Method checkwall :: technical detail Boolean checkwall (int dir, int col, int row) { switch (dir){ case NORTH: return swall[row-1][col-1]; (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) case SOUTH: return swall[row][col-1];... (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) DAAD project Joint Course on OOP using Java 83 Components: separate implementation & separate test Component test: Test of the component independent of the rest of the system. Integration test: Later on, the collaboration with other components will be tested. DAAD project Joint Course on OOP using Java 84 42
43 Component test of the maze class Maze { } Component to be tested class MazeTest { } Testframe for class Maze DAAD project Joint Course on OOP using Java 85 Test frame: basic principles for test output % java MazeTest Start location is (0,2): [x=0,y=2] Start direction is EAST = 1: 1 Outside true : true Not outside -> false : false Not outside -> false : false Wall -> true : true No wall -> true : true Wall -> true : true Actual value Semantic interpretation Expected value DAAD project Joint Course on OOP using Java 86 43
44 Implementation of the mouse Starting from the class diagram Mouse - Location : Point - Direction : int + started : boolean - themaze : Maze Mouse (Maze m) getlocation ( ) : Point stepforward ( ) turnleft ( ) turnright ( ) facingwall ( ) : boolean outsidemaze ( ) : boolean DAAD project Joint Course on OOP using Java 87 Communication between the objects: send a message Operation of the mouse public boolean facingwall() { return themaze.checkwall (direction, location); } Operation of the maze The mouse sends a message to the maze: If I have a certain location and direction in the maze, is then a wall in front of me? DAAD project Joint Course on OOP using Java 88 44
45 Methods: turnleft and turnright public void turnleft() { printoutmove( turn to the left ); direction = (direction + 3) % 4; } public void turnright() { printoutmove( turn to the right ); direction = (direction + 1) % 4; } Think about these formulas. DAAD project Joint Course on OOP using Java 89 Method: stepforward public void stepforward() { switch (direction) { case NORTH: location.y--; break; case EAST: location.x++; break; case SOUTH: location.y++; break; case WEST: location.x--; break; } printoutmove( step forward ); } DAAD project Joint Course on OOP using Java 90 45
46 Search algorithm: class MouseMaze (1) Moves the mouse one step forward, if necessary with turns public static void main (... ) { Maze themaze = new Maze(); Mouse littlemouse = new Mouse(theMaze); printmaze(themaze); } //move the mouse step by step do{ makestep(littlemouse); } while (!littlemouse.outsidemaze()); DAAD project Joint Course on OOP using Java 91 Search algorithm: class MouseMaze (2) Visible attribute private static void makestep(mouse m){ if (m.started){ if (!m.outsidemaze()){ } m.turnright(); while (m.facingwall()){ m.turnleft(); } m.stepforward(); } } else { m.stepforward(); m.started = true; } Moves the mouse one step forward, if necessary with turns DAAD project Joint Course on OOP using Java 92 46
47 Critics of the implementation Constant NORTH = 0, repeatedly defined in three classes source of error better solution: define them in an interface only once Variable started visible outside instead of this: - private + additional access operation - modify the algorithm Data representation of the maze is error-prone true/false sequencies correct? Variables height, width, size may be in contradiction to ewall, swall better let them compute Strategy of the mouse may be a part of the mouse: Other mice may have other strategies: move at the left-hand wall (mice = plural of mouse) DAAD project Joint Course on OOP using Java 93 47
Java case studies: game playing. development
Java case studies: game playing A simple software development process from specification, to design, implementation, and test DAAD project Joint Course on OOP using Java Humboldt University Berlin, University
More informationOn the (un)suitability of Java to be the first programming language
On the (un)suitability of Java to be the first programming language Mirjana Ivanovic Faculty of Science, Department of Mathematics and Informatics Trg Dositeja Obradovica 4, Novi Sad mira @im.ns.ac.yu
More informationBlender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine
Blender Notes Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine The Blender Game Engine This week we will have an introduction to the Game Engine build
More informationChapter 1: Key Concepts of Programming and Software Engineering
Chapter 1: Key Concepts of Programming and Software Engineering Software Engineering Coding without a solution design increases debugging time - known fact! A team of programmers for a large software development
More information"New Java course material and available pool of.ppt presentations"
"New Java course material and available pool of.ppt presentations" D. Pešović, M. Ivanović, Ž. Komlenov University of Novi Sad September, 2007 1 AGENDA 1. SubProject site current state 2. Collected material
More informationPart 3: GridWorld Classes and Interfaces
GridWorld Case Study Part 3: GridWorld Classes and Interfaces In our example programs, a grid contains actors that are instances of classes that extend the Actor class. There are two classes that implement
More informationAnalysis of Micromouse Maze Solving Algorithms
1 Analysis of Micromouse Maze Solving Algorithms David M. Willardson ECE 557: Learning from Data, Spring 2001 Abstract This project involves a simulation of a mouse that is to find its way through a maze.
More informationExmoR A Testing Tool for Control Algorithms on Mobile Robots
ExmoR A Testing Tool for Control Algorithms on Mobile Robots F. Lehmann, M. Ritzschke and B. Meffert Institute of Informatics, Humboldt University, Unter den Linden 6, 10099 Berlin, Germany E-mail: falk.lehmann@gmx.de,
More informationJava Software Structures
INTERNATIONAL EDITION Java Software Structures Designing and Using Data Structures FOURTH EDITION John Lewis Joseph Chase This page is intentionally left blank. Java Software Structures,International Edition
More informationWest Virginia University College of Engineering and Mineral Resources. Computer Engineering 313 Spring 2010
College of Engineering and Mineral Resources Computer Engineering 313 Spring 2010 Laboratory #4-A (Micromouse Algorithms) Goals This lab introduces the modified flood fill algorithm and teaches how to
More informationObject Oriented Software Models
Software Engineering CSC 342/ Dr Ghazy Assassa Page 1 Object Oriented Software Models Use case diagram and use case description 1. Draw a use case diagram for a student-course-registration system. Show
More information2014 HSC Software Design and Development Marking Guidelines
014 HSC Software Design and Development Marking Guidelines Section I Multiple-choice Answer Key Question Answer 1 B A A 4 D 5 A 6 D 7 A 8 B 9 C 10 D 11 B 1 B 1 A 14 A 15 B 16 D 17 C 18 C 19 D 0 D 1 Section
More information12-6 Write a recursive definition of a valid Java identifier (see chapter 2).
CHAPTER 12 Recursion Recursion is a powerful programming technique that is often difficult for students to understand. The challenge is explaining recursion in a way that is already natural to the student.
More informationHands-On: Introduction to Object-Oriented Programming in LabVIEW
Version 13.11 1 Hr Hands-On: Introduction to Object-Oriented Programming in LabVIEW Please do not remove this manual. You will be sent an email which will enable you to download the presentations and an
More informationAlgorithms, Flowcharts & Program Design. ComPro
Algorithms, Flowcharts & Program Design ComPro Definition Algorithm: o sequence of steps to be performed in order to solve a problem by the computer. Flowchart: o graphical or symbolic representation of
More informationConcepts and terminology in the Simula Programming Language
Concepts and terminology in the Simula Programming Language An introduction for new readers of Simula literature Stein Krogdahl Department of Informatics University of Oslo, Norway April 2010 Introduction
More informationQuestions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements
Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements
More informationHow To Design An Information System
Information system for production and mounting of plastic windows MARCEL, MELIŠ Slovak University of Technology - Faculty of Material Sciences and Technology in Trnava, Paulínska 16 street, Trnava, 917
More informationAn Introduction to Object-Oriented Programming with
An Introduction to Object-Oriented Programming with TM Java C. Thomas Wu Naval Postgraduate School Ml McGraw-Hill Boston Burr Ridge, IL Dubuque, IA Madison, WI New York San Francisco St. Louis Bangkok
More informationSome programming experience in a high-level structured programming language is recommended.
Python Programming Course Description This course is an introduction to the Python programming language. Programming techniques covered by this course include modularity, abstraction, top-down design,
More informationExercise 10: Basic LabVIEW Programming
Exercise 10: Basic LabVIEW Programming In this exercise we will learn the basic principles in LabVIEW. LabVIEW will be used in later exercises and in the project part, as well in other courses later, so
More informationEnterprise Application Development Using UML, Java Technology and XML
Enterprise Application Development Using UML, Java Technology and XML Will Howery CTO Passage Software LLC 1 Introduction Effective management and modeling of enterprise applications Web and business-to-business
More informationJava the UML Way: Integrating Object-Oriented Design and Programming
Java the UML Way: Integrating Object-Oriented Design and Programming by Else Lervik and Vegard B. Havdal ISBN 0-470-84386-1 John Wiley & Sons, Ltd. Table of Contents Preface xi 1 Introduction 1 1.1 Preliminaries
More informationSignalDraw: GUI Tool For Generating Pulse Sequences
SignalDraw: GUI Tool For Generating Pulse Sequences Konstantin Berlin Department of Computer Science University of Maryland College Park, MD 20742 kberlin@cs.umd.edu December 9, 2005 Abstract Generating
More informationThe Basics of Robot Mazes Teacher Notes
The Basics of Robot Mazes Teacher Notes Why do robots solve Mazes? A maze is a simple environment with simple rules. Solving it is a task that beginners can do successfully while learning the essentials
More informationSources: On the Web: Slides will be available on:
C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,
More informationCase studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design
I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)
More informationChapter 13: Program Development and Programming Languages
15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning
More informationSoftware Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci
Software Engineering Software Development Process Models Lecturer: Giuseppe Santucci Summary Modeling the Software Process Generic Software Process Models Waterfall model Process Iteration Incremental
More informationCourse: Programming II - Abstract Data Types. The ADT Stack. A stack. The ADT Stack and Recursion Slide Number 1
Definition Course: Programming II - Abstract Data Types The ADT Stack The ADT Stack is a linear sequence of an arbitrary number of items, together with access procedures. The access procedures permit insertions
More information1. What are Data Structures? Introduction to Data Structures. 2. What will we Study? CITS2200 Data Structures and Algorithms
1 What are ata Structures? ata Structures and lgorithms ata structures are software artifacts that allow data to be stored, organized and accessed Topic 1 They are more high-level than computer memory
More informationTwin A Design Pattern for Modeling Multiple Inheritance
Twin A Design Pattern for Modeling Multiple Inheritance Hanspeter Mössenböck University of Linz, Institute of Practical Computer Science, A-4040 Linz moessenboeck@ssw.uni-linz.ac.at Abstract. We introduce
More informationCompuScholar, Inc. Alignment to Utah's Computer Programming II Standards
CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards Course Title: TeenCoder: Java Programming Course ISBN: 978 0 9887070 2 3 Course Year: 2015 Note: Citation(s) listed may represent
More information2.3 WINDOW-TO-VIEWPORT COORDINATE TRANSFORMATION
2.3 WINDOW-TO-VIEWPORT COORDINATE TRANSFORMATION A world-coordinate area selected for display is called a window. An area on a display device to which a window is mapped is called a viewport. The window
More informationWeb Presentation Layer Architecture
Chapter 4 Web Presentation Layer Architecture In this chapter we provide a discussion of important current approaches to web interface programming based on the Model 2 architecture [59]. From the results
More informationJava (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
More informationSoftware Analysis Visualization
28th International Conference on Software Engineering Software Analysis Visualization Harald Gall and Michele Lanza !oftware Visualiza"o# Tutorial F7 Software Evolution: Analysis and Visualization 2006
More informationProgramming and Software Development CTAG Alignments
Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical
More informationBachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries
First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as
More informationChapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
More informationSpecimen 2015 am/pm Time allowed: 1hr 30mins
SPECIMEN MATERIAL GCSE COMPUTER SCIENCE 8520/1 Paper 1 Specimen 2015 am/pm Time allowed: 1hr 30mins Materials There are no additional materials required for this paper. Instructions Use black ink or black
More informationUnit Testing & JUnit
Unit Testing & JUnit Lecture Outline Communicating your Classes Introduction to JUnit4 Selecting test cases UML Class Diagrams Rectangle height : int width : int resize(double,double) getarea(): int getperimeter():int
More informationComputer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices
232 Computer Science Computer Science (See Computer Information Systems section for additional computer courses.) We are in the Computer Age. Virtually every occupation in the world today has an interface
More informationAbstraction in Computer Science & Software Engineering: A Pedagogical Perspective
Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT
More informationTopics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
More informationTranslating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language
Translation Translating to Java Introduction to Computer Programming The job of a programmer is to translate a problem description into a computer language. You need to be able to convert a problem description
More informationWilson Area School District Planned Course Guide
Wilson Area School District Planned Course Guide Title of planned course: Introduction to Computer Programming Subject Area: Business Grade Level: 9-12 Course Description: In this course, students are
More informationComprensione del software - principi base e pratica reale 5
Prologue C era una volta Comprensione del software - principi base e pratica reale Reverse engineer 1 200 000 lines of C++ code in ca. 2300 classes * 2 = 2 400 000 seconds / 3600 = 667 hours 667 hours
More informationEET 310 Programming Tools
Introduction EET 310 Programming Tools LabVIEW Part 1 (LabVIEW Environment) LabVIEW (short for Laboratory Virtual Instrumentation Engineering Workbench) is a graphical programming environment from National
More informationTeaching Object-Oriented Concepts with Eclipse
Teaching Object-Oriented Concepts with Eclipse Matthias Meyer, Lothar Wendehals Software Engineering Group Department of Computer Science University of Paderborn Warburger Straße 100 33098 Paderborn, Germany
More informationClasses and Objects. Agenda. Quiz 7/1/2008. The Background of the Object-Oriented Approach. Class. Object. Package and import
Classes and Objects 2 4 pm Tuesday 7/1/2008 @JD2211 1 Agenda The Background of the Object-Oriented Approach Class Object Package and import 2 Quiz Who was the oldest profession in the world? 1. Physician
More informationIntroduction to ProForm Rapid elearning Studio. What is ProForm? The ProForm Course Authoring Tool allows you to quickly create
Introduction to ProForm Rapid elearning Studio The ProForm Rapid elearning Studio includes the ProForm Course Authoring Tool, the SWiSH Rapid Animation Tool, and the RapidCam Screen Recording Tool. This
More informationCOMPUTER SCIENCE. Paper 1 (THEORY)
COMPUTER SCIENCE Paper 1 (THEORY) (Three hours) Maximum Marks: 70 (Candidates are allowed additional 15 minutes for only reading the paper. They must NOT start writing during this time) -----------------------------------------------------------------------------------------------------------------------
More informationArtificial Intelligence
Artificial Intelligence ICS461 Fall 2010 1 Lecture #12B More Representations Outline Logics Rules Frames Nancy E. Reed nreed@hawaii.edu 2 Representation Agents deal with knowledge (data) Facts (believe
More information1 Hour, Closed Notes, Browser open to Java API docs is OK
CSCI 143 Exam 2 Name 1 Hour, Closed Notes, Browser open to Java API docs is OK A. Short Answer For questions 1 5 credit will only be given for a correct answer. Put each answer on the appropriate line.
More informationSoftware Specification and Architecture 2IW80
Software Specification and Architecture 2IW80 Julien Schmaltz (slides partly from M. Mousavi and A. Serebrenik) Lecture 03: Use Cases Before we start The system shall give access to the database to any
More informationThe Darwin Game 2.0 Programming Guide
The Darwin Game 2.0 Programming Guide In The Darwin Game creatures compete to control maps and race through mazes. You play by programming your own species of creature in Java, which then acts autonomously
More informationSoftware Engineering Techniques
Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary
More informationObject Oriented Design
Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and
More information(Refer Slide Time: 01:52)
Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This
More informationA Client-Server Interactive Tool for Integrated Artificial Intelligence Curriculum
A Client-Server Interactive Tool for Integrated Artificial Intelligence Curriculum Diane J. Cook and Lawrence B. Holder Department of Computer Science and Engineering Box 19015 University of Texas at Arlington
More informationSection C. Requirements Elicitation
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike License. Your use of this material constitutes acceptance of that license and the conditions of use of materials on this
More informationRational Software White Paper
Modeling Web Application Architectures with UML By: Jim Conallen, Rational Software June 1999 A version of this material appears in the October 1999 (volume 42, number 10) issue of Communications of the
More informationThe Environment Model. a paper by Neil Lasher neil.l@thelearningcoach.co.uk @neillasher. The scene:
The Environment Model. a paper by Neil Lasher neil.l@thelearningcoach.co.uk @neillasher The scene: So what does this paper hold? If you are a level 4 learner you will want the whole story in this paragraph
More informationCreating Database Tables in Microsoft SQL Server
Creating Database Tables in Microsoft SQL Server Microsoft SQL Server is a relational database server that stores and retrieves data for multi-user network-based applications. SQL Server databases are
More informationTechnical Writing - Definition of Bad and Good Code
1 Workshop on Distributed Software Management for e-science Day 2 - Software Design Lecture 4 Code Design Basics Geoff Cawood Consultant, EPCC Telephone: +44 131 650 5120 Email: geoffc@epcc.ed.ac.uk 4Low
More informationOrganization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:
Organization of DSLE part Domain Specific Language Engineering Tooling Eclipse plus EMF Xtext, Xtend, Xpand, QVTo and ATL Prof.dr. Mark van den Brand GLT 2010/11 Topics: Meta-modeling Model transformations
More informationCHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)
CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality
More informationThe first program: Little Crab
CHAPTER 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if-statement In the previous chapter,
More informationTitle: Topic 3 Software process models (Topic03 Slide 1).
Title: Topic 3 Software process models (Topic03 Slide 1). Topic 3: Lecture Notes (instructions for the lecturer) Author of the topic: Klaus Bothe (Berlin) English version: Katerina Zdravkova, Vangel Ajanovski
More informationManagement Information Systems 260 Web Programming Fall 2006 (CRN: 42459)
Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459) Class Time: 6:00 8:05 p.m. (T,Th) Venue: WSL 5 Web Site: www.pbvusd.net/mis260 Instructor Name: Terrell Tucker Office: BDC 127
More informationApplication of UML in Real-Time Embedded Systems
Application of UML in Real-Time Embedded Systems Aman Kaur King s College London, London, UK Email: aman.kaur@kcl.ac.uk Rajeev Arora Mechanical Engineering Department, Invertis University, Invertis Village,
More informationTeam Builder Project
Team Builder Project Software Requirements Specification Draft 2 February 2, 2015 Team:.dat ASCII 1 Table of Contents Introduction Purpose 4 Scope of Project.4 Overview.5 Business Context 5 Glossary 6
More informationFrom Object Oriented Conceptual Modeling to Automated Programming in Java
From Object Oriented Conceptual Modeling to Automated Programming in Java Oscar Pastor, Vicente Pelechano, Emilio Insfrán, Jaime Gómez Department of Information Systems and Computation Valencia University
More informationProgress Record. Seq. Lesson # Lesson Title Date Grade. Introduction to Computers (CORE COURSE) 1
F-710 M-230 M-110 Progress Record Study your lessons in the order listed below. As graded examinations are returned to you, enter your grade in the space below. Set a schedule for yourself then watch your
More informationMenouer Boubekeur, Gregory Provan
Software Requirements Menouer Boubekeur, Gregory Provan Lectures Introduction to UML Introduction to Requirements Analysis Advanced techniques for Requirement Analysis M. Boubekeur, CSL, University College
More informationAffdex SDK for Android. Developer Guide For SDK version 1.0
Affdex SDK for Android Developer Guide For SDK version 1.0 www.affdex.com/mobile-sdk 1 August 4, 2014 Introduction The Affdex SDK is the culmination of years of scientific research into emotion detection,
More informationKeywords revenue management, yield management, genetic algorithm, airline reservation
Volume 4, Issue 1, January 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Revenue Management
More informationCourse MS10975A Introduction to Programming. Length: 5 Days
3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: rwhitney@discoveritt.com Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days
More information2 SYSTEM DESCRIPTION TECHNIQUES
2 SYSTEM DESCRIPTION TECHNIQUES 2.1 INTRODUCTION Graphical representation of any process is always better and more meaningful than its representation in words. Moreover, it is very difficult to arrange
More information2 The first program: Little Crab
2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if statement In the previous chapter, we
More informationChapter 1 Java Program Design and Development
presentation slides for JAVA, JAVA, JAVA Object-Oriented Problem Solving Third Edition Ralph Morelli Ralph Walde Trinity College Hartford, CT published by Prentice Hall Java, Java, Java Object Oriented
More informationInformation systems modelling UML and service description languages
Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Student Contact Hours: 25.02.2015- Location: 325 C3 room 25.03.2015:
More informationA Tutorial on dynamic networks. By Clement Levallois, Erasmus University Rotterdam
A Tutorial on dynamic networks By, Erasmus University Rotterdam V 1.0-2013 Bio notes Education in economics, management, history of science (Ph.D.) Since 2008, turned to digital methods for research. data
More informationJava 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition
Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating
More informationMobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game
Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Directions: In mobile Applications the Control Model View model works to divide the work within an application.
More informationJava Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
More informationWhy are Business Process Models often too complex? Do s and Don ts for Business Process Modelers
Why are Business Process Models often too complex? Do s and Don ts for Business Process Modelers Version 1.0 This document developed by Dr. Juergen Pitschke, BCS-Dr. Juergen Pitschke, www.enterprise-design.eu
More informationGraphical Web based Tool for Generating Query from Star Schema
Graphical Web based Tool for Generating Query from Star Schema Mohammed Anbar a, Ku Ruhana Ku-Mahamud b a College of Arts and Sciences Universiti Utara Malaysia, 0600 Sintok, Kedah, Malaysia Tel: 604-2449604
More informationWhat makes a good coder and technology user at Mountfields Lodge School?
What makes a good coder and technology user at Mountfields Lodge School? Pupils who persevere to become competent in coding for a variety of practical and inventive purposes, including the application
More informationCommunication Diagrams
Communication Diagrams Massimo Felici Realizing Use cases in the Design Model 1 Slide 1: Realizing Use cases in the Design Model Use-case driven design is a key theme in a variety of software processes
More informationIntroduction to programming
Unit 1 Introduction to programming Summary Architecture of a computer Programming languages Program = objects + operations First Java program Writing, compiling, and executing a program Program errors
More informationThe Design and Implementation of an Android Game: Foxes and Chickens
Vol.3, Issue.2, March-April. 2013 pp-1129-1134 ISSN: 2249-6645 The Design and Implementation of an Android Game: Foxes and Chickens Justin R. Martinez, 1 Wenbin Luo 2 12 Engineering Department, St. Mary's
More informationTHE BCS PROFESSIONAL EXAMINATIONS Diploma. April 2006 EXAMINERS REPORT. Systems Design
THE BCS PROFESSIONAL EXAMINATIONS Diploma April 2006 EXAMINERS REPORT Systems Design Question. a) Write a BRIEF explanation of the purpose of TWO of the following UML diagrams as used in Object- Oriented
More informationChapter 6: Programming Languages
Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 6: Programming Languages 6.1 Historical Perspective
More informationIntel Retail Client Manager Audience Analytics
Intel Retail Client Manager Audience Analytics By using this document, in addition to any agreements you have with Intel, you accept the terms set forth below. You may not use or facilitate the use of
More informationTexas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N130.0993. Video Game Design
Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N130.0993. Video Game Design STANDARD CORRELATING PAGES Standard (1) The student demonstrates knowledge and appropriate
More informationUmbrello UML Modeller Handbook
2 Contents 1 Introduction 7 2 UML Basics 8 2.1 About UML......................................... 8 2.2 UML Elements........................................ 9 2.2.1 Use Case Diagram.................................
More informationManage Software Development in LabVIEW with Professional Tools
Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition
More informationSocial Media in the Process Automation Industry
Social Media in the Process Automation Industry Distributed Software Development Design Document Version 0.1 In co-operation with: Title: Social Media in the Process Automation Industry Product name: ABBConnect
More information