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)
- Teaching assistants:
Yeong-seok Seo
Office: 1430 (located at the east wing)
E-mail: ysseo@salmosa.kaist.ac.kr
Phone: 042-869-5579
Office hour: Wed & Fri 13:30-15:00
(reservation e-mail would be preferred)
Hyungin Im
E-mail: stupidmoron@hanmail.net
Phone:
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
- 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 list:
- “ Fundamentals of Software Engineering 2nd ed” by C.Ghezzi, M.Jazayeri, and D.Mandrioli. Prentice Hall
- “ Applying UML and Patterns 3rd ed” by C.Larman. Prentice Hall
- “ UML Distilled: A Brief Guide to the Standard Object Modeling Language 3rd ed” by M. Fowler and K.Scott. Addison Wesley
- “ Code Complete 2nd ed” by S.McConnell. Microsoft press.
- Internet Resource
- SEPA home page (multiple choice quiz and summary for each chapter)
- Argo UML (open source UML tool)
Course Schedule
Wk 1-3: The Software Process
- General introduction
- 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
- April 3 & April 5: UML
- 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 COmponets - a Case Study" (slides)
Appeared at International Conference on Software Reuse (ICSR) '06 Torino, Italy
- May 1st: Ch 10 “Creating an architectural design”
- 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 8th: Ch 13 “Testing strategies”
- May 10th: Ch 14 “Testing tactics” I
- May 15th: Ch 14 “Testing tactics” II
- May 17th: Ch 15 "Product Metrics"
- Reading material: IEEE Standard Glossary of Software Engineering Terminology (IEEE Std 610.12-1990)
- May 22th: Presentation of the SafeHome design by 5 teams
- May 29th: "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.
- Note. This lecture will be given 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.
- Quiz#2 solution
- HW #3: 8.2, 8.3, 8.5, and 8.19 with swimlane activity diagram. Due date is April 17th.
SafeHome Project
- We use SEPA as a main requirement source. You have to read SEPA carefully to understand system requirements, etc.
- Note that SEPA's description of SafeHome is not complete. Therefore, you have to make your own assumptions about unclear points, which must be explicitly stated.
- Post your questions regarding SafeHome project into the CS550 BBS to share the questions and answers with all classmates. Sending e-mail regarding the SafeHome proj to me or TAs is not encouraged.
- Each team should provide a "who did what" list to show how each team member contributed to the project for project progress
- Team assignment
- Du, Jiaqing, Nguyen, N.T.B 김윤호 나종열 조우영
- MK Hasan, Plouviez, Ugo 홍신 조경희 황재호
- 신지용 최동현 Pham,Minh Duc Pandey, Suraj 양동윤
- 류승진 박한진 이영식 이찬희 조민경
- 이동호 정주연 정진기 김이결
- Schedule
- May 1st: Due of complete use-case diagram, use-case description, and activity diagrams (swinlane 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 performs unit tests, integration tests, regressions tests, top-dwon tests, botton-up tests, etc. Test cases should described, too.
- Design test cases for unit test first, then start implementation if possible.
- Resources
- SafeHome dialog excerpts from SEPA
- Overall SafeHome deployment diagram
- SafeHome priliminary screen layout (see pg 376 of SEPA 6/e for more detail)
- SafeHome control panel (see pg 193 and 231 of SEPA 6/e for more detail)
- 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