Software Engineering | Final Review Exercises

1. Overview of software engineering

1. Choose

Whether the software is feasible and uncontrollable

Software engineering is an engineering discipline

Common software life cycle models: spiral model, incremental model, waterfall model, prototype model, fusion model, rapid application development model, agile model

The longest phase in the software life cycle is the maintenance phase

The waterfall model is a software life cycle model

Takes a structured life cycle approach, commonly referred to as the waterfall model due to its characteristic facets

In the structured waterfall model, the criteria defined in the requirements analysis phase will become the goals of the system testing phase in software testing

2. Short answer questions

What is a software crisis? What are the manifestations of the software crisis?

Answer: Specifically, the causes of the software crisis can be summarized as follows

  • Ignore the requirements analysis in the early stage of software development.
  • The development process lacks unified and standardized methodological guidance.
  • Incomplete or inaccurate documentation.
  • Ignore communication with users and development team members
  • Neglect the importance of testing.
  • Not paying attention to maintenance or making maintenance work difficult due to the above reasons
  • Professionals engaged in software development have insufficient knowledge and experience of the industry
  • There is no perfect quality assurance system

Specifically, the manifestations of the software crisis can be summarized as follows.

  • Software development costs and schedules are out of control.
  • The functions realized by the software system do not match the actual needs
  • poor software reliability
  • software is difficult to maintain
  • Software is often not properly documented
  • The proportion of software cost in the total cost of computer system remains high and increases year by year
  • The speed of software productivity improvement is far behind the trend of rapid popularization and deepening of computer applications

(4) What is the software life cycle? How many periods is it divided into? How many stages?

Answer: The software life cycle refers to the period from the conception of the product design, to the determination of software requirements, software design, software implementation, product testing and acceptance, putting into use, and the continuous update of the product version, to the final elimination of the product by the market. The whole process. The software life cycle consists of three periods: software definition, software development, and operation and maintenance, and is divided into eight stages: problem definition, feasibility study, demand analysis, general design, detailed design, software implementation and unit testing, comprehensive testing, and operation and maintenance .

(5) What is a software life cycle model? What are the main software process models?

Answer: The software lifecycle model, also known as the software process model, is a structural framework of all processes, activities and tasks implemented in system development, operation and maintenance across the entire life cycle from the definition of software project requirements to software operation and maintenance. Typical ones include waterfall model, rapid prototyping model, incremental model, spiral model, unified process, agile process, etc.

2. Software problem definition and feasibility analysis

1. Fill in the blank

The purpose of the feasibility study is to determine whether the problem can be solved in the shortest possible time with the minimum cost

The scope of economic feasibility study includes: investment benefit analysis , long-term strategy of the company's operation, cost and resources required for development, and potential market prospects.

The purpose of feasibility analysis is to study whether the software project is worth developing

Feasibility analysis is essentially a further simplification, compressing the requirements analysis and design process

Cost-benefit analysis starts with estimating the development cost of the system to be developed , and then compares and weighs it with the possible benefits

The purpose of cost-benefit analysis is to evaluate whether a software project is feasible from an economic point of view

The specific steps of feasibility analysis The final step is to prepare a feasibility report

The feasibility study mainly focuses on the following aspects : technical feasibility , economic feasibility , social factor feasibility and operational feasibility .

Feasibility analysis costs include direct costs and indirect costs , and benefits include tangible and intangible benefits .

System economics equals the increased revenue from using the new system plus the savings in operating costs from using the new system

The economic benefits of the system can be measured by indicators such as time value of money , payback period and net income

Net income refers to the difference between the cumulative economic benefits of the system and the investment during the software life cycle

The payback period is the time required for the accumulated economic benefits to equal the initial investment

The process of formulating a software plan requires determining the scope of work for the software , estimating the resources required for development , estimating software costs and schedules

The scope of software includes the function of the software system , the performance of the software system , the interface , the reliability

Data flow diagrams are also known as "data flow diagrams" or bubble diagrams

Some auxiliary diagrams of the data flow diagram, in which the symbol * indicates that a pair of adjacent data streams appear at the same time , + indicates that adjacent data streams A or B or A and B appear at the same time, and + in the circle indicates that two data streams only take one of

When drawing a data flow diagram, each process has at least one input data flow and one output data flow

When drawing a data flow graph, a data flow subgraph must correspond to a process of its upper layer . Each element in a data flow diagram must have a name

The data dictionary has five types of entries: data flow, data item, data storage , basic processing, and data source and data destination.

2. Choose

Feasibility is the possibility of system solution realization

Feasibility studies are carried out from the aspects of economy, technology, operation, law , social benefits, etc.

What is crucial to the productivity of software developers when developing software is the number of programmers

In software feasibility analysis, considering the feasibility from the perspective of software function is technical feasibility , and he needs to solve the problem of technical risk

The requirements analysis and design to be carried out in the feasibility study should be simplified and compressed

The feasibility study of software system includes economic feasibility , technical feasibility and social feasibility

Studying the availability of hardware resources is one aspect of conducting an operational feasibility study

Data flow graph, the components processed by computer are control flow, data flow, node

