System analysts practice daily knowledge points of wrong questions 1

Software Engineering---Reverse Engineering

  1. Implementation level: including information such as the abstract syntax tree and symbol table of the program
  2. Structural level: includes information that reflects the interdependence between program components, such as call graphs, structure graphs, etc.
  3. Functional level: including information reflecting the functions of program segments and the relationship between program segments.
  4. Domain level: includes information that reflects the correspondence between program components or program entities and application domain concepts

Requirements Engineering --- Requirements Verification:

Requirements are the core of a successful software project. It lays the foundation for many other technical and management activities. In software requirements engineering, requirements management runs through the entire process. The most basic task of requirements management is to clarify the requirements and make the project team and users reach a consensus, that is, to establish a requirements baseline.

Software Engineering --- Requirements Engineering:

Requirements management is a systematic approach for finding, documenting, organizing, and tracking changes to system requirements. Rather than the management of requirements development, requirements development includes: requirements elicitation, requirements analysis, requirements definition and requirements verification. Requirements tracking belongs to the category of requirements management

Software Engineering --- Requirements Acquisition

If you want to obtain qualitative characteristics such as users' thoughts and suggestions on the system, it is more appropriate to hold a survey meeting, because the method of conducting a survey meeting will emphasize the previous interaction between the demand analyst and the user, and the user's thoughts on the system can be obtained during the interaction process and suggestions.

If you want to obtain some of the more complex processes and operations of the system, on-site observation is more appropriate. As the saying goes, "seeing is better than hearing a hundred times." For some more complex processes and operations, it is more difficult to use language and words To express, in this case, you can use the customer's work site to observe and listen to the customer's explanation, so as to understand the customer's needs more intuitively.

Software Engineering --- Requirements Engineering:

In structured analysis, three main aspects of modeling are carried out:

  1. Functional modeling: DFD is generally used
  2. Behavioral modeling: generally using state transition diagrams
  3. Data modeling: ER diagrams are generally used

Requirements analysis---UML

There are 4 kinds of things in UML:

  1. Structural things are nouns in UML models, they are usually static parts of the model, describing concepts or physical elements;
  2. Behavioral things are dynamic parts of UML models, they are verbs in the model, describing behaviors across time and space;
  3. Grouping things are the organizing part of a UML model, they are the "boxes" that the model breaks down into
  4. Annotated things are the interpreted part of a UML model, and these annotated things are used to describe, illustrate and annotate any element of the model

Requirements Engineering---UML

In UML, the chunks of the organizational model are called packages. Packages are a general mechanism for organizing elements, helping to organize elements in a model, making them easier to understand, and enabling users to control access to the contents of packages, thereby controlling connections in the system architecture. seam

A component is a physical, replaceable part of the system that conforms to a set of interfaces and provides an implementation. Components can be used to build physical things that may exist on nodes (such as executables, libraries, tables, files, and documents, etc.). mold. In general, a component represents a physical module formed by packaging logical elements such as classes, interfaces, and collaborations. Good components define flexible objects with well-defined interfaces so that older components can be replaced by newer, interface-compatible components in the future.

Requirements Engineering---UML

Timing diagram: It is a new interactive diagram that is especially suitable for real-time embedded system modeling, also known as timing diagram. Timing diagram focuses on condition changes along the linear time axis, inside the lifeline and between lifelines. It describes how an object's state changes over time, much like an oscilloscope, and is suitable for analyzing both periodic and aperiodic tasks. Timing diagrams emphasize the timing of messages relative to the actual timing of different objects or actors, not just the relative order of messages.

Communication diagram: Emphasizes the object structure organization of sending and receiving messages, also known as collaboration diagram in earlier versions. It emphasizes the organization of objects participating in the interaction

The interaction overview diagram is one of the new interaction diagrams in UML2.0. It is a variant of the activity diagram. It describes the overview of the control flow in the business process, the detailed logic overview in software engineering, and the connection of multiple diagrams, abstracting away Message and lifeline.

A sequence diagram is a graphical representation of a scene that describes the interactions between objects organized in time order.

Requirements Engineering---UML

UML uses 4+1 views to describe software and software development process, and the 4 views are:

  1. Logical view: used to describe the designed static and dynamic object model
  2. Process view: used to describe the designed concurrency and synchronization structure
  3. Implementation view: used to describe the static structure of the software in the development environment
  4. Deployment View: Represents software-to-hardware mapping and distribution structure
  5. The class diagram in UML can be used to represent the logical view in it

