product team project report

Upload: mandeep-singh

Post on 10-Apr-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Product Team Project Report

    1/21

    PROJECT REPORT

    SUMMARY

    The project developed by us is SUPPLY CHAIN MANAGEMENT. Supply chain

    management (SCM) is the management of a network of interconnected

    businesses involved in the ultimate provision of product and service packages

    required by end customers. It spans all movement and storage of raw materials,

    work-in-process inventory, and finished goods from point of origin to point of

    consumption .

    Our project is divided into seven modules. Each module work is completed by a

    team of 10-13 members. The seven modules are:

    1. Product module2. Business partner module3. Sales order4. Purchase order5. Material receipt6. Inventory7. Shipment

    In our project,we have used various methodologies. Some of the main features

    used are:

    y System Development LifeCycle(SDLC)y Agile Methodologyy Extreme Programmingy Plain Old Java Object(POJO)

  • 8/8/2019 Product Team Project Report

    2/21

    Agile Software Development Methodology

    Software processes are evolving with time. Today Agile is very popular as

    Software Development Methodology. The major difference between water fall

    and agile is that in water fall we have long duration software development life

    cycle but in agile it is very small. Agile methodologies generally promote a project

    management process that encourages frequent inspection and change

    adaptation, team work, self-organization and accountability. Agile is a set of

    engineering best practices that allow rapid delivery of high-quality software, and a

    business approach that aligns development with customer needs and company

    goals.This is an iterative development approach with major principles as:

    * Individuals and interactions over processes and tools - In agile we don't use

    tools complex tools and processes, agile believe that individuals should interact

    more rather than following any complex process or generating artifacts from

    tools.

    * Working software over comprehensive documentation - In agile code is

    document. That means agile prefer document only where it is necessary. Even

    Java docs are not considered as good. Instead your method name should be java

    doc itself. In agile it is preferred to write code over investing time in writing

    documents.

    *Customer collaboration over contract negotiation - In agile customer

    satisfaction is the first aim. And that could be achieved with software delivered as

    per his need and expectations. Contract negotiations sometimes lead the

    development of software which customer don't like. That is the biggest reason of

    failure of Software projects. In agile customer is continuously accessing thedeveloped software on which he can comment easily.

    * Responding to change over following a plan - Agile is an iterative model where

    development is done under small iteration ranging from 1 week to 4 weeks. And

    after each iteration the software is delivered to customer on which he can

  • 8/8/2019 Product Team Project Report

    3/21

    comment for any changes and those are implemented in next iterations. In agile

    planning is not done for whole project but it is done for few iterations only.

    Specific tools and techniques such as continuous integration (Cruise Control),

    automated or xUnit test, pair programming (or eXtreme Programming, XP), Test

    Driven Development(TDD), design patterns, domain-driven design, code

    refactoring(frequent code reviews) and other techniques are often used to

    improve quality and enhance project agility.

  • 8/8/2019 Product Team Project Report

    4/21

    Extreme Programming (XP)

    Extreme Programming has been described as having 12 practices, grouped into

    four areas:

    Fine scale feedback

    * Pair programming - A pair work together while coding. The one who is typing is

    called as driver and other is called as observer. This basically improves the quality

    of code and reduces the bugs.

    * Planning game - The game is a meeting that occurs once per iteration, typically

    once a week. It is divided in two parts, release planning and iteration planning.

    * Test driven development - Also known as TDD, where developer first write a

    test which fails and then write a code to fix it. The automated unit tests are major

    part of XP. This helps in future by making sure that with future development, code

    does not break existing functionality.* Whole team - The whole team is responsible for the software. XP says that end

    user should also be involved in software development process. Business Analyst

    plays the role of the end user where direct involvement of the end users is not

    possible.

    Continuous process

    * Continuous integration - The development team should always be working on

    the latest version of the software. Continuous integration will avoid delays lateron in the project cycle, caused by integration problems.

    * Refactoring or design improvement - XP advocates programming only what is

    needed today, and implementing it as simply as possible, so going forward there

    may be need to refactor and change the architecture of the software.

    * Small releases - Usually each release will carry a small segment of the total

  • 8/8/2019 Product Team Project Report

    5/21

    software, which can run without depending on components that will be built in

    the future. The small releases help the customer to gain confidence in the

    progress of the project.

    Shared Understanding* Coding standards - Coding standard is an agreed upon set of rules that the

    entire development team agree to adhere to throughout the project.

    * Collective code 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.

    * Simple design - "simple is best" approach to software design is followed.

    * System metaphor - The system metaphor is a story that everyone - customers,

    programmers, and managers - can tell about how the system works. It's a naming

    concept for classes and methods that should make it easy for a team member to

    guess the functionality of a particular class/method, from its name only.

    Programmer Welfare

    * Sustainable pace - Since the development cycles are short cycles of continuous

    integration, and full development (release) cycles are more frequent, the projectsin XP do not follow the typical crunch time that other projects require (requiring

    overtime). Also, included in this concept is that people perform best and most

    creatively if they are rested.

  • 8/8/2019 Product Team Project Report

    6/21

    PLAIN OLD JAVA OBJECT(POJO)

    POJO is an acronym for Plain Old Java Object. The name is used to emphasizethat a given object is an ordinary Java Object, not a special object, and in

    particular not an Enterprise JavaBean. The term was coined by Martin Fowler,

    Rebecca Parsons and Josh MacKenzie in September 2000.

    POJO is a model class containing getter and setter methods used for interacting

    with the database.

    The Benefits of POJOs:

    1. Decoupling: It decouples the application components from the infrastructure of

    the EJB framework that lets you construct an application from loosely coupled

    components. There are no longer need to write the tedious JNDI framework-

    specific lookup code. You can design and implement the business logic. Once

    that's working, and then you can deal with persistence and transactions.

    2. Easier testing: You can test or run your business logic outside of the application

    server in a few seconds.

    3. Flexible: A Java POJO code can be implemented with any type of enterprisebean such as Message Driven Bean and Entity Bean. The POJO technology can be

    used with any type of Enterprise Java Beans(e.g Session Bean, Message Driven

    Bean or Entity Bean).

  • 8/8/2019 Product Team Project Report

    7/21

    REQUIREMENT GATHERING

    When we were developing our project, many requirements aroused in our

    module. As I was working on the Product Module, we required product id,

    product name, product category, product price, size and brand. Product id is

    passed to other modules so that they can access the details of various products.

  • 8/8/2019 Product Team Project Report

    8/21

    DOCUMENTATION -CREATE SCREEN

    PRIMARY ACTOR END USER

    PRECONDITIONS NONE

    SUCCESS GUARENTEE ON SUBMITTING THE DATA OF FORM DATA WILL BE CREATED DATA INSERTED INTO TABLE

    TRIGGER ON CREATE FORM i.e. MAIN PAGE

    MAIN SCENARIO USER WILL SELECT THE CATEGORY OF PRODUCT PRODUCT DETAILS ARE FILLED IN THE FORM CLICK ON SUBMIT, VIEW PAGE IS OPENED AND SHOW THE DETAILS

    ALTERNATE FLOW ERROR MESSAGE WILL GENERATE IF USER NOT FILL THE MANDATORY FIELD ERROR MESSAGE WILL GENERATE IF USER FILL THE SAME BARCODE ERROR MESSAGE WILL GENERATE IF USER FILL THE SAME PRODUCT

    FIELD DETAILSPRODUCT CATEGORY Choose any category out of three

    PRODUCT NAME Enter the name of new product

    PRODUCT BARCODE Enter the unique barcode no./product no.

  • 8/8/2019 Product Team Project Report

    9/21

    SIZE Enter the size.

    MODEL NO. Enter the model no.

    PRICE Enter the price (mrp)

    BRAND Enter the product brand.

    SCREEN SHOTS

  • 8/8/2019 Product Team Project Report

    10/21

    DOCUMENTATION -SEARCH SCREEN

    PRIMARY ACTOR END USER

    PRECONDITIONSNONE

    SUCCESS GUARANTEE ON ENTER THE PRODUCT DETAIL IN SEARCH FIELD PRODUCT IS SEARCHED SHOWN IN SEARCH TABLE

    TRIGGER ON SEARCH FORM

    MAIN SCENARIO USER WILL ENTER DETAIL THROUGH WHICH HE/SHE WANT TO

    SEARCH CLICK ON SEARCH BUTTON PRODUCT DETAIL IS SHOWN IN

    TABLE

    ALTERNATE FLOW ERROR MESSAGE IS SHOWN IF PRODUCT IS NOT FOUND ERROR MESSAGE IS SHOWN ON INCORRECT ENTRY IN DESIRED

    FIELD

    FIELD DETAILPRODUCT CATEGORY Enter any category out of three

    PRODUCT NAME Enter the name of product you want to

    search

    PRODUCT BARCODE Enter the unique barcode no./product no.

  • 8/8/2019 Product Team Project Report

    11/21

    SIZE Enter the size.

    MODEL NO. Enter the model no.

    PRICE Enter the price (mrp)

    BRAND Enter the brand.

    PRODUCT ID Enter the product id.

    SCREEN SHOTS

  • 8/8/2019 Product Team Project Report

    12/21

    DOCUMENTATION - EDIT SCREEN

    PRIMARY ACTOR END USER

    PRECONDITIONS NONE

    SUCCESS GUARENTEE ON SUBMITTING THE DATA OF FORM DATA WILL BE UPDATE DATA INSERTED INTO TABLE

    TRIGGER ON EDIT FORM i.e. MAIN PAGE

    MAIN SCENARIO USER WILL SELECT THE CATEGORY OF PRODUCT PRODUCT DETAILS WILL BE MODIFIED CLICK ON SUBMIT, VIEW PAGE IS OPENED AND SHOW THE DETAILS

    ALTERNATE FLOW ERROR MESSAGE WILL GENERATE IF USER NOT FILL THE MANDATORY FIELD ERROR MESSAGE WILL GENERATE IF USER FILL THE SAME BARCODE ERROR MESSAGE WILL GENERATE IF USER FILL THE SAME PRODUCT

    FIELD DETAILSPRODUCT CATEGORY Choose any category out of three

    PRODUCT NAME Enter the name of new product

    PRODUCT BARCODE Enter the unique barcode no./product no.

  • 8/8/2019 Product Team Project Report

    13/21

    MANUFACTURING DATE Enter the creation date

    PRICE Enter the price (mrp)

    BRAND Enter the product brand

    SCREEN SHOTS

  • 8/8/2019 Product Team Project Report

    14/21

    DESIGN

    A.ARCHITECTURE DIAGRAM:

    The architectural design of the PRODUCT module can be divided in the following

    parts:

    1. Browser: It is the way through which you can interact with the server (getto the server pages).

    2. View: It consists of the jsp code. This is what the user sees (user interface).3. Controller: It consists of the servlet code. It stores the java code at the

    server. It sends user requests from one page to another and responds to

    the user.

  • 8/8/2019 Product Team Project Report

    15/21

    4. Service layer: It makes the relation between the DAO code and the servlet.It does not exist practically but it avoids a direct link between DAO layer

    and the servlet.

    5. Model: This is responsible for obtaining data from the database.6. D.B.(Database): It consists of all the data, where a user can add or retrieve

    for receipts.

    B.PACKAGING STRUCTURE:

  • 8/8/2019 Product Team Project Report

    16/21

    WEB.xml--

    1.

    First the folder of src is created.2. In src, a new folder com is created.3. In com folder, coruscate folder is created.4. In coruscate folder, scm folder is created.5. In scm, there are three folders:-db, pojo, servlet.6. In db, create folder product and add java file:-DAOFactory, DBManager,

    ProductDAO.

    7. In Product folder, there is a java file ofProductDAOImpl.8. The Pojo folder will contain Pojo Class i.e. ProductPojoClass.

    CODING STANDARD

    Packages

    All packages that are imported are in small

    Ex;-

    scm.coruscate.db.product, scm.coruscate.pojo, scm.coruscate.db etc

  • 8/8/2019 Product Team Project Report

    17/21

    Classes and Interfaces

    InterfaceProductDAO

    In interface the letter P of shipment is capital and of second word all letters

    DAO are in capital

    Classes

    Ex:

    Create, CreateProductDetails, DAOFactory,DBManager, ProductDAOImpl,ProductDAO etc

    If the class name is of one word then its initial will be in capital, if classes consist

    of more than one word then the initial of every word will be in capital.

    Variables

    The variables which are to be declared is always in small and it should be seen that

    no special characters are being used.

  • 8/8/2019 Product Team Project Report

    18/21

    CLASS DIAGRAM:

    ProductDaoFactory

    Production GetProductDao();

    DBManager

    connection getConnection();

    closeConnection();

    Productdao

    Productdao;

    Productno;

    create function();

    product PojoClass searchProduct();

    product PojoClass searchProductByName();

    product PojoClass searchProductById();

    PRODUCTDAOIMPL

    Productpojoclass searchproduct();

    Productpojoclass searchproductById();

    Productpojoclass searchproductByName();

  • 8/8/2019 Product Team Project Report

    19/21

    Productpojoclass

    searchproduct();

    Productpojoclass

    searchproductById();

    Productpojoclass

    searchproductByName();

    ProductPoJo

    Pid;

    Pname;

    Pbarcode;

    Pcategory;

    Pmodel;

    Psize;

    Pbrand;

    get PRODUCTID();

    get PRODUCTNAME();

    get PRODUCTBARCODE();

    get PRODUCTPRICE();

    get PRODUCTCATEGORY();

    get PRODUCTMODEL();

    get PRODUCTPRODUCTSIZE();

    get PRODUCT BRAND();

    Create

    Productname;

    Productbarcode;

    Productprice;

    Productmodel;

    Productsize;

    Productbrand;

    PrintWriter();

    Search

    Productname;

    Productno;

    Dopost();

  • 8/8/2019 Product Team Project Report

    20/21

    IMPLEMENTATION

    CODING STANDARDS: Class name must begin with capital letter. Variable name should begin with small letter. No underscore should be used in method declaration ofPOJO class. Method name must begin with capital letter. First statement in the code must be of package. The name ofPOJO class should be the same as that of the module

    assigned.

    Database optimization should be maintained. Function name should be descriptive. No short forms should be used for variables and function name.

    LOGGING:To display the error messages on the console, we have used

    System.out.println(Class name:Method name+new Date()+msg);

    statement.

  • 8/8/2019 Product Team Project Report

    21/21

    EXCEPTION HANDLING

    We have done the EXCEPTION HANDLING by creating a new generic class

    SCMException which is in scm folder in Exception package. The SCMException

    class inherits the predefined Exception class. We have used the throw keyword in

    our code where the exception is to be handled i.e. throw new SCMException

    (Error while creating shipment+e);.