Soft Exam Notes - 9. Software Engineering

The basic principles of software engineering: strict management with phased life cycle planning, insisting on phase review, achieving strict product control, using modern programming techniques, results should be able to clear the review, the development team should be fewer and better, recognition The need for continuous improvement of software engineering events.

Fundamentals of software engineering: methods, tools, processes

Software life cycle: feasibility analysis and project development plan, requirements analysis, outline design (select system solutions, plan subsystems), detailed design (design subsystem internal implementation), coding, testing, maintenance

1. Information system life cycle

System planning stage : The task is to conduct a preliminary investigation of the organization's environment, goals and current system status , determine the development strategy of the information system according to the organization's goals and development strategies, analyze and predict the needs of building a new system , and consider building a new system. The various constraints that the system is subjected to, and the necessity and possibility of building a new system are studied. According to the needs and possibilities, the alternative schemes for manufacturing and building systems are given.

Output: Feasibility study report, system design task book

System analysis stage : the task is to conduct a detailed investigation of the current system according to the scope determined in the system design task book,describe the business process of the current system, point out the limitations and deficiencies of the current system, and determine the basic goals and logical functions of the new system Requirements, that is, to propose a logical model of the new system . The system analysis phase is also called the logic design phase (logic model) . This stage is the key stage of the whole system construction, and it is also the important difference between information system construction and general engineering projects.

Output: System specification (requirements specification)

System design phase : The task of the system analysis phase is to answer the question of "what to do" of the system, while the question to be answered in the system design phase is "how to do it" . The task of this stage is to specifically design the technical solution for implementing the logical model according to the functional requirements stipulated in the system specification , that is, to design the physical model of the new system . This stage is also called the physical design stage (physical model) , which can be divided into two sub-stages of overall design "outline design" and detailed design .

Output: system design specification (summary design, detailed design specification)

System Implementation Phase : It is the phase in which the designed system is put into practice . The tasks at this stage include the purchase, installation and debugging of computers and other equipment, program writing and debugging, personnel training, data file conversion, system debugging and conversion, etc. The characteristic of this stage is that several interrelated and mutually restrictive tasks are carried out at the same time, and must be carefully arranged and rationally organized. System implementation is completed in stages according to the implementation plan, and an implementation progress report should be written for each stage. Write a system test analysis report after the system test.

Output: Implementation progress report, system test analysis report

System operation and maintenance stage : After the system is put into operation, it needs to be maintained and evaluated frequently, record the operation of the system, make necessary modifications to the system according to certain rules, and evaluate the work quality and economic benefits of the system

2. Capability Maturity Model

Capability Maturity Model CMM

ability level features critical process area
Initial level (Initial) The software process is characterized by disorganization and sometimes confusion, with few clearly defined steps, and the success of the project depends entirely on the efforts of individuals and the role of heroic central figures
 
Repeatable (Repeatable) Basic project management processes and practices are established to track project costs, schedules, and features, with the necessary process discipline to repeat previous success on similar projects
 

Software distribution management. Software quality assurance, software subcontract management, software project tracking and supervision, software project planning, software requirements management

Defined level (Defined) Both management and engineering software processes have been documented, standardized, and integrated into a standard software process for the entire software development organization . All projects use modified standard software processes to develop and maintain software
 
Peer review, intergroup coordination, software product engineering, integrated software management, training program organizational process definition, organizational process focus
 
Managed Detailed metrics for software process and product quality are developed . Have a quantitative understanding and control of software process and product quality
 
Software Quality Management and Quantitative Process Management
Optimized The quantitative analysis is strengthened, and the process can be continuously improved through feedback from process quality and feedback from new ideas and new technologies Process Change Management, Technology Change Management and Defect Prevention

Capability Maturity Model Integration CMMI

It is the synthesis and improvement of several process models , not only software, but a systematic and consistent process improvement framework that supports multiple engineering disciplines and fields
, can adapt to the characteristics and needs of modern engineering, and can improve process quality and work efficiency There are two representation methods of CMMI:
(1) Stage model : similar to CMM, it focuses on the maturity of the organization . The five maturity models are as follows:

