201 671 030 120 Jing experiment fourteen project review team & course summary

  


  

project content
Course Title 2016 Computer Science and Engineering Software Engineering (Northwest Normal University)
Work requirements Experimental fourteen project review team & course summary
Job learning objectives (1) master the software project will be assessed process; (2) to reflect summarize course content.

  


  

I. 1. course content of the semester, compared to "a test preparation software engineering," the task 5 your question (questions given blog link), to try to answer questions and clarify how through learning / practice / discussion figure out; learning whether or not a new problem? If so, please ask.

  • Question 1:

        For Conway laws "building law" on page 95 A super programmer Melvin Conway said in a summary of the talk, "software system is to give users, internal organization chart user needs not to look at this institution , but to solve a user's problem right team structure, to a greater improvement in the efficiency of communication, so that the team can focus more on the main goal - solve customer needs above "can be seen , a software engineering process, the user needs to occupy supreme position, then the internal organizational structure of the organization is not important yet? When users continually raise new questions, how will software developers to solve the problem of time and therefore bring it? In addition, the evaluation of a team is good or bad, is only concerned with whether they can solve the needs of users, without the need to take into account the internal organization of each agency do?

I believe that the evaluation of a software project team is good or bad, efficiency is the key. The ultimate goal of a project developed to allow users to use, it is necessary to clearly understand the real needs of users, such as user needs features, interface, and so want to see. Needs analysis a fly can reduce project development time and improve the efficiency of project development. However, it can be done in a very detailed needs analysis phase of the team, it must have a very good internal organizational structure, as well as analyze and solve user problems. When the user's demand is not very clear, the software project team needs to actively communicate with multiple users in a manner understandable to the user to learn more about the needs of users.


  • Question 2:

        By reading "Building of the law," the fifth chapter in team mode software related content, I learned that the diversity of the team model, but the model for the characteristics of these teams and their advantages and disadvantages is not too understanding. Meanwhile, the team also has some of the following modes confusion. And future work in the appropriate mode is the same as the team we are now learning it? When a new software engineering project started, how to choose the most appropriate team pattern here? When a team mode is selected, the entire project development process, the team was originally selected mode if you can change it? If a change occurs, it will change the team model can do under what circumstances? In the process of changing the mode of software engineering team developed, resulting in some positive or negative impact on the entire software engineering project?

"Thousand mind, it was one thousand human; people dissent, with no one person", which is the ancient understanding of teamwork. In the process of software development, "Gu Mu is difficult for" the word seems quite appropriate, so teamwork becomes extremely important. Software team model varied for different people and needs, are: physician mode, the star model, community model, amateur theater mode, the secret team, agent teams, symphony orchestras mode, jazz mode, team mode function and bureaucracy mode. My personal ideal team model is functional team mode, with different individuals in a nutshell is the ability of equality and cooperation together to accomplish a function. Because I think everyone's ability are all different, and this model allows team members to perform their duties, give full play to the role of each person. And there is no relationship between management and the management of each other, can eliminate the sense of distance between members, enhance team communication, and ultimately develop the perfect software products.


  • Question 3:

        By reading the relevant knowledge points Chapter IX, I deeply appreciate the importance of a software team and the PM wants to be a number of conditions necessary for a qualified PM, but also generated a lot of doubts. In about 182, I know that the PM can be expressed as the following three: Product Manager (Product Manager), Project Manager (Project Manager), Program Manager (Program Manager), then these three distinct PM What is the nature of it ? In a large company, whether or not there is also need three PM it? Also, for purposes of contemporary college students, entering the community rarely have the ability to become necessary for a qualified PM, then we should start in every respect, and how to develop these capabilities should it?

PM in addition to management, often serve two roles - designers and developers. By a semester studying software engineering course, I believe that a qualified PM needs to have the following character:
(1) while learning theoretical knowledge continue to strengthen practical and effective theoretical knowledge into productivity is needed is long-term accumulation of experience .
(2) need to have an open mind and adaptability to the development of the times. Honest, this is every manager should have the quality.
(3) the blood can not have anger, anger can not do without the argumentation. PM must have the courage to say to unreasonable demands "no", you must dare to safeguard the interests of the team.
(4) PM must have a certain resilience and when the software project encountered major problems, PM should calm state of mind handling problems, leadership team members to overcome the difficulties.
(5) To become a truly qualified PM, efforts indispensable.  

  


  

