Restore faz1/yol-haritasi docs (overwritten by copy); stage1 docs; G0174 new gap; stage1 25-task subset
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
@@ -1,32 +1,41 @@
|
||||
# 1. Goal
|
||||
Refactor the legacy function module {{P}}SKI_RENTAL_OLD in function group {{P}}FG_SKI. The function module calculates the rental price and the deposit for ski equipment. Improve the readability, the maintainability, and the structure of the code. The behavior must stay the same. The public interface must not change.
|
||||
Refactor the legacy function module {{P}}MUSEUM_FEE_OLD in function group
|
||||
{{P}}FG_MUSEUM. The function module calculates the entry fee for a museum visit.
|
||||
The behavior of the function module must stay the same. Improve the code
|
||||
quality.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- Function group {{P}}FG_SKI exists in package $TMP.
|
||||
- Function module {{P}}SKI_RENTAL_OLD exists in this group. It contains legacy code.
|
||||
- A rental program calls the function module. The callers use the current interface.
|
||||
- Function group {{P}}FG_MUSEUM exists in package $TMP.
|
||||
- Function module {{P}}MUSEUM_FEE_OLD exists in this group. It contains legacy
|
||||
code.
|
||||
- The function module is called by a ticketing program. The interface must not
|
||||
change.
|
||||
|
||||
# 4. Contract
|
||||
- The function module {{P}}SKI_RENTAL_OLD keeps its name and its function group.
|
||||
- The interface stays exactly the same:
|
||||
- Importing: iv_equipment TYPE string, iv_days TYPE i, iv_customer TYPE string, iv_insurance TYPE abap_bool
|
||||
- Exporting: ev_price TYPE decfloat34, ev_deposit TYPE decfloat34
|
||||
- Exceptions: invalid_equipment, invalid_days, invalid_customer
|
||||
- Refactor the function module {{P}}MUSEUM_FEE_OLD in function group
|
||||
{{P}}FG_MUSEUM.
|
||||
- Keep the name and the public interface: the same parameter names, kinds,
|
||||
types, and exceptions.
|
||||
|
||||
# 5. Business rules
|
||||
The business rules are defined by the current implementation of {{P}}SKI_RENTAL_OLD. The behavior must stay the same. Read the legacy code to understand the rules.
|
||||
1. The behavior of the function module must not change. The legacy code defines
|
||||
the business rules.
|
||||
2. The function module must raise the exception INVALID_INPUT for the same
|
||||
inputs as the legacy code.
|
||||
3. The exported values must be the same as the legacy code for all valid
|
||||
inputs.
|
||||
|
||||
# 6. Constraints
|
||||
- Release target: 8.16.
|
||||
- The function module must be active and have no syntax error.
|
||||
- Refactor the code in place. Do not change the public interface.
|
||||
- Follow Clean ABAP: small methods, no duplication, meaningful names, constants for literals.
|
||||
- Out of scope: do not change the function group {{P}}FG_SKI. Do not create new function modules.
|
||||
- Coding standards: Clean ABAP, no ATC priority 1 or 2 findings, methods below
|
||||
40 statements.
|
||||
- Out of scope: none.
|
||||
|
||||
# 7. Acceptance
|
||||
- The function module is active and has no syntax error.
|
||||
- The behavior is unchanged.
|
||||
- The hidden tests pass.
|
||||
- Write ABAP Unit tests for the function module in a global test class.
|
||||
|
||||
Reference in New Issue
Block a user