ability level features key process
initial level Process is unpredictable and lacks control
Managed The process serves the project Requirements management, project planning, configuration management, project monitoring and control, supplier contract management, measurement and analysis, process and product quality assurance
defined class The process serves the organization Requirements development, technical solutions, product integration, verification, confirmation of organizational process focus, organizational process definition, organizational training, integrated project management, risk management, integrated teams, decision analysis and solutions, organizational integrated environment
Quantitative management The process is measured and controlled Organizational Process Performance, Quantitative Project Management
optimization level Focus on process improvement and optimization Organizational reform and implementation, causal analysis and solutions

(2). Continuous model: focus on the capability of each process area, and an organization can achieve different process area capability levels for different process areas.

[Example] ( ) is the work product obtained after the system analysis phase, ( ) is the work product after the system test phase
A. System design specification B. System proposal C. Program specification D. Unit test data
A .Acceptance Test Plan B. Test Standards C. System Test Plan D. Operation Manual   
Answer: BD

[Example] Among the following statements about CMM, the incorrect one is ().
A. CMM refers to the software process capability maturity model
B. CMM is divided into 5 levels according to the different maturity levels of the software process. Among them, level 1 is considered the highest maturity and level 5 is considered the
lowest maturity
C. CMMI tasks It is to combine several existing CMM models to construct an "integrated model"
D. Adopting a more mature CMM model can generally improve the quality of the final product
Answer: B

3. Software Process Model

waterfall model

Waterfall model (SDLC): The waterfall model is a classic software life cycle model that generally divides software development into : feasibility analysis (planning), demand analysis, software design (summary design, detailed design), coding (including unit testing), Several stages such as testing, operation and maintenance.


Waterfall Model Features

  1. Accepts this activity's work objects as input from a previous development activity
  2. Using this input, implement what the activity should accomplish
  3. Give the work product of this activity as output to the next development activity
  4. Review the results of the implementation of the activity . If the work results are confirmed, continue to the next development activity; otherwise, return to the previous one, or even the previous activity. Minimize repetition between multiple stages. Develop software at a relatively small cost

prototype model

The first step of the prototyping model is to create a rapid prototype that can meet the needs of project stakeholders and future users to interact with the prototype, and then fully discuss and analyze with relevant stakeholders to finally figure out the needs of the current system . After a full understanding, develop a product that satisfies the user on the basis of the prototype.

The prototype method believes that when it is difficult to fully and accurately put forward user needs at once, the characteristics that the prototype should have are as follows.

  1. feasible
  2. have the essential characteristics of the final system
  3. The structure is convenient, fast and low in cost . The characteristic of the prototyping method is that the prototyping method responds dynamically to the needs of users and gradually incorporates

 spiral model

The spiral model is an evolutionary software process model that combines the iterative character of prototype implementation with the controlled and systematic aspects of the linear sequential (waterfall) model . In the spiral model, software development is a series of incremental releases

The development process has a spiral shape that repeats periodically . The four quadrants mark the four phases of each cycle: planning, risk analysis, implementation engineering, and customer evaluation. The spiral model emphasizes risk analysis, especially for large, complex, high-risk systems

V model

The V model looks like a V-shaped structure as a whole, consisting of left and right sides. The underlines on the left represent requirements analysis, general design, detailed design, and coding, respectively. The upper lines on the right represent unit tests, integration tests, system tests, and acceptance tests.

The characteristics of the V model are as follows:

  1. The main purpose of unit testing is to target various errors that may exist in the coding process (single compilation)
  2. The main purpose of integration testing is to address possible problems in the detailed design (set details)
  3. System testing is mainly aimed at the outline design , checking whether the system as a whole is running effectively (system outline)
  4. Acceptance testing is usually conducted by business experts or users to confirm that the product can really meet the needs of the user's business (requirements)
  5. The V model is used when the requirements are clear and the requirements change infrequently

incremental model

