ECE 30864 - Software Engineering Tools

Note:

This course ran as ECE 36400 and then ECE 49595 prior to Fall 2022.

Course Details

Lab Hours: 3 Credits: 1

Counts as:

  • EE Elective
  • CMPE Selective

Normally Offered:

Each Fall, Spring

Campus/Online:

On-campus only

Requisites:

ECE 26400 [minimum grade of C]

Requisites by Topic:

Two courses in computer programming

Catalog Description:

This course will acquaint students with the toolkit of the modern software engineer. Students will learn the tools surrounding the software application itself, e.g. tools for software process, software construction, and software deployment. Examples include: integrated development editors (IDEs), version control systems, project management, bug tracking, scripting languages, testing aids, deployment technologies.

Required Text(s):

None.

Recommended Text(s):

None.

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. an ability to use orchestration languages to manipulate diverse software systems. [1,2,6]
  2. an understanding of testing tools to assess software reliability and correctness. [1,2,6]
  3. an ability to use software management tools. [3,5]
  4. an awareness of software deployment technologies and tradeoffs. [2]

Lab Outline:

Lab Activity
1 Course overview: The role of tools in software engineering; Integrated Development Editors (IDEs)
2 Version control: Git, GitHub, models of distributed software development
3 Project management tools: Issue trackers, task trackers (e.g. Jira), and linking code changes to project management tasks.
4 The UNIX programming environment: files, I/O redirection, permissions, environment variables
5-6 Shell scripting: Bash, Python, JavaScript/Node.js This is not intended to be an exhaustive study of the languages, but rather to expose students to the similarities and differences between them.
8-10 Software testing (test frameworks, CI/CD, fuzzing)
11-14 Software deployment and monitoring (IaaS, PaaS, FaaS): includes Docker and two cloud platforms (some combination of GCP, AWS, Azure)