亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Supporting For Software Engineering Environm

系統 1680 0

Supporting For Software Engineering Environment


轉載請保留作者信息:
作者:88250
Blog: http:/blog.csdn.net/DL88250
MSN & Gmail & QQ:DL88250@gmail.com

Int roduction



Abstract

Software Engineering Environment involves the processes, approaches and tools of a software project life cycle with human-centric. This article introduces the advantages of two open source and stable tools, and reflects the basic, simple and critical factors that affects on the development of a software project.

Construction

Maven2 is a project management and comprehension tool based on Ant. Generally speaking, by using maven2 (maven for short) takes the following advantages:

  • IDE independent debugging, testing, building and deployment.
    It means developers can code using the best suitable development environments. For example, Java programmer can use eclipse, JDeveloper, or NetBeans to write codes, and HTML / CSS / Javascript programmers can use other development tools for convenience. The project building is only relies on maven's build configuration and independent of IDE.

  • Makes the continuous integration easily.
    A maven project can configures the source repository and integration tool easily. For example, when an artifact code completed, we can publish the artifact into a integration tool (such as Hudson) to build and finally put the artifact into test server or put it into maven repository as other project dependency.

  • Simplicity of extension for different type projects.
    Maven can customizes plugins for the specified project on demand. Some specified projects need to append process in the specified construct phase, such as when compiling source codes, may need to check the quality of source codes by using some static or dynamic analysis tools; after compilation, may need to append the project license on the source files; and after the whole construction, project manager may want to take a glance at a project report for getting how many tests fail / succeed, how many source codes are below standard.

Project Management

Maven depicts projects using the object-oriented approach. A project has its own pom.xml for representing the project's structure, sub-projects, referenced projects (as dependencies) for instance. The relation between these projects are equivalent to the object-oriented approach's basically. So, it takes some advantages of object model, such as inheritance and polymorphism.

The project management of maven can not reach some factors (plan, cost, risk, time, etc) of Project Management Theories. In other words, maven's project management focus on the structure and construction behaviors of a software project.

Dependencies Management

In modern software development, the dependencies management is very significant and very difficult. For example, our current projects depend on some third-part libraries, and each dependency has its own version and runtime dependencies . Maven can automatically downloads these libraries, resolves and downloads their runtime dependencies respectively. It takes the following advantages:

  • Make the automatic project building and integration simplest.
    Obviously, resolving the runtime dependencies are very dull and complicated. Fortunately, the most dependencies currently in the world have maven packages, then maven could decide the library 's dependency which is made by the library's authors or packager.

  • Make the control of dependencies change easy .
    Frequently the libraries project depends on need to be upgraded. The upgrade is from an older version to a newer version. According to the above advantage, the operation is very simple, just need to modify the version number of the dependencies.

  • Scoping for every dependency becomes more easier.
    This is a very typical case in test libraries. Commonly, we do not package a junit.jar into production. So, scoping the dependencies will help for project building and release. In practice, scoping dependencies can keep the consistence of software architect. For example, we selected eclipse as the project IDE and using JPA for persistence and Hibernate as the JPA implementation. After the phase architect verification, proved JPA is enough to use and never need to use its delegation. But someone use Hibernate annotations to annotated entities and others use JPA annotations to do that in deed. It breaks the consistence of design, make the maintainers drop into mud. By using maven dependencies management, it never be happen, just identifies the scope of hibernate-annotation.jar to runtime.

SCM

Software Configuration Management (SCM) is focus on the management of changes of software. Commonly, we use source version control system to track the changes.

Helpful Practices


Basically, a software project source repository should has three folders: trunk , branch and tag . Trunk tracks the sources of current project's version. Branch tracks the sources of current project's branches, a fully-reimplementation version, a upgrade version, etc, for instance. Tag save the released sources of the project's several versions.

The source we define that is source code commonly. Strictly speaking, a source repository should not include any hard modified binary data, the reason is that different binary data can not compare the differences easily, it can only compare manually by human. But so many developers commit the project's binary dependencies into source repository just for convenience. The dependencies should be resolved out side source repository. This point is very important to the automation for further development and maintenance, otherwise the binary dependencies is managed by another tools, maven for instance.

Another problem in multiple humans development collaboratively is the conflict . To resolve conflicts, so many developers just to delete the conflicted source file and commit his / her own version. This is not the problem that whether the usage of the source version control client developers got familiar or not, rather than the philosophy of why and how to identify the configuration item. The configuration items are core source of software process management and improvement.

Continuous Integration

Hudson is an extensible continuous integration engine like CruiseControl. But it more easily to configure and extend. It can configures some build strategies, such as build condition (sources commit, time step, etc). And a friendly integration status reporting by using dashboard.

See the following continuous integration status come from JBoss.


The continuous integration has the following advantages:

  • Exposes the problems of the project as soon as possible.
    Each integration has it own 'health' or / 'weather' which quantifies the productivity of the team. Once encounters an integration fail, every member in the team will receive a mail that notifies the member what, when, where is it happen. Helps the team to fix the issue ASAP.
  • Combines team members together into a more efficient team.
    Here is a case: a programmers finished the development of a module, and then commit the codes into source repository. The CI tool will get source from source repository and get start a build. Once the build passed tester will receive a mail from CI tool that tells the tester it is time to test this build.


Conclusion

This article introduced some philosophies of software engineering with maven2 and hudson. Some of these practices and principles are such simple, but it is efficient if combined them on a organized way. To build a helpful software engineering supporting environment is very sophisticated and constructive, and not only relies on tools but also depends on human collaboration. I always trust that is a team should to select and adapt the environment rather then do nothing.

TODO: Issue Tracking, Software Process Management




Supporting For Software Engineering Environment - Introduction


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩一级欧美一级毛片在 | 精品久久亚洲 | 欧美理论在线 | 香蕉视频网站 | 免费骚视频 | 97精品国产自在现线免费 | 久久国产精品亚洲一区二区 | 91福利片| 九九毛片 | 天天操天天干天天射 | 在线观看一级毛片 | 免费一级毛片在线播放欧美 | 一区二区三区免费视频观看 | 野外一级毛片黑人 | 黄色毛片一级 | 日韩美女一级毛片 | 伊人五月| 国产在视频线精品视频2021 | 国产精品人成人免费国产 | a视频在线观看 | 四虎永久在线精品视频免费观看 | 一区二区不卡在线观看 | 国产精品视频福利一区二区 | 日本一级毛片在线观看 | 日本一区二 | 国产做国产爱免费视频 | 四虎麻豆| 99精品国产综合久久久久 | 好吊妞免费视频 | 日韩精品亚洲人成在线观看 | 玖玖草在线观看 | 久久se精品动漫一区二区三区 | 欧美日韩高清 | 久久久免费观成人影院 | 在线免费看a | 成人特级毛片69免费观看 | 日本毛片网 | 在线成人精品国产区免费 | 午夜视频网站 | 爱性网| 久久免费手机视频 |