CS350 Intro. to SE Fall 16
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 at 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:
- “ 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)
- Pair programming (wikipedia)
- Java Modeling Language (JML)
- Tutorial of 1st order logic by Prof. Dr. Bernhard Beckert @ Karlsruhe Institute of Technology (KIT)
- Pair programming, Java coverage measurement tools
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 desigining 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 and a safehome requirement overview (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)