Incremental model: first develop the core module functions , then confirm with the user, and then develop the sub-core module functions, that is, develop a part of the functions each time, and confirm with the user needs, and finally complete the project development. The
service with the highest priority is delivered first


The characteristics of the incremental model: However, because each module is not planned from the perspective of the overall system, it is not conducive to module division.
The difficulty lies in how to divide customer needs into multiple increments . Different from the prototype, each incremental version of the incremental model can be used as an independently operable work , while the construction of the prototype is generally for demonstration.

fountain model

Fountain model: It is a model driven by user needs and driven by objects , which is suitable for object-oriented development methods. Make the development process iterative and seamless

Component Based Development Model CBSD

Component-based development model CBSD: Use pre-packaged components to construct application systems . Components can be internally developed components of the organization or commercialized finished software components.

It is characterized by enhanced reusability . In the process of system development, a component library will be built for reuse by other systems, so it can improve reliability and save time and cost.

formal method model

 Formal method model: A method of software development based on rigorous mathematics , the main activity of which is to generate a formalized mathematical specification of computer software

exercise

[Example] Assuming that a software company signs a contract with a customer to develop a software system, the functions of the system are clearly defined, and the customer has strict requirements on the delivery time, then the most
suitable method for the development of the system is
A, Waterfall Model B, Prototype Model C. V model D. Spiral model
Answer: A
Analysis: The function is clear, that is, the requirements are relatively clear. Such keywords are all about the waterfall model, and the memory keywords of the summary are kept in mind

[Example] Among the following statements about the spiral model, which is incorrect is ()
A. It is risk-driven and requires developers to have rich knowledge and experience in risk assessment
B. It can reduce the consequences of excessive testing or insufficient testing C. It includes the maintenance cycle, so
there is no essential difference between maintenance and development
D. It is not suitable for large-scale software
development
software development

4. Development method of information system

structured approach

Structure refers to the interconnection and interaction framework among the various components in the system

The structured method, also known as the life cycle method, is a traditional information system development method consisting of structured analysis (Structured Analysis, SA), structured design (Structured Design, SD) and structured programming (Structured Programming, SP ) is an organic combination of three parts , the essence of which is top-down, progressive refinement and modular design

Key features of the structured approach

  1. Clarity of development A structured approach to system development follows the " user first " principle
  2. Stage development work. After the work of each stage is completed, it should be reviewed according to the goals and requirements of the stage work, which makes the work of each stage work in an orderly manner and facilitates project management and control.
  3. Standardize development documentation. After the completion of each stage of the structured method, the corresponding documents should be completed according to the requirements to ensure the connection of each work stage and the traversal of the system maintenance work.
  4. The design approach is structured. In system analysis and design , consider the whole and the overall situation, and decompose from top to bottom; in system implementation, according to the design requirements, first write each specific functional module, and then gradually realize the whole system from bottom to top .

 Shortcomings and limitations of the structured approach

  1. Long development cycle : Go through the stages sequentially until the implementation stage is over before users can use the system.
  2. Difficulty adapting to changing requirements : Not suitable for projects where requirements are unclear or change frequently.
  3. Rarely consider tiger data structure : The structured method is a process-oriented, data flow-oriented development method, and rarely considers data structure.

Common tools for structured methods

Structural methods generally use graphics to express user needs. Common tools include data flow diagrams, data dictionaries, structured languages, decision tables, and decision trees, etc.

object-oriented development method

Object-Oriented (Object-Oriented, 00) method believes that the objective world is composed of various objects, everything is an object, and each object has its own law of motion and internal state, and belongs to a certain object class . An element of the object class. Complex objects can be constructed in a certain way from various relatively simple objects, and the combination and interaction of different objects constitute a system.

Features of the object-oriented approach

  1. The system constructed using the 00 method has better reusability , and the key is to establish a comprehensive, reasonable and unified model ( use case model and analysis model)
  2. The 00 method is also divided into stages, but there is no "gap" between the three stages of system analysis, system design and system realization. That is to say, the boundaries of these three stages become unclear , and a certain work can be completed in the previous stage or in the latter stage; if the work in the previous stage is not detailed enough, it can be supplemented in the latter stage.
  3. The object-oriented method can be generally applied to the development of various information systems