Requirements Engineering---Requirements Analysis:

Object-oriented analysis is based on the use-case model, through object modeling to record the identified objects, the data and behaviors encapsulated by the objects, and the relationships between objects. Object-oriented analysis consists of three activities:

  1. Modeling System Functions
  2. Discover and identify business objects
  3. Organize objects and determine their relationships

Requirements Engineering---Requirements Analysis:

According to the definition of needs analysis:

Requirements analysis is a software engineering activity that acts as a bridge between system-level software distribution and software design. Requirements analysis enables systems engineers to characterize the functionality and performance of the software, specify the interfaces of the software to other system elements, and establish constraints that the software must satisfy.

The task of requirements analysis is the process of discovery, refinement, modeling and specification. Includes detailed elaboration of the software scope initially established by the systems engineer and refined in the software project plan, creation of models of required data, information and control flows, and operational behavior, in addition to analyzing alternative solutions and assigning them to into each software element.

A framework is an extended form of a class library

Software Engineering---Software Design

Software design includes architecture design, interface design, data design and process design

  1. Structural Design: Define the relationship between the main components of the software system.
  2. Data design: convert the model into the definition of data structure, good data design will improve the program structure and module division, and reduce the complexity of the process
  3. Interface Design (Human-Machine Interface Design): How to communicate within the software, between the software and the operating system, and between the software and humans
  4. Process Design: A description of the process of converting system structural components into software.

System Design---Processing Process Design

  1. Workflow Execution Service
  2. workflow engine
  3. client application
  4. call application
  5. Management Monitoring Tool

System Design --- Structural Design

The fan-out of a module refers to the number of sub-modules directly called by the module. A large fan-out means that the complexity of the module is high, and too many sub-modules need to be controlled and coordinated.

Excessive fan-out is generally due to the lack of intermediate layers, and the control modules of the intermediate layers should be appropriately increased;

If the fan-out is too small, the lower-level module can be further decomposed into several sub-functional modules, or merged into its upper-level module.

The fan-in of a module refers to the number of upper-level modules that directly call the module

A large fan-in indicates a high degree of module reuse. A well-designed software structure usually has a large top-level fan-out table, a relatively small fan-out in the middle, and a large fan-in for the bottom-level modules.

The degree of cohesion within a software module is ranked from high to low as follows:

  1. Functional cohesion: To complete a single function, all parts work together and are indispensable
  2. Sequential cohesion: processing elements are related and must be executed sequentially
  3. Communication cohesion: all processing elements are concentrated on one area of ​​the data structure
  4. Process cohesion: processing elements are related and must be executed in a specific order
  5. Instantaneous cohesion (temporal cohesion): the contained tasks must execute within the same time interval
  6. Logically cohesive: completing a logically related set of tasks
  7. Incidentally cohesive: accomplishing a set of unrelated or loosely related tasks

Requirements Engineering: UML

There are three relationships between use cases: include, extend, and generalize.

When there is an inheritance relationship between two use cases, the child use case can inherit the behavior of the parent use case, and can add new behaviors or reset the behavior of the parent use case on this basis, and the child use case can appear in the tasks that the parent use case appears position.

Software Architecture Design---Software Architecture Style

  1. Architectural patterns are high-level decisions in software design. For example, C/S structure belongs to architectural patterns. Architectural patterns reflect the basic design decisions made in the process of developing software systems;
  2. Design patterns mainly focus on the design of software systems and have nothing to do with specific implementation languages;
  3. The idiom is to use a specific programming language to describe the relationship between components during implementation. For example, reference-counting is an idiom in the C++ language.

Software Engineering --- Design Patterns

Design patterns can be divided into three types:

  1. Creational mode: mainly used to create objects, providing guidelines for design classes to instantiate new objects;
    1. Factory Method (factory Method): Define an interface for creating objects, but it is up to the subclass to decide which class needs to be instantiated. The factory method delays the process of subclass instantiation (dynamic production object)
    2. Abstract Factory Pattern (Abstractory Factory): Provide an interface that can create a series of related or interdependent objects without specifying their specific classes (production series objects)
    3. Builder pattern (Builder): Separate the representation of a complex class from its construction, so that the same construction process can result in different representations (complex object construction)
    4. Prototype mode (Prototype): use the prototype instance to specify the type of object to be created, and create a new object (clone object) by copying the prototype
    5. Singleton mode (Singleton): Ensure that a class has only one instance, and provide a global access point to access it (single instance)
  1. Structural pattern: mainly used to deal with the combination between classes or objects, and provide guidance on how to design classes to form a larger structure; (adapter mode (Adapter), bridge mode (bridge), combination (composite), decoration (decorator ), Appearance (facade), flyweight mode (flyweight), proxy mode (proxy))
  2. Behavioral mode: It is mainly used to describe the interaction of classes or objects and the assignment of responsibilities, and provide guidance on the way of interaction between classes and the way of assigning responsibilities (chain of responsibility mode, command mode (command), interpreter mode ( interpreter), iterator, mediator, memento, observer, state, strategy, template method, access Visitor mode (visitor))

