Personal tools
You are here: Home Courses CS350 Intro to SE, Spring 15

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   

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
  • 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

- “ 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)

- UML Tutorial

- 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 structureCh4. 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 

Midterm Exam (Apr 22 Wed: 09:00~11:45)

- 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

  1. 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

     
    1. 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.
    2. 4 Phases  of the Safehome project 
            a. Requirement specification (10%) : Due Apr 26 23:59

       b. Analysis model (20%): Due May 6 23:59

       c. Design model (30%): Due  May 20 23:59 (API of Safehome devices

        • 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.

        d. Construction & Deployment (30%): Due June 7 23:59 (Safehome device driver code)

        • 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

      3.  7 project teams: see Noah BBS
      4.  Create google doc to record all your project related meetings by April 12 23:59. 
      • 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
      5. 10% grade of the project is scored based on the overall project activities including Noah BBS activity and meeting logs, etc.

          Document Actions