Public Transportation System Product Line Design Description Version 1.0 Doc. No.: Project Name Public Transportation System Product Line Design Description Version: 1.0 Date: 2010-10-08 Revision History Date 2010-10-08 Version 0.01 Description Initial Draft Author Manish Kungwani Page 3 Project Name Public Transportation System Product Line Design Description Version: 1.0 Date: 2010-10-08 Table of Contents 1. Introduction 5 1.1 1.2 1.3 1.4 Purpose of this document Intended Audience Scope Definitions and acronyms 1.4.1 Definitions 1.4.2 Acronyms and abbreviations 1.5 References 5 5 5 5 5 5 6 2. External interfaces 6 3. Software architecture 6 3.1 3.2 3.3 6 8 8 Conceptual design System specification Error handling 4. Detailed software design 8 5. Approvals 8 Page 4 Project Name Public Transportation System Product Line Design Description 1. Introduction 1.1 Purpose of this document Version: 1.0 Date: 2010-10-08 The purpose of the document is to record the overall design for the Public transportation System project for DSD course and to help the team members to clarify all the doubts regarding the implementation of the design. 1.2 Intended Audience Document is made for: 1.3 • Project team – Design of the implementation. • Project supervisor – Overview of Design and evaluation • Customer – Design Validation Scope Scope of this document is: • The Solution Design and its description • External Interfaces 1.4 Definitions and acronyms 1.4.1 Definitions Keyword Software product line Factory Method Umple 1.4.2 Definitions Software engineering methods, tools and techniques for creating a collection of similar software systems from a shared set of software assets using a common means of production. The Factory Method of development is a way of development which ensures integrity of an overall system even after rigorous changes in the implementation of the classes. It is a widely used Object Oriented pattern. A modeling language under development, being used by the team to develop the system model. Acronyms and abbreviations Acronym or abbreviation Definitions Page 5 Project Name Public Transportation System Product Line Design Description 1.5 Version: 1.0 Date: 2010-10-08 References [1] Timothy C. Lethbridge, “Building a Public Transportation System Product Line”. SCORE project proposal document. Available at http://score-contest.org/2011/projects/Lethbridge.PubTransSysProdLine.pdf 2. External interfaces The external interface required by the system is instance specific and we will demonstrate a graphical and console interface with the different demonstrative instances of the product line. 3. Software architecture 3.1 Conceptual design The system architecture is shown in the following figure: Page 6 Project Name Public Transportation System Product Line Design Description Version: 1.0 Date: 2010-10-08 The architecture is as: The Lowermost Layer would be the Database server which will house the data by the application. Being an instance specific Decision, the Product line will have flexibility to accommodate variations for the storage model. The Second Layer will be the application: o Includes the Persistent entities e.g. Vehicle-Train, Bus. Stops – Bus-stop or Train-station, etc. These are classes which define the data storage and rules enforced upon them. Also, these will be directly mapped to the Database structure. Being exposed via interfaces, although the implementation might change as per the instance, but the integration will not suffer. This Module adheres to the Factory Method of Development. Page 7 Project Name Public Transportation System Product Line Design Description Version: 1.0 Date: 2010-10-08 o 3.2 The Logic module will be used to enforce all the algorithms, do all the calculations and other processing on the data to produce the schedules and material results from the system. It will have interfaces and classes defined using Umple and the implementation of the logic will be in Java (embedded in procedures). This Module adheres to the Factory Method of Development. The Third Layer will have the application exposed functionality with all the access and business rules to provide access to the users to the required functionality. System specification The product line application will be developed in Java and being a product line, has no specific Application or Database hosts defined. As a part of the requirements, we will be applying the system to 3-4 cases out of which at least 1 will be of a real city or area. The tools that we will use are: Eclipse Umple Eclipse Plugin ArgoUML The technologies that we are using are: Umple for model design Java As Umple development is an extended feature, all such development, if done will be accounted for, in the later revisions of the document. 3.3 Error handling Error 4. Action Detailed software design The software design of the system will be a realization of the architecture and will fulfill the requirements of the Requirement Description Document as agreed upon by the customer, the supervisor and the team. 5. Approvals Name Title Date yyyy-mm-dd Signature Page 8