CSCE 247 - Software Engineering

Course Information:

  • Course Name: CSCE 247 - Software Engineering
  • Semester: Spring 2019
  • Instructor: Greg Gay
  • Lecture Hours: Monday/Wednesday, 3:55 - 5:10 PM, 300 Main St. B102
  • Office Hours: Tuesday/Thursday, 4:00 - 5:00 PM, 2247 Storey Innovation and Engineering Center

Course Description

Software engineering is concerned with the development and evolution of high­quality software systems in a systematic, controlled, and efficient manner. Software engineers are concerned with safety and reliability of the product as well as the cost and schedule of the development process. The lectures and the group projects will cover all aspects of the software life cycle, from development team management, problem specification and analysis, system design techniques, implementation and documentation practices, testing, to maintenance and evaluation of the final product.

Where does this fit in with the rest of my computer science courses?

Many computer science classes deal with taking complex domain­specific problems and deriving solutions from the appropriate mathematical and computational theories. In an AI course, you reason about intelligence problems and design software that solves such problems.

Software engineering is the study of software itself. It is focused around designing, developing, and documenting reliable, functionally complete, and usable software. In software engineering, you will learn to reason about software itself, and will learn lessons that apply to any program you design in the future.

Learning Outcomes

  • The students will be able to distinguish between software development processes and choose an appropriate process for a particular project, including the selection of appropriate source control and project management tools.
  • The students will be familiar with requirements elicitation and be able to create a requirements specification.
  • The students will learn about software architectural styles and understand how to model the control and data flow through a system.
  • The students will understand the principles of object-oriented software design, including how to describe and model the structure of a system.
  • The students will understand and be able to apply software design patterns.
  • The students will be familiar with the fundamentals of requirements-based and structure-based software testing and the accompanying test selection methods.

This content is made available in the interest of sharing educational material with any who might find it useful. This page is updated periodically, and may not be in synch with the course itself. For current course students, the latest content, assignment submission, and discussion forums are available on Moodle.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Note: All documents were originally written in Google Docs and converted to PDF. There may be some formatting errors in slides that did not exist in the original document.

Documents

Lectures

Assignments