Difference between revisions of "Technical Platform"

From EUDP
Jump to: navigation, search
(Example: Added Used In)
Line 1: Line 1:
 +
<imagemap>
 +
 
 +
Image:TechnicalPlatformOverview_img.gif
  
== What ==
+
 
 +
poly 27 98 146 98 146 117 27 117 27 98 [[Technical Platform]]
  
  
Selecting the technical platform - What will be implemented in hardware (HW) and software(SW), respectively?
+
</imagemap>
  
[[Image:Technical_Platform.jpg|600px]]
+
[[Technical Platform]]
 
+
[[Image:Girl.gif]]
+
 
+
== How ==
+
+
'''The dish'''
+
 
+
Selecting the technical platform.
+
 
+
There are different kinds of technical platforms:
+
 
+
*    The HW platform on which the SW is implemented - the final product
+
*    All the HW included in the project
+
 
+
'''Ingredients'''
+
 
+
*    [[Exact Requirements]] (HW timing, etc.)
+
*    [[Class Diagram]] and a short description
+
*    [[State Machine Diagrams]]
+
*    [[Use Cases]]
+
*    [[Sequence Diagrams]] expressing the dynamics of the system
+
*    Results from the [[Function Analysis]]
+
*    Results from the [[User Interface Analysis]]
+
*    Results from the [[System Interface Analysis]]
+
*    [[Subsystem Architecture Design]]
+
*    [[Design Criteria]]
+
 
+
'''Process'''
+
 
+
From the components and the class diagram you should select which part to implement in HW and which in SW.
+
 
+
Define the tools necessary for developing the [[system-to-be]].
+
 
+
== How - in details. ==
+
 
+
It is necessary to find the best selection between HW and SW. For this purpose you should make a list of HW candidates and SW candidates. Be open-minded about what is possible to make as HW or SW. What is only a HW candidate must of course be made in HW, and the same applies for SW candidates. If a class is listed as both a HW and a SW candidate, you must look at the aspects below.
+
 
+
Considering the design criteria, the type of system is important. If there are no demands that specify that the system-to-be has to be electronic, then it is possible that the whole system could be made entirely by mechanics. If the demands are that the system-to-be has to collect data, then a microprocessor is an option. Therefore, it is important to consider the Exact Requirements and the Architecture Design at all times.   
+
 
+
Besides the Exact Requirements and the Architecture Design, the following must be considered:
+
 
+
'''The price of the product'''
+
 
+
HW costs more for each product produced than SW, but both costs must be taken into consideration.
+
 
+
'''Development time'''
+
 
+
Consider the time it takes to develop HW and SW from scratch to final product. This includes time for testing.
+
 
+
'''Performance'''
+
 
+
Consider the performance of the product during the test which reproduces the real world.
+
 
+
If a test, e.g. an EMC (Electro Magnetic Compability) test has an effect on some HW, then the same test would not have the same effect if the HW was developed in SW. HW is more vulnerable to test. It is therefore important to make a robust processor system. Also SW can hide problems by performing a background job which update data in external circuits.
+
 
+
'''Reliability and lifetime'''
+
 
+
SW is more reliable than HW, because the reliability of SW only depends on the reliability of the processor system. If a processor system is present in the product and some of the HW can be made by SW, the reliability and lifetime will be improved.
+
 
+
'''Derating'''
+
 
+
Remember to derate both HW and SW (for HW the components degrade during lifetime, for SW  there may come new features that "eat" memory or CPU cycles thereby derating the total SW system). The derating of software is mostly concerned with timing.
+
 
+
'''Speed and size'''
+
 
+
Is it at all possible to make HW as SW instead? The processor speed/timing must be considered. How many tasks must the SW handle "at the same time"? Do you need an operating system? Is the processor system fast enough? How close to the limit do you have to go? Remember that in the future the SW may not be the same, probably more advanced with more tasks.
+
 
+
'''Already developed parts'''
+
 
+
If one or more parts of the project already have been developed for other projects, you have to consider how it worked in those projects. Would they fit into the new project? Was the design as wished or did the parts contain defects? Are the parts good enough or do you need to design new parts?
+
 
