Skip to content
Zhengyuan Zhu
Go back

BUPT Reexamination Written Test Review

These are notes I made while reviewing. Students who need them can browse briefly, but the most important thing is to practice with past exam questions.

Subject 1: Software Engineering

Introduction: Software Development Process: 6 Points

Overview of Software Engineering

Definition of software: Software = Programs + Data + Documentation

Software Classification

Three Elements of Software Engineering

Eight General Principles

  1. Abstraction 2. Information hiding 3. Modularity 4. Localization 5. Determinism 6. Consistency 7. Completeness 8. Verifiability

Software Life Cycle Models

Agile model: An attitude, not a methodology

Extreme programming: Latest theoretical results

System Requirements Analysis and Feasibility Analysis

Purpose of system requirements analysis and feasibility analysis: Clarify whether the system is worth doing to avoid investment losses.

Technical feasibility analysis: Development risks, Resource availability, Technical conditions

Software Requirements Analysis

Operational Principles of Requirements Analysis

Structured Requirements Analysis

Data modeling: Entity-Relationship diagram (ER diagram) - a conceptual model established to express user data requirements

Software Design

Overall design includes: Processing method design; Data structure design; Reliability design

Modularity:

Structured Design Methods

Use case diagram - functional requirements model - use case model - domain model - identify system - system operation contract

Object-Oriented Basic Idea: Everything is Seen as Objects

Object-oriented = Objects + Classes + Inheritance + Communication

Several Classic Object-Oriented Analysis and Design Methods

Unified Modeling Language UML (Similar to state diagrams)

Object-Oriented Analysis

Overview

Use case diagram -> functional requirements model -> use case model -> domain model -> identify system operations -> establish system operation contracts

Object-Oriented Design

Model Hierarchy

Object-Oriented Design Principles

Design Use Case Implementation Schemes

Software Implementation

Refers to program execution speed and memory storage space occupied

Software Testing

Software Testing Methods and Techniques

Software Testing Process

System testing: Testing in different actual operating environments

When to stop testing: Number of failures within a certain testing period

Non-key topics

Object-Oriented Testing Methods

Program Static Analysis Methods

Software Debugging Methods

Software Testing Tools

Software Reliability

Subject 2: Compiler Principles

Compilation Overview

Lexical Analysis

Role of Lexical Analyzer

Role of lexical analyzer: Scanning the character stream of the source program to recognize word symbols

Tokens, Patterns

Token: Encoding of a certain class of word symbols (identifier as id, number as num) Pattern: Word formation rules for a certain class of word symbols

State Transition Diagram of Lexical Analyzer

Syntax Analysis

Syntax Analyzer: Inputs token sequence, outputs parse tree

Chomsky grammar:

Derivation and Reduction

Rightmost derivation is canonical derivation, leftmost reduction is canonical reduction

A. Top-down analysis method: Building parse tree from root to leaves

For deterministic analysis, the grammar must be free of left recursion and backtracking

LL(k) grammar:

Predictive analysis method: Construction of predictive analysis table, reverse entry onto stack

B. Bottom-up analysis method: Building parse tree from leaves to root

Operator precedence analysis

LR(k) analysis technique:

Syntax-Directed Translation Techniques

Input symbol string -> parse tree -> dependency graph -> calculation order of semantic rules -> calculation results

Syntax-Directed Definitions

Translation Schemes

Semantic Analysis

Subject 3: Database Principles

Introduction

Four Basic Concepts

Data Model = Data Structure + Data Operations + Integrity Constraints

Common Data Models

Database System Architecture

Three-Schema Structure of Database Systems: (1:1:n)

Relational Databases

Relational Data Structure and Formal Definition

Relational Data Theory

Formal Definition of Relational Schema

R(U, D, DOM, F) // R: relation name U: attribute name set D: domain from which attributes come DOM: mapping set of attributes to domains F: data dependency relationship set between attributes

Functional Dependencies

Normal Forms

Relational Operations

Relational Algebra

Relational Integrity

SQL

Data Query

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#Query specified columns
SELECT Sno, Sname
FROM Student
WHERE Sdept = 'CS'
ORDER BY Grade DESC;
#Query all columns
SELECT *
FROM Student
WHERE Sage < 20
ORDER BY Sdept ASC, Sage DESC;
#Eliminate duplicate values
SELECT DISTINCT Sno
FROM SC
WHERE Grade < 60;

Aggregate functions:

Database Protection

Authorization and Revocation

1
2
3
4
#Grant query/all privileges on Student table to user U1/all users
GRANT SELECT/ALL PRIVILEGES
ON TABLE Student
TO U1/PUBLIC;
1
2
3
4
#Revoke user U4's privilege to modify student number
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;

Database Recovery Techniques

Subject 4: Computer System Architecture

Concepts

Technical approaches to improving parallelism:

Pipeline performance metrics

Pipeline Technology

Vector Processors + Interconnection Networks + Array Machines

Multiprocessors: (Couldn’t finish the rest, please go straight to practicing the 13 test sets)


Share this post on:

Previous Post
Riddle of Computer Science by Yin Wang (Ongoing)
Next Post
Tornado Learning Summary
Jack the orange tabby cat
I'm Jack 🧡
Luna the tuxedo cat
I'm Luna! 🖤