Analysis and Design |
The purpose of FlexPendant SDK is to provide operator interfaces that fulfill specific customer needs. This section focusses on the development phases preceding the actual coding: analysis and design.
Object oriented software development.NET is entirely object-oriented. Platform services are divided into different namespaces such as, System.Collections, System.Data, System.IO, System.Security and so on. Each namespace contains a set of related classes that allow access to platform services. FlexPendant SDK, too, is completely object oriented. Its class libraries are organized in different namespaces such as
ABB.Robotics.Controllers.RapidDomain,ABB.Robotics.Controllers.MotionDomain and so on.
Some experience in object orientation is necessary to start developing custom applications. It is presumed that you feel comfortable with concepts such as objects, classes, methods, inheritance, encapsulation and so on.
Object oriented Analysis and DesignObject Oriented Analysis and Design, OOAD, is a popular topic in computer science literature, where the importance of doing a thorough analysis and design before starting coding is commonly accepted. A well designed OO application has a true representation in the real world. Classes have well defined areas of responsibility and collaborate in an efficient way to achieve what is required.
Analysis based on communication and use casesThe main idea of FlexPendant SDK is, as has already been pointed out, that custom operator interfaces can be developed close to end-users, taking their specific needs in consideration. It therefore goes without saying that analysis is crucial.
The result of the object-oriented analysis is a description of what we want to build, often expressed as a conceptual model. Any other documentation that is needed to describe what we want to build, for example pictures of the User Interface, is also part of analysis.
The most important aspect for FlexPendant SDK development is communication with end-users. Activities which support a shared view of what should be developed are strongly recommended. Such activities may include:
In short, involving end-users from the early stages and keeping them involved throughout the development project is the best strategy.
creating and discussing use cases together
coding or drawing prototypes and get end-user feedback
![]() |
---|
Customer satisfaction is what has driven the development of FlexPendant SDK. Do make sure that you have really understood what the end-users of your application need. |
The result of the object-oriented design details how the system can be built, using objects. Abstraction is used to break complex problems into manageable chunks. It makes it possible to comprehend the problem as a whole or to study parts of it at lower levels of abstraction.
It takes years to become a skilled object oriented designer. Design theory must be transformed into practical experience and iterated over and over again.
The goal is to produce high quality code, which is cost-efficient and easy to maintain. This is achieved, for example, when adding new functionality will involve minimal changes to existing code and most changes will be handled as new methods and new classes.
Do you need to do design?There is a huge difference in complexity when creating software such as .NET framework, for example, and a custom operator view for IRC5. Obviously, the more complex a system the more careful design is needed. Accordingly, the larger and more complex a custom application needs to be, the more likely you are to spend time on design.
This table presents some considerations before deciding how well you need to design your application before starting coding:
Consideration | Advice | ||
---|---|---|---|
How much code is it going to be? | If it is going to be a very simple application with one view and a few buttons there is no need even to split the code between different classes and files. If there will be a substantial amount of code and there might be further extensions later on, spending time on design becomes more relevant. | ||
Will different developers work on different classes/components? Will you maintain the code yourself, or may it be done by others? | If yes, spending time om design becomes more relevant. | ||
Is the real time aspect of the application important? | If yes, coding efficiently is important. This will much more easily be achieved if you spend some time on design.
|
A simple custom application can be created in a day or two using FlexPendant SDK. A large custom application with a number of different views, offering advanced robot system functionality, however, may take months to develop and will require considerable programming skill. The recommendation is to start developing a simple application, which you execute on the target platform, before moving on to advanced FlexPendant SDK programming.