【Architect Exam】-Notes on Key Knowledge of Software Engineering

1. Development method

1.1 According to the development style

  • Top-up: Divide big problems into smaller ones and solve them one by one
  • Bottom-down: starting from concrete components, splicing designer's skills to interconnect, modify and expand

1.2. According to the nature

  • Formalization: data reasoning method, representing clean room engineering (generally not tested)
  • Informalization: various development models

1.3 Scope of application

  • Holistic approach: an approach to the whole process of software development
  • Local approach: Approach to a specific phase of the software

ps: Clean Room Engineering (CSE)

  1. Analytical box modeling using the box structure specification
  2. Correctness verification to eliminate errors
  3. statistical error
  4. QC

2. Informal development method

2.1. Prototype method

According to the realization of functional points:

  • Horizontal prototype: Behavioral prototype, which is used to refine the requirements of the interface but does not realize the function
  • Vertical prototype: structured prototype, given the realization of complex algorithms, realized some functions

According to the final result:

  • Disposable: exploratory prototype, solving demand uncertainty, ambiguity, incompleteness, ambiguity
  • Evolutionary: Gradually evolve into the final system for occasions that are easy to upgrade and optimize.

2.2. Structured development

Advantages: clear development goals, staged development projects, standardized development documents, and structured design documents

Disadvantages: The development cycle is long, it is difficult to adapt to changes in requirements, and data structures are rarely considered

2.3. Agile development method

People-oriented, close collaboration with users, face-to-face communication, release increments as soon as possible, small and independent development team, suitable for small-scale projects.

2.4. Object-oriented development

Coad/Yourdon method: OOA and OOD adopt exactly the same concept and notation, and there is no need for notation conversion between period analysis and design

Booch method: the static model describes the composition and structure of the system, which is divided into logical model, physical model, and dynamic model describes the state change and interaction process of the object, including state diagram and sequence diagram

OMT method: using the idea of ​​modeling, using object model (object diagram), dynamic model (state diagram) and function model (DFD)

OOSE Method: Use Cases Replace DFD for Requirements Analysis and Functional Modeling

2.5. Service-oriented development method

level of abstraction

  • Operation: the lowest layer, which represents a single logical unit of transactions, contains a specific structured interface, and returns a structured response
  • Services: Represent logical groupings of operations
  • Business Process: At the highest level, a long-running set of actions or activities performed to achieve a specific business goal

2.6. Component-Oriented Software Development

Component acquisition:

  • Use existing components.
  • Extract legacy engineering artifacts
  • Buy
  • to develop

Component reuse method:

  • Retrieve and Extract Components
  • Understanding and Evaluating Components
  • modify component
  • component assembly

Build categories:

  • Keyword taxonomy: Divide application concepts into a tree or directed acyclic graph structure, represented by keywords
  • Facet taxonomy: Use facets to describe the functions performed by components, the data to be manipulated, the context in which components are applied, or other characteristics
  • Hypertext method: According to human associative thinking, you can jump to documents containing related concepts or components arbitrarily.

3. Development model

Waterfall model: structured approach, staged development, clear requirements, complete documentation, weak risk control

Prototype model: Iterative method, divided into original development and target software development, the requirements are not clear

Spiral model: a combination of belt method, waterfall and prototype development model, suitable for large, complex and risky projects

Fountain model: object-oriented method, good reuse, no gaps in the development process, saving space.

V Model: Combining Development and Testing

Transformation Model: Suitable for Formal Development

Rapid Application Development RAD: component-based development methods, user participation, development or reuse of components, high modular requirements, not suitable for new technologies

RUP/UP: use-case-driven, architecture-centric, iterative, incremental.

4. System analysis

4.1. Structural analysis

  • Functional model: DFD data flow diagram, data flow cannot flow directly from external entities to storage, processing must have input and output
  • Data Model: ER Diagram
  • Behavioral Model: STD State Transition Diagram

4.2. Object-oriented analysis:

  • Functional model: use case diagram, there are three relationships among use cases including inclusion, extension, and generalization. The component use case model generally needs to be managed in four stages, which are identifying participants, merging requirements to obtain use cases, refining use case descriptions, and adjusting use case models. Three of these stages are required.
  • Data Model: Class Diagram
  • Behavioral models: activity diagrams, sequence diagrams, state diagrams

The process of analyzing the model through object-oriented analysis components: the process of establishing the analysis model generally includes defining concepts, determining the relationship between classes (dependence, generalization, combination, aggregation, realization), adding responsibilities to classes, and establishing interaction diagrams.

5. System design

5.1. Structural design:

  • Outline design: including architecture design, interface design, data design, using SC system structure diagram
  • Detailed design: including process design, program flow chart, IPO diagram, box diagram, problem analysis diagram, decision tree, and decision table.

5.2 Object-Oriented Design

Architecture Diagram (Package Diagram), Use Case Realization Diagram, Class Diagram, Other (State, Activity Diagram)

Guess you like

Origin blog.csdn.net/b379685397/article/details/125955588