Вы находитесь на странице: 1из 16

1.

Company Profile & overview: Epsilon is an Offshore Software Development specialist that combines the definite bottom-line benefits of Offshore Outsourcing with its recognized expertise in strategic global models that help it in providing reliable Outsourcing Software Development Solutions. The services offered cover Custom Software Development, Application Development, Web Application Development, Agile Software Development, Software Outsourcing, Ecommerce web site design, Web Marketing, Website Design and Software Maintenance. Their goal is to deliver premium quality software development services and products while giving unmatched value to enterprises worldwide at an affordable cost. Focuses on helping other company to reduce its IT costs without reducing the quality of IT products. They believe in getting it done quickly and correctly the first time. Their strength in internet applications development helps them in delivering highly customized solutions for their clients. They have specialization in creating highly usable, scalable, robust technology in any industry. In addition to creating successful technology, Epsilon place great value in customer service and client engagement. By working with a client and encouraging their interaction, their developers gain insight and ideas to create a final product that is consistently better than the client envisioned. Enjoying ongoing relationships with clients and also have extensive experience in maintenance and enhancement of existing client products. a) Industrial Environment & work culture: Epsilon provides a healthy environment for engineers to learn latest technologies under the guidance of Certified Professionals. Staff members of the company are always ready to help trainees and to solve their problems at their level best. The firm uses Work Division Policy for software projects. The company has its own teams for different phases of a Software Development Process. Each team is responsible for completion of task within the given time period. Each Team constitutes of a Team Coordinator who coordinated and controls the activities of the team and look after the workflow and communication among the members.

1|Industrial Training Report

b) Development Process: 1. SDLC MODEL 1.1 THE SDLC WATERFALL This is a sequential approach. Small to medium database software projects are generally broken down into six stages:

The relationship of each stage to the others can be roughly described as a waterfall, where the outputs from a specific stage serve as the initial inputs for the following stage. During each stage, additional information is gathered or developed, combined with the inputs, and used to produce the stage deliverables. It is important to note that the additional information is restricted in scope; new ideas that would take the project in directions not anticipated by the initial set of high-level requirements are not incorporated into the project. Rather, ideas for new capabilities or features that are outof-scope are preserved for later consideration. After the project is completed, the Primary Developer Representative (PDR) and Primary End-User Representative (PER), in concert with other customer and development team personnel develop a list of recommendations for enhancement of the current software. 1.2 OTHER SDLC MODELS The waterfall model is one of the three most commonly cited lifecycle models. Others include the Spiral model and the Rapid Application Development (RAD) model, often referred to as the Prototyping model, that are iterative in nature. SPIRAL LIFECYCLE The spiral model starts with an initial pass through a standard waterfall lifecycle, using a subset of the total requirements to develop a robust prototype. After an evaluation period, the cycle is initiated again, adding new functionality and releasing the next prototype. This process continues, with the prototype becoming larger and larger with each iteration. Hence, the spiral. The theory is that the set of requirements is hierarchical in nature, with additional functionality building on the first efforts. This is a sound practice for systems where the 2|Industrial Training Report

entire problem is well defined from the start, such as modeling and simulating software. Business-oriented database projects do not enjoy this advantage. Most of the functions in a database solution are essentially independent of one another, although they may make use of common data. As a result, the prototype suffers from the same flaws as the prototyping lifecycle described below. For this reason, the software development team has decided against the use of the spiral lifecycle for database projects. RAPID APPLICATION DEVELOPMENT (RAD) / PROTOTYPING LIFECYCLE RAD is, in essence, the try before you buy approach to software development. The theory is that end users can produce better feedback when examining a live system, as opposed to working strictly with documentation. RAD-based development cycles have resulted in a lower level of rejection when the application is placed into production, but this success most often comes at the expense of a dramatic overruns in project costs and schedule. The RAD approach was made possible with significant advances in software development environments to allow rapid generation and change of screens and other user interface features. The end user is allowed to work with the screens online, as if in a production environment. This leaves little to the imagination, and a significant number of errors are caught using this process. The down side to RAD is the propensity of the end user to force scope creep into the development effort. Since it seems so easy for the developer to produce the basic screen, it must be just as easy to add a widget or two. In most RAD lifecycle failures, the end users and developers were caught in an unending cycle of enhancements, with the users asking for more and more and the developers trying to satisfy them. The participants lost sight of the goal of producing a basic, useful system in favor of the siren song of glittering perfection. c) Project Management: The firm makes use of international standards for managing the projects. Concerned with the activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirement of the organization developing and procuring the software. A project management activity at Epsilon IT solutions contains: Proposal writing. Project planning and scheduling. Project costing. Project monitoring and reviews. Personnel selection and evaluation. Report writing and presentations. i) Risk Management 3|Industrial Training Report

