Paper For Above instruction
The development of a currency conversion application requires a comprehensive understanding of its application-level requirements, which serve as the foundation for design, implementation, and testing. These requirements outline the precise functions the software must perform, the manner in which users will interact with it, and how data flows within the system. Establishing clear input, process, and output components facilitates a systematic approach, ensuring the application's correctness, usability, and reliability.
Input-Process-Output (IPO) Chart
The currency conversion application takes user inputs such as currency selection and amount, processes these inputs by applying the appropriate conversion rates, and produces outputs displaying the converted amounts. The IPO chart summarizes this as follows:
Input:
User selects a currency type from a menu; user inputs the amount in the foreign currency
Process:
Application retrieves the conversion rate for the selected currency; calculates the equivalent amount in U.S. dollars
Output:
Display the converted dollar amount; offer options to perform additional conversions or exit the program
Hierarchy Chart Construction
The hierarchy chart visualizes the structure of the currency conversion application, highlighting main functions and sub-functions. At the top level, the primary function is the
Currency Conversion Program
. Sub-functions include:
Display Menu
Get User Selection
Input Foreign Currency Amount
Retrieve Conversion Rate
Calculate Dollar Equivalent
Display Conversion Result
Repeat or Exit
This hierarchy ensures clarity in program flow—guiding users through menu selection, data entry, calculation, and output—creating a user-friendly and efficient application structure.
Application Requirements and Design Considerations
The application must perform several critical functions, aligning with the structured programming approach and best practices in software engineering. Key design considerations include modularity, error handling, and usability. Modular functions handle specific tasks such as displaying menus, obtaining user input, performing calculations, and presenting results, thereby promoting code maintainability and clarity.
Functionality and User Interaction
Upon starting the program, users are presented with a menu listing five international currencies: Canadian dollars, Mexican pesos, English pounds, Japanese yen, and French francs. Users select a currency type by entering a corresponding menu number. The application then prompts the user to input the amount of the foreign currency they wish to convert. It retrieves the applicable conversion rate and calculates the equivalent U.S. dollars. The result is displayed on the screen, and the menu is redisplayed, allowing users to perform multiple conversions or exit explicitly.
Validation and Verification
Input validation ensures that user entries are valid—such as numeric amounts and valid menu selections. Error messages prompt re-entry if invalid data is detected. Verification involves testing the application's functions to ensure they accurately perform conversions according to the defined rates and that the overall system behaves as expected under various input scenarios.
Test Documentation
Test cases should verify each conversion rate, boundary values, invalid entries, and repeated operations. Documented testing confirms that the application reliably converts currency amounts, handles user errors gracefully, and maintains expected performance throughout multiple interactions.
Conclusion
The application-level requirements define clear, actionable steps for developing a user-friendly, error-resistant currency conversion program. Employing a structured approach enhances clarity, facilitates debugging, and ensures the final product meets user needs effectively. Systematic requirements analysis, a well-organized hierarchy, and thorough testing culminate in a robust software solution suitable for practical deployment in travel and financial contexts.
References
Pressman, R. S. (2014).
Software Engineering: A Practitioner's Approach (8th ed.). McGraw-Hill Education.
Somerville, I. (2010).
Software Engineering (9th ed.). Addison-Wesley.
IEEE Standards Association. (2011).
IEEE Standard for Software Verification and Validation
. IEEE.
McConnell, S. (2004).
Code Complete: A Practical Handbook of Software Construction
. Microsoft Press.
Schach, S. R. (2007).
Object-Oriented and Classical Software Engineering
. McGraw-Hill Education.
MySQL AB. (2017).
Database design and normalization walkthrough
. MySQL Documentation.
ISO/IEC. (2011).
Systems and software engineering—Software product Quality Requirements and Evaluation (SQuaRE)
Common industry format (CIF) for usability test reports
. ISO.
Graham, P., & Casvali, M. (2019).
Best practices in software input validation
. Journal of Software Quality.
Fielding, R. T. (2000).
Architectural Styles and the Design of Network-based Software Architectures
. Doctoral dissertation, University of California, Irvine.
Abrahamsson, P., et al. (2017).
Agile Software Development: Moving Fast in Complex Worlds
. IEEE Software.