Автор работы: Пользователь скрыл имя, 04 Января 2011 в 13:55, курсовая работа
The experts working in the field of IT, know, that in modern, fast varying and putting forward all new requirements world of electronic commerce and information technologies, corporate applications should be projected, formed and should take root for smaller sums of money, with greater speed and smaller expenses of resources, than it was early.
For decreasing of the cost and increasing in speed of design and development of the corporate application platform J2EE offers the component approach to designing, development, assembly and implantation of corporate applications.
INTRODUCTION 4
ENGINEERING ENVIRONMENT FOR CREATION OF THE DISTRIBUTED APPLICATIONS AND SOFTWARE ENGINEERING METHODOLOGY 5
1.1. Software engineering methodologies 5
1.1.1. Extreme Programming. 5
1.1.2. Rational Unified Process. 6
1.2. Distributed applications and multi-tier architecture 9
1.2.1. Multi-tier applications. 9
1.2.2. Distributed systems. 10
1.3. J2EE platform 11
1.3.1. The Choice of Java technology. 11
1.3.2. Contents of J2EE technology. 11
1.3.3. Technologies of J2EE platform. 12
1.3.4. EJB. 12
1.3.5. J2EE and multi-tier architecture. 13
1.4. Development of real application 14
1.4.1. Tools overview and environment setup. 14
1.4.2. Using Hibernate. 15
SUMMARY 20
BIBLIOGRAPHY 21
Article SOFTWARE ENGINEERING METHODOLOGIES. CREATION OF THE DISTRIBUTED APPLICATIONS USING HIBERNATE TECHNOLOGY |
|
2009 |
CONTENTS
ACRONYMS
AMDD – Agile Model Driven Development
API – Application Programming Interface
DAO – Data Access Objects
DTO – Data Transfer Object
EJB – Enterprise Java Beans
J2EE, JEE – Java Platform, Enterprise Edition
JME – Java Platform, Micro Edition
JSF – Java Server Faces
JSP – Java Server Pages
JVM – Java Virtual Machine
MSF – Microsoft Solutions Framework
RUP – Rational Unified Process
SVN – Subversion (free system of version control)
UML – Unified Modeling Languages
WAD – Web Application Development
XML – Extensible Markup Language
XP – Extreme Programming
DBMS – Database Management System
INTRODUCTION
Today more and more developers wish to create distributed transactional corporate applications and use advantages in speed, security and reliability, provided by server technologies.
The experts working in the field of IT, know, that in modern, fast varying and putting forward all new requirements world of electronic commerce and information technologies, corporate applications should be projected, formed and should take root for smaller sums of money, with greater speed and smaller expenses of resources, than it was early.
For decreasing of the cost and increasing in speed of design and development of the corporate application platform J2EE offers the component approach to designing, development, assembly and implantation of corporate applications.
Platform J2EE offers the model of the multilevel distributed application, possibility of reuse of the components, the integrated data exchange on the basis of the XML, the unified model of safety and floppy control of transactions.
Using J2EE, it is possible to release on the market the innovative solution for users faster, than earlier, and also the platform-independent J2EE-decisions grounded on components are not anchored any more to products and on API of any releaser.
Releasers and users possess freedom of a choice of products and components which most completely satisfy their business and technology requirements.
In the given article engineering processes of the software, possibilities and the functions accessible in J2EE are examined.
The given examples contain the useful and accessible information which can be used in development of real corporate solutions.
ENGINEERING ENVIRONMENT FOR CREATION OF THE DISTRIBUTED APPLICATIONS AND SOFTWARE ENGINEERING METHODOLOGY
XP is a software engineering methodology and a form of agile software development (AMDD). The authors of this model are Kent Beck, Ward Cunningham, Martin Fowler and others. Extreme Programming has been described as having twelve practices, grouped into four areas:
Pair programming means that all code is produced by two people programming on one task on one workstation. One programmer has control over the workstation and is thinking mostly about the coding in detail. The other programmer is more focused on the big picture, and is continually reviewing the code that is being produced by the first programmer. Programmers trade roles regularly. The pairs are not fixed: it's recommended that programmers try to mix as much as possible, so that everyone knows what everyone is doing, and everybody can become familiar with the whole system. This way, pair programming also can enhance team-wide communication. (This also goes hand-in-hand with the concept of Collective Ownership).
Collective code ownership means that everyone is responsible for all the code; this, in turn, means that everybody is allowed to change any part of the code. Pair programming contributes to this practice: by working in different pairs, all the programmers get to see all the parts of the code. A major advantage claimed for collective ownership is that it speeds up the development process, because if an error occurs in the code any programmer may fix it.
By giving every programmer the right to change the code, there is risk of errors being introduced by programmers who think they know what they are doing, but do not foresee certain dependencies. Sufficiently well defined unit tests address this problem: if unforeseen dependencies create errors, then when unit tests are run, they will show failures.
"Customer" in XP is not the person who pays bills, and the person who actually uses system. The Principle of XP approves, that the customer should be on-line all the time and be ready to questions.
RUP – a software development methodology created by The Rational Software company. In the basis of RUP following main principles lay:
RUP uses iterated model of development. In the end of each iteration (in an ideal proceeding from 2 till 6 weeks) the design team should reach the purposes planned on given iteration to create or finish design artefacts and receive intermediate, but the functional version of a final product. Iterated development allows to react fast to varying requirements, to find out and eliminate risk factors at early stages of the project, and also effectively inspect quality of a created product.
Complete life cycle of development of a product (it is presented in a picture 1.1.2.1) consists of four phases, each of which includes one or several iterations.
At the initial stage:
Having finished an initial stage a mark of the purposes of life cycle (English Lifecycle Objective Milestone) which assumes the agreement of the interested sides on continuation of the project is estimated.
Picture 1.1.2.1 – Visual overview of a software engineering process by RUP
At a design stage the analysis of a data domain and construction of the executed architecture is made. It includes:
Successful execution of a phase of designing means reaching a mark of the purposes of life cycle. (English Lifecycle Objective Milestone).
During the phase of construction there is an implementation of a bigger part of software product. The phase is completed by the first external release of system and a mark of Initial Operational Capability.
During the phase of implantation there is a final version of a product and it is transferred from the developer to the customer. It includes the program of beta testing, manual for users, and also definition of quality of a product. In case the quality mismatches the waitings of users or the criteria placed in a phase of the beginning, the phase of implantation repeats again. Execution of all purposes means reaching a mark of availability of a product (Product Release) and completion of full design cycle.
The program application of a level of firm (the corporate application) is the set of cooperating program units intended for problem solving, linked with rise of efficiency of activity of a firm.
Modern corporate program applications of dynamically developing firm are intended for efficient control firm, its resources, maintenance of a production cycle, interaction with suppliers and customers, implementations of made production, etc. The ultimate goal is to receive a profit in condition of acute competitive struggle against other firms of the given profile.
Possibility of fast obtaining and information processing in the Internet, presence of the automated control systems by production and sales, possibility of storage and maintenance of great volumes of data are the mortgage of successful activity of a firm in the market.
At implementation of corporate applications the creation of the programs providing convenient user interface, interaction of many users supporting the web-applications, the distributed calculations and usage of databases, and also needed protection of the information is necessary.
Technologies J2EE originally developed as a resource of effective problem solving of electronic commerce and electronic business. Application of these technologies has been subordinate to solution of a problem of fast obtaining of the information in conditions of modern dynamical market economy.
Multi-tier applications represent the applications divided into parts by the number of levels, and, these parts can be placed on various computers. The number of levels, basically, is not limited, however usually there are no more than five.
Multilevel systems, as a rule, simultaneously are also multi-user as intend for collective usage. However for an essence of their architecture their multilevel character is much more important.
The multilevel architecture arranges the application between the client and server side as follows:
The multilevel architecture dividing the program system on three levels (representations, business-logic and a level of data access), is much more technologically, than the usual architecture "Client/server":
Unlike multilevel applications where linear style of interaction between the client and a server is saved, in the distributed system all application is represented as a set of equal in rights cooperating objects which fulfils the certain functionality.
Each object gives some set of tools and itself can use the tools given by other objects of system.
Thus, roles of objects rigidly are not certain, and each object of system can simultaneously appear both as a server, and as the client.
The protocol of interaction between two objects of the distributed program system is defined by the interface. In this case possible changes, modifications and refinements of components are carried out at a level of implementation, not mentioning interfaces and consequently appear imperceptible for the user.
The component is an object of the distributed system with appropriate interfaces. Implementation of a component is separated from the interface that allows the designer to change separate components, not changing other parts of system. For this purpose it is necessary to save only constant interfaces of all components of the distributed system.
Java 2 Platform, Enterprise Edition is a complex of the cooperating Java-technologies which are based specifications, developed by Sun Microsystems corporation, representing the standard of development of server-based applications of a level of firm.
As base technology for development of corporate applications Java technology is selected. The Principal cause of this choice is that Java - a multiplatform portable object-oriented programming environment.
Object-oriented Java environment includes:
Virtual Java-machine dynamically compiles or interprets platform independent Java-byte-code, translating it in platform independent instructions.
J2EE technology consists of the next four main components:
Each concrete implementation of platform J2EE satisfying specifications J2EE of version 1.3, should give enumerated below technologies and appropriate program interfaces to the user.
It is the most important technology which, purely, defines the main properties and assignment of platform J2EE. Version 1.3 of platform J2EE includes the support of specification EJB 2.0 which gives the description of standard components of a server-based application and ways of their implementation (properties of components, a technique of writing of their program code, principles of usage of components in multilevel applications and so forth). The standard agreements linking EJB components and servers of applications also are presented to specifications EJB 2.0 (application servers), controlling by components. Technology EJB bases on other technologies J2EE.