The article directories

  • 1. Document introduction
    • 1.1 Purpose
    • 1.2 Document Scope
    • 1.3 Target Audience
    • 1.4 Document Copyright
  • 2. Project introduction
    • 2.1 Project Name
    • 2.2 Project Composition
    • 2.3 Necessary knowledge system of the project
  • 3. Functional requirements
    • 3.1 Function Summary
  • 4. Non-functional requirements
  • 5. Overall system design
    • 5.1 Overall System Framework (Reference)
    • 5.2 System Flow Chart (Reference)
  • 6. Design the key flow of communication program
    • 6.1 Handling disconnection and reconnection
    • 6.2 Detection and treatment of sticky/half-packet
    • 6.3 Detecting and handling missing files
  • 7. Project approval criteria
    • 7.1 Project Team
    • 7.2 Development Period Requirements
    • 7.3 Coding Specification Requirements
  • 8. Assessment criteria
    • 8.1 The total score of the project is 100 points, and the assessment proportion of each module is as follows:
    • 8.2 Development progress assessment criteria
    • 8.3 Functional assessment criteria
      • 8.3.1 client
      • 8.3.2 server
      • 8.3.3 Stress test
      • 8.3.4 Network Security
    • 8.4 Assessment criteria for final items
    • 8.5 Daily assessment criteria

1. Document introduction

1.1 Purpose

This project based on the Linux advanced development “, “senior Java development foundation”, “senior web development foundation” to learn the knowledge system, on the basis of comprehensive application of knowledge as a starting point in system, the design stage of a student’s learning program, can let the students comprehensive application, consolidate and upgrade phase of learning content, In the actual combat process of the project, the knowledge system will run through, integrate, accumulate project development experience, and pass the learning results of the project inspection stage.

From the perspective of functional requirements, under the guidance of the goal of comprehensive application of knowledge system, this document describes the functional requirements and functional constraints of the project development front in detail, providing a detailed functional requirements description document for students and evaluation teams in the actual project.

1.2 Document Scope

This document describes the functional requirements of the project, functional design objectives, outline design objectives, outline design, design constraints, and format requirements for various human-computer interactions.

1.3 Target Audience

Students involved in project development, teams involved in evaluation, and other readers who want to learn about the project.

1.4 Document Copyright

This document belongs to CSDN blogger “look, the future”, if you need to reprint, please private message me.

2. Project introduction

2.1 Project Name

Project Name: Intelligence-gathering and Intelligent Curriculum project.

2.2 Project Composition

This project realizes the function of automatically arranging courses in the curriculum schedule. The project consists of intelligent curriculum front end, intelligent curriculum computer client, intelligent curriculum server, intelligent curriculum test end and other parts.

The front-end uses web server construction technology, the front-end communication framework based on TCP Socket encapsulates the communication components, dynamic array and other technologies, and the back-end processing system framework based on Nginx, SSM architecture, MySQL database technology and thread pool technology.

The project adopts the team development mode, members not only apply the technology in the actual combat of the project, accumulate project experience and accumulate the experience of team cooperation.

2.3 Necessary knowledge system of the project

Through study, members of the project should master the following skills:

Web server construction Web server and back-end communication technology Nginx load balancing technology multi-process or multi-thread development technology inter-process communication: signal, pipeline, message queue, shared memory, TCP distributed communication between multi-process and multi-thread synchronization technology: Semaphores, mutexes, condition variables, etc. Master UI design and be familiar with database technologyCopy the code

3. Functional requirements

3.1 Function Summary

