1, what is software engineering:
To understand the definition of software engineering, the first thing to understand is engineering:the term "engineering" has a broad and narrow sense. In the narrow sense, the project is defined as "the use of relevant scientific knowledge and technical means, based on the objectives of a group of persons", through organized activities of "a group of people " to convert a certain (or certain) existing entity (natural or artificial) into a " man-made product process with the intended use value" ". In broad terms, engineering is defined as the process of collaborating in a longer period of time by a " group of people " to achieve a certain " purpose ".
Therefore, through the above definition can be seen, the first project is a " group of People " activities, not individual activities, and secondly, the purpose of the project is "artificial products." Accordingly, software Engineering is: A group of people in order to complete a (here omit a number of adjectives) software activities.
The above-mentioned rough definition should have several questions:
First, what should be the software to be completed? is to use what adjectives to describe this software, is not only the goal of software engineering. What is the goal, then, that there is a definition: correctness (to meet the expected functional requirements), availability (the basic structure, implementation, and the degree to which the document is available to the user), the cost is appropriate (development, the overall cost of running to meet user requirements);
Second, because it is a bunch of people to complete an activity, there are some places there are rivers and lakes, so ah, this activity how to plan and arrange, to achieve "peace" ideal situation? Is the process of software engineering. Process, you can do this with the last question: develop a complete sequence of all the steps needed to meet all requirements. That's no nonsense! So then decomposition, the certificate Yue: The process of software engineering, including the development process, operation process, maintenance process, the overall coverage of the requirements of the collation, software (summary & detailed) design, function realization and validation, follow-up testing and maintenance activities.
Thirdly, since it is an activity, since there are a lot of people to participate in, then, at least the first to set a rules bar, or messy, what can not be done. This is the rule, the principle of software engineering: Around engineering design, engineering support and engineering management in the software development process must follow the principles. These principles are in the beginning of the implementation of software engineering, by the great God-level master in person or under the guidance of the development, it is best to observe, otherwise the consequences can not be imagined (think of the six factions besieged the bright top will know).
2. What is the use of software engineering? Why use Software engineering?
At first there was no light in the world. Cough, run the wrong film, back to the point. The origin of software engineering is actually the purpose and meaning of its existence. So, when did the software engineering thing arise? A picture of Zhuge Liang? Impossible to drip. He has historical reasons: in the "Ape Less" era, software development is a " lofty and great " occupation (the ape area casually boast), but with "The Rise of the Apes", more and more people participate in the process of development, software and hardware also greatly developed, but (focus), the efficiency of development is increasingly low. So there is "thinking ape" Yue: for Mao? Lack of a development idea. Therefore, there are "ape" code thousand lines, and then out of dust, said I have attained, is XXXX Road, the other also has the ape Enlightenment, and the Tao is not the same, so we will all kinds of road collection summed up together, screening verification, finally come to an effective rule, this is "engineering". (The above is purely nonsense, the general meaning of the line)
So, the function of software engineering is to ensure the efficiency of software development and the correctness of development direction, can ensure the smooth completion of development work. Why do you need it? Do you want to make a piece of software and don't do it halfway? Who pays for the money?
3, how to use software engineering to serve their own things?
The above nonsense so much, roughly speaking understand what is software engineering (not understand also can not, this thing to now every unified definition). So, well, how do you use the real thing to create value? I don't know, I'm working on it. Overall feeling this thing is too large, learning is very complicated and troublesome, even if the theory knows, the actual use of is only a few. Find a book slowly chew it, do not think online can have a crash textbook, are liars.
Software Engineering (I.)