联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Database作业Database作业

日期:2018-10-03 09:51

Selected Scenarios for HRIS

Use Case #8: User_views_StaffList

Requirement:

The system needs to be able to generate an interactive list of staff employed by the School.

Overview:

The user views the staff list when the application first loads or when switching to the

staff list view. This list should display names in the format ‘Family Name, Given

Name (Title)’, as in ‘Einstein, Albert (Dr)’, and be ordered alphabetically by family name. In addition to using the list to access staff details, the user can also filter the

list, either by a staff member’s employment category or (if time available in project)

partial name match, or both. For basic filtering, the user should be able to list all

staff, or just those who are academic, technical, administrative, or casual. If

implementing name matching then the list contents would be restricted to show

only those staff whose given name or family name contains the text entered by the

user. Partial matches that span combinations of given and family name do not need

to be supported, so look for matches within both names independently.

Preconditions:

1. HRIS database exists and is populated with data

Scenario:

Action Software Reaction

1. User starts application 1. System creates MainView with StaffTab visible, which contains the StaffListView and StaffDetailsView

2. System retrieves basic staff details from database:

name, title and category

3. Staff are sorted alphabetically by family name

4. System shows names in StaffListView

2. User selects staff tab 1. System shows staff tab

3. User selects a staff category (including

the ‘all staff’ category) from a dropdown list

of categories

1. System updates current set of filters to include

selected category

2. System creates temporary list of staff based on

current set of filters (category or name, if present)

3. System refreshes the StaffListView with the filtered

list

3. User modifies text in filter-by-name text

field

1. No reaction; not supporting automatic refresh of list

contents

4. User presses enter key inside filter-byname

text field

1. System updates current set of filters to include given

text or, if search text is blank, removes any existing text

from set of filters

2. System creates temporary list of staff based on

current set of filters (category or name, if present)

3. System refreshes the StaffListView with the filtered

list

5. User selects staff name in list See UC16_User_selects_StaffDetails

2/5

Scenario Notes:

Actions 1 is a precondition for all others. The other actions may occur in any order,although it is more typical for Action 3 to be followed by Action 4 (the user pressing enter to trigger name-based filtering). The reaction to Actions 2 and 4 produces the intersection of the two filters.

Post Conditions

StaffListView displays all or a subset (particular category or with matching names) of staff names

Required Views: (GUIs)

MainView containing StaffTab (list + detail), and StaffListView

Exceptions:

1. If the database is inaccessible or another unexpected error occurs then the

system should respond with a message to this effect, requesting that the user

close and restart the software. (In a later release the system should be made

robust to such exceptions and be able to reload the database without being

restarted.)

Use Cases utilised

UC16_User_selects_StaffDetails

3/5

Use Case #16: User_selects_StaffDetails

Requirement:

When the users selects a name in the list the system will show more details about the staff member (referred to as the Staff Details view), which should include: Name;

Campus; Phone Number; Room Location; Email Address; Photo; Consultation hours; Table of

units he or she is involved with in the current semester.

Overview:

From either the staff list + detail or unit timetable displays the user can select a staff

member to view their details (the second will be implemented if time allows). In the first case they select the staff member’s name in the list, while in the second case they select a staff member in an entry in the timetable.

In addition to the basic details about each staff member, if development time allows then staff member’s current availability should also be displayed: ‘teaching’ (with details of the unit code and room) if they are in a timetabled class; ‘consulting’ if it is during their consultation times; and ‘free’ otherwise.

Preconditions:

1. HRIS database exists and is populated with data

Scenario:

Action Software Reaction

1. User selects staff name in StaffListView 1. System retrieves any additional details about the

staff member not previously loaded

2. System determines availability status of staff

member by comparing current system time with staff

member’s consultation times and timetabled classes

he or she teaches

3. If not previously loaded system retrieves list of

units the staff member is involved in teaching

4. System enlarges application window size if too

small to display StaffDetailView.

5. System presents staff details and availability

information in StaffDetailView

2. User selects staff name in timetable entry

in UnitTimetableView

1. System switches to StaffTab

2. Remaining reactions as per response to action (1)

3. User clicks ‘Activity Grid’ button See UC19_User_shows_ActivityGrid

Scenario Notes:

Actions 1 or 2 are independent triggers for viewing staff details.

Post Conditions

StaffDetailView displays details

Required Views: (GUIs)

StaffTab

StaffListView

StaffDetailsView

UnitTimetableView

Exceptions:

4/5

1. If the database is inaccessible or another unexpected error occurs then the system should respond with a message to this effect, requesting that the user close and restart the software. (In a later release the system should be made robust to such exceptions and be able to reload the database without being restarted.)

Use Cases utilised

UC8_User_views_StaffList (precondition for action 1)

UC19_User_shows_ActivityGrid

5/5

Example low fidelity prototypes

These represent one possible way of presenting parts of the HRIS application.

List area Detail area

Staff Units

MainView

HeatMaps

Doe, Jane (Dr)

Doe, Jane (Ms) Jane Doe

Doe, Jane (Dr)

Doe, Jane (Ms)John Smith

Smith, John (Dr)

Smith, John (Dr) John

Smith, John (Dr)

Smith, John (Mr)

Show:

All

Academic

Technical

Administrative

Casual

All

StaffListView

Filter by name: j

KIT206 Software Design and Development

KIT107 Programming

Name: Dr Jane Doe

Campus: Hobart

Phone: 6226 1234

Room: C400

Email: jane.doe@utas.edu.au

Consultation hours:

0900-1100 Tuesday

1300-1500 Friday

Teaching this semester:

StaffDetailsView

Activity Grid

