UML代写 | CSC 216 SE Materials

这个project是为大楼设计一个租赁系统的UML模型
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 1/14
Home > Projects > Project 2: Wolf High-Rise Rentals > Project 2, Part 1: Wolf High-Rise Rentals
CSC216: Project 2
Project 2, Part 1: Wolf High-Rise Rentals
Project 2, Part 1: Wolf High-Rise Rentals
Project 2 requires you to go through standard software development phases to design, implement, and test a complete Java program consisting of multiple source
code files and JUnit test cases. The project comes in two parts. Deliverables for Part 1 are:
1. Design document that includes a UML class diagram.
2. Black box test plan.
Part 1 Due Date: Friday, March 27 at 11:45 pm
Late Deadline (Design): Saturday, March 28 at 9:00 AM
Late Deadline (BBTP): Sunday, March 29 at 11:45 PM
Project 2, Part 1 MUST be completed individually.
Problem Overview
Last year, the Wolfpack Alumni Association received an unbelievably generous donation of skyscraper in downtown Manhattan. After much deliberation about the
donation, alumni board members decided not to sell their new building but to turn it into co-working office space, conference rooms, and small hotel suites, all under
the name Wolf High-Rise Rentals.
Wolf High-Rise Rentals will deal directly with the business of leasing, so they are soliciting bids on a contract to create the application to manage clients, rental units,
and leases. Every bid must be accompanied by a prototype application that shows the main features that the eventual application must support. You and your team
have until April 16 to create such a prototype.
Your colleague has already written a graphical user interface (GUI) for the prototype as shown in Figure 1. The top half of the GUI is devoted to rental properties, with
the list of available properties on the left and the leases for the currently selected property on the right. The bottom half of the GUI is devoted to registered clients,
where the list of clients is on the left and the leases for the currently selected client are on the right.
The GUI has a File menu for loading and saving rental data files, for creating new files, and for quitting. Buttons and text fields enable the user to add new rental
units, close rental units, temporarily remove rental units from service, restore rental units to service (making them available for rental), add new clients, add new
leases, and cancel client leases.
Project 2, Part 2: Wolf High-Rise Rentals
NC State Home RESOURCES
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 2/14
Figure 1: Wolf High-Rise Rentals GUI displaying rental units, clients, and leases.
Wolf High-Rise Rentals has already established conventions for clients, rental properties, and leases, which are described here.
Each client has a name and an id. The Clients area on the bottom left of Figure 1 lists each client by name followed by id in parentheses. Client names consist of
alphanumeric characters with optional embedded blanks. Client ids have at least three characters, where each character is alphanumeric or one of the characters @,
#, or $. Client ids are unique.
Each rental unit has multiple pieces of information, which are displayed in Figure 1 in the Rental Unit area at the upper left.
1. Kind, which can be Office, Conference Room, or Hotel Suite.
2. Location, displayed in the form ff-rr, where ff is the floor (numbered 1 to 45) and rr is the room (numbered 10 to 99). Locations are unique and are not shared
among rental units.
3. Capacity, shown after the vertical bar. Capacities vary among rental units but are limited thus:
1. Maximum possible capacity of an office is 150.
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 3/14
2. Maximum possible capacity of a hotel suite is 2.
3. Maximum possible capacity of a conference rooms is 25.
4. Whether the rental unit is in service and available for rental. Rental units that are out of service are shown as Unavailable.
Wolf High-Rise Rental leases also have multiple pieces of information, which are displayed in the lists on the right side of Figure 1.
1. Each lease has a confirmation number in the range 0 – 999999. (Confirmation numbers are always displayed as 6-digit figures, with leading zeroes as needed.)
2. Each lease has a start date and an end date in the form yyyy-mm-dd to yyyy-mm-dd. Restrictions are as follows:
1. The earliest possible start date for a lease is January 1, 2020. The latest possible end date is December 31, 2029.
2. Offices are leased by the month. Each office lease must have a start date of the first day of a month and end date which is the last day of the same or later
month. There can be multiple leases for the same office at the same time as long as the capacity of the office room is not exceeded.
3. Hotel suites are leased by the week. Each hotel suite lease (reservation) begins on a Sunday and ends on a later Sunday. There can be at most one lease for the
same hotel suite for any given week.
4. Conference rooms are leased by the day, up to a maximum of 7 days. There can be at most one lease for the same conference room for any given day.
3. Each lease is for a particular number of occupants. The total number of lease occupants for a rental unit on any given day cannot exceed the capacity of the rental
unit. The number of occupants for a lease is displayed inside the vertical bars right after the lease dates.
4. Each lease has a client (name and id are shown on the end of the display of the leases for the currently selected rental unit).
5. Each lease has a rental unit (kind and location are shown on the end of the display of leases for the currently selected client).
Requirements
The remaining requirements are specified by use cases that describe the interaction between the application and its users. For your prototype, there is only one user,
the person who manages clients, rental units, and leases for Wolf High-Rise Rentals. Recall that use cases divide system behavior into related scenarios around a
core piece of functionality. These scenarios tie directly to user experience with the GUI.
UseCase 1: Load aWolf High-RiseRentals data file
Preconditions: The user has started the Wolf High-Rise Rentals application.
Main Flow: The user selects selects the desired data file [S1][S2], which the system opens and reads, populating the GUI with file data [S3][S4][S5].
Subflows:
[S1] If the system currently has data, the user is first prompted to save it as shown in Figure 2. If the user clicks No in the dialog, no data are saved. If the user
clicks Yes instead, the save operation proceeds [UC2] prior to the next step.
Figure 2: Dialog to save unsaved data.
[S2] A file chooser dialog opens and the user browses for and selects the desired data file. The data currently in the system are removed [E1].
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 4/14
[S3] The system opens and reads the data file [E2].
A valid data file has extension .md and it may have extra blank lines or extra whitespace at the beginnings or ends of lines. (Blank lines are ignored. Lines with
leading/trailing whitespace are trimmed prior to consideration.) Each valid file is structured according to the following:
Lines with rental unit information come before any lines with client or lease information.
Information for each rental unit is on a line by itself. The format of each such line is as follows:
kind: location | capacity
-orkind: location | capacity Unavailable
For example:
Office: 10-22 | 79
Conference Room: 23-80 | 13 Unavailable
A line with client information must precede any line with lease information. Every line with client information begins with the character #, followed by the client
name, a space, then the client id in parentheses. Examples:
#Janet Rinaldi (jkr$12s)
#George (110-300-0987A)
Each line with lease information follows the client for that lease and is prior to every subsequent line with information for other clients. Each such line begins
with a 6-digit confirmation code, the lease beginning and end dates, the number of occupants for the lease, and finally the rental unit kind and location for the
lease. For example:
000000 | 2020-02-01 to 2020-06-30 | 3 | Office: 10-20
[S4] The system populates the Rental Units area with the list of all rental units. Rental units are displayed in ascending order by floor then room (for example, a
rental unit on 10-99 would come before another on 11-20). Rental unit data are spaced so that the different pieces of data are aligned (so, for example, the vertical
bars are aligned), as illustrated in Figure 1.
[S5] The system populates the Clients area with the list of all clients. Clients are displayed in the order in which they were read. (Clients who are subsequently
added will be listed below the ones read from the file.) No single client is initially selected. Figure 1 illustrates the client display format.
The Wolf High-Rise Rental data file sample.md was used to populate the system with data shown in Figure 1.
Alternative Flows:
[E1] If the use clicks Cancel in the file chooser dialog, no file is opened and the file loading process aborts. No current data are removed from the system.
[E2] If the selected file is not a valid data file or if an error occurs while reading the selected file, an error dialog opens with message “Error opening file.” When
the user clicks OK, the dialog closes, and the load file process aborts. Errors can come from multiple sources, including but not limited to the following:
Lines out of order (such as rental units coming after clients).
Any error in data format (such as illegal date format or values).
Any error in data validity (such as rental unit with invalid data, a client with a missing/blank id or name, a lease with bad dates, or a lease that would exceed the
capacity for a rental unit).
Lines not formatted as described above (such a client without a leading # or a rental unit kind that is not followed by the colon character).
The same rental unit occurring more than once in the data file (two different rental unit lines with the same floor and room).
The same client occurring more than once in the data file (two different client lines with the same client id).
NOTE: The prototype that you must create does not need to check if two different leases have the same confirmation codes.
UseCase 2:Save data to aWolf High-RiseRentals data file
Preconditions: The user has started the Wolf High-Rise Rentals application.
Main Flow: The user selects File -> Save to save the current data in the system to a file [S1][S2].
Subflows:
[S1] When the user selects File -> Save, a Save dialog opens to the path and filename used to open the file or used at the last file save operation [E1][E2]. The file
system browser dialog opens with a filter on the default file extension (*.md), as illustrated in Figure 3. The user enters the file name in the dialog and clicks Save
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 5/14
[E3][E4].
Figure 3: File Save dialog.
[S2] The data file is created, with each line of the file representing a rental unit, a client, or a lease. The format for the lines is described in [UC1, S3]. The order of
lines is as follows:
All rental units are written first, ordered according to their floor-room information and following the description from [UC1, S3].
Clients and leases are written next, ordered according to the description in [UC1, S3]. (Note that there is a # sign at the beginning of each client line. ) After
each client come the leases for that client, listed in order that the leases were made.
The file sample.out.md is an example of a properly formatted file generated by the save process.
Alternative Flows:
[E1] If the user clicks Cancel on the File Save dialog, the dialog closes, aborting the file save operation and thus saving no data.
[E2] If the file is new, the File Save dialog opens to the default data file storage location (that is, ./) with the filename used to load or create new data file.
[E3] If the filename entered by the user is blank, just whitespace, or does not end with .md, an error dialog opens with the message “File not saved.” The user
clicks OK, closing the dialog and aborting the file save operation.
[E4] If an error occurs while writing the data file to disk, an error dialog opens. The user clicks OK, closing the dialog and aborting the file save operation.
UseCase 3:Create a newWolf High-RiseRentals data file
Preconditions: The user has started the Wolf High-Rise Rentals application.
Main Flow: The user selects File -> New [S1]. The system creates a blank slate for the user to enter new data [S2][S3].
Subflows:
[S1] The user selects File -> New from the main menu.
[S2] If the system currently has data, the user is first prompted to save it. If the user opts to save, a save operation proceeds [UC2] prior to the next step. [E1]
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 6/14
[S3] All data currently in the system are removed. The GUI clears all of its text fields and lists.
Alternative Flows:
[E1] If the user opts not to save the data currently in the system, then the save operation is not completed.
UseCase 4: Filterthe rental unit display
Preconditions: The user has started the Wolf High-Rise Rentals application.
Main Flow: The user filters the display in the Rental Units panel [S1][S2][S3].
Subflows:
[S1] The user clicks Filter on the main GUI window to open the filter dialog, shown below in Figure 4. The user selects the radio button for the kind of rental unit to
display, or selects Any not to filter by kind (that is, to show all kinds of rental units). The user can optionally check Available Rental Units Only to limit the display
to rental units that are currently in service.
[S2] If the user clicks Apply Filters, then the display under Rental Units lists only the rental units that meet all filters specified. No rental unit is shown as selected.
Figure 4 shows filtering the rental unit display to show only Hotel Suites that are available for leasing (in service).
[S3] If the user clicks Cancel, then the display under Rental Units does not change. No rental unit is shown as selected.
Figure 4: Filtering rental units to show only Hotel Suites that are open.
UseCase 5: Add a new client
Preconditions: The user has started the Wolf High-Rise Rentals application.
Main Flow: The user adds a new client using the Add Client widgets on the lower left of the GUI window [S1][S2].
Subflows:
[S1] The user types the client’s name in the Client Name field and types the client’s id in the Client Id field as shown below in Figure 5, then clicks Add New Client.
[E1][E2]
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 7/14
Figure 5: Add a new client.
[S2] The system adds a new client with the given name and id to the end of the Clients list. The new client is displayed in the same format as the others (name
first, followed by a space then id in parentheses). No client is selected, so no corresponding client reservations are displayed. The text fields for adding a client are
cleared.
Alternative Flows:
[E1] If the user fails to type text for the client name or id, or if the user types a name and id that do not conform to the client data restrictions listed above, a dialog
opens to warn of the improper entry. No client is added.
[E2] If the user types an id that matches one of an existing client, a Duplicate ID Error dialog opens warning that there is already a client with that id. No client is
added.
UseCase 6: Add a new rental unit
Preconditions: The user has started the Wolf High-Rise Rentals application.
Main Flow: The user adds the new rental unit using in the widgets in the Add Rental Unit region of the GUI [S1][S2]. Figure 6 illustrates entry for new Conference
Room with location 14-33 and capacity 19.
Figure 6: New rental unit input.
Subflows:
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 8/14
[S1] The user selects the new rental unit kind. The user types the new rental unit floor in the Floor field, the new rental unit room in the Room field, the new rental
unit’s capacity (a positive integer) in the Capacity field. The user then clicks Add New Rental Unit.
[S2] The rental unit is displayed in the proper position on the Rental Unit list (according to current filters), where the ordering is as described in [UC1,S4]. The
input text fields are cleared and no rental unit is selected. [E1][E2]
Alternative Flows:
[E1] If any entries described in [S2] through [S4] are not valid, a dialog opens to indicate the nature of the error and no new rental unit is added.
[E2] If the new rental unit is in the same location os an exisiting rental unit, a Duplicate Rental Unit Error dialog opens to indicate a rental unit at that location
already exists, and the new rental unit is not added.
UseCase 7: View all leases for a particularrental unit
Preconditions: The system has at least rental unit [UC1][UC6].
Main Flow: The user clicks the rental unit of interest in the Rental Units display area [S1]. All reservations for the selected rental unit are listed under Leases for
Selected Rental Unit [S2].
Subflows:
[S1] The user optionally filters the rental units in order to reveal the desired one [UC5], then clicks the rental unit to select it.
[S2] The leases are listed in order of start date. If two leases have the same start date, the one with the smaller confirmation number comes before the other. Each
lease is displayed by confirmation code, then the lease start and end dates, the number of lease occupants, and finally client name and id. The format should
match the following example:
000607 | 2020-02-01 to 2020-06-30 | 6 | James Tetterton (jc1012)
Lease data are spaced so that the different pieces of data are aligned (so, for example, the vertical bars are aligned). Figure 7 shows the four leases for the 14th
floor Office from Figure 1.
Figure 7: Leases for a particular rental unit.
UseCase 8: View all leases for a particular client
Preconditions: The system has at least rental unit [UC1][UC5].
Main Flow: The user clicks the client of interest in the Clients display. All leases for the selected client are displayed under Leases for Selected Client [S1]. The display
follows formatting consistent with lease formatting in valid input files [S2].
Subflows:
[S1] When the user clicks the client of interest, leases for that client are displayed in the Leases for Selected Client area in the order that they were read from a
data file [UC1] or subsequently created {UC5].
[S2] Each lease is shown by confirmation code, the lease start and end dates, the number of lease occupants, and finally the rental unit kind and location The
format should match the following example:
000607 | 2020-02-01 to 2020-06-30 | 6 | Office: 12-15
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 9/14
Lease data are spaced so that the different pieces of data are aligned (so, for example, the last digits for the locations are in the same, final column). Figure 8
shows the three leases for the selected client, Maddy Mae.
Figure 8: Leases for the selected client.
UseCase 9: Add a new lease
Preconditions: The current rental unit data includes at least one client and at least one available rental unit [UC1][UC5][UC6].
Main Flow: The user selects the client for the new lease from the Clients display and rental unit from the Rental Units display. The user picks the lease start date,
types the duration and number of occupants, then clicks Add New Lease [S1][S2][S3][E1]. The confirmation code is determined [S4], and the lease is created and
displayed [S5].
Subflows:
[S1] The user selects the client for the reservation from the Client list and the rental unit from the Rental Units list (filtering the display as needed to select the
rental unit [UC5]).
[S2] The user clicks Lease Start Date, which opens a date picker. The user selects the date, which automatically fills the start date field.
[S3] The user enters the duration of the lease. The units for duration depend on the kind of rental unit:
Office lease: duration is in months
Hotel Suite lease: duration is in weeks
Conference Room lease: duration is in days The user types the number of lease occupants in the Number of Occupants field then clicks Add New Lease.
[S4] The confirmation code assigned to the lease is 1 + cc, where cc is the largest confirmation code of leases in the current dataset. For example, if largest code is
000025, then the code for the new lease would be 000026. Confirmation codes wrap at 999999. So if the largest code is 999999, then the new lease would have
code 000000.
[S5] The new lease is displayed in Leases for Selected Rental Unit, where leases are ordered by start date then confirmation numbers [UC1,S4] (illustrated in
Figure 7). The lease is also displayed as the last lease in Leases for Selected Client (illustrated in Figure 8).
Alternative Flows:
[E1] If the user fails to select a valid start date, a warning dialog opens and the new lease is not created.
[E2] If the user enters a duration that would result in invalid dates (out of range or in conflict with an existing lease), a warning dialog opens and the new lease is
not created.
[E3] If adding the new lease would result in a number of occupants for more people than the rental unit can accommodate, then an Error dialog opens with the
message “Insufficient capacity for proposed lease.” The lease is not created.
UseCase 10:Cancel a lease
Preconditions: The current dataset for the program includes at least one lease [UC1][UC9].
Main Flow: The user cancels the lease [S1]. The lease displays are updated [S2].
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 10/14
Subflows:
[S1] The user selects the relevant client from the Client display, then selects the lease to be canceled from the Leases for Selected Client display, then clicks Cancel
Client Lease [E1].
[S2] The lease is removed from the Leases for Selected Client display. When the rental unit for the canceled lease is selected, the canceled lease no longer appears
on the Leases for Selected Rental Unit list. It is then possible to create a lease for the rental unit for the same time frame and number of occupants as for the
canceled lease.
Alternative Flows:
[E1] If the user does not select a client and then a corresponding lease from the Leases for Selected Client list, an error dialog opens to indicate that no lease was
selected.
UseCase 11:Close aRental Unit permanently
Preconditions: The current data for the program includes at least one rental unit [UC1][UC6].
Main Flow: The user selects the rental unit to be closed and removes it from the rental units currently in the system [S1]. All leases for that newly removed rental unit
are canceled [S2].
Subflows:
[S1] The user optionally filters the rental unit display so that the rental unit to be closed is listed among the Rental Units [UC4], selects the rental unit from the
Rental Units display, then clicks Close Unit & Cancel All Associated Leases.
[S2] The rental unit is removed from the system. All leases for that rental unit are canceled. After the cancellation, the GUI shows no selected client and no
selected rental unit. (When a client is selected, none of the client’s leases will display the closed rental unit as the property for the lease.) It is then possible to
create a new rental unit with the same location as the newly closed rental unit.
Alternative Flows:
[E1] If the user does not select a rental unit to be closed, an error dialog opens to indicate that none was selected.
UseCase 12:Remove a rental unitfrom service (temporary closure)
Preconditions: The current data for the program includes at least one rental unit [UC1][UC6].
Main Flow: The user selects the rental unit to be removed from service, picks a service cutoff date, and removes the rental unit from service starting on that date.
[S1]. Each of the rental unit’s leases are adjusted accordingly [S2]. The Rental Units display reflects the unavailable status of the rental unit [S3].
Subflows:
[S1] The user optionally filters the rental unit display so that the rental service is listed among the Rental Units [UC4], then clicks Out of Service Date and picks the
cutoff date for taking the unit out of service, as ilustrated in Figure 9.
Figure 9: Picking a date.
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 11/14
The user then clicks Remove Unit from Service. [E1][E2]
[S2] Each of the rental unit’s leases that start on the cutoff date or later are canceled. Every other lease where the cutoff date is on or before the lease’s end date is
shortened to end on or before the cutoff date as follows:
If the rental unit is a hotel suite and the cutoff date is a Sunday, then the lease’s end date is set to the cutoff date. If the cutoff date is not a Sunday, the end date
is set to the Sunday immediately before the cutoff date. If either of these lease modifications would force the lease to cover only one day rather than at least
one week, then the lease is canceled.
If the rental unit is a conference room, the lease end date is set to the day before the cutoff date.
If the rental unit is an office, the lease end date is set to the last day of the month immediately before the cutoff date. If that would force the lease to have an
end date before its start date, the lease is canceled. Figure 10 shows an office with 4 leases. After the user clicks the button to remove the office from service,
only the third lease would remain unchanged. The end date for the first two leases would be set to 2020-10-31 and the last lease would be canceled altogether.
Figure 10: Taking an office out of service.
[S3] The Rental Units area now displays Unavailable beside the data for the rental unit taken out of service. No rental unit is selected.
[S4] If there is a selected client and that client had a lease that was either canceled or changed by [S2], then the list in Leases for Selected Client is updated to
reflect the changes.
Alternative Flows:
[E1] If the user does not select a rental unit to be taken out of service, an error dialog opens to indicate that none was selected.
[E2] If the user does not select a cutoff date, an error dialog opens telling the user to “Select a date to stop the service.”
UseCase 13:Return aRental Unitto service
Preconditions: The current data for the program includes at least one rental unit that is out of service [UC12].
Main Flow: The user selects the desired out-of-service rental unit and returns it to service [S1][E1]. The Rental Units display is updated accordingly [S2].
Subflows:
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 12/14
[S1] The user optionally filters the rental unit display so that the rental unit to be returned to service is listed among the Rental Units [UC4]. The user then selects
the rental unit and clicks Return Unit to Service.
[S2] The Rental Units display shows the selected rental unit without the Unavailable modifier.
Alternative Flows:
[E1] If the user does not select a rental unit to be returned to service, an error dialog opens to indicate that none was selected.
UseCase 14:Shutdown
Preconditions: The user has started Wolf High-Rise Rentals application.
Main Flow: The user opts to exit the program [S1] [S2] [S3].
Subflows:
[S1] The user closes the main window to exit the program or selects File -> Exit.
[S2] If the system currently has data, the user is first prompted to save it. If the user opts to save, a save operation proceeds [UC2] prior to stopping.
[S3] The program stops execution with no errors or exceptions.
Design
Trying to jump from requirements right into coding without doing some design first is bound to lead to trouble. We will eventually make you implement our design,
but first you need to propose your own.
What you must do: DesignRationale and UML diagram
You must design an application that satisfies the requirements of the Wolf High-Rise Rentals application. You will create a design proposal that shows the objects,
their states and behaviors, and the relationships among the objects needed to implement the requirements. Your design must be described in document containing a
design rationale and a UML class diagram.
Your design should:
utilize the Model-View-Controller (MVC) design pattern (see the note about MVC, below),
utilize at least one other design pattern,
contain at least one interface or abstract class,
contain at least one inheritance relationship, and
contain at least one composition relationship.
You should answer the following technical questions in your design document as part of the rationale:
1. What objects are important to the system’s implementation and how do you know they are important?
2. What data are required to implement the system and how do you know these data are needed?
3. Are the responsibilities assigned to an object appropriate for that object’s abstraction and why?
4. What are the relationships between objects (such as inheritance and composition) and why are these relationships are important?
5. Have you identified any design patterns appropriate for implementing the system (i.e., the Singleton Pattern)? What are they and why are they appropriate?
6. What are the limitations of your design? What are the constraints of your system?
MVC Note
Java Swing, the user interface (UI) libraries for Java, does not follow the strictly traditional definition of MVC. Instead, Java Swing utilizes what might be called a
separable model architecture.This means that the model is separate and distinct from the view/controller classes that make up the UI. Your design must focus on the
model. In your UML class diagram, you should represent the UI as a class with no state or behavior. Your diagram should also show which class(es) your UI will
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 13/14
interact with through some type of composition/aggregation/association relationship. The relationship between your model and the UI must be justified in your
design rationale.
When thinking about the relationships between the UI and your model, consider the following questions:
1. What are the data and behaviors of your model that will be shown through the UI?
2. How does the UI get those data to display; what methods of the model must be called?
Design Proposal and Rationale Submission Format
Submit your design proposal via Gradescope under the assignment named P2P1: Design. Note that we will grade the last submission to Gradescope.
Use the provided design proposal template as a starting point for your design proposal. Use a UML diagramming tool (options are listed the Software Development
Practices notes) to create your UML diagram. Incorporate your UML diagram into your written proposal (using an editing tool such as MS Word) and save the entire
document as a PDF. Alternatively, create a PDF for the design proposal and another PDF for the UML diagram, then append the diagram to the proposal to make a
single PDF document.
Need a little more direction?
See the following example design proposal: Sample Design Proposal.
Testing
This project requires you to do white box and black box testing. You can defer white box testing until Part 2 of this project. But now, you need to prepare some black
box test cases.You must create a black box test plan that describes five test cases that will determine if the finished program satisfies the requirements. Write the
tests before you begin development to clarify the inputs to and outputs from the system. Each test must demonstrate that the program satisfies a scenario from the
requirements. A scenario is one major path of functionality as described by the requirements.
Assignment
You will write at least five (5) tests for this project. Use the provided black box test plan template to describe your tests. Each test must be repeatable and specific; all
input and expected results values must be concrete. Additionally, you must provide instructions for how a tester would set up, start, and run the application. (What
class from your design contains the main method that starts your program? What do the input files contain?) Describe the instructions at a level where anyone using
Eclipse could run your tests.
Format
Use the provided template as a starting point for your black box test plan. Save your BBTP as a PDF. Submit the PDF to Gradescope under the assignment named
P2P1: BBTP.
Need a little help?
See the following example black box test plan: Sample Black Box Test Plan.
Deployment
For this class, deployment means submitting your work for grading. For Part 1 of this programming assignment, you must submit two PDF documents:
1. Design document with incorporated UML class diagram.
2. Black box test plan document.
Make sure that your submissions satisfy the grading rubrics.
2020/3/24 CSC 216 SE Materials
https://pages.github.ncsu.edu/engr-csc216-staff/CSC216-SE-Materials/projects/project2/project2-part1.html 14/14
You should submit the documents for Project 2 Part 1 to Gradescope. Please follow the Submitting your PDF on Gradescope instructions, including selecting page for
each question (grade category). We will grade the last submission made to Gradescope before the deadline.
Submission Reminders
The electronic submission deadline is precise. Do not be late. You should count on last minute system failures (your failures, ISP failures, or
Gradescope failures). You are able to make multiple submissions of the same file. (Later submissions to a Gradescope assignment overwrite the
earlier ones.) To be on the safe side, start submitting your work as soon as you have completed a substantial portion.
Project 2, Part 2: Wolf High-Rise Rentals
Published with GitHub Pages