Introduction to Software Engineering

Curriculum Guideline

Effective Date:
Course
Discontinued
No
Course Code
CMPT 2276
Descriptive
Introduction to Software Engineering
Department
Computing Science
Faculty
Science & Technology
Credits
3.00
Start Date
End Term
Not Specified
PLAR
No
Semester Length
15 Weeks
Max Class Size
35
Contact Hours

Lecture: 3 hours/week

Lab: 1 hour/week

Method(s) Of Instruction
Lecture
Lab
Learning Activities

Methods of instruction will include some or all of the following: lectures, labs, and self-directed learning (assignments and group projects).

Course Description
This course provides an overview of standard paradigms and engineering practices as applied to software development. Topics include major phases incorporated in Systems Development Life Cycle (SDLC), software project management issues, and software development core activities from planning to implementation and deployment. Students will participate in a team project that employs an iterative development process and utilizes modern tools that are vital to the success of software development projects to construct a software solution to a real-world case study.
Course Content
  • An introduction to the scope and ethics of software engineering
  • Systems Development Life Cycle (SDLC) phases:
    • Planning and system investigation
    • Analysis
    • Design
    • Implementation and testing
    • Training and transition
    • Maintenance   
  • Software development paradigms and models: waterfall, incremental, prototyping, spiral, and agile
  • An introduction to software project management and software quality management
  • Software documentation: requirements, design, technical, and user documentation
  • Modern software development tools:
    • IDEs
    • Debuggers
    • Build automation
    • Graphical User Interface (GUI) designers
    • Git version control system
  • Requirements engineering:
    • Requirements gathering
    • Use cases and requirements analysis
    • Software requirements specification
  • Software design:
    • Design concepts and considerations: abstraction, modularity, information hiding, performance, scalability, etc.
    • Object-oriented design principles
    • Basics of database design: Entity-Relationship (ER) modeling and simple data normalization
    • UML
  • An introduction to software testing:
    • The testing pyramid
    • Test-driven development
    • Design-by-contract
  • An introduction to advanced software engineering:
    • Component-based systems
    • Distributed software systems
    • Service-oriented systems
    • Real-time systems
Learning Outcomes

Upon the completion of this course, successful students should be able to:

  • Describe the scope and importance of software engineering.
  • Define technical terms used by information systems practitioners.
  • Identify and differentiate between the roles and responsibilities involved in a software development team.
  • Identify various software process models, e.g. agile vs. plan-driven development.
  • Identify the major phases included in a modern software development process.
  • Identify outcomes and deliverables of core development activities, from requirements analysis and software design to implementation and user documentation.
  • Generate a software requirements specification to detail functional and non-functional requirements.
  • Use Unified Modeling Language (UML) to model different perspectives of a software system.
  • Describe different data models and apply simple data normalization.
  • Utilize standard coding styles that are effective in pair programming and code review.
  • Identify various testing techniques and software quality management activities.
  • Describe the goals, principles, activities, and components of software quality management.
  • Implement best ethical practices for teamwork dynamics in software development.
  • Utilize a modern Integrated Development Environment (IDE) and various software development tools such as Git version control system, debuggers, and builders to promote teamwork and successfully complete software projects.
Means of Assessment

Evaluation will be carried out in accordance with the Douglas College Evaluation Policy. The instructor will present a written course outline with specific evaluation criteria at the beginning of the semester. Evaluation will be based on the following.

Assignments

0% - 15%

Term Project

20% - 30%

Quizzes*

0% - 15%

Term Tests*              

20% - 35%

Final Examination*      

25% - 40%

Total

100%

* In order to pass the course, in addition to receiving an overall course grade of 50%, students must achieve a grade of at least 50% on the combined weighted examination components (including quizzes, term tests, and final examinations.)

Textbook Materials

Consult the Douglas College Bookstore for the latest required textbooks and materials.

Sample text:

Software Engineering (latest edition), Ian Sommerville, Pearson, ISBN: 9780133943238

Prerequisites

A minimum grade "C" in all of the following courses is required: