The second software engineering work horse Han Yun 17,038,059

  • Interviews with industry software team (by mail, microblogging, letter, read blog, etc.), ask their software development process

  • group discussion,

    • The type of team you vote for two members of the group favorite

    • The most debate which type you should take this course

    • Lists the pros and cons

    • Classroom speak or publish blog

A software development process

       First, develop a project plan, initially planned to be a milestone in nature. You can press the waterfall model settings, the main milestone for the needs assessment, design review, after the unit test code development and integration testing, deployment, on-line to prepare for the average user would expect when the system can be used to enter the trial operation period (also can be referred to user testing phase).

   1 needs analysis

(1) related to the systems analyst preliminary understanding of user needs and then list the major functional modules of the system to be developed with the relevant tools, small functional modules which each major function modules, more specifically related to the demand for some interface in this preliminary step which can be defined in a small number of good interface.

(2) systems analysts insight and analysis needs, based on their experiences and needs and then make the system functional requirements document with a document WORD or related tools. This document will clearly set out what little function module general function modules, function modules have, and also lists the relevant interface and interface functions.

(3) demand systems analyst to confirm once again to the user.

(4) how to write demand is critical, if project members can do with demand, at this stage for business to understand, analyze, how to carry out research and written expression, business flow chart describing the document editing capabilities as well as have a lot of requirements . Generally divided into "user requirements specification" and "requirements specifications", small projects can write a "needs analysis", "user requirements specification" is described by the language of the user, allowing users and the development team needs to reach a common understanding "requirements specifications", is the analysis of user needs, the formation of the system to have a function, the user can provide truly interoperable document, which is an important baseline late in the design and code development.

   2 Summary of design

      First, developers need to conduct preliminary design of the software system, that system design. SUMMARY design needs to design software systems considered in a system including the basic process flow, organizational structure of the system, module division, function allocation, interface design, operation design, data structure design and error handling design, provide detailed design software basis. Overall system architecture, combined with users of the system environment, the development of language and running on your network hardware requirements, determine development tools, application system architecture design relationships, through the requirements phase analysis categorize users, describe a way of drawing a global view of the user and each of the subsystems or modules, and other systems and the relationship. That is, the border issue to figure out the system. In addition to high-level summary of the design in architecture design, also we need to design a network topology diagram, and deployment diagram. Summary There is a more important design subsystems, modules reasonable division. Name of the module will largely be the main menu of the user, how to get a clearer subsystems and modules with the user's point of view is very important.

   3 detailed design

On the basis of the outline design, detailed design of software developers need to be systematic. In the detailed design, particular algorithms described achieve the main modules involved, data structures, and calls the hierarchical relationship classes, a description of the software system at all levels of each program (each module or subroutine) design considerations, for coding and testing. It should ensure that the needs of the software is fully allocated to the software. Detailed design sufficient detail can be encoded in accordance with the detailed design report.

   4 encoding

In the software coding stage, the developer according to design requirements "software system detailed design report" data structures, algorithms, analysis, and modules implement other aspects of the beginning of specific programming work, respectively, to achieve the function of each module, in order to achieve the target system aspects of function, performance, interfaces, interface requirements. In the standardized development process, the coding process in the whole project will not exceed a maximum of 1/2, typically 1/3 of the time, the so-called Preparation may quicken the work, good design process is completed, the coding efficiency will be very large increase, schedule coordination and collaboration between the different modules is the need to be careful when coding, perhaps a problem of small modules that may affect the overall progress, so many programmers forced to stop working and wait, the problem in many R & D process have appeared. Mutual communication and emergency means of settlement when the codes are very important for programmers, bug forever, you never have to face this problem. This stage generally need to improve the waterfall model, similar to the down-generation development, a reasonable division of the module, the code development master plan of the testing phase is divided into multiple time periods, each time period includes code development, unit testing and integration test, this phase also need to track demand for change control, change if there is demand, then put requirements documents, design documents are re keep up. Benefits fall on behalf of the development of the code is to keep the development stage, there is no timely self-examination, careless to commit time, not the user wants, there may not be what you want problems.

   5 Test

Testing is a very important part of the project, how to test, how accurate the test, how to effectively test, how the test coverage, time, manpower, experience every aspect, there will be constraints. Advanced testers can analyze each test point system, we need to be involved in the design stage, early to know how to test, to write test cases. Writing good test system. To the user, a confirmation of each function after a user. There are many software test: performed in accordance with the test side, can be divided into internal and external testing; according to the test range can be divided into test modules and the overall FBI; according to the test conditions, the test can be divided into normal and abnormal operating conditions where the test; input range of tests, full coverage can be divided into test samples and tested. In short, the test project is also a step in a very important development for a large software, 3 months to 1 year of external tests are normal, because there will always be unexpected problems exist. After completion of the test, and complete acceptance of some help to complete the final documents, the overall project be considered an end, of course, ultimately, future upgrades, repair work, etc., as long as do not want to get money through a one-shot deal, we must constantly tracking software operations repair and upgrade situation continued until the software is completely out of date.

   6 Software Delivery

(1) software after the software is tested to meet the requirements, software developers should aim to develop a user submits installer, data dictionary database, the "User Installation Manual", "User's Guide", demand report, design reports, test report and other parties to the contract agreed upon product.

(2) "User Installation Guide" is detailed requirements for installing the software operating environment, the installation software definition and content, in the client installation steps, and the middleware server, the system configuration after installation.

(3) "User's Guide" should include aspects of the use of the various functions of the software process, the steps, the corresponding business reports, tips and special precautions should also illustrated when needed.

    7 Acceptance

User acceptance.

    8 Maintenance

The user needs change, or changes in the environment, or all of the application of the modified portion.

Two of the most favorite team of two types

  1   agents Team: Software team consists of some professionals with special skills, is responsible for solving some difficult and there is the urgency of the problem.

   community models: the participation of many volunteers, everyone involved in the project they are interested in, contribute to, most people do not get paid.

In the course of the three most what type should be taken

     Most agents should take the type of team in this course.

advantage:

(1) High efficiency

(2) a shot will be able to solve problems others can not be resolved

(3) be an example for others not very good technical staff, and help others improve their skills

(4) to share some good technology, broaden their horizons

Disadvantages:

(1) of the members of the knowledge requirements are very broad, more for technical staff, can not be a universal model

(2) strong ability of most people will be a little proud and arrogant, this group of people together, who will lead who also refused to accept, and then detrimental to team harmony

(3) the ability of such a powerful team, pre-need to spend a lot of money to train, post have to pay high wages, more spending

Guess you like

Origin www.cnblogs.com/mahanyun/p/11617707.html