Apr 18, 2024  
2015-2016 Undergraduate Academic Catalog 
    
2015-2016 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

SE 2890 - Software Engineering Practices

2 lecture hours 2 lab hours 3 credits
Course Description
This course provides an introduction to the discipline of software engineering for Non-majors. Students will be exposed to the practices employed in determining requirements for the software which is to be developed. From the requirements specification, problem domain analysis will lead to a high level design. After review, the high level design will be used to create detailed designs and implement the software on a desktop machine. These activities will be reinforced through a team project and culminating with group oral presentations. (prereq: CS 2852  )
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Recognize the risks of software failure and appreciate the importance of a disciplined software development approach.
  • Compare and contrast distinct models for software development.
  • Employ rudimentary configuration management tools and processes across a software development project
  • Verify through the practice of review that specified requirements are accurate, unambiguous, complete and consistent
  • Apply UML modeling tools to represent all phases of a software engineering project
  • Conduct efficient and effective software reviews, and measure the effectiveness of those reviews
  • Perform rudimentary software testing using both manual and automated mechanisms
  • Demonstrate independent learning to accomplish tasks for which all of the details may not have been taught in previous courses.
  • Work effectively in a team environment on a short-term software development project
  • Communicate design and implementation judgment to others through a team-based oral presentation
  • Demonstrate effective written and oral communications skills

Prerequisites by Topic
  • None 

Course Topics
  • Introduction to Software Failure (1 class)
  • Overview of Software Development Processes (1 class)
  • Requirements and Use Cases (3 classes)
  • Software Reviews (3 classes)
  • Object Domain Analysis and Object Behavioral Analysis (4 classes)
  • Design Patterns/ Detailed Design (2 classes)
  • Code implementation (2 classes)
  • Review and/or exam (1 class)
  • Java Threading (1 class)
  • Testing/Verification of Software (2 classes)

Laboratory Topics
  • Individual Software Development Processes and Individual Project Management (2 sessions)
  • Requirements Review and Requirements Capture (1 session)
  • Object Domain Analysis (1 session)
  • Object Behavioral Analysis (1 session)
  • High Level Design/ High Level Partitioning (1 session)
  • Detailed Design/ Implementation (2 sessions)
  • Testing (1 session)
  • Oral Presentations (1 session)

Coordinator
Walter Schilling



Add to Portfolio (opens a new window)