BUAA 2020 Software Engineering Case analysis software jobs

Author: 17373051 Guo Jun

project content
This work belongs courses Spring 2020 Computer Software Engineering Institute (Roger Ren Jian)
Where this requirement in the job Personal blog jobs - Case Analysis Software
My aim in this course is Develop knowledge learning software engineering, training engineering and development capabilities
The job which specific aspects help me achieve goals Analysis of mature software, deepen the understanding of software engineering

Foreword

I chose to analyze two products for Microsoft's code editor: Visual Studio (hereinafter referred to as VS) and Visual Studio Code (hereinafter referred to as the Code). Both software name only a difference of a word, but the function is different as day. Whether they are the target users, the main function or design ideas are different.

Used when writing code reasons for choosing these two software, one of these two software I am more familiar, more intimate, but also my two most used software. Second, both programs have a lot of similarities and differences, bring more contrast to reflect the strengths and weaknesses of the two, but also makes this research report more solid and comprehensive.

The first part of the research evaluation

Software

To better understand these two software, let's look Tell me what the Internet is how to introduce them.

  • Studio Visual : Large Integrated Development Environment

    You can see, Visual Studio functionality is really very large, very comprehensive. Development, analysis, debugging, testing, collaboration, deployment, use this tool VS, will be able to complete a software development entire process , including most of the tools needed for software throughout the life cycle.

    Moreover, VS supported by the type of development is very extensive. From the simplest console application to .NET desktop development, Unity game development, mobile development, Linux development, Web development, cross-platform software development, data processing and analysis, Office development, and even develop their own VS extension of ...... VS can be said that nothing less, there is little development can not be used VS.

    Meanwhile, VS also supports plug-ins, no or not enough to help improve the VS comprehensive functionality to support custom allow this to Almighty VS higher level.

  • Code Studio Visual : lightweight text editor

    Compared to VS, Code function is clearly much less, but the volume is almost one per cent of VS. In the official website interface, Code only four main functions: code intelligence tips, Debug tools, built-in Git, extension. But in fact I used the Code of people know, the fourth feature extensions power may be suspended or beaten all its text editor on the subject. Which has a very high customization and extensibility, and even the number of Code can be configured to not lose function VS. Code also supports the use of the Linux environment, it can be said is a full platform text editor.

Visual Studio are on the subject of software: IDE, such as home JetBrains IntelliJ IDEA, PyCharm, as well as the open-source editor Eclipse, Apple's Xcode and so on.

Visual Studio Code are on the subject of software: a text editor, such as Notepad ++, Sublime Text, Atom and so on.

You can see, these two different software competitors, the functional morphology are also different. So Microsoft developed two editors and development environments are meaningful.

