diff --git a/README.md b/README.md
index 83254bef4712fb9bf874ca3063e01aa263b5f202..83392f6c14d5377307e67262d02e385b0413ed7c 100644
--- a/README.md
+++ b/README.md
@@ -308,3 +308,23 @@
   - If making good use of the shift operation, can create a function that is optimized for each situation.
 
 
+# project - STEP 3
+## 1. Software Requriement Specification
+## 2. Reduction of violation
+
+![2](./image/2.PNG)
+![3](./image/3.PNG)
+
+- Change of violation
+  - Violation 89 -> 48
+- Modified content
+  - Result value of function is not used, so Add return value.
+  - Function declarartion doesn't exist before definition.
+  - Add parentheses to parameters.
+  - Add void parameter to main function.
+  - Declare mul, div function as static.
+
+- Unsolved content
+  - problem of bitwise operator.
+  - printf is a fobidden function.
+  - some macros are forbidden.
\ No newline at end of file
diff --git a/image/2.PNG b/image/2.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..e397753dcca5a77205d97cca735faa1e3f24946c
Binary files /dev/null and b/image/2.PNG differ
diff --git a/image/3.PNG b/image/3.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..e811c2a218cb56a2b4c1d6f2ab2f20ac286c1e04
Binary files /dev/null and b/image/3.PNG differ
diff --git a/testing/reportafter.pdf b/testing/reportafter.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..6366b432d277987d201354016423b0d59eeeae49
Binary files /dev/null and b/testing/reportafter.pdf differ