One months of database training, let me participate in the software engineering development process. One of the most profound experience is that we have a few of the best training network:
A Project Maximum: The project is large because of the beginning of our career site involves many users-universities, enterprises, students, teachers, experts, the second reason is the site's functions-user management, online internship, online competition, Graduation internship design, project management, talent pool management, talent referral, search ... Project is very easy to cause the proliferation of the system, in our early development, because the demand is not clear, functional realization has no focus, resulting in the expansion of the scope of the demand for the project development progress caused a serious lag. Then we held a meeting to discuss this issue, unanimously agreed that the basic skills of the project can be achieved, the Web site to build up, and finally on this basis to continue to increase the other features of our site. Therefore, in this process, I deeply appreciate the initial stage of software engineering requirements analysis and the importance of the outline design, these two documents are guiding our later development of the most important basis.
Two Database tables: Such a large system, the need for a large database to support, so the direct result of the project is that our database table is particularly large, and the table and the dependency relationship between the table is also complex, the relationship between entity classes are numerous, designed to have a certain degree of difficulty. Another problem with the database is-the properties of the datasheet, the design of the data table attribute is completely dependent on the requirement analysis document which we just started to do, if the requirement analysis is incomplete, it will cause the loss of the database table attribute, from the user's point of view, it will feel that your system provides the data is not comprehensive, the information is small.
Three The largest development team: Our team has a total of 14 people, this for our project manager, is a very serious problem, after all, 14 of the team is equivalent to the number of other groups combined together, management is quite difficult. For our team members, because there are too many communication channels, causing problems in our project, we do not know which team members to communicate with. In order to solve this problem, we have selected three group leaders in the team, the team members encountered problems, first to consult the group long, and then the leader to provide feedback information.
Four The project each module Lotus root is High: the link between each function module of the website is close, the interface design between the module is good or bad is the project final integration success or not the most important factor. This section of user management provides an interface for each module, primarily the number of users and the type of user. The link between each page is also one of the important module interfaces. This problem because we have done a full communication and according to the outline design of the interface to design their own modules, so the later module integration did not encounter any too much incompatibility and so on.
Let's talk about my work for the next one months:
Requirements Analysis Stage: Requirements analysis Stage I completed the online competition module needs analysis, which encountered the main problem is reading materials found online internship, online competition, graduation design guidance of the functions of these modules are similar, the extraction of demand analysis is not clear enough, after several times with the exchange of teacher soup, To determine the specific differences between these modules, the basic requirements of online competition module is also broadly determined, the basic function of the online competition module is the students through the Web site to participate in the competition, the enterprise audit, after the experts to score, ranking.
Outline design stage: On the basis of the demand analysis, the online competition module has a detailed outline design, flow chart (IPO diagram and use case diagram); The main difficulty of this stage is the description of the online competition business process, how to achieve student enrollment, enterprise release, expert review of the steps to operate, With and with other modules on the module's limitations.
Database design phase: I am responsible for integrating the preliminary database design instructions, assigning team members to design their own modules according to the specific requirements of the module needs of the data table, and then the data tables for integration. The problem with this process is that the database is too big, finally down a total of more than 30 tables, table and the relationship between the table is complex, the association is big, need to set more foreign keys, it is difficult to all the property fields to extract, the attribute type setting is also a problem, The use of numerical or string in the design of the database is particularly important, because in the background search, the numerical model is relatively fast, and in the data display, the string type has the benefit of direct read without conversion. The primary key for each table we used the entity number to mark it, because it would be simpler to correlate the entities. The key to the design of the database is to grasp the whole project, and to refine the specific attribute requirements for each entity class.
Detailed design phase: I think is the most important aspect, a complete detailed design explanation should be able to help the programmer to complete the concrete implementation, the programmer may not consider the coupling problem between the modules, only need to be able to write a single function in logical order. The overall structure of the site is ready, we can fill in the inside of their own functions. But because the time is too hasty, we this stage also shrinks, brings the later question is the late code compiles the time to be quite chaotic, the function interface is more difficult to be unified, the interface style is diverse. At this stage, my main job is to work with my teammates to design the online competition module of students, businesses, administrators, universities and experts interface.
Coding phase: We are developed with ASP.net, the main task is to select the control from the tool you want, and then fill in the control response function code to complete the corresponding event response. Here the biggest problem is the page layout problem, because it is the first time to develop the site, resulting in their own design of the interface style monotonous, not very beautiful, now try to do the page neatly. This stage is mainly to do: write code → compile → debug → write code.
I've learned a lot in these one months, Technical aspect is to learn to use ASP.net to write a website, the most important thing is let me go through all stages of software engineering, let me have a perceptual understanding of the entire software engineering, and the university three years to learn the knowledge of a series of systems, more importantly, learned how to communicate with the members of the project team, this is a valuable practical experience.