Current location - Quotes Website - Signature design - Software designer
Software designer

General requirements for the software designer exam

Software designers mainly complete three tasks: (1) writing documents; (2) organizing and guiding programmers to carry out their work; (3) software Optimize and integrate testing to develop high-quality software. This job requires the practical working ability and professional level of an engineer. Specifically, qualified personnel who pass this exam can design software according to the requirements of software development project management and software engineering, in accordance with the overall system design specifications, write program design specifications and other corresponding documents, organize and guide programmers to write, Debug programs, optimize and integrate software, and develop high-quality software that meets the overall design requirements of the system.

Examination content requirements

The mastery of knowledge points can be divided into five levels from deep to shallow, and the requirements are proficiency, mastery, understanding, familiarity and understanding respectively. These include 2 proficiency (common data structures and commonly used algorithms, software design methods and technologies), 8 mastery, 2 familiarity, and 1 correct understanding, which are specifically reflected in the following 12 aspects:

(1) Master data representation, arithmetic and logical operations;

(2) Master relevant basic knowledge of applied mathematics and discrete mathematics;

(3) Master computer architecture and various The performance and basic working principles of the main components;

(4) Master the basic knowledge of operating systems and programming languages, and understand the basic knowledge of compilers;

(5) Proficient in commonly used Data structures and commonly used algorithms;

(6) Familiar with basic knowledge of databases, networks and multimedia;

(7) Master the C programming language, as well as C++, Java, Visual Basic, A programming language in Visual C++;

(8) Be familiar with the basic knowledge of software engineering, software process improvement and software development project management;

(9) Be proficient in software design methods and techniques;

(10) Master common information technology standards, security, and basic knowledge of relevant laws and regulations;

(11) Understand the principles of informatization and computer applications Basic knowledge;

(12) Correctly read and understand English materials in the computer field.

Analysis: Compared with the 2001 exam syllabus, the new syllabus has broader knowledge requirements and pays more attention to the practical ability of software design and development. This is fully reflected in the afternoon exam. In addition to technical requirements, the examination content also adds requirements for software engineering practical ability, security, standardization, laws and regulations, etc. After all, software designers are the backbone of the software industry, so the examination requirements are relatively high.

2. Exam Scope

Examination Subject 1: Computer and Software Engineering Knowledge

This part includes the following content:

l Computer Science Basics

l Computer system knowledge

l System development and operation knowledge

l Security knowledge

l Standardization knowledge

l Basic knowledge of information technology

l Computer professional English

1. Basics of Computer Science

1.1 Number systems and their conversions

· Common number systems such as binary, decimal and hexadecimal and their mutual conversions

1.2 Data Representation

·(original code, complement code, complement code, frame code representation, on-machine representation of integers and real numbers, precision and overflow)

·Non-numeric representation (character and Chinese character representation, sound representation, image representation)

· Verification method and check code (parity check code, Hamming check code, cyclic redundancy check code)

1.3 Arithmetic operations and logical operations

· Binary number operation methods in computers

· Basic operations of logical algebra and simplification of logical expressions

Analysis 1.1 / 1.2 / 1.3

The requirements of this part are basically consistent with the programmer examination syllabus

Focus: Representation of numbers, check codes

Difficulty: Four types of numbers Encoding: original code, complement code, complement code, frame code and conversion methods between each other. Representation of floating point numbers and their normalization.

Examination question types are generally distributed in: numerical system representation, data representation, check code length, logical expressions (formulas, equivalent transformations), clear "AND", "NOT", "XOR" ” operation rules.

Contents that appear frequently in exams: floating-point number normalization, base conversion, and one's complement.

1.4 Basic knowledge of mathematics

· Basic knowledge of propositional logic, predicate logic, and formal logic

· Common numerical calculations (errors, matrices and determinants, approximations Solving equations, interpolation, numerical integration)

·Permutation and combination, application of probability theory, applied statistics (statistical analysis of data)

·Basic methods of operation (prediction and decision-making, linear programming, Network diagram, simulation)

Analysis 1.4

The exam syllabus requires mastering the basic knowledge of relevant applied mathematics and discrete mathematics

This part of the content is used as background knowledge, although it is not Examined specifically, but appears in other topics, especially programming.

