How evaluation software engineering knowledge and skills level

First, the software engineering knowledge and skills of high and low level software engineer is mainly reflected in what areas summary

1, Software Engineer

  English is a software engineer Software Engineer, is the ability of a career certification of personnel engaged in professional software, through which illustrate qualify for engineers. Software engineers are collectively engaged in software development work related to personnel. Including software engineers, software designers, software architects, software project managers, programmers and a series of jobs, job content are associated with software development and production. Technical requirements for software engineers is more comprehensive, but the most basic programming languages ​​(C / C ++ / JAVA, etc.), databases (SQL / ORACLE / DB2, etc.), etc., there are many such as AJAX, SPRING and other cutting-edge technology. In addition, other techniques for network engineering and software testing should also be covered.
 
2, is mainly reflected the level of knowledge and skill level
  Software engineering knowledge and skills included three categories of basic knowledge, basic computer, basic mathematics and engineering fundamentals, here are some points summary.

First: with a solid computer expertise: In addition proficient in mathematics, discrete mathematics, electronics, programming languages, data structures, and other courses. (1) basic programming language, programming language is an essential skill for software engineers, developed in different directions need to use different programming languages, such as Web developers familiar with ASP, NET and other programming languages, and big data may be used in languages ​​such as Scala , while things may be used to develop C, C ++ and other programming languages. In general, software engineers often need to master multi-programming language. (2) algorithm. Algorithm is a software engineer focused on knowledge and skills, mastery of algorithms are often able to determine the height of the growth of software engineers. (3) database. Information is data-centric, so the interaction with the database of all the software is essential to understand the database operations and programming is one of the basic quality of software engineers need to possess. The most commonly used database software such as Oracle and SQL Server databases. (4) basic skills of programmers. START input speed typing, using the keyboard shortcuts and the like; and ⻛ grid code specifications, such as indents, name, comments and the like; proficiency can be set to work surely with such VSCode / Vim, regular expressions.

Second: the accumulation of knowledge related to software development, technical skills (such as mastery of specific technologies, ability). For example, Java, C / C ++, C # grasp, diagnose and improve the technical performance, mastery of device drivers, kernel debugger, mastery of a development platform.

Third: the accumulation of knowledge and experience in the field of the problem (for example, knowledge of the healthcare and financial sectors). With experience, knowledge should have a broader, more in-depth technical and problem areas.

Fourth: to master cutting-edge technology. Different development areas need to have different knowledge structures, such as big data software engineers often need to master the use of Hadoop, Spark platform, and Web development engineers often need to grasp the front and rear end development technologies, including the use of a series of Web development framework, and so on.

Fifth: to understand the idea of ​​a common software design and software engineering ideas. For example, IBM put forward four points of software development ideas - iterative development to system architecture-centric, continuous quality assurance and manage change and assets. Understanding Unified Process, agile development, using the unified modeling language.

Sixth: upgrade vocational skills. Including self-management skills, ability to communicate and express, the ability to cooperate with others, the quality and quantity safety task execution. Writing documentation. Skilled technical documentation writing ability, familiar with Rose, Power Design, Visio and other modeling software, has some architectural design capabilities; language skills and communication skills, the ability to project economic analysis and psychological qualities.

Second, the examination questions, including software engineering, databases, data structures, and systems modeling foundation courses, as well as application of basic programming language problems and mental health problems.

(1) is a measure of the degree of coupling between the different software modules of the interconnection. Various coupling follows from strong to weak arrangement: (C) (Learn coupled)

A) content coupled, coupling the control data coupling, coupled to the public environment.

B) coupled to the content, control the coupling, coupling public environments, data coupling.  

C) coupled to the contents, public environment coupling, coupling the control data coupling. 

D) control the coupling, coupling the content, data coupling, coupled to the public environment.

(2) Please give out 3 pieces of recommendations regarding language-independent good programming practice. (Good programming practices recommended)

Program named
well commented
parameter
codes arrangement
to minimize the use of nested if statements

  (3)Do you agree with the following statement? And why? Please explain or discuss. The objective of testing is to show the presence of bugs. So the highest level of testing is that no bug is discovered in the software product.( 测试)

disagree.

Testing throughout the software engineering always, at all stages of its software products tested;
the test is divided into verification and validation. Authentication is the process of determining a workflow is carried out correctly, confirming refers to the product of careful assessment to determine whether the product meets specifications.
Test consists of performing a test and non-test is performed on the way.
Purpose of the test is to find errors as much as possible software products.
Test software products can prove that there is an error, but does not prove that software is not wrong.