Software Experience

  • Visual Studio

    Last personal project work is completed using VS, so I directly used as a demonstration project.

    The software experience is very good , because it lacked for nothing .

    Want to write beautiful code? VS help you layout, intelligent check for errors.

    Want Debug debugging? VS provides breakpoint debugging can be traced back abnormal position and the program ends abnormally.

    Want to unit test? VS provides built-in unit testing framework to help you comprehensive coverage program.

    Want performance testing? VS can draw fine performance analysis chart to help you optimize your program.

    Even by VS can be deployed directly to Azure or Git, completion of all processes.

    This software can solve almost all of incurable diseases development process, can solve most of the problems users .

    However, since the software function so much, the data show so complex, users will no doubt bring the threshold to get started. If you are getting started with programming for beginners, using VS as their development tool is undoubtedly difficult. Even experienced developers, but also relatively difficult to want the VS Fun.

    Because the functional complexity, so that caused the error may be many, many error also more abstract, and often people scratching their heads. Microsoft's official documentation not be able to solve the problem, often we need the help of search engines to solve.

    Meanwhile, a large volume of VS, time consuming to install. Although Visual Studio Installer supports IDE features modular installation, unnecessary functions can not be installed, but will take up hard disk space is still a few G's, almost all larger than the market IDE.

    • Advantages: full-featured, covering the complete, detailed data, all the development process is completed within the same piece of software.
    • Disadvantages: bulky, too much content interface, a high degree of difficulty to get started, almost no one can simultaneously use all the features of.
    • Improvements: I hope to built more functionality description, will feature more modular segments, you can not download unwanted parts, thereby reducing the minimum volume software.
  • Visual Studio Code

    Compared VS terms, Code interface is very clean and fresh. For as a text editor, which almost no barriers to get started. Further, as a rising star, Code generous receiving those used to the other editors (Emacs, Vim, Atom) like editor user can be configured easily change the layout of shortcuts through the plug.

    Code used by people who presumably will appreciate the plug-in is the soul of Code, Code of almost all come from powerful plug-ins. Even after the installation of local language support, you need to download the add-ons store. Support for programming languages, various extended configuration support also comes from the plug. Code to do what you want, go to the store looking like a plug. Even Code NetEase cloud music also supports plug-ins, you can say what will.

    But at the same time, over-reliance on plug-in can be considered a flaw Code itself. First, no plug-Code is a set of text editing features of Notepad layer of skin, in addition to automatically convert Tab into four spaces outside, the editor and Notepad also no gap. For Debug function, but also require the user to write launch.jsonfiles for debugging, various compilers require the user to set the parameters, not like VS as a button.

    Although we say plug-in is very powerful, but still did not do the plug-Code will become VS. For example, Code of C ++ Extension, like VS does not support the same, in the form of the project to compile and run C ++ programs. We need to set up their own, for developers can be considered additional educational costs.

    In the add-ons store, but also uneven quality plug-ins, there are some functions duplicate or conflict of plug-ins. If the plug-in installed too much, it might slow down the Code of speed. In general, Microsoft's own official plug-ins can solve a lot of problems there will be no bug, but some support (such as Latex, etc.) still need to use third-party plug-ins.

    • Pros: Lightweight, simple, low degree of difficulty to get started, scalable and highly custom capabilities.
    • Disadvantages: Plug varying quality, there may be conflicts and errors, too many plugins will affect the speed.
    • Improvements: Official hope to develop more plug-ins, to provide a more intelligent or graphical programming process to run C ++ and other languages, implementing the use of this standard.

After completion of the analysis, I had a further thought. Some "defects" I mentioned above is not necessarily a drawback, actually may be the software's core audience pursued form .

In my eyes, VS's bloated and redundant , in the eyes of large-scale application developers may mean that a comprehensive and intelligent .

In my eyes, Code of plug-in dependencies that may happen to be the custom in the eyes of lovers of wealth.

Like most of ordinary families love Windows, operation and maintenance personnel and developers love Linux, especially the relationship between these two software. They are not distinguished and excellent inferior, but more like an ax and hammer relationship strengths can shine in the respective audiences. We expect them to be perfect, "young and old take-all", it is impossible. Like more, faster, save only do three Secondly , these two software less likely to do so that everyone can not be picky.

Because I'm just a junior student, although at the same time using both programs, but not these two software real core audience. I'm just learning to use their ability to develop, so a lot of software features in my eyes became a drawback. This is I, as a self- made evaluation software for a broad audience limitations .

So, although I evaluated these two software, but never on behalf of both programs should be toward me, "pointing" is to develop improvements. Their differentiation and significant feature, but rather these two software based on the fundamental.

Quantitative evaluation

Here for two software scoring, each out of 5 points, the lowest score 1 point.

