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

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條評論
主站蜘蛛池模板: 免费观看成人毛片 | 日韩一区二区不卡中文字幕 | 热re99久久精品国产99热 | 欧美久久久久久久一区二区三区 | 欧美精品videossex最新 | 一色屋精品亚洲香蕉网站 | 国产福利区一区二在线观看 | 四虎在线观看 | 老司机午夜免费影院 | 日韩欧美一中字暮 | 久久精品国产69国产精品亚洲 | 国产农村精品一级毛片视频 | 婷婷五月情| 成年午夜性视频免费播放 | 亚洲视频 在线观看 | 欧美日韩麻豆 | 色网在线免费观看 | 99热久久精品最新 | 国产性做久久久久久 | 国产精品久久久久久久成人午夜 | 午夜在线网站 | 日本在线观看www鲁啊鲁视频 | www.奇米.com| 久久精品综合免费观看 | 久久精品视频免费 | 麻豆va一区二区三区久久浪 | 一级在线免费视频 | 亚洲天天做夜夜做天天欢人人 | 久久这里只有免费精品6www | 5060网午夜一级毛片在线看 | 97国产精品 | 伊人婷婷色香五月综合缴缴情 | 日韩精品一区二区三区 在线观看 | 五月天婷婷亚洲 | 亚洲欧美精品网站在线观看 | 九九视频在线免费观看 | 青青青国产免费手机视频在线观看 | 国产一级淫片a视频免费观看 | 国内精品视频一区 | 欧美日韩在线观看免费 | 欧美日韩午夜视频 |