cs5103 software engineering
DESCRIPTION
CS5103 Software Engineering. Lecture 17 Debugging. Today’s class. Delta Debugging Motivation Algorithm In practice Statistical Debugging Tarantula Dynamic Slicing. 2. Debugging. Something we do when testing find a bug Basic Process Reproduce the bug Locate the fault Fix - PowerPoint PPT PresentationTRANSCRIPT
CS5103 Software
Engineering
Lecture 18Security Issues in Software Engineering & Final Exam
2
Mid-term Exam II
Time: Dec 1th 6:00pm to 7:15pm
Location: NPB 1.226
Form: closed book exam 100 points total
Account for 20% for the course grade
8 multiple choice questions * 6 points each: single answer
2 multiple choice questions * 8 points each: multiple answers
2 Question & Answer, 36 points in total
3
Covered Course Contents
Must * It is for sure that this knowledge point will be
covered in the final exam
May ? This knowledge point may be covered in the
final exam
Not mentioned in this outline The final exam will not cover this knowledge
point
4
Software process models
Features of Agile software development & Extreme programming ?
Major difference between these models ?
5
Requirement Engineering
Find Stake Holders ? Type of Requirements ? Major requirement elicitation
approaches ?
6
System Modeling
Class Diagram? Relationship between classes ?
Generalization, Aggregation, Composition, Association and their difference ?
7
Software Architecture
Major software architecture styles? Pipe and Filter ?
Layered ?
8
Software Design
Design Patterns ? Structure and Types ?
9
Versioning
Conflict ? Know how to detect conflict ?
Branch ? Know how to merge branches by applying
diffs ?
Branch strategies and their pros / cons ?
10
Software licences
Know major software licenses ? GPL, LGPL, Apache, BSD, …
11
Coding Styles
Coding style rules for all levels ? Identifier / constant ?
Expression ?
Statements ?
Blocks ?
Comments ?
Finding coding style errors in given code ? Understand the goal and concept of
software refactoring ?
12
Software Testing
Concepts and terms in software testing * Test case, Test suite, Test oracle, …
Unit Testing * Working process of JUnit ?
What are good ways to write assertions ?
What are good ways to do the tearing down ?
13
Software Testing
Test coverage * Understand statement coverage,
branch coverage and path coverage, and calculate coverage for a given test case and code*
14
Software Static Detection
Three types of Specifications*
Approaches to Check Specifications? Symbolic Execution, Model Checking, Graph
Traversal
Difference between findbugs and traditional detection tools*
15
Software Debugging
Delta debugging* Understand how basic delta debugging
works ?
Know how to handle interference and multiple interference ?
Understand the limitations of delta debugging ?
Statistical debugging? How to compute suspiciousness of code?
16
Thanks!