Introduction to Software Engineering ECSE321 Course Info Prof


















- Slides: 18

Introduction to Software Engineering ECSE-321 Course Info Prof. Muthucumaru “Mahes” Maheswaran

Agenda l Objectives l Format l Contents ● Lectures ● Tutorials l Requirements ● Prerequisites ● Assessment ● Poll l Where and when? l Who? l Information sources ● Books ● On-line help l Some friendly advice Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/2

Overall Objectives l From programming to software engineering ● Focus on development process, not just final product ● Modern approaches to SE ● Modern tools l Life in the “real world” - Experience with SE project ● Different phases ● Different roles Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/3

Concrete Objectives More specifically: 1. Tools – coding conventions, IDE, assertions 2. Software specs – read & write 3. Analysis – be able to analyze requirements (graphically and otherwise) 4. Design – system and component based 5. QA & Testing – know the essentials 6. SE at large – software life cycles, basics of management 7. Coding – medium size programs, deeper knowledge of Java Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/4

Course format l Lectures ● Emphasis on concepts ● More than the books ● Dual format – informative and explorative l Tutorials ● Emphasis on Java and “how to” ● A lot of material, important for project l Individual assignment ● Mostly concepts, build skills l Group project ● Large project – clear and specific deliverables ● Much more than programming Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/5

Course contents - Lectures 1 Introduction 2 2 Conventions and practices ~1 3 Project management basics 1 4 Modeling with UML (basics) 1 5 Requirements 3 6 Analysis 2 7 System Design 3 8 Design Patterns 2 9 Object Design 2 10 Design to code 1 11 -12 Quality assurance and testing 4 13 SE at large ~3 Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/6

Course contents - tutorials l l l More Java Analysis with UML Design Project related guidance Selected topics – testing, usability, XML l Can’t succeed in the course without attending tutorials ● Friday 11: 35 ● Monday 16: 35 Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/7

Course contents - project l Probably the biggest project you’ve done to date l Team project (groups of 5) l Lot’s of work l Several stages, graded per stage l Work closely with a TA l Learn from each other Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/8

Requirements l Prerequisites: ● Formal: COMP 202/208 ● Actual: l Reasonable programming experience with any language l Some familiarity with object oriented programming (OOP) – preferably Java l No need for CS/ algorithms/ data structures / OS Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/9

Poll l How is your Java? (subjectively) 1. 2. 3. 4. I am a master I know my Java well I can write small programs I don’t drink coffee l What’s the biggest Java program you’ve written? 1. 2. 3. 4. Multi-threaded application, JDBC, or 3 KLoc+ 1 KLoc or so A few small classes None yet Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/10

Poll (II) l Ever used an IDE? ● Yes, Java SDK ● Yes, IDE for C++/C/Pascal ● I don’t need an IDE – I work with Emacs/VI/Notepad l Ever used a debugger? ● ● Yes, Java IDE (3. 5. 1 +) – which? Yes, MS Visual (VB/ C++) or Borland C/Pascal Yes, command line debugger (Unix dbg) No, I don’t have bugs Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/11

Assessment l Individual assignment: 10% ● One individual design/programming assignment l Group project: 40% ● Requirement document + prototype ● Design document l High Level l Low level ● Final project report + product + demonstration ● Peer evaluation l Final exam: 50% ● 3 hours, during exam period, short answer Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/12

Where l Lectures: Tue/Thu 11: 35 -12: 55, ENGTR 1100 l Tutorials: ● Mon 16: 35 -17: 25, ENGTR 0070 ● Fri 11: 35 -12: 25, ENGTR 2100 Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/13

Who - Instructor l Prof. M. Maheswaran Email: maheswar@cs. mcgill. ca Phone: 398 -1465 Office: Mc. Connell 754 Office hours: Tue 1 -3 pm, and by appointment l Relevant vita: ● Joined Mc. Gill CS/ECE in Jan 2003 ● Lots of C/Linux experience – open source projects ● Not a huge Java fan (few Java and other OO (Ruby) projects) ● Research in computer networks, operating systems, Grid (Cloud) computing ● Software system centric Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/14

Text Book l B. Bruegge and A. Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Prentice Hall, 2003 (2 nd edition). ● Can be purchased at Mc. Gill bookstore and Haven Books. Available from the Schulich library. Main textbook. Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/15

Additional References l Andrew Hunt and David Thomas, The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley, 1999. l Steve Mc. Connell, Code Complete (2 nd ed). Microsoft Press, 2004. l Roger Pressman, Software Engineering: A Practitioner's Approach, Mc. Graw-Hill, 2004. l Ian Sommerville, Software Engineering, 8 th ed. Addison-Wesley, 2006. l Many other books are available, some better than others… Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/16

Information – On line resources l Java: everything! (http: //java. sun. com) l UML: great site (http: //www. uml. org/) l Web. CT: lectures, tutorials, notes, assignment & project submission, grades, discussion (please remember netiquette) Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/17

Friendly Advice l A lot of work– start early l Pace is fast – don’t stay behind l Many new concepts l Not very deep, but a lot of material l Lectures are supposed to be interactive – discussion is welcome l Will use slides Winter 2009, Maheswaran Introduction to Software Engineering – ECSE 321 Unit 0 - About/18