201771010103—Chen Yaru—Case Analysis of Experiment 4 Software Project

project content
Course Class Blog Link https://www.cnblogs.com/nwnu-daizh/
Assignment requirements link https://www.cnblogs.com/nwnu-daizh/p/12616341.html
Homework learning objectives (1) Learning team software project process (TSP), team member collaboration requirements. (2) Master the principles of agile processes and related concepts.
In what ways does this assignment help me achieve my learning goals This assignment is mainly to help me acquire knowledge and skills through case analysis and learning
Student ID-Name 201771010111-Li Ruihong
Link the other party to this blog assignment link https://www.cnblogs.com/LRHLRH123----/p/12634723.html

Experiment content and steps

Task 1: In the homework 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:

(1) 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.
(2) 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.
(3) Summarize the problems and deficiencies of the blog operation and code design in the third experiment of this group, list the bugs in the code, unimplemented functions, etc.

Download the code locally:

  • Because the GitHub network condition is too bad to log on for several days, the download speed is too slow, and finally borrowed the gitee code cloud to download the code to the local.

Project code specification:

  • Use lowercase English letters for package names
  • Do not add any decoration symbols (not public) to the methods and properties of the interface class to keep the code concise
  • The method to get a single object is prefixed by get
  • Insert method is prefixed with save (recommended) or insert
  • The delete method is prefixed with remove (recommended) or delete
  • If the curly braces are empty, simply write {} without a line break; if it is a non-empty code block:
    • No line break before left brace
    • Line break after left brace
    • Line break before closing brace
    • After the right brace, there are other codes such as else, so there is no line break; it means that the line must be broken after the right brace is terminated
  • Use 4 spaces for indentation, tab characters are prohibited
  • One line of code does not exceed 120 characters
  • When encountering content that other peers may not understand, use "//" to comment on the line above the code
  • Declare a string constant: the name cannot be mixed with English and Pinyin
  • Declare a variable on one line
  • When naming variables, avoid too many descriptions
  • Avoid unnecessary grooming
  • Explain the members of the class in the following order: public, protected, private
  • Check the return value of new
  • There is no need to check the NULL
    summary when releasing the pointer : the code specifications developed by the project team conform to the simple and easy-to-read code style without ambiguity, and also conform to the principle that each function does only one thing.

Functional test description:

The experimental requirements are:
  • It can collect epidemic information of various teachers and students in the school;
  • Persons in charge of epidemic prevention and control of each secondary department can view the epidemic situation summary of the personnel in this department, and provide advanced query functions for multi-attribute combination query and visual statistics function;
  • The designated person in charge of the School Prevention and Control Office logs in to the subsystem of the Northwest Normal University Epidemic Prevention and Control Information Statistics, can browse all the personnel to fill in the summary data list, and can use the [Advanced Inquiry] to screen the data combination. For filled and unfilled student statistics and key epidemic data statistics, you can [export] the EXCEL file of the query list;
  • Human-computer interaction interface requires GUI interface (both WEB page and APP page are available);
  • Additional sub-functions: regular report reminder
After repeated testing, the actual results obtained by the system are:
  • The system realizes the function of collecting epidemic information of teachers and students of the whole school.
  • The pages filled out by the secondary epidemic prevention department and others are two identical pages with separate authorities.
  • The general staff of the epidemic prevention department can browse all the information filled in.
  • The person in charge of the second-level department can browse all the members of the department to fill in the information, add or delete the department to fill in the information and get a statistical chart of the infection.
  • The person in charge of the prevention and control office can browse the information filled by all members, and realize a more comprehensive addition and deletion check and the summary of information for students and faculty.
  • Realize the function of reminding regularly.

function display:

  • Students log in (can report the epidemic situation):
  • Members of the second level epidemic prevention department log in:
  • The person in charge of the second level epidemic prevention department logs in:
    • login interface
    • Display the information filled by all members of the second-tier epidemic prevention department

      -check the information filled in on a certain day
  • Members of the Prevention and Control Office log in:

  • Infection statistics (I do n’t know if there is too little data in the database at the time of the test, and the data comparison of the histogram is not particularly obvious):
  • Fill in the information statistics:
