Computer Science
University of Missouri Kansas City Classroom Scheduling Research Paper

University of Missouri Kansas City

Question Description

I need help with a Computer Science question. All explanations and answers will be used to help me learn.

For information, we will be using a standard three tier architecture

1- Fronted client

2- Web application

3- Server/ db

and the main file u need to do is call (Design Template) and the examples are from last years, so this just for helping you, please do not copy anything from examples.

And the as you did before if u want to see what the project is about see the file called (AlternateScheduling Project)

Unformatted Attachment Preview

Classroom Scheduling There are 2 main sections to this application; administration and generation. Administration would set the rules, classes, professors, rooms and other settings and configurations for the application. Generation would generate a schedule of professors teaching classes in given rooms given the rules and constraints. Administration Some items would need to evolve from semester to semester, while others would mostly remain unchanged for longer periods of time. Each semester, rules, classes, professors and other items may need to be copied from a previous semester. Classes, professors, and rooms are fairly straight forward. They just need creat/edit/update/delete functionality. Classes may include the section for each class as an atomic item, or the class may have sub items to represent the sections. The administrator will assign professors to teach certain classes, so the classroom scheduling will be combinatorial of Class/Professors X room X time. Rules The rules will need to be much more dynamic. Since rules have to be very flexible, it may need its own rule language to be defined, or the design should include plug-ins to allow quick and easy addition of new situations. Either way proper design patterns should be employed. Rules have varying degrees of granularity to be applied. A rule may be that Teacher X does not want to teach Class Z after 7pm on M/W/ or Fridays. The rule could also be relaxed to simply say that no teacher should teach any class after 7pm on M/W/F. Types of rules Intra Class/Teacher/Room Rules Intra Class/Teacher/Room Rules are rules that do not involve other combinations of classes, teachers and rooms. Examples of rules • Teacher X does not want to teach on M/W/F before 4, or on T/TH after 5 Inter Class/Teacher/Room Rules Inter Class/Teacher/Room Rules are rules that do not involve other combinations of classes, teachers and rooms. Examples of rules • Teacher Y cannot teach 3 classes back to back • • • Class Z should not be at the same time as Class Y ( this may be a specific section or all sections ) Class Z should follow Class Y (this may be a specific section or all sections) Teacher X and Teacher Y should teach on the same days or times preferable. Rule weighting Some rules can be relaxed if necessary, so a weighting system may need to be incorporated. An infinite weight might indicate the rule has to be enforced and no schedule can ever violate this rule. A low number would indicate that it’s not desirable, but we could allow this under some circumstances. When comparing different schedules, a lower total weighted value would therefore be the more appropriate schedule. Generate Schedule When all the rules a given, the user can begin generating schedules. Since this will likely be a timeconsuming process the scheduler should likely save the state of a given job. That way if the process needs to stop then it could restart where it left off. The administrator may want to be able to view schedules that are created as the process begins running. Stretch Goals • • • Distributed processing to speed the lookup through the search space Containerization. Being able to spin up 50 servers to work in a distributed manner could help solve the problem quickly. Multiple users with different views and responsibilities. Some users may only be able to view the completed schedule. Others may only be able to edit classes etc. Version: 1.0 [Project Name] Architecture/Design Document Table of Contents 1 INTRODUCTION ........................................................................................... 3 2 DESIGN GOALS ........................................................................................... 4 3 SYSTEM BEHAVIOR .................................................................................... 5 4 LOGICAL VIEW ............................................................................................ 5 4.1 High-Level Design (Architecture) ....................................................................... 5 4.2 Mid-Level Design .................................................................................................. 6 4.3 Detailed Class Design ............................................................................................ 6 5 PROCESS VIEW ........................................................................................... 6 6 DEVELOPMENT VIEW ..................... ERROR! BOOKMARK NOT DEFINED. 7 PHYSICAL VIEW .......................................................................................... 6 8 USE CASE VIEW .......................................................................................... 6 Page 1 of 6 Version: 1.0 Change History Version: Modifier: Date: mm/dd/yyyy Description of Change: ______________________________________________________ Version: Modifier: Date: mm/dd/yyyy Description of Change: Page 2 of 6 Version: 1.0 1 Introduction Architecture and Design The purpose of the architecture/design document is to explain the organization of the code. A well-written architecture document will make it easier for new programmers to become familiar with the code. The architecture/design document should identify major system components and describe their static attributes and dynamic patterns of interaction. Software architecture and designs are typically expressed with a mix of UML models (class and sequence diagrams being the two most common) and prose. Dataflow diagrams are also helpful for understanding the interaction between components and overall flow of data through the system. About this Template This template suggests one way of documenting a software system’s architecture/design. You aren’t required to include every section in this template nor all the content in the sections you do include. However, the document you do submit should pass the following checklist: • Are design objectives clearly stated? For example, if performance is more important than reusability, this should be made clear at the start of the design specification. • Does the architecture partition the implementation into clearly defined subsystems or modules with well-defined interfaces? • Does the architecture express in a clear way the main patterns of communication between subsystems and modules? • Does the architecture satisfy the requirements? • Is the architecture traceable to requirements? • Any models created should either be expressed with a well-known modeling language, or if a well-known modeling language isn't used, the syntax and semantics of the symbols that are used should be defined. This document describes the architecture and design for the application being developed for . . Page 3 of 6 Version: 1.0 The purpose of this document is to describe the architecture and design of the application in a way that addresses the interests and concerns of all major stakeholders. For this application the major stakeholders are: • • • • Users and the customer – they want assurances that the architecture will provide for system functionality and exhibit desirable non-functional quality requirements such as usability, reliability, etc. Developers – they want an architecture that will minimize complexity and development effort. Project Manager – the project manager is responsible for assigning tasks and coordinating development work. He or she wants an architecture that divides the system into components of roughly equal size and complexity that can be developed simultaneously with minimal dependencies. For this to happen, the modules need well-defined interfaces. Also, because most individuals specialize in a particular skill or technology, modules should be designed around specific expertise. For example, all UI logic might be encapsulated in one module. Another might have all business logic. Maintenance Programmers – they want assurance that the system will be easy to evolve and maintain on into the future. The architecture and design for a software system is complex and individual stakeholders often have specialized interests. There is no one diagram or model that can easily express a system’s architecture and design. For this reason, software architecture and design is often presented in terms of multiple views or perspectives [IEEE Std. 1471]. Here the architecture of the application is described from 4 different perspectives [1995 Krutchen]: 1. Logical View – major components, their attributes and operations. This view also includes relationships between components and their interactions. When doing OO design, class diagrams and sequence diagrams are often used to express the logical view. 2. Process View – the threads of control and processes used to execute the operations identified in the logical view. 3. Development View – how system modules map to development organization. 4. Use Case View – the use case view is used to both motivate and validate design activity. At the start of design the requirements define the functional objectives for the design. Use cases are also used to validate suggested designs. It should be possible to walk through a use case scenario and follow the interaction between high-level components. The components should have all the necessary behavior to conceptually execute a use case. 2 Design Goals There is no absolute measure for distinguishing between good and bad design. The value of a design depends on stakeholder priorities. For example, depending on the circumstances, an efficient design might be better than a maintainable one, or vise versa. Page 4 of 6 Version: 1.0 Therefore, before presenting a design it is good practice to state the design priorities. The design that is offered will be judged according to how well it satisfies the stated priorities. The design priorities for the application are: • • 3 The design should minimize complexity and development effort. The design should . System Behavior The use case view is used to both drive the design phase and validate the output of the design phase. The architecture description presented here starts with a review of the expect system behavior in order to set the stage for the architecture description that follows. For a more detailed account of software requirements, see the requirements document. 4 Logical View The logical view describes the main functional components of the system. This includes modules, the static relationships between modules, and their dynamic patterns of interaction. In this section the modules of the system are first expressed in terms of high level components (architecture) and progressively refined into more detailed components and eventually classes with specific attributes and operations. 4.1 High-Level Design (Architecture) The high-level view or architecture consists of major components: Example: System Architecture Page 5 of 6 Version: 1.0 • • • • • The GPS device provides the user’s location on campus (longitude and latitude coordinates). In basic mode, the user’s position is used to decide which buildings to announce. The Database is a central repository for data on buildings, their locations and associated audio segments. The Audio Player controls playback of audio files. Given a position on earth, the Mapping Logic will calculate nearby buildings. The Application Control Logic is the main driver of the application. It presents information to the user and reacts to user inputs. 4.2 Mid-Level Design 4.3 Detailed Class Design 5 Process View 6 Physical View 7 Use Case View Page 6 of 6 Version: 1.0 Pocket Campus Tour Architecture/Design Document Table of Contents 1 INTRODUCTION ........................................................................................... 3 2 DESIGN GOALS ........................................................................................... 4 3 SYSTEM BEHAVIOR .................................................................................... 4 4 LOGICAL VIEW ............................................................................................ 5 4.1 High-Level Design (Architecture) ....................................................................... 5 4.2 Mid-Level Design .................................................................................................. 6 4.3 Detailed Class Design ............................................................................................ 9 5 PROCESS VIEW ......................................................................................... 10 6 DEVELOPMENT VIEW ............................................................................... 11 7 PHYSICAL VIEW ........................................................................................ 11 8 USE CASE VIEW ........................................................................................ 12 Page 1 of 12 Version: 1.0 Change History Version: 0.3 Modifier: Eddie Burris Date: 4/5/2006 Description of Change: Added sequence diagrams for self-directed mode. ______________________________________________________ Version: 0.2 Modifier: Eddie Burris Date: 3/20/2006 Description of Change: Added process view and use case view. Also added sequence diagram to logical view. ______________________________________________________ Version: 0.1 Modifier: Eddie Burris Date: 3/15/2006 Description of Change: Initial rough draft. Contains logical view (high-level modules only) and development view. ______________________________________________________ Page 2 of 12 Version: 1.0 1 Introduction This document describes the architecture and design for the Pocket Campus Tour application being developed for the University of Missouri—Kansas City (UMKC). Pocket Campus Tour is a PDA application that turns a GPS enabled PDA into a personal tour guide providing audio commentary on the buildings and notable structures on the UMKC campus. Pocket Campus Tour has a roaming mode that requires zero computer skills. Visitors simply carry the device with them as they stroll the campus and it provides audio commentary relevant to the visitor’s current location. For those who can’t or don’t want to stroll the campus, the application also offers a self-directed mode where the same position-dependent audio commentary is available from an interactive onscreen campus map. The purpose of this document is to describe the architecture and design of the Pocket Campus Tour application in a way that addresses the interests and concerns of all major stakeholders. For this application the major stakeholders are: • • • • Users and the customer – they want assurances that the architecture will provide for system functionality and exhibit desirable non-functional quality requirements such as usability, reliability, etc. Developers – they want an architecture that will minimize complexity and development effort. Project Manager – the project manager is responsible for assigning tasks and coordinating development work. He or she wants an architecture that divides the system into components of roughly equal size and complexity that can be developed simultaneously with minimal dependencies. For this to happen, the modules need well-defined interfaces. Also, because most individuals specialize in a particular skill or technology, modules should be designed around specific expertise. For example, all UI logic might be encapsulated in one module. Another might have all logic related to GPS coordinates. Maintenance Programmers – they want assurance that the system will be easy to evolve and maintain on into the future. The architecture and design for a software system is complex and individual stakeholders often have specialized interests. There is no one diagram or model that can easily express a system’s architecture and design. For this reason, software architecture and design is often presented in terms of multiple views or perspectives [IEEE Std. 1471]. Here the architecture of the Pocket Campus Tour application is described from 4 different perspectives [1995 Krutchen]: 1. Logical View – major components, their attributes and operations. This view also includes relationships between components and their interactions. When doing OO design, class diagrams and sequence diagrams are often used to express the logical view. 2. Process View – the threads of control and processes used to execute the operations identified in the logical view. Page 3 of 12 Version: 1.0 3. Development View – how system modules map to development organization. 4. Use Case View – the use case view is used to both motivate and validate design activity. At the start of design the requirements define the functional objectives for the design. Use cases are also used to validate suggested designs. It should be possible to walk through a use case scenario and follow the interaction between high-level components. The components should have all the necessary behavior to conceptually execute a use case. 2 Design Goals There is no absolute measure for distinguishing between good and bad design. The value of a design depends on stakeholder priorities. For example, depending on the circumstances, an efficient design might be better than a maintainable one, or vise versa. Therefore, before presenting a design it is good practice to state the design priorities. The design that is offered will be judged according to how well it satisfies the stated priorities. The priorities for the design that follows are: • • • 3 The design should minimize complexity and development effort. The design should take into account the development environment which is 6-7 small teams with complementary skills that work across time and space (teams are not co-located). Ideally the design should result in 6-7 loosely coupled components of equal size and complexity. If the components have well-defined interfaces each team can work independently coding to the interfaces of the other components. The concerns of each component should be narrow so that each team can specialize on a particular technology or skill. The design shouldn’t inhibit reusability. The two previous design goals are more important, but the ability to reuse components is also desirable. System Behavior The use case view is used to both drive the design phase and validate the output of the design phase. The architecture description presented here starts with a review of the expect system behavior in order to set the stage for the architecture description that follows. For a more detailed account of software requirements, see the requirements document. Page 4 of 12 Version: 1.0 Welcome Basic Tour “Welcome to basic mode. In basic mode …” “Searching for satellites …” Self-Dir Mode Mode Mode Mode + - + Figure 1 System Behavior 4 Logical View The logical view describes the main functional components of the system. This includes modules, the static relationships between modules, and their dynamic patterns of interaction. In this section the modules of the system are first expressed in terms of high level components (architecture) and progressively ...
Purchase answer to see full attachment
Student has agreed that all tutoring, explanations, and answers provided by the tutor will be used to help in the learning process and in accordance with Studypool's honor code & terms of service.