+
It is normal to use older designs and make a redesign when you develop HW. The advantage is that all the faults and the advantages are known. This facilitates the redesign. 
+
 
+
If it is important to use already developed parts, these must be considered early in the selection of the technical platform, probably already in the General Architecture Design, because it will have a major effect on the selection. The already developed parts may contain more HW and SW candidates, and it is not certain that these parts fit completely into the system-to-be. Therefore, you have to make a review of  the design specification when you choose already developed parts.
+
 
+
Additionally, if you choose a bigger part containing more classes which is both SW and HW, it is possible to consider the part as one module. The module has some connections in the class diagram. If it is obvious that these connections are digital, it can be easier to consider the module as a SW module. Take for instance a Bluetooth unit. The interface to the module is digital, but it contains lots of HW in order to transmit and receive.     
+
 
+
'''Production'''.
+
 
+
Consider the difficulties by producing the system-to-be. If a part is difficult to produce, it can be easier if the part is developed in software. The difficulties can result in many adjustments  in order to gain close accuracy.
+
 
+
'''Service and maintenance'''
+
 
+
Consider service and maintenance. No matter how well-developed the system-to-be is, it will sometimes fail or must be maintained. Maintenance can be different sorts of adjustments of the system-to-be. Sometimes replacing old HW or changing SW. It can be easier to change SW than HW. If the system-to-be have some sort of input/output port, or even better Internet access, it can be possible to change SW without disassembling the system-to-be. Changing some HW parts can cause adjustments and of course, disassembling of the system-to-be. If it is necessary to facilitate  adjustments or updates, SW updates must be considered. 
+
 
+
'''Development tools.'''
+
 
+
Notice that the selection between SW and HW has consequences regarding the tools which are used to develop HW and SW. The different platforms the developer is working on to develop SW and HW must also be taken into consideration.
+
The tools which are necessary to develop HW can be:
+
 
+
Software to simulate how HW works. The technical platform is normally a PC.
+
 
+
Software to make printed circuit-boards. The technical platform is normally a PC.
+
 
+
Test equipment. Simple and maybe more advanced.
+
The tools which are necessary to develop SW can be:
+
 
+
Programming editor.
+
 
+
Compiler.
+
 
+
HW to upload the SW to the processor.
+
 
+
+
A possible way to find the best division between HW and SW.
+
 
+
'''Find SW and HW candidates.'''
+
 
+
Use the components and the Class diagram to select which parts are possible to implement in HW and which in SW. Each component contains a number of classes. The class diagram which is made in the general analysis is contained in the model component. The other components  also contain classes. Each class can be considered like the drawing below.
+
 
+
[[Image:Sensor.jpg]]
+
 
+
The temperature Sensor can be made mechanically. Then the HW and SW parts are not present! If the sensor is mechanical, but it produces a voltage between zero and ten, then the SW part is not present. Then it is important that the temperature sensor is considered as a HW part! If the output is digital consider the temperature sensor as a SW part, even though the sensor contains HW. It is only necessary to take all parts of the sensor into consideration, if it has to be developed from scratch.
+
 
+
'''Divide into tree groups: SW, HW and Mechanical.'''
+
 
+
*    Make a scheme containing all classes.
+
*    The parts which are only possible to develop in either HW or SW must be listed to be developed in either SW or HW.
+
 
+
*    The parts which are possible to develop in both HW and SW and which must be considered more deeply.
+
 
+
'''Consider the parts which are difficult to place.'''
+
 
+
*    First take a look at the components and the class diagram. Consider the connections from the parts which are difficult to place to all the other parts. If a part is only connected to other parts which will be developed in SW, it is easy to make a decision. If not, remember to take the connections into consideration at all times! It might cost an extra A/D or D/A converter.
+
*    If the class diagram and the connections are not enough:
+
 
+
Make a scheme from the check list above.
+
 
+
Value each parameter etc.
+
 
+
If the price of the product is important: 10 points.
+
 
+
If the development time is not important: 2 points.
+
 
+
Now consider each part of the system-to-be which can be developed in both HW and SW, how do they fit into each parameter?
+
 
+
HW:
+
 
+
The price will be high, 1 point: 10*1 = 10 points.
+
 
