tagcloud

CSE592 - Software Engineering
Spring 2016

Administrative Information

Announcements

Course Description

In this course, students will learn principles of software engineering, software development process, and techniques to design and test software systems. This course mainly covers software testing techniques, but also cover techniques for software engineers such as UML (Unified Modeling Language), design patterns, and object-oriented software development methodology to further improve students' understanding on software engineering.


Topics
  • Introduction to Software Engineering
  • Software Development Process and Practices
  • Object-Oriented Software Modeling and Design in UML
  • Design Patterns
  • Software Testing Techniques
  • Software Process Improvement: CMMI
  • Agile Software Development Methodology

Schedule and and Lecture Slides

L#
Date
Topic
Reading/Presentation/Reference
1
3/3
Introduction  
2
3/8
Software Development Process
Reading: Frederick P. Brooks, "No Silver Bullet - Essence and Accident in Software Engineering (Ch.16)", Mythical Man-Month - The Essays on Software Engineering, 1995.
Reading: L. Osterweil, "Software Processes Are Software Too, Revisited: An Invited Talk on the Most Influential Paper of ICSE 9", In Proc. of the 19th International Conference on Software Engineering (ICSE), pages 540-548, May 1997.
Reading: W. Royce, "Managing the Development of large Software Systems", In Proc. of WESCON, August 1970.
Reading: B. Boehm, "Spiral Model of Software Development and Enhancement", IEEE Computer, 21(5):61-72, May 1988.
Reading: M. Fowler and J. Highsmith, "The Agile Manifesto", Software Development, Aug. 2001.
Reading: C. Larman and V. Basili, "Iterative and Incremental Development: A Brief History", IEEE Computer, 36(6):47-56, June 2003.
3
3/10
Agile Development
4
3/15
Introduction to Software Testing (1) Reading: Alessandro Orso and Gregg Rothermel, "Software Testing: a Research Travelogue (2000-2014)", In Proc. of the Future of Software Engineering (FoSE) -- in the 36th International Conference on Software Engineering (ICSE), pages 117-132, May 2014.
Reading: Mary Jean Harrold, "Testing: A Roadmap", In Proc. of the Future of Software Engineering (FoSE) -- in the 22th International Conference on Software Engineering (ICSE), pages 61-72, May 2000.
Reading: Stephen R. Schach, "Testing: Principles and Practice", ACM Computing Surveys, 28(1):277-279, March 1996.
5
3/17
Introduction to Software Testing (2)
Test Generation from Requirements (1)
6
3/22
Test Generation from Requirements (2) Reading: Kuo-Chung Tai, "Theory of Fault-Based Predicate Testing for Computer Programs", IEEE Transactions on Software Engineering, 22(8):552-562, August 1996.
Reading: Kuo-Chung Tai, "Predicate-Based Test Generation for Computer Programs", In Proc. of the 15th International Conference on Software Engineering (ICSE), pages 267-276, May 1993.
7
3/24
Test Generation from Requirements (3)
8
3/29
Test Generation from FSM (1)
 
