Software engineering work (Understanding of software engineering)

"Building of the law - modern software engineering."

First of all, we should be clear in your own mind before what is software engineering?

Almost all programmers know "program = data structure + algorithm" famous words. But the program is a software yet? Is not really a program in order to become a software is to go through a lot of processes, including the steps of requirements analysis, design, testing, release and so on, these are all areas of software engineering, so the inference is a software program + software = engineering.

As a student IT, if only proficient such as Java, C ++, Python, etc., and has written a lot of documentation, test scores is very high .... It does not mean you really know how the software works, it does not mean you are a qualified engineer.

软件工程包含下列领域:Software engineering includes the following areas: software requirements analysis, software design, software builds, software testing and software maintenance.
软件工程和下列学科相关:Computer science, computer engineering, management, mathematics, project management, quality management, software ergonomics, systems engineering, industrial design and user interface design.

The orderly, quantifiable method applied by the above, we can see, the system software engineering is the process on software development, operations and maintenance, which is a more formal definition, with our own understanding of it is the development of software process and included in all activities is the software engineering.

The relationship between software engineering and computer science

Computer Science (Computer Science) following this field can be divided into these areas:
² theoretical computer
² information and coding theory
² algorithms and data structures
² formal methods
² programming language
² computer architecture
² parallel computing systems and distributed
² realtime and embedded systems
 operating system
 computer network
 scientific computing
 security and password
 artificial Intelligence: pattern recognition, machine learning, data mining, information extraction, etc.
 computer graphics, plus calculations visual, multimedia
 large-scale databases and data processing
 World Wide Web
 natural language processing and speech
 human-computer interaction
 software Engineering

Software engineering is just a branch of computer science, but it has a close relationship between each other.

Software development related activities

From the narrow sense of software engineering requirements analysis from the beginning to the final software maintenance termination, the middle contains the software design, build, test, release. If we are to model a whole line to string together, this is what we are familiar with the waterfall development model; if each of us a small part of the string with a line, followed by the completion of another fraction of a fraction of the after, this is the iterative development model ; based on iterative development model, coupled with agile project management methodologies (XP, Scrum, etc.), we get the agile development (see agile and iterative development thing is not a hierarchy, may not be placed here too appropriate).

"To understand the world, it is necessary to build it yourself."
As the phrase says, want to know, it is necessary to build himself constructed. So we have to have some software development skills, which will also be essential to our future work in a skill, there is a sense of programmers probably also here.
As experts summarized:
Philosophers: I think, therefore I am.
Scientist: I found, therefore I am.
Engineer: I build, therefore I am.

Software Quality

Software development, not simply the delivery of software products available on it. The level of software quality is good or bad is what we should focus on consideration. A good quality product, the problem does not occur frequently, but the user experience will be very comfortable. Instead of low quality software, users will be complaints.

By the foregoing formula “软件=程序+软件工程”, further known 软件质量=程序的质量 + 软件工程的质量.
This shows that the program is well written just is not enough, the activities involved in software development will affect the quality of the software (with very similar performance, upstream and downstream components, services will affect performance).

Teamwork and individual

Team and team development process, individuals have a personal development process. By studying software engineering, software quality is not who we know things, but all things, to complete a high-quality software, not only to complete the individual responsible for their own part, but also consider the entire project team, we have the leadership.

PM是啥?
Different companies may be: Product Manager (Product Manager), Project Manager (Project Manager), Program Manager (Program Manager, distinguished from the Project Manager).

Capacity requirements and tasks of PM
1. observation, understanding and ability to learn quickly, PM to be able to quickly get started in a new area.
2. analysis and management capabilities.
3. certain professional skills such as comprehension and expression professional.
4. introspection capabilities.

Epilogue

"Building of the law - modern software engineering" Although this book I just cursory again, but I have a new understanding of software engineering and more comprehensive understanding. Author through a lot of examples and charts to explain that knowledge had become boring incomprehensible interesting, easy to digest. It gives you an index, you can follow its line to look for higher-level areas, but in many ways for individuals to open a door for you to look at from the higher their work, greatly helped how can we pinpoint their location and target.

Published an original article · won praise 0 · Views 13

Guess you like

Origin blog.csdn.net/qq_43312876/article/details/104458924