In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-15 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >
Share
Shulou(Shulou.com)06/03 Report--
1. Basic knowledge of system development
Requirement analysis and design scheme
Basic knowledge of software engineering
Software crisis
The main manifestation of Software crisis
1. The estimation of software development cost and schedule is not accurate.
two。 Users are not satisfied
3. The software is of low quality and poor reliability.
4. Software is often unmaintainable and errors are difficult to correct.
5. Lack of proper documentation
6. The proportion of software cost to the total cost of the system is increasing year by year.
7. The speed of software development can not keep up with the speed of computer development.
Software engineering
The development of large and complex software systems is a project. Software production and management must be organized according to engineering methods, and must go through a series of software life cycle stages, such as planning, analysis, design, programming, testing, maintenance and so on.
IEEE's definition of software engineering: software engineering is a systematic method for developing, running, maintaining and repairing software.
Software engineering methodology includes three elements: methods, tools and processes. Method refers to the technical methods to complete various tasks of software development; tools refer to the software engineering supporting environment provided for the use of methods; and process refers to the framework of a series of tasks that need to be completed in order to obtain high-quality software.
At present, the most widely used software engineering methodology is structured methodology and object-oriented methodology.
Software life cycle
In 1970, Boehm proposed the waterfall model of software life cycle (waterfall model), which typically depicts the phase division of software life cycle. The waterfall model divides the software life cycle into eight phases: problem definition, feasibility, requirements analysis, overall design, detailed design, coding, testing, and maintenance. The eight stages are summarized into three periods, the plan
Period, development period and operation period. Among them, the problem definition and feasible × × belong to the planning period, the maintenance belongs to the operation period, and the rest belong to the development period.
Overview of structured Methodology
The structured methodology that emerged after 1977, also known as life cycle methodology, uses structured technologies (structured analysis, structured design and structured implementation) to accomplish various tasks of software development. This methodology divides the software development life cycle into several phases, and then completes the tasks of the first phase in sequence.
Structured methodology has the following characteristics:
(1) stages
(2) postponement of implementation
(3) document management.
Structured analysis
Structured analysis (structured analysis,SA) is a data flow-oriented requirement analysis method, and its basic idea is to decompose layer by layer from top to bottom.
Data flow diagram and data dictionary are the tools of structured analysis, and the software requirements specification is the final result of the requirements analysis stage.
1, data flow graph
Data flow diagrams (data flow diagram,DFD) are used to describe the transformation of data streams from input to output.
The basic components of DFD: data streams, processing, files, and source / sink.
2, data dictionary
A data dictionary is a collection of information about data, that is, a set of definitions of all the elements contained in a data flow graph.
Data flow diagram and data dictionary constitute the logical model of the system.
There are four types of entries in the data dictionary:
(1) data item entry
(2) data entry
(3) File entry
(4) processing items.
3. Software requirements specification
The software requirements book expands the software scope identified in the software plan to develop a complete information description, a detailed functional description, appropriate inspection standards, and other data related to the requirements.
Structured design
System design mainly includes architecture design, interface design, data design and process design.
Structured design (structured design,SD) is a data flow-oriented design method, which is a top-down, step-by-step refinement and modularization process based on the documents generated by structured analysis (data flow diagram, data dictionary and software requirements specification). Structured analysis can be divided into summary design and detailed design. The task of the outline design is to determine the structure of the software system, the function of the module, the interface and the calling relationship between the modules. The task of detailed design is to design and implement details for each module.
1. The concept and principle of software design
(1) Modularization
A module is a collection of program elements such as data and executable statements that perform a particular task, usually referring to procedures, functions, subroutines or macro calls that can be accessed by name.
Modularization is to divide a software to be developed into several modules that can complete a certain sub-function, each module can be independently developed, tested, and finally assembled into a complete program.
Define the criteria for module size:
Decomposability
Assemblability
Understandability
Continuity
Protective.
(2) cohesion
Cohesion refers to a tight program in which the elements in a module are combined with each other. There are the following kinds of cohesion, from weak to strong:
Accidental cohesion
Logical cohesion
Instantaneous cohesion
Process cohesion
Communication cohesion
Sequential cohesion
Functional cohesion.
(3) Coupling
Coupling is a measure of interconnecting programs between different modules within a software structure. The strength of coupling depends on the complexity of the module interface, the point at which you enter or access a module, and the data passing through the interface.
The degree of coupling between modules strongly affects the understandability, modifiability, testability and reliability of the system.
The coupling can be divided into the following types, with the strength from main to low:
Content coupling
Common coupling
External coupling
Control coupling
Label coupling
Data coupling
Indirect coupling.
The principle of high cohesion and low coupling of modules is called the principle of module independence.
(4) depth, width, fan in and fan out.
Depth represents the number of layers controlled in the software structure
Width is the maximum number of modules at the same level in the software architecture.
Fan out refers to the number of subordinate modules directly called by the module
Fan out refers to the number of superior modules that directly call the module.
(5) scope and control domain
The scope of a module refers to the collection of all modules affected by a decision within the module. The control domain of a module refers to the collection of all modules that the module itself believes that the module calls directly or indirectly.
(6) predictability of function
Functional or predictive means that the same output can be produced for the same input data.
2. Summary design
The important task of outline design is to design the structure of the software, that is, to determine which modules the system is composed of, in order to believe the relationship between these modules.
The SD method uses structure diagram (structure chart) to describe the structure of the program. The main components of the program structure diagram are modules, calls and data.
(1) concrete steps of outline design
Step 1: review the basic system model
Step 2: review and refine the data flow diagram
Step 3: determine the information type of the data flow graph
Step 4: implement transformation analysis or transaction analysis according to the type of flow.
Step 5: further optimize the software structure diagram according to the software design principles.
(2) outline design specification
It is the final result of the outline design.
Detailed design
The fundamental goal of the detailed design phase is to determine how to achieve the required system and get an accurate description of the target system.
(1) structured programming
(structured programming,SP) the design method of step-by-step refinement from top to bottom and the control structure of single inlet and single outlet are adopted.
There are three basic control structures: sequential structure, IF_THEN_ELSE branch structure (selective structure) and DO_ while loop structure.
(2) process design tools
The tools that describe the process of a program are called design tools, which mainly include program flow charts, box diagrams (NMES diagrams), PAD diagrams and pseudo code (PDL).
(3) Man-machine interface design.
It mainly includes system response time, user help design, error information processing and command interaction design and so on.
(4) detailed design specification.
Overview of object-oriented Methodology
Object oriented = object (objects)
+ class (classes)
+ inheritance (inheritance)
+ message Communication (communication with message)
(1) object and encapsulation
Object is an entity used to describe objective things in the system, and it is a basic unit that constitutes the system.
Three elements of an object: object identification, attributes and services.
Encapsulation is an important principle of objects. It has two meanings: first, the object is an indivisible whole formed by the close combination of all its attributes and all services; second, the object is an opaque black box. The data that represents the state of the object and the code that implements the operation are encapsulated in the black box.
(2) Class
A class is an abstract definition of an object or group of objects that have the same properties and services.
Classes and objects are abstract descriptions of the relationship between concrete instances, and a concrete object is called an instance of a class.
(3) inheritance and polymorphism
Inheritance is defined as an object of a special class that has all or part of the properties of its general class.
Polymorphism means that attributes or services defined in a general class can have different data types or behave differently after they are inherited by a special class.
(4) message communication
A message is a service request made to an object, and it should contain the following information: the identity of the object providing the service, the name of the message, the input information, and the reply information.
Message communication is also an important principle in object-oriented methods, which is closely related to encapsulation. Message communication provides them with a unique dynamic contact way, so that their behavior can cooperate with each other to form an organic system.
Only by using object, class, inheritance and message communication at the same time is the true object-oriented method.
Advantages of object-oriented methodology
(1) consistent with human habitual way of thinking
(2) good stability
(3) good reusability
(4) it is easy to develop large software products.
(5) good maintainability.
Object-oriented analysis
1. Brief introduction of OMT method
The OOA (Object-Oriented Analysis,OOA) model of OMT (Object Modeling Technique) method includes object model, dynamic model and functional model.
The object model represents the "data" nature of static, structured system data. It is usually represented by a class diagram.
The dynamic model represents the "control" property of the instantaneous, behavioral system, which defines the legal change sequence of the objects in the object model. It is usually represented by a state diagram.
The functional model represents the "functional" nature of the changing system, and it indicates what the system should "do", so it more directly reflects the needs of users for the target system. It is usually represented by a data flow graph.
2, establish the object model
The object model of complex system usually consists of the following five layers: class and object layer, structure layer, topic layer, attribute layer and service layer. It corresponds to the five main activities of establishing object model: determining classes and objects, determining structure and association, dividing topics, defining attributes and defining services.
3. Establish a dynamic model
Step 1: script a typical interactive behavior.
The second step: extract the event from the script and determine the action object that triggers the first event and the target object that accepts the event.
The third step: arrange the order of events to determine the possible state of the first object and the software relationship between the states.
4. Establish a functional model
The functional model in the OMT method is actually the data flow graph in the structured method.
Object-oriented design
1. The relationship between OOA and OOD
2. Design problem domain components
3. Design human-computer interaction components
4. Design the task management unit
5. Design the data management unit.
II. Development environment
Software tools
Software tools are used to assist software development, operation, maintenance, management, support and other activities in the process of software, usually known as CASE (computer aided software engineering, computer-aided Software Engineering) tools. Usually, software tools can be divided into software development tools, software maintenance tools and software management tools.
1. Software development tools
(1) requirements analysis tools
(2) Design tools
(3) programming tools
(4) testing tools.
2, software maintenance tools
(1) version control tools
(2) document analysis tools
(3) developing information base tools.
(4) reverse engineering tools
(5) reengineering tools.
3. Software management tools
(1) Project management tools
(2) configuration management tools
(3) Software evaluation tools.
Integrated development environment
Software development environment refers to the software system that supports the development of software products.
Integrated software development environment is a kind of software development environment that integrates software tools that support a variety of software development methods and development models and support the whole process of software development.
The integrated development environment usually consists of two parts: tool set and environment integration mechanism. The environment integration mechanism mainly includes data integration mechanism, control integration mechanism and interface integration mechanism.
Software testing and software review
1. The purpose of software testing
The purpose of software testing is to find as many errors and defects in software products as possible before the software is put into production.
2, test classification
Software testing can be divided into unit testing, integration testing and system testing.
(1) Unit test
Unit testing (unit testing), also known as module testing, can usually be placed in the programming stage, where programmers test their own modules to check whether they have achieved the functions and algorithms specified in the detailed design specification. Unit testing mainly finds errors in programming and detailed design, and the unit plan should be made in the detailed design phase.
Unit testing focuses on testing the module from the following aspects: module interface, local data structure, important execution path, error handling and boundary conditions.
(2) Integration testing
Integration testing (integration testing), also known as assembly testing, is to test the programs assembled by each module, the main goal is to find the interface and communication problems between modules.
(3) system testing
System testing is the last and most complete test in software testing. it is carried out on the basis of unit testing and integration testing. it examines the functional and performance requirements of the system from the overall perspective. The system test plan should be developed during the requirements analysis phase.
Usually, system testing includes confirmation test (validation testing) and acceptance test (acceptance testing).
3. Test method
(1) White box testing
Also known as structural testing, mainly used in the unit testing phase.
(2) Black box test
Also known as functional testing, it is mainly used in the integration testing and confirmation testing phase.
(3) Grey box test
Somewhere between the first two. Mainly used in the integration testing phase.
Software review
In a narrow sense, "software review" usually refers to the review of software documents and source programs. In a broad sense, "software review" also includes review combined with software testing and management review. Software review includes software requirements review, summary review, detailed review, software verification and validation review, functional inspection, physical inspection, comprehensive inspection and management review.
Test design and management
1. Test case design for white-box testing.
White-box testing designs test cases according to the internal logic of the software. The commonly used technology is logic coverage, that is, to examine the degree of coverage to the program logic when running the program under test with test data. There are six main coverage criteria: sentence coverage, decision coverage, conditional coverage, decision / conditional coverage, conditional combination coverage and path coverage.
2. Test case design for black box testing.
Black box testing designs test cases according to the functions specified in the software requirements specification, regardless of the internal structure and location of the software.
Rational algorithm.
Commonly used black box testing techniques include equivalent class division, boundary value analysis, error inference, causality diagram and so on.
3, error graph and convergence
4. Wrong injection method
5, troubleshoot
6. Software test management criteria
7. Test plan and test analysis report.
IV. Project management
Make a project plan
The process of making a project plan is called planning. project planning is the process of predicting the future, determining tasks, estimating problems that may be encountered, and proposing effective solutions, policies, measures and means to accomplish tasks and solve problems, as well as the necessary activities and work outcomes.
Quality management and quality evaluation
Software quality is the degree to which the software is consistent with the clearly stated functional and performance requirements, the development standards clearly described in the document, and the implicit characteristics that any professionally developed software product should have.
Quality Control
(1) quality needs analysis
(2) quality plan
(3) quality assurance
(4) quality control
(5) quality improvement.
Quality assessment
(1) functionality
(2) Reliability
(3) availability
(4) efficiency
(5) maintainability
(6) portability.
Process management
Process management is the kind of activities needed to ensure that the project is completed on time. Process management mainly includes project work decomposition. Project schedule formulation and project schedule control, etc.
Technology and method of process Management
(1) Gantt diagram
(2) PERT diagram and critical path
(3) Compression of duration
(4) Resource balance
(5) the application of jet lag.
Configuration management
The basic concept of software configuration management.
(1) Software configuration items
Software configuration items refer to all the information generated in the process of software development, including: source programs and executable programs; software documents; data.
(2) baseline
A baseline refers to a software configuration item that has been formally reviewed. IEEE defines the baseline as: in the software that has passed the formal review
Product or software documentation that can be used as a basis for further development and can be changed only through a formal change control process.
1. Main tasks of software configuration management
There are five main tasks: task identification, version control, change control, configuration audit and configuration report.
Personnel planning and management
Personnel planning and management refers to the set of activities needed to effectively use the people involved in the project.
The main contents of personnel planning and management
(I) organizational and human resource planning
(2) personnel acquisition
(3) manage the work of project members
(4) team building.
Techniques and methods of personnel planning and management
(1) to realize the balanced optimization of human resources by using network planning technology and system engineering model.
(2) Organization chart
(3) schedule of responsibility assignment
(4) conflict management
(5) training.
Document management
The guidelines for the compilation of GB8567-1988 computer Software Product Development documents approved and issued by the National Bureau of Standards in January 1988 stipulates that 14 kinds of documents should be produced in the process of software development.
A, feasible × × report
B, project development plan
C, software requirements specification
D, data requirements specification
E, outline design specification
F, detailed design specification
G, database design manual
H, user manual
I, operation manual
J, module development file
K, test plan
L, test analysis report
M, monthly development progress report
N, project development summary report.
High-quality documents reflect: pertinence; accuracy; clarity; completeness; flexibility.
In the process of software development, the change procedure of software documents is: proposal-review-review-approval-implementation.
The role of development and organization
1. Democratic system
2. Technical authority system
3. Project manager system.
Cost organization
Cost organization includes project resource planning, cost estimation, cost planning and control and other activities. The purpose of cost organization is to predict the planned project cost, control the project cost and ensure that the project is completed within budgetary constraints.
The main contents of cost organization
(1) Resource planning
(2) cost estimation
(3) draw up a cost plan
(4) cost control
(5) final financial accounts.
Techniques and methods of cost Organization
(1) cost breakdown structure (CBS)
(2) earned value analysis
(3) Analogical estimation method
(4) Parameter model method
(5) bottom-up estimation
(6) computer estimation software
(7) cost change identification and change control system.
Risk management
The main activities are risk identification, risk estimation, risk assessment and risk control.
Fifth, the auditability of the system
System audit is a complete and effective inspection and evaluation of system planning, development, use and maintenance and other related activities and products by objective standards, which are independent of the third party of system developers and system users.
The system audit covers the life cycle of the whole system, the audit object covers all the activities and intermediates of the whole system, and includes the external environment related to the implementation of the system.
Audit method
According to the life cycle of the system, system audit can be divided into planning audit, development audit, executive audit, maintenance audit and management audit covering the whole system cycle by letter.
Audit trail
Audit trail is the pipeline of system activities.
VI. Knowledge of system operation and maintenance
System operation
System operating environment management
System running environment management includes hardware environment, software environment, network environment and database environment.
System cost management
Seven links: cost prediction, cost decision-making, cost planning, cost control, cost accounting, cost analysis, cost assessment, of which the two core contents are cost control and cost accounting.
System operation
Job scheduling
Job scheduling provides omni-directional functions for the full automation of workload management, including job setting, scheduling, monitoring and testing of execution results.
Data Icano management
There are parallel Icando O mode and serial Ipicuro mode.
User management
The main task of user management is to classify and manage the basic information, account number and account information of network users.
The ID number registered by the user is the unique identity of the user in the network.
Equipment and facility management
1. Power supply
2. Air conditioning equipment
3. Equipment management
4. Facility safety management.
System fault management
The fault management process includes three steps: finding the fault, separating the fault, and repairing the fault.
Safety management
Performance management
System operation tool
1. Automatic operation tools
2. Monitoring tools
3. Diagnostic tools.
System conversion
1. Transfer to the running phase
2, run the test
3, version control
Version control includes version management, system release, version identification and release management.
System operation service standard
The main body of computer system operation service execution includes: (1) system user unit; (2) system development unit; (3) system distribution unit; (4) professional technical service unit.
The service standard of the system operation defines the service content, service mode, service charge standard and breach of contract and other terms.
VII. System maintenance
System maintenance is the activity of modifying the system in order to correct errors or meet new requirements during the refurbishment period from the delivery of the system to the elimination of the system.
Type of maintenance
(1) corrective maintenance
(2) Adaptive maintenance
(3) maintenance of perfection
(4) Preventive maintenance
Implementation of maintenance
1. Daily inspection
2. Regular maintenance
(1) virus prevention and treatment
(2) data backup
(3) data collation
(4) troubleshooting
(5) hardware cleaning
(6) maintenance of computer hardware, restoration of computer system, maintenance of computer network, debugging, etc.
3, pre-maintenance and post-maintenance
4, remote maintenance
Hardware maintenance
Hardware maintenance refers to the process of repair, improvement, debugging and testing of the system in order to ensure the continued use of the hardware or to meet new needs after the hardware is delivered to users.
Hardware maintenance is also divided into corrective maintenance, adaptive maintenance, perfect maintenance and preventive maintenance.
Software maintenance
The factors that affect the maintainability of the software are understandability, testability and modifiability.
The object closure mechanism, message communication mechanism, inheritance mechanism and polymorphism mechanism of the object-oriented method fundamentally improve the software.
Maintainability.
The principles of modularization, information concealment, high cohesion and low coupling in structured methodology also improve maintainability.
Software maintenance management refers to the maintenance process management in order to ensure the maintenance quality, improve the maintenance efficiency and control the maintenance cost. it requires that the "modification" of the software needs to go through the steps of application, evaluation, approval, implementation, verification and so on.
The core of software maintenance management is maintenance evaluation and maintenance verification. The main work of maintenance assessment includes: determining the rationality and priority of maintenance application, determining the feasibility and time and cost of maintenance, formulating maintenance strategy and maintenance plan, etc. Maintenance verification mainly examines whether the modified software has achieved the maintenance goal and whether the software documents have been modified accordingly.
Maintenance contract
There are usually four ways to maintain a computer system: (1) maintenance by the user of the system, (2) maintenance by the system development unit, (3) maintenance by the system distribution unit, and (4) maintenance by a professional technical service company. The latter three cases require the signing of maintenance contracts.
The maintenance contract shall specify the terms of maintenance content, maintenance mode, maintenance responsibilities, charging standards and liability for breach of contract.
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.