Risk management is concerned with identifying risks and drawing up plans to minimise their effect on a project. A risk is a probability that some adverse circumstance will occur. Project risks affect schedule or resources. Product risks affect the quality or performance of the software being developed. Business risks affect the organisation developing or procuring the software. ii) Cost Estimation Epsilon IT Solutions uses COCOMO-II for cost estimation of the software projects. They make use of Function points and Lines of Codes for the cost estimation. They keep historical data about the cost estimation and make use of it for initial judgement cost at the requirement specification time. d) Technical Setup: The organization work efficiently with the help of 100+ desktop PCs each installed with the latest software and operating system with latest updates. The systems are connected with LAN in star topology connected with a central server. Each system has connectivity with World Wide Web for increasing the Employability of Employees. Each system having the configuration of:-

Processor RAM Hard Disk Operating System Table 1: General Machine Configuration Server Details: Processor RAM Hard Disk Operating System Table 2: Server Configuration

Intel Pentium-IV 1.8Ghz 1GB 80GB Windows XP Service Pack 2(64-bit)

Intel Xeon Processor 16GB with expandable slots 512GB Windows Server Edition-2003 (64-bit)

4|Industrial Training Report

2. Problem/Project Undertaken: Property Portal Problem Definition: Today where evrything is digital and travels digital everybody needs to be fast forward. So is the case with properties. But today whenever you have to buy or sell a property, you need to go to a brocker. This takes extra time and money. Even then as a seller you are not able to contact all the customers and advertise your products. Proposed Solution: To overcome above problems, we have we have planned a website, Property Portal where the sellers can get registered and have a paid membership with us. The sellers get facilities according to the membership chosen. They get a nice platform to advertise their properties. The customers can also get registered with us free of cost and view or buy the properties by making an online payment. The features of the website are: Nice platform for the sellers to advertise their properties. The brocker factor is eliminated. The customers can shop online 24 * 7 availability Secured socket layer is used hence the data travels safely. Customers get a view of the property sitting at home only.

Steps followed according to the development process of the company. a) Requirement Elicitation: FAST is used. 5|Industrial Training Report

b) Analysis & Design: UML (Unified Modeling Language) tool is the most preferred way for designing software applications. It is used for modeling projects using Object Oriented concepts. UML are the graphical notations that describe different aspects of a software system.
i)

Architectural Design:

It represents the structure of data and program components that are required to build a computer based system. Architectural Design begins with data design and then proceeds to the derivation of one or more representations of the architectural structure of the system. Software architecture of a program is the structure of the system which comprises software components, the externally visible properties of those components and the relationship among them. Architecture is not operational software. Rather it is a representation that enables a engineer to Analyze the effectiveness of the design in making its stated requirements. Consider architectural alternatives at a stage when making design changes is still relatively easy. Reduce the risk associated with the construction of the software.
ii) Input Design

software

Input design is the process of converting user-oriented input to a computer-based format. Input design is a part of overall system design, which requires very careful attention. Often the collection of input data is the most expensive part of the system. The main objectives of the input design are

Produce cost effective method of input. Achieve highest possible level of accuracy. Ensure that the input is acceptable to and understood by the clients. Output design

iii)

6|Industrial Training Report

Outputs from computer systems are required primarily to communicate the results of processing to users. They are also used to provide a temporary copy of these results for later consultation. Computer output is the most important and direct source of information to the users. Designing computer outputs should be preceding in an organized well thought out manner. The outputs have been defined during the logical design stage. If not, they should be defined at the beginning of the output design. iv) Major Input-Output

Student: (I/P) Enters the Roll No. (O/P) Obtains the result in Marksheet. v) Interface Design Interface design focuses on three areas of concern:
1. 2.

