EBU6304 Software Engineering Knowledge Point Summary_7 Open Source Software; Software Development Tools

Open Source Software

free of charge, free of legal restrictions on usage.

Agile development is also required, but the development method is slightly different, after all, it is not a stakeholder model. It emphasizes close personal interaction between individuals, and developers are also their own customers, so many people do testing, and the modified small version can be released quickly; usually there are many small modules, and everyone from all over the world develops separately.

People all over the world communicate with each other electronically.

The overall co-ordinator is usually a volunteer.

Commercial software and OSS are like the difference between a cathedral and a bazaar. The cathedral needs to have an overall construction goal, and everyone should work together. The bazaar may be managed by an overall coordinator like the urban management, but everyone is still more personal.

If your company develops projects by itself, of course it will require a lot of human and financial resources for development and later maintenance; if you choose closed-source software, you are bound to the supplier (monopoly technology), and we have to pay them for further fees. With open source software, you don’t have to worry about payment fees or supplier closures, but you can’t just use open source software, so pay attention to copyright issues.

Most open source software has a small group of people developing the core and new functions, and most of them are correcting defects. In most cases developers prefer to maintain existing forks instead of developing new ones.

Open source software also has a control structure. Usually, the person who first proposed the project has the final decision-making power of the software, and it is managed by some commercial companies rather than individuals (this can ensure better quality). For example, Android open source software is controlled by Google. For submitted Fork and patch have the right to finalize the content of the next version update.

  • Contributor: A person who contributes in OSS.
  • developer: A person who develops applications on a software platform.
  • verifier: A person who tests whether the change request is correct.
  • Approver: The person who decides whether these modifications should be merged into the large version, and the verifier need to review the interview screening.
  • Project leads: Oversee the engineering of individual projects.

software freedom

  • free run the program

  • Study how this program works, change it so it does your compute as you wish (provided you can access the source code, of course)

  • Free redistribute copies for distributing copies of software

  • Free distribute copies of your modified versions to others.

Copyright

Only the producer producer has the right to produce copies and create new work based on it, but can authorize others to make copies of the work and adapt it. Producers can give these powers to others by means of charging, or limit the scope of adaptation, because this is an obligation imposed on the producer, and it is normal to have some rewards.

Copyleft

However, the OSS copyright statement uses copyleft, a free software license, which does not limit the right of others to copy and adapt, but empowers others to do so. The content of the license includes: statement that the source code is available, and the scope of adaptation permission.

voting

Those who have the right to vote can have at most one vote; those who do not have the right to vote cannot vote; those who have the right to vote and choose to vote cannot be prevented from voting; they must have sufficient choices of full choice; their voting results must be counted correctly and cannot be Others tamper; the total number of votes is added correctly and cannot be tampered with; most of the time no one can know the choice of any voter.

Electronic voting has risks, such as data being easily tampered with and forged.

Software Development Tools

Software Craftsmanship and Clean Code

Pay attention to the cleanliness of the code, such as formatting, comments, etc.

Saying “No”

Don't always blindly agree to the needs of the boss and customers. Programmers are more familiar with the code and need to help the boss avoid possible mistakes.

Learning from Mistakes

Microsoft’s Best Practices

Revision Control System

version control.

roll-back: Version rollback.

check-out: The developer pulls down the code.

check-in: The developer submits his own revision.

conflict: The submissions of two people conflicted.

merge: Merge into the main branch.

Daily Build

Build the code once a day, compile and link the source code, and do some tests to ensure that everyone can use the latest version the next day.

Continuous Integration

The developer also recommends checking-in once a day.

Build Verification Tests

Assertions and unit tests.

Bug Database

Record previous bug records, solutions, severity, priority and other information.

War Team and Bug Triage

Prior to release, the operations team confirmed that the system was "good enough to release". Check for normal operation, remaining bug severities, etc.

Code reviews and coding guidelines

Teams conduct thorough reviews of each other's code.

Globalisation and Localisation

Differential handling for different languages ​​and scripts.

Documentation Generators

Document generation.

Guess you like

Origin blog.csdn.net/jtwqwq/article/details/131073844