Bug description:
  • The person in charge of epidemic prevention at the second level can query the information of all members during the accurate query of the student number, but can only query the information of the members of the department during the fuzzy name query and accurate time query. Little bug.
  • The system has relatively low control over user input. For example, it can be added without input at all. The time is unified as January 1, 1900. Enter the exact same information without error.
  • The system has no control over the user input of the alarm clock. No matter what the input is, the program runs normally.

    Summary: This system is a pure java development system, the system actually implements the function authority is clear, and the realization function is also very comprehensive. It is enough to see that the two people in the pairing team made a detailed analysis and design on the system function design, and the code writing process basically followed the team's code specifications. Finally, I read the blog posts of the paired members. The blog posts have a comprehensive description of the project, and the PSP has done very detailed, which is conducive to the reader's understanding and application of system functions. However, the system has less control over user input, and the most untrustworthy of a system is user input. Wrong user input may cause serious consequences. But no matter what, if I can do this in a short period of time, I certainly can't reach it, and I should learn from the two pair members.

Case assignment blog link: https://www.cnblogs.com/litinghua/p/12534838.html

Casework project warehouse link: https://github.com/wyq1998/System-second

Blog comments:

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;

Scoring points for the task 2 in the blog assignment: provide WeChat or QQ screenshots of the two people discussing the learning content of the task 2, and the screenshots are required to be beautiful.

Features of the software project team:

  • The team has a consistent collective goal, and the team has to achieve this goal.
  • Team members have their own division of labor, rely on each other and cooperate to complete tasks.

The model of the software team:

mode Features
Swarm pattern There is no clear division of labor, and the survival time is not long.
Attending physician mode The chief programmer (backup programmer, system administrator, tool development, programming language expert, business expert) is responsible for the main module design and coding, and other programmers provide support from various perspectives.
Star mode The lead programmer is too prominent and personalized, and the team is on the verge of disintegration.
Community model There are many volunteers participating, and everyone participates in projects of their own interest and contributes. Strict code review and signer quality control are required.
Amateur troupe mode In the project, different people choose different roles. In the next project, you can change a role. Each person follows the guidance and arrangement of the central command in the team.
Secret team The project is carried out in a secret state, and there is great freedom within the team, which can often exert super high efficiency and complete seemingly impossible tasks.
Agent team The team is composed of professionals with special skills who are responsible for solving some difficult and urgent problems.
Symphony Orchestra Mode The team performs its duties and completes its tasks. When a software field is in a stage of steady growth, some large software companies will adopt this model.
Jazz mode Emphasize personalized expression, strong interaction, and give creative responses to changing content.
Functional Team Mode Colleagues with different abilities collaborate equally to complete a function together.
Bureaucratic model Members not only have technical cooperation and leadership, but also mix into organizational leadership and leadership relationships. If the application is not good, there will be a major hidden danger of programming "boss driven" development process.

Waterfall model:

  • Overview: Waterfall model: The various activities of the software life cycle are defined as a number of phases connected in a fixed sequence, shaped like a waterfall, and finally a software product is obtained. The process is to use the output of the previous activity as the input of the activity, use this input to implement the content of the activity, and then verify the work result of the current activity. If the verification passes, the result is used as the next For the input of an activity, continue to the next activity, otherwise return to the modification.
  • Traditional waterfall model:
    • The advantages of the waterfall model:
      • Provided for the project to check the waterfall model check points divided by stages.
      • After the current stage is completed, you only need to focus on the subsequent stage.
      • Waterfall models can be applied in iterative models.
      • It provides a template that allows analysis, design, coding, testing, and support methods to have a common guide under the template.
    • Disadvantages of the waterfall model:
      • The division of each stage is completely fixed, and a large number of documents are generated between stages, which greatly increases the workload.
      • Because the development model is linear, users can only see the development results until the end of the entire process, which increases the development risk.
      • Tracking various project phases through excessive mandatory completion dates and milestones.
      • The outstanding disadvantage of the waterfall model is that it does not adapt to changes in user needs.
      • Early errors may not be discovered until later in the testing phase of development, which may have serious consequences.
  • The traditional waterfall model is too idealistic, and early errors can only be discovered after the later stage of development, which will bring serious consequences. Winston has improved the model three times:
    • When designing a large-scale system, it is necessary to backtrack adjacent steps to solve the problems that were not solved in the previous stage.
    • To make the product successful, it is best to walk this model twice, collect feedback on this basis, improve the various steps, and deliver a final version.
    • The user's early intervention, discussion, and review are important. Customers should be formally, deeply and continuously involved in the project. The final version is:
  • The limitation of waterfall model in software engineering practice:
    • The individual steps are separated, but the individual steps in the software production process cannot be so strictly separated.
    • Backtracking is difficult to modify, but it is necessary to backtrack from time to time in software production.
    • The final product does not appear until the end, but customers and software engineers need to know the product prototype and try it out as early as possible.
  • Deformation of the waterfall model
    • Sashimi model: Solve the shortcomings of the separation between the various steps.
    • Big waterfall brings a small waterfall: solve the problem that different subsystems have different progress, technical requirements are very different, and they need to be treated differently.