The description tool data dictionary used by the structured analysis method defines each graphic element in the data flow diagram

Hierarchical DFD is a description method, and its top-level graph describes the input and output of the system

Both data storage and data flow are data , only in different states

In the data dictionary, the source and destination entries in the following options are generally not included

The data field is a collection of data definition information, and the objects defined by it all contain data flow diagrams

3. Short answer questions

What are the main issues of the feasibility study?

The task of feasibility study is to decide whether to do or not to do a software project, and to analyze technical feasibility, economic feasibility, social feasibility, feasibility of development plan, and operational feasibility.

3. Demand analysis

1. Choose

Various tools can be used for demand analysis, but PAD is not applicable

The ER diagram contains basic components such as entities, attributes, and relationships

The content of the software specification should not include a detailed description of the algorithm

The basic idea of ​​the structured requirements analysis method is to decompose gradually from top to bottom

The problem in the software is sent in the requirement analysis stage , and the repair cost is the lowest

2. Short answer

Steps in Needs Analysis

Requirements analysis requires 4 steps, namely acquisition, modeling, description and verification. Obtaining requirements is essentially a process of requirements collection, which requires sufficient investigation and research. It usually starts with analyzing the data contained in the current system, analyzing the deficiencies of the current system in processing information, the main problems and urgency that users want to improve, etc. Common methods for collecting requirements include questionnaire survey, interview, field operation, and prototype establishment. The collected requirements mainly include functional requirements, performance requirements, reliability requirements, usability, man-machine interface requirements, constraints, error handling, etc. The core task of demand analysis is to establish an analysis model, that is, to establish a model describing the target system through analysis, extraction, induction, and abstraction of demand information from users. The traditional process-oriented software engineering methodology mainly uses data flow diagrams to establish the logical model of the target system. Requirements description refers to the preparation of various documents in the requirements analysis stage. In general, for large and complex software systems, three documents will be generated during the requirements analysis stage: system definition documents (reports used to describe user requirements), system requirements specifications, and software requirements specifications, respectively from different perspectives and levels Describe the requirements for project development. For simple small-scale software systems, it is only necessary to compile SRS. Because the results of requirements analysis are an important basis and basis for subsequent development, in order to improve the final quality of software products and reduce development costs, the requirements analysis results must be analyzed from four aspects: completeness, consistency, validity and reality. Correctness verification, and retroactive management of requirements changes to avoid confusion caused by the inability to trace the source of errors.

4. Overall design

choose

In the data flow-oriented software design method, the information flow is generally divided into transformation flow and transaction flow.

The advantage of using modular technology is that it is easy to test and debug, helps to improve software reliability, improves maintainability, and helps to organize and manage software development factories (select all)

The basic principles of software design are that the module size should be moderate, information hiding and localization

The data flow-oriented design method is to map the information flow into the software structure

The overall structure design of the software, the upper limit of fan-out at the top level is 5-9

5. Detailed design

1. Fill in the blank

The pharmacy of the structured programming approach is to use sequence, choice and loop structures

In order to generate a structured flowchart, it should be composed of three basic control structures sequentially combined or fully nested

PAD is a two-dimensional tree structure that expands to the right. The vertical line in the figure is the hierarchical line of the program.

In the detailed design stage, the tool to describe the logical structure of the program is the program flow chart

Three tools are commonly used to describe the process in detail: graphics, language, and tables

PDL has a strict keyword outer syntax for defining control structures, data structures, and module interface design

In addition to designing the algorithm in the module, the data structure in the module should also be designed

The most typical methods in process design are structured design, top-down, step-by-step refinement

Structured programming method referred to as SP, problem analysis diagram

NS diagrams can only express structured program logic

The document produced during the detailed design phase of the system is the detailed design specification

2. Choose

A method used to increase the efficiency and quality of programming is structured programming

The control execution flow of PAD is from top to bottom, from left to right

The main method used in software detailed design is structured design

PDL is pseudocode in the following languages

Data flow-oriented design method maps data flow to software structure

SC _

The task of detailed design is to determine the algorithm of each module

A description tool not used in the detailed design process is DFD

PDL is used in the software development process for detailed design

Parameters for software complexity metrics include size

The tools often used in the detailed design stage are PAD

The relationship between the upper and lower layers of the Jackson graph is a composition relationship

The Jackson method is to derive the program structure based on the data structure

6. Software coding and testing

1. Choose

In order to improve test efficiency, data with a high possibility of finding errors should be selected as test data

The purpose of software testing is to find software errors

The unit test is generally based on white box, and the test basis is the module function specification

The integration testing of the software is best performed by software designers who do not belong to the software development group

a test requires user representatives to participate

Software test cases mainly consist of input data and expected output results

In black box testing, the method that focuses on checking the combination of input conditions is the causal graph method

Black box testing is testing from the user's point of view, white box testing is from the developer 's point of view

White box testing method, also known as logic coverage method, is mainly used for unit testing

Boundary value analysis testing is not a white box testing technique

White box testing is a method of designing test cases based on the internal logic of the program

The purpose of software debugging is to find out where the error is and correct it

2. Short answer questions

