Information Technology 370

ITEC 370: Software Engineering I

Prerequisites: ITEC 220 with a grade of “C” or better

Credit Hours: (3)

Introduction to the principles of software engineering and the design and implementation strategies appropriate for large software projects. Includes project planning, specifications of project requirements, architectural design, verification and validation techniques and software maintenance.

Detailed Description of Content of Course

Topics include:

1. Software life cycle models
2. Software Planning
    a. Project Scope and Objectives
    c. Project Budget
3. Requirements definition and specification
    a. Software requirements document
    b. Requirements validation
    c. Requirements analysis
4. System Models and Prototyping
5. Software Design
    a. High Level Data Flow Diagrams
    b. Architectural Context Models
6. Human-Computer Interaction
    a. Usability
    b. Standards, styles, and guidelines
    c. Interaction development process
    d. Evaluation
7.Verification, Validation and Integration
    a. Black box testing
    b. Structural testing
    d. Top-down integration
    e. Bottom-up integration
8.  Ethics

Detailed Description of Conduct of Course

The focus of this class is theoretical software engineering and its application to large project development. Projects for this course are intended to introduce students to the complete software process from system conception through implementation.

Goals and Objectives of the Course

Students who complete the course will be able to:  
1. Demonstrate an understanding of various approaches and methodologies used in different phases of software development lifecycle, including planning, requirements analysis and specification, software development, and testing.
2. Participate in a software development team to plan activities, choose leadership, delegate responsibility, and follow a large software development project from inception to completion.
3. Effectively communicate technical matters (written and verbally) with programmers, managers, clients, and users.
4. Produce written software requirements and software design documents detailing the objective, scope, and operational scenarios of the intended software product.
5. Perform each phase of the software development lifecycle effectively, using up-to-date methodologies or tools.
6. Develop skills that will enable them to construct software of high quality software that is reliable, and that is reasonably easy to understand, modify and maintain.
7. Identify and evaluate non-functional software qualities such as reliability, efficiency, portability, and maintainability.
8. Describe the profile of the user community for which the team builds an effective graphical user interface.
9. Discuss the ethics and ethical responsibilities of the software engineering practice.
10. Compare and contrast various software development lifecycles and chose an appropriate lifecycle based on the business units characteristics and goals.

Assessment Measures

Participation in the design of a large software project is crucial to the successful completion of this course. At least two exams will also be used in evaluating the student's level of material assimilation.

Other Course Information


Review and Approval

April 1985 Updated for changes in course content F. B. Green, Chair Curriculum Committee
Sept. 1991 Reviewed for changes in course content and methodolgy

Allen L. Bures, Chairman Department of Management

Nov. 15, 1999 Prerequisite Change Felix Amenkhienan, Chair  Department of Accounting, Finance and Information Systems
Sept. 25, 2011 Updated John P. Helm, Chair  Department of Information Technology
Feb, 2003 Updated John P. Helm, Chair
Nov, 2003 Updated Joseph Chase, Chair

Revised: June 1, 2012