Software Engineering --- Design Patterns

  1. Abstract Factory: Provides an interface for creating a series of related or interdependent objects without specifying their concrete classes
  2. chain of responsibility (chain of responsibility mode): In order to decouple the sender and receiver of the request, multiple objects have the opportunity to process the request. Link these objects into a chain, and pass the request along the chain until an object handles it.
  3. Composite mode (composite): Combining objects into a tree structure to represent a "part---whole" hierarchy. It enables clients to use single objects and composite objects consistently
  4. Decorator: Dynamically add some additional responsibilities to an object. It is more flexible than subclassing in terms of extension.

IPSec provides a security mechanism that can be used for both IPv4 and IPv6. It is a component of IPv6 and an optional extension protocol of IPv4.

IPsec provides security for communications across LAN/WAN, Internet:

  1. Branch offices interconnected through the Internet (Secure VPN)
  2. Remote access via the Internet
  3. Establish the interconnection between Extranet and Internet with partners
  4. Enhance the security of e-commerce

The IP security protocol is aimed at IPv4 and IPv6. The main feature of IPsec is that it can support encryption or authentication of all traffic at the IP level and enhance the security of all distributed applications. IPSec provides security services at the IP layer, allowing the system to select the required security protocol, determine the algorithm used by the service, and provide any encryption keys required for security services

The current protocol suite adopted by the global Internet is the TCP and IP protocol suite. IP is the protocol of the network layer in the TCP and IP protocol suite, and is the core protocol of the TCP and IP protocol suite. The current version number of the IP protocol is 4 (referred to as IPv4), which has been in use for more than 30 years. The number of IPv4 addresses is 32 bits, that is, computers with a maximum of 2 to the 32nd power can connect to the Internet.

IPv6 is the next version of the Internet protocol, and it can also be said to be the protocol of the next generation Internet. It was originally proposed because with the rapid development of the Internet, the limited address space defined by IPv4 will be exhausted, and the lack of address control will inevitably hinder further development of the Internet. In order to expand the address space, the address space is redefined through IPv6. The 128-bit address length adopted by IPv6 can provide almost unlimited addresses. Estimating the addresses that IPv6 can actually allocate according to a conservative method, more than 1,000 addresses can still be allocated per square area of ​​the entire earth. In the design process of IPv6, in addition to solving the problem of address shortage once and for all, other problems that cannot be solved in IPv4 are also considered, mainly end-to-end IP connection, quality of service, security, multicast, mobility, broadcast-to-play Use and so on.

Information Security---Others

Business flow analysis is a kind of information security threat. It conducts long-term monitoring of the system and uses statistical analysis methods such as communication frequency, communication information flow direction, and changes in the total amount of communication to conduct research on parameters such as communication frequency, communication information flow, and changes in the total amount of communication.

Information Security---Others

As an all-round and overall system security system is also divided into layers, different levels reflect different security issues, according to the current application structure of the network, the layers of the security system can be divided into physical security, system security, network security, Application layer security and security management.

  1. The security of the physical environment: the security of the physical layer includes the security of communication lines, physical equipment and computer rooms, etc. The security of the physical layer is mainly reflected in the reliability of communication lines (line backup, gateway software and transmission media), software and hardware equipment and security (replace equipment, disassemble equipment, add equipment), equipment backup, disaster prevention capabilities, and anti-interference capability, equipment operating environment (temperature, humidity, smoke) and uninterruptible power supply guarantee.
  2. Operating system security. The security problem at the system layer comes from the security of the operating system used in the computer network, such as windows server and Unix, etc., mainly in three aspects. One is the insecurity caused by the defects of the operating system itself, mainly including identity authentication, Access control and system vulnerabilities, etc.; the second is the security configuration of the reading operating system; the third is the threat of viruses to the operating system.
  3. network security. The security issues at the network layer are mainly reflected in the security of the computer network, including identity authentication at the network layer, access control of network resources, confidentiality and integrity of data transmission, security of remote access, security of the domain name system, and security of the routing system. Security, intrusion detection means and network facilities anti-virus, etc.
  4. Application security, application layer security issues are mainly generated by the security of application software and data used to provide services, including Web services, email systems, and DNS. Also includes virus threats to the system
  5. Management safety, safety management includes safety technology and equipment management, safety system management, organization rules of departments and personnel, etc. The institutionalization of management greatly affects the security of the entire computer network. Strict security management systems, clear departmental security responsibilities, and reasonable personnel role allocation can greatly reduce security vulnerabilities at other levels.