(4) (ABCD) can create user stories 

    A. whole team B. User C. D. clients related to others

(5) talk about three paradigms. (Knowledge database)

The first paradigm (1NF): database table fields are a single property, can not be divided. This property consists of a single basic types, including integer, real number, character, logic type, date type.

The second paradigm (2NF): database table no non-key field dependent on any one part of the function key field candidates (partial functional dependency means that there is some combination of keywords in the field of non-key field decision ), i.e. all non-key fields are totally dependent on any set of candidate keys.
The third paradigm (3NF): on the basis of the second paradigm, if there is no data in the table the non-dependent key field transfer function according to any one candidate keyword section is in line with the third paradigm. The so-called transfer function dependent, means that if there is "A → B → C" determines the relationship between the transfer function depends on C A. Non-key fields → X → non-key field Key Fields y: Thus, the third normal database tables should not exist as dependencies

(6) cat screamed, all the mice began to flee, the master was awakened. Q. What design patterns might be used? Draw a class diagram (study design patterns and UML)
    observer mode, the mouse and the owner's behavior is passive.

    

(7) Description of quicksort process (data structure)

1) Select a reference element, the first element is generally selected or last element,

2) sorting to be recorded by a trip sorted into separate two portions, wherein a small part of the recording elements than the reference value of the element value. Another portion of the recording element value larger than the reference value.

3) At this time, the reference position after its proper elements sorted

4) the two parts separately and then recording the same manner as the sequencing continues until the entire sequence of ordered.

(8) 12 height different people, arranged in two rows, each row must be arranged from low to high, but high in the first row of the second person parallelism corresponding to the arrangement and asked how many?

Cattleya logarithm, C (2n, n) - C (2n, n-1)
 If the first row is directly arranged, a second row of sorting, it is divided piles problem now required is higher than the front of the second row. So this can be seen as 12 individual binary number 0101010101, each representing a second row represents 1, the number 1 in front of the need to ensure that not less than 1 0.
(9) a 5-digit input, it is determined that it is not a palindrome, such as the number of 12,321 that is palindromic. (Coding capacity)

#include "stdio.h"

main( )

{

  long ge, shi, qian, wan, x;

  scanf("%ld",&x);

  wan = x / 10000;

  qian=x%10000/1000;

  shi = x% 100/10;

  ge=x%10;

  if (ge == wan && shi == qian) / * bits equal to ten thousand and ten equal to one thousand * /

    printf("this number is a huiwen\n");

  else

    printf("this number is not a huiwen\n");

}

 

(10) into the adapter mode type adapter, the adapter object implemented in two. Wherein the adapter is used in class (inheritance) relationship, and uses the adapter objects (polymerizable composition) relationship. (Design Patterns)  

(11) A fan-out of 2 , is shown as fan-B . 1 , C fanout of 3 (fan-out fan understanding)

              

 (12) Online Course Selection System functional requirements include the following:

      Management system administrator responsible for system maintenance, including maintenance work on the course information and student information management, including the addition of the curriculum, delete and modify, and add the students basic information, modify, delete, and query, where the query was divided for the precise query and fuzzy query and the system administrator login information in order to carry out maintenance, forgotten passwords can be retrieved by this feature forget your password. Students entering elective interface by entering your student number and password, where students can query the selected courses, select courses as well as basic information about their inquiries. System administrators and students required to draw the use case diagram

                  

(13) The following account of agile methods, the error is (B) 

    A. Compared with traditional methods, agile methods are more suitable for large changes in demand or the development of pre B. agile method is not very clear on the demands of the project development team is particularly suitable for relatively large projects 

    C. idea of ​​agile methods is adaptation, rather than the default of D. agile approach based on the idea to prototyping, iterative incremental development

  (14)设计原则六个方面:模块化、接口、信息隐蔽、增量开发、抽象、通用性

(15)名词解释:统一过程是用例 驱动架构为中心,增量迭代的过程。

(16)对于敏捷开发什么是最重要的?

   可交付给客户的产品以及帮助客户实现最大的价值

(17)敏捷宣言强调的敏捷软件开发的四个核心价值是:

  • 个体和交互 胜过 过程和工具
  • 可以工作的软件 胜过 面面俱到的文档
  • 客户合作 胜过 合同谈判
  • 响应变化 胜过 遵循计划  

Guess you like

Origin www.cnblogs.com/ylyangliu/p/11933573.html