View
225
Download
0
Category
Preview:
Citation preview
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);.
Recommended