The shortcomings of the object-oriented method
must rely on certain object-oriented technical support, and have certain limitations in the development of large-scale projects Can not get involved in the development process before system analysis

At present, the development of some large-scale information systems usually combines the structured method and the 00 method. First, use a structured approach for top-down overall division; then, use a bottom-up 00 approach for development. Therefore, the structured method and the 00 method are still two interdependent and irreplaceable methods in the field of system development.

prototyping method

The prototyping method is also called rapid prototyping , or simply prototyping . It is a method of rapidly developing information systems based on the initial needs of users, using system development tools to quickly establish a system model and display it to users , and communicate with users on this basis, and finally realize the needs of users.

Classified according to whether the function is realized : divided into horizontal prototype (behavior prototype, function navigation), vertical prototype (structural prototype, realized part of the function)

Classification according to the final result :: Divided into discarded prototypes and evolutionary prototypes

The characteristics of the prototype method
The prototype method can shorten the cycle of system development, reduce the cost and risk, accelerate the speed, and obtain higher comprehensive development benefits .

The prototyping method is user-centered to develop the system, the degree of user participation is greatly improved, and the developed system meets the needs of users, thus increasing user satisfaction and improving the success rate of system development. Because users participate in the whole process of system
development It is easy to understand and accept the function and structure of the system , which is conducive to the handover of the system and the operation and maintenance of the system

The disadvantage of the prototype method is that
the development environment requires high requirements. High level of management is required.

From the above analysis, it can be seen that the advantage of the prototype method is that it can more effectively confirm user needs . From an intuitive point of view, the prototyping method is suitable for system development with unclear requirements . In fact, the prototyping method is suitable for systems that are difficult at the analysis level but not at the technical level .

Strictly speaking, the current prototyping method is not an independent system development method, but a development idea . It only supports the rapid generation of system prototypes in the early stage of system development, and does not specify which method must be used in the prototype construction process. way. Therefore, it is not a methodological system in a complete sense . This means that the prototyping method must be used in combination with other information system development methods
 

agile development

Agile development is a people-centered, iterative, and step-by-step development method . Compared with the "non-agile" traditional software development method, it emphasizes close collaboration and face-to-face communication between programmer teams and business experts (think more than written Documentation is more effective), frequent delivery of new software versions , compact and self-organizing, code writing and team organization methods that can adapt well to changing requirements , and pay more attention to the role of people in software development

Little agile software development official statement:

  1. Individuals and interactions over process and tools
  2. Working software is better than comprehensive documentation
  3. Customer cooperation is better than contract negotiation
  4. Responding to change is better than following a plan

Five methods of agile development 

adaptive development

Adaptive development: Emphasize the adaptability of the development method (Adaptive). Unlike other methods, which have many specific practices, it focuses more on providing the most fundamental foundation for the importance of software and explaining why development methods should be adaptable from a higher organizational and management level.

crystal method

The Crystal Method: Every different project requires a different set of strategies, conventions, and methodologies .

Feature Driven Development

Feature-driven development: It is a set of development models for small and medium-sized software development projects . It is a model-driven rapid iterative development process , which emphasizes simplicity, practicality, and easy acceptance by the development team, and is suitable for projects with frequently changing requirements.

Extreme Programming XP

Extreme Programming XP: Communication, Simplicity, Feedback, and Courage at its core . Knowing that plans can never catch up with changes, XP does not require developers to do a lot of documentation at the beginning of the software . XP advocates testing first , in order to minimize the chance of bugs in the future.

Scrum method SCRUM 

Scramble method SCRUM: It is an incremental process of selection and generation . The iteration once per period (30 days) is called a "sprint" , and the product is realized according to the priority level of the demand. Multiple self-organization and Autonomous teams implement products incrementally in parallel.

Unified Process (RUP)

