201771010128-Wang Yulan 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 Further improve the epidemic situation reporting system and learn how to operate githup
In what ways does this assignment help me achieve my learning goals During the pairing process, the cooperation part has to be developed
Student ID-Name 201771010127—Wang Yan
Link the other party to this blog assignment link https://www.cnblogs.com/JAVA-729/p/12624399.html

1. The purpose and requirements of the experiment

(1) Learning team software project process (TSP), team member collaboration requirements.
(2) Master the principles of agile processes and related concepts.

2. Experimental content and steps

Task 1: Three outstanding cases of experiment: Wang Huihe

https://www.cnblogs.com/http-www-whh0601-cnblogs-com/p/12553743.html
(1) Read and comment on case blog assignments.

(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.

The person in charge of the second level epidemic prevention department can enter their respective colleges to filter and view:


query by name Personal situation:

query by area: query

by presence or absence of infection:

icon visualization, you can generate corresponding charts based on the fields that appear:

college, pie chart and Histogram display:


teacher-student ratio:


location:

infection situation:

information filling:

regular reminder:

data display:

After reading the code specifications of the case party, a brief introduction to each module, enumerating the key codes involved and some methods used, and also summarizing the naming style, constant definition, and code format provisions in the code specification, help We pay attention to it during programming; after cloning the source code from githup, it runs on its own computer. During the first test, it just re-imported the packages used in the project and completed the operation successfully. By reading the code, the code was written according to the code The requirements in the specification, because there are corresponding comments, the code is also easy to understand; then browse the corresponding instructions in the case party ’s blog, and it is easier to understand the corresponding implementation of the function in this project, and also experience the development of this The difference between the idea of ​​the system and the idea of ​​our team to develop this system, for example, the time reminder function they implement is by way of email. In short, through comparison, I have learned a lot.

(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.
Case assignment blog link: https://www.cnblogs.com/http-www-whh0601-cnblogs-com/p/12553743.html
case assignment project warehouse link: https://github.com/yy202901582/DieaseSubmitSystem

   Software function summary: The epidemic situation reporting system developed by the case party realizes the daily epidemic situation reporting by students or teachers, and the person in charge of epidemic prevention and control of each secondary department can view the epidemic situation summary of the personnel of this department, realize the visualized statistical chart, by name You can check the specific situation and additional functions to fill in the report regularly according to the location; in the module for filling in basic information, other than the name needs to be filled in, the other options are to use the drop-down box to choose a new style. This design saves the time of the person filling in the report However, there is no student number when filling in the report. Because there is the same name and surname in the school, it is more accurate to uniquely identify a student or teacher by the student number or work number; in the statistical chart, a variety of methods are used, such as pie chart and column. The picture is very complete, and the design of the function of the regular reminder is also very good, but there is a bug, that after the time the reporter closes the window, there will be multiple reminders. In this design, I want a confirmation reminder to be more perfect; The unimplemented function is EXCEL file which can be [exported] to query the list.

There is no student number or job number when filling in the report, and it is impossible to accurately confirm which one is because there are people with the same name and surname, and it is not easy to distinguish by name.

Multiple reminders will be displayed when filling in the report. After receiving the reminder, the fill-in person cannot click to confirm the reminder.

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;

Features of the software team

  • Teams have a consistent collective goal. Team members must complete the goal together, and members of a team do not have to work together.
  • Team members have their own division of labor, rely on each other and cooperate to complete tasks.

Software team model

  • Honeycomb mode: The team mode formed based on intuition is a happy and casual mode.
  • Attending physician model: each performs its own duties and serves the attending physician. The chief programmer is responsible for the design and coding of the main modules, and other members support his work from all angles.
  • Star mode: The extreme point of the attending physician mode. A simple understanding is the chief programmer's best interest, and all the work is done by one person.
  • Community model: Everyone participates in the direction that interests them. The advantage of this model is "all people collect firewood with high flames". If everyone exerts their own advantages, they will achieve very good results.
  • Amateur Theatre Company Mode: Each team will choose different roles in different projects, and everyone can discuss equally.
  • Secret team: Software projects are conducted under secret conditions, and others do not know what they do. The advantage of this model is that the team has great freedom, high enthusiasm, and no outside interference.
  • Special agent team: professionals with special skills, responsible for solving some difficult and pressing problems.
  • Symphony Orchestra Mode: The performance mode of the symphony orchestra. When a software is in a stage of stable growth, the development team will adopt this model.
  • Jazz mode: Opposite to the symphony band mode.
  • Functional team mode: People with different abilities cooperate equally and complete a function together.
  • Bureaucratic model: Several people report to a small leader, and several small leaders report to a middle leader, one after the other.

Waterfall model and its deformation

  • Waterfall model: The waterfall model is a model that stipulates the activities in the software life cycle as several stages connected in a linear sequence, including requirements analysis, design, coding, testing, operation, and maintenance. It stipulates a fixed sequence from front to back, which is connected to each other, like a waterfall falling in steps:

(1) Limitations of waterfall model

  • The steps are separated, but the steps in the software generation process cannot be separated so strictly;
  • Retrospective modification is difficult or impossible, but the process of software production requires time to retrospect;
  • The final product appears only at the end, but software customers and even software engineers need to know the prototype of the product and try it out as early as possible.

(2) Scope of application of waterfall model

  • If the definition of the product is very stable, but the correctness of the product is very important, it needs to be verified every step;

  • The interface between product modules, input and output can be well defined and verified by formal methods;

  • The technology used is very mature, and team members are familiar with these technologies;

  • The sub-teams responsible for each step belong to different institutions, or in different geographic locations, and it is impossible to communicate frequently.

  • Variations of the waterfall model
    (1) Sashimi model

    This model solves the shortcomings of the separation between the various steps, but also brings some confusion. When will the previous stage end?
    (2) Big waterfall with small waterfall
    In order to solve the problem that the progress between different subsystems is not easy, the technical requirements are very different and need to be treated differently, the sub-waterfall model is introduced

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:

MVP: Minimal Viable Product, the smallest viable product, also known as the Minimal Feature Set, the smallest feature set.
The specific method is to realize (or depict) the core functions of the product with minimum cost, and then quickly solicit user opinions.
MBP: MVP also has its scope of application. Corresponding to it, it is the idea of ​​Maximal Beautiful Product (the most powerful and beautiful product, MBP). If you understand the needs of users, or the product team understands the needs of users better than users. Why not show the most complete and beautiful form of products and conquer users in one fell swoop? You can review the first version of iPhone (2007) and iPad (2010), are they MVP? Obviously not. How can MBP be achieved? This has higher requirements for the product team.

Agile process

In the context of software engineering, agile processes are a collection of values ​​and methodologies.
Agile flow chart:

Agile steps:
Step 1: Find out what needs to be done to complete the product-Product Backlog.
Backlog translates to "backlogged work", "problem to be solved", "product order", all. The person in charge of the product leads everyone to analyze, refine, clarify the relationship between the items in this Backlog, and estimate the workload. The estimated unit of time for each job is "days".
Step 2: Decide what needs to be resolved in the current sprint (Sprint Backlog).
In units of hours, if the estimated time for a task is too long (eg more than 16 hours), then it should be further decomposed. The task on the order is for the team members to claim according to their own situation. If team members can lead the estimation and assignment of tasks, their initiative will be greatly exerted.
Step 3: Sprint.
During the sprint, the team conducts face-to-face communication through daily ScrumMeeting, and daily meetings force everyone to report progress to their peers, forcing everyone to put the problem on the bright side. At the same time, the team should start the daily build, so that everyone can see a gradually improved version every day.

Understand and appreciate the TSP principles summarized by the Carnegie Mellon University (CMU) School of Software Engineering

  • Using well-defined processes, each step in the process is repeatable and results can be measured.
  • Each member of the team has a unified understanding of the team's goals, roles, and products.
  • Try to use mature technologies and practices.
  • Collect as much data as possible (including data that is bad for the team), and use the data to help the team make rational decisions.
  • Make realistic plans and commitments. The team plan should be made by the person responsible for the specific execution (not from the superior).
  • Increase the team's self-management capabilities.
  • Focus on improving quality and 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 the problem later).
    Although these principles are abstract, when each team is doing Postmortem (Postmortem refers to the review of the product after the end of the software project and the analysis of the development process), you can check it and see what your team has done in the past software life. How much has it improved during the cycle.
    Chat with friends


Task 3: In the class blog park, there are a lot of software engineering courses in colleges and universities that require students to complete team projects. Please consult with the three partners of the experiment to select a high-quality team project case for collaborative learning. It is required to track the team project and publish all blogs. Homework, download project software code.

Case 2019 Spring School of Computer Software Engineering (Beijing University of Aeronautics and Astronautics): https://edu.cnblogs.com/campus/buaa/BUAA_SE_2019_LJ/homework/2685
1. Link for the account of the release of the team project work: https: //www.cnblogs. com / PureMan6 / p / 11038754.html
2. Team project repository github link: https://github.com/swearitagain/EduCnblogs2.0
3. State your reasons for choosing this team project for analysis

   After browsing all the team projects, I finally chose this one, because our course this semester is to use the blog park to complete the study of software engineering. This blog park app brings us convenience; and there is one more point I studied Android development last semester, and the final requirement for developing a game is also to run on the mobile terminal. It is precisely this app that is also the mobile terminal. You can review the previous learning. In addition, you want to experience the mobile blog park app. What functions, how did the other team realize it, and finally learn from them to gain experience.

4. Combine the project series blog documents to summarize the division of labor 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 (tasks are not So many other developers), responsible for meetings.
During the progress of the project, there are different divisions of labor at different stages:


5. Combine the project series of blog documents to evaluate the software project process characteristics (TSP) of the project (5 points);
(1) During the implementation of the software project, a At the beginning, it was clear what the project was and what functions it needed to achieve;
(2) The team made a detailed plan based on the role of the specific implementation, and the team members were very clear about the project goals and products;
(3) In addition Developed a project plan and reward and punishment system, which helps to 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 to the next team member to continue work, so that he can Identify the problem early and correct it in a timely manner. It will not cause you to do your own thing. Finally, you will find the problem and make up for it. 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.
6. Observe the source code file structure of the github warehouse of the team project, does it contain code specification documents? (5 points); does

not include the code specification document
7. Download the team project code, try to deploy the project operating environment and use the software, describe the simplest and intuitive user experience, find at least two more serious functional bugs, and display them in the blog Screenshot.
After logging in, there are three modules, "My Blog, My Class and Me".
Click "My Blog" to view the list of personal blogs. Click any job to forward, bookmark and comment.

Click "My Class" to view announcements and assignments , Blog posts, and votes

Click "I" to view personal basic information, there are some operations

can set schedule reminder, dark mode, etc.

Existing bug1, when logging in to the blog garden, click "Remember me". When you log in again after logging out, you have to re-enter your account number and password, which does not function as a "remember me".

There is a bug2, after login, the message "Identity expired, please log in again" will pop up, but this one has just logged in and the validity period is short.

There is a bug3, the system will automatically prompt "some pages are not supported" when setting the dark mode

8. Evaluate whether the team project is worth continuing development, and state the reason?

   I think it is worth continuing to develop, because for us, using the app is very convenient to understand the relevant information of the blog garden. Although Baidu can also log in to the blog garden compared to the computer side, the blog garden interface on the mobile terminal is small, which shows the blog. All the information in the park will take a long time to read and query, which is troublesome. With this aap, we can check the relevant information published by the blog garden teacher at any time, which is super convenient to use. In addition, there is a schedule reminder in this app, as long as the relevant settings are set, we will no longer have to worry about forgetting to hand in our homework. It is too practical for us to change the function of the team project, as long as we perfect the existing bugs, it will be more perfect.

Task 4 "Experiment 4 Software Project Case Analysis" Actual time spent on each task

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

to sum up:

    By reading the case party ’s blog and running the case outbreak reporting system, I experienced the case party ’s outbreak reporting system. Compared with the system developed by our team, I felt very touched. Task two discussed learning software development through pairing with partners The different development processes such as: waterfall model, progressive delivery and agile process, software team software project process (TSP), team member collaboration requirements and other knowledge points, I feel that this kind of communication I understand some concepts that I do n’t understand It has a great effect and high efficiency; task three is what we finally decided to do based on the premise of the Android development study last semester after our discussion. It is very convenient for us to download and experience the app through the mobile terminal.

Guess you like

Origin www.cnblogs.com/wang963/p/12651227.html