1.5 Commonly used data structures

· Arrays (static arrays, dynamic arrays), linear lists, linked lists (single-way linked lists, doubly linked lists, circular linked lists), queues, stacks, trees ( Definition, storage and operation of binary trees, search trees, balanced trees, clue trees, clue trees, heaps), graphs, etc.

· Hash (storage address calculation, conflict handling)

1.6 Commonly used algorithms

· Sorting algorithms, search algorithms, numerical calculation methods, string processing methods, data compression algorithms, recursive algorithms, graph-related algorithms

· The relationship between algorithms and data structures , algorithm efficiency, algorithm design, algorithm description (flow chart, pseudo code, decision table), algorithm complexity

Analysis 1.5/1.6

Because data structure is the basis of programming , Algorithms are closely related to data structures, so this part is the focus of the exam and requires proficiency.

Key points: Characteristics of sequential storage structures and chained storage structures, head nodes in linked lists, stack operations and overflows, basic operations of circular queues

Storage locations of array elements , Compressed storage of special matrices, method of finding the head and tail of generalized tables

Binary tree storage method, determination of binary trees by traversal sequence, counting problem of binary trees

Graph traversal algorithm, minimum Spanning tree algorithm, topological sorting and critical path, shortest path algorithm

Average search length, binary search decision tree, minimum number of nodes of balanced binary tree, insertion operation and balancing processing, construction and sum of hash tables Search

Stability issues of sorting, analysis and improvement of quick sort, time lower bound of internal sorting, analysis of algorithm time complexity

Difficulties: relationship between binary tree nodes and depth, storage of graphs (Matrix, adjacency list) and operations, traversal,

Contents that appear frequently in exams: tree traversal, data element storage methods, search trees, balanced trees

Exam question types Generally distributed in: data element storage methods, properties and comparisons of queues and stacks, linked list operations, the definition and properties of binary trees, binary tree traversal/node calculation, tree traversal, search trees, balanced trees, etc., the concept of graphs and its nature.

Common sorting algorithms, search algorithms, recursive algorithms, basic characteristics of algorithms, common algorithm ideas, comparison of algorithm efficiency (time, space complexity), algorithm description, algorithm complexity comparison

2. Computer system knowledge

2.1 Hardware knowledge

2.1.1 The composition, architecture classification and characteristics of computer systems

· The composition, performance and basics of CPU and memory Working principle

· Performance of commonly used I/O devices and communication equipment, and basic working principles

· Functions, types and characteristics of I/O interfaces

·(Interrupt system, DMA, I/O processor mode)

· CISC/RISC, pipeline operation, multi-processor, parallel processing

2.1.2 Storage system

· The working principle of main memory-Cache storage system

· The basic working principle of virtual memory, the performance and price of multi-level storage system

· RAID types and characteristics

Analysis 2.1.1/2.1.2

Analysis: disk memory capacity calculation, address mapping, pipeline, system structure classification

Focus: Cache replacement algorithm, memory and Interface addressing methods, pipeline operations

Difficulties: I/O control methods, address calculations, concepts and levels of parallel processing

Contents that appear frequently in exams: instruction seeking Address mode and instruction execution process; calculation of storage capacity,

Main indicators of pipeline processors, CISC/RISC comparison, etc.

2.1.3 Security, reliability and system performance Basic knowledge of evaluation

· Diagnosis and fault tolerance

· System reliability analysis and evaluation

· Computer system performance evaluation method

Analysis 2.1. 3The content in this part is mostly memory content

Focus: data encryption/decryption knowledge, computer security level, authentication technology, digital signature, etc.

Definition of mean time between failures and mean repair time , computer reliability model, performance evaluation

Difficulties: data encryption/decryption knowledge, key system

Contents that appear frequently in the exam: reliability performance evaluation, data security knowledge, computer Reliability and performance evaluation

2.2 Software knowledge

2.2.1 Operating system knowledge

· Operating system kernel (interrupt control), process, and thread concepts< /p>

· Processor management (state transition, exclusive sharing and mutual exclusion, time-sharing rotation, preemption, deadlock)

· Storage management (main memory protection, dynamic connection allocation, Segmentation, paging, virtual storage)

· Device management (I/O control, spooling)

