software development

Announce Upload video
The behavior of writing specified software according to user requirements
open 2 entries with the same name
Collection
zero Useful+1
zero
Software development is built according to user requirements software system Or the software part of the system. Software development includes requirements capture requirement analysis , design, implementation and testing systems engineering Software generally uses some kind of Programming language To achieve. Usually Software development tools It can be developed. Software is divided into system software and application software, not only including programs that can run on computers, but also files related to these programs are generally considered as part of software. software design The general process of ideas and methods, including the functions of the design software, the algorithms and methods implemented, and the overall software Structural design and Module design , programming and debugging, program joint debugging and testing, and then writing and submitting the program. [1]
Chinese name
software development
Foreign name
Software development
Meaning
The behavior of writing specified software according to user requirements
Nature
Computer terminology

Phase division

Announce
edit

1 Plan

Overall definition of the problem to be solved, including understanding the user's requirements and real environment social factors Research and demonstrate the feasibility of this software project from three aspects Feasibility study report , discuss solutions to problems, estimate the cost of available resources (such as computer hardware, system software, manpower, etc.), the benefits to be achieved and the development progress, and formulate the implementation plan for completing the development task.

2 Analysis

Software requirement analysis is a systematic analysis and assumption of what kind of software to develop. It is a way to eliminate the rough and extract the essence, eliminate the false and retain the true, correctly understand the user's needs, and then use the software engineering development language (form function specification , that is, the requirements specification). The basic task of this stage is to work with the user to determine the problems to be solved and establish the software logical model , prepare the requirement specification document and finally get the user's approval. requirement analysis The main methods of Structured analysis method Data flow chart and data dictionary Etc. The work of this stage is to design and establish corresponding software system Of Architecture , and set the entire System decomposition Into several Subsystem Or module, defining the interface relationship between subsystems or modules, defining the specific design of each subsystem, and writing software Outline design and Detailed Design Specification , database or data structure Design specification, Assembly test Plan. In any software or system development The initial stage of user demand In order to prioritize which functions should be implemented, which specifications should be adopted, and which restrictions should be set in the following system development process. System Engineer Eventually, it will be completed accordingly design scheme On this basis, the subsequent program development system function And performance descriptions and limitations.

3 Design

software design It can be divided into Outline design and detailed design Two stages actually software design The main task of Executable program Of Program unit It can be a function, procedure subroutine An independent program and data with program description can also be a functional unit that can be combined, decomposed and replaced. Module, then proceed Module design Outline design is Structural design Its main goal is to provide software module structure , using Software structure diagram express. The primary task of detailed design is to design the program flow, algorithm and data structure The secondary task is to design the database. The common method is Structured programming method

4 Coding

Software coding refers to software design To convert into a program acceptable to the computer, that is, to write a program with a Programming language Represented“ source program List ". Fully understanding the characteristics and programming style of software development languages and tools will help development tool And ensure the development quality of software products.
In the current software development, except for special occasions, the 1980s high-level language It is replaced by an object-oriented development language. And the object-oriented development language and development environment are mostly integrated, which greatly improves the development speed.

5 Test

software test The goal of is to find as many errors as possible at a small cost. The key to achieving this goal is to design an excellent set of tests Use Case (Test data, functions and expected output results form test case )。 The key to how to design an excellent test case is to understand test method Different test methods have different test case design method. Two common test methods are White box method The test object is source program , based on the internal Logical structure To find software programming errors, structural errors and data errors. Structural errors include logic data stream , initialization, etc. The key of use case design is to cover as many internal program logic results as possible with fewer use cases. White box method and Black box The method is based on the description of software function or software behavior, and the interface, function and structure errors of software are found. The interface error includes internal/ External interface resource management , integration, and system errors. The key of black box use case design is also to cover module output and Input interface

6 Maintenance