View Teaching Database

The bidirectional dependency is because views

pass messages back to controllers

Control

HRIS models::Package diagram Example UML diagrams for the HRIS

Staff

+id: integer

+FamilyName: string

+GivenName: string

+title: string

+Campus: Campus

+Room: string

+Email: string

+Photo: URL

+Category: Category

+Availability(when: DateTime): Availability

enumeration?

Category

Academic

Technical

Administrative

Casual

Event

+Day: DayOfWeek

+Start: Time

+End: Time

+has consultation times

Unit

+Code: string

+Title: string

StaffController

(from Control)

UnitController

(from Control)

Details have

been omitted

from these

'imported'

classes

enumeration

Campus

Hobart

Launceston

UnitClass

+Room: string

+Campus: Campus

+taught by

+is taught via

+coordinated by

+teaches part of

enumeration

Availability

Free

Consulting

Teaching

WeeklyAvailability

+table of

This is ONE option for a model suitable for

display in the Activity Grid. Internally this

may have a 2D array or a collection of

entries per hour of the day (i.e., rows of

the activity grid)

EventTable

+maxFrequency: integer

+FrequencyAt(hour: integer, day: DayOfWeek): integer

This is ONE possible way or

representing heat map and maybe

clash map data. Details of the internal

data structure used are not shown.

Note that this is a a model class and

has no graphical presence other than

that presented by some view class in

your system.

+all staff

+currently displayed

+all units

+currently displayed

REWORK THIS TEXT: In an ideal OO model (whch is what we were looking for in Assignment 1)

there would be

associations between Staff and Unit and UnitClass (you may have called yours Lesson).

To enable independent loading of entities from the database these connections have

been replaced in this sample model with identifying information in attributes (each Unit

has the integer ID of its coordinator, each UnitClass has the integer ID of the staff member

teaching it, each Staff member has a collection of unit codes).

(In the future, when you use the Entity Framework to manage object persistence in a

database, this will not be necessary.)

This additional

collection will become

clear when we study

WPF and data binding

AN OPTION TO CONSIDER:

Depending on how much you plan to implement you

may wish to replace the 'taught by', 'teaches part of'

and 'coordinated by' associations with attributes

containing identifying information instead of

references to actual objects, so rather than

connecting those objects at runtime you load a new

copy of the relevant object from the database as

needed, or pass the identifying number or string to

another part of the program for it to find the actual

object previously loaded.

For example, this could work for generating a list of

units a staff member is involved in teaching, which

ideally should be a genuine collection of Unit objects,

but could equally be a collection of strings (the user

won't know). However, this quick and easy way of

doing the connections makes some later tasks more

challenging.

HRIS models::Teaching::Teaching classes

StaffController

+currNameFilter: string

+currCategoryFilter: Category

+LoadStaff()

+FilterBy(category: Category)

+FilterByName(name: string)

-ApplyFilters()

+ShowStaffDetails(s: Staff)

UnitController

+LoadUnits()

+UnitsFor(s: Staff)

These control class will need

additional methods to those shown.

You may also find that a different set

of methods suits your

implementation better.

+uses

Given Staff and Units interact, you may

have your controllers talk to each other to

get relevant information

You may have one or more additional

control classes relating to generation of

heat and clash maps

HRIS models::Control::Control classes

SchoolDBAdapter

+FetchBasicStaffDetails(): Staff[*]

+CompleteStaffDetails(s: Staff): Staff

+FetchUnits(): Unit[*]

+FetchClasses(u: Unit): UnitClass[*]

This set of operations is for an optimised pattern of

database retrievals, where objects containing the bare

minimum of details are loaded first, then their details are

filled in later, as needed.

StaffAdapter

UnitAdapter

Optional: these could probably be

rolled into the SchoolDBAdapter; they

would contain similar operations to

what I've shown in the

SchoolDBAdapter at the moment

The adapter provides access to the School

Database and can load collections of Staff,

Units and UnitClasses or complete the details of

individual items

HRIS models::Database::Database classes

MainView

+ShowStaffTab()

StaffListView StaffDetailsView

+SetModel(s: Staff)

You were not expected to include

these library classes in your design

ListBox

+names list

ComboBox

+category drop down

+teaching list

UnitListView

TextBox

+name search

UnitTimetableView

You might not realise all of these as distinct

classes (UserControls in WPF), but you will likely

have greater complexity in your GUI than these

classes describe

Essentially

your main

window

+units list

ActivityGrid

May be built

from a table or

list control

(with suitable

formatting

applied)

One option for displaying

tabular information is

actually to use a ListBox

with a suitable

DataTemplate

+timetable table

ClashMap

HourDayColourMap

HeatMap

HeatMapView

One possible arrangement

of classes for different kinds

of colour grid view

StaffTab HeatMapsTab UnitTab

HRIS models::View::View classes

: User

App: MainView

: StaffListView

: StaffController : SchoolDBAdapter

1 : starts system 2 :

create

3 : LoadStaff()

4 : FetchBasicStaffDetails()

5 : staff 6 : staff

7 : selects staff category 8 : FilterBy(category: Category)

9 : ApplyFilters()

10 : list updated

11 : presses enter in name field

12 : FilterByName(name: string)

13 : ApplyFilters()

14 : list updated

HRIS models::Sequence diagrams::UC8_User_views_Staff::UC8 sequence diagram

: User

: StaffListView : UnitTimetableView App: MainView : StaffController : SchoolDBAdapter : StaffDetailsView

opt s is incomplete

opt s is incomplete

Frames showing optional or alternative actions are

an advanced diagramming technique we haven't

covered and you were not expected to use


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp