CS350 Intro. to SE Spring 15
Announcement
- Mar 30: Please, include "[CS350]" in a subject in every HW and course related e-mail.
- Mar 30: Project team: Decide your team mate and send me e-mail with the subject including "[CS350]" by Apr 6 23:59. Each team should have 2 persons.
- May 4: No class on May 18 and 20 due to Intl. Conf. on SE @ Italy.
- May 6: Makeup class on May 25 7-8:30 pm
- May 13: Safehome project scope is reduced. See the project description.
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 12:00 - 1:30 PM
(reservation e-mail will be preferred)
- Teaching assistants: (office hour: Friday 6:30 - 8:00 PM @ N1 #402)
Taehyun Park: tpark at kaist.ac.kr (x7712),
Yiru Jeon: podray777 at gmail.com (x7743)
- Lecture hours: MW 10:30 AM - 11:45 AM
- Lecture room: N1 Rm#422
- Prerequisite: Experience in C/C++ and Java.
- Grading: attendance/class participation/quiz: 20%, HW & Project: 40%, midterm exam: 20%, final exam:20%
- 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 8 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.
- Project will be conducted by a team of 2 students.
- The official language in the class is English. All students should submit technical materials including homework, projects, exam, quiz in English; 10% penalty otherwise
- Questions and answers can be made through the Noah BBS
- http://noah.kaist.ac.kr/course/CS350
- Keep watching on the Noah BBS where important information regarindg class work (e.g., HW, project, quiz, etc) are updated.
- 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.
- "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)
Course Schedule
- Mar 2: General introduction to the class
- Mar 4, 9 : Intro to quality sw
- Mar 11: Intro. To SE (1/2)
- Mar 16: Intro. to SE (2/2)
- Mar 18: Ch1-2. Software Engineering
Part I: The Software Process
- Mar 23: ch3. Software process structure, Ch4. Process models
- Mar 25: Ch5. Agile Development
Part II: Modeling
- Apr 1: Ch7. Principles that guide practice
- Apri 6: Ch 8. Understanding Requirements
- Apr 8, 13: Unified Modeling Language
- Apr 15: Ch 10. Requirements Modeling: Class-Based Methods
- Apr 27, 29: Ch12. Design Concepts , SRS review (Tips for writing technical documents)
- May 4: Ch13. Architectural design
- May 6: Ch 14. Component-level design
- May 11: Review for the analysis model 1/2
- May 13: Review for the analysis model 2/2, Guideline for Safehome Implementation
- May 18: Ch30. Product Metrics
Part III: Testing
- May 20: Pair programming, Java coverage measurement tools
- May 27: Ch 23. Testing Conventional Applications, Category-partitioning-methods as a black box testing technique
- June 1: White-box testing: structural coverage for graph, source code
- June 3: White-box testing: logical coverage for logic formula, source code
- June 8, 10: Final review on the Safehome projects
Final Exam (June 17 Wed: 09:00~11:45)Assignments
- HW1: review on the agility article. Due Apr 6 23:59
- Send softcopy to tpark at kaist.ac.kr
2. HW2: refine your teammate's review into around 1500 words (focusing to strengthen your pros and cons). You should specify the name of your teammate in your review. Due Apr 15 23:59
- Send softcopy to tpark at kaist.ac.kr
Safehome Project
- We use SEPA as a main requirement source. You have to read SEPA carefully to understand system requirements, etc.
- Conversation on the Safehome porject in the textbook
- 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 work output (i.e. document) should contain authorship information (i.e. "who did what") for accountability and maintainability.
- Please submit both hardcopy and softcopy. Also, submit the softcopy to both TAs and prof. Kim.
- 4 Phases of the Safehome project
- Sample questions which should be answered in the req. spec.
- Overview, TOC, glossary, index, links between features should be included
- Examples: t1-srs, t3-srs, t4-srs
- Sample SRS overview
- Use-case diagram
- Use-cases
- Swimlane diagram
- Revision of SRS with its change history
- Examples: t1-srs_analysis, t3-analysis, t4-analysis
- Note: DON'T forget to make explicitly hyperlinks between your analysis model elements and the corresponding sections/items in the SRS for traceability.
- Team1, team2, team4, team5, team6, team7, team9
- Sequence diagram
- Class diagram
- State diagram
- Revision of SRS and Analysis Model as well as their change history
- Note that the CPI corporation decides to produce SafeHome product as a standalone Java application running on home PC.
- Your design model (as well as analysis model and SRS) should accommodate this change.
- No physical control panel, no web GUI, but standalone Java program supporting all web-based features such as security zone configuration and camera views, etc.
- You can still include virtual control panel in your Safehome Java application as a GUI.
- Revision of SRS, Analysis Model, and Design model as well as their change history
- Even further reduced SRS
- You should provide explicit mapping from your design model to implementation.
- Deployment diagram
- Java source code + JavaDoc document (softcopy only) (pair programming)
- Report the modules you have developed in pair programming and the time spent together for pair programming.
- Report the modules each of you have developed individually and the time spent for developing such modules
- Report the statistics on the size and complexity of your code (LOC, # of files, # of branches, # of classes, # of methods, cyclometic complexities of methods, etc.)
- Test cases (both unit testing using JUnit and integration testing) and results (coverage as well)
- You have to clearly show the traceability of your test cases (i.e., describe based on which elements of SRS, analysis model, and design model you designed test cases including test input values and assertion)
- Your test results must be able to be reproduced by TAs
- End user manual
- Incomplete and buggy but helpful example implementation
b. Analysis model (20%): Due May 6 23:59
c. Design model (30%): Due May 20 23:59 (API of Safehome devices)
d. Construction & Deployment (30%): Due June 7 23:59 (Safehome device driver code)
- Share the google doc with TAs and me and send us the URL of the google doc
- podray777 at gmail.com, dana.parkth at gmail.com, moonzoo.kim at gmail.com