Progressive delivery process:

  • Overview: Close to the near-iterative development process. When the main requirements and architecture of the system are clear, the software team enters an evolving cycle.

Agile process:

  • Development principles:
    • Deliver valuable software as early and continuously as possible to meet customer needs.
    • Agile processes welcome changes in demand and use this change to improve users' competitive advantage.
    • The available software is often released, and the release interval can be from a few weeks to several months, and can be as short as possible.
    • Business personnel and developers should work together daily during the project day development process.
    • With ambitious people as the core of the project, fully support and trust them.
    • No matter inside or outside the team, face-to-face communication is always the most effective way of communication.
    • The available software is the main indicator to measure the progress of the project.
    • Agile processes should maintain sustainable development. Leaders, teams and users should be able to continue to cooperate at the current pace.
    • Only by constantly focusing on technology and design can we become more and more agile.
    • It ’s extremely important to keep it simple—a technique that simplifies the workload as much as possible.
    • Only a self-managed team can create excellent architecture, requirements and design.
    • Always summarize how to improve team efficiency and put it into action.
  • step:
    • Find out what needs to be done to complete the product.
    • Decide what needs to be resolved for the current sprint.
    • In the sprint, the team conducts face-to-face communication through daily regular meetings. Everyone reports what they did yesterday, what they are going to do today, and what problems they encountered.
    • An incremental version of the software is obtained and released to the user, and on this basis, further incremental new functions and improvements are planned.
  • Requirements of the agile team:
    • Self-management: In the past, the leader arranged the tasks, and we can achieve it. Now we have to choose the tasks ourselves: after each Sprint, we must summarize the deficiencies, propose improvements, and implement these improvements ourselves. "Autonomous management" does not mean "no management".
    • Self-organization: It's good to do your own thing before, and get off work. Now everyone has to work together to take responsibility for the project. Someone who has fallen behind needs to help him improve. The project lacks certain types of resources and needs to go up on its own.
    • Multi-function type: In the past, the specifications were written by the PM, and the testing was done by the testers. Now everyone is fully responsible for making the specifications themselves, communicating with others, and doing the tests at the same time.

TSP principle:

  • Using a well-defined process, each step in the process can be repeated and the results can be measured.
  • The daily target and role of each team or member of the heavy team on the team. Products have a unified understanding.
  • Try to use mature technologies and practices.
  • Collect as much data as possible to help the team make rational decisions.
  • Make realistic plans and commitments. The team plan should be formulated by the specific execution role (not from the superior).
  • Increase the team's white self management ability.
  • Focusing on improving quality and striving to discover problems early in the software life cycle, the most effective way is to do comprehensive and meticulous design work.

Chat 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. 2019 Spring School of Computer Software Engineering (Beijing University of Aeronautics and Astronautics)

Team project job release account link: https://www.cnblogs.com/PureMan6/p/10739662.html#4

Team project repository github link: https://github.com/swearitagain/EduCnblogs2.0

State your reasons for choosing this team project for analysis:

  • The reason for choosing this team for project analysis is that I have never been involved in any software development activities. It is a very good idea to see that as college students, they can develop websites that we often use in daily study into mobile phone software. , I also hold a mentality of learning. Moreover, the mobile blogging park does bring convenience to students to a certain extent.
  • The software can already be installed and run on most mainstream mobile phones. The project team conducted a compatibility test on 50 mainstream mobile phones. The result is that under the Tencent adaptation standard, the first version of the software passed the adaptation of 50 mobile phones. The rate reached 94%. After debugging, it reached 100%. It can be said to be a very successful student development project.

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

  • The division of labor among members is as follows:
  • The team has 3.5 developers, 1 tester, and 1.5 project managers.
  • The developer is responsible for implementing the functions and interfaces of the client. We mainly need to call the API provided by the blog garden and cooperate with some components to realize the function. The initial division of labor is that each person is responsible for their own functions, and then communicates the obstacles encountered or progress at the regular meeting, determines where to add the functions, and ensures the unified UI of everyone. At the same time, there are two developers who regularly unify all the interfaces and beautify .
  • The tester is responsible for completing the compatibility test, stress test of the client, and the integration test of each function.
  • The project manager is responsible for completing various documents, organizing meetings, arranging tasks to advance the project, communicating with relevant personnel, doing research, and promoting.

