You are on page 1of 8

Faculty of

Engineering

Course Outline
ECSE 321
Course Title: Introduction to Software Engineering
Credits: 3
Contact Hours: (3-2-4)
Course Prerequisite(s): COMP 202 or COMP 208
Course Corequisite(s): N/A
Course Description: Design, development and testing of software systems. Software life cycle: requirements
analysis, software architecture and design, implementation, integration, test planning, and
maintenance. The course involves a group project.

Canadian Engineering Accreditation Board (CEAB) Curriculum Content

CEAB curriculum
Number of AU's Description
category content

Mathematics include appropriate elements of linear algebra, differential and integral calculus,
Math 0
differential equations, probability, statistics, numerical analysis, and discrete mathematics.

Natural science includes elements of physics and chemistry, as well as life sciences and
Natural science 0 earth sciences. The subjects are intended to impart an understanding of natural phenomena
and relationships through the use of analytical and/or experimental techniques.

Complementary studies include the following areas of study to complement the technical
content of the curriculum: engineering economics; the impact of technology on society;
Complementary subject matter that deals with central issues, methodologies, and thought processes of the
0
studies arts, humanities and social sciences; management; oral and written communications; healthy
and safety; professional ethics, equity and law; and sustainable development and
environmental stewardship.

Engineering science involves the application of mathematics and natural science to practical
problems. They may involve the development of mathematical or numerical techniques,
Engineering modeling, simulation, and experimental procedures. Such subjects include, among others,
26
science applied aspects of strength of materials, fluid mechanics, thermodynamics, electrical and
electronic circuits, soil mechanics, automatic control, aerodynamics, transport phenomena,
elements of materials science, geoscience, computer science, and environmental science.

Engineering design integrates mathematics, natural sciences, engineering sciences, and


complementary studies in order to develop elements, systems, and processes to meet
Engineering specific needs. It is a creative, iterative, and open-ended process, subject to constraints
26
design which may be governed by standards or legislation to varying degrees depending upon the
discipline. These constraints may also relate to economic, health, safety, environmental,
societal or other interdisciplinary factors.