Maintenance refers to the software products after the software development (analysis, design, coding and testing) has been completed and delivered for use software engineering Activities of. That is to say, according to the running condition of the software, the software shall be properly modified to adapt to the new requirements and correct the errors found in the running. Prepare software problem report and software modification report.
If it takes one to two years to develop a medium scale software, after it is put into use, its operation or working hours It may last five to ten years. Then its Maintenance phase It is also the five to ten years of operation. During this period, people almost need to start to solve various problems encountered in the development stage, and also solve some problems unique to the maintenance work itself. Doing a good job in software maintenance can not only remove obstacles and make the software work normally, but also expand its functions, improve its performance and bring obvious benefits to users economic performance Unfortunately, yes software maintenance The emphasis on work is often far less than that on software development. In fact, compared with the software development, the workload and cost of software maintenance are much larger.
In the actual development process, software development is not from the first step to the last step, but at any stage, there is usually one or several steps of backtracking before entering the next stage. stay Test process The problems in may require modification of the design, and the user may propose some needs to modify the requirements specification.

Facility demand

Announce
edit

1 Development platform

Software development platform It originates from the tedious process of practical development. Developers summarize and encapsulate commonly used functions, classes, abstractions, interfaces, etc. in practice, making them reusable“ middleware ”However, with the maturity and versatility of "middleware", its functions are more powerful and can meet the requirements of enterprise level customer demand The software development platform came into being.
The platform is Scientific research achievements The convergence is also a symbol of the stage platform period, which provides a basis for the industry to enter new research and development fields. Because the platform Enterprise core competitiveness The improvement is very obvious. The application of software development platform in the domestic management software market has become a trend.
because development environment , developers Functional positioning Industry background The platforms of different brands are quite different.

2 Development environment

Software development environment In Europe, it is also called Integrated Project Support Environment (IPSE). The main components of the software development environment are software tool interface It is a unified interaction between software development environment and users Dialogue system It is an important quality indicator of software development environment. Store various software tool Produced by processing software product Or semi-finished products (such as source code test data And various documents) Environment database It is the core of software development environment. Links between tools and Mutual understanding Are stored in Information base In shared data Realized.
The software development environment database is a knowledge-based information database for software workers data object It is diversified and intelligent. The software development database is used to support various software tool , especially Automatic design tools Compiler Active or passive work of etc.
The primary SDE database generally contains general subprogram library and reconfigurable program processing Information base , module description and interface information base software test And error correction basis information base; A relatively complete SDE database should also include feasibility and demand information archives, stage design detailed archives, test driven databases software maintenance Archives, etc. A further requirement is to automate the whole process from software planning to implementation and maintenance, which requires SDE database system It is intelligent, and the basic intelligent result is Software coding Automatic implementation and optimization of software engineering projects Self analysis And summary. Such intelligent results should also be actively reconstructed and learned to enrich the knowledge, information and software accumulation of SDE database. At this time, the software development environment software engineering Appropriateness of personnel External control Or help gradually move towards high intelligence and automation.
The basis of software implementation is computer language. Today, computer language development to Algorithmic language Database Language , Intelligent Simulation language Among dozens of important algorithmic languages, C& C++ Language has increasingly become a close partner of the vast number of computer software workers, not only because of its powerful function and flexible structure, but also because it provides highly structured syntax, simple and unified software construction mode, making the design and construction of subprogram library, the basic component of SDE database mainly constructed by it, extremely convenient.

3 Development language

Common software development languages: JAVA C/C++ /php/JSP/ASP/POWERBUILDER/DELPHI/ .NET /C #/vb/etc.
The most important database for application is MySQL/SQLSERVER/ORACLE.

Professional needs

Announce
edit

Professional training

Software development majors mainly cultivate morality, intelligence and physique Comprehensive development It has certain advanced practicality in computer software and hardware maintenance, network establishment, maintenance management Technical talents Through the study of this major, can skillfully master the use, maintenance and skills of common computer software; In terms of hardware, students should understand the development of computer hardware and master it Computer assembly Be able to skillfully use application software to detect Computer performance . The scope of the fault and the general handling method of hardware fault; In terms of network, students should master the technical characteristics of today's popular networks, master network engineering network maintenance network security And application knowledge. Be competent for the design, establishment network maintenance , and simple Construction and maintenance of website

Training objects

book Professional students Mainly learn computer fundamentals, receive basic training in software application, and have application software Solve practical problems Of Basic ability

Employment direction

