CAN Bus - a network of components - electronic shifting in bikes
        Read the following article, TheBugsintheMachine, and answer these questions.
        
          - According to this article why  should we be concerned about "embedded systems"?
            - We should be concerned because they  allow software to fully control computers and objects such as airplanes. Errors  in these embedded systems can cause the them to malfunction, which can be especially  dangerous for a plane midflight. 
- I just bought a new software  application, how many errors can I expect in every 1000 lines of code?
            - You can expect 5 to 15 errors in every  1000 lines of code. 
- What are some of the trends in the  software world that contribute to this high number of flaws?
            - This high number of flaws is in part  caused by the culture of the software world; due to cost-benefit ratios,  programmers have little incentive to ensure code is flawless as it is much  easier to code post-release patches. Also, many programmers lack the skill to  increase reliability due to the use of high-level programming languages that  simplify the coding process. Also, many programmers use over-the-shelf software  as a basis instead of building their code from scratch, which can produce  errors. 
- What is the writer's prediction  about the future of embedded systems?
            - The writer predicts that if the US  removes programmers legal protections than shoddy software could produce many  lawsuits, motivating programmers to create better software. 
Refer to the definition of an "embeddedsystem" to answer these questions.
        
          - How is an embedded system different  from a PC?
            - An embedded system is different from a  PC as it is single purpose while PC’s are general-purpose. Often an embedded  system is integrated into hardware and mechanical parts to create a complete  device with the embedded system controlling the device. This is much different  from a PC which can run different programs, control various devices, etc.
- What are some of the advantages of  an embedded system being dedicated to a specific task?
            - The advantages for single-purpose  embedded systems include low power consumption, small size, rugged operating  ranges, and low per-unit cost. Additionally, design engineers can optimize  embedded systems to reduce their size and cost as well as increase the  reliability and performance of those products. Also, some embedded systems are  mass-produced, allowing each individual device to be cheaper.
- Move to the "Variety of  embedded systems" and give two examples of embedded systems in each of the  following areas: Consumer Electronics, Transportation and Medicine.
            - Consumer electronics include mp3 players  and digital cameras. Examples of embedded systems involved with transportation  are the inertial guiding systems of planes and electric motors such as DC  motors. In medicine, embedded systems are used in electronic stethoscopes and  medical imaging such as MRI. 
A network in your car? Read the following article, Motoringwithmicroprocessors, and answer these  questions.
        
          - What are some of the advantages of  having a network inside your car?
            - Interprocessor car networks can help cut  down the overly long, complicated, and expensive wiring that exist in today’s  cars. Additionally, car manufacturers design car networks to allow cars to be  smarter, safer, and lighter with simpler and more reliable wiring.
- What was the problem with networked  mirrors that shifted down and in when you put the car in reverse
            - In these cars, mirrors used the car’s  control network to communicate with the transmission, the car part that told  the mirrors when to shift down. However, criminals discovered that if they  removed the mirrors they could gain access to that control network. This would  allow them to control any aspect of the car that involved computer processors,  including the commands to unlock the car.
10. Evaluate the use of embedded systems in such  critical systems as plane navigation systems. This is an evaluate question. You  need to come to "make an appraisal by weighing up the strengths and  limitations of different evidence and arguments". Make a conclusion and  support your answer but also include limitations. 5 points
              Embedded  systems have become integrated into many different appliances, objects, and  vehicles, including our airplanes. All computers have glitches and bugs, but  this can become very dangerous in systems such as planes when, at cruising  altitude, the navigation systems start malfunctioning. This is not the only  scenario in which a computer malfunction in an embedded system could prove  disastrous, a glitch during both a military combat and when dialing a 911 call  could seriously danger someone. For these reasons, some argue that the best  option is for software programmers to be more thorough when coding and to  decrease reliance on “off-the-shelf” programs such as Windows 2000 that are  incredibly flawed. Unfortunately, this idea is much easier and simpler in  theory than in practice. It is all but assured that tech companies would resist  such a raising of the bottom line, arguing that software is incredibly complex  and thus bugs in that software are unavoidable. Additionally, software  developers do not have a financial incentive to triple-check code (it is much  cheaper to write post release patches) and ensure a higher quality. 
          Though these  limitations are valid and should be considered, forcing software vendors to be  more careful still has the most potential for eradicating most of these  problems while ensuring we can still have the benefits of integrating embedded  systems. For example, ending many of the strong legal protections of software  developers, especially shrink-wrap licenses and click through agreements, would  open up these vendors to damage claims (people could sue them). This would  produce the financial incentive to create higher quality products, causing  developers to consider paying the cost of currently existing methods that can  find these bugs, such as mutation testing, to avoid these lawsuits. We  currently have the means to ensure higher quality code that contains less bugs,  and though integrating them in the programming process will not be an easy  task, it is our best option to prevent dangerous malfunctions in critical  systems.
10. Evaluate the use of embedded systems in  such critical systems as plane navigation systems. This is an evaluate  question. You need to come to "make an appraisal by weighing up the  strengths and limitations of different evidence and arguments". Make a conclusion  and support your answer but also include limitations. 5 points.
        Brainstorm what the characteristics are of  embedded systems
                            Specialized,  narrow range of tasks, fast, precise, cheaper because smaller, not a whole  system, may have bugs
        Because of their task specific design embedded  systems such as the navigation system in an airplane are able to work quickly  and precisely providing greater safety for the passengers and increased profit  for the airlines. Navigation systems can determine a planes precise location,  speed, direction and altitude using GPS information. Such a system could warn a  pilot if the plane is off course, at the wrong altitude or moving too close to  the ground. The system can also reduce costs to the airlines by providing more direct  paths to the destination thus reducing flight time and fuel costs. At the same  time because a navigation system is so critical to the safety of the passengers  the costs would be much higher because of the added costs of developing an  extremely reliable system. Also if pilots become dependent and overly confident  of such systems this could result is tragic losses if there is an error in the  system. If a pilot is only relying on the navigation system and not paying  attention to what the plane is doing and the system’s calculated altitude is  not correct the plane could be in danger of crashing. Thus such embedded  systems are very beneficial but must also be used wisely and intelligently and  always with an understanding of the limitations of such systems.