Software Engineering for System Analyst (12)

Table of contents

1. Software development life cycle

1.1 Work subdivision in the development stage

2. Software development model

2.1 Waterfall Model

2.2 Prototype model

2.3 Incremental model and spiral model

2.4V model

2.5 Fountain model

2.6 Rapid Application Development Model RAD

2.7 Component main assembly model

2.8 Unified Process

2.9 Agile methods

3. Reverse Engineering

4. Clean room software engineering


1. Software development life cycle

stage

Software development stage work content

Project approval stage

Enterprise overall situation, concept formation, demand analysis, output system feasibility study report, project approval report

development stage

From the perspective of development, it can be simplified as system planning, system analysis, system design, system implementation, and system acceptance. Among them, the system implementation phase has the largest workload.

Operation and maintenance phase

After the system passes the acceptance test, it is officially handed over to the user. Divided into troubleshooting, adaptability, perfection, and preventiveness.

dying stage

Renovation, function expansion, scrap reconstruction

1.1 Work subdivision in the development stage

2. Software development model

2.1 Waterfall Model

It is the most commonly used development model in the structured approach. It divides the software development process into six stages: software planning, requirements analysis, software design, program coding, software testing, and operation and maintenance. It is the earliest model of software engineering. It is beneficial to the organization and management of personnel in the large-scale software development process. It is a linear schema from top to bottom.

Applicable scenarios: It is only suitable for projects whose requirements do not change much.

2.2 Prototype model

Prototype model: It has practical and feasible features, has the basic characteristics of the final system, is convenient and quick in construction, and low in cost. And the needs of users are dynamically responded to at any time. Prototype development can be divided into throwaway prototypes and evolutionary prototypes.

Evolutionary model: Based on the rapid development of a prototype, improvements are obtained after user feedback, and this process is repeated until a new product is evolved.

Rapid Prototyping Model: Throwaway Prototyping Model

2.3 Incremental model and spiral model

Spiral Model: Based on the prototype, risk analysis is added. Rotate from the inside out along the helix. It is an evolutionary software process model. Combining the controlled and systematic aspects of the iterative and linear sequential model of prototype realization, it consists of four phases: planning, risk analysis, implementation engineering, and customer evaluation. It is suitable for large and complex, high-risk systems.

2.4V model

Test-centric development model. It declares that testing is not an afterthought, but a process as important as the development process. The V-model describes a number of different test levels and illustrates the different phases of the life cycle to which these levels correspond. It is suitable for occasions where the requirements are clear, or where the requirements do not change frequently.

2.5 Fountain model

Mainly supports object-oriented development methods. It embodies the characteristics of iteration and seamlessness. Seamless means that there is no sharp boundary between analysis design and coding.

2.6 Rapid Application Development Model RAD

The Rapid Application Development Model is an incremental software development process model that emphasizes extremely short development cycles. It is a high-speed variant of the waterfall model, which wins rapid development through extensive use of reusable components.

2.7 Component main assembly model

Component library establishment: realize the reusability of the component level of the code

The component main installation model modularizes the whole system, and reuses software components with the support of a certain component model, and efficiently constructs the application software system through combination means.

2.8 Unified Process

It is a generic process framework. Component-based iterative software development process modeled using UML. Suitable for the development of large systems.

Features of the Unified Process:

  • use case driven
  • architecture-centric
  • iteration and increment

The unified process stipulates four subdivided stages:

The initial phase

Determine the business model and define the project's boundaries. Systematically articulate the scope of the project, select a viable system architecture, plan and prepare a business case

Elaboration stage

Analyze the problem domain and establish a sound architectural foundation. Refine the vision, refine the process and infrastructure, refine the architecture and select components

build phase

All remaining components and application functionality are to be developed. Resource management, control and process optimization. Complete the development of components and test them according to the evaluation criteria

delivery stage

When the baseline is complete enough to be installed in the end user's actual environment, it enters the delivery phase. Synchronize and integrate concurrent build increments into a consistent implementation baseline, implementation-related engineering activities (commercial packaging, production, personnel training, etc.), evaluate implementation baseline against acceptance criteria for complete vision and requirements set

2.9 Agile methods

Characteristics of agile methods:

  • Run in small steps, divide into many small iterations
  • Suggest some loads, documentation in terms of compliance with

Classification of agile methods:

  • XP, extreme programming. Used in some companies that strictly control expenses.
  • The Crystal Series Method: A people-centered approach that uses the least amount of discipline and still succeeds.
  • Open source code: The outstanding feature is the high parallelism of error troubleshooting. Anyone who finds an error can send the patch file to correct the source code to the maintainer, and the maintainer will merge it into the source code library.
  • SCRUM: A well-defined repeatable method process is limited to a well-defined repeatable person in a well-defined repeatable environment, to solve a well-defined repeatable problem.
  • Coad's feature-driven development approach: it focuses on short iteration phases and visible usable features. In FDD, an iteration cycle is generally two weeks.
  • The ASD approach, at its core, consists of three non-linear, overlapping stages of development: guesswork, collaboration, and learning.

3. Reverse Engineering

Levels of reverse engineering:

  • Implementation level: including the abstract syntax tree of the program, the symbol table, and the design representation of the process
  • Structural level: includes information that reflects interdependencies between program components, such as call graphs, structure graphs, program and data structures
  • Functional level: includes information that reflects the functions of program segments and the relationship between program segments, such as data and control flow models
  • Domain level: including information that reflects the correspondence between program components or program entities and application domain concepts, such as entity relationship model

4. Clean room software engineering

Formal method: highly rigorous logic, verifiable at the mathematical level

  • Clean room is clean room, clean room. That is, an environment with a controlled pollution level.
  • Use box-structure specifications (or formal methods) for analysis and design modeling, and emphasize correctness verification, rather than testing, as the primary mechanism for finding and eliminating bugs.
  • Use statistical tests to obtain the error rate information necessary to certify the reliability of delivered software.

Guess you like

Origin blog.csdn.net/qq_42357877/article/details/130356448