COSC 4506/ITEC 3506 - Software Engineering

advertisement
COSC 3506/ITEC 3506 - Software Engineering
Winter, 2012
INSTRUCTOR
Dr. Simon Xu , Room NW206C, 949-2301, ext. 4346, email: simon.xu@algomau.ca
TIME: Monday, 7:00-10:00 p.m.
PLACE: WW102
SOURCE MATERIAL
 Required textbook: Stephen R. Schach: Object Oriented and Classical Software
Engineering, 7th Edition, McGraw-Hill, 2007, ISBN: 0-07-319126-4.
 Recommended Reference: Bernd Oestereich, Developing Software with UML:
Object-Oriented Analysis and Design in Practice, Addison Wesley, 1999, ISBN:
0-201-39826-5.
 Course Website: http://courses.algomau.ca (code: COSC3506)

PREREQUISITES
Completion of second year core programme in Computer Science or permission of the
Department.
CALENDAR DESCRIPTION
Methodologies for design, implementation and maintenance of very large programs. Use
and development of software. Support systems.
OBJECTIVE
Software engineering is concerned with the theories, methods, and tools that are needed
to develop complex, large-scale software. It encompasses a wide range of topics,
including requirements and specification, software design, implementation, validation
and verification, software maintenance, and the management of the software process. A
single course is clearly incapable of covering in depth all these topics. The objective of
this course is to provide you with a broad understanding of all phases in the software lifecycle, and to introduce you to specific concepts that you have not covered systematically
yet and that are increasingly being viewed as essential for engineering large software
systems.
LEARNING OUTCOMES
At the end of the course a student is expected to be able to:
 Explain well‐known software development process models








Understand and be fluent in the use of software engineering terminology and
nomenclature
Intelligently communicate with most members in a software development
organization (management, analysts, architects, developers)
Create and use planning, requirements analysis, domain analysis and design artifacts
and carry them into code (UML and OO Specification and Design techniques)
Work as a team and schedule the task to achieve the goals
Take on the role of systems analyst in a software development organization
Distinguish between different types and levels of testing (for instance, unit,
integration, systems, and acceptance) for medium‐size software products and apply
them.
Document all phases of the software development processes
Have the necessary tools to become a software development project manager
PROGRAMMING ENVIRONMENT: Programming is done in Java or C++, used
within Windows operating system. All programming, documentation, and project demos
are done in this environment and it is the responsibility of students to acquire accounts
and all necessary skills.
ASSIGNMENT: There is one individual programming assignment. You will be asked to
implement a simple application using the test-driven approach. The assignment is worth 6
marks.
PROJECT
There will be one project in this course. You will require to implement a small
application from scratch, following the software development lifecycle using C++ or
Java.
Project will be marked based on the program, documentation and presentation. There are
one progress presentation and one final demonstration. Late projects are graded on 50%
basis, and projects late more than a week are graded 0%. All code must execute correctly
and follow the conventions and methodology explained in the class. Total mark for the
project is 30 marks.
EXAMINATIONS
There is one mid-term test, scheduled at the middle of February in class, which will be
worth 20 marks. This midterm test will cover topics presented in the all lectures so far.
There are four spot quizzes, each of which is worth 2%. No making up quiz will be given.
The final examination for this course is scheduled for the 14th week, and is worth 36
marks for the course. The final examination covers topics presented across the whole of
the course.
If you have a compelling and documented reason for not being able to attend the midterm
and final exam, you must make the alternative arrangements before the examination.
GRADING
Credit towards the semester grade will be allocated to each of the components as
indicated in the following table.
Assignment
Project
6%
30%
Spot quizzes (2X4)
8%
Midterm
20%
Final Examination
36%
TOTAL
100%
RULES OF CONDUCT
Cheating of any kind will not be tolerated in this course. Please see the general calendar
for more information. Any occurrence of plagiarism will be handled by the Department
of Computer Science.
PROPOSED SCHEDULE
WEEK
DATE (Monday of
each week)
CHAPTER
1
Jan 9
1
2
16
2, , 3, 4
Form groups
3
23
10
Requirement &
Specification
4
30
11, 16
More Requirement &
Specification
5
Feb 6
12, 7
Design & Initial Testing
6
13
13, 14
More design
7
20
Study Week
Coding
8
27
Midterm
Progress Presentation
9
March 5
8
Coding,
10
March 12
14
More coding
Project
11
19
15
More coding
12
26
Project testing
13
April 2
Project Delivery and Project
Presentation
14
April 9
Easter Monday No class
14
April 10-25
Final Exam
Period
Download