Here scoring criteria, can only be evaluated starting point of view, it can not be representative of all from my point of view(Such as eating memory of this problem in many people's eyes is not a problem)

index Visual Studio Visual Studio Code
The number of functions 5 (this on the full, as well as plug-ins) 4 (mostly dependent on plug-ins, plug-ins and not all)
Customization capabilities 3 (add-ons store is small) 5 (really do anything)
Adaptive software 3 (no Linux end, the computer is arranged requirements) 5 (PC all platforms, and even web client, do not eat lightweight configuration)
Software performance 4 (eating memory) 4 (there will be more plug-Load Delay)
Interface friendliness 3 (too many features, dazzling) 4 (most are easy to use, but a lot of plug-ins no suitable interface, you need to edit json)
The average score 3.6 4.4

I personally prefer Visual Studio Code , because he also added support for remote development, Docker, Jupyter Notebook, etc., I do not have a very large-scale project management needs IDE for me, so VS slightly redundant. However, I believe there are many people who would prefer Visual Studio, due to the environment of use.

For the evaluation of VS: Well, yes

For the evaluation of the Code: highly recommended

Bug find

To be honest, home to Microsoft signs two-class product, very difficult to want to find a job requirement calls "more serious Bug functionality." However, the teacher told us to find as long as the Bug on the line, I will propose in the following a few general, Bug on the interface or convenience.

  • Visual Studio的Bug

    1.Enterprise version errors support unit test code coverage. After in the local environment, according to the official Microsoft course, the use of the normal flow of unit testing, click on the "code coverage results" button, the following error. When the search is found that this is one of the VS2015年代就有的问题, and now still trigger.

    2. Use the VS C # .NET forms were developing, scaling if the computer is not 100%, it will constantly remind you "at 100% open VS", and when you open at 100%, will continue to prompt you to "adaptive resolution to open the Visual Studio", repeatedly reminded.

  • Visual Studio Code的Bug

    1.Python Extension, the errors of support in Anaconda. Anaconda native support cmd, activation itself does not support virtual environments in Powershell, the need to go through special settings. The Code itself is the default Terminal Powershell, but Python Extension did not set it up, making it impossible to activate conda virtual environment in the Code.

    2. When the text information in the document is too long, Code plugin distant bracket matching, matching quotes will fail, causing some syntax highlighting failures. Common in support for long json file.

The second part analyzes

  • Use all the features of this service, it is estimated that the software / website / service to achieve the degree of how much time this takes about (team size 6 or so, computer graduates, and professional support UI).

    If the six-man team of college students, or whether it wants to achieve VS Code, even with the support of professional UI, even if we have learned to default all relevant technical, remaining only design and write code, time will be consumed in more than five years . If you want us to learn related technologies, and that the time consumed in more than seven years are no exaggeration. Because these two software is too powerful, too many features.

    If you just realize Code body without implementing all the plug-ins provided by the official, the difficulty may be lower, about more than two years , but the design plug-in interface standard is not a simple matter.

    VS achieve the body not to talk about, too many features too complicated, a lot has been completely beyond my scope of understanding, I can make all estimates are abstract and impractical, is likely to be longer than this time . VS implement all the features, time is no exaggeration in more than five years.

  • This software is currently analyzing the merits (and compared to similar software), the quality of this product is estimated in similar products ranked first few?

    Advantages: full-featured, almost all of the competing products, similar products ranked first, but points more than similar.

    VS provided extensive support than any other single product IDE, for example, all IDE JetBrains home may have to add up to VS and compared. Although VS does not support Java, but Microsoft's own .NET Framework support no one can match his.

    Code list of plugins is beyond the level of the same text editor, even the official Microsoft plug-ins developed is sufficient to match many editors, plus a third-party plug-ins, should be the most comprehensive.

    This figure is in March 2020, the global search for downloads of IDE rankings . VS share of 24.08% ahead of its competing products Eclipse, Android Studio placing him second and third. Code share in the fourth, as a text editor, a lot is already beyond full-featured IDE, the Code on the subject of Sublime Text, Atom ranked only ninth position, 10th, and declining market share, and Code of occupancy rate soared. Perhaps because the Code is a rising star, so the share is rising period, but it has defeated all of the standard products.

  • All aspects of the problem, reasoning that an important aspect of the software team in software engineering can improve the (specific recommendations).

    Microsoft software has always been impressed me is that, sometimes in unexpected places error and error information is very psychedelic, lower reference value. XP era, we see the most is the memory error 0xblabla error, the memory can not be "read" / "written", and the "OK" and "Cancel" button is almost the same effect.

    Today Win10 era, this error almost did not see, given Microsoft's style began to change as more information about this issue, please visit http://microsoft.com/blabla . Whether such an error in the Windows blue screen, or when the above VS mistakes are common. But I actually visited this page also did not get the right answer .

    Perhaps I should not demanding Microsoft team to make such a big change, because after all, whether it is a Windows system or VS, is a long time by the accumulation of forming a huge project to change any of these modules are difficult. But I still recommend, hope the team can be more detailed error information, popularization, at least to let the audience can better understand the software what kind of error has occurred. Access to such a web site yet to click on a hyperlink behavior, very confused.

  • You, why not fix the software team before being published in the first part of the bug found? They do not know, intentionally or not repair? What do you think is the reason?

    • Enterprise version errors support unit testing code coverage

      This error is not extensive, but not rare, is said to repair once before in VS2017 but was in 2019 and I ran into. The reason may be the testers did not test in special configuration environment, resulting in this error.

    • Scaling repeated questions

      This bug bug belongs to convenience, the reason may be no clear grasp customer needs, which leads to prompt such a cycle. In fact, this may not be prompted to bring me much trouble, but I will restart once or twice VS, clearly not sure my needs.

    • Anaconda and Powershell support

      The pot Anaconda and Microsoft Developer pot each half. For Microsoft developers, testers and apparently did not test out the incompatible Conda and Powershell, or know but too lazy to fix this bug. Private thought latter is more likely, because it still is a serious and widespread problem.

    • Long file match the characters fail

      This should not blame the developer Code, as long file using either a regular match or abstract syntax tree is constructed, the cost is enormous. Code expense of some plug-in performance, in exchange for the upgrade file open speed. Compared Kingsoft WPS, open a large file without sacrificing matching function, but it takes a few minutes, which is a different design ideas, perhaps feature, but the Code can do better, depending on user configuration.

The third part of the recommendation and planning

This software / websites / services have a lot to improve the part, if you are a newly appointed project manager, how to improve in order to win the competition?

  • First, how big the market? How many potential users?

    Almost all of the market-oriented programmers, there are still some students and technology enthusiasts and other potential users.

  • Currently on the market, what kind of products, and where their strengths and weaknesses in? And it is directly competing products out there?

    There are many IDE and text editor on the market, they have a common problem:

    1. The supported programming language or function is not comprehensive enough, the market IDE is specialized tools, can not do all-around

    2. The lack of scalability, plug-in store or not, or not enough excitement, most of them confined to the original function

    3. The lack of after-sale protection / ecological chain is not perfect / community enough excitement

    Code with VS and competitive core products are JetBrains IntelliJ IDEA, Eclipse, Apple Xcode, Github Atom, Sublime Text and so on.

  • What kind of features you want to design? Why do they need this function, rather than other functions? Why users will use your products / features? Where is your innovation?

    I want to design function is to further increase the customizable features that make customization easier to use. For plug-in developers, we want to provide a more detailed document or visual tools to help developers; for plug-in users, we want to use a more simple plug system, a key installation, use a key.

    This function is the core function of Code, Code is also a selling point has always been. VS has been used on the successful experience to extend this functionality improvements, we will be the most favorable product core competitive strength. Because Code progress in this regard has been the beginning of effective, highly customizable user very fond of the Code, so we have reason to believe that users will be more willing to customize their IDE.

    The reason want this feature, a user has been praised and may prefer to customize, there is this will be our brand and selling gimmick, it is a great direction to promote and help develop the market.

Guess you like

Origin www.cnblogs.com/sharinka0715/p/12501520.html