Instructor: Dr Greg Butler, gregb@cs.concordia.ca
Tutor: Steve Barrett, ste_barr@cs.concordia.ca
This course is intended for students in the Masters of Software Engineering programme who have not completed a Bachelor's of Software Engineering. Hence, they need to take SOEN 6011 to make up the missing material.
The course assumes that students have significant programming experience in industry.
The course will proceed at a very quick pace.
SOEN 6011 Software Engineering Processes is a 4 credits course.
Introduction to software engineering concepts. Software process models and associated
activities, including requirements analysis, specification, design, implementation, and
validation. Software documentation. Inspections and reviews. Collaborative work and
project management. A project.
The course is designed to ensure that you have similar expertise in the use of tools as students graduating from the Bachelor of Software Engineering programme. That is, Java development using the Eclipse environment, using JUnit for unit tests, and the Eclipse Web Tool Platform (WTP) to develop Java applications and Java-based web applications using Apache, Tomcat, Javascript, mySQL including issues of threads, concurrency, and data integrity. Also solid knowledge of UML.
The course is designed to ensure that you have key expertise in software process, software design, software architecture, including
Craig Larman. Agile and Iterative Development: A Manager's Guide. Addison-Wesley. ISBN 0- 13-111155-8, 2003.
Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd edition, Prentice-Hall, 2005.
Martin Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley. 2003.
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design patterns : elements of reusable object-oriented software, Addison-Wesley, c1995.
The course will consist of
Focus on test-driven development, agile development, RUP. Background reading on problems and issues in SE. Some material on chage management, project tracking, and CMMI.
Focus on object-oriented design, design patterns. Focus on responsibility-driven design, GRASP principles, domain modeling. Some use of Fowler's EAA patterns for the project.
Focus on Model-View-Control client-server architectures for web applications. Address issues of concurrency using EAA patterns. More on patterns, pattern languages.
Introduction to model-driven development using WebML as an example.
In each of weeks 4, 8, and 12 there will be deadlines for the project deliverables: one program, one document (see below).
There will be a midterm examination in week 6 or 7.
There will be a final examination.
Each program and each assignment will be worth 5% for a total of 30%. The midterm examination will be worth 20%. The final examination will be worth 50%.
There are three programs required for the project:
There will be three assignments (that is, documents) required as well:
Programs and documents will be individual work.
2008-01-07: Marks for final exam and practical work.
2007-12-03: The lecture tonight will review questions and answers for the Midterm as part of a review for the final examination.
There will be no lecture Tuesday December 4, 2007.
2007-11-19: Final examination is scheduled for Friday December 14, 2007 from 19:00 to 22:00 in FGB060.
The examination will cover the material from weeks 1 to 12, but not ATAM (also not Model-driven development, not WebML). That is, you will be responsible for the material in all 3 textbooks.
It is a 3 hour, closed book exam. You will not need calculators. Like the midterm examination, there will be true-false questions, and short answer questions. However, there will be one question on understanding Java code (as related to the project) and one question on understanding UML diagrams.
Deliverable 3: see the lecture slides from week 10.
2007-11-09: New deadline for second project deliverables is Sunday November 18 at 11:59pm.
2007-11-05: Marks for midterm and project deliverable 1.
2007-11-02: The third project deliverables will be due Tuesday December 4, 2007 at 11:59pm via electronic submission. Submit a .tar.gz version of your source code (including JUnit tests) as 'program 3' and a design document as 'project 3'.
2007-10-22:
The second project deliverables will be due Tuesday November 13, 2007 at 11:59pm via electronic submission.
Submit a .tar.gz version of your source code (including JUnit tests) as 'program 2', and the use case document as 'project 2'.
The use case document
(see an example)
should contain a use case diagram to provide the context for the overall system,
together with a description of the actors and the major use cases.
Choose an appropriate level of detail for each use case.
The document should also include a (problem) domain model consisting of a UML class diagram and explanatory text.
Check back here for sample source code and instructions (updated 2007-11-02)
for using the web server host machine.
2007-10-16:
Midterm will cover the material of lectures up to yesterday. Revised slides for week 5 have been posted.
There will be true/false questions, short answer questions, and maybe multiple choice and fill-in the missing word questions.
The questions will test your understanding of the material and the ability to apply the material.
2007-09-27: For those wanting more guidelines for unit testing, see the discussion in Three Essential Tools for Stable Development, Andy Hunt and Dave Thomas, Crosstalk November 2004.
2007-09-22:
Midterm examination will be Monday 22 October 2007.
It will be a 60-minute closed-book exam starting at 18:00.
The midterm will cover the material from week 1 to 5 as given in the lecture schedule.
There will be a lecture from 19:15 to 20:15 after the midterm.
2007-09-22:
Tutorial information
can be found by following the link and looking at 'Tutorial' and 'First Aids' in the menu on the left-hand-side panel.
First Aids cover Java, JUNit, JSP/Servlets, and UML.
Tutorial 0 covers Eclipse.
Tutorial 1 covers JUnit within Eclipse.
Tutorial 2 covers refactoring and test-driven development in Eclipse.
Tutorial 3 elaborates on Tutorial 2 using JUnit and Eclipse.
Tutorial 5 covers Eclipse Web Tools Platform.
Tutorial 6 covers JSP
Tutorial 7 is a simple web application
Tutorial 8 covers mySQL set-up and Tutorial 12 look at some Data Source patterns from Fowler's EAA patterns.
SOEN 344 Tutorials cover concurrency issues, namely UnitOfWork (Tutorial 3), IdentityMap and LazyLoad (Tutorial 4).
2007-09-17: The first project deliverables will be due Tuesday October 9, 2007 at 11:59pm via electronic submission.
Submit a .tar.gz version of your source code (including JUnit tests) as 'program 1', and the test document as 'project 1'.
Use the Test Document Template but note to change the following:
course, section, and semester information
that it is individual and not team project
do not include sections 2.2.3, 3, 3.1 3.2
2007-09-14: Electronic submission site
2007-09-10: Lecture schedule
2007-09-10: Course outline