Software engineering methodologies

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

Реферат Распределенные приложения [English] 97-2003.doc

— 265.00 Кб (Скачать файл)
 
 
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

    1. Software engineering methodologies
      1. Extreme Programming.

    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:

  • fine scale feedback:
    • test driven development;
    • planning game;
    • whole team, onsite customer;
    • pair programming;
  • continuous process:
    • continuous integration;
    • design improvement, refactoring;
    • small releases;
  • shared understanding:
    • simple design;
    • system metaphor;
    • collective code ownership or сollective patterns ownership;
    • coding standard or coding conventions;
  • programmer welfare:
    • sustainable pace, forty hour week.

    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.

      1. Rational Unified Process.

    RUP – a software development methodology created by The Rational Software company. In the basis of RUP following main principles lay:

  • early identification and continuous (before the ending of the project) elimination of the main risk factors;
  • concentration on execution of requirements of customers to an executable program (the analysis and construction of model of precedents);
  • waiting for changes in requirements, design solutions and implementations during development;
  • the component architecture sold and tested at early stages of the project;
  • constant support of quality at all development cycles of the project (product);
  • work on the project in the rallied team, a key role in which belongs to architects.

    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:

  • vision and boundary of the project are formed;
  • economic substantiation (business case)is created;
  • basic version of model of precedents is created;
  • risk factors are estimated.

    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:

  • documenting requirements (including the detailed description for the majority of precedents - scripts of usage);
  • designed, realized and tested the executing architecture;
  • the updated economic substantiation and more exact estimations of periods of cost;
  • the lowered main risk factors.

    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.

    1. Distributed applications and multi-tier architecture

    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.

      1. Multi-tier applications.

    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 informational part of application (database) is placed on a server;
  • The user interface allocates on the side of the client;
  • Business-logic can be or on the client side (the thick client), or on the server side (the thin client), or partially on client and partially on server part.

    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":

  • The client part is separated from any changes in other parts of the application;
  • Greater flexibility of the application is achieved, as it is built from building blocks, is formed of rather small units.
      1. Distributed systems.

    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.

    1. J2EE platform

    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.

      1. The Choice of Java technology.

    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:

  • Programming language Java giving a set of classes and interfaces on the basis of which the program application can be developed;
  • Java-compiler, translating initial Java-code, not depending on a concrete platform;
  • Java Virtual Machine (JVM) which executes Java-byte-code.

    Virtual Java-machine dynamically compiles or interprets platform independent Java-byte-code, translating it in platform independent instructions.

      1. Contents of J2EE technology.

    J2EE technology consists of the next four main components:

    • J2EE Platform Specification;
    • J2EE Reference Implementation;
    • J2EE Blueprints;
    • J2EE Compatibility Test Suite.
      1. Technologies of J2EE platform.

    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.

    • Java Remote Method Invocation (RMI) and RMI/IIOP;
    • Java Naming and Directory Interface (JNDI);
    • Java Messaging Service (JMS);
    • Java Servlets;
    • Java Server Pages (JSP);
    • Java Database Connectivity (JDBC);
    • Java Transaction API (JTA) and Java Transaction Service (JTS);
    • Enterprise Java Beans (EJB);
    • Java Interface Definition Language;
    • Java Mail and Java Beans Activation Framework;
    • J2EE Connector Architecture;
    • Java API for XML Parsing;
    • Java Authentication and Authorization Service (JAAS).
      1. EJB.

    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.

Информация о работе Software engineering methodologies