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:
- Yeong-seok Seo — Office: 1430 (east wing) — E-mail: ysseo@salmosa.kaist.ac.kr — Phone: 042-869-5579
- Hyungin Im — E-mail: stupidmoron@hanmail.net — Office hour: Wed & Fri 13:30-15:00
- 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):
- Fundamentals of Software Engineering (2nd ed) — C. Ghezzi, M. Jazayeri, D. Mandrioli
- Applying UML and Patterns (3rd ed) — C. Larman
- UML Distilled (3rd ed) — M. Fowler & K. Scott
- Code Complete (2nd ed) — S. McConnell
Internet resources:
Course Schedule
- Wk 1-3: The Software Process
- Mar 6: Intro. To SE (1/2)
- Mar 8: Intro. to SE (2/2)
- Mar 13: Ch 1 "Intro. to SE" and Ch 2 "A generic view of process"
- Mar 15: Ch 3 "Process Models"
- Mar 20: Ch 4 "An agile view of process"
- Wk 4-11: Software Engineering Practice
- Mar 22: Ch 5 "SE practice" & Ch 7 "Requirements Engineering"
- Mar 27 & Mar 29: no classes
- Apr 3 & Apr 5: UML Tutorial
- Apr 10: Ch 8 "Building the analysis model" Part I
- Apr 12: Ch 8 "Building the analysis model" Part II
- Wk 8 : Midterm exam & supplementary class
- Wk 9-10: Modeling activity continued
- Apr 24: Ch 9 "Design engineering"
- Apr 26: Re-engineering a Credit Card Authorization System for Maintainability and Reusability of Components (case study) (slides) Appeared at International Conference on Software Reuse (ICSR) '06 Torino, Italy
- May 1: Ch 10 "Creating an architectural design"
- May 3: Ch 11 "Modeling component level design"
Reading material: "Design Principles and Design Patterns," by R.Matin, 2000. Downloadable from http://www.objectmentor.com
- Wk 11 : Constructing activities
- May 8: Ch 13 "Testing strategies"
- May 10: Ch 14 "Testing tactics" I
- May 15: Ch 14 "Testing tactics" II
- May 17: Ch 15 "Product Metrics"
- May 22: Presentation of the SafeHome design by 5 teams
- May 29: Re-engineering Software Architecture of Home Service Robots: A Case Study Appeared at International Conference on Software Engineering (ICSE) '05 St. Louis Missouri, USA
Formal Construction and Verification of Home Service Robots: A Case Study Appeared at Automated Technology for Verification and Analysis (ATVA) '05 Taipei, Taiwan (slides)
- May 31: "Application of Software Engineering in Manufacturing Industry" by Hotae Kim from Samsung SW Center (lecture in Korean)
- June 5: Formal methods in SE : Spin Model Checker I/II
- June 7: Formal methods in SE : Spin Model Checker II/II
- June 12: Final Exam 5:00 PM - 6:10 PM
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.
- "No silver bullet: essence and accidents of software engineering" — Computer, 20(4):10-19, April 1987
- 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 양동윤
- 류승진 박한진 이영식 이찬희 조민경
- 이동호 정주연 정진기 김이결
- 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.
- SafeHome dialog excerpts from SEPA
- Overall SafeHome deployment diagram
- SafeHome preliminary screen layout
- SafeHome control panel image
- Note that we use "on", "off", "reset", "away", "stay", "code" (new password assignment), and "panic" functions in the control panel
- Comment on the project documents and provided HW device driver