Provides a disciplined approach to assigning tasks and responsibilities within a development organization . Its goal is to ensure a high-quality product that meets end-user needs within a predictable schedule and budget

3 distinctive features: use-case-driven, architecture-centric, generational and incremental

4 processes: Inception, Elaboration, Construction and Delivery . A technical review is scheduled at the end of each phase to determine whether the objectives of the phase have been met

Applicability: A general process framework that can be used for a wide variety of software systems, different application domains, different organizational types, different performance levels, and different project sizes.

pair programming

Pair programming: One programmer develops, and the other program observes and reviews the code, which can effectively improve the code quality, conduct a preliminary review of the code while developing, and be jointly responsible for the code.

[Example] Among the following descriptions about structured development methods, the incorrect one is
A. The general guiding principle is top-down, layer-by-layer decomposition.
B. The basic principle is the decomposition and abstraction of functions
. C. It is consistent with the object-oriented development method. D , especially suitable for
project analysis in the field of data processing
: the method of exclusion can be used, and the structured development method is oriented to data flow, decomposed from top to bottom, layer by layer, so ABD All right, but it has been gradually replaced by object-oriented development methods, because object-oriented development methods are more suitable for large and complex projects.

[Example] In the development method of the agile process, ( ) uses the iterative method, in which, the iteration once every period (30 days) is called a "sprint", and the product is realized according to the priority level of the demand, how many A self-organizing and autonomous team incrementally implements product A, extreme programming XP B, crystal
 method C, juxtaposition method D, adaptive software development Adaptive software development emphasizes adaptability, and extreme programming emphasizes theories such as four cores and test first.


System Analysis and Design Overview

Software Requirements

Software requirements : Refers to the user 's expectations of the system in terms of function, behavior, performance, and design constraints . Refers to the conditions or capabilities required by users to solve problems or achieve goals , and the conditions or capabilities that a system or system component must possess to meet contracts, standards, specifications, or other formally stipulated documents , as well as document descriptions that reflect these conditions or capabilities.

It is divided into two processes: requirements development and requirements management , as follows:

system design

The main purpose of system design: to formulate a blueprint for the system, to weigh the advantages and disadvantages of various technologies and implementation methods, to carefully design, to use various resources rationally, and finally to outline the detailed design method of the new system

System design methods: structured design methods, object-oriented design methods

The main content of system design: general design, detailed design .

The basic task of outline design: also known as the overall system structure design , is to assign the functional requirements of the system to the software modules, determine the function and calling relationship of each module, and form the module structure diagram of the software, that is, the system structure diagram .

Basic tasks of detailed design: detailed algorithm design in modules, data structure design in modules, physical design of database, other designs (code, input/output format, user interface), preparation of detailed design instructions, review

fundamentals of system practice

  • abstraction
  • Top-down, step-by-step refinement
  • information concealment;
  • Module independence (high cohesion, low coupling)

System Design Principles

  • Keep the size of the module moderate
  • Minimize the depth of calls as much as possible
  • More fan-in, less fan-out
  • single entry, single exit
  • The scope of the module should be within the module
  • Function should be predictable

[Example] System design is the process of completing the system construction based on the results of system analysis. The main content of the system design includes ( ); the main task of the overall system structure design is to assign the functional requirements of the system to the software modules, determine the function and call relationship of each module to form the software ( ) A, outline design and detailed design B
, Architecture design and object design
C. Deployment design and use case design D. Function design and module design
A. Use case diagram B. Module structure diagram C. System deployment diagram D. Class Diagram
Answer: A B

[Example] Among the following descriptions about the module structure design of the software system, the correct one is ( ) A.
When the fan-out of the module is too large, the lower-level module should be further decomposed into several sub-modules
B. When the fan-out of the module is too small, it should be properly Add the middle control module
C. The fan-in of the module is large, indicating that the complexity of the module is high
D. The fan-in of the module is large, indicating that the module has a high degree of reuse
Answer: D

Basic principles of system design:

Basic principles of system design: abstraction, modularization, information concealment, and module independence.

