SOFTWARE ENGINEERING FOR ROBOTICS

  1. Course Description
    Successful software development depends on an in-depth understanding of how the phases and supporting activities of the software development life cycle work together. Each phase of the life cycle contributes to a reliable, maintainable product that satisfies user requirements. The application of good engineering practices throughout the cycle dramatically improves the likelihood of delivering a quality software project on time, in scope and within budget. While there are many rigorous methodologies, in fact most approaches and tools have a mixture of strengths and weaknesses. Traditional development approaches result in models that are incomplete and quickly become out-of-sync with the application source code. Many modeling approaches focus on describing software designs, rather than solving business problems. This course presents modern software engineering techniques and examines the software life-cycle, including software specification, design, implementation, testing and maintenance
  2. Course Objectives
    Objectives of this course are: Understand software processes. Understand key concepts on requirements engineering, design engineering, quality assurance, risk control, and software project management. Gain skills in eliciting and modeling software requirements, describing different elements of a requirements model using UML. Gain skills in deriving software design and describing various design models using UML. Develop a basic understanding of software testing strategies and preliminary skills in writing test cases. Learn the essential elements of the robot operating system Learn how to simulate a robotic environment Discover how ROS provides a flexible and unified software environment for developing robots in a modular and reusable manner.
  3. Teachnig Method
    1 When speaking in class, please identify yourselves #2 Ask questions (There are no “stupid” questions. If you don’t understand it, someone else probably doesn’t it, either.) #3 Help each other! [(Even when a project or assignment is specified as individual, ask your friends or classmates about stuff you don’t understand.) >> When you have the answer, write it in your own words (or own coding style).] #4 Use the Class CTL as a Discussion Board #5 ALWAYS BE ON TIME
  4. Textbook
  5. Assessment
  6. Requiments
  7. Practical application of the course
    Software Development: Design, develop, and maintain robust software systems using industry-standard models and practices. Project Management: Efficiently manage software projects from inception to delivery, ensuring timely and cost-effective outcomes. System Architecture: Create scalable and maintainable system architectures that meet business and technical requirements. Testing and Quality Assurance: Implement comprehensive testing strategies to ensure software reliability and performance. Robotics and Automation: Apply software engineering principles to develop and deploy robotic systems using ROS (Robot Operating System).
  8. Reference