CS 324 Principles of Software Engineering

Catalog Description: 

This course will examine and discuss the life cycle of computer software. The major issues addressed are: analysis of the project, requirements specification, design, coding, testing and reliability and maintenance.

Prerequisite: 

CS 202 or permission of the instructor

Credits: 
3
Offered: 
First semester
Required or Elective: 
Required for the BS in Computer Science
Level: 
Intermediate
Coordinator: 
George Dimitoglou
Current Textbook: 

Sommerville, I., Software Engineering, 9th ed., Addison-Wesley

Topics covered: 
  • The Software Process
  • Software Project management
  • Software Requirements
  • Project Planning, Tracking & Estimation
  • Software Design
  • Software Metrics
  • Risk management
  • Quality Management
  • Software Testing
  • Formal Models & Verification
  • Software Configuration Management
Student Learning Outcomes: 

On completing this course, the student will be able to:

  1. Define and explain basic software engineering concepts and principles
  2. Recognize, define, and make correct use of software engineering terminology
  3. Apply the concepts of Software Process and Model
  4. Determine which life cycle model to use by analyzing different operational scenarios
  5. Describe and execute the required steps in Software Design
  6. Apply techniques for eliciting, analyzing and developing software requirements
  7. State and execute the steps involved in Program Verification, Validation and Testing
  8. Apply procedures for Software Quality Assurance and Cost Estimation
  9. Demonstrate the procedure of converting a valid software design into efficient code
  10. Contribute in the full software development life-cycle in a team-based environment
  11. Organize and present technical work orally
Relation of Course Outcomes to Program Outcomes: 

 

CS 324 Student Outcomes (SOs)
Course Learning Outcomes a b c d e f g h i j k
1. Define and explain basic software engineering concepts and principles                      
2. Recognize, define, and make correct use of software engineering terminology                      
3. Apply the concepts of Software Process and Model                      
4. Determine which life cycle model to use by analyzing different operational scenarios                      
5. Describe and execute the required steps in Software Design                      
6. Apply techniques for eliciting, analyzing and developing software requirements    ✔                  
7. State and execute the steps involved in Program Verification, Validation and Testing                      
8,. Apply procedures for Software Quality Assurance and Cost Estimation                      
9. Demonstrate the procedure of converting a valid software design into efficient code      ✔                
10. Contribute in the full software development life-cycle in a team-based environment      ✔  ✔              ✔
11. Organize and present technical work orally            ✔          ✔
Role in Assessment: 

See the pages "BSCS Course Matrix" and "BSCS Courses for Assessment"

This course contributes to the assessment of the following SOs and PIs.

SO PI Strategy
c c.2

Students give a mid-term presentation where they communicate their constraints, design issues and propose solutions and approaches to overcome them. Students develop different parts of their project and continuously evaluate their solutions against project requirements. This takes place during a midterm review presentation and team-based review meetings.

k k.1

Students will develop documentation for project planning that must include the stages of the SDLC.

k k.2 Students will develop a large project that forces them to each work in specific modules and components that need to be integrated.  They will provide the necessary documentation such as a Software Requirements Document, Design document, User and Developer manual etc.

 


 

Go to top