-
3/31
Rescheduled to: 5/6 Project meeting
9
4/5
Test Generation from FSM (2) Reading: Tsun S. Chow, "Testing Software Design Modeled by Finite-State Machines", IEEE Transactions on Software Engineering, 4(3):178-187, May 1978.
Reading: David Lee and Mihalis Yanmakakis, "Principles and Methods of Testing Finite State Machines - A Survey", Proceedings of the IEEE, 84(8):1090-1123, Aug. 1996.
Reading: Susumu Fujiwara, Gregor v. Bochmann, Ferhat Khendek, Mokhtar Amalou, and Abderrazak Ghedamsi, "Test Selection Based on Finite State Models", IEEE Transactions on Software Engineering, 17(6):591-603, May 1991.
Reading: Wontae Choi, George Necula, and Koushik Sen, "Guided GUI Testing of Android Apps with Minimal Restart and Approximate Learning", ACM SIGPLAN Notices - OOPSLA'13, 48(10):623-640, Oct. 2013.
10
4/7
Test Generation from FSM (3)
-
4/12
Rescheduled to: 6/3 Conference
-
4/14
Rescheduled to: 6/10 Conference
11
4/19
Test Generation from Combinatorial Design (1) Reading: Myra B. Cohen, Peter B. Gibbons, Warwick B. Mugridge, and Charles J. Colbourn, "Constructing Test Suites for Interaction Testing", In Proc. of the 25th International Conference on Software Engineering (ICSE), pages 38-48, May 2003.
Reading: Itai Segall, "Repeated Combinatorial Test Design - Unleashing the Potential in Multiple Testing Iterations", In Proc. of the 9th IEEE International Conference on Software Testing, Verification and Validation (ICST), pages 12-21, April 2016.
Reading: Jon D. Hagar, Thomas L. Wissink, D. Richard Kuhn, and Raghu N. Kacker, "Introducing Combinatorial Testing in a Large Organization", IEEE Computer, 48(4):64-72, April 2015.
Reading: Charles Song, Adam Porter, and Jeffrey S. Foster, "iTree: Efficiently Discovering High-Coverage Configurations Using Interaction Trees Charles", In Proc. of the 34th International Conference on Software Engineering (ICSE), pages 903-913, June 2012.
Reading: Xiao Qu, Myra B. Cohen, Gregg Rothermel, "Configuration-Aware Regression Testing: An Empirical Study of Sampling and Prioritization", In Proc. of the 2008 International Symposium on Software Testing and Analysis (ISSTA), pages 75-86, July 2008.
Reading: Cemal Yilmaz, Myra B. Cohen, and Adam A. Porter, "Covering Arrays for Efficient Fault Characterization in Complex Configuration Spaces", IEEE Transactions on Software Engineering, 32(1):20-34, January 2006.
Reading: Myra B. Cohen, Matthew B. Dwyer, and Jiangfan Shi, "Coverage and Adequacy in Software Product Line Testing", In Proc. of the ISSTA 2006 Workshop on Role of Software Architecture for Testing and Analysis (ROSATEA), pages 53-63, July 2006.
Reading: Kuo-Chung Tai and Yu Lei, "A Test Generation Strategy for Pairwise Testing", IEEE Transactions on Software Engineering, 28(1):109-111, January 2002.
Reading: David M. Cohen, Siddhartha R. Dalal, Michael L. Fredman, and Gardner C. Patton, "The AETG System: An Approach to Testing Based on Combinatorial Design", IEEE Transactions on Software Engineering, 23(7):437-444, July 1997.
12
4/21
Test Generation from Combinatorial Design (2)
13
4/26
Test Adequacy Assessment (1)
UML (1) - Intro
14
4/28
Test Adequacy Assessment (2)  
15
5/3
Test Adequacy Assessment (3)
-
5/5
No Class - Children's Day
16
5/6
Test Adequacy Assessment (4) Makeup#1 at 2:00PM

Reading: Lori A. Clarke, Andy Podgurski, Debra J. Richardson, and Steven J. Zeil, "A Fomal Evaluation of Data Flow Path Selection Criteria", IEEE Transactions on Software Engineering, 15(11):1318-1332, November 1989.
Reading: John B. Goodenough and Susan L. Gerhart, "Toward a Theory of Test Data Selection", IEEE Transactions on Software Engineering, 1(2):156-173, June 1975.
Reading: John B. Goodenough and Susan L. Gerhart, "Correction to: Toward a Theory of Test Data Selection", IEEE Transactions on Software Engineering, 1(4):425-426, December 1975.
Reading: Manish Mahajan, Sumit Kumar, and Rabins Porwal, "Applying Genetic Algorithm to Increase the Efficiency of a Data Flow-based Test Data Generation Approach", ACM SIGSOFT Software Engineering Notes, 37(5):1-5, September 2012.
Reading: Giovanni Denaro, Alessandro Margara, Mauro Pezze, and Mattia Vivanti, "Dynamic Data Flow Testing of Object Oriented Systems", In Proc. of the 37th International Conference on Software Engineering (ICSE), pages 947-958, May 2015.
Reading: Christina Pavlopoulou and Michal Young:, "Residual Test Coverage Monitoring", In Proc. of the 21st International Conference on Software Engineering (ICSE), pages 277-284, May 1999.
17
5/10
Test Adequacy Assessment using Mutation (1) Presentation: Qingjiang
Paper: Sebastian Elbaum and Matthew B. Dwyer, "Carving and Replaying Differential Unit Test Cases from System Test Cases", IEEE Transactions on Software Engineering, 35(1):29-45, January 2009.
18
5/12
Test Adequacy Assessment using Mutation (2) Presentation: Delvison
Paper: Jifeng Xuan and Martin Monperrus, "Test Case Purification for Improving Fault Localization", In Proc. of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE), pages 52-63, November 2014.
19
5/17
UML (2) - Use Case and Activity Model Presentation: Maruf
Empirical Evaluation of the Statement Deletion Mutation Operator", In Proc. of the 6th IEEE International Conference on Software Testing, Verification and Validation (ICST), pages 84-93, March 2013.
-
5/19
Rescheduled to: 5/20 World IT Show
20
5/20
UML (3) - Structural Models Presentation: Anvika
Paper: Simplifying and Isolating Failure-Inducing Input", IEEE Transactions on Software Engineering, 28(2):183-200, February 2002.
21
5/24
Testing Energy-Efficiency of Software (1) Presentation: Qingjiang -- Rescheduled to 5/31.
22
5/26
Testing Energy-Efficiency of Software (2) Presentation: Delvison
Paper: Robert Dyer, Hoan Anh Nguyen, Hridesh Rajan, and Tien N. Nguyen, "Boa: Ultra-Large-Scale Software Repository and Source-Code Mining", ACM Transactions on Software Engineering and Methodology, 25(1):1-34, December 2015.
23
5/31
Symbolic Execution and Concolic Testing Presentation: Qingjiang
Paper: Robert Feldt, Simon Poulding, David Clark, and Shin Yoo, "Test Set Diameter: Quantifying the Diversity of Sets of Test Cases", In Proc. of the 9th IEEE International Conference on Software Testing, Verification and Validation (ICST), pages 223-233, April 2016.
24
6/2
UML (4) - Interaction Models Presentation: Maruf
Paper: Zebao Gao, Zhenyu Chen, Yunxiao Zou, and Atif M. Memon, "SITAR: GUI Test Script Repair", IEEE Transactions on Software Engineering, 42(2):170-186, February 2016.
25
26
6/7
UML (5) Extended class for make-up (1:30pm~3:30pm)

