software by babbian


									  High-level Software Design
      Context Diagram
          Connections between major components
      Synchronization with external events
          Polling or interrupts
      Major software structures
      Device drivers
          Bridge between HW and SW

Senior Design         Seattle Pacific University   Software-1
  Context Diagram
      Show software connections between components
          Indicate which drivers are needed
          Indicate where interrupt handlers are needed                      Data
                            Example for logging meter                        Control
                               (Interrupt Driven)
   Buttons                                  MCU                                RS232
                      I/H                            Send Data to   Driver
                              Change Mode
                                                    Set Clock
     RTC             Driver
                      I/H                                           Driver      LCD
                                                  Display Data

                                     Read Data
                                    Store Data
     A/D             Driver
                            Reset                 Main Loop
                       (To all Drivers)          (Do nothing)

Senior Design          Seattle Pacific University                            Software-2
  External Synchronization
      External events may be discovered in two ways
          Polling
             Check for new data on a regular basis
             Main program has to integrate polls into the main loop
          Interrupts
             External events announce themselves
             Must carefully write interrupt handlers
             Main program doesn’t have to be aware of what is going on
              with interrupts
          If your product is driven mostly by external events, use
          If your produce systematically goes through processes, use

Senior Design           Seattle Pacific University              Software-3
  Device Drivers
      Interface between hardware and software
          Provide a package of easy-to-use subroutines to
           control and transfer data to external device
          Main software never “touches” I/O ports – instead
           uses device driver subroutines
          If hardware changes, only the device driver
           changes, not the main software
          Programmers don’t have to understand the details
           of all of the hardware
          Consistent methods of accessing and controlling
           external devices

Senior Design        Seattle Pacific University    Software-4
  Software Architecture Document
          Explain the role of software in your product
      Context diagram
          Draw a diagram showing how the major hardware
           components of your system are connected with
             Indicate where device drivers and interrupt handlers will
              be used
      Software structure overview
          Describe major control flow
             Interrupt-driven, polling, hybrid, etc…
                   Include rationale for your choice

Senior Design            Seattle Pacific University         Software-5
  Software Architecture Document
      Main software routines
          Describe main software routines
             Purpose, inputs, outputs and effects
          Include diagrams when useful
      Device drivers (separate document, due later)
          Describe software interface to each device driver
             List all driver subroutines including parameters
             Describe data structures needed
          Indicate which MCU port pins/busses will be used
           for each hardware component

Senior Design          Seattle Pacific University            Software-6

To top