+
Development time will be short, 10 points: 2 * 10 =  20 points.
+
 
+
D/A and A/D converters, none necessary!
+
 
+
SW:
+
 
+
The price will be low ,8 points: 10 * 8 = 80.
+
 
+
Development time will be long, 3 points: 2 * 3 =  6 points.
+
 
+
D/A and A/D converters, A/D necessary. Adjusting the price.
+
 
+
When you make a sum of the points, it is easier to make a decision!
+
 
+
In this very short example: HW: 30 points, SW : 86 points. We must probably choose to develop this part of the system-to-be in SW!
+
 
+
If the points are close to each other, it is possible to make a decision later in the project. However, in order to do this, it is important that the part is not a central part of the system-to-be.
+
 
+
+
 
+
'''Write the HW and SW specification.'''
+
 
+
The HW and SW specifications are two documents containing all the documentation necessary to develop the HW or SW. The documents contain amongst other things class diagrams, sequence diagrams, etc.
+
 
+
== Why ==
+
 
+
Selecting the technical platform is a delicate job. The wrong selection may cause negative long time effects on the product and the cost of the product. In hardware there is a cost for each component used in each item produced, whereas in software there is only a cost at the development of the software components, but not when it comes to the actual production. Hardware derates during the lifetime of the product; that is after some years the components do not hold the same specifications as they did when they were designed and produced.
+
 
+
However, if the system-to-be should have the ability to upgrade the software during the  lifetime of the product, the software may derate as well. The new versions may for example use more memory or CPU-time and the timing in the system may not always be as at initial design time. New features may cause malfunction in already existing functions in the system.
+
 
+
== Example ==
+
 
+
Selecting the technical platform
+
 
+
The heating system.
+
 
+
1.    The design criteria must be considered. This system-to-be must in some way or another be electronic. If not, the class diagram (from the model component) could be handed over to the heating and sanitary engineer, and he would set up the system. Provided he has the prober understanding of a UML diagram.
+
 
+
2.    Now each component must be opened and each class must be listed. HW/SW candidates or Mechanics.
+
 
+
3.    Consider each class if it can be developed as HW, SW or Mechanics.
+
 
+
4.    Find possible interfaces to each class. 
+
 
+
Some classes from the model component are chosen.
+
 
+
Temperature Sensors:
+
 
+
Indoor: The indoor temperature sensor is one of the parts which can be made as HW or SW. If the control unit has some sort of input that is either digital or analog, then this is the decisive factor which determines whether the sensor has to be SW or HW. If this temperature is one of the temperatures which are useful to collect as data, it probably has to be SW. The price of the sensor must be taken into consideration as well. If some sort of linearity adjustment must be performed, it is easer in SW. Either in the temperature sensor or in the control unit.       
+
 
+
Boiler: This temperature sensor is tracking the boiler temperature if it is the selected temperature. It only has to inform whether the temperature is lower or higher than the selected. Therefore, Mechanics ON/OFF.
+
 
+
        Class: (2)  Interface: (4)    HW(3)    SW (3)    Mechanics (3)
+
 
+
Control Unit                            x        x
+
 
+
Temperature Sensors:
+
 
+
  Indoor                DIG/ANA        x        x
+
  Outdoor              DIG/ANA        x        x 
+
  SupplyPipe            DIG/ANA        x        x          x
+
  Boiler                On/off                              x
+
  Hotwater              On/off                              x
+
 
+
Mixermoter              On/off          x                    x
+
 
+
Boilerunit              DIG/ANA        x        x          x
+
 
+
Oil Burner              On/off          x                    x
+
 
+
Pumps
+
Heatingsupplypump sensor On/off        x                    x
+
Hotwatersupplypump supplyOn/off        x                    x
+
 
+
Hotwater unit            On/off        x                    x
+
Hotwater heater          On/off        x                    x
+
Hotwater inverter                      x        x
+
 
+
 
+
== Used In ==
+
 
+
The Technical Platform is the basis for the development.
+
 
+
Some [[Contracting]] is needed in order to establish the terms and conditions for the further development.
+

Revision as of 15:05, 5 November 2009

Technical PlatformTechnicalPlatformOverview img.gif
About this image

Technical Platform