Second, summed up his analysis / needs analysis / software design / implementation / testing / project acceptance / learned what "knowledge" in the feasibility of the project.

  • 1, feasibility analysis

Use NABCD primary method of team project feasibility analysis, with minimal cost to determine whether the problem can be solved, whether it is worthwhile to be resolved within the shortest possible time.

  • 2, needs analysis

Use Visio UML graphic drawing tools to draw a use case diagram, communicate and share with the people; the questionnaire analyzing the needs of users. The ultimate goal of a project developed to allow users to use, it is necessary to clearly understand the real needs of users, such as user needs features, interface, and so want to see. Needs analysis a fly can reduce project development time and improve the efficiency of project development.

  • 3 software design

Software design, including preliminary design, system design and detailed design. During development of a software project, the detailed design is the most important part of the whole design is directly related to the project can be achieved, but the detailed design of the smooth completion of the preparatory work done before in turn depends. In addition, many study design tools and software architecture in software design, software design conceptual model, C / S and B / S structure, and the similarities and differences, the MVC design pattern and the like.

  • 4, to achieve

Configuration Items integrated development environment; seriously and continue to write code debugging; task analysis and burndown of wbs.

  • 5, test

Software testing: test the software and find errors, to assess the software quality.
The main software testing method are:
(1) Static Test Method (2) Dynamic Test (3) black-box testing (4) white box

  • 6, project acceptance

In the project acceptance process, explain in detail the user functionality of the system we have developed, actively communicate with the user, allowing users to truly understand our development projects.

  


  

Third, the combination of individual projects / junction personal experience of program / project team, talk about the experience.

  • 1, individual projects

    Through the implementation of individual projects, I am deeply aware of their relevant expertise is not enough to master, but also found a lack of learning and practice. Software engineering requirements analysis is insufficient, inappropriate these are the need to improve and after learning the software development process, various documents prepared by the ability of software development also need to upgrade, conscientiously sum up and improve in the future learning and practice, reference others software projects, software engineering experience excellent idea. In the time to do anything I must have felt standing on the shoulders of giants, rather than repeating the idea to do things the production of wheels. Overall, this personal project I got a better understanding of the software development, learned a lot.

  • 2, pair programming

    In the pair encountered a lot of problems to discuss both through the junction, mutual assistance, repeatedly tested repeatedly revised, eventually solve these problems to achieve specific programming. By twinning project, his personal capacity has improved, while the two men understand the importance of cooperation and the profound meaning of 1 + 1> 2. In addition, the experience of taking the program can improve the design quality and code quality and the ability of two people work together to solve problems, and can exchange learning experiences, improve their overall level. "Thousand readers there are a thousand eyes of Hamlet" by blending two people thought, the final outcome will be even more meaningful.

  • 3, the project team

    By designing the project implementation team this semester, I have a better understanding and grasp of the knowledge learned to recognize the difference between the textbook knowledge and practical application. Only through the practice of specific projects, in order to better grasp the knowledge and flexibility to address specific problems of alternative processing. In addition, I deeply understand that the realization of a project is the most important requirement analysis, rather than the implementation code. Only rational analysis and design, code implementation of the process will not encounter problems. Learning this period to some of the basic grammar and writing method HTML page, drawing UML use case diagram using some of the basic tools of software engineering, methods to write software development documentation and practices, human-computer interaction applications when developing human-machine interface design, implementation of interactive, user-friendly interface design. The project design also recognized the importance of teamwork, a person's ability is limited after all, and everyone's infinite power. In addition, to sum up experiences and lessons of others, learning, reference and use of advanced research achievements of others, there must be emphasis on teamwork and the spirit of an open mind to learn. During this period, we also appreciate the joy of working together to get something done.

  


  

Fourth, sum up practical summary of the course and upgrade to bring you.

  • 1, statistical software engineering practice, completed the code you how many rows;