· File management (file directory, file organization, access method, storage fetch control, recovery processing)

·Job management (job scheduling, job control language (JCL), multi-programming)

·Chinese character processing, multimedia processing, human-machine interface< /p>

· Basic knowledge of network operating systems and embedded operating systems

· Operating system configuration

Analysis 2.2.1

Focus: Operation The five major management functions of the system, including processor management, storage management, job scheduling, process scheduling, page scheduling, etc. are particularly important, state transition, sharing and mutual exclusion, time-sharing rotation, preemption, deadlock

Difficulties: job scheduling, process scheduling, page scheduling algorithm, PV operation

Exam questions are generally distributed in: Overview of operating systems, processor management, storage, file management, jobs, process scheduling, Process status changes

Contents that appear frequently in the exam: PV operations, process deadlock/synchronization, memory allocation, concurrent execution of programs, inter-process state transitions, PV synchronization and mutual exclusion between processes, deadlock Locks and their avoidance, address transformation, page replacement, working set

2.2.2 Knowledge of programming languages ??and language processing programs

· Basic knowledge and basic working principles of assembly, compilation, and interpretation systems

· Basic components of programming languages: data, Operation, control and transmission, process (function) calling

· Main features and application situations of various programming languages

Analysis 2.2.2

Analysis: Grammar Examination, automata, regular expressions

Focus: The basic components of compilers, regular expressions and finite automata, formal descriptions of grammars and languages, intermediate codes, automata principles, definitions of grammars and languages< /p>

Contents that appear frequently in exams: regular expressions and regular sets, finite automata and regular expression conversion

2.3 Computer network knowledge

· Network Architecture (network topology, OSI/RM, basic network protocols)

· Transmission media, transmission technology, transmission methods, transmission control

· Commonly used network equipment and various communication equipment

· Client/Server structure, Browser/Server structure

· LAN topology, access control, LAN networking, inter-LAN connection, LAN-WAN connection

< p> · Internet basic knowledge and applications

· Network software

· Network management

· Network performance analysis

Analysis 2.3

The division of OSI/RM seven layers in computer networks and the functions of various protocols. Transmission theory, interconnected equipment, and Internet knowledge, except for the reference model theory, are relatively trivial and require knowledge accumulation.

Focus: Network classification, topology, OSI reference model hierarchical division and corresponding protocols, bandwidth calculation, subnet division, firewall technology

Difficulties: IP subnet division; transmission control , Functions of protocols at each layer

Exam question types are generally distributed in: In addition to the above difficult parts, this part of knowledge basically belongs to the knowledge points of understanding the memory. The knowledge points are relatively scattered, but the test points in the exam all fall into place. among the knowledge points listed in the outline.

Contents that appear frequently in the exam: TCP/IP protocol, reference model 7-layer protocol, classification of IP addresses, comparison of various network devices;

2.4 Database knowledge

p>

· Functions and characteristics of database management systems

· Database model (conceptual schema, external schema, internal schema)

· Data model, ER diagram, first paradigm , second normal form, third normal form

· Data operations (set operations and relational operations)

· Database language (SQL)

· Database control function (Concurrency control, recovery, security, integrity)

· Basic knowledge of data warehouse and distributed database

Analysis 2.4

Whether for morning questions or afternoon questions The topic and this part are all very important. This is a focus of study and review.

Key points: Use E-R model to represent real problems, expanded E-R model, conversion of ER diagram to relational model, database language (SQL), application of SELECT query statement, relational algebra expression, relational model Integrity constraints, functional dependencies

Difficulties: five basic relational operation methods, combined relational operation methods, regularization theory (), functional dependence, decomposition maintaining functional dependence, lossless connection while maintaining functional dependence Decomposition, judging the lossless connectivity of a decomposition and maintaining functions

Contents that appear more frequently in the exam: data models, conversion of relational operations and SQL statements, functional dependencies

2.5 Multimedia Knowledge

· Basic knowledge of multimedia systems, performance characteristics of multimedia devices, commonly used multimedia file formats

· Drawing of simple graphics, processing methods of image files

· Application of audio and video information

· Multimedia application development process

Analysis 2.5

It is basically a knowledge point for understanding memory.