The design of interfaces between s/w components The design of interfaces between the s/w and other nonhuman producers and consumers

of information. 3.The design of the interface between a human and the computer. User interface design creates an effective communication medium between a human and a computer following a set of interface design principles, design identities interface objects and actions and then creates a screen layout that forms the basis for a user interface prototype .A s/w engineer designs the user interface by applying an iterative process that draws on predefined design principles. It begins with the identification of user, task and environment requirement.

1) Use Case Diagram: Admin:

7|Industrial Training Report

Seller:

8|Industrial Training Report

Customer:

9|Industrial Training Report

2) Activity Diagram

10 | I n d u s t r i a l T r a i n i n g R e p o r t

2.1 System Login

2.2 Registered Customer:

11 | I n d u s t r i a l T r a i n i n g R e p o r t

3) Entity Relationship Diagrams

12 | I n d u s t r i a l T r a i n i n g R e p o r t

13 | I n d u s t r i a l T r a i n i n g R e p o r t

c) Architecture : 1. MVC (Model-View-Controller) architecture is followed to design the project. Model: The Model is responsible for keeping the data or the state of the application. It also manages the storage and retrieval of the data from the data source. It notifies all the Views that are viewing its data when the data changes. View: The View contains the presentation logic. It displays the data contained in the Model to the users. It also allows the user to interact with the system and notifies the Controller of the users actions. Controller. The Controller manages the whole show. It instantiates the Model and the View and associates the View with the Model. Depending on the application requirements, it may instantiate multiple Views and may associate them with the same Model. It listens for the users actions and manipulates the Model as dictated by the business rules. d) Implementation: Programming Language like JAVA, JSP/ Servlet, HTML, SQL for Development and Testing Platform Frameworks such as hibernate and Struts Database like Oracle for database connectivity , Servers like Tomcat 5.x (Web/App Server) to receive a users request and to generate the response. e) Testing: i) White Box Testing (Cyclomatic complexity) White-box testing, sometimes called glass-box testing is a test case design method that uses the control structure of the procedural design to derive test cases. Using white-box testing methods, the software engineer can derive test cases that Guarantee that all independent paths within a module have been exercised at least once. Exercise all logical decisions on their true and false sides Execute all loops at their boundaries and within their operational bounds, and 14 | I n d u s t r i a l T r a i n i n g R e p o r t

Exercise internal data structures to ensure their validity. Methods involved in white box testing are 1. Basis path testing: it enables the test case designer to derive a logical complexity measure of a procedural design and use this measure as a guide for defining a basis set of execution paths. Flow graph Notation Cyclomatic Complexity Deriving Test cases Graph Matrices

2. Control Structure Testing : Condition testing: it exercises the logical conditions contained in a program module

Cyclomatic complexity is software metric that provides a quantitative measure of theological complexity of a program. When used in the context of the basis path testing method, the value computed for cyclomatic complexity denes the number of independent paths in the basis set of a program and provides us with an upper bound for the number of tests that must be conducted to ensure that all statements have been executed at least once. ii) Black Box testing It alludes to test that are conducted at the s/w interface it is used to demonstrate that s/w functions are operational , input is properly accepted and output is correctly produced and the integrity of external information is maintained. It examine fundamental aspect of system with little regard for the internal logical structure of the s/w it is also called Behavioral testing. It enables the s/w engineering to derive sets of input conditions that will fully exercise all functional requirement of program. It attempts to find error in following categories:

15 | I n d u s t r i a l T r a i n i n g R e p o r t

1. 2. 3. 4. 5.

Incorrect or missing function. Interface Errors. Error in a Data structure or external database access. Behavioral or performance error. Initialization and termination error.

3. Conclusions: This training experience was very knowledgeable and inspiring. This organization enlightened me about the actual development process being carried out in software industries. They provided us with healthy environment and complete technical aid needed throughout the process. Thus we are very grateful and honored to work with such an esteemed organization. 4. Reference: a) Websites: 1. 2. 3. www.ieee.org www.wikipedia.org www.google.com

b) Books : 1. Java 2: The Complete Reference 2. Software Engineering , A Practitioners Approach, by Roger S. Pressman

c) Literature Provided by the company: No such information was provided

16 | I n d u s t r i a l T r a i n i n g R e p o r t