Announcement
- No class on Sep 7 (Wed) due to LG SDET evaluation.
- We will have a make-up class on Sep 5 (Mon) 9:00-10:15 pm at the same classroom.
- Quiz on Oct 10
- Mid-term exam on Oct 24 (Mon) 4:00 PM-6:00 PM
- From HW#3, send your softcopy to Mingyu Jin (진민규) mgjin@se.kaist.ac.kr
- No class on Nov 23 due to interview for undergraduate candidate students
Administrative Information
- Instructor: Moonzoo Kim
Office: 2434 (located at the east wing)
Phone: 042-350-3543
E-mail: moonzoo @ cs.kaist.ac.kr
Office hour: Mon/Wed 2:30 - 4:00 PM
(reservation e-mail will be preferred)
-
Teaching assistants:
- Sanggyu Nam (남상규) sanggyu.nam@kaist.ac.kr x7747
- Mingyu Jin (진민규) mgjin@se.kaist.ac.kr x3539
- Lecture hours: MW 4:00 - 5:15 PM
- Lecture room: N1 Rm#422
- Prerequisite: Experience in C/C++ and Java
-
Grading: attendance/class participation/quiz: 20%, HW: 30%, midterm exam: 25%, final exam:25%
- Late HW will be accepted with 10% penalty of the max score in 1 day, 30% penalty of the max score in 3 days. HW will not be accepted after the 3 days.
- HW should be submitted both in hardcopy and softcopy (through email to TA). 10% penalty of the max score for missing hardcopy or softcopy unless explicitly written in HW.
- Hint: many questions of exams are from the homework.
- Please, include "[CS350]" in a subject in every HW and course related e-mail.
-
More than 7 absences of class will get F grade
- To start class on time, late attendance shall be considered as 1/3 absence.
- No exception to the absence and late attendance of the class.
- The official language in the class is English. All students should submit technical materials including homework, projects, exam, quiz in English; 20% penalty otherwise
- All homework/project should be written using word processor. Also please write your exam/quiz in readable separate characters, not hand-writing cursive style; 20% penalty otherwise
- Questions and answers can be made through KLMS
Course Syllabus
This class focuses on the fundamental/scientific characteristics of software engineering. In addition, you are expected to learn effective technical communication skills through various methods including UML diagram, formal specification, well-structured program codes, etc.
Course Material
-
Main textbook:
- "Software Engineering: A Practitioner's Approach (SEPA)" by R. S. Pressman, McGraw-Hill, 8th Edition
-
Recommended reading list:
- "Logic in Computer Science" by M.Huth and M.Ryan, Cambridge university press, 2nd edition
- "Applying UML and Patterns" 3rd ed by C.Larman. Prentice Hall
- "Code Complete" 2nd ed by S.McConnell. Microsoft press
- The Mythical Man-Month by F.P.Brooks, JR. (wikipedia)
- "Introduction to Software Testing" by P.Ammann and J.Offutt. Cambridge press 2008
- "역사속의 소프트웨어 오류" by 김종하 에이콘 2014
- "The CERT Oracle Secure Coding Standard for Java", F.Long, etc, Addison Wesley, 2012
- "Secure Coding in C and C++" 2nd ed, R.C.Seacord, Addison Wesley 2013
-
Internet Resource
- SEPA home page (multiple choice quiz and summary for each chapter)
- Star UML (open source UML tool)
- UML Tutorial
- Pair programming (wikipedia)
- Java Modeling Language (JML)
- Tutorial of 1st order logic by Prof. Dr. Bernhard Beckert @ Karlsruhe Institute of Technology (KIT)
Course Schedule
- Sep 5: General introduction to the class + Intro to quality sw
- Sep 5 Night: Intro. To SE (1/2)
Part I: The Software Process
-
Sep 12: Intro. to SE (2/2)
- The Mythical Man-Month by F.P.Brooks, JR. (wikipedia)
- Sep 19: Necessity of clear technical communication, Propositional logic (a.k.a. sentence logic) [pdf]
- Sep 21: Tutorial for 1st order logic
- Sep 26: First order logic (a.k.a. predicate calculus) [pdf]
- Sep 28: Ch1-2. Software Engineering, Ch3. Software process structure
- Oct 5: Ch4. Process models, Ch5. Agile Development
Part II: Modeling
- Oct 10, 12: Unified Modeling Language
- Oct 17: Ch12. Design Concepts (Tips for writing technical documents)
- Oct 19: Hints for designing Safehome system, Ch13. Architectural design, Q&A session
- Oct 24: Midterm Exam
-
Oct 31, Nov 2: Ch 14. Component-level design
- Design principles and design patterns by R. Martin
- Nov 7: Ch30. Product Metrics (partly including ch19. Quality Concept)
Part III: Testing
- Nov 9: SW Testing overview
- Nov 14, 16: Black-box testing: Input space partitioning
- Nov 21, 28: White-box testing: structural coverage for graph
- Nov 30: White-box testing: structural coverage for source code
- Dec 5: White-box testing: logical coverage for logic formula
- Dec 7: White-box testing: logical coverage for source code
- Dec 12: automated test case generation technique: concolic testing, Static analysis technique: Coverity
- Dec 14: Q&A for final exam
- Dec 19: Final Exam (4:00-6:00 PM)
Assignments
- HW#1 (50 pts): Describe requirement in 1st order logic (due date: Oct 5 (Wed) 23:59). Send your softcopy to sanggyu.nam@kaist.ac.kr.
-
HW#2 (150 pts): Model dynamic behaviors of SafeHome home security system based on the safehome description in the SEPA textbook (Due Nov 6 23:59)
- Use case diagram and use cases
- Sequence diagram
-
HW#3 (100 pts): Write a design model of SafeHome home security system based on your HW#2 (Due Nov 20 23:59)
- Class diagram
-
HW#4 (100 pts): Testing and measure coverage of grep (Due Dec 5 23:59)
- grep-v2.0-code
- You can use a linux account on verifier<x>.kaist.ac.kr for programming HWs.
- ID: cs350_(your student #), initial password: (your student #)!!
- You have to change your password when you log-in first time.
- Note that your account will be deleted at the end of the semester. Don't forget to backup your own data
- HW#5 (100 pts): graph coverage and logic coverage (Due Dec 17 23:59)