Learn how the software works from 3 software

1 how software is created

  The emergence of software, usually someone or some people have the idea of ​​intention, want to be something easy for others to himself. Zhang Xiaolong micro letter, Jobs's IOS. The software requires a lot of great people to collaboratively.

Such as micro-channel 2010 project, on line 2011 edition, when only send text messages and photos, after a version of a version update.

  Like a planned step was to participate in product -------> Project.

2 Software What crisis?

  The nature of the project is to make useful products. A house built construction, aerospace engineering rocket science. Similarly, the software, which is software engineering. Not in accordance with the construction project to build a house that will have an accident or even dead.

  How we look at construction projects. Imagine building a house: first of all to the project, set a budget, and then draw a design, and then after construction, the construction is complete, there are professional quality inspection, quality inspection after qualifying stay.

  OS / 360 (the last century, large-scale software projects 60s) -------> Developers (1000) -----> End can not run ------> <Mythical Man-Month> Detailed description of the accident.

  When the computer was invented, computer ability is very limited, no software engineering can also develop simple software. But as more and more complex projects, the increasing scale of software development and maintenance projects during the question came out ------>

  Poor quality of software products, software maintenance workload, rising costs, schedule uncontrollable, program staff increase indefinitely. So in the 1960s, the concept of "software crisis" have been proposed.

History 3 Software Engineering

(1) software engineering stages

  The entire software development process is also divided into several phases: requirements definition and analysis, design, implementation, testing, delivery and maintenance, which is what we often say that the software project life cycle.

  Corresponding to different stages, that is, different positions. Project managers, product managers, architects, programmers, engineers, testing, operation and maintenance engineer. The management of this whole process, we often referred to as "project management." This time there was the waterfall model

(2) the waterfall model

  The birth of the waterfall model of software development at the time so that from disorder to order, give you a better division of labor, while each stage has derived their methodology and tools, such as requirements analysis, software testing, and so on.

  However, the characteristics Falls determines that it can only flow from the top down, but from top to bottom through the whole cycle is very long, so once the demand for change occurs, will be very painful, a lot of things need to start over.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(3) shortcomings of the waterfall model

 Features waterfall model is from top to bottom, and the cycle is relatively long, if she had a link in the chain needs to start all over again. So at that time in order to shorten the project cycle, have launched based on the waterfall model, derived with V model, prototyping, incremental model, spiral model and other models.

(4) The current agile development

  Cloud computing, these micro-services generate new technologies, also had an impact on software engineering. Cloud services allow a finer division of labor, many companies may be operation and maintenance, server maintenance, DBA, and even some independent service to cloud service providers; micro-services allow large team into small teams, each team can focus more on small subdivision the art, to reduce dependency between them.

4 Summary

  Well, now look at what software engineering that is to use a certain process, using scientific methods to develop software using tools. There is an expression, the software engineering process + = method + tool. Software process is not engaged in scientific research, not to engage in art, but one idea to solve cooperative multiplayer landing disciplines, including rigorous process steps, standardize, improve efficiency or for risk prevention tools.

Software engineering is the main project, which requires us to have basic engineering thinking: Modular thinking, abstract thinking; have some critical awareness: awareness of quality, risk awareness, delivery of consciousness.

Guess you like

Origin www.cnblogs.com/lanjianhappy/p/11933386.html