Presentation: Anvika
Paper: Daniel Liew, Cristian Cadar, and Alastair F. Donaldson, "Symbooglix: A Symbolic Execution Engine for Boogie Programs", In Proc. of the 9th IEEE International Conference on Software Testing, Verification and Validation (ICST), pages 223-233, April 2016.
26
27
6/9
Regression Testing Extended class for make-up (1:30pm~3:30pm)

28
6/10
Term-Paper Presentation Makeup#2 (7:00pm~8:20pm)
6/13
Final Exam (6/13 6:30PM~9:00PM)

Grading

  • Grading method

    Type Points
    Paper Presentation (<25 mins) 20 pts
    Paper Reviews 20 pts
    Term-Paper 30 pts
    Final Exam 30 pts
    Max. Points Possible 100 Points

  • Final grades

    The following are indicative of how the points on the course would be mapped to a grade. This is only indicative and may be adjusted at my discretion.

    A = [80-100)%, B = [65-80)%, C = [55-65)%, D = [10-55)%, F = [0-10)%
  • The assignments and grades will be posted on Blackboard.


Score/Grade Appeals

You must make the appeal in writing. However, score changes are at the discretion of the instructor and may be up or down based upon a complete review of the work in question. It is important to recognize that a grade reflects another person's judgment of your work. In this sense, all grading is subjective. Appealing scores is discouraged. Changing a few points on assignments rarely makes a difference in the final grade. Time is much better spent discussing and clarifying the information content presented in the course. In the event of disputes at the end of the semester, you will be required to produce the testing material in question. In the case of a grading mistake (i.e., grade is posted incorrectly, grader did not give credit for an item that exists) you can always send me an e-mail, or come to my office (Administrative Building B421).

Academic Integrity

Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Faculty members are required to report any suspected instances of academic dishonesty to the Academic Integrity Committee.

Disabilities Act

If you have a physical, psychological, medical or learning disability that may impact your course work, please contact the Department of Student Affairs, Academic Building Zone A, Room 217, (032) 626-1132. They will determine with you what accommodations, if any, are necessary and appropriate. All information and documentation is confidential.

Critical Incident Management

SUNY Korea expects students to respect the rights, privileges, and property of other people. Faculty members are required to report to the Department of Academic Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn.

Course Evaluation

Your participation in the evaluation of courses through Course Evaluation System is a responsibility you hold as a student member of our academic community. The system will be open for you to complete your evaluations later in this semester. You can participate after logging in to the system with your NetID.

Right to Change Information

Although every effort has been made to be complete and accurate, unforeseen circumstances arising during the semester could require the adjustment of any material given here. Consequently, given due notice to students, the instructor reserves the right to change any information on this syllabus or in other course materials.