Project Management --- Scope Management

The preparation of the detailed project scope statement based on the main deliverables, assumptions and constraints documented in the preliminary project scope statement is the key to the success of the project. The input of scope definition includes the following contents:

  1. Project charter. If the project charter or initial scope statement is not used by the project executing organization, the same information needs to be further collected and developed to produce a detailed project scope statement.
  2. Project Scope Management Plan
  3. organizational process assets
  4. Approved Change Request

Project management --- time management --- the process of time management includes

  1. activity definition
  2. activity sorting
  3. Active Asset Estimation
  4. Activity Duration Estimation
  5. making plans
  6. Progress Control

Project Management---Time Management

Find the longest path by drawing:

The critical path is: ADFH, the length is 13, so the duration of the project is 13 weeks.

When C is delayed for 3 weeks, the critical path becomes: ACEH, with a length of 15 weeks, so the construction period is delayed by 2 weeks

Project Management---Software Configuration Management

Configuration items constitute the main elements of product configuration. There are two main categories of configuration items:

  1. Work products that are part of the product: such as requirements documents, design documents, source code and test cases, etc.
  2. Documents produced under the Project Management and Institutional Support process area: such as work plans, project quality reports, and project tracking reports. Although these documents are not an integral part of the product, they are worth saving.

Non-network knowledge --- software development foundation

  1. Dynamic testing refers to finding errors by running the program, which is divided into black box testing, white box testing and gray box testing. Commonly used black-box test case design methods include equivalence class division, boundary value analysis, and so on. Commonly used white-box test case design methods include basic path testing, loop coverage testing, and logic coverage testing.
  2. Static testing means that the program under test does not run on the machine, but uses manual detection and computer-aided static analysis to detect the program. The main methods of manual testing in static analysis are desktop inspection (programmer self-examination), code review and code walkthrough.

Software Engineering---Software Testing

The driver module is used to simulate the upper module of the tested module, which is equivalent to the main program of the tested module. It receives data, transmits relevant data to the module under test, enables the module under test, and prints the corresponding results.

A stub module (stub) refers to a module that simulates the module called by the module under test, rather than an integral part of the software product. The main module is used as the driving module, and the modules directly connected with it are replaced by stub modules. Before the integration test, the module under test should prepare some substitute modules that simulate the functions of its subordinate modules, so as to replace the directly connected modules with stub modules. Before the integration test, the module under test should have some substitute modules that simulate the functions of its subordinate modules to replace the interface of the module under test, and receive or transmit the data of the module under test. These fake modules specially used for testing are called stubs of the module under test. module.

Software Engineering---Software Testing

According to different test purposes, performance testing mainly includes stress testing, load testing, concurrency testing and reliability testing, etc.

  1. Strength test: It is to examine the limit operation of the software system in the case of extremely low system resources
  2. Load test: It is used to test whether the program can bear in the overload environment, determine the performance of the system under various workloads, and test the changes of various performance indicators of the system when the load gradually increases
  3. Stress test: A test to obtain the maximum service level that the system can provide by determining the unacceptable performance point of the system bottleneck. Load testing and stress testing can be combined and collectively referred to as load stress testing.
  4. Capacity test: Concurrency test is also called capacity test, which is mainly used to test the maximum number of online users that the system can handle at the same time.

Software maintenance is not just about correcting errors. In order to meet the requirements and suggestions for adding new functions, modifying existing functions, and general improvements proposed by users, comprehensive maintenance is required. It is the main part of software maintenance work; software testing is impossible Expose all potential errors in the old system, so errors may occur during the use of these programs, the process of diagnosing and correcting these errors is called corrective error; in order to improve the maintainability or reliability of the software in the future, or to give future To provide a better basis for the improvement of the software to modify, this type of activity is called preventive maintenance.

Guess you like

Origin blog.csdn.net/qq_25580555/article/details/129789336