Accreditation units (AU's) are defined on an hourly basis for an activity which is granted academic credit and for which the associated
number of hours corresponds to the actual contact time: one hour of lecture (corresponding to 50 minutes of activity) = 1 AU; one hour of
laboratory or scheduled tutorial = 0.5 AU. Classes of other than the nominal 50-minute duration are treated proportionally. In assessing the
time assigned to determine the AU's of various components of the curriculum, the actual instruction time exclusive of final examinations is
used.

ECSE 321 2015-08-05 1 of 2


Graduate Attributes
This course contributes to the acquisition of graduate attributes as follows:

Graduate attribute KB PA IN DE ET IT CS PR IE EE EP LL

Level descriptor A I D I A D D D I N/A A N/A

n/a = Not applicable; I = Introduced; D = Developed; A = Applied


KB - Knowledge Base for Engineering: Demonstrated competence in university level mathematics, natural sciences, engineering
fundamentals, and specialized engineering knowledge appropriate to the program.

PA - Problem Analysis: An ability to use appropriate knowledge and skills to identify, formulate, analyze, and solve complex engineering
problems in order to reach substantiated conclusions.

IN - Investigation: An ability to conduct investigations of complex problems by methods that include appropriate experiments, analysis and
interpretation of data, and synthesis of information in order to reach valid conclusions.

DE - Design: An ability to design solutions for complex, open-ended engineering problems and to design systems, components or processes
that meet specified needs with appropriate attention to health and safety risks, applicable standards, economic, environmental, cultural and
societal considerations.

ET - Use of Engineering Tools: An ability to create, select, adapt, and extend appropriate techniques, resources, and modern engineering
tools to a range of engineering activities, from simple to complex, with an understanding of the associated limitations.

IT - Individual and Team Work: An ability to work effectively as a member and leader in teams, preferably in a multi-disciplinary setting.

CS - Communication Skills: An ability to communicate complex engineering concepts within the profession and with society at large. Such
abilities include reading, writing, speaking and listening, and the ability to comprehend and write effective reports and design documentation,
and to give and effectively respond to clear instructions.

PR - Professionalism: An understanding of the roles and responsibilities of the professional engineer in society, especially the primary role
of protection of the public and the public interest.

IE - Impact of Engineering on Society and the Environment: An ability to analyse social and environmental aspects of engineering activities.
Such abilities include an understanding of the interactions that engineering has with the economic, social, health, safety, legal, and cultural
aspects of society; the uncertainties in the prediction of such interactions; and the concepts of sustainable design and development and
environmental stewardship.

EE - Ethics and Equity: An ability to apply professional ethics, accountability, and equity.

EP - Economics and Project Management: An ability to appropriately incorporate economics and business practices including project, risk
and change management into the practice of engineering, and to understand their limitations.

LL - Life-Long Learning: An ability to identify and to address their own educational needs in a changing world, sufficiently to maintain their
competence and contribute to the advancement of knowledge.

Policies
Academic Integrity
McGill University values academic integrity. Therefore, all students must understand the meaning and consequences of cheating,
plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures.
(see www.mcgill.ca/students/srr/honest/ for more information).
(approved by Senate on 29 January 2003)

In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in
French any written work that is to be graded.
(approved by Senate on 21 January 2009)

Grading Policy
In the Faculty of Engineering, letter grades are assigned according to the grading scheme adopted by the professor in charge of a
particular course. This may not correspond to practices in other Faculty and Schools in the University.

In the event of extraordinary circumstances beyond the University's control, the content and/or evaluation scheme in this course is subject to
change.

ECSE 321 2015-08-05 2 of 2


ECSE 321 (Fall 2016)
Course Outline

1 General Information
Course
Course title Introduction to Software Engineering
Course description Design, development and testing of software systems. Soft-
ware life cycle: requirements analysis, software architecture
and design, implementation, integration, test planning, and
maintenance. The course involves a group project.
Number of credits 3
Contact hours (3-2-4)
Prerequisites COMP 202 or COMP 208 or ECSE 202
Instructor
Prof. Shane McIntosh
Instructor T: (514) 398-2891
k: shane.mcintosh@mcgill.ca
Sahil Luthra
TA
k: sahil.luthra@mail.mcgill.ca
Meeting Times
Tuesday @ 8:35am-9:55am in McConnell 11
Lecture †
Thursday @ 8:35am-9:55am in McConnell 11
Monday @ 10:35am-12:25pm in Trottier 0060
Tutorial
Wednesday @ 10:35am-12:25pm in Trottier 0060
Office hours ‡ TBD in McConnell 527
† First lecture is Tuesday, September 6th , last lecture is Thursday, December 1st .
‡ To be established during the first lecture.

2 McGill Policy Statements


• McGill University values academic integrity. Therefore, all students must understand the meaning
and consequences of cheating, plagiarism and other academic offences under the Code of Student
Conduct and Disciplinary Procedures. (see http://www.mcgill.ca/students/srr/honest/
for more information). (approved by Senate on 29 January 2003).

1
• In accord with McGill University’s Charter of Students’ Rights, students in this course have the
right to submit in English or in French any written work that is to be graded. (Approved by Senate
on 21 January 2009 - see also the section in this document on Assignments and evaluation.)

• End-of-course evaluations1 are one of the ways that McGill works towards maintaining and im-
proving the quality of courses and the student’s learning experience. You will be notified by e-mail
when the evaluations are available on Mercury, the online course evaluation system. Please note
that a minimum number of responses must be received for results to be available to students.

• As the instructor of this course I endeavor to provide an inclusive learning environment. However,
if you experience barriers to learning in this course, do not hesitate to discuss them with me and
the Office for Students with Disabilities,2 514-398-6009.

• In the event of extraordinary circumstances beyond the University’s control, the content and/or
evaluation scheme in this course is subject to change.

3 Learning Outcomes
The main objective of this course is to introduce students to the process of software engineering.
By the end of this course, students should understand:

1. how software requirements can be elicited and analyzed.

2. how to architect and design software systems that satisfy the elicited requirements.

3. best practices for writing source code such that it is understandable for other team members.

4. how to apply modern approaches to manual and automated software quality assurance.

5. how to assemble a software release pipeline that will: (a) provide quick feedback about the
impact that code changes have on the software system and (b) facilitate a rapid software
release cycle.

1 http://www.mcgill.ca/tls/teaching/course-evaluations
2 http://www.mcgill.ca/osd

ECSE 321 2 of 6
4 Course Content

Module 1: Software engineering lifecycle,


Hands-on software Hands-on software
Logistics & processes, roles, and
engineering exercise 1 engineering exercises 2 & 3
applications
Overview

Module 2:
Software architecture, Software design, design
Requirements, Requirements elicitation,
architectural styles, and modeling, patterns, and anti-
Architecture, analysis, and modeling
modeling patterns
& Design

Module 3: Coding best practices,


Automated quality assurance Manual quality assurance
Implementation & software comprehension,
practices practices
coding style
Quality Assurance

Module 4:
Phases and flow of release Continuous integration, Project management and
Release & pipelines deployment, and delivery planning
Project Planning

5 Course Materials
5.1 Required Textbook
• I. Sommerville; Software Engineering (10th Edition); Pearson 2015

– Schulich library call number: QA76.758 S657 2016


– ISBN-10: 0-13-394303-8
– ISBN-13: 978-0-13-394303-0

5.2 Recommended Readings


• M. Fowler; UML Distilled (3rd Edition); Addison Wesley Professional 2003

• E. Gamma, R. Helm, R. Johnson, J. Vlissides; Design Patterns: Elements of Reusable Object-


Oriented Software; Addison-Wesley Professional

ECSE 321 3 of 6
5.3 Additional Readings
• S. McConnell; Code Complete: A Practical Handbook of Software Construction (2nd Edition);
Microsoft Press 2004

• I. K. Bray; An Introduction to Requirements Engineering; Addison-Wesley 2002

• R. Patton; Software Testing (2nd Edition); Sams Publishing 2006

• P. M. Duvall et al.; Continuous Integration: Improving Software Quality and Reducing Risk;
Addison-Wesley 2007

• J. Humble and D. Farley; Continuous Delivery: Reliable Software Releases through Build, Test,
and Deployment Automation; Addison-Wesley 2010

5.4 Web Resources


• Umple: http://cruise.eecs.uottawa.ca/umple/

• Git: http://www.git-scm.com/

• GitHub: https://github.com/

• Eclipse IDE: http://www.eclipse.org/

• Android Studio IDE: https://developer.android.com/sdk/index.html

6 Assignments and Evaluation


6.1 Distribution of Marks
• Assignments (A) 20%: 5 take-home assignments

• Final exam (F) 35%: 3 hours, closed book, 1-page crib sheet is permitted

• Project (P) 45%: Semester-long software engineering project

6.2 Final Grade Calculation


IF F < 17.5 THEN
F
grade = 35
ELSE
grade = A + F + P
ENDIF
In other words, students must pass the final exam in order for assignment and project marks to count
towards their final grade.

ECSE 321 4 of 6
6.3 Assignments
These five take-home assignments will allow students to practice the software engineering skills and
techniques that will be introduced throughout the term. Assignment #1 can be done in pairs, while
assignments #2-#5 are to be done individually.

Assignment # Weight Post date Due date


1 8% September 8th , 15th , 22nd September 30th
2 3% October 3rd October 7th
3 3% October 17th October 28th
4 3% November 7th November 18th
5 3% November 21st December 2nd

6.4 Project
This semester-long project will give students the opportunity to experience working on a medium-scale
software engineering project in small teams of 4 or 5. The graded deliverables are:

Deliverable Weight Post date Due date


Requirements specification 10% September 30th October 17th
Design specification 5% September 30th October 31st
Quality assurance plan 5% September 30th November 14th
Release pipeline design 5% September 30th November 21th
Group presentation 8% September 30th November 29th , 30th , December 1st
Software system 12% September 30th December 2nd

7 Course Policies
7.1 Late Submissions
Without pre-arranged extension (i.e., before the due date) or a valid excuse, late submissions are subject
to a penalty of 5% of the maximum available marks per day late.

7.2 Project Presentations


Two lectures and one tutorial session during the semester are allocated to project presentations. All stu-
dents are required to attend these sessions. Students may be asked to evaluate their peers’ presentations.
Failure to attend these lectures without making prior arrangements with the instructor will result in loss
of 10% of the total project marks. Failure to attend your own team’s presentation without making prior
arrangements with the instructor will result in loss of an additional 10% of the total project marks.

ECSE 321 5 of 6
7.3 In-Class Use of Mobile Computing Devices
Laptops, mobile phones, and other gadgets can be used in class as long as this is done in a respectful
and non-disruptive manner. Please note that loud typing, continual texting, gaming, and voice commu-
nication are disruptive activities and disallowed for that reason. No audio or video recording of any kind
is allowed in class without the explicit permission of the instructor. If you are inconvenienced by the
in-class use of computing devices (by others than yourself), please talk to the instructor. This policy is
subject to revision at any point during the term. Additional background on the in-class use of computing
devices at McGill.

7.4 Copyright
c Instructor generated course materials (e.g., handouts, notes, summaries, exam questions, etc.) are
protected by law and may not be copied or distributed in any form or in any medium without explicit
permission of the instructor. Note that infringements of copyright can be subject to follow up by the
University under the Code of Student Conduct and Disciplinary Procedures.

ECSE 321 6 of 6