SYSC4805 - Computer Systems Design Lab
Table Of Contents
1. Course Introduction
2. Project Management
1. Course Introduction
Course Philosophy
-
SYSC 4805 - Computer System’s Design Lab is a project-based course aimed at making small scale embedded systems through the collaboration of an engineering team.
-
Split into 3 parts:
- Managing Engineering Projects
- Technical Skills
- Communication skills
Learning Outcomes
- Define concepts of product design, development methodology, and team-based project management.
- Design an embedded microcontroller-based system for an engineering problem using hardware and software components.
- Identify and adapt to realistic constraints.
- Analyze potential solutions for an engineering project.
- Use knowledge to analyze and solve an engineering problem.
- Evaluate and predict performance using the Scientific method.
- Define, plan, and manage a moderately complex project.
- Develop teamwork and entrepreneurial skills.
- Develop communication skills through technical presentations and reports.
Project Generalities
- The goal of the project is to design and build a robotic platform containing:
- Moving components
- Sensors
- Software that performs data fusion, decision making, processes sensor data, and uses the robot to solve a task.
- Project task is to use the robot to clear the snow off an enclosed are by a closed black path.
- Robot most deal with fixed an moving obstacles without hitting them.
Embedded System
- Class of computers that span a wide range of applications and performance.
- Embedded Systems split by Application:
- Automotive
- Telecommunication
- Healthcare
- Industrial
- Consumer Electronics
- Military and Aerospace
- Manufacturing
Microcontroller vs Microprocessor
- Microcontroller’s are all-in-one chips (containing CPU, memory, I/O peripherals, etc) designed for specific tasks (e.g Arduino).
- Microprocessors are powerful CPU’s that need external memory and I/O to function. They are built for high-performance, general-purpose computing (e.g. Raspberry Pi).
The Arduino Due
- A microcontroller with:
- 32-bit ARm core @ 84 MHz clock
- 512 Kb flash and 100 KB SRAM
- 54 digital I/O pins
- 12 PWM outputs (max 3.3V)
- 12 Analog inputs (12-bit ADC, max 3.3V)
- 2 Analog outputs (12-bit DAC)
- USB, SPI, I2C, CAN, and UART interfaces
- 9 32-bit timers
- 3 low-power modes
- ATmega16U2 microcontroller chip that acts as a bridge between the computer’s USB and the main serial port
- Data sheet is SAM3X8E
The Arduino Nano Every
- Based on the ATMega4809
- 8-bit AVR processor @ 20 MHz clock
- 48 KB Flash, 6 KB SRAM, 256B EEPROM
- 20 Digital input/output pins (Maximum 5V)
- 5 PWM outputs
- 8 Analog inputs (10-bit ADC) (Maximum 5V)
- No Analog outputs (only through PWM)
- Interfaces: USB, SPI, I2C, and UART
- 1 Timer (16-bit timer)
- Some low-power modes
- Almost all the pins are configurable by software.
- Also holds ATSAMD11D14A ARM Cortex-M0+ processor acts as a bridge between USB and the main AVR processor
Why Arduino?
- Stable and sturdy
- Faster development cycle
- Has built-in functions for directly working with microcontroller registers
Sensors We Use
Sensor | Description | Interface |
---|---|---|
Rover Line Follower | Analog on/off line detector/follower | Analog Output |
Obstacle Detection IR Sensor | Digital on/off Obstacle detection | Digital Output |
Laser Range Finder | Time-of-flight (TOF) range finder 4 - 400 cm | I2C |
Ultrasonic | Distance measurement | Timer |
Analog Distance Sensor | Distance measurement 2 - 15 cm | Analog Output |
IMU | Gyro, Accelerometer and Compass | I2C |
Wheel Encoder | Rotation degree of the wheels | Counters |
Some Bad Stories
Examples where bad software led to catastrophes:
- 2022 Rogers Communication Outage: 25% of Canada lost internet connectivity
- 1997 Mars Pathfinder incident: Total system resets after landing, caused by faulty watchdog timer
- Therac-25 (1987): Bug in accepting commands led to machine being able to work in high power mode without shield (error displayed, unclear code number)
- 2009 Toyota Unintended Acceleration: Wide Open Throttle with no feet on pedal
- Boeing 737 MAX: Lion Air Flight 610, Ethiopian Airlines Flight 302, angle-of-attack sensor falsely reports aircraft going to high, pushing nose down and causing aircraft to dive.
2. Project Management
Definitions
- Project: A temporary endeavor undertaken to create a unique product, service, or result
- Examples: Introducing a new car, upgrading models, merging two organizations
- Project management: The application of knowledge, skills, tools, and techniques to project activities to meet the project requirements
- Knowledge area: A discipline or field of expertise in project management; groups together processes that share common subject matter
- Phase: A time-based division of the project life cycle (stages of project progression)
- Focus: What you need to know and manage in a project
Goals of Project Management
- Meet project objectives
- Satisfy stakeholder expectations
- More predictable
- Increased chances of success, within schedule and budget
- Identify and respond to risks
- Identify, recover, or terminate failing projects
How to Know Project Management was NOT Involved
- Parts of project vary widely in quality and style (over and under engineered)
- Some features keep consuming resources when they should have been killed
- Essential processes are rushed or removed entirely (testing, maintenance and upgrade plans)
- Time schedules are based on actual coding time, nothing else
Project Management Knowledge Areas
In accordance with the PMBOK Guide
- Project Integration Management
- Project Scope Management
- Project Schedule Management
- Project Cost Management
- Project Quality Management
- Project Human Resource Management
- Project Communications Management
- Project Risk Management
- Project Procurement Management
- Project Stakeholder Management
ChatGPT Mnemonic: I See Smart Cool Humans Communicate Risks, Plans, Success
Project Integration Management (Management Plan)
Identify, define, combine, unify, and coordinate the various processes and project management activities.
- Develop Project Charter: Writing a document that formally authorizes the existence of a project
- Develop Project Management Plan: Design/building plan components into integrated project management plan
- Direct and Manage Project Work: Leading/performing work in project management plan to achieve project objectives
- Manage Project Knowledge: Using existing knowledge to create new knowledge to achieve project objectives
- Monitor and Control Project Work: Tracking/reviewing overall progress to meet objectives in the project management plan
- Perform Integrated Change Control: Review, approve, and manage project changes while updating and communicating decisions.
- Close Project/Phase: Finalizing all project/phase/contract activities
PM Integration: Definitions
- Project Charter: Paragraph description for; project purpose, objectives, success criteria, key deliverables, exit criteria
- Project Management Plan: Description of all documents on how the project will be executed/monitored/controlled/closed.
Project Scope Management
Ensure the project plan only includes all the work required
- Plan Scope Management: Creating scope management plan which documents how project scope is defined/validated/controlled
- Collect Requirements: Documenting/managing stakeholder needs and requirements for project’s objectives
- Define Scope: Developing detailed description of the project and product
- Create WBS: Subdividing deliverables into smaller manageable components
- Validate Scope: Formalizing acceptance of completed deliverables
- Control Scope: Monitoring status of project/product scope as well as changes to scope baseline
PM Scope: Definitions
- Product scope: Features and functions that characterize a product/service/result
- Project scope: Work performed to deliver a product/service/result with specified features/functions
PM Scope: Requirements
- A written agreement between customer and engineers on a projects functional/non-functional requirements
- Most important aspect of project
- Requirements Language:
- [Condition] [Subject] [Action] [Object] [Constraint of Action]
- Condition (optional): Condition under which requirements applies, generally starts with “When”
- Subject: The actor (e.g. the application, the system)
- Action: The action of the requirement (e.g. shall return to, shall send)
- Object (optional): Object of the action (e.g. a signal, message, particular state)
- Constraint (optional): Restricts the action (e.g. time limit), generally uses “within”
- [Condition] [Subject] [Action] [Object] [Constraint of Action]
PM Scope: Characteristics of Good Requirements
- Singular: Requirement shall include only one statement and addresses one and only one thing
- Unambiguous: Every requirement has only one interpretation (avoid ambiguity)
- Implementation Free: Requirements shall specify system expectations without describing how it will do it
- Verifiable: Every requirement must be verifiable (person must be bale to check that the system meets said requirement)
- Traceable: Requirements shall be upward traceable to stakeholders’ needs
- Consistent: Requirements must not contradict each other
- Affordable and Feasible: Requirements can be realized within development and system constraints
- Complete: Requirements include all significant requirements and proper responses to all possible inputs (valid and invalid)
ChatGPT Mnemonic: Smart Users Implement Very Thorough, Consistent, Achievable Criteria
PM Scope: Requirements Traceability Matrix
- Grid that links product requirements from their origin to the deliverables to ensure each requirement adds business value.
Work Breakdown Structure (WBS)
Project Schedule Management
Manage the timely completion of a project
- Plan Schedule Management
- Define Activities
- Sequence Activities
- Develop Schedule
- Estimate Activity Durations
- Estimate Activity Resources
- Control Schedule
PM Schedule: Activity List
PM Schedule: Milestone List
PM Schedule: Schedule Network Diagram
PM Schedule: Precedence Diagramming Method (PDM)
Dependency Types:
- Finish-to-start (FS):
- Finish-to-finish (FF):
- Start-to-start (SS):
- Start-to-finish(SF):
Critical Path Method (CPM)
Project Cost Management
Planning/estimating/financing/managing costs so that the project can be completed within the approved budget
- Plan Cost Management:
- Estimate Cost:
- Control Costs:
- Determine Budget:
Project Quality Management
- Plan Quality Management:
- Perform Quality Assurance
- Control Quality
Project Human Resource Management
- Plan Human Resource Management
- Acquire Project Team
- Develop Project Team
- Manage Project Team
Project Communications Management
- Plan Communications Management
- Manage Communications
- Control Communications
Project Risk Management
- Plan Risk Management:
- Identify Risks
- Perform Qualitative Risk Analysis
- Perform Quantitative Risk Analysis
- Plan Risk Responses
- Control Risks
Project Procurement Management
- Plan Procurement Management
- Conduct Procurement
- Control Procurement
- Complete Procurement
Project Stakeholder Management
- identify Stakeholders:
- Plan Stakeholder Management
- Manage Stakeholder Engagement
- Control Stakeholder Engagement