Key points: basic concepts of multimedia, sound digitization process, image compression coding, international standards for video files, streaming media concepts, multimedia computer systems, virtual reality technology

Difficulties: Multimedia Information capacity calculation, data compression, commonly used multimedia file formats, physical characteristics of audio and video, etc.

Contents that appear frequently in exams: basic knowledge, information capacity calculation

2.6 System performance knowledge

·Performance indicators (response time, throughput, turnaround time) and performance design

·Performance testing and performance evaluation

·Reliability indicators And calculation, reliability design

· Reliability testing and reliability evaluation

Analysis 2.6

Focus: Reliability evaluation

Exam Contents that appear more frequently: calculation of system reliability, equipment turnaround time

2.7 Basic knowledge of computer applications

· Information management, data processing, auxiliary design, automatic control, scientific computing , artificial intelligence and other basic knowledge

· Basic knowledge of remote communication services

· Common application systems

Analysis 2.7

The content of this part is not Just have a general understanding of the key points of the exam.

3. System development and operation knowledge

This part involves the morning exam and afternoon exam, and is the focus of testing the work ability of software designers.

3.1 Knowledge of software engineering, software process improvement and software development project management

·Software engineering knowledge

·Goals and tasks of each stage of the software development life cycle< /p>

· Basic knowledge of software development project management (time management, cost management, quality management, human resources management, risk management, etc.) and its common management tools

· Main software development methods ( Life cycle method, prototype method, object-oriented method, CASE)

·Software development tools and environment knowledge

·Software process improvement knowledge

·Software quality management Knowledge

· Basic knowledge of software development process assessment and software capability maturity assessment

Analysis 3.1

Focus: software development methods, CMM, cost estimation, risk analysis, Progress management, personnel management, software development environment

3.2 Basic knowledge of system analysis

·The purpose and tasks of system analysis

·Structured analysis method (data flow) Diagram (DFD), data dictionary (DD), entity relationship diagram (ERD), structured language describing processing)

· Unified Modeling Language (UML)

· System Specification

Analysis 3.2

Attach great importance to the application of UML in system analysis

Focus: Data Flow Diagram (DFD), Data Dictionary (DD), Entity Relationship Diagram (ERD)

Test points: Various types of UML diagrams

3.3 System design knowledge

· The purpose and tasks of system design

· Structural design methods and tools (system flow chart, HIPO diagram, control flow chart)

· Overall system structure design (overall layout, design principles, module structure design, data storage design, system configuration plan )

· System detailed design (code design, database design, user interface design, processing process design)

· System design specification

Analysis 3.3

Key points: system flow chart, HIPO diagram, control flow chart

3.4 System implementation knowledge

· Main tasks of system implementation

· Structured Programming, object-oriented programming, visual programming

·Programming style

·Selection of programming language

·Purpose and type of system testing, System testing methods (black box testing, white box testing, gray box testing)

· Test design and management (error curve, error elimination, convergence, fault injection, test case design, system test report)

p>

· Basic knowledge of system conversion

3.5 Knowledge of system operation and maintenance

· Basic knowledge of system operation and management

· Basic knowledge of system maintenance

p>

· Basic knowledge of system evaluation

Analysis 3.4/3.5

Focus: information flow in structured design, transformation analysis, system structure design principles, system division, module design , data storage design, object-oriented programming, testing methods, classification of system maintenance

Difficulties: system testing methods, test classifications, system maintainability evaluation indicators

3.6 Object-oriented development Method

·Object-oriented development concepts (classes, objects, properties, encapsulation, inheritance, polymorphism, references between objects)

·The advantages of object-oriented development methods nature and effective areas

·Object-oriented design methods (architecture, class design, user interface design)

·Object-oriented implementation methods (selecting programming languages, class implementation, Method implementation, user interface implementation, test data preparation)

·Basic machine learning of object-oriented programming languages ??(such as C++, Java, Visual, Bsasic, Visual C++)

Production

· Concepts of object-oriented databases and distributed objects

Analysis 3.6

Focus: Object-oriented development: classes, objects, attributes, encapsulation, inheritance Sexuality, polymorphism, OMT method

Difficulty: It is recommended to master more on data flow diagrams and structured analysis methods.

Analysis 3