The project's software project process characteristics (TSP):

  • The project uses an agile development process. This development process is fast-paced, efficient, and has high requirements for members' professional abilities. Everyone in the team has basically done what they are good at.
  • The project is divided into three stages, Alpha, Beta, and Gamma, and each stage has 10 daily meetings. Write a document on the results of the regular meeting, the document collection: https://www.cnblogs.com/PureMan6/p/10673298.html
  • The team took a long time to determine the direction of the project and learn related knowledge. It was not until the 4th daily regular meeting of the Alpha stage that the software coding was officially entered.
  • Throughout the project, the team will re-clear the division of labor and complete the corresponding tasks every day.
  • In the process of the project, the team members are always in the state of learning while developing. The difficulty is to collectively consult relevant materials to overcome, solve the problem and write a technical blog.
  • The project was released and tested in three stages of Alpha, Beta, and Gamma, so many problems were solved at an early stage. At the end of each stage, the team must summarize the development experience.

The source code on GitHub is as shown in the figure below. The source code lacks a code specification description and no README file and other necessary instructions for the system. I personally think that it may bring some inconveniences and inconveniences during the code review process and code testing process The reading of the system code by others.

We tested the mobile terminal APP developed by the Beijing University of Aeronautics and Astronautics team:

  • Software download path:

    software use test:
  • Software opening page and login page (same as the web side):
  • Function trial:
    • Main interface:
    • The status bar message reminder function is implemented (like this function):
    • Browse the blog post page:
    • The class list page where the account is located is displayed (each class is the same as the warehouse, and after selection, the entire software only displays relevant information about the class):
    • Job submission interface:
  • Software bug description:
    • After the software runs in the background for a period of time, it will show that the identity information has expired, but the software can still be used normally.
    • The software voting function is unstable (the success rate of the voting is not high, and once it is successfully released, there is no way to delete it, and the delete key is invalid):
    • The software page shows that there are problems:
      • Can only display the content of the screen width of the mobile phone, lacking a slider (for obvious comparison, this function is displayed in the dark mode, the dark mode is located in the setting function directory, the implementation is incomplete, but it is also a very good function try, does not affect normal Used, so it is not listed as a bug. After all, WeChat only has this feature this year, and it looks very good in comparison).
      • A class avatar cannot be displayed in the class list (but both classes have avatars on the web page).
    • There is a problem with the submission list (as shown in the figure, 69 people have submitted homework, but the submission list is empty and cannot be displayed):

Is the project necessary to continue development?

  • In my personal opinion, this project is actually quite successful. Even if I do n’t continue to develop and improve, I may continue to use this software. After all, the computer is not portable anytime and anywhere, and the mobile phone software will bring a lot of convenience. .
  • Objectively speaking, first of all, the current bugs in the software are basically not very serious, that is, the system has no problems with the more important functions. Second, the overall development process, the development cost of this software is still relatively Small, within the tolerable range.
  • There are not a few computer industry practitioners and students who use Blog Park. This APP can meet the basic blog post browsing and submission functions, so the potential market is still relatively large. It is inherently inconvenient and unrealistic to complete blog writing on a mobile phone, so it is reasonable for the software to avoid the realization of this function. That is to say, there are not many functions that the software lacks.
  • In summary, I think this project is worthy of continued development.

Record the actual time spent on completing the tasks of "Experimental Four Software Project Case Analysis".

task time consuming
Task 1 2h
Task 2 3h
Task 3 6h
Task 4 2h

to sum up:

  • This experiment mainly tracked and learned excellent cases. Through this experiment, I have a relatively clear understanding of the development process and steps. At the same time, I also saw the team's 100% effort in developing the project and saw the gap between us. For example, the last case has been submitted more than 700 times, and three phased test versions have been launched before and after. I also noticed the emphasis on the accumulation of experience and continuous summary and improvement during the team development process. There are many things worth learning and learning from them.

Guess you like

Origin www.cnblogs.com/980303CYR/p/12643395.html