50 likes | 222 Views
E N D
CS2013 Software Engineering I2005-2006 Fall TermClass Time: MWF 11:30am - 12:20pmClass Room: H 301Tutorial/Lab Time: M 2:30 – 3:20pmTutorial Room: ITD 414 Windows LabInstructor: Dr. Weichang DuOffice: ITD 420 in ITC BuildingOffice Hour: MWF 3:30 – 4:30pmEmail: wdu@unb.caCourse Web site: http://www.cs.unb.ca/profs/wdu/cs2013How to contact/talk to the instructor: office hour, e-mail, drop-by office, before/after class
Text Book: Object-Oriented Software Engineering: Practical Software Development using UML and Java (2nd edition) by Timothy. Lethbridge and Robert Laganiere, McGraw Hill, 2005. • Course Description: Introduction to the discipline of software engineering. Introduces all phases of the software development life cycle with emphasis on software modeling, designing, implementation and testing. • Course Work and Marking Scheme • 20% Assignments • 30% Project • 10% Midterm: close book, in class on Oct. 5. • 40% Final Exam: close book, date and location to be set up by Registrar’s office
Course Information • Themes • Personal software engineering (vs. team software engineering) • Software development process/lifecycle (concept) • Requirements, design, implementation, testing • Software modeling based design specification (with UML) • Program design based on software engineering principles • Java implementation techniques (plus distributed programming) • Software debugging and testing • Tutorial • How to use software tools (Eclipse, Rational Rose/UML, CVS) • How to do the programming assignments and project • Assignments • Programming assignments • Design/modeling assignments • Concept assignments
Course Information • Project • Design and implement several versions of a GUI-based chess program with design specifications in UML. • Version 1: Desktop chess program for human players • Version 2: Desktop chess program for human/computer players • Version 3: Client/server-based Internet chess program for human/computer players • Version 4: Peer-to-peer based Internet chess program for human/computer players • Focus on software engineering principles for programming and software reuse. • Midterm exam • Concept questions • Final exam • Concept questions • Programming on paper
Important software engineering principles in program design • Separation of concerns • Programming for different concerns in separate program units/modules. • E.g. Separate user interface module from application logic module. • Strong cohesion • A program unit/module should have only one responsibility/functionality. • Weak coupling • Interactions between two program units/modules should be reduced to minimum. • Strong intra-module relationship vs. weak inter-module relationship. Separation of concerns is means and consequence of strong cohesion and weak coupling