Sep 30, 2022  
2020-2021 Undergraduate Academic Catalog 
2020-2021 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

SE 2030 - Software Engineering Tools and Practices

2 lecture hours 2 lab hours 3 credits
Course Description
This course provides an introduction to the software engineering tools and practices - a look at typical approaches software engineers use to create applications in practice. Topics include requirements analysis, high-level design, detail-level design, UML modeling, code generation, basic unit testing, application building, continuous integration, and revision management. Laboratory assignments provide an opportunity for students to develop an understanding of these tools and how they are used in actual practice. (prereq: none) (coreq: CS 2852 )
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Create UML class, state, and sequence diagrams using a CASE tool
  • Transform requirements documented as use cases into UML design models
  • Generate source code from UML design models, and synchronize subsequent changes
  • Create simple unit tests and execute them in a standard test framework
  • Maintain source code and related design documents in a revision control system
  • Create a deployable software package using an automated build tool
  • Create an installable software package using an automated build tool

Prerequisites by Topic
  • Proficiency in a high-level object-oriented programming language
  • Knowledge of basic object-oriented programming concepts, data structures, and software design techniques

Course Topics
  • Introduction to the course and software engineering practices
  • Source code generation from UML models
  • Synchronizing source code with UML models
  • Use of a revision control system to archive source code and related documentation
  • Writing and executing Unit Tests using a framework
  • Use of an automated build tool for software package creation: meta-languages, scripts, rules, targets, actions
  • Software requirements analysis: reading use case scenarios and use case textual analysis
  • High-level design: requirements coverage, communication diagrams
  • Detailed design: class, communication, activity, state, and sequence diagrams

Laboratory Topics
  • Development of various small software projects to facilitate practice and with integrated tool usage

Dr. Derek Riley

Add to Portfolio (opens a new window)