Exam question types are generally distributed in: DFD, software life cycle; data flow diagram; relationship between modules; classification of software testing, software quality management (standard) Software characteristics, main software development methods, system testing, software capability maturity assessment

Contents that appear frequently in the exam: data flow diagrams, black box/white box testing, and the concept of object-oriented technology

p>

4. Security knowledge

· Basic concepts of security

· Preventing computer viruses and preventing computer crimes

· Access control, anti-intrusion, and security management measures< /p>

· Encryption and decryption mechanism

· Risk analysis, risk types, anti-risk measures and internal control

Analysis 4

System security issues It is an issue of current social concern, and it is also knowledge with high application value. It can be combined with relevant problems in reality to deepen understanding.

Contents that appear frequently in exams: encryption and decryption algorithms,

5. Standardization knowledge

· Standardization awareness, standardization development, standard formulation process

· Basic knowledge of international standards, national standards, industry standards, and enterprise standards

· Code Knowledge of standards, file format standards, security standards, software development specifications and document standards

· Standardization organizations

6. Basic knowledge of informatization

· Informatization awareness

· Global informatization trends, national informatization strategies, enterprise informatization strategies and strategies

· Relevant laws , regulations

· Basic knowledge of distance education, e-commerce, e-government, etc.

· Basic knowledge of enterprise information resource management

Analysis 5/6

Informatization and standardized knowledge are new test points. In terms of standardization, there are standard labels, standard revisions, etc., which are tests of basic qualities and should also be taken seriously.

Contents that appear frequently in exams

7. Computer Professional English

· Master the basic vocabulary of computer technology

· Ability to correctly read and understand English materials in the computer field

Analysis 7

Professional English is a test of professional knowledge and English proficiency. You need to consciously read some English professional materials before taking the test.

The exam question types are generally distributed in: software industry standards, basic knowledge of computer security, and basic knowledge of informatization.

Contents that appear frequently in the exam: industry standard categories; computer security, CMM classification, computer software copyright issues.

Exam subject 2: Software design

The specific contents of this part are as follows:

l External design

l Internal design

l Programming

l System Implementation

l Software Engineering

The contents covered in this section are the daily work of software design. These contents also appear in In the morning exam questions.

1. External design

1.1 Understand the system requirement description

1.2 Preparation for system development

· Select development method, prepare development environment, and formulate development plan

< p> 1.3 Design system functions

· Select the system structure, design the functions and interfaces of each subsystem, design security policies, requirements and implementation methods, and formulate detailed workflow and data flow

< p> 1.4 Design data model

· Design ER model and data model

1.5 Write external design documents

· System configuration diagram, relationship diagram of each subsystem, System flow chart, system function description, input and output specifications, data specifications, user manual framework

· Design system testing requirements

1.6 Design review

Should Able to read based on the exam description

2. Internal design

2.1 Design software structure

· Decompose by component, determine component functional specifications and interfaces between components

· Use middleware and tools

p>

2.2 Design input and output

· Screen interface design, design input and output inspection methods and inspection information

2.3 Design physical data

· Analysis data Characteristics, determine logical data organization method, storage medium, design recording format and processing method

· Replace logical data structure with physical data structure, calculate capacity, and optimize

2.4 Components Creation and reuse

· The concept of creating and reusing components

· Using subroutine libraries or class libraries

2.5 Writing internal design documents

· Component division diagram, interfaces between components, component processing instructions, screen design documents, report design documents, file design documents, database design documents

2.6 Design review

3. Programming

3.1 Module division (principles, methods, standards)

3.2 Writing program design documents

· Module specifications (function and interface description, program processing Description of logic, description of input and output data formats)

· Test requirements specification (test type and objectives, test cases, test methods)

3.3 Program design review

< p> 4. System Implementation

4.1 Configure the computer system and its environment

4.2 Choose the appropriate programming language

4.3 Master the C programming language, as well as C++, Java, Visual Any programming language such as Basic or Visual C++ can guide programmers in programming and testing, and make necessary optimizations

4.4 System Testing

· Guide programmers in module testing Test and perform acceptance

· Prepare system integration test environment and testing tools

· Prepare test data

· Write test report

5. Software Engineering

· Software life cycle models (waterfall model, spiral model, fountain model) and software cost models