In the practice of software engineering, about the completion of more than 3,000 lines of code.

  • 2, respectively, you spent much time in the second practice of software engineering job? (Make a list)

    task Spend time (h)
    Experimental Software Engineering to prepare a 4h
    Software engineering experiment two individual events 15h
    Improvement of the peer review with three operations 12h
    Experiment 4 software engineering twinning projects 8h
    Experiment 5 Preparation Software Engineering 5h
    Experiments six team project topics 7h
    Experiment 7 team prototyping and development project 6h
    Experimental research and analysis needs eight prototype-based team projects 15h
    Experimental nine team project needs improvement and system design 20h
    Experimental ten project team system design and detailed design 18h
    Experimental eleven team project designed to improve coding & 30h
    If a software testing and test Alpha sprint 15h
    Beta test thirteen team sprint and project acceptance 10h
    Experimental fourteen project review team & course summary 5h
  • 3, which allows you to work once the most impressive? why?

我印象最深刻的是实验十一 :团队项目设计完善&编码和实验十二:软件测试与Alpha冲刺。由于多次放假导致软件工程课程耽误,因此我们只有一周的时间去完成编码和测试。在编写代码的过程中,由于团队成员编写代码能力较弱,因此进度比较缓慢。期间遇到了很多问题,比如页面不跳转;合并各个模块代码时接口不统一,变量名不一致等。在连接数据库时,由于电脑的环境配置不合适,因此也进行了多次尝试。总之,通过这次作业,深刻地认识到了团队合作以及虚心请教他人的重要性。

  • 4、累计花了多少个小时在软件工程实践上?平均每周花多少个小时?

家教管理系统从最初定题到期末验收,累计共花费300个小时,平均每周13个小时。

  • 5、你学习和掌握的新语言、新平台;

语言: 编写Java语言的水平有所提高;熟练了HTML网页的一些基本语法和编写方法;MySQL数据库。
新平台:博客园、Markdown、GitHub、中国大学慕课、leangoo看板、雨课堂、墨刀的使用、UML用例图的绘制等。

  • 6、填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;

    软件开发工具、项目管理工具 软件开发方法 软件建模方法
    GitHub,MyEclipse,Dreamwearver、MySQL 面向对象方法,原型方法,结构化方法,Jackson方法 面向对象建模,结构化建模方法,数据库建模
  • 7、其他方面的收获或提升。

(1)学会了撰写博文以及如何开发严格完整的软件项目,编写文档和代码的能力也有所提升。
(2)提高了自己分析问题和解决问题的能力,也认识到了自己需要改正的一些不足。
(3)通过结对项目和团队项目的完成,认识到了团队合作的重要性。

  


  

五、你认为目前的课程存在哪些问题,你有什么更好的建议。

  • 1、本学期的软件工程课程代老师采用的是反转课堂的教学方式,将课堂交给同学们,这就需要同学们课后进行自学,因此提高了同学们的自学能力以及独立思考问题的能力。反转课堂的教学方式固然是一种很好的提高同学们能力的方式,但是由于同学们习惯了以老师为主的课堂,因此刚开始都不太适应,希望老师在之后的教学改革中,给予同学们一个合理的过渡阶段,让更多的同学适应这种教学方式。
  • 2、开发一个软件项目是一个漫长的过程,起初在编写各种开发文档时,同学们对整体流程都比较模糊,不知道接下来该做什么。因此,希望老师在开发软件项目之初为同学们大致讲解整个开发流程以及期间所需要做的各种工作,并要求同学们详细记录软件开发的各个阶段需要完成的任务,每完成一项划去一项直到最终完成整个项目开发,以此让同学们对软件开发有一个总体的感受和认识。
  • 3、由于大三同学们多数都在为考研做准备,平时还需要考取各种资格证书,但是软件工程的作业每周都需要花费很多的时间去完成。因此希望老师可以减少一些作业量。
  • 4、最后,感谢代老师和助教们的严格要求以及认真负责。

  


Guess you like

Origin www.cnblogs.com/WJwangjing/p/11105220.html