Final Answer

HElloPFA the solution. Please let me know if you need any changes, I have used Microsoft Visio to make the diagrams.

Version: 1.0

Classroom Scheduling Application
Architecture/Design Document

Table of Contents
1

INTRODUCTION ............................................................................................ 3

2

DESIGN GOALS ............................................................................................ 4

3

SYSTEM BEHAVIOR ..................................................................................... 4

4

LOGICAL VIEW ............................................................................................. 5

4.1

High-Level Design (Architecture) ........................................................................ 5

4.2

Mid-Level Design ................................................................................................... 6

4.3

Detailed Class Design ............................................................................................. 9

5

PROCESS VIEW............................................................................................ 9

6

PHYSICAL VIEW ......................................................................................... 10

7

USE CASE VIEW ......................................................................................... 11

Page 1 of 11

Version: 1.0

Change History
Version:
Modifier:
Date: mm/dd/yyyy
Description of Change:
______________________________________________________
Version:
Modifier:
Date: mm/dd/yyyy
Description of Change:

Page 2 of 11

Version: 1.0

1

Introduction

The primary purpose of the project on developing the Classroom Scheduling application
is to reduce the human-effort to class schedules manually for an educational institute or a
university. While making a classroom schedule, there are several rules, constraints,
preferences to be followed and it becomes a complex and lengthy job for a human to
prepare accurate schedules. So, the web based Classroom scheduling application is being
developed to make the process easier, faster, more accurate, and user-friendly. Thus, it
will help significantly in saving time, effort, and co...

nava (382)
New York University

Anonymous
Top quality work from this tutor! I’ll be back!

Anonymous
It’s my second time using SP and the work has been great back to back :) The one and only resource on the Interwebs for the work that needs to be done!

Anonymous
Thanks, good work

Studypool
4.7
Trustpilot
4.5
Sitejabber
4.4
Similar Questions
Related Tags