Software testing should be divided into several stages. What is the key test content of each stage?

Software testing can be divided into four stages: unit testing, integration testing, system testing, and acceptance testing

Unit test, also known as module test, logic test or structural test, is a test for the correctness of the smallest unit of software design—a program module or a function module. Its purpose is to verify that each program unit can correctly implement the requirements of module functions, performance, interfaces, and design constraints in the detailed design specification, and to find possible errors that may exist inside each module.

Integration testing is also called assembly testing, comprehensive testing or joint testing. Usually all program modules are tested sequentially and incrementally on the basis of unit testing. Integration testing is to verify the interface relationship of program units or components, and gradually integrate them into program components or whole systems that meet the requirements of the outline design.

System testing is the testing of integrated hardware and software systems to verify and confirm that the system achieves its original goals. System testing is to check whether the complete program system can be correctly configured and connected with the system (including computer hardware, peripherals, network and system software, support platform, etc.) and meet user needs under the environment of real or simulated system operation. The main basis for system testing is the document "System Requirements Specification".

Acceptance testing , also known as delivery testing, is a software testing activity carried out after the software has completed unit testing, integration testing, and system testing, and before product release. Acceptance testing is further divided into Alpha testing (A testing) and Beta testing (B testing). Alpha testing is a test conducted by a user in a development environment, or a controlled test conducted by users within the company in a simulated actual operating environment , Beta testing is a test conducted by multiple users of the software in the actual use environment of one or more users

Seven, object-oriented technology and UML

1. Choose

What the actor says wrong is that the actor is an essential part of the use case diagram and thus he is a part of the target system . (Actually, an actor is not an integral part of the target system, but an external entity that interacts with the target system. Actors can be people, organizations, devices, or other systems, etc., that interact with the target system to meet its needs or achieve its goals)

Concepts that cannot be represented in state diagrams are classes

The relationship between computer and cpu, ram, etc. in the computer is the aggregation relationship Aggregation

A class diagram is a diagram expressing system classes and their interrelationships, which is the core of object-oriented design

Inheritance reflects a hierarchical relationship between classes, while composition reflects a whole-part relationship

Objects that are not part of the UML structure are interactive

Object-oriented features: abstraction, encapsulation lines. inheritance, polymorphism

Realization relationships are dashed in UML diagrams and white triangles point to

A configuration diagram is a diagram representing the set of nodes and the connections between nodes that make up a distributed system

In the comparison between use case and class, the class describes the internal structure of the system, and the use case can also describe the internal structure of the system is wrong (the use case describes the dynamic behavior view of the system)

Instance links describe the static relationship between objects

2. Application questions

The aircraft is composed of wings, fuselage, and cockpit, which is a combination relationship. The relationship diagram is as follows

In the class diagram below, three methods are defined in the interface Service. Among them, ClientA only uses the methodA method, ClientB only uses the methodB method, and ClientC only uses the methodC method. Redesign the class diagram according to the principle of interface separation

Briefly describe the relationship between aggregation (Aggregation) and combination (Composition), and illustrate with examples.

Geese formation is composed of wild geese, belonging to the aggregation relationship

1 wild goose has 2 wings, which belongs to the combination relationship

Eight, object-oriented analysis

choose

Encapsulation is to combine the properties and operations of objects to form an independent object

There are 4 relationships in UML, namely dependency, generalization, association and realization

The use case model diagram must be repeatedly communicated and confirmed with the user

Not a relationship between use cases is a dependency

An option that is not suitable as a use case for eCommerce sites is the shopping cart

Use-case modeling must be iteratively communicated with users and validated

Activity diagrams should be used for detailed description of use cases

The three system models to be further established in the system analysis of UML are object static model , object dynamic model and system function model.

Both classes and objects have attributes, the class describes the type of attributes, and the attributes of objects must have specific values

Sequence diagrams and collaboration diagrams are mainly used to model the control flow in use case diagrams and describe the behavior of use case diagrams

The modeling elements of sequence diagrams include objects , messages, chains, etc.

A sequence diagram describes the order in which messages are passed between a set of objects

In sequence diagrams, the symbols for return messages are dashed arrows

A state diagram can represent the behavior of an object during its lifetime, the sequence of states experienced, and the events that cause state transitions

A state diagram describes the state transitions sent by an object driven by different events

Nine, object-oriented design

choose

System architecture is used to describe the structure of the parts, the interfaces and the mechanisms they use to communicate

UML can describe the interconnection between hardware and the distribution of software systems on hardware units

The software system architecture is the description of the system use case class object interface and mutual interaction and cooperation

Hardware system architecture is the description of system construction, nodes and configuration

A component is the realization of the concepts and functions defined in the software system architecture in the physical system

Deployment diagrams consist of nodes and connections between nodes, describing the architecture of processors, devices, and software build runtimes

The basic elements of a deployment diagram are nodes. member. object. connect. depend on

Packages are a general mechanism for organizing elements into groups

The package diagram produced during the UML system analysis phase describes the system architecture hierarchy of the system

Guess you like

Origin blog.csdn.net/weixin_54232666/article/details/130791716