The suitable job for graduates of this major is computer Programmer It is suitable for skillfully developing software according to engineering ideas software test Can take various positions enterprises and institutions And all levels engineering construction The computer software and hardware maintenance, network establishment and maintenance of departments and management departments can also be engaged in computer research and application, software development and other work. It can be divided into the following aspects:
one Visual programming Master programming methods and Visualization technology , proficient in a visual platform and its software development technology. Get Delphi programmer series Java Primary or VB Development expert certification. Employment direction: visual programming programmers in enterprises, governments, communities, various schools, etc.
2. WEB application program design has artistic foundation and webpage animation Design capability , master the design technology of interactive webpage program, and be able to Website construction And maintenance. obtain Macromedia Multi-Media Interactive designer Or Delphi Junior programmer Or Delphi fast network development engineer certification. Employment direction: enterprise, government, community, various schools and other web application programmers.
three software test Master the basic principles, methods and Organizational management , proficient Software testing tools Get ATA Software Test Engineer Or Delphi Junior programmer Or Java junior programmer certification. Employment direction: enterprises, governments, communities, various schools, etc Software Tester
four Database management Can be applied Relational paradigm conduct Database design , proficient SQL Language , competent database server Management and application work. obtain Oracle Database Management or SQL Server database application or Windows XP Application authentication. Employment direction: medium and large enterprises, governments, communities, schools and other departments Database administrator
5 Graphic and image production Proficient in internationally popular graphic/image production tools (such as CorelDraw, Photoshop, Pagemaker, etc.). obtain Graphic designer Relevant certification. Employment direction: Advertising production Companies, architectural design companies, packaging and decoration design companies, living rooms decoration company Publishing and printing Company.
6. Familiar with network construction technology network structure And networking methods, master networking methods, and be able to use tools to analyze and eliminate common problems Network failure Get Cisco routing configuration or Huawei Network engineering or AMP Application Engineer authentication. Employment direction: network construction engineers in enterprises, governments, communities, various schools, etc.
seven Network system Management Master the basic knowledge and application skills of network system management, and be able to set the security of network system. Obtain Window2000 Server or TurboLinux TLCE or Cisco routing configuration expert certification. Employment direction: enterprises, governments, communities, various schools and other networks system administrator
Multimedia production has the ability of multimedia programming and multimedia production planning. Basic mastery Object-oriented programming And modeling, modeling design, scene design Split shot Principles and other skills. obtain Multimedia Design Teacher related certification. Employment direction: Multimedia design and production company, animation art production and publishing company, advertising production company.
9 Computer office application Proficient in office automation application and management, familiar with server installation, management and maintenance, based on application server Related services and software systems, with network security settings for servers, e-mail, web page publishing FTP OA , BBS and other systems. Employment direction: enterprises, governments, communities, various schools, etc system management

Software development tools

Software development tools Is used to assist Software life cycle Computer based tools for processes. Tools can usually be designed and implemented to support specific Software Engineering Methods To reduce the burden of manual management. And Software Engineering Methods Similarly, they tried to software engineering More systematic, the types of tools include tools that support a single task and tools that cover the entire life cycle.
Software Requirements Tools, including requirements modeling tools and requirements tracking tools.
Software design tools are used to create and check software design. Because of the diversity of software design methods, there are many kinds of such tools.
Software construction tools, including Program Editor compiler and Code generator interpreter and debugger Etc.
Software testing tools , including testing generator Test execution framework, test evaluation tools Test management tools and performance analysis Tools.
Software maintenance tools , including understanding tools (e.g Visualizer )And reengineering tools (such as refactoring tools).
software configuration management tool , including tracking tools, version management tools, and release tools.
software engineering Management tools, including project plan And tracking tools, risk management tools and measurement tools.
software engineering Process tools, including modeling tools, management tools and software development environment.
Software Quality tools , including Inspection tools And analysis tools

Industry division

Announce
edit

1 Mobile phone

Mac OS Apple Of), Linux Palm (the biggest feature is that it cannot be backstage), BlackBerry (Blackberry) Windows Phone WP , good system,) Android (Android, a very good system that emerged in 2007), as well as several new systems, Samsung And intel Joint development Mozilla FireFox OS, N900 maemo

2 Computer

Enterprise management software , such as MES system software, OA system software CRM system software HR system Software ERP systems software

Contract related

