201771010127-Wang Yan experiment four software project case analysis

project content
Course Class Blog Link https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
This job request link https://www.cnblogs.com/nwnu-daizh/p/12616341.html
My course learning objectives Learn the team software project process (TSP), understand the team members' collaboration requirements; master the agile process principles and related concepts
In what ways does this assignment help me achieve my learning goals Software project process, how team members divide labor, and collaborate
Student ID-Name 201771010128-Wang Yulan
Link the other party to this blog assignment link https://www.cnblogs.com/wang963/p/12651227.html
  • Task 1: In the assignments with a score of 100 points or more in Experiment 3, choose one as a case to evaluate the results of the case project. The specific requirements are as follows:

    • Read and comment on case blog assignments. The main points of comments include: the relationship between the blog post structure, blog post content, blog post structure and the “task content” column in the PSP, and post the above comments to the blog comment area of ​​the case assignment.

    Wang Huihe & Yang Ye Group :

    Case assignment blog link: https://www.cnblogs.com/http-www-whh0601-cnblogs-com/p/12553743.html

    Casework project warehouse link: https://github.com/yy202901582/DieaseSubmitSystem

    The comments are as follows:

    • Clone the case project source code to the local machine, read the project code specification document and run the code, summarize the problems in the code operation, and experience whether the case blog post is helpful for the project code understanding.
      The program runs:
    • Main interface:

    • Fill in information: provide teachers or students to fill out the epidemic information

    • Find information: Find a teacher or student by name, etc.


    • View the epidemic information of students in a college: View the epidemic information of the current faculty, staff and students in a college by the name of the college
    • View the epidemic information of students in a certain area: check the epidemic information of local students and teachers by place name
    • View the epidemic information of faculty and staff: view the current epidemic situation of all staff and teachers who have filled in the information
    • Histogram display: Use the histogram to display the current report status of each college
    • Pie chart display: use the pie chart to display the current report status of each college
    • Reminder filling function: After the alarm is set, the filling


      code will be reminded at a specified time to run smoothly, and the required functions can be better achieved. After reading the case blog and then running the project, it is easy to understand the project and there is basically no problem.
      Summary of system functions:
      (1) Teachers and students can log in to the system to fill in the epidemic information;
      (2) The staff of the second-level epidemic prevention department can fill in the epidemic information;
      (3) The person in charge of the second-level epidemic prevention department can make a fuzzy query based on the name For accurate query of name, college, infection status and area, corresponding statistical graphs can be generated according to the fields that appear;
      (4) After the time is set, it is automatically reminded to fill in the information.
      Overall, the basic functions are well implemented, and additional reminder functions are added. However, when the reminder function is implemented, the reminder dialog box will still pop up when the deadline is reached, but the overall function is perfect.

    • Summarize the problems and shortcomings of the experiment and blog design of this group of three experiments, list the bugs in the code, unimplemented functions and so on.
      Summary: The content of the blog post in the experiment 3 of this group is concise, the logic is clear, and there is basically no problem. In terms of code design, the code of the project is more readable, and some comments are made in the slightly complicated areas. However, there is some useless code in the code, and it will be better if it is corrected.
      Bugs in the code: When running the code related to the reminder function, the time I set is 11:57, but after the time expires, the reminder page will still pop up.

      Unimplemented function: The data of this project is written in txt file, read in eclipse, and export data is not realized in excel file.
  • Task 2: Collaborate with the three partners of the experiment to learn: Read chapters 5-6 of "Modern Software Engineering-The Method of Construction", understand and master the characteristics of the software project team, understand the model of the software team, and understand the waterfall with the theoretical content Models and their transformations, progressive delivery processes, agile processes and other typical software process model characteristics, understand and appreciate the TSP principles summarized by the Carnegie Mellon University (CMU) School of Software Engineering;

    • The characteristics of the software project team:
      (1) The team has a consistent collective goal and must complete this goal together. During the completion of the goal, each member does not have to work at the same time;
      (2) The team members have their own division of labor and rely on each other for cooperation To complete the task together.
    • The model of the software team:

    (1) One swarm mode: like a child playing football, wherever the ball is, people will follow the swarm.
    Pros: Happy and casual;
    Disadvantages: This team model is difficult to survive, not a good team model.
    (2) Attending physician model: In this model team, there are chief programmers, who are mainly responsible for the design and coding of the main module, and require other members to support the chief programmer's work from various angles.
    Advantages: Ideally, the work can be completed perfectly;
    Disadvantages: This model gradually degenerates into a person with only the lead to work, others follow the stroke.
    (3) Star model: In short, applying the attending physician model to the extreme, it is transformed into a star model.
    Advantages: It is helpful for the growth and progress of "star" individuals;
    Disadvantages: contrary to the original intention of the team model, the efficiency is very low.
    (4) Community mode: In this mode of team, there will be many volunteers participating, and everyone will participate in projects of their own interest and contribute their own strength. In this mode, there are also very strict quality control of code review and check-in.
    Advantages: "People collect firewood with high flames". The case study of the community in the development and maintenance of the Linux operating system shows that strict code review and check-in quality control are extremely important;
    disadvantages: "only fire, no firewood" or "pick up" The quality of the firewood arrived was too poor. "
    (5) Amateur theatre group mode: In this mode of team, different people will choose different roles. In another project, they may switch to a completely different role type. Everyone in the team must follow the guidance and arrangement of a leader.
    Advantages: Everyone can try different roles, and everyone can discuss more equally;
    Disadvantages: In a highly competitive and creative team, there will be no perfectionist democratic atmosphere.
    (6) Secret team: These software projects are carried out in a secret state, and there is great freedom within the team, and there is no need to introduce the project progress and other related conditions to the outside world.
    Advantages: Freedom, high enthusiasm, and no outside interference;
    Disadvantages: It is impossible to become a universal model, only for individual projects.
    (7) Special agent team: The team members are composed of professionals, who are responsible for solving some thorny and urgent problems.
    Advantages: High efficiency;
    Disadvantages: The knowledge requirements of members are very wide, more targeted at technical personnel, it is impossible to become a universal model.
    (8) Symphony team model: Software that uses this model is generally in a stage of steady growth and is generally adopted by large software companies.
    Pros: Do their job and focus on execution;
    Disadvantages: dull.
    (9) Jazz mode: This mode usually gives the theme to the leader at the beginning of the project, and then summarizes everyone's ideas and achievements at the end of the project.
    Advantages: During the progress of the project, the members are in full bloom, each showing their skills;
    disadvantages: not too many people.
    (10) Functional team mode: Colleagues with different abilities collaborate equally to complete a function.
    Pros: High efficiency;
    Disadvantages: Each team must agree on programming specifications with other teams.

    (11) Bureaucratic model: This model is born out of the organizational structure of large institutions. Several people report to a small boss, and the small boss reports to the middle boss, one after the other.
    Advantages: It is helpful for the alternation and complementation of technology;
    Disadvantages: it is easy to mix in some chase for fame and fortune, which often will greatly reduce the efficiency of the team;

    • Waterfall model The
      waterfall model is to stipulate the activities of the software life cycle as several stages of work connected in a fixed sequence, and finally get the software product. The core idea of ​​the waterfall model is to simplify the problem according to the process, separate the realization of the function from the design, and facilitate the division of labor and collaboration, that is, to use a structured analysis and design method to separate the logical implementation from the physical implementation. The software life cycle is divided into six basic activities: planning, requirement analysis, software design, programming, software testing, and operation and maintenance. The fixed sequence of their top-down and interconnection is stipulated, and they fall one by one.
      The waterfall model is applicable to the following scope:
      1. If the definition of the product is very stable, but the correctness of the product is very important, it needs to be verified at each step;
      2. The interface, input and output between the product modules can be formalized well Method definition and verification;
      3. The technology used is very mature, and team members are familiar with these technologies;
      4. The sub-teams responsible for each step belong to different institutions, or in different geographic locations, and frequent communication is impossible.

    Variations of the waterfall model
    (1) Sashimi model
    This model solves the shortcomings of the separation between the various steps, but the end time of the previous stage is not clear, which is not conducive to the plan for the next stage.
    (2) The big waterfall comes with the small waterfall model
    In order to solve the different progress between different subsystems, the technical requirements are very different and need to be treated differently, so the sub-waterfall model is introduced. Under this kind of waterfall group, it is difficult to unify each subsystem to the final stage of system test. In addition, in such a development process, users cannot see the results until the end, so the waiting time is too long.

    Progressive delivery process: The
    progressive delivery process was summarized by Steve Mike Cornell in 1996, but it is actually very close to the iterative development process that everyone talks about now. When the main requirements and architecture of the system are clear, the software team has entered an evolving cycle: [development → release → listen to feedback → improve based on feedback]

    Agile process: The
    agile development process is based on the evolution of user needs as the core Iterative, step-by-step approach to the process of software development. Development methods that conform to agile values ​​and principles include: Extreme Programming, Scrum, Lean Software Development, Dynamic System Development Methods, Feature Driven Development, Crystal Development, etc.
    I think the good operation of each link and the situation of teamwork are important factors to ensure the normal implementation and delivery of the project, and the agile development process emphasizes the initiative of people. Through this cooperative development model, generally speaking, the project team can basically complete the project very well.
    TSP principles: The
    TSP principles focus on helping development teams improve their quality and productivity so that they can better meet their cost and schedule goals. TSP combines the management methods of CMM and the engineering skills of PSP to guide software engineers on how to integrate individual processes into group software processes and connect the latter with the organization and even the entire management system. It tells the management how to support and authorize the project team to insist on high-quality work, and based on the data to carry out project management to show the organization how to apply the principles of CMM and PSP skills to produce high-quality products.
    TSP must follow the following seven principles:
    (1) Use a well-defined process, each step in the process can be repeated and the results can be measured;
    (2) Each member of the team has a unified goal, role and product for the team understanding;
    (3) to make use of proven technologies and practices;
    (4) as much as possible to collect data (including team unfavorable data), and use the data to help the team make rational decisions;
    (5) Formulate realistic plans and commitments. The team plan should be formulated by the role responsible for specific execution (not from the superior);
    (6) Increase the team ’s self-management capabilities;
    (7) Focus on improving quality, Strive to discover problems early in the software life cycle. The most effective way to improve quality is to do comprehensive and meticulous design work (instead of rushing to fix problems later).
    Screenshot:



  • Task 3: In the class blog park, there are many software engineering courses in colleges and universities that require students to complete team projects. Please consult with the three partners of the experiment and select a high-quality team project case in the following three classes for collaborative learning. The team project publishes all blog assignments and downloads the project software code.

    1. 2016 School of Computer Science and Engineering Software Engineering (Northwest Normal University)
    2. 2019 Qiufu University Software Engineering Practice Class Z (Fuzhou University)
    3. Spring 2019 School of Computer Engineering Software Engineering (Beijing University of Aeronautics and Astronautics)
      The class I chose to carry out the learning project case is: Spring 2019 School of Computer Engineering Software Engineering (Beijing University of Aeronautics and Astronautics)

    At the beginning, I thought that all three classes would probably take a look, and choose a project that interests me to run. It was found that the results of the Northwest Normal University class project were not comprehensive. Fuzhou University is basically C language, but my C language is relatively weak, and the code may not be well understood. Finally, I found this team project while browsing the class of Beijing University of Aeronautics and Astronautics, and just took the Android course last semester. I read the team ’s blog carefully and found that their project is a continuation of the mobile phone APP in the blog park. As a It is very necessary for children who need to hand in homework frequently in the blog garden, because it is too inconvenient to use a mobile browser to visit the blog garden when going out; in addition, their project has been released and it feels ... very Awesome, so I chose this project for analysis.

    • Combine the project series of blog documents to summarize the division and cooperation of the project team members:

    Shao Xuzhe: PM, mainly responsible for all blog writing;
    Jiang Feng, Chen Zhiqi, Hu Junsong: developers;
    Wu Feng: testers;
    Wu Hao: development (not as many tasks as other developers), responsible for meetings.
    During the progress of the project, there are different divisions of labor at different stages:


    the team requires developers to ensure that the functions they need to implement are tested and delivered, and each team member communicates with each other to prevent one of them from lagging in progress. When the workload is too large for a certain period of time, you can find an assistant to share it. In addition, when the task is not completed, points should be deducted accordingly, which can mobilize the enthusiasm of the players well. At different stages, everyone has different tasks. Assigning tasks in this way ensures that everyone can participate in them and play their due level. I think this arrangement is very reasonable.

    • Combined with the project series blog documents, evaluate the software project process characteristics (TSP) of the project:
      (1) In the implementation process of the software project, it was clear at the beginning what the project was to be done and what functions need to be implemented;
      (2 ) The team has formulated a detailed plan based on the role responsible for the specific execution. The team members are very clear about the project goals and product people;
      (3) In addition, a project plan and a reward and punishment system have been developed to help increase the team ’s self-management ability;
      (4) At the same time, each team member is required to test the task he has completed before handing it over to the next team member to continue work, so that the problem can be discovered and corrected in time at an early stage, and it will not cause each to do its own thing. Then make up for the situation.
      The process characteristics of such a software project meet the requirements of the specification and are very reasonable, which is what we need to learn when we carry out a team project later.
    • Observe the source code file structure of the github repository of the team project, does it contain code specification documents?

      The source code file structure of the github repository of the project team does not contain code specification documents (it seems that the projects I have seen before basically have no code specification documents ~)
    • Download the team project code, try to deploy the project operating environment and use the software, describe the simplest and most intuitive user experience, find at least two more serious functional bugs, and show screenshots in the blog.
      Since the mobile phone needs to use the Android version, I used an emulator to run this project.
      Download project to local:

      Run project:
    • Main page: display the blog I submitted
    • Click to view:
    • My class: Show tasks posted by my class
    • Me: Personal information settings The

      corresponding functions can basically be used normally, such as clicking on the browsing record:

      User experience :
      First of all, after logging in to the APP, the first feeling is that this blog park APP page is very intuitive, the bottom status bar clearly shows the optional content ; This APP basically meets the basic needs of users when using the blog garden; the overall feeling is better, there is a slight stuck on my emulator when it is opened, which is faster than the previous program; also There is a dark mode to choose from, which meets the needs of humanity.
      Functional bug:
      1. Some pages are not rendered

      in dark mode : for example, to view blog posts in dark mode:

      2. After I set the dark mode, when I go to view my blog posts, it shows that the identity has expired and I need to log in again. At the same time, there is also a problem with the network connection error, but my network is actually no problem at this time.

      3. The login page will display the authorization code page after successful login, and the authorization code book should be hidden.

      4. After logging out, a dialog box will pop up alternately: the identity information expires and the network request fails.
    • Evaluate whether the team project is worth continuing development and state the reasons?
      I think this team project is worth continuing to develop, because although there are still some bugs in this project, it is enough to be able to release to the market to illustrate the feasibility of this project, and also shows that this project can meet the needs of users to a certain extent. Moreover, if you need to use the blog park when you are away from home, the experience of the mobile browser is very bad, so compared to using the blog park on the web, the mobile terminal will be much more convenient.
  • Task 4: Record the actual time spent on completing the tasks of "Experimental Four Software Project Case Analysis";

    Task 1: 90 minutes
    Task 2: 300 minutes
    Task 3: 240 minutes
    Task 4: 220 minutes

The feeling and experience of completing this assignment.
I thought it would be relatively easy not to do a project for this assignment, so I did n’t manage this assignment at the beginning, and started it on the third day, but as each task was slowly completed, the more I learned later, the more I needed to understand this assignment. When browsing the team work of other schools, I found that the team project is not just the completion of this project. A lot of preparations must be made before the project starts, such as the project schedule, member division and cooperation, etc. When running other people's projects, I sighed countless times, I feel that it is too powerful ... Through this assignment, I have gained more than the actual project. In later team projects, I will apply what I have learned this time to make the project better completed.

Guess you like

Origin www.cnblogs.com/JAVA-729/p/12624399.html