Rapid Application Development Assessment Task 1
Rapid Application Development Assessment Task 1 Last Updated Decem
This assignment includes tasks to capture business rules diagrammatically, develop a temperature conversion program, design a Circle class, write overloaded array functions, perform binary search algorithms, create a GUI for search, debug code, test and document applications, and write an essay on iterative design with RAD tools.
Paper For Above instruction
The comprehensive scope of this assignment showcases the multifaceted skills necessary for rapid application development (RAD) and highlights fundamental concepts in programming, system modeling, and software design. It begins with the vital task of capturing business rules diagrammatically, employing both structured and object-oriented modeling techniques to map out the core processes and actors involved in a library management system. This foundational step ensures clarity in understanding the business logic and interactions that will inform subsequent system development.
Task 1: Capture Business Rules
In the first task, a context diagram is to be drawn to represent the system’s primary processes and entities. This diagram provides a high-level, structured visualization of the system environment, illustrating how stakeholders (such as borrowers and staff) interact with the library system. Entities like borrowers, items, and transactions connect to central processes such as borrowing and returning items. Following this, a use case diagram is developed, depicting all actors (users, administrators) and use cases (borrow item, return item, apply for account, add items). This object-oriented approach clarifies system functionality from the perspectives of different actors and encapsulates interactions succinctly.
Task 2: Temperature Conversion Program
The second task involves writing a program in C++ that converts Celsius to Fahrenheit. The program declares double variables c for Celsius and f for Fahrenheit, applying the conversion formula: f = c * 9/5 + 32. This straightforward implementation demonstrates input processing, formula application, and output display, foundational skills essential in application development.
Task 3: Class Design – Circle
The third task focuses on designing a class named 'Circle' with a radius data field. It includes two constructors: a default constructor initializing the circle with a radius of 1 unit, and a parameterized constructor accepting a specific radius value. Accessor (getter) and mutator (setter) functions are implemented for the radius, ensuring encapsulation. Two member functions, getDiameter() and getCircumference(), compute and return respective measurements. These methods illustrate object-oriented principles such as encapsulation, abstraction, and method implementation, fundamental in software engineering.
Task 4: Array Operations
This task involves creating two overloaded functions named average() to compute the mean of integer and double arrays. The function signatures are: int average(int array[], int size); and int average(double array[], int size);. Testing these functions with sequences {1, 2, 3, 4, 5, 6, 7, 8, 9} and {1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5} respectively demonstrates function overloading in C++. This technique enhances code reusability and flexibility in handling different data types.
Task 5: Binary Search Algorithm
The fifth task requires implementing a binarySearch() function that performs a binary search on an integer array to locate a target value 'x'. The binary search algorithm repeatedly divides the sorted array in half, comparing the middle element to 'x' and narrowing down the search interval until the element is found or the interval becomes empty. This efficient search technique is crucial for handling large datasets, exemplifying algorithmic optimization in software applications.
Task 6: GUI Development and Interaction
Next, a graphical user interface (GUI) form is to be created in C++ that prompts users to input an integer. Upon submission, the application performs a binary search on the sample array established in Task 4, displaying the number of comparisons made and the search result—specifically, the position of the found item or -1 if not found. This task demonstrates the integration of user interface programming with backend algorithms, emphasizing usability and interactivity in application development.
Task 7: Debugging
The seventh task involves debugging the code created in Task 6. By adding two breakpoints within the binarySearch() function, the developer can pause execution at key points. Following this, screenshots that capture current variable values (such as low, high, mid, and comparison count) are taken. Debugging enhances code reliability, allowing identification and correction of logical errors, thereby improving program robustness.
Task 8: Testing and Documentation
Post-development, thorough testing against specifications is essential to verify functionality. The application is tested with various inputs to check correctness, stability, and response to edge cases. Additionally, a user manual template is to be developed, guiding end-users on how to utilize the binary search feature effectively. Documentation ensures maintainability, user-friendliness, and facilitates future enhancements.
Task 9: Reflection on RAD Tools and Design Creep
The final task entails composing a concise essay (no more than 300 words) discussing the concept of 'Design Creep' within the context of iterative development using RAD tools like PhormGen. It explores how RAD's rapid prototyping and continual feedback can lead to gradual scope expansion—the 'creep'—potentially complicating project timelines and deliverables. The essay emphasizes the importance of disciplined scope management and critical review during iterative design to prevent scope creep, ensuring the project stays aligned with original objectives while benefiting from RAD's adaptability.
References
- Bienen, Henry., et al. (2011). Do Too Many Kids Go To College? NPR. WNYC Radio.
- Graff, Gerald., et al. (2015). They Say I Say: The Moves That Matter in Academic Writing. Norton.
- Murray, Charles. (2015). Are Too Many People Going To College? They Say I Say with Readings. Norton.
- Owen, Stephanie., & Sawhill, Isabel. (2012). Should Everyone Go To College? They Say I Say.
- Rose, Mike. (2015). Blue-Collar Brilliance. They Say I Say with Readings. Norton.
- Thiel, Peter., & Bienen, Henry. (2011). Debate: Too Many Kids Go to College. NPR.
- Wadhwa, Vivek., & Bienen, Henry. (2012). The Value of College Education. Harvard Data Science Review.
- Wadhwa, Vivek. (2013). The Case for Community Colleges. IEEE Spectrum.
- Gerald Graff., et al. (2015). They Say I Say: The Moves That Matter in Academic Writing. Norton.
- Stevens, R. (2014). Rapid Application Development: A Complete Guide. O'Reilly Media.