Announce
edit
Entrusted software development is generally to prepare software suitable for the production or business characteristics of the user (the client). Such software is usually unavailable in the market or can be used only after being purchased in the market and needs to be modified. However, the user does not have the ability to develop or modify software, and must entrust others in certain software to develop The organization that modifies software capability is engaged in this work. Although the entrusted party is an expert in software development, he may know little about the industry or specific production or operation characteristics and methods of the entrusted party. Therefore, there are many matters to be clarified in the software contract signed by both parties.
Notes to the Client
1. Both parties of the contract shall clearly agree on the project training conducted by the trustee to the client and the payment of training fees.
2. Both parties of the contract shall clearly agree on the total price of software development and the price of each part.
3. Both parties of the contract shall clearly agree that the trustee shall provide progress report How and when.
4. After receiving the delivery from the trustee, the client shall immediately test and evaluate the delivery to confirm whether it conforms to the functions and specifications of the developed software.
5. The Client shall provide the Trustee with relevant information and materials, especially the information and materials related to the Client's requirements for the functions and objectives of the developed software, to clarify quality requirement
6. Both parties of the contract shall clearly agree on the software functions, objectives, requirements composition and Related technologies The right to consult or seek advice from the trustee.
7. The entrusting party shall clearly agree that the entrusted party shall software maintenance And support services.
Notes of trustee
1. When the trustee needs to increase the development cost after completing the software development, it shall clearly agree with the trustee on how to deal with it.
2. The flexible time for completing the software development shall be agreed in the contract to avoid the responsibility of the client for failing to complete the software development within the time specified in the contract due to the client's calculation error Liability for breach of contract
3. Both parties of the contract shall clearly agree that the trustee shall submit the requirements specification Outline Design Specification Detailed Design Specification The specific time of.
4. Both parties of the contract shall clearly agree on the time and method of the client's reply after the trustee submits the progress report.
5. Clarify the copyright ownership of the developed software.
Software copyright There are two kinds of attribution of processing method First, the software copyright belongs to the entrusting party; The second is that the software copyright belongs to the entrusted party. In practice, the following solutions can be taken, that is, the copyright of the software belongs to the trustor, and in turn, the trustor gives the trustee permission to use the software within a certain range, such as allowing the trustee to use routine Develop other software, etc., so that both parties can get what they need.
6. The trustee shall agree on the time when the client will issue a written acceptance document or submit a defect report after inspecting the software and receive or issue the defect report.
Precautions of the Trustor and the Trustee
1. Both parties of the contract shall clearly agree Contract items Whether it can be subcontracted, and if so, the scope of subcontracting shall be specified.
2. Both parties of the contract shall clearly agree on the purpose of software development, processing objects, main functions and objectives of the software, and what should be achieved Technical indicators
3. Development progress
① Both parties of the contract shall clearly agree on reasonable software system Time of commissioning.
② Both parties of the contract shall clearly agree on the delivery time and progress of the developed software.
4. Ownership of intellectual property
① If the contract stipulates that the intellectual property of the software system belongs to one party, the use right and scope of authority owned by the other party shall be clearly specified.
② Both parties of the contract shall clearly agree on the ownership of the intellectual property of the developed software, whether it is jointly owned or owned by one party.
5. Acceptance
Acceptance check development by mandate Both parties of a software contract are very important, and they are related to how to confirm the following issues.
① After receiving software program And how long after the first batch of documents, the testing of the software will be completed, and how long will the client have the right to make sure that the quality of the software program does not meet the requirements of the contract technical standard The client is required to modify the procedure to meet the standards specified in the contract.
② Who should be responsible for the cost of program modification.
③ How long should the entrusted party complete Modify program And when, where and in what way the modified software should be handed over to the entrusting party.
④ How long should the client complete the second test after receiving the modified software, and how long should the client complete the second test The The results of the second test shall be notified to the entrusted party.
⑤ , such as the second test computer program If the technical standard requirements specified in the contract have not been met, does the entrusting party have the right to refuse to accept the procedure, and whether it has the right to require the entrusted party to comply with the contract Claim clause Make compensation.
⑥ If the entrusting party wants to inform the entrusting party of the conclusion of the first or second test on schedule, can it be deemed that the entrusting party has accepted the software developed by the entrusting party.
⑦ If the program documents are delivered in two times, within how long after the entrusting party actually accepts the software, the entrusted party shall deliver the second batch of documents to the entrusting party.
6. Delivery instructions
① Both parties of the contract shall clearly agree on the form and content of the documents to be delivered.
② Both parties to the contract shall clearly agree on the time for the client to review various instructions submitted by the trustee.
③ Both parties to the contract shall clearly agree on how to solve problems such as the client's objection to the instructions submitted by the trustee.
The two parties to the contract did not clearly agree on how to solve the problem when the client disagrees with the instructions submitted by the trustee. This leads to disputes between both parties of the contract.
7. Evidence
Contract signing After that, both parties should keep it properly contract as well as Main contract , relevant credentials, relevant Accounting information And others Letter of Commitment Agreement and other contract annexes.
② When the other party refuses to accept letters and other documents, it shall Notary Institution Or other departments to notarize or retain evidence.
③ It shall be strictly in accordance with laws and regulations To notarize and retain the evidence.
④ In accordance with Agree to terminate the contract Or claim to terminate the contract according to legal matters, the evidence notifying the other party to terminate the contract shall be kept.
8. Both parties of the contract shall clearly agree Project change Conditions.
9. Both parties of the contract shall clearly agree on the name of the software development system, which belongs to the software of different parties.
10. Confidentiality
① Confidentiality object: both parties of the contract shall clearly agree on the confidentiality object, which shall be detailed, listed by example, and also agree on some specific circumstances catalogue of exceptions
② Confidentiality responsibility: the parties shall clearly agree on trade secret Both bear Confidentiality obligations Either party shall not leak without authorization, or bear corresponding responsibilities.
Confidentiality period : The specific confidentiality period of the confidential matters in the contract should be agreed, or there is only an overview but no specific time period point of time
Confidentiality Independence of the contract: Both parties can agree that, regardless of whether the contract is changed, dissolved or terminated, the confidentiality clause of the contract will continue to be effective without its restrictions, and both parties shall continue to assume the agreed confidentiality obligations.
11. Whether the rights and obligations of both parties can be transferred.
12. Signing details
① The contract shall specify the information of both parties. Such as the name, address, legal representative or main person in charge, account opening financial institution, account number and telephone number of the party concerned, Postal Code , the date of signing the contract. Place of signing the contract, etc.
② Both parties shall sign clear and correct signatures. If the party concerned is a unit, it shall also be stamped with official seal.
③ Signing time: Both parties shall clearly indicate the signing time at the end of the contract.
④ The terms of the contract shall be clear, specific and precise, and the imprecise terms and expressions such as "basic", "as far as possible", "if possible", "should" and "latest" shall be prevented from appearing in the contract.
① In case of force majeure, one party shall inform and prove to the other party in a timely manner as agreed, and shall take timely measures to prevent the loss from expanding.
② Both parties shall clearly agree on the scope of force majeure, notification method and Method of proof Whether both parties can terminate the contract due to force majeure, whether they can claim compensation for performance problems caused by force majeure, and under what circumstances.
③ After the occurrence of force majeure, one party shall inform the other party in a timely manner according to the agreement, and the evidence shall be kept when proving.
14. Both parties shall pay attention to the other party in the process of performance Subject change If there is any change in the dissolution situation, attention should be paid to which legal person or organization inherits its rights and obligations, and relevant evidence should be collected to prove the above facts.
15. Dispute resolution
① As agreed Litigation jurisdiction The court can only agree that the defendant Domicile , place of contract performance, place of contract signing, place of plaintiff's domicile, contract Subject matter The local court shall have jurisdiction, and only one of the courts shall have jurisdiction. If the agreement is not clear, two or more courts are chosen for jurisdiction, or a court other than the above five courts is agreed, or both arbitration and litigation are agreed, the dispute settlement clause is invalid.
party Choice of jurisdiction Select more than one court; Or choose arbitration, but at the same time agree that the court shall have jurisdiction. Such dispute settlement clauses are invalid and may increase the dispute settlement costs (time and money) of the parties, which does not conform to the parties' original intention and is not conducive to the dispute Efficiency To solve.
② After a dispute arises, both parties may Consultation on an equal footing A consensus can also be reached by People's Mediation Committee Mediation or bringing a lawsuit to the people's court and as agreed Apply for arbitration Judgment, mediation and Arbitration institution The ruling and mediation of Coercive force The consensus reached by both parties through consultation and the mediation of the People's Mediation Committee are not mandatory, but their effectiveness is equivalent to signing a new contract.
③ If arbitration is agreed upon, specific arbitration institutions and arbitration matters shall be clearly agreed upon. The clear standard agreed by the arbitration institution is: the location of the arbitration institution is clear, and if there are more than two arbitration institutions in the same place, the detailed name of the agreed arbitration institution shall be indicated.
16. The parties to the contract shall Foreign related contracts It is clearly agreed in the Chinese version that the law should be applied in case of disputes, and such agreement should be practical.
17. In the litigation, we should weigh the advantages and disadvantages, ask the other party to bear all losses to the maximum extent, and cannot voluntarily give up any Claim
18. The party who has been cheated or coerced by the other party and signed the contract while the other party is in danger shall keep the evidence and bring a lawsuit to the people's court within one year or apply to the arbitration institution for arbitration to claim cancellation or modification of the contract.
19. When signing the contract, the contract instructions shall be attached. For example, the scope of application of the contract, understanding of terms, etc.
20. On Contract performance If one party breaches the contract in the process, the other party shall take measures to draw the other party's attention and negotiate with the other party to determine the responsibility.
21. When both parties Contract content Consensus Make changes Should be re concluded Written contract Or reach a written agreement.
22. Signatory
① Both parties to the contract shall correctly distinguish the relationship between the unit and the person in charge of the unit, and clearly realize that the person in charge of the unit cannot represent the unit in his personal name.
② When one party signs a contract with the entrusted agent of the other party, it shall confirm in advance whether the person signing the contract on behalf of the other party holds the authorization of the other party a power of attorney
③ The authority of their own internal personnel shall be stipulated to prohibit unauthorized personnel from abusing the unit official seal , signing, etc. to perform various contract matters with the other party, especially not to do anything inconsistent with the contents of the contract and our own interests Declaration of intention
④ Both parties shall investigate the signing of the other party Subject qualification
23. The main contract, relevant vouchers, relevant accounting materials, and other commitment letters and agreements shall be specified in the contract as annexes to this contract.
24. Liability for breach of contract
① Both parties shall agree in the contract, such as one party Breach of contract It is agreed that the other party may investigate the responsibility of the defaulting party and require the defaulting party to bear Liquidated damages or Compensation for losses
② As long as the parties to the contract have agreed on the liquidated damages or compensation for losses, they shall agree on the specific amount or calculation method. stay damages stipulated for breach of contract The agreed amount cannot be too high or too low. If the agreed amount is too low, the loss will not be compensated. If the agreed amount is too high, it will not be realized due to the lack of legal support. Generally speaking, the agreed amount of liquidated damages shall not exceed the amount of the subject matter of the contract. If the loss of one party does exceed the subject matter of the contract, it can be directly agreed to compensate for the loss.
25. According to Agree to terminate the contract Or claim to terminate the contract in accordance with legal matters, the other party shall be notified. The contract is terminated when the notice reaches the other party.
26. Both parties shall clearly agree in the contract that if one party's organization is dissolved during the performance of the contract Contractual rights and obligations The undertaker of. If at Contract conclusion When a party is in the change period of dissolution and can foresee its rights and obligations, the specific name of the successor shall be clearly agreed in the contract. At the same time, it must be agreed that one party should inform the other party in time of the dissolution of the organization and violate this Duty to inform Responsibility.
27. When both parties sign the contract, the contract terms must be accurate and clear, and some key terms with strong professionalism must be defined or explained at the beginning of the contract to avoid ambiguity or obstacles to understanding.
28. Both parties shall agree in the contract that matters not covered in the contract shall be implemented in accordance with relevant laws and regulations. In case of no provisions in laws and regulations, both parties can negotiate and sign a written agreement separately Supplementary agreement As an annex to this contract, the supplementary agreement is the same as this contract legal effect
29. Both parties shall clearly agree in the contract Effectiveness of contract And the conditions, time and causes of termination.
30. Both parties shall agree that if one party changes postal address , should be changed within a few days Written form The responsibilities of the notified party and the non notified party.
31. Both parties of the contract shall clearly agree in the contract on the form of document exchange between both parties. It should be in written form, including letters, faxes, telegrams, and face-to-face delivery.
32. If one party has any objection when receiving the notice of termination of the contract from the other party, Timely Request the people's court or arbitration institution to confirm the validity of the termination of the contract.
When signing the software development contract, both parties should pay attention to the above details and go through the relevant procedures in strict accordance with the law, so as to avoid them to the maximum extent Legal risk