Uml and DP Manual
Uml and DP Manual
net
INDEX GUIDELINES TO STUDENTS AN INTRODUCTION TO UML RATIONAL ROSE: HANDS ON TUTORIAL List of Programs
PAGE NO
1 2 3 4
To create a UML diagram of ATM APPLICATION. To create a UML diagram of LIBRARY MANAGEMENT SYSTEM. To create a UML diagram of ONLINE BOOK SHOP To create a UML diagram of RAILWAY RESERVATION SYSTEM
www.jntuworld.com || www.jwjobs.net
5 6 7 8 9 10 11 12
To create a UML diagram for Banking System To design a Document Editor Using UML design Abstract factory design pattern Using UML design Builder Design pattern Using UML design Facade Design pattern Using UML design Bridge Design pattern Using UML design Decorator Design pattern User gives a print command from a word document. Design to represent this chain of responsibility design pattern
ADD ON PROGRAMS
Development of a workflow based Complaint Management System (where the complaints are received through emails) Development of a web based Stationery Management System OPEN ENDED PROGRMS Development of a system to automate payroll processing in an organization
59-60
61-63
64-66
DESIGN PROGRAMS Development of a feature-rich, practical online on-request courses 67-69 coordination system (ORS)
Objectives:
Main objective of this lab is to enable the student to practice the object-oriented analysis and design through UML on a particular application (project) so that he will apply same methodology in mini project which has to be done in final year. And also it will give exposure to tools that support UML and Object oriented software development. The student should take up the case study of Unified Library application which is mentioned in the theory, and Model it in different views i.e. Use case view, logical view, component view, Deployment view, Database design, forward and Reverse Engineering, and Generation of documentation of the project. Student has to take up another case study of his/her own interest and do the same whatever mentioned in first problem. Some of the ideas regarding case studies are given
www.jntuworld.com || www.jwjobs.net
in reference books which were mentioned in theory syllabus can be referred for some idea.
Guidelines to Students
Learn what the UML is, what it is not and why it is relevant to the process of developing software-intensive systems Master the vocabulary rules and idioms of the UML and in general how to speak the language efficiently Understand how to apply UML to solve a number of common problems The user guide provides a reference to the use of specific UML features, However it is not intended to be a comprehensive reference manual for UML. That is focus on other book, The Unified Modeling Language Reference Manual For the developer approaching the UML for the first time, the user guide is best-read linearly. All chapters are constructed so that each builds upon the contents of previous one, thus lending it as linear progression.
www.jntuworld.com || www.jwjobs.net
Since UML is not a methodology, it does not require any formal work products (i.e., "artifacts" in IBM Rational Unified Process lingo). Yet it does provide several types of diagrams that, when used within a given methodology, increase the ease of understanding an application under development. There is more to UML than these diagrams, but for my purposes here, the diagrams offer a good introduction to the language and the principles behind its use. By placing standard UML diagrams in your methodology's work products, you make it easier for UMLproficient people to join your project and quickly become productive. The most useful, standard UML diagrams are: use case diagram, class diagram, sequence diagram, statechart diagram, activity diagram, component diagram, and deployment diagram.
Communication Diagram: Shows instances of classes, their interrelationships, and the message flow between them. Communication diagrams typically focus on the structural organization of objects that send and receive messages. Formerly called a Collaboration Diagram.
Component Diagram: Depicts the components that compose an application, system, or enterprise. The components, their interrelationships, interactions, and their public interfaces are depicted.
Deployment Diagram: Shows the execution architecture of systems. This includes nodes, either hardware or software execution environments, as well as the middleware connecting them.
Object Diagram: Depicts objects and their relationships at a point in time, typically a special case of either a class diagram or a communication diagram.
Sequence Diagram: Models the sequential logic, in effect the time ordering of messages between classifiers.
www.jntuworld.com || www.jwjobs.net
State Machine Diagram: Describes the states an object or interaction may be in, as well as the transitions between states. Formerly referred to as a state diagram, state chart diagram, or a state-transition diagram.
Use Case Diagram: Shows use cases, actors, and their interrelationships.
Use-Case Diagram
A use case illustrates a unit of functionality provided by the system. The main purpose of the use-case diagram is to help development teams visualize the functional requirements of a system, including the relationship of "actors" (human beings who will interact with the system) to essential processes, as well as the relationships among different use cases. Use-case diagrams generally show groups of use cases either all use cases for the complete system, or a breakout of a particular group of use cases with related functionality (e.g., all security administrationrelated use cases). To show a use case on a use-case diagram, you draw an oval in the middle of the diagram and put the name of the use case in the center of, or below, the oval. To draw an actor (indicating a system user) on a use-case diagram, you draw a stick person to the left or right of your diagram (and just in case you're wondering, some people draw prettier stick people than others). Use simple lines to depict relationships between actors and use cases, as shown in Figure 1.
www.jntuworld.com || www.jwjobs.net
A use-case diagram is typically used to communicate the high-level functions of the system and the system's scope. By looking at our use-case diagram in Figure 1, you can easily tell the functions that our example system provides. This system lets the band manager view a sales statistics report and the Billboard 200 report for the band's CDs. It also lets the record manager view a sales statistics report and the Billboard 200 report for a particular CD. The diagram also tells us that our system delivers Billboard reports from an external system called Billboard Reporting Service. In addition, the absence of use cases in this diagram shows what the system doesn't do. For example, it does not provide a way for a band manager to listen to songs from the different albums on the Billboard 200 i.e., we see no reference to a use case called Listen to Songs from Billboard 200. This absence is not a trivial matter. With clear and simple use-case descriptions provided on such a diagram, a project sponsor can easily see if needed functionality is present or not present in the system.
Class Diagram
www.jntuworld.com || www.jwjobs.net
The class diagram shows how the different entities (people, things, and data) relate to each other; in other words, it shows the static structures of the system. A class diagram can be used to display logical classes, which are typically the kinds of things the business people in an organization talk about rock bands, CDs, radio play; or loans, home mortgages, car loans, and interest rates. Class diagrams can also be used to show implementation classes, which are the things that programmers typically deal with. An implementation class diagram will probably show some of the same classes as the logical class diagram. The implementation class diagram won't be drawn with the same attributes, however, because it will most likely have references to things like Vectors and HashMaps.
A class is depicted on the class diagram as a rectangle with three horizontal sections, as shown in Figure 2. The upper section shows the class's name; the middle section contains the class's attributes; and the lower section contains the class's operations (or "methods"). Figure 2: Sample class object in a class diagram
In my experience, almost every developer knows what this diagram is, yet I find that most programmers draw the relationship lines incorrectly. For a class diagram like the one in Figure 3, you should draw the inheritance relationship1 using a line with an arrowhead at the top pointing to the super class, and the arrowhead should be a completed triangle. An association relationship should be a solid line if both classes are aware of each other and a line with an open arrowhead if the association is known by only one of the classes.
Figure 3: A complete class diagram, including the class object shown in Figure 2
www.jntuworld.com || www.jwjobs.net
In Figure 3, we see both the inheritance relationship and two association relationships. The CDSalesReport class inherits from the Report class. A CDSalesReport is associated with one CD, but the CD class doesn't know anything about the CDSalesReport class. The CD and the Band classes both know about each other, and both classes can be associated to one or more of each other.
Sequence Diagram
Sequence diagrams show a detailed flow for a specific use case or even just part of a specific use case. They are almost self-explanatory; they show the calls between the different objects in their sequence and can show, at a detailed level, different calls to different objects. A sequence diagram has two dimensions: The vertical dimension shows the sequence of messages/calls in the time order that they occur; the horizontal dimension shows the object instances to which the messages are sent. A sequence diagram is very simple to draw. Across the top of your diagram, identify the class instances (objects) by putting each class instance inside a box (see Figure 4). In the box, put the class instance name and class name separated by a space/colon/space " : " (e.g., myReportGenerator : ReportGenerator). If a class instance sends a message to another class instance, draw a line with an open arrowhead pointing to the receiving class instance; place the name of the message/method above the line. Optionally, for important messages, you can draw a dotted line with an arrowhead pointing back to the originating class instance; label the return value above the dotted line. Personally, I always like to include the return value lines because I find the extra details make it easier to read.
www.jntuworld.com || www.jwjobs.net
Reading a sequence diagram is very simple. Start at the top left corner with the "driver" class instance that starts the sequence. Then follow each message down the diagram. Remember: Even though the example sequence diagram in Figure 4 shows a return message for each sent message, this is optional. Figure 4: A sample sequence diagram
By reading our sample sequence diagram in Figure 4, you can see how to create a CD Sales Report. The aServlet object is our example driver. aServlet sends a message to the ReportGenerator class instance named gen. The message is labeled generateCDSalesReport, which means that the ReportGenerator object implements this message handler. On closer inspection, the generateCDSalesReport message label has cdId in parentheses, which means that aServlet is passing a variable named cdId with the message. When gen instance receives a generateCDSalesReport message, it then makes subsequent calls to the CDSalesReport class, and an actual instance of a CDSalesReport called aCDReport gets returned. The gen instance then makes calls to the returned aCDReport instance, passing it parameters on each message call. At the end of the sequence, the gen instance returns aCDReport to its caller aServlet.
Statechart Diagram
www.jntuworld.com || www.jwjobs.net
The statechart diagram models the different states that a class can be in and how that class transitions from state to state. It can be argued that every class has a state, but that every class shouldn't have a statechart diagram. Only classes with "interesting" states that is, classes with three or more potential states during system activity should be modeled. As shown in Figure 5, the notation set of the statechart diagram has five basic elements: the initial starting point, which is drawn using a solid circle; a transition between states, which is drawn using a line with an open arrowhead; a state, which is drawn using a rectangle with rounded corners; a decision point, which is drawn as an open circle; and one or more termination points, which are drawn using a circle with a solid circle inside it. To draw a statechart diagram, begin with a starting point and a transition line pointing to the initial state of the class. Draw the states themselves anywhere on the diagram, and then simply connect them using the state transition lines. Figure 5: Statechart diagram showing the various states that classes pass through in a functioning system
The example statechart diagram in Figure 5 shows some of the potential information they can communicate. For instance, you can tell that loan processing begins in the Loan Application state. When the pre-approval process is done, depending on the outcome, you move to either the Loan Pre-approved state or the Loan Rejected state. This decision, which is made during the transition process, is shown with a decision point the empty circle in the transition line. By
www.jntuworld.com || www.jwjobs.net
looking at the example, a person can tell that a loan cannot go from the Loan Pre-Approved state to the Loan in Maintenance state without going through the Loan Closing state.
Activity Diagram
Activity diagrams show the procedural flow of control between two or more class objects while processing an activity. Activity diagrams can be used to model higher-level business process at the business unit level, or to model low-level internal class actions. In my experience, activity diagrams are best used to model higher-level processes, such as how the company is currently doing business, or how it would like to do business. This is because activity diagrams are "less technical" in appearance, compared to sequence diagrams, and business-minded people tend to understand them more quickly. An activity diagram's notation set is similar to that used in a statechart diagram. Like a statechart diagram, the activity diagram starts with a solid circle connected to the initial activity. The activity is modeled by drawing a rectangle with rounded edges, enclosing the activity's name. Activities can be connected to other activities through transition lines, or to decision points that connect to different activities guarded by conditions of the decision point. Activities that terminate the modeled process are connected to a termination point (just as in a statechart diagram). Optionally, the activities can be grouped into swimlanes, which are used to indicate the object that actually performs the activity, as shown in Figure 6. Figure 6: Activity diagram, with two swimlanes to indicate control of activity by two
www.jntuworld.com || www.jwjobs.net
In our example activity diagram, we have two swimlanes because we have two objects that control separate activities: a band manager and a reporting tool. The process starts with the band manager electing to view the sales report for one of his bands. The reporting tool then retrieves and displays all the bands that person manages and asks him to choose one. After the band manager selects a band, the reporting tool retrieves the sales information and displays the sales report. The activity diagram shows that displaying the report is the last step in the process.
Component Diagram
A component diagram provides a physical view of the system. Its purpose is to show the dependencies that the software has on the other software components (e.g., software libraries) in the system. The diagram can be shown at a very high level, with just the large-grain components, or it can be shown at the component package level. [Note: The phrase component package level is a programming language-neutral way of referring to class container levels such as .NET's namespaces (e.g., System.Web.UI) or Java's packages (e.g., java.util).]
www.jntuworld.com || www.jwjobs.net
Modeling a component diagram is best described through an example. Figure 7 shows four components: Reporting Tool, Billboard Service, Servlet 2.2 API, and JDBC API. The arrowed lines from the Reporting Tool component to the Billboard Service, Servlet 2.2 API, and JDBC API components mean that the Reporting Tool is dependent on those three components.
Figure 7: A component diagram shows interdependencies of various software components the system comprises
Deployment Diagram
The deployment diagram shows how a system will be physically deployed in the hardware environment. Its purpose is to show where the different components of the system will physically run and how they will communicate with each other. Since the diagram models the physical runtime, a system's production staff will make considerable use of this diagram. The notation in a deployment diagram includes the notation elements used in a component diagram, with a couple of additions, including the concept of a node. A node represents either a physical machine or a virtual machine node (e.g., a mainframe node). To model a node, simply draw a three-dimensional cube with the name of the node at the top of the cube. Use the naming convention used in sequence diagrams: [instance name] : [instance type] (e.g.,
www.jntuworld.com || www.jwjobs.net
The deployment diagram in Figure 8 shows that the users access the Reporting Tool by using a browser running on their local machine and connecting via HTTP over their company's intranet to the Reporting Tool. This tool physically runs on the Application Server named w3reporting.myco.com. The diagram shows the Reporting Tool component drawn inside of IBM WebSphere, which in turn is drawn inside of the node w3.reporting.myco.com. The Reporting Tool connects to its reporting database using the Java language to IBM DB2's JDBC interface, which then communicates to the actual DB2 database running on the server named db1.myco.com using native DB2 communication. In addition to talking to the reporting database, the Report Tool component communicates via SOAP over HTTPS to the Billboard Service.
Object Diagram
Object diagrams are derived from class diagrams so object diagrams are dependent upon class diagrams.Object diagrams represent an instance of a class diagram. The basic concepts are similar for class diagrams and object diagrams. Object diagrams also represent the static view of a system but this static view is a snapshot of the system at a particular moment. Object diagrams are used to render a set of objects and their relationships as an instance.
www.jntuworld.com || www.jwjobs.net
Collaboration Diagram
UML Collaboration diagrams (interaction diagrams) illustrate the relationship and interaction between software objects. They require use cases, system operation contracts, and domain model to already exist. The collaboration diagram illustrates messages being sent between classes and objects (instances). A diagram is created for each system operation that relates to the current development cycle (iteration). When creating collaboration diagrams, patterns are used to justify relationships. Patterns are best principles for assigning responsibilities to objects and are described further in the section on patterns. There are two main types of patterns used for assigning responsibilities which are evaluative patterns and driving patterns. Each system operation initiates a collaboration diagram. Therefore, there is a collaboration diagram for every system operation. An example diagram for purchasing a bus ticket.
www.jntuworld.com || www.jwjobs.net
The route and seat objects are multi objects which means they are a collection of objects. The message, "purchase Ticket(route, preference) is the initializing message which is generated by the initializing actor. All other messages are generated by the system between objects. The initializing message is not numbered. The first message after the initializing message is numbered. Messages that are dependent on previous messages are numbered based on the number of the message they are dependent on. Therefore the message, "r=findRoute(route)" is numbered "1.1" since it is dependent on the message "s=findSeat(route, preference)". Any message path that is mutually exclusive is numbered with an "a" or "b". In finding route and seat messages, if finding a route or a seat were mutually exclusive, the numbering would be 1.1a and 1.1b. Patterns used for the association are associated with the message using a note.
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.jwjobs.net
Some critics consider that UML is a bloated diagramming language written by a committee. That said, I consider it to be the best means available today for documenting object-oriented software development. It has been and is becoming increasingly used in industry and academia. It should be stressed that UML is not a methodology, rather it is a language for expressing software models. Conceivably, it can be used with various software methodologies. However,
separately from the UML, the three amigos have developed the Rational Unified Process, a methodology that is use case driven, and carried out using UML models. Rational Rose is a Computer Aided Software Engineering (CASE) tool developed by the Rational Corporation under the direction of Booch, Jacobson and Rumbaugh to support software development using UML. Rational Rose is necessarily complex owing to its mission of fully supporting UML. In addition, Rational Rose has numerous language extensions to Ada, C++, VB, Java, J2EE, etc. Rational Rose supports forward and reverse engineering to and from these languages. On the other hand, Rational Rose does not support some traditional design
techniques as data flow diagrams and CRC cards, since these are not part of UML.
Because Rational Rose has so many capabilities it is a daunting task to master it. Fortunately, a lot can be done using just a small subset of these capabilities. These notes are designed to introduce novice developers into making productive use of such a subset. They reflect the authors bias towards developing software and should not be taken as the last word on the subject. Rational Rose Views Related to the Software Development Life Cycle Rational Rose models have these four views: Use Case View Logical View Component View Deployment View
I like to use a Software Development Life Cycle with these phases: 0. Project Initiation 1. Requirements 2. Design
www.jntuworld.com || www.jwjobs.net
2.1 2.2
3. Implementation 4. Maintenance 0. Project Initiation The project initiation phase involves identifying a problem that need a software solution, investigating to see if an adequate solution is already available for purchase, if not, working up an informal proposal outlining new software to be built and making the case that the expected benefits justify the cost. Rational rose need not be involved in this phase.
1.
Requirements
The requirements phase involves eliciting requirements from the client and presenting them in a formal contractual document that will later serve as the basis for acceptance of the finished project. Getting the requirements right is key to the success of the project. However, the software developers are usually not expert on the clients business environment, nor are the clients necessarily good at expressing what their real requirements are. The developers need to work with the clients to determine the real requirements.
Use Case Diagram - The best tool I know of for talking about requirements is the use case diagram, developed by Jacobson. The diagrams and the use case technique are so simple that clients instantly relate to them and will readily volunteer usual and exceptional scenarios to go along with each use case. The use cases are recorded in the use case view of rational rose.
Some other diagrams strictly speaking belong to the design phase, but may also be useful in the requirements phase. They are constructed in Rational Roses Logical View. Class Diagram As part of the requirements process entity classes are identified and described in terms of attributes, operations and associations using the UML class
www.jntuworld.com || www.jwjobs.net
diagram. A class is an entity class if it forms part of the clients business model. So, for example, if the client is running a hospital, possible entity classes are: Patient, Doctor, Nurse, Therapist, Bed, Treatment, Diagnosis, etc. On the other hand, classes such as Form, Canvas, Button, Socket, etc. are not entity classes. They are classes needed to implement the solution, but are not meaningful in describing the clients business, hence not part of the requirements phase.
Another way to look at entity classes is from a database point of view. The entity classes are usually the persistent ones, i.e. they describe the objects, which the system will permanently track in a database. Sequence Diagram (Logical View) Object-Oriented systems get work done by sending messages between objects, invoking functions to obtain services. Sequence diagrams are designed to help visualize the messaging. Each use case results in one or more sequence diagrams, a main sequence diagram to illustrate the usual scenario for the use case and zero or more additional sequence diagrams to illustrate exceptional scenarios. One or two sequence diagrams are appropriate in the requirements phase; they are helpful in refining and adding to use cases, and discovering entity classes. The bulk of sequence diagrams belong to the design phase.
Component and Deployment diagrams are primarily used in the architectural design phase. They show the division of software responsibilities into software components or modules, and the deployment of modules to various devices. However, for some projects such as web applications, client-server and multi-tiered configurations, etc. these issues are so important that the developer may wish to discuss them with the client during requirements analysis. In Rational Rose, these diagrams properly belong in the
The architectural design phase is used to divide up system responsibilities into subsystems. The subsystems (modules) are identified, responsibilities assigned to them, and interfaces between modules are specified. A general scheme for the software architecture is chosen. For example:
www.jntuworld.com || www.jwjobs.net
client/server, layered services, model-view-controller, etc. The data model is refined including levels of access for different actors.
The following UML diagrams are useful at this stage: Class Diagram (Logical View) Classes are grouped into packages representing subsystems. Component Diagram (Component View) Components and interfaces are defined. Deployment Diagram (Deployment View) Software components are mapped to hardware components.
2.2
Detail Design
The modules identified in architectural design need to be fully specified prior to implementation. The following UML diagrams are useful at this stage: Class Diagram (Logical View) Entity classes were identified by analyzing the problem space during the requirements phase. These are now supplemented with additional
solution classes needed to build interfaces, maintain persistent data, manage communications, etc. The expanded class diagram is reexamined to take advantage of factoring out common behavior into abstract superclasses, simplify associations and otherwise make the design more cohesive. Sequence Diagram (Logical View) A complete set of sequence diagrams is now drawn for each of the use cases identified as requirements. As mentioned earlier, each use case has a usual scenario and perhaps several exceptional scenarios. Rather than attempt to show branching in the sequence diagrams, usually a separate diagram is drawn for each scenario. Statechart Diagram (Logical View) The state of an object is the current set of values of all its attributes (including inherited ones). Objects may change state in response to messages received. The statechart diagram shows all the states, transitions between states labeled by the messages, which cause them, and guards on transitions.
www.jntuworld.com || www.jwjobs.net
Activity Diagram (Logical View) These diagrams are similar to the familiar flowcharts. They show activities (processes) and the flow of control and data between activities.
Together the sequence, statechart and activity diagrams form the dynamic model of the system. In general, the system is at rest until an actor initiates a use case by requesting a system function. This causes a flurry of messages and state changes as predicted by the dynamic model.
3.
Implementation
In the implementation phase the detailed design is actually carried out in program code using a target language. Data definition language is written to create and populate the database tables and grant role-based privileges. Reports and interactive forms are written, as well as help files and exception handling routines. The implementation phase is characterized by testing, unit tests to see if individual modules work correctly, integration tests to ensure that the modules work together properly to carry out the use cases. Tested modules are deployed to the target hardware and retested on site. Finally, acceptance testing verifies that the system carries out its various functions correctly, i.e. according to their specification in the requirements document. Rational Rose provides extensive support for implementation: 4. Model checking. Forward code generation (from model to source code) in a variety of target languages. Maintenance
Using Rational Rose and UML to Build a Library Circulation System The Problem: A public library would like to automate some of its circulation functions. Machines will be purchased so that library customers will be able to check out and return books on their own. As with any library, customers will first need to be approved for a library card. Cardholders will be assigned (or select) a username and password. To borrow a book, a cardholder enters her username and password, then scans each book they wish to borrow. The books are desensitized. When done, the cardholder presses submit, which logs them off and opens a turnstile gate so they
www.jntuworld.com || www.jwjobs.net
can leave. A similar process is followed when returning a book. The cardholder logs on, scans the books for return, and logs off. Cardholders may also reserve books using a WWW interface and pay fines or other fees by logging on and using a credit card or payment service. They can request reports on books they currently have on loan and books they have borrowed in the past.
Circulation librarians can send reminders to cardholders, create a variety of reports to track borrowers, books, loans, etc. and levy fines. Acquisitions librarians acquire new books and add them to the system. Likewise they may dispose existing books and remove them from the system. They can generate reports on loans and reservations to help guide their decisions. Step 1 Create a use case diagram in Rational Rose Start Rational Rose.
www.jntuworld.com || www.jwjobs.net
Choose a default language. This is the language you plan to develop in. I chose J2EE, since I plan to make a Java application. This is the browser window. You will create a model by adding various artifacts such as use cases, diagrams, classes, etc. to it. All artifacts are accessible from the browser whether they are shown in diagrams or not.
Note that the browser window also shows the four rational rose views, discussed earlier. The model properties are the settings for generating code in the various target languages. You can double click the icon in the browser window to change these, or select Model Properties from the Tools menu. Creating the use case view: It is convenient to group model artifacts into packages. Since the target language in this case, Java, directly supports packages this is a good idea. Right-clicking on package icons in the browser brings up the new menu, which allows creating various new artifacts in the package.
www.jntuworld.com || www.jwjobs.net
Create a new package and name it Circulation. Add actors and use cases to the circulation package by right clicking on the package name and choosing new. Each actor and use case should be described in the documentation window, usually located in the lower left of your screen. Add a new use case diagram to the Circulation package, name it Main, and drag actors and use cases onto it. Choose the unidirectional association tool and drag from the actor to the use case. Now create a use case diagram for the library circulation system. Start with typical usages such as borrowing and returning a book. Identify the actors involved, for example library cardholders and circulation librarians. Think of the different titles we use for librarians and whether their job descriptions include using the library circulation system in some way. Dont neglect boundary conditions. These include startup, shutdown and handling Usually an
exceptions. How will new books be entered into the system and old ones removed?
acquisitions librarian is in charge and will have use cases for acquiring and disposing of books. Similarly, think of how library users will apply for and be issued library cards, and possibly lose borrowing privileges if they fail to comply with library rules. Here is a sample use case diagram.
www.jntuworld.com || www.jwjobs.net
No code will be generated from the use cases so dont agonize over getting them exactly right. UML provides for <<include>> and <<extend>> associations between use cases. The << >> notation stands for a UML stereotype. <<include>> is a standard stereotype to indicate that one
www.jntuworld.com || www.jwjobs.net
use case, say Login, is included as a common part of other use cases. <<extend>> is used to handle exceptional conditions. Here is a diagram illustrating use case associations.
The dotted arrows are used for dependencies between use cases. Double clicking on an arrow brings up its specification window. You can choose a standard stereotype or type in a new one. This is part of UMLs extensibility feature.
Bear in mind that the main purpose of use cases is to be able to review them with your client so as to get the requirements right. Later we will see that they play a role in discovering domain classes and in drawing class and sequence diagrams. Scenarios A scenario is basically a flow of events that occur when a use case is carried out. The scenario should have entry and exit conditions, plus a list of steps that are followed. Associated with each use case is the usual scenario if everything goes right and several exceptional scenarios followed if something goes wrong. Rational Rose does not supply specific support for storing scenarios. There are thus two choices: (1) Write the scenarios in the documentation window for the use case, or (2) attach a file to the use case containing the scenarios. Keep the language simple so
www.jntuworld.com || www.jwjobs.net
that your clients can understand and work with you on the scenarios. Here is an example of writing the scenarios for the borrow use case in the documentation window.
By the way, it is time to save your model if you havent already done so. Choose Save As from the file menu, and specify a name and location. This will also give a name to the model.
Step 2 Create a class diagram in Rational Rose Even though you are still in the Requirements Phase of development, it is appropriate to start creating a class diagram. The initial classes are so-called entity classes, that is classes that correspond to entities in your clients business model. So, for a library circulation system the
www.jntuworld.com || www.jwjobs.net
entity classes will include Book, Cardholder, Loan, etc. Later on, in the Design Phase, the entity classes will be supplemented with solution classes. In Rational Rose, class diagrams form part of the logical view. As before, we will group the entity classes in a package. Right click on the Logical View, create a new package and name it Circulation. Drag the Circulation package into the Package Hierarchy diagram, where it joins other packages such as java and javax, which were placed there when you chose to build a J2EE application.
Add classes to the Circulation package by right clicking on the package name and choosing new. Add a Class Diagram to the Circulation package, and label it Main, Add a class for each entity object in the library circulation system. Add attributes to each class by right-clicking on the class and pressing new. You can follow the attribute name by a colon and a type as in: balance:double. Alternatively, you can open the specification for the attribute to assign a Java type to it. Although the Type field is grayed, you can click on the button and bring up the Select a type window.
www.jntuworld.com || www.jwjobs.net
Add operations. Open the specification for each operation to add parameters to it. Add associations between classes. Open the specification for each association. It is important to add multiplicities and role names for each association using the tabs entitled Role A detail and Role B detail. The role names will be used in code generation.
I created the following class diagram for the library circulation system.
www.jntuworld.com || www.jwjobs.net
Step 3 Create sequence diagrams in Rational Rose Like class diagrams, sequence diagrams are placed in the logical view. Remember the use case scenarios from the use case view. It is now time to express each of these scenarios in terms of message passing between objects belonging to classes described in the class diagram(s). Properly, sequence diagrams belong to the design phase, since we are beginning to talk about the solution space, rather than the problem space. However, it is appropriate to include one or two sequence diagrams in the requirements phase.
In the browser, right-click on the Circulation package to add a new sequence diagram. To illustrate, I will draw a sequence diagram for the borrow use case usual scenario. Drag the Cardholder actor into the diagram from the use case model. Now drag in needed objects from the classes defined in the Circulation package. Create messages with the Object Message tool, dragging from the source object to the target. The message name and signature
www.jntuworld.com || www.jwjobs.net
should match with an operation available in the target class, in fact right-clicking on a message arrow reveals a list of target class operations to choose from. Alternatively, you can add a new operation to the target class. It will show up in the class diagram.
www.jntuworld.com || www.jwjobs.net
Step 5 Java Code Generation in Rational Rose The first step in code generation is to make sure the default language has been set to Java. It should show in the bottom right of your screen. To change the default language, go to the Tools > Options > Notation tab. The Component View. Java public classes are customarily placed in a .java source file, which has the same name as the class. These source files match up with Rose components. Rational Rose can automatically create components for you when you are ready to generate code. Alternatively, you can create your own components and in the browser, drag classes into them. You need to do this for nonpublic java classes.
www.jntuworld.com || www.jwjobs.net
For the Library application it is natural to carry over the packages from the logical view. So, add a package named Circulation to the component view. When you generate code from a class for the first time, you will create a component for it in the Circulation package. Setting Java Properties. The java code that is generated depends on the settings of the java properties for the model. You can double-click the Model Properties from the browser window or choose Tools > Model Properties > Edit from the menu. Select the Java tab. In the Type window, choose the artifact you wish to set properties for. Here is the window when Attribute is selected.
The only change I made on this screen was to change PropertyType to Simple. This is a bean property. Simple means that get and set methods are generated for each attribute. I made the same change for the Role type. Recall that the role names you specified in the class diagram are used as field names in the generated code. (Assuming the association ending was marked Navigable). When the role has multiplicity 0..n the type of the field is a container. By default it is an array of the target type, but I changed the Container Type to Vector.
Create a component for each Java class in the Component view. Drag each class into its component
www.jntuworld.com || www.jwjobs.net
Set the Java properties. To do this go to Tools | Model Properties | Edit. Go to the Java tab. Set properties for class, role, etc.
Rational Rose is capable of generating a database schema from a logical view package. This is done using the data modeler tool. The database schema can then be forward engineered to generate Data Definition Language (DDL) appropriate to the database of your choice. Preparing the classes Identify which classes you want to be persistent. Generally these are the entity classes. In the Library example classes such as Book, Title, Cardholder, Loan, Reservation are persistent, since we would like a permanent record of all their objects kept in the database. Control classes such as LoanControl are not persistent. They are created to orchestrate use cases and can be disposed of when the use cases complete. Similarly boundary classes, which house interface forms and scripts need not be persistent.
To mark a class as persistent, right-click on the class in the browser and open the standard specification. On the details tab, check persistent.
www.jntuworld.com || www.jwjobs.net
The persistent classes will be converted into database tables. Each such table will need a primary key. To enable joins the primary key field in one table may appear as a foreign key in one or more related tables.
1) Designate a unique attribute or attribute combination to be the primary key. For example, in the Title class, the isbn number is a good choice for primary key, since it uniquely identifies the book title and is commonly used for that purpose when searching for a book. In the Book class, the combination (concatenation) of isbn and copy number makes a natural primary key. However, there is a cost to doing this. The isbn needs to be saved as a character string, which takes up more space than a simple integer. The space issue is even worse in the Loan table, which will need to store both the isbn and the copy number to recognize the relationship of a loan to a specific book. Another problem is that joins between related tables
www.jntuworld.com || www.jwjobs.net
may be slower, since string comparisons take longer than integer comparisons, and comparisons of concatenated keys take longer still.
2)
Allow the data modeler to generate a new integer-valued primary key id for the table. Although these auto-generated ids are not meaningful to end-users, they do save space and make for fast joins.
To designate an attribute to be part of the primary key, right-click on the attribute in the browser, select Data Modeler, part of Object Identity.
You now need to set up a database component. Right-click on the Component View icon, select Data Modeler | New | Database.
Next you need to choose a database language for the database. Double-click on the disk-shaped icon (probably named DB_!) to open its specification, and select the target DBMS.
www.jntuworld.com || www.jwjobs.net
Next, create a schema. Right-click the Logical View icon, select Data Modeler | new | Schema. A Schemas package and under it a schema named S_0 are created.
Open its specification and rename it to Circulation. Choose DB1 as its database.
Next, transform the Circulation package in the logical view to a data model. Right-click the package, select Data Modeler | Transform to Data Model. In the dialog box, select the schema and target database.
www.jntuworld.com || www.jwjobs.net
Right-click on the Circulation schema in the browser, select Data Modeler | New | Data Model Diagram. Rename the diagram to Main. Open it up and drag all the tables into it. Drag them around to improve readability. You get something like:
www.jntuworld.com || www.jwjobs.net
ATM APPLICATION
www.jntuworld.com || www.jwjobs.net
Abstract The Object-Oriented Modeling assists the programmer to address the complexity of a problem domain by considering the problem not as a set of functions that can be performed but primarily as a set of related, interacting Objects. This article is based on the approach of Object Oriented modeling through Unified Modeling Language (UML) for an ATM system in Banking sector. The main aim of this article is to provide a flexible and faithful environment for a customer, who wants to do online banking transactions. After successful authentication, the customer can withdraw the desire amount (within the prescribed limit) from the ATM machine or can transfer amount to other account. User can also change the pin code. The ATM has solved many problems and now customer can have money transaction 24/7. In this article UML Class, Interaction diagram, Activity diagram & Use Case diagram are also designed for the ATM System.
Requirements:
The ATM will service one customer at a time. A customer will be required to insert an ATM card and enter a personal identification number (PIN) - both of which will be sent to the bank for validation as part of each transaction. The customer will then be able to perform one or more transactions. The card will be retained in the machine until the customer indicates that he/she desires no further transactions, at which point it will be returned -except as noted below. The ATM must be able to provide the following services to the customer: 1. A customer must be able to make a cash withdrawal from any suitable account linked to the card, in multiples of Rupees 100. Approval must be obtainedfrom the bank before cash is dispensed. 2. A customer must be able to make a deposit to anyaccount linked to the card, consisting of cash and/or checks in an envelope. The customer will enter the amount of the deposit into the ATM, subject to manual verification when the envelope is removed from the machine by an operator. Approval must be obtained from the bank before physically accepting the envelope. 3. A customer must be able to make a transfer of money between any two accounts linked to the card. 4. A customer must be able to make a balance inquiry ofany account linked to the card.
www.jntuworld.com || www.jwjobs.net
Abstract Unified Library application project is expected at developing an online Library Management System for the school, college, university library. This is an Intranet based application that can be accessed all through the university grounds or campus. This structure can be used to search for books/magazines, reserve books, find out who is having a particular book, put in requests to buy a new book etc. This is one integrated system that contains both the user component and the librarian component. There are features like email notifications/reminders, report generators etc in this system.
Functional Requirements
Following is a list of functionalities of the system. More functionality that you find appropriate can be added to this list. And, in places where the description of functionality is not adequate, you can make appropriate assumptions and proceed. There are registered people in the system (students, faculty, librarian et al). Each one of them may have some exclusive privileges (faculty, for example, could borrow reference books for a short period, while students cannot). 1. A person should be able to a. login to the system through the first page of the application b. change the password after logging into the system c. see the status of the books/journals borrowed/reserved by him and the respective due dates and other relevant details d. search for a particular book/journal based on the name of the book/name of the author/subject/etc and also list for books/journals based on the name of the autor/subject etc e. reserve a particular book/journal borrowed by others currently cancel the reservation made earlier for a particular book/journal f. see who has borrowed a particular book/journal and when is the due date for the same g. place requests for purchasing new books to the library, by giving details about the name of the book, name of the author, publisher etc. h. get help about the LiMS on how to use the different features of the system
www.jntuworld.com || www.jwjobs.net
2. As soon as a reservation is made for a particular book, an automatic mail should be sent to the person who made the reservation about the details. Then, a mail should be sent to people who are having the book currently, stating a reservation has been made on that book. 3. Automatic mails should be sent to the users about the expiry of due dates for the books/journals borrowed by them. An advance notification (say, 4 days before the expiry of the due date) should be sent as well. 4. The librarian should be able to
a. include new books/journals or remove some books from the inventory b. add new users to the system c. see the purchase requests for new books and be able to approve/reject the same
3.To create a UML diagram of ONLINE BOOK SHOP ONLINE BOOK SHOP Abstract The main objective of the project is to create an online book store that allows users to search and purchase a book online based on title, author and subject. The selected books are displayed in a tabular format and the user can order their books online through credit card payment. Using this Website the user can purchase a book online instead of going out to a book store and wasting time. There are many online book stores like Powells, Amazon which were designed using Html. I want to develop a similar website using .NET, SQL Server. Online Book store is an online web
www.jntuworld.com || www.jwjobs.net
application where the customer can purchase books online. Through a web browser the customers can search for a book by its title or author, later can add to the shopping cart and finally purchase using credit card transaction. The user can login using his account details or new customers can set up an account very quickly. They should give the details of their name, contact number and shipping address. The user can also give feedback to a book by giving ratings on a score of five. The books are divided into many categories based on subject like Software, Database, English, Architecture etc.
Functional Requirements
The Online Book Store Website provides customers with online shopping through a web browser. A customer can, create, sign in to his account, place items into a shopping cart and purchase using his credit card details. The Administrator will have additional functionalities when compared to the common user. He can add, delete and update the book details, book categories,
HARDWARE DESCRIPTION:
www.jntuworld.com || www.jwjobs.net
1.Pentium Processor 2. Intel Motherboard 3. RAM 256MB(minimum) 4. Hard disk 40GB(minimum) SOFTWARE DESCRIPTION: Microsoft VisualBasic6.0 Microsoft Access Rational Rose
HUMAN INTERFACE DESCRIPTION: Interface going to be used is a user friendly interface,it is an online interface which will satisfy the users needs. FUNCTIONAL DESCRIPTION: PERFORMANCE CHARACTERISTICS: Fast access Easy access for end users. Simple steps for reservation and cancellation. DATABASE REQUIREMENTS: Details of Indian trains. Fare of trains according to classes. Percentage of concessions according to persons such as students,senior citizens etc.., Above database are stored in MS-Access.
NON FUNCTIONAL REQUIREMENTS: AVAILABILITY: Available to all systems around the clock. Available in any environment Suites for everyone that is no credit card needed. Just enter the bank name and account no for payment. MAINTAINABILITY: Regular updates of database Backup of database is maintained to avoid the loss of data due to power failure. Less memory space required. BEHAVIOUR DESCRIPTION:
www.jntuworld.com || www.jwjobs.net
Easy and fast steps to reserve a ticket. Before reserving we can check the availability,timings etc..,
Easy and few steps to cancel the tickets. The money will be automatically refunded in the bank account. Specified at the time of reservation. The history of reservation is maintained.
BANKING SYSTEM
Abstract The Internet era is a period in the information age in which communication and commerce via the Internet became a central focus for businesses, consumers, government, and the media. The Internet era also marks the convergence of the computer and communications industries and their associated services and products. Nowadays, the availability of the Internet make it widely used for everyday life. In order to led business to success, the business and specially the services should provide comfort use to its costumer. The bank system is one of the most important businesses who may use the website. The using for the web-based systems should contain special requirements to achieve the business goal. Since that the paper will present the functional and non-functional for the web-based banking system.
Functional Requirements
A Customer must have a valid User Id and password to login to the system If a wrong password is given thrice in succession, that account will be locked and the customer will not be able to use it.
www.jntuworld.com || www.jwjobs.net
When an invalid password is entered a warning is given to the user that his account is going to get locked. After the valid user logs in he is shown the list of accounts he has with the bank. iv. On selecting the desired account he is taken to a page which shows the present balance in that particular account number User can request details of the last n number of transactions he has performed. A report can also be taken of this. User can make a funds transfer to another account in the same bank. User is provided with a transaction password which is different from the login password. User can transfer funds from his account to any other account with this bank. If the transaction is successful a notification should appear to the customer, in case it is unsuccessful, a proper message should be given to the customer as to why it failed. User can request for cheque book/change of address/stop payment of cheques User can view his monthly as well as annual statements. He can also take print out of the same.
Document Editor
Abstract The concept of document has been defined as any concrete or symbolic indication, preserved or recorded, for reconstructing or for proving a phenomenon, whether physical or mental" (Briet, 1951, 7; here quoted from Buckland, 1991). A much cited article asked "what is a document" and concluded this way: The evolving notion of document among (Jonathan Priest). Otlet, Briet, Schrmeyer, and the other documentalists increasingly emphasized whatever functioned as a document rather than traditional physical forms of documents. The shift to digital technology would seem to make this distinction even more important. Levys thoughtful analyses have shown that an emphasis on the technology of digital documents has impeded our understanding of digital documents as documents (e.g., Levy, 1994[2]). A conventional document, such as a mail message or a technical report, exists physically in digital technology as a string of bits, as does everything else in a digital environment. As an object of study, it has been made into a document. It has become physical evidence by those who study it.
Functional Requirements Documents are sometimes classified as secret, private or public. They may also be described as a draft or proof. When a document is copied, the source is referred to as the original.
There are accepted standards for specific applications in various fields, such as:
www.jntuworld.com || www.jwjobs.net
Academic: thesis, paper, journal Business and accounting: Invoice, quote, RFP, Proposal, Contract, Packing slip, Manifest, Report detailed & summary, Spread sheet, MSDS, Waybill, Bill of Lading (BOL), Financial statement, Nondisclosure agreement (NDA) or sometimes referred to as; Mutual nondisclosure agreement (MNDA) Law and politics: summons, certificate, license, gazette Government and industry: white paper, application forms, user-guide Media and marketing: brief, mock-up, script desktop computer and monitor (or laptop, tablet PC, etc.); optionally with a printer to obtain a hard copy Personal digital assistant (PDA) dedicated e-book device electronic paper information appliances digital audio players radio and television service provider
www.jntuworld.com || www.jwjobs.net
get an appropriate instance of the DocumentCreator and call its factory methods. Each of the resulting objects would be created from the same DocumentCreator implementation and would share a common theme (they would all be fancy or modern objects). The client would need to know how to handle only the abstract Letter or Resume class, not the specific version that it got from the concrete factory.A factory is the location of a concrete class in the code at which objects are constructed. The intent in employing the pattern is to insulate the creation of objects from their usage and to create families of related objects without having to depend on their concrete classes.[2] This allows for new derived types to be introduced with no change to the code that uses the base class.
Functional Requirements
The creation of an object precludes its reuse without significant duplication of code. The creation of an object requires access to information or resources that should not be contained within the composing class. The lifetime management of the generated objects must be centralized to ensure a consistent behavior within the application. Factory methods are common in toolkits and frameworks, where library code needs to create objects of types that may be subclassed by applications using the framework. Parallel class hierarchies often require objects from one hierarchy to be able to create appropriate objects from another. Factory methods are used in test-driven development to allow classes to be put under test.[3] If such a class Foo creates another object Dangerous that can't be put under automated unit tests(perhaps it communicates with a production database that isn't always available), then the creation of Dangerous objects is placed in the virtual factory method createDangerous in classFoo. For testing, TestFoo (a subclass of Foo) is then created, with the virtual factory method createDangerous overridden to create and return FakeDangerous, a fake object. Unit tests then use TestFoo to test the functionality of Foo without incurring the side effect of using a real Dangerous object.
www.jntuworld.com || www.jwjobs.net
Abstract The builder pattern is a Gang of Four design pattern. This is a creational pattern as it is to control classinstantiation. The builder pattern is used to create complex objects with constituent parts that must be created in the same order or using a specific algorithm. An external class, known as the director, controls the construction algorithm. An example of this pattern could exist in a fast food restaurant system. It may be that each time a standard meal is prepared, it can include one burger or sandwich, one side
www.jntuworld.com || www.jwjobs.net
order, a drink and a special offer item. The employee taking the order selects the type of meal and the builder pattern is used to determine exactly what goes into each meal. Using this model, when the employee selects a "Jolly Vegetarian", the ordering system determines that the meal will include a vegeburger, an order of fries, some orange juice and a voucher for a free donut. If the customer orders a "Mischievous Mexican", they receive a spicy burger, a side order of nachos, a shot of tequila and a free hat. In each case, the constituent parts are the same and are created in the same order. The final meal is, of course, quite different.
Functional Requirements Product. The product class defines the type of the complex object that is to be generated by
correctly create a product. Each step is generally abstract as the actual functionality of the builder is carried out in the concrete subclasses. The GetProduct method is used to return the final product. The builder class is often replaced with a simple interface.
ConcreteBuilder. There may be any number of concrete builder classes inheriting from
Builder. These classes contain the functionality to create a particular complex product.
Director. The director class controls the algorithm that generates the final product object. A
director object is instantiated and its Construct method is called. The method includes a parameterto capture the specific concrete builder object that is to be used to generate the product. The director then calls methods of the concrete builder in the correct order to generate the product object. On completion of the process, the GetProduct method of the builder object can be used to return the product.
www.jntuworld.com || www.jwjobs.net
A facade is an object that provides a simplified interface to a larger body of code, such as a class library. A facade can: make a software library easier to use, understand and test, since the facade has convenient methods for common tasks; make the library more readable, for the same reason; reduce dependencies of outside code on the inner workings of a library, since most code uses the facade, thus allowing more flexibility in developing the system;
www.jntuworld.com || www.jwjobs.net
wrap a poorly designed collection of APIs with a single well-designed API (as per task needs).
06
www.jntuworld.com || www.jwjobs.net
Functional Requirements
Decouple an abstraction from its implementation so that the two can vary independently. Publish interface in an inheritance hierarchy, and bury implementation in its own inheritance hierarchy. Beyond encapsulation, to insulation decoupling the objects interface, improved extensibility (you can extend (i.e. subclass) the abstraction and implementation hierarchies independently), hiding details from clients.
Adapter provides a different interface to its subject. Proxy provides the same interface. Decorator provides an enhanced interface. Adapter changes an objects interface, Decorator enhances an objects responsibilities. Decorator is thus more transparent to the client. As a consequence, Decorator supports recursive composition, which isnt possible with pure Adapters.
www.jntuworld.com || www.jwjobs.net
Composite and Decorator have similar structure diagrams, reflecting the fact that both rely on recursive composition to organize an open-ended number of objects. A Decorator can be viewed as a degenerate Composite with only one component. However, a Decorator adds additional responsibilities - it isnt intended for object aggregation. Decorator is designed to let you add responsibilities to objects without subclassing. Composites focus is not on embellishment but on representation. These intents are distinct but complementary. Consequently, Composite and Decorator are often used in concert. Composite could use Chain of Responsibility to let components access global properties through their parent. It could also use Decorator to override these properties on parts of the composition. Decorator and Proxy have different purposes but similar structures. Both describe how to provide a level of indirection to another object, and the implementations keep a reference to the object to which they forward requests. Decorator lets you change the skin of an object. Strategy lets you change the guts.
www.jntuworld.com || www.jwjobs.net
12.User gives a print command from a word document. Design to represent this chain of responsibility design pattern
Chain of Responsibility
Abstract
In writing an application of any kind, it often happens that the event generated by one object needs to be handled by another one. And, to make our work even harder, we also happen to be denied access to the object which needs to handle the event. In this case there are two possibilities: there is the beginner/lazy approach of making everything public, creating reference to every object and continuing from there and then there is the expert approach of using the Chain of Responsibility. The Chain of Responsibility design pattern allows an object to send a command without knowing what object will receive and handle it. The request is sent from one object to another making them parts of a chain and each object in this chain can handle the command, pass it on or do both. The most usual example of a machine using the Chain of Responsibility is the vending machine coin slot: rather than having a slot for each type of coin, the machine has only one slot for all of them. The dropped coin is routed to the appropriate storage place that is determined by the receiver of the command. It avoids attaching the sender of a request to its receiver, giving this way other objects the possibility of handling the request too. The objects become parts of a chain and the request is sent from one object to another across the chain until one of the objects will handle it.
Functional Requirements
Having so many design patterns to choose from when writing an application, it's hard to decide on which one to use, so here are a few situations when using the Chain of Responsibility is more effective:
www.jntuworld.com || www.jwjobs.net
More than one object can handle a command The handler is not known in advance The handler should be determined automatically Its wished that the request is addressed to a group of objects without explicitly specifying its receiver The group of objects that may handle the command must be specified in a dynamic way
ADD ON PROGRAMS
1.Development of a workflow based Complaint Management System (where the complaints are received through emails) Abstract An organizations customers may have complaints about its products. They will be given an email id for each product, where they can send an email when they have a complaint to register. The emails will get converted to complaints and get assigned to the persons handling that product. The complaints can be assigned to different persons and will get tracked to closure. The person handling the complaint will have the facility to communicate with the customer via emails through the system. Keywords Generic Technology keywords Operating Systems, Databases, Programming, Network and Middleware Specific Technology keywords Unix/Linux, Shell Scripting, C, Oracle, VB Project type keywords Analysis, Design, Implementation, User Interface Functional components of the project Every product will have an email id assigned to it. Customers, when they have a complaint about the product, will send an email to the email id provided to them for that product.
www.jntuworld.com || www.jwjobs.net
These Emails should get logged into the database and a complaint number should be generated. The customer should get an acknowledgement back saying that his/her complaint is received. Administrators will be set up for each product and he/she should see all the complaints received for that product. Groups of complaint handling executives should be set up for each product. The administrator for a product should be able to assign the complaints to specific members of the complaint handling team for that product. The complaint management team member should see the complaints assigned to him/her in his inbox. He should be able to send mail to the customer through the system with any clarification/solution or asking for more information. These subsequent communications should be stored as a part of the same complaint. The complaint should show all the communication that happened between the customer and the organization. A complaint can be closed with some pre defined statuses like: Open, Closed, Abandoned, In-progress, etc. Reference information should be maintained in the system like complaint management team for different products, mail ids for different products, default mail texts for products, default mail subjects for products, list of users, list of products etc.
www.jntuworld.com || www.jwjobs.net
Functional components of the project Following is a list of functionalities of the system. More functionalities that you find appropriate can be added to this list. And, in places where the description of a functionality is not adequate, you can make appropriate assumptions and proceed.
www.jntuworld.com || www.jwjobs.net
There are registered people in the system. Some are approvers. An approver can also be a requestor. In an organization, the hierarchy could be Engineers/Managers/Business Managers/Managing Director etc. In a college, it could be Lecturer/Professor/Head of the Department/Dean/Principal etc. A person should be able to login to the system through the first page of the application change the password after logging into the system check the availability of the stationery items. (role based) apply for new stationery request, specifying the to dates and his/her superiors email id. see his/her current stationery applications and the status of the same that are submitted to him/her for approval or cancellation. see his/her eligibility details (like how much money purchase request can be made by his or her based on role) approve/reject the stationery applications that are submitted to him/her. withdraw his/her new stationery request application (which has not been approved yet). cancel his/her stationery request application (which has been already approved). This will need to be approved by his/her Superior get help about the Stationery Management system on how to use the different features of the system
As soon as a stationery request is entered or a stationery request is cancelled /withdrawn /approved /rejectied or password-changed, an automatic email should be sent to the person and his superior giving details about the action. In case the amount of the request has exceeded the threshold, the approval mail must be sent to the superior for the same. The Manager must be able to login to the system and get the report (Simple HTML) for each stationery item and the % cost incurred for that item. Also the report giving the total cost incurred with the head count for each item and the cumulative cost associated with it.
Steps to start-off the project There are couple of alternatives to implement such a system.
www.jntuworld.com || www.jwjobs.net
A. Microsoft platform: The system is developed using Active Server Pages as the front end and SQL Server as the back end and VB as the middle layer ( Having all the business functionality). B. Microsoft platform: The system is developed using Java Server Pages as the front end and SQL Server as the back end and middle layer of pure java classes. The following steps will be helpful to start off the project. Study and be comfortable with technologies such as Active Server Pages/HTML /Java Scripting (to make it browser independent)/ Java ( Middle layer comprising of all the business logic and the DB connection and other common components) and SQL server. JSP, Java/HTML/ VB script Some links to these technologies are given in the Guidelines and References section of this document Decide on a stationery request policy (i.e., the amount of cost to be associated with the role of the employee etc). Make a database of people at different levels with their roles and form a hirearchy of them, like which role reports to which particular role. Decide on the various details of the people and their roles that would be stored in the database (like employee/registrationnumber, name, grade, location, system-login, password in cryptic form, etc) Assign a mail-admin who will create mail-ids for the people in the intranet of your lab or in the internet. These mail-ids will be used for sending automatic notifications and reports. The mail-admin will also take care of assigning the logins to the users of the stationery management system Create the front-page of the Stationery Management system giving a brief description about the system and a login box Create the help-pages of the system in the form of Q&A. This will help you also when implementing the system Create other sub-systems like automatic notification, screens for various functions (like Create, Update, Delete, cancel etc)
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.jwjobs.net
Credit Employee bank accounts electronically. Generate electronic or hard copies of pay slips. Implement back up and disaster recovery strategies. Enable users to modify income tax details as these may change frequently.
Steps to start-off the project Client Server and Electronic payment Technology Income tax laws and regulations. Requirements Hardware requirements Number Description 1 Windows Desktop PCs 2. Windows Server Software requirements Number Description 1 VB 2 MS Access 3 Crystal Reports 4 XML
Manpower requirements 2 students for 6 months working part time. Milestones and Timelines Number Milestone Name Milestone Description Timeline week number from the start of the project Remarks Comments such as the weightage of this milestone in percentage of the total project, etc 30%
Information relating to the deliverable at this milestone Complete 8th week understanding of system. Identify the different software components to be
www.jntuworld.com || www.jwjobs.net
Build and Test all the components identified. Implement the software developed
developed. Make the 10th week decision based on different parameters like economics, technology competence, risks involved etc. Document all 20th week test cases used and capture effort spent. Software 24th week should be installed at end user location and User Acceptance document should be obtained
10%
30%
30%
www.jntuworld.com || www.jwjobs.net
DESIGN PROGRAMS
www.jntuworld.com || www.jwjobs.net
An IT organization has a training department of its own. The main job of the training department is to train the fresh recruits. It has a regular calendar and schedule to train the Freshers. In addition to this it has to handle the project specific training requests coming from various departments in the organization. To handle the on-request courses the department has appointed one person as the on-request coordinator, who takes care of servicing the requests. He/she has to collect the requests from various departments. Then he/she will check in the existing fresher training calendar whether a similar course is scheduled there in the given dates. If not he/she has to schedule it looking at the availability of faculties. If none of the internal faculties are free at that time, then he/she has to take the approval of the concerned department to get a faculty from outside. A person from any department should be able to login to the system through the first page of the application using the guest login Enter the details of the course required in the form available. This form also captures the details like, name of the course, number of days, number participants, and background of the participants, dates on which the course needs to be conducted, mail id and name of the requestor. In addition, this form also takes a confirmation from the department whether it is ready to go for external faculties if none of the internal faculties are free. If a department accepts this then it has bear the cost to be paid to the external faculty. If any fresher level course with the same course contents is scheduled during the same time he/she will be shown with details of those courses He/She can opt to send his team for this course or if his/her request is very specific then he/she can submit his/her request. Withdraw his/her course request (which has not been serviced yet) Cancel his/her course request (which has been already been planned). Get help about the system on how to use the different features of the system
As soon as a course request /withdrawal /cancellation is made by the person, an automatic email should be sent to the on-request coordinator giving details about the course request The on-request coordinator has to log on to ORS using the admin id and check the list of courses which are to be serviced. Then he/she has to check the availability of faculties who can handle the specific course during the requested period. If a faculty is free during the period then he/she can be allocated to the course and a mail is sent to the faculty as well as the requestor regarding the course schedule. The status of the course is now set to
www.jntuworld.com || www.jwjobs.net
planned. Once course is delivered to the required dept then the status is set to serviced If none of the faculties are free during the period and if the department is willing, then the on-request coordinator can go ahead and arrange for external faculty. A list of all the external faculties(Vendors) is available in the database, along with their contact details, courses offered previously , the feedback got etc., the on-request coordinator can refer to this list and schedule the course after getting in touch with the vendor.
www.jntuworld.com || www.jwjobs.net
viva questions:
What is UML? UML is Unified Modeling Language. It is a graphical language for visualizing specifying constructing and documenting the artifacts of the system. It allows you to create a blue print of all the aspects of the system, before actually physically implementing the system. What is modeling? What are the advantages of creating a model? Modeling is a proven and well-accepted engineering technique which helps build a model. Model is a simplification of reality; it is a blueprint of the actual system that needs to be built. Model helps to visualize the system. Model helps to specify the structural and behavior of the system. Model helps make templates for constructing the system. Model helps document the system. What are the different views that are considered when building an object-oriented software system? Normally there are 5 views. Use Case view - This view exposes the requirements of a system. Design View - Capturing the vocabulary. Process View modeling the distribution of the systems processes and threads. Implementation view addressing the physical implementation of the system. Deployment view - focus on the modeling the components required for deploying the system. What are diagrams? Diagrams are graphical representation of a set of elements most often shown made of things and associations. What are the major three types of modeling used? Major three types of modeling are structural, behavioral, and architectural. Mention the different kinds of modeling diagrams used? Modeling diagrams that are commonly used are, there are 9 of them. Use case diagram, Class Diagram, Object Diagram, Sequence Diagram, statechart Diagram, Collaboration Diagram, Activity Diagram, Component diagram, Deployment Diagram. What is Architecture? Architecture is not only taking care of the structural and behavioral aspect of a software system but also taking into account the software usage, functionality, performance, reuse, economic and technology constraints. What is SDLC? SDLC is Software Development Life Cycle. SDLC of a system included processes that are Use case driven, Architecture centric and Iterative and Incremental. This Life cycle is divided into phases. Phase is a time span between two milestones. The milestones are Inception, Elaboration, Construction, and Transition. Process Workflows that evolve through these phase are Business Modeling, Requirement gathering, Analysis and Design, Implementation, Testing, Deployment. Supporting Workflows are Configuration and change management, Project management. What are Relationships? There are different kinds of relationships: Dependencies, Generalization, and Association. Dependencies are relations ships between two entities
www.jntuworld.com || www.jwjobs.net
that that a change in specification of one thing may affect another thing. Most commonly it is used to show that one class uses another class as an argument in the signature of the operation. Generalization is relationships specified in the class subclass scenario, it is shown when one entity inherits from other. Associations are structural relationships that are: a room has walls, Person works for a company. Aggregation is a type of association where there is a has a relation ship, That is a room has walls, o if there are two classes room and walls then the relation ship is called a association and further defined as an aggregation. How are the diagrams divided? The nine diagrams are divided into static diagrams and dynamic diagrams. Static Diagrams (Also called Structural Diagram): Class diagram, Object diagram, Component Diagram, Deployment diagram. Dynamic Diagrams (Also called Behavioral Diagrams): Use Case Diagram, Sequence Diagram, Collaboration Diagram, Activity diagram, Statechart diagram. What are Messages? A message is the specification of a communication, when a message is passed that results in action that is in turn an executable statement. What is an Use Case? A use case specifies the behavior of a system or a part of a system, se cases are used to capture the behavior that need to be developed. It involves the interaction of actors and the system.
www.jntuworld.com || www.jwjobs.net
References
Unified Modeling Language User Guide, 2nd Edition Grady Booch, James Rumbaugh, Ivar Jacobson 2005, UML Distilled: A Brief Guide to the Standard Object Modeling Language (Object Technology Series) Martin Fowler, 2003 UML 2 for Dummies Michael J. Chonoles, James A. Schardt, 2003 UML 2.0 in Action: A Project-Based Tutorial Henriette Baumann, Philippe Baumann, Patrick Grassle, 2006 Learning UML 2.0 Russell Miles, 2006 UML 2.0 Pocket Reference Dan Pilone , 2006 UML 2.0 in a Nutshell Dan Pilone, Neil Pitman, 2005 Learning UML Sinan Si Alhir, 2003
www.jntuworld.com || www.jwjobs.net
Use Cases: Requirements in Context, Second Edition Daryl Kulak, Eamon Guiney, 2003 Fast Track UML 2.0 Kendall Scott, Apress, 2004 UML 2 Toolkit Hans-Erik Eriksson, Magnus Penker, Brian Lyons, David Fado, 2003 Schaum's Outline of UML: Second Edition Simon Bennett, John Skelton, Ken Lunn,2005
www.jntuworld.com || www.jwjobs.net