· Define software requirements (systematic goals, configuration, functions, performance and constraints)

· Methods for describing software requirements (functional hierarchy model, data flow model, control flow model, data-oriented model, object-oriented model, etc.)

· Define software Requirements methods (structured analysis methods, object-oriented analysis methods)

· Software design (analysis and integration, step-by-step refinement, abstraction, information hiding)

· Software design methods ( Structured design method, Jackson method, Warnier method, object-oriented design method)

·Programming (structured programming, object-oriented programming)

·The origin of software testing

Principles and methods

·Software quality (software quality characteristics, software quality control)

·Basic methods of software process assessment, basic methods of software capability maturity assessment

· Software development environment and development tools (analysis tools, design tools, programming tools, testing tools, maintenance tools, CASE)

· Software engineering development trends (component-oriented, Unified Modeling Language (UML))< /p>

· Software process improvement models and methods

Comprehensive analysis in this part:

For software designers, the key is the ability to design software. Exam syllabus requirements: Be familiar with the basic knowledge of software engineering, software process improvement and software development project management; be proficient in software design methods and techniques; master the C programming language and one of the four designated object-oriented languages. This part of professional ability relies heavily on work practice and requires a certain amount of experience accumulation. It is a reflection of the actual working ability and professional level of an engineer. If you don’t have practical experience, you should learn to learn from other people’s strengths and make up for your own shortcomings.

This part is mainly reflected in the afternoon exam. Now we will analyze how to deal with the afternoon exam:

In recent exams, the afternoon test questions are divided into five questions, one database and one program to fill in the blanks. One question is an object-oriented language question, and the other two questions are data flow diagrams, UML, or flow charts, etc.

Database questions require completion of the SQL language, which requires candidates to be familiar with the SQL language, which is very important for both morning and afternoon questions. This is a key point in learning and reviewing.

Data flow diagram, DFD is a diagram that analyzes the data flow of the system, aiming to allow users to understand the system's functions, input, output, and data storage. Please carefully clarify its application. After drawing the data flow diagram, the function of the system will be determined, and then through refinement, gradually move towards the physical structure. During the assessment, the test questions are mostly analyzed from the balance of the parent picture and the child picture. In this part of the content, the key to solving the problem is to attach great importance to the description of the topic. Be sure to understand its content correctly and deeply. Read it several times if necessary. At the same time, you must also understand the charts given. This makes it easier to answer questions, and the answers are actually contained in the instructions.

Flow chart questions are very familiar to everyone. They describe the solution to a specific problem and are process-oriented. However, the questions asked are very different, so you should understand the ideas and answer them carefully.

The simplest and most difficult form of answering questions is program fill-in-the-blank. In order to facilitate marking, such questions appear in the form of program fill-in-the-blanks, which not only requires understanding the nature of the problem, but also clarifying the author's ideas for solving the problem, which is much more difficult than completing the program design independently. In response to the problem, first design your own ideas, how to solve the problem, and in what order; then try to read the program, and see if the ideas are generally consistent, good, this problem is easy to solve. If the ideas are inconsistent, try to figure out the function of each piece of code and its logical structure, and then figure out the problem-solving ideas of the person who asked the question, and then solve the problem accordingly. People often say that the answer is in the question, and this is true. In the process of analyzing the problem, find the answer you are looking for. However, the prerequisite is that candidates must be familiar with the language and understand the problem-solving ideas so that they can answer correctly. This question is difficult, you either get no points or you get full points.

In recent years, there have been many examinations of the Unified Modeling Language UML, which has attracted the attention of candidates. It represents the development trend of software engineering and is currently the de facto industry standard for visual modeling. It is easier for people to understand diagrams than other forms. Diagrams can describe and illustrate the essence of the problem more clearly. Therefore, UML embodies this characteristic. The difficulty of this type of questions is similar to that of data flow diagrams, and the natural problem-solving ideas are also the same. From a formal point of view, the data flow diagram is more simple, while the UML type questions reveal a fresh and modern atmosphere.

The last question on object-oriented languages ??is an optional question, giving candidates the freedom to use their personal strengths. The proposition has noticed the consistency of test difficulty in different languages, requiring candidates to answer the same question, achieving formal fairness, which is naturally an improvement