There are two criteria to measure the degree of module independence: coupling and cohesion.

The degree of cohesion, from low to high, is as follows:

cohesive classification definition remember keywords
accidental cohesion There is no relationship between processing elements within a module no direct relationship
logical cohesion Several logically similar functions are executed in the module, and which function is determined by the module through parameters Logical similarity, parameter decision
Gather in time A module formed by combining actions that need to be performed simultaneously Simultaneous execution
process cohesion A module completes multiple tasks, and these tasks must be executed according to the specified process specified process sequence
correspondence All processing elements within a module operate on the same data structure, or each process uses the same input data or produces the same output data. Same data structure, same
input and output
sequential cohesion Each processing element in a module is closely related to the same function and must be executed sequentially, the output of the previous functional element is the input of the next functional element Sequential execution, input as output
functional cohesion The strongest cohesion, all the elements in the module work together to complete a function and are indispensable complete synergy, indispensable

The degree of coupling from low to high is shown in the table below

Coupled Classification definition remember keywords
no direct coupling There is no direct relationship between the two modules, they are respectively subordinate to the control and call of different modules, and do not pass any information no direct relationship
data coupling There is a call relationship between the two modules, and the transfer is a simple transfer of data values, which is equivalent to the value transfer in high-level languages pass data value call
tag coupling The data structure passed between the two modules pass data structure
control coupling When a module calls another module, the control variable is passed, and the called module selectively executes a certain function in the module through the value of the control variable Control variables, choose to perform a function
external coupling When modules are combined through an environment other than software (such as I/O coupling modules to specific devices, formats, and communication protocols). software external environment
public coupling coupling between those modules that interact through a common data environment public data structure
content coupling When a module directly uses the internal data of another module, or transfers to another module through an abnormal entry Module internal association

[Example] Each processing element in a module is closely related to the same function and must be executed sequentially. The output of the previous processing element is the input of the next processing
element. Then the cohesion type of this module is ( ) cohesion
A, process B. Time C. Order D. Logic
Answer: C

[Example] It is known that module A transmits data structure X to module B, then the coupling type of these two modules is ( ) A
, data coupling B, public coupling C, external coupling D, mark coupling
Answer: D
Analysis: Special instructions are Data structures, not data, data structures are tag coupling

structured development

结构化分析与设计方法是一种面向数据流的传统软件开发方法,它以数据流为中心构建软件的分析模型和设计模型。结构化分析 (StructuredAnalysis,SA)、结构化设计 (Structured Design,SD) 和结构化程序设计 (structured Programming Design,SPD) 构成了完整的结构化方法结构化方法的分析结果由以下几部分组:一套分层的数据流图、一本数据词典、一组小说明(也称加工逻辑说明)、补充材料

数据流图DFD

基本图形元素:外部实体、加工、数据存储、数据流

数据流:由一组固定成分的数据组成,表示数据的流向在DFD 中,数据流的流向必须经过加工

加工:描述了输入数据流到输出数据流之间的变换,数据流图中常见的三种错误如图所示

加工3.1.2有输入但是没有输出,称之为“黑洞”
加工3.1.3 有输出但没有输入。称之为“奇迹”
加工3.1.1中输入不足以产生输出,我们称之为“灰洞'

数据存储:用来存储数据

外部实体(外部主体):是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地 (源)和系统所产生的数据的归宿地 (宿)

 

 

数据字典

数据流图描述了系统的分解,但没有对图中各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明

数据字典有以下4类条目:数据流、数据项、数据存储和基本加工

符号 含义 举例及说明
= 被定义为
+ x=a+b,表示 x 由 a 和 b 组成
[...|...] x=[a|b],表示 x 由 a 或 b 组成
{......} 重复 x={a},表示 x 由 0 个或多个 a 组成

加工逻辑也称为 “小说明” 。常用的加工逻辑描述方法有结构化语言、判定表和判定树3种

