ITEC 370: Software Engineering I
Prerequisites: ITEC 110 and ITEC 220 (Both courses require 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
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
b. Standards, styles, and guidelines
c. Interaction development process
7.Verification, Validation and Integration
a. Black box testing
b. Structural testing
d. Top-down integration
e. Bottom-up integration
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.
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