You were talking to members of your favorite local band after a recent show. The topic of software came up, and the leader said she has a love-hate relationship with it. She loves the recording software they use, and is okay with QuickBooks for the band’s financial records. But, she does not like the available options to track bookings and create set lists that draw from their entire repertoire.
In addition to their regular weekly gigs, the band performs for many school assemblies and community events. They have to pick music that’s appropriate for the audience and the theme without being repetitive. They are constantly adding new songs to their catalog, and putting others on hiatus. The band likes to take requests, so they frequently update the set list after a gig. The band does not want to bother entering chords or lyrics because they don’t use computers or phones on stage.
You offer to put together a system design to address the band’s needs. It’s okay to collect ideas by looking at off-the-shelf solutions, but the design must be your own for this assignment. Include the following in your design:
- A list and short explanation of each function to manage:
- the band’s song catalog,
- set lists, and
- any other category you believe is important for this application.
- A logical data design that supports all of these functions. Use either an entity-relationship or a UML class diagram, which should be in third normal form. Indicate all primary keys, relationships, and cardinalities.
- Recommend a system architecture that identifies the hardware and software components and how they interact. Include a short (not more than 500 words) description and rationale. Illustrate using your choice of a static functional decomposition or object-oriented diagram.
- Identify security concerns and other nonfunctional requirements for this system.
- Propose at least three distinct and measurable criteria to evaluate the quality of the finished software.
The specific Course Learning Outcomes associated with this assignment are:
- Determine high-level logical system characteristics for an information technology-based solution.