【例题】在结构化分析中,用数据流图描述 (  )。当采用数据流图对一个图书馆管理系统进行分析时,(  )
一个外部实体
A、数据对象之间的关系,用于对数据建模
B、数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能
建模
C、系统对外部事件如何响应,如何动作,用于对行为建模
D、数据流图中的各个细成部分
A、读者        B、图书        C、借书证        D、借阅
答案:BA

系统运行与维护

遗留系统 

遗留系统是指任何基本上不能进行修改和演化以满足新的变化了的业务需求的信息系统,它通常具有以下特点:

(1) 系统虽然完成企业中许多重要的业务管理工作,但仍然不能完全满足要求。一般实现业务处理电子化及部分企业管理功能,很少涉及经营决策。

(2) 系统在性能上已经落后,采用的技术已经过时。例如多采用主机/终端形式或小型机系统,软件使用汇编语言或第三代程序设计语言的早期版本开发,使用文件系统而不是数据库。

(3) 通常是大型的软件系统,已经融入企业的业务运作和决策管理机制之中,维护工作十分困难

(4) 没有使用现代信息系统建设方法进行管理和开发,现在基本上已经没有文档,很难理解

系统转换 

系统转换是指新系统开发完毕,投入运行,取代现有系统的过程,需要考虑多方面的问题,以实现与老系统的交接,有以下三种转换计划:

直接转换现有系统被新系统直接取代了,风险很大,适用于新系统不复杂.或者现有系统已经不能使用的情况。优点是节省成本。

并行转换新系统和老系统并行工作一段时间,新系统经过试运行后再取代若新系统在试运行过程中有问题,也不影响现有系统的运行,风险极小,在试运行过程中还可以比较新老系统的性能,适用于大型系统。缺点是耗费人力和时间资源,难以控制两个系统间的数据转换。

分段转换: 分期分批逐步转换,是直接和并行转换的集合,将大型系统分为多个子系统,依次试运行每个子系统,成熟一个子系统,就转换一个子系统。同样适用于大型项目,只是更耗时,而且现有系统和新系统间混合使用,需要协调好接口等问题。

数据转换与迁移:将数据从旧数据库迁移到新数据库中。有三种方法: 系统切换前通过工具迁移、系统切换前采用手工录入、系统切换后通过新系统生成

系统维护 

系统的可维护性可以定义为维护人员理解、改正、改动和改进这个软件的难易程度,其评价指标如下:

  1. 易分析性。软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能
  2. 易改变性。软件产品使指定的修改可以被实现的能力,实现包括编码、设计和文档的更改
  3. 稳定性。软件产品避免由于软件修改而造成意外结果的能力。
  4. 易测试性。软件产品使已修改软件能被确认的能力。
  5. 维护性的依从性。软件产品遵循与维护性相关的标准或约定的能力

系统维护包括硬件维护、软件维护和数据维护,其中软件维护类型如下

  1. 正确性维护:发现了bug而进行的修改。
  2. 适应性维护:由于外部环境发生了改变,被动进行的对软件的修改和升级
  3. 完善性维护:基于用户主动对软件提出更多的需求,修改软件,增加更多的功能,使其比之前的软件功能、性能更高,更加完善。
  4. 预防性维护:对未来可能发生的bug进行预防性的修改

【例题】对于遗留系统的评价框架如下图所示,那么处于"高水平、低价值"区的遗留系统适合于采用的演化策略为 (  )


A、淘汰        B、继承        C、改造        D、集成
答案:D

【例题】以下关于软件维护和可维护性的叙述中,不正确的是 ( )
A、软件维护要解决软件产品交付用户之后运行中发生的各种问题
B、软件的维护期通常比开发期长得多,其投入也大得多
C、进行质量保证审查可以提高软件产品的可维护性
D、提高可维护性是在软件维护阶段考虑的问题
答案:D

【例题】某企业由于外部市场环境和管理需求的变化对现有软件系统提出新的需求,则对该软件系统进行维护。的维护属于(  )维护
A、正确性        B、完善性        C、适应性        D、预防性
答案: C

Guess you like

Origin blog.csdn.net/weixin_47940048/article/details/132289861