Module name Functional category subfunction
Client (Administrator) System startup Local cloud startup, initialization interface, software version and other initialization data synchronization
The user login User Enters the user name and password to log in
Change the password Enter the user name, old password, and new password to change the password
Teachers list Gets a list of teachers that should currently appear
Arranging the query Query the scheduling of a specified class
Arranging approval Do you agree with the class scheduling plan
System Settings Configure the IP address and port of the service
Client (Teacher) Version 1.0 is not available
Web side (Administrator side) The user login With the client
The rest of the business Same as client
Web side (Student side) The login User Enters the user name and password to log in
Query schedule Support weekly query and class schedule export
Server Side (Java) The user access Receive the connection of web page and client and manage client information
Distribution of business Distribute various types of services on the web page or client
The heartbeat processing The custom
Server (C++) Automatic arrangement Design algorithm, cooperate with database, complete efficient course arrangement
Concurrent load Initialize the processing thread of 30
The database Database design and application Relational model design, serving the course scheduling system
The log The log A run log is generated every day, recording service processing, running status, and faults
Pressure test procedure Single customer single business test It mainly tests the processing capacity and data accuracy of a single transaction of the server
Multi-client single service Testing server throughput
The test report This section describes key parameters and test results, such as the number of service successes, number of service failures, and service type
Pressure parameter setting During each test, users can customize the test duration, service type, and number of simulated clients, and save them in a parameter file
The test log Record each test result and generate one per day
The altar Gateway server Implement queue
A firewall Team Firewall Configuration
Traffic IP Simulate heavy traffic IP access

4. Non-functional requirements

Functional category Functional specifications
All level of concurrent A server must withstand more than 10,000 connections
Large concurrent service A server is required to withstand 200 to 300 concurrent service processes
Distributed architecture TCP stream protocol is used for interprocess communication
System extensibility Able to expand business without modifying source code as much as possible
System security Being bombarded by some illegal operations

5. Overall system design

5.1 Overall System Framework (Reference)

5.2 System Flow Chart (Reference)

6. Design the key flow of communication program

6.1 Handling disconnection and reconnection

After the device is powered on, the device is connected to the server for a long time. Due to various reasons, a disconnection may occur during the process. The server needs to detect the disconnection, and the client needs to indicate the disconnection on the UI when detecting the disconnection.

6.2 Detection and treatment of sticky/half-packet

During TCP transmission, two services may have sticky packets. You need to distinguish them. Solution: head + body + tail.

6.3 Detecting and handling missing files

If file transfer is interrupted, handle it properly.

7. Project approval criteria

7.1 Project Team

This project is a team development project, which aims to enable the team members to experience the process of team development and accumulate experience of team cooperation in the process. In order to ensure the amount of code and the level of technology applied in the process, it is recommended that the number of team members should be 2-3, and the best combination is 3. One of them is the development leader to coordinate team development and schedule control.

7.2 Development Period Requirements

The total development cycle of the project is 15 working days, and the specific development time of several stages is allocated as follows

The name of the stage Elapsed time
Project planning 2 days
The benchmark 3 days
Project code 7 days
The project alignment 2 days
Project summary 1 day

7.3 Coding Specification Requirements

(1) source code layout specification (2) variable naming specification (3) function naming specification (4) type definition specification (5) annotation specification

In order to later replay, but also to make others understand.

8. Assessment criteria

8.1 The total score of the project is 100 points, and the assessment proportion of each module is as follows:

The project name Assessment of the proportion of
The development progress 6%
The system design 10%
Function module 74%
Code specification 5%
Project summary 10%
Daily work 5%

8.2 Development progress assessment criteria

Delay three minutes a day.

8.3 Functional assessment criteria

8.3.1 client

The name of the function Assessment of the proportion of
The network connection 15%
UI design 15%
Data import 30%
User functionality 15%
Team collaboration 20%
The user experience 5%

8.3.2 server

User to connect 15%
Load balancing 15%
The user interaction 15%
Curriculum scheduling algorithm design 25%
Database interaction 15%
Log interaction 5%
Members of the cooperation 10%

Non-functional requirements are not a plus.

8.3.3 Stress test

UI Interface Settings 20%
Log information 20%
A single business 15%
More business 35%
The team cooperation 10%

8.3.4 Network Security

Gateway server 40%
Big traffic IP 30%
A firewall 20%
The team cooperation 10%

8.4 Assessment criteria for final items

General introduction of the project Highlights of the project deficiencies and improvements of the project experience defenseCopy the code

8.5 Daily assessment criteria

During the development cycle, write a weekly. Everyone’s busy. If the weekly development report is not filled in on time or should be filled in properly, 0~12 points will be deducted until the full 36 points are deducted.

Finally, I wish you all the best!