CS550 Intro. to Software Engineering, Spring 07

Announcement

  • Mar 1st: We have opened CS550 BBS at noah.kaist.ac.kr. All class attendants are encouraged to write questions or comments on the class at the BBS. I will give response to a posting at the BBS within 48 hours.
  • Mar 9th:
    • Be careful not to do plagiarism when you do your homework. Academic dishonesty will be handled with heavy penalty.
    • Project (topic is TBD) will require you to submit not only design, but also concrete working code. Mind this change in project scope.
  • Mar 16th: There will be no class on Mar 27 and Mar 29. Supplementary lectures are TBD.
  • April 3rd:
    • We will have a design and development project for SafeHome product, a main example software project in SEPA 6th ed.
    • A midterm exam is scheduled on April 19 5:00 PM
    • No class on April 17
  • May 15th:
    • We will have a supplementary class on May 22 7:00 - 8:00 PM.

Administrative Information

Instructor: Moonzoo Kim

  • Office: 2434 (located at the east wing)
  • Phone: 042-869-3543
  • E-mail: moonzoo@cs.kaist.ac.kr
  • Office hour: Tues & Thr 15:30-17:00 (reservation e-mail would be preferred)
  • Lecture room: Lecture room #3 (#2443 located at the north wing)
  • Lecture hours: 17:00 – 18:30 Tuesday and Thursday
  • Teaching assistants:
  • Grading: HW & projects: 40%, Pop-up quiz & attendance: 20%, Midterm exam: 20%, Final exam: 20%
  • Note: The official language in the class is English. All students should submit homework and project in English.

Course Material

Text: “Software Engineering: A Practitioner’s Approach (SEPA)” by R. S. Pressman, McGraw-Hill, 6th Edition

Recommended reading (selection):

Internet resources:


Course Schedule


Assignments

  • HW #1: Read the following paper and summarize it with your opinion in one A4 (around 500 words). See the lecture slide of Mar 6 for more detail.
  • HW #2: Select and summarize two articles on agility in June 2003 issue of IEEE Computer in one A4 each. Due date is April 3rd.
  • HW #3: 8.2, 8.3, 8.5, and 8.19 with swimlane activity diagram. Due date is April 17th.
  • Quiz#2 solution: quiz2.doc

SafeHome Project

  • We use SEPA as a main requirement source. You have to read SEPA carefully to understand system requirements, etc.
  • SEPA's description of SafeHome is not complete; make and state your own assumptions about unclear points.
  • Post project questions to the CS550 BBS (preferred) rather than emailing instructors/TAs.
  • Each team should provide a "who did what" list showing member contributions.
  • Team assignment
    • Du, Jiaqing, Nguyen, N.T.B 김윤호 나종열 조우영
    • MK Hasan, Plouviez, Ugo 홍신 조경희 황재호
    • 신지용 최동현 Pham,Minh Duc Pandey, Suraj 양동윤
    • 류승진 박한진 이영식 이찬희 조민경
    • 이동호 정주연 정진기 김이결
  • Schedule (excerpt):
    • May 1: Due of complete use-case diagram, use-case description, and activity diagrams (swimlane diagram)
      • You are welcome to add more diagrams or pictures if they help describe the SafeHome's requirements clearly.
    • May 22: Due of class diagram, CRC cards, sequence diagram, state diagram, and lessons learned
      • Every team is required to present one's system design in the class on May 22 (25 min each).
      • You are welcome to add additional materials such as architecture or component design, if they can explain your design more clearly.
      • Explicitly describe how design is built based on the requirement documents & analysis model (your first project output).
    • June 7: Due of implementation and testing
      • SafeHome.zip contains all device emulator classes as well as a demo source code. Run "java MainDemo" for demonstration.
      • Your code should contain full document/comments. For example:
        • Purpose, description, usage/example, authorship, revision history, precondition/postcondition, known/fixed bugs, parameter/return values, exceptions, references, etc.
        • You should use javadoc to automate code document generation.
      • Mapping between implementation and your design (e.g., 2nd project output) should be explicitly described.
      • Test process that you undertake should be described, e.g., how you perform unit tests, integration tests, regression tests, top-down tests, bottom-up tests, etc. Test cases should be described, too.
      • Design test cases for unit test first, then start implementation if possible.
  • Resources and supporting files: