Lab Name : Software Engineering Lab Lab Code : 3CS4-23 Branch : Computer Science & Engineering Year/Sem : 2ND Year /III SEM ARYA Institute of Engineering Technology & Management Department of Computer Science & Engineering (Rajasthan Technical University, Kota) 2021-2022 Priya Goyal/AIETM/CSE/3/SE LAB (3CS4-23) Page 1 INSTRUCTIONS OF LAB Do’s 1 Know the location of the fire extinguisher and the first aid box and how to use them in case of an emergency. 2. Read and understand how to carry out an activity thoroughly before coming to the laboratory. 3. Report fires or accidents to your lecturer/laboratory technician immediately. 4. Report any broken plugs or exposed electrical wires to your lecturer/laboratory technician immediately. Don’ts 1. Do not eat or drink in the laboratory. 2. Avoid stepping on electrical wires or any other computer cables. 3. Do not open the system unit casing or monitor casing particularly when the power is turned on. Some internal components hold electric voltages of up to 30000 volts, which can be fatal. 4.Do not insert metal objects such as clips, pins and needles into the computer casings. They may cause fire. 5. Do not remove anything from the computer laboratory without permission. 6. Do not touch, connect or disconnect any plug or cable without our lecturer/laboratory technician’s permission. 7. Do not misbehave in the computer laboratory. Priya Goyal/AIETM/CSE/3/SE LAB (3CS4-23) Page 2 Choose any one project and do the following exercises for that project a. Student Result Management System b. Library management system c. Inventory control system d. Accounting system e. Fast food billing system f. Bank loan system g. Blood bank system h. Railway reservation system i. Automatic teller machine j. Video library management system k. Hotel management system l. Hostel management system m. E-ticking n. Share online trading o. Hostel management system p. Resource management system q. Court case management system EXERCISE-1 Development of requirement specification, function-oriented design using SA/SD, Objectoriented design using UML, use-case design, implementation. Use of apt case tool such as configuration management tools, program analysis tools in Software life cycle. Procedure: Step 1: Introduction: Purpose Identify the product whose software requirements are specified in this document. Describe the scope of the product that is covered by this SRS, particularly if this SRS describes only part of the system or a single subsystem.Describe the different types of user that the document is intended for, such as developers, project managers, marketing staff, users, testers, and documentation writers. Describe what the rest of this SRS contains and how it is organized. Suggest a sequence for reading the document, beginning with the overview sections and proceeding through the sections that are most pertinent to each reader type. Project Scope Provide a short description of the software being specified and its purpose, including relevant benefits, objectives, and goals. Relate the software to corporate goals or business strategies. If a separate vision and scope document is available, refer to it rather than duplicating its contents here. An SRS that specifies the next release of an evolving product should contain its own scope statement as a subset of the long-term strategic product vision. Step 2: Overall Description Product Perspective Describe the context and origin of the product being specified in this SRS. For example, state whether this product is a follow-on member of a product family, a replacement for certain existing systems, or a new, self-contained product. If the SRS defines a component of a larger system, relate the requirements of the larger system to the functionality of this software and identify interfaces between the two. A simple diagram that shows the major components of the overall system, subsystem interconnections, and external interfaces can be helpful. Product Features Summarize the major features the product contains or the significant functions that it performs or lets the user perform. Only a high level summary is needed here. Organize the functions to make them understandable to any reader of the SRS. A picture of the major groups of related requirements and how they relate, such as a top level data flow diagram or a class diagram, is often effective. User Classes and Characteristics Identify the various user classes that you anticipate will use this product. User classes may be differentiated based on frequency of use, subset of product functions used, technical expertise, security or privilege levels, educational level, or experience. Describe the pertinent characteristics of each user class. Certain requirements may pertain only to certain user classes. Distinguish the favored user classes from those who are less important to satisfy. Operating Environment Describe the environment in which the software will operate, including the hardware platform, operating system and versions, and any other software components or applications with which it must peacefully coexist. Design and Implementation Constraints Describe any items or issues that will limit the options available to the developers. These might include: corporate or regulatory policies; hardware limitations (timing requirements, memory requirements); interfaces to other applications; specific technologies, tools, and databases to be used; parallel operations; language requirements; communications protocols; security considerations; design conventions or programming standards (for example, if the customer’s organization will be responsible for maintaining the delivered software). Step 3: System Features This template illustrates organizing the functional requirements for the product by system features, the major services provided by the product. You may prefer to organize this section by use case, mode of operation, user class, object class, functional hierarchy, or combinations of these, whatever makes the most logical sense for your product. System Feature 1 Don’t really say “System Feature 1.” State the feature name in just a few words. 1 Description and Priority Provide a short description of the feature and indicate whether it is of High, Medium, or Low priority. You could also include specific priority component ratings, such as benefit, penalty, cost, and risk (each rated on a relative scale from a low of 1 to a high of 9). 2 Stimulus/Response Sequences List the sequences of user actions and system responses that stimulate the behavior defined for this feature. These will correspond to the dialog elements associated with use cases. 3 Functional Requirements Itemize the detailed functional requirements associated with this feature. These are the software capabilities that must be present in order for the user to carry out the services provided by the feature, or to execute the use case. Include how the product should respond to anticipated error conditions or invalid inputs. Requirements should be concise, complete, unambiguous, verifiable, and necessary. <Each requirement should be uniquely identified with a sequence number or a meaningful tag of some kind.> REQ-1: REQ-2: Step 4: External Interface Requirements User Interfaces Describe the logical characteristics of each interface between the software product and the users. This may include sample screen images, any GUI standards or product family style guides that are to be followed, screen layout constraints, standard buttons and functions (e.g., help) that will appear on every screen, keyboard shortcuts, error message display standards, and so on. Define the software components for which a user interface is needed. Details of the user interface design should be documented in a separate user interface specification. Hardware Interfaces Describe the logical and physical characteristics of each interface between the software product and the hardware components of the system. This may include the supported device types, the nature of the data and control interactions between the software and the hardware, and communication protocols to be used. Software Interfaces Describe the connections between this product and other specific software components (name and version), including databases, operating systems, tools, libraries, and integrated commercial components. Identify the data items or messages coming into the system and going out and describe the purpose of each. Describe the services needed and the nature of communications. Refer to documents that describe detailed application programming interface protocols. Identify data that will be shared across software components. If the data sharing mechanism must be implemented in a specific way (for example, use of a global data area in a multitasking operating system), specify this as an implementation constraint. Communications Interfaces Describe the requirements associated with any communications functions required by this product, including e-mail, web browser, network server communications protocols, electronic forms, and so on. Define any pertinent message formatting. Identify any communication standards that will be used, such as FTP or HTTP. Specify any communication security or encryption issues, data transfer rates, and synchronization mechanisms. Nonfunctional Requirements Performance Requirements If there are performance requirements for the product under various circumstances, state them here and explain their rationale, to help the developers understand the intent and make suitable design choices. Specify the timing relationships for real time systems. Make such requirements as specific as possible. You may need to state performance requirements for individual functional requirements or features. Safety Requirements Specify those requirements that are concerned with possible loss, damage, or harm that could result from the use of the product. Define any safeguards or actions that must be taken, as well as actions that must be prevented. Refer to any external policies or regulations that state safety issues that affect the product’s design or use. Define any safety certifications that must be satisfied. Security Requirements Specify any requirements regarding security or privacy issues surrounding use of the product or protection of the data used or created by the product. Define any user identity authentication requirements. Refer to any external policies or regulations containing security issues that affect the product. Define any security or privacy certifications that must be satisfied. Software Quality Attributes Specify any additional quality characteristics for the product that will be important to either the customers or the developers. Some to consider are: adaptability, availability, correctness, flexibility, interoperability, maintainability, portability, reliability, reusability, robustness, testability, and usability. Write these to be specific, quantitative, and verifiable when possible. At the least, clarify the relative preferences for various attributes, such as ease of use over ease of learning. Other Requirements Define any other requirements not covered elsewhere in the SRS. This might include database requirements, internationalization requirements, legal requirements, reuse objectives for the project, and so on. Add any new sections that are pertinent to the project. Exercise-2 Objective- Develop Software Requirement Specification (SRS) for a given problem in IEEE template. An SRS is basically an organization's understanding (in writing) of a customer or potential client's system requirements and dependencies at a particular point in time (usually) prior to any actual design or development work. It's a two-way insurance policy that assures that both the client and the organization understand the other's requirements from that perspective at a given point in time. The basic issues that the SRS shall address are the following: a) Functionality. What is the software supposed to do? b) External interfaces. How does the software interact with people, the system‘s hardware, other hardware, and other software? c) Performance. What is the speed, availability, response time, recovery time of various software functions, etc.? d) Attributes. What are the portability, correctness, maintainability, security, etc. considerations? e) Design constraints imposed on an implementation. Are there any required standards in effect, implementation language, policies for database integrity, resource limits, operating environment(s) etc.? Chracteristics of a good SRS An SRS should be a) Correct b) Unambiguous c) Complete d) Consistent e) Ranked for importance and/or stability f) Verifiable g) Modifiable h) Traceable SAMPLE SRS SOFTWARE REQUIREMENTS SPECIFICATION ATM Version 1.0 September 8, 2006 AN AUTOMATED TELLER MACHINE Table of Contents 1. Introduction The software ATMExcl 3.0TM version1.0 is to be developed for Automated Teller Machines (ATM). An automated teller machine (ATM) is computerized telecommunications device that provides a financial institution's customers a secure method of performing financial transactions, in a public space without the need for a human bank teller. Through ATMExcl 3.0TM ,customers interact with a user-friendly interface that enables them to access their bank accounts and perform various transactions. 1.1 Purpose This SRS defines External Interface, Performance and Software System Attributes requirements of ATMExcl 3.0TM. This document is intended for the following group of people:- ✓ ✓ ✓ ✓ Developers for the purpose of maintenance and new releases of the software. Management of the bank. Documentation writers. Testers. 1.2 Scope This document applies to Automated Teller Machine software ATM 3.0TM. This software facilitates the user to perform various transaction in his account without going to bank. This software offers benefits such cash withdrawals, balance transfers, deposits, inquiries, credit card advances and other banking related operations for customers. It also allows the administrator to fix the tariffs and rules as and when required. The software takes as input the login Id and tha bank account number of the user for login purposes. The outputs then comprise of an interactive display that lets the user select the desirable function that he wants to perform.. The software is expected to complete in duration of six months and the estimated cost is Rs18 lakhs. 1.3 Definitions, Acronyms, and Abbreviations. AC Alternate Current AIMS ATM Information Management System. ATM An unattended electronic machine in a public place, connected to a data system and related equipment and activated by a bank customer to obtain cash withdrawals and other banking services. Braille A system of writing and printing for blind or visually impaired people, in which varied arrangements of raised dots representing letters and numerals are identified by touch. Bank Management Software developed by KPM Bank. BMS CDMA CMS Code Division Multiple Access, a reliable data communication protocol. Card Management Software developed by KPM Bank. DES Data Encryption Standard. Dial-Up POS A message format for low cost communications. Electronic Journals Internet For easier, safer information storage, related to modem. MB An interconnected system of networks that connects computers around the world via the TCP/IP protocol. Mega Bytes ms Milliseconds. sec Seconds Smart Card Card without hardware which stores the user‘s private keys within a tamper proof software guard. Software Requirements Specification. SRS Tactile keyboard TCP/IP Special keyboard designed to aid the visually impaired. V Volts VGA Video Graphics Adaptor is a display standard. Transmission Control Protocol/Internet Protocol. 1.4 References The references for the above software are as follows:- i. www.google.co.in ii. www.winkipedia.com iii. IEEE. Software Requirements Specification Std. 830-1993. iv. Chevy Chase Bank, UMBC Branch. v. Online. Russell C. Bjork Requirements Statement for Example ATM System. URL: http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/ 1.5 Overview Section 1.0 discusses the purpose and scope of the software. Section 2.0 describes the overall functionalities and constraints of the software and user characteristics. Section 3.0 details all the requirements needed to design the software. 2. The Overall Description 2.1 Product Perspective ✓ ✓ ✓ ✓ ✓ ✓ ✓ The ATM is a single functional unit consisting of various sub-components. This software allows the user to access their bank accounts remotely through an ATM without any aid of human bank teller. This software also allows the perform various other functions apart from just accessing his bank account such as mobile bill clearings etc. Some of its hardware components are cassettes, memory, drives, dispensers i.e. for receipts and cash, a card reader, printer, switches, a console, a telephone dialer port, a networking port and disks. The ATM communicates with the bank‘s central server through a dial-up communication link. The Memory of the system shall be 20MB. The Cassette capacity shall be at least 2000 notes. 2.2 Product Functions The major functions that ATMExcl 3.0TM performs are described as follows:- ✓ Language Selection:- After the user has logged in, the display provides him with a list of languages from which he can select any one in order to interact with the machine throughout that session. After the language selection the user is prompted with an option that whether he wants the selected language to be fixed for future use so that he is not offered with the language selection menu in future thus making the transaction a bit faster. User also has the freedom to switch to a different language mentioned in the list in between that session. ✓ Account Maintenance:- The various functions that a user can perform with his account are as follows:▪ Account Type:-The user has the freedom to select his account type to which all the transactions are made, i.e. he can select whether the account is current account or savings account etc. ▪ Withdrawal/Deposit: The software allows the user to select the kind of operation to be performed i.e. whether he wants to withdraw or deposit the money. ▪ Amount:- The amount to be withdrawan or deposited is then mentioned by the user. ▪ Denominations:- The user is also provided with the facility to mention the required denominations. Once he enters his requirements the machine goes through its calculations on the basis of current resources to check whether it is possible or not. If yes, the amount is given to the user otherwise other possible alternatives are displayed. ▪ Money Deposition:- Money deposition shall be done with an envelope. After typing the amount to be deposited and verification of the same, the customer must insert the envelope in the depositary. ▪ Balance Transfer:- Balance transfer shall be facilitated between any two accounts linked to the card for example saving and checking account. ▪ Balance Enquiry:- Balance enquiry for any account linked to the card shall be facilitated. ✓ Billing:- Any transaction shall be recorded in the form of a receipt and the same would be dispensed to the customer. The billing procedures are handled by the billing module that enable user to choose whether he wants the printed statement of the transaction or just the updation in his account. ✓ Cancelling:- The customer shall abort a transaction with the press of a Cancel key. For example on entering a wrong depositing amount. In addition the user can also cancel the entire session by pressing the abort key and can start a fresh session all over again. ✓ Map locating other machines:- The machine also has a facility of displaying the map that marks the locations of other ATM machines of the same bank in the entire city. ✓ Mobile Bills Clearings:- The machine also allows the user to clear off his pending mobile bills there only, if the name of his operator is mentioned there in the list. The machine displays the list of the companies supported by that bank to the user. 2.3 User Characteristics There are different kind of users that will be interacting with the system. The intended user of the software are as follows:- ✓ User A: A novice ATM customer. This user has little or no experience with electronic means of account management and is not a frequent user of the product. User A will find the product easy to use due to simple explanatory screens for each ATM function. He is also assisted by an intarctive teaching mechanism at every atep of the transaction, both with the help of visual and audio help sessions. ✓ User B: An experienced customer. This user has used an ATM on several occasions before and does most of his account management through the ATM. There is only a little help session that too at the beginning of the session thus making the transaction procedure more faster. ✓ Maintenance Personnel: A bank employee. This user is familiar with the functioning of the ATM. This user is in charge of storing cash into the ATM vault and repairing the ATM in case of malfunction. This user is presented with a different display when he logs in with the admninistrator‘s password and is provided with options different from that of normal user. He has the authority to change or restrict various features provided by the software in situations of repairing. 2.4 Constraints The major constraints that the project has are as follows:✓ The ATM must service at most one person at a time. ✓ The number of invalid pin entries attempted must not exceed three. After three unsuccessful login attempts, the card is seized/blocked and need to be unlocked by the bank. ✓ The simultaneous access to an account through both, the ATM and the bank is not supported. ✓ The minimum amount of money a user can withdraw is Rs 100/- and the maximum amount of money a user can withdraw in a session is Rs.10,000/- and the maximum amount he can withdraw in a day is Rs 20,000/✓ Before the transaction is carried out, a check is performed by the machine to ensure that a minimum amount of Rs 1000/- is left in the user‘s account after the withdrawal failing which the withdrawal is denied. ✓ The minimum amount a user can deposit is Rs 100/- and the maximum amount he can deposit is Rs 10,000/-. ✓ A user can select only that cellular operator for mobile bill clearings that is supported by the bank. ✓ The software requires a minimum memory of 20GB ✓ The databse used should be Oracle7.0. ✓ There shall be a printer installed with the machine to provide the user with the printed statement of the transaction. ✓ For voice interactions, speakers should also be there to accompany the machine. 2.5 Assumptions and Dependencies The requirements stated in the SRS could be affected by the following factors: • One major dependency that the project might face is the changes that need to be incorporated with the changes in the bank policies regarding different services. As the policies changes the system needs to be updated with the same immediately. A delay in • • • doing the same will result to tremendous loss to the bank. So this should be changed as and when required by the developer. Another constraint relating to the operating environment is that we are specific to Oracle Database. The project could be largely affected if some amount is withdrawn from the user‘s account from the bank at the same time when someone is accessing that account through the ATM machine. Such a condition shall be taken care of. At this stage no quantitive measures are imposed on the software in terms of speed and memory although it is implied that all functions will be optimized with respect to speed and memory. It is furthermore assumed that the scope of the package will increase considerably in the future. 3. External Interface Requirements 3.1.1 User Interface Requirements The interface provided to the user should be a very user-friendly one and it should provide an optional interactive help for each of the service listed. The interface provided is a menu driven one and the following screens will be provided:- 1. 2. 3. 4. 5. 6. 7. 8. A login screen is provided in the beginning for entering the required username/pin no. and account number. An unsuccessful login leads to a reattempt(maximum three) screen for again entering the same information. The successful login leads to a screen displaying a list of supported languagesfrom which a user can select any one. In case of administrator, a screen will be shown having optins to reboot system, shut down system, block system, disable any service. In case of reboot/ shut down, a screen is displayed to confirm the user‘s will to reboot and also allow the user to take any backup if needed. In case of blocking system, a screen is provided asking for the card no. By entering the carnd no of a particular user, system accees can be blocked for him. Administrator is also provided with a screen that enables him to block any service provided to the user by enterin the name of the service or by selecting it from the list displayed. After the login, a screen with a number of options is then shown to the user. It contains all the options along with their brief description to enable the user to understand their functioning and select the proper option. A screen will be provided for user to check his account balance. 9. A screen will be provided that displays the location of all other ATMs of same bank elsewhere in the city. 10. A screen will be provided for the user to perform various transactions in his account. The following reports will be generated after each session dealt with in the machine:1. The login time and logout time along with the user‘s pin no and account number is registered in the bank‘s database. 2. The ATM‘s branch ID through which the session is established is also noted down in the bank‘s database. 3. Various changes in the user‘s account after the transactions,if any, are reported in the database. 4. A printed statement is generated for the user displaying all the transactions he performed. Other various user interface requirements that need to be fulfilled are as follows:❑ The display screen shall be of 10" VGA color type. ❑ The display screen shall have 256 color resolution. ❑ The display screen shall also support touchscreen facility. ❑ The speakers shall support Yamaha codecs. ❑ The keypad shall consist of 16 tactile keys. ❑ There shall be 8 tactile function keys. ❑ The keyboard will be weather resistant. ❑ The transaction receipt shall be 3.1" × 6". ❑ The statement receipt shall be 4.2" × 12". ❑ The deposit envelopes shall be 9" long and 4" wide. 3.1.2 Hardware Interface Requirements There are various hardware components with which the machine is required to interact. Various hardware interface requirements that need to be fulfilled for successful functioning of the software are as follows:❑ The ATM power supply shall have a 10/220 V AC manual switch. ❑ The ATM card should have the following physical dimensions:- o Width - 85.47mm-85.72mm o Height - 53.92mm-54.03mm o Thickness ❑ ❑ ❑ - 0.76mm+0.08mm The card reader shall be a magnetic stripe reader ❑ The card reader shall have Smart card option. The slot for a card in thye card reader may include an extra indentation for the embossed area of the card. In effect it acts as a polarization key and may be used to aid the correct insertion orientation of the card. This is an additional characteristic to the magnetic field sensor which operates off the magnetic stripe and is used to open a mechanical gate on devices such as ATMs. There shall be a 40 column dot matrix receipt printer. ❑ ❑ ❑ ❑ ❑ There shall be a 40 column dot matrix statement printer. The receipt dispenser shall be a maximum of 4" width and 0.5" thickness. The statement dispenser shall be a maximum of 5" width and 0.5" thickness. The envelope depository shall be a maximum of 4.5" width, 10" length and 0.5" thickness. Screen resolution of at least 800X600-required for proper and complete viewing of screens. Higher resolution would not be a problem. 3.1.3 Software Interface Requirements In order to perform various different functions, this software needs to interact with various other softwares. So there are certain software interface requirements that need to be fulfilled which are listed as follows:❑ The transaction management software used to manage the transaction and keep track of resources shall be BMS version 2.0. ❑ The card management software used to verify pin no and login shall be CMS version 3.0. ❑ Yamaha codecs 367/98 for active speakers. ❑ The database used to keep record of user accounts shall be Oracle version7.0. 3.1.4 Communication Interface Requirements The machine needs to communicate with the main branch for each session for various functions such as login verification, account access etc. so the following are the various communication interface requirements that are needed to be fulfilled in order to run the software successfully:❑ The system will employ dial-up POS with the central server for low cost communication. ❑ The communication protocol used shall be TCP/IP. ❑ Protocol used for data transfer shall be File Transfer Protocol.(FTP) 4. System Features 1. Remote Banking and Account Management Description The system is designed to provide the user with the facility of remote banking and perform various other functions at an interface without any aid of human bank teller. The functioning of the system shall be as follows:At the start, the user is provided with a log in screen and he is required to enter his PIN NO. and Account details which are then verified by the machine. In case of an unsuccessful attempt a user is asked again for his credentials but the maximum number of attempt given to the user is limited to 3 only, failing which his card is blocked and need to be unblocked by the bank for any future use. After a successful log in, the user is presented with a list of language. The user can select any one in the list for interaction with the machine for the entire session. After the language selection the user is also asked whether he wants to fix that language for future use also so that he is never asked for language in future. In addition there is also a facility for the user to switch to any other language during that session. After the language selection, the user is directed towards a main page that displays a set of options/services along with their brief description, enabling the user to understand their functioning. The user can select any of the listed option and can continue with the transaction. The machine also provides the user with a number of miscellaneous services such as: The machine lists a set of operators that are supported by the bank. A user can clear off his pending mobile phone bills be selecting his operator. The machine also has the facility to display a map that marks the location of other ATMs of the same bank in the city. This may help the user to look for the ATM nearest to his destination. At any moment if the user wants to abort the transaction, he is provided with an option to cancel it. Just by pressing the abort button he can cancel all the changes made so far and can begin with a new transaction. After the user is finished with his work, for security purpose, he is required to log out and then take his card out of the slot. Validity Checks In order to gain access to the system, the user is required to enter his/her correct user id/pin no and account no failing which his card may be blocked. The user can access only one account at a time and can enter only one account no. Also if the user is an administrator, he is required to enter his login id in order to access and change the facilities provided by the system. Sequencing Information The information about the users and their account should be entered into the database prior to any of the transactions and the backup be maintained for all account information Error Handling/ Response to Abnormal Situations If any of the above validation/sequencing flow does not hold true, appropriate error messages will be prompted to the user for doing the needful. 2. Receipt Generation After ech transaction user has performed, a receipt is generated that contains all the information about the transaction. The format of the generated receipt is as shown below:- KPM BANK Branch name/Id (address) Login Time:- Date:- Account No:User Name:TRANSACTIONS: FROM Logout Time:- TO TYPE BARCODE Thank You For your visit. See you soon. AMOUNT 5. Other Nonfunctional Requirements 5.1 Performance Requirements The following list provides a brief summary of the performance requirements for the software: 5.1.1 Capacity ❑ The ATM shall provide customers a 24 hour service. 5.1.2 Dynamic requirements ❑ The card verification time must not exceed 0.8 sec. under normal server workload and 1 sec. under peak server workload. ❑ The pin number verification time must not exceed 0.3 sec. under normal server workload and 0.5 sec. under peak server workload. ❑ Account balance display time must not exceed 2 sec. under normal server workload and 3 sec. under peak server workload. ❑ Account balance transfer time must not exceed 3 sec. under normal server workload and 4 sec. under peak server workload. ❑ Cash withdrawal transaction time must not exceed 4 sec. under normal server workload and 5 sec. under peak server workload. ❑ Deposit transaction time after insertion of the deposit envelope must not exceed 5 sec. under normal server workload and 6 sec. under peak server workload. ❑ Receipt printing time after must not exceed 3 sec. under normal server and peak server workload. ❑ Touch screen and button response time must not exceed 5000ms. ❑ Credit card advance time must not exceed 6 sec. under normal traffic and server and peak traffic and server workload. 5.1.3 Quality – The primary objective is to produce quality software. As the quality of a piece of software is difficult to measure quantitatively, the following guidelines will be used when judging the quality of the software: 1. Consistency – All code will be consistent with respect to the style. (This is implied when adhering to the standard). 2. Test cases – All functionality will be thoroughly tested 5.2 Software System Attributes 5.2.1 Reliability ❑ The data communication protocol shall be such that it ensures reliability and quality of data and voice transmission in a mobile environment. For example, CDMA. ❑ The memory system shall be of non-volatile type. 5.2.2 Availability ❑ The product will have a backup power supply incase of power failures. ❑ Any abnormal operations shall result in the shutting down of the system. ❑ After abnormal shutdown of the ATM, the system shall have to be manually restarted by a maintenance personnel. ❑ There should be no inconsistency introduced in the account during whose transaction the system is abnormally shut down. 5.2.3 Security ❑ The system shall be compatible with AIMS security standards. ❑ The system shall have two levels of security i.e. ATM card and pin verification both authenticated by the CMS software. ❑ The Encryption standard used during pin transmission shall be triple DES. ❑ The password shall be 6-14 characters long. ❑ Passwords shall not contain name of customers as they are easy to be hacked. ❑ Passwords can contain digit, hyphen and underscore. ❑ User should be provided with only three attempts for login failing which his card needs to be blocked. ❑ There shall be a security camera installed near the ATM. ❑ There shall be a secured cash vault with a combination locking system. ❑ The product cabinet cover shall be manufactured using Fiber glass for security purposes. 5.2.4 Maintainability ❑ The system components i.e. modem, memory, disk, drives shall be easily serviceable without requiring access to the vault. ❑ The system should have the mechanism of self-monitoring periodically in order to detect any fault. ❑ The system should inform the main branch automatically as soon as it detects any error. The kind of fault and the problem being encountered should also be mentioned by the system automatically. 5.3 Business Rules The business rules for the software are as follows: • • • • • • 6 The Administrator has the authority to fix the rules and regulations and to set or update the policies as and when required. The staff at the bank performs the following: a. Making the entries in the system regarding all the details of the bank account of the user. b. Keeping the bank account of the user updated as soon as changes are encountered so that the data is in consistent state. c. Blocking or seizing of the account of user on discovery of any illegal transaction. d. Unblocking of ATM card that got blocked due to more than three unsuccessful login attempt. e. Blocking of a lost/stolen ATM card on complaint of the user, only if he presents his verification and a FIR filed for that case. f. Costantly monitor all the ATMs in the city to check whether any one of them is encountering any fault. g. Immediately correct any fault discovered in any of the ATM. h. Maintain the backup of all the accounts for reliability purposes. i. Rollback all the changes made in an account during whose transaction an ATM got abnormal shutdown. In case of loss of the ATM card. The user has to lodge a First Investigation Report(FIR) and present its one copy to bank officials for card blocking purposes. A log of the following annexures is generated by the system: User bank account details. Updations made in the user account along with date, time and the changes made. Schedule of fixed assets. Other Requirements None. Appendix A: Glossary AIMS ATM - ATM Information Management System. An unattended electronic machine in a public place, connected to a data system and related equipment and activated by a bank customer to obtain cash withdrawals and other banking services Braille - A system of writing and printing for blind or visually impaired people, in which varied arrangements of raised dots representing letters and numerals are identified by touch. CDMA - Code Division Multiple Access, a reliable data communication protocol. CMS - Card Management Software developed by KPM Bank. Dial-Up - A message format for low cost communications. POS Internet - Card without hardware which stores the user‘s private keys within a tamper proof software guard. Smart Card Tactile Keyboard TCP/IP An interconnected system of networks that connects computers around the world via the TCP/IP protocol. Special keyboard designed to aid the visually impaired. - Transmission Control Protocol/Internet Protocol. Exercise No. 3 AIM : Develop DFD model (level-0, level-1 DFD and Data dictionary) of the project. OVERALL DESCRIPTION : Data analysis attempts to answer four specific questions: • What processes make up a system? • What data are used in each process? • What data are stored? • What data enter and leave the system? Data drive business activities and can trigger events (e.g. new sales order data) or be processed to provide information about the activity. Data flow analysis, as the name suggests, follows the flow of data through business processes and determines how organisation objectives are accomplished. In the course of handling transactions and completing tasks, data are input, processed, stored, retrieved, used, changed and output. Data flow analysis studies the use of data in each activity and documents the findings in data flow diagrams, graphically showing the relation between processes and data. Physical and Logical DFDs There are two types of data flow diagrams, namely physical data flow diagrams and logical data flow diagrams and it is important to distinguish clearly between the two: Physical Data Flow Diagrams An implementation-dependent view of the current system, showing what tasks are carried out and how they are performed. Physical characteristics can include: Names of people Form and document names or numbers Master and transaction files Equipment and devices used Logical Data Flow Diagrams An implementation-independent view of the a system, focusing on the flow of data between processes without regard for the specific devices, storage locations or people in the system. The physical characteristics listed above for physical data flow diagrams will not be specified. ORDERS CUSTOMERS INVOICES Fig. A typical DFD Data Flow Diagram (DFD) The DFD (also known as a bubble chart) is a hierarchical graphical model of a system that shows the different processing activities or functions that the system performs and the data interchange among these functions. Each function is considered as a processing station (or process) that consumes some input data and produces some output data. The system is represented in terms of the input data to the system, various processing carried out on these data, and the output data generated by the system. A DFD model uses a very limited number of primitive symbols [as shown in fig. 5.1(a)] to represent the functions performed by a system and the data flow among these functions. Symbols used for designing DFDs Here, two examples of data flow that describe input and validation of data are considered. In Fig. 5.1(b), the two processes are directly connected by a data flow. This means that the ‘validate-number’ process can start only after the ‘read-number’ process had supplied data to it. However in Fig 5.1(c), the two processes are connected through a data store. Hence, the operations of the two bubbles are independent. The first one is termed ‘synchronous’ and the second one ‘asynchronous’. Importance of DFDs in a good software design The main reason why the DFD technique is so popular is probably because of the fact that DFD is a very simple formalism – it is simple to understand and use. Starting with a set of highlevel functions that a system performs, a DFD model hierarchically represents various subfunctions. In fact, any hierarchical model is simple to understand. Human mind is such that it can easily understand any hierarchical model of a system – because in a hierarchical model, starting with a very simple and abstract model of a system, different details of the system are slowly introduced through different hierarchies. The data flow diagramming technique also follows a very simple set of intuitive concepts and rules. DFD is an elegant modeling technique that turns out to be useful not only to represent the results of structured analysis of a software problem, but also for several other applications such as showing the flow of documents or items in an organization. Data dictionary A data dictionary lists all data items appearing in the DFD model of a system. The data items listed include all data flows and the contents of all data stores appearing on the DFDs in the DFD model of a system. A data dictionary lists the purpose of all data items and the definition of all composite data items in terms of their component data items. For example, a data dictionary entry may represent that the data grossPay consists of the components regularPay and overtimePay. Viva-Voce Q1. What is DFD. Answer- A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information system, modelling its process aspects. A DFD is often used as a preliminary step to create an overview of the system without going into great detail, which can later be elaborated. Q2. What Is Level-0 DFD? Answer: Highest abstraction level DFD is known as Level 0 DFD also called a context level DFD, which depicts the entire information system as one diagram concealing all the underlying details. Q3. Briefly Define Top-down and Bottom-up Design Model. Answer : Top-down model starts with generalized view of system and decomposes it to more specific ones, whereas bottom-up model starts with most specific and basic components first and keeps composing the components to get higher level of abstraction. Q4. What Are Various Phases of Sdlc? Answer: The generic phases of SDLC are: Requirement Gathering, System Analysis and Design, Coding, Testing and implementation. The phases depend upon the model we choose to develop software. Q5- What is a Level 2 data flow diagram? Answer- A level 2 data flow diagram (DFD) offers a more detailed look at the processes that make up an information system than a level 1 DFD does. It can be used to plan or record the specific makeup of a system. You can then input the particulars of your own system. Q6- What Arrow represents in DFD? Answer: Arrows represent how the data flows. Use the type of data that is moving through the system as the name for the arrow. Q8- How many level in DFD? Answer- there are three level in DFD 1) 0 level 2) 1 level 3) 2 level Q9- What Is Data Dictionary? Answer : Data dictionary is referred to as meta-data. Meaning, it is a repository of data about data. Data dictionary is used to organize the names and their references used in system such as objects and files along with their naming conventions. Q10- Give an Example of a DFD level 0 Answer- Exercise No.4 Develop Structured design for the DFD model developed. A DFD model of a system graphically depicts the transformation of the data input to the system to the final result through a hierarchy of levels. A DFD starts with the most abstract definition of the system (lowest level) and at each higher level DFD, more details are successively introduced. To develop a higher-level DFD model, processes are decomposed input data to these functions and the data output by these functions and represent them appropriately in the diagram. If a system has more than 7 high- level functional requirements, then some of the related requirements have to be combined and represented in the form of a bubble in the level 1 DFD. Such a bubble can be split in the lower DFD levels. If a system has less than three high-level functional requirements, then some of them need to be split into their subfunctions so that we have roughly about 5 to 7 bubbles on the diagram. Decomposition:Each bubble in the DFD represents a function performed by the system. The bubbles are decomposed into sub-functions at the successive levels of the DFD. Decomposition of a bubble is also known as factoring or exploding a bubble. Each bubble at any level of DFD is usually decomposed to anything between 3 to 7 bubbles. Too few bubbles at any level make that level superfluous. For example, if a bubble is decomposed to just one bubble or two bubbles, then this decomposition becomes redundant. Also, too many bubbles, i.e. more than 7 bubbles at any level of a DFD makes the DFD model hard to understand. Decomposition of a bubble should be carried on until a level is reached at which the function of the bubble can be described using a simple algorithm. Numbering of Bubbles:It is necessary to number the different bubbles occurring in the DFD. These numbers help in uniquely identifying any bubble in the DFD by its bubble number. The bubble at the context level is usually assigned the number 0 to indicate that it is the 0 level DFD. Bubbles at level 1 are numbered, 0.1, 0.2, 0.3, etc, etc. When a bubble numbered x is decomposed, its children bubble are numbered x.1, x.2, x.3, etc. In this numbering scheme, by looking at the number of a bubble we can unambiguously determine its level, its ancestors, and its successors. Example:A supermarket needs to develop the following software to encourage regular customers. For this, the customer needs to supply his/her residence address, telephone number, and the driving license number. Each customer who registers for this scheme is assigned a unique customer number (CN) by the computer. A customer can present his CN to the check out staff when he makes any purchase. In this case, the value of his purchase is credited against his CN. At the end of each year, the supermarket intends to award surprise gifts to 10 customers who make the highest total purchase over the year. Also, it intends to award a 22 caret gold coin to every customer whose purchase exceeded Rs.10,000. The entries against the CN are the reset on the day of every year after the prize winners’ lists are generated. EXERCISE NO-5 Aim: Develop all structure UML diagram of given project. Hardware Requirements: Pentium 4 processor (2.4 GHz), 128 Mb RAM, Standard keyboard n mouse, coloured monitor. Software Requirements: Rational Rose, Windows XP, Theory: According to the UML specification a use case diagram is ―a diagram that shows the relationships among actors and use cases within a system.‖ Use case diagrams are often used to: Provide an overview of all or part of the usage requirements for a system or organization in the form of an essential model or a business model • • Communicate the scope of a development project Model your analysis of your usage requirements in the form of a system use case model Use case models should be developed from the point of view of your project stakeholders and not from the (often technical) point of view of developers. There are guidelines for: Use Cases Actors Relationships System Boundary Boxes 1. Use Cases A use case describes a sequence of actions that provide a measurable value to an actor. A use case is drawn as a horizontal ellipse on a UML use case diagram. 1. 2. 3. 4. 2. Use Case Names Begin With a Strong Verb Name Use Cases Using Domain Terminology Place Your Primary Use Cases In The Top-Left Corner Of The Diagram Imply Timing Considerations By Stacking Use Cases. Actors An actor is a person, organization, or external system that plays a role in one or more interactions with your system (actors are typically drawn as stick figures on UML Use Case diagrams). 1. 2. 3. 4. 5. 6. 7. 8. 3. Place Your Primary Actor(S) In The Top-Left Corner Of The Diagram Draw Actors To The Outside Of A Use Case Diagram Name Actors With Singular, Business-Relevant Nouns Associate Each Actor With One Or More Use Cases Actors Model Roles, Not Positions Use <<system>> to Indicate System Actors Actors Don‘t Interact With One Another Introduce an Actor Called ―Time‖ to Initiate Scheduled Events Relationships There are several types of relationships that may appear on a use case diagram: • • • • An association between an actor and a use case An association between two use cases A generalization between two actors A generalization between two use cases Associations are depicted as lines connecting two modeling elements with an optional openheaded arrowhead on one end of the line indicating the direction of the initial invocation of the relationship. Generalizations are depicted as a close-headed arrow with the arrow pointing towards the more general modeling element. 1. Indicate An Association Between An Actor And A Use Case If The Actor Appears Within The Use Case Logic 2. Avoid Arrowheads On Actor-Use Case Relationships 3. Apply <<include>> When You Know Exactly When To Invoke The Use Case 4. Apply <<extend>> When A Use Case May Be Invoked Across Several Use Case Steps 5. Introduce <<extend>> associations sparingly 6. Generalize Use Cases When a Single Condition Results In Significantly New Business Logic 7. Do Not Apply <<uses>>, <<includes>>, or <<extends>> 8. Avoid More Than Two Levels Of Use Case Associations 9. Place An Included Use Case To The Right Of The Invoking Use Case 10. Place An Extending Use Case Below The Parent Use Case 11. Apply the ―Is Like‖ Rule to Use Case Generalization 12. Place an Inheriting Use Case Below The Base Use Case 13. Apply the ―Is Like‖ Rule to Actor Inheritance 14. Place an Inheriting Actor Below the Parent Actor 4. System Boundary Boxes The rectangle around the use cases is called the system boundary box and as the name suggests it indicates the scope of your system – the use cases inside the rectangle represent the functionality that you intend to implement. 1. Indicate Release Scope with a System Boundary Box. 2. Avoid Meaningless System Boundary Boxes. Creating Use Case Diagrams we start by identifying as many actors as possible. You should ask how the actors interact with the system to identify an initial set of use cases. Then, on the diagram, you connect the actors with the use cases with which they are involved. If actor supplies information, initiates the use case, or receives any information as a result of the use case, then there should be an association between them. Procedure (for rational rose): • Click on the File menu and select New. Now from the Dialogue Box that appears ,select the language which you want to use for creating your model. In the left hand side window of Rational Rose right click on ―Use Case view‖ and select New>Use Case Diagram. Enter the name of new Use Case file in the space provided,and then click on that file name. • You can now use the window that appears on right hand side to draw your Use Case diagram using the buttons provided on the vertical toolbar. Conclusion: The use case diagram was made successfully by following the steps described above. Some Sample Use Case Diagrams are given below for illustration purpose: Authentication User/BT Searching Data Transfer Administrator Mobility Management Signalling Management Software Updation Use Case Diagram for Bluetooth Software Cancellation of Boo ked Hall Booking login Employee Enquiry Report Resources Update Use Case Diagram for Resource Management Administrator Viva-voice Question 1.What Is Uml? Answer: • • • UML is Unified Modeling Language. Graphical language for visualizing artifacts of the system. Allow to create a blue print of all the aspects of the system. Question 2. What Are The Three Types Of Modeling In Uml? Answer : • • • Structural. behavioral. architectural. Question 3. What Is Uml Architecture? Answer :Takes care structural and behavioral aspect of a software system. Includes software usage, functionality, performance, reuse, economic and technology constraints. Question 4. What Are Uml Messages? Answer: Specification of a communication. Question 5: What is the purpose of a use case diagram? Answer: The main purpose of a use case diagram is to show who interacts with your system, and the main goals they achieve with it Question 6. Explain Class and objects? Answer: class: a class describes the contents of the objects that belong to it: it describes an aggregate of data fields (called instance variables), and defines the operations (called methods). object: an object is an element (or instance) of a class; objects have the behaviors of their class. Exercise-6 Introduction to Behavioral Modelling Using UML. Basic Ideas on UML Model: A model is the graphical, textual, mathematical, or program code-based representation. A model captures important aspect for some application while omitting (or abstracting) the rest. Models are very useful in documenting the design and analysis results. Need for a model An important reason behind constructing a model is that it helps manage complexity. Once models of a system have been constructed, these can be used for a variety of purposes during software development, including the following: • Analysis • Specification • Code generation • Design • Visualize and understand the problem and the working of a system • Testing, etc Unified Modeling Language (UML) UML, as the name implies, is a modeling language. It may be used to visualize, specify, construct, and document the artifacts of a software system. It provides a set of notations (e.g. rectangles, lines, ellipses, arrow etc.) to create a visual model of the system. UML was developed to standardize the large number of object-oriented modeling notations that existed and were used extensively in the early 1990s. Some of the principles that ones in use were: • Object Management Technology [Rumbaugh 1991] • Booch’s methodology [Booch 1991] • Object-Oriented Software Engineering [Jacobson 1992] • Odell’s methodology [Odell 1992] • Shaler and Mellor methodology [Shaler 1992] UML was adopted by Object Management Group (OMG) as a de facto standard in 1997. OMG is an association of industries which tries to facilitate early formation of standards. Viva- Voce Q1. When and By whom was UML designed? Answer: It was developed by software engineers Grady Booch, Ivar Jacobson, and James Rumbaugh of Rational software during 1994 and 1995. It was under development till 1996. All of UML creators, viz, Grady Booch, Ivar Jacobson, and James Rumbaugh had a fabulous idea for creating a language that will reduce the complexity. • • • • Booch’s method was flexible to work with throughout the design and creation of objects. Jacobson’s method contributed a great way to work on use-cases. It further has a great approach for high-level design. Rumbaugh’s method turned out to be useful while handling sensitive systems. Behavioral models and state-charts were added in the UML by David Harel. Q2. What do you understand by class diagram? Answer: This diagram explores detail design of the system. The class diagram is designed using Use Case diagram. We can identify all Nouns in use cases as classes and verbs as method of the classes. Q3. - How many types of UML Diagram? Answer- various types of UML are listed below: 1. 2. 3. 4. 5. 6. 7. 8. 9. Use Case Diagram Class Diagram: Object diagram State Diagram Sequence diagram Collaboration diagram Activity diagram Component diagram Deployment diagram Q4.- Why UML diagram is important? Answer: An object contains both data and methods that control the data. UML is powerful enough to represent all the concepts that exist in object-oriented analysis and design. UML diagrams are representation of object-oriented concepts only. Thus, before learning UML, it becomes important to understand OO concept in detail. Q5.- Why do we use class diagram? Answer: Class diagram describes the attributes and operations of a class and also the constraints imposed on the system. The class diagrams are widely used in the modeling of object-oriented systems because they are the only UML diagrams, which can be mapped directly with object-oriented languages. Q6. What Is Polymorphism in OOPS? Answer: The ability of different methods to implement the same operation, and thus to respond same messages in different ways that are appropriate to their class is called polymorphism. Exercise-7 Develop Behavioral UML diagram for any software project. UML diagrams UML can be used to construct several different types of diagrams to capture five different views of a system. Just as a building can be modeled from several views (or perspectives) such as ventilation perspective, electrical perspective, lighting perspective, heating perspective, etc. . The UML diagrams can capture the following five views of a system: • User’s view • Structural view • Behavioral view • Implementation view • Environmental view Fig. 1: Different types of diagrams and views supported in UML 1. User’s view: This view defines the functionalities (facilities) made available by the system to its users. The users’ view captures the external users’ view of the system in terms of the functionalities offered by the system. The users’ view is a black-box view of the system where the internal structure, the dynamic behavior of different system components, the implementation etc. are not visible. It is very different from all other that it is a functional model compared to the object model of all other views. The users’ view can be considered as the central view and all others are expected to conform to this view. 2. Structural view: The structural view defines the kinds of objects (classes) important to the understanding of the working of a system and to its implementation. It also captures the relationships among the classes (objects). The structural model is also called the static model, since the structure of a system does not change with time. 3. Behavioral view: The behavioral view captures how objects interact with each other to realize the system behavior. The system behavior captures the time-dependent (dynamic) behavior of the system. 4. Implementation view: This view captures the important components of the system and their dependencies. 5. Environmental view: This view models how the different components are implemented on different pieces of hardware platform Use Case Model The use case model for any system consists of a set of “use cases”, users and relationship among them within the system. Use case describes the action that user takes on a system. Use case diagram model the process flow of a system. It is the way to communicate with the user. Intuitively, use cases represent the different ways in which a system can be used by the users. A simple way to find all the use cases of a system is to ask the question: “What the users can do using the system?”. Four basic components to construct use case diagram are: a) System: Something that performs a function or system is a piece/multiple piece of software that perform some function for its user. b)actor: actor is something that uses our system. It is named based on their job title. An actor can be a person or another external system like developer, student, clerk, teacher, officer etc. c)use cases: are the actions that a user takes on a system. According to above example developer creates s/w, teacher record grade, officer create command etc. d)relationship: connection between the actor to the use cases. Actor can relates to multiple use cases and a use cases relate to multiple actors. Thus for the Library Information System (LIS), the use cases could be: • issue-book • query-book • return-book • create-member • add-book, etc Similarly the use case model for the Supermarket Prize Scheme is shown in fig. 2. As discussed earlier, the use cases correspond to the high level functional requirements. From the problem description and the context diagram. In fig.2 we can identify three use cases: “register-customer”, “register-sales”, and “select-winners”. As a sample, the text description for the use case “register-customer” is shown below. Fig. 2 Use case model for Supermarket Prize Scheme Text description U1: register-customer: Using this use case, the customer can register himself by providing the necessary details. Scenario 1: Mainline sequence 1. Customer: select register customer option. 2. System: display prompt to enter name, address, and telephone number. 3. Customer: enter the necessary values. 4. System: display the generated id and the message that the customer has been successfully registered. Scenario 2: at step 4 of mainline sequence 1. System: displays the message that the customer has already registered. Scenario 2: at step 4 of mainline sequence 1. System: displays the message that some input information has not been entered. The system displays a prompt to enter the missing value. Utility of use case diagrams Use cases are represented by ellipses. They along with the accompanying text description serve as a type of requirements specification of the system and form the core model to which all other models must conform. UML offers three mechanisms for factoring of use cases as follows: Generalization Generalization is a technique that used to inherit an item in UML. It can be applied to both actor and use cases to indicate that their child item inherit functionality from parent. Fig. 3: Representation of use case generalization Includes Include relationship indicate that use case will include functionality from an additional use cases. The relationship involves one use case including the behavior of another use case in its sequence of events and actions. The includes relationship occurs when a chunk of behavior that is similar across a number of use cases Fig. 4: Example use case inclusion Extends Extended relationship indicates that use case may be extended by another use case. The main idea behind the extends relationship among the use cases is that it allows us to show optional system behavior. The extend relationship is similar to generalization. But unlike generalization, the extending use case can add additional behavior only at an extension point only when certain conditions are satisfied. <<>extended> Fig. 5: Hierarchical organization of use cases Exercise- 8 Develop all the Diagrams for any software project using UML design methodology. Solution:1. Class and Interaction Diagrams Class diagrams A class diagram describes the static structure of a system. It shows how a system is structured rather than how it behaves. The static structure of a system comprises of a number of class diagrams and their dependencies. The main constituents of a class diagram are classes and their relationships: generalization, aggregation, association, and various kinds of dependencies. Classes The classes represent entities with common features, i.e. attributes and operations. Classes are represented as solid outline rectangles with compartments. It has a mandatory name compartment where the name is written centered in boldface. The class name is usually written using mixed case convention and begins with an uppercase. The class names are usually chosen to be singular nouns. Attributes An attribute is a property of a class written in left justified. It represents the kind of data that an object might contain. Attributes are listed with their names, and may be contain specification of their type, an initial value, and constraints. The type of the attribute is written by appending a colon and the type name after the attribute name as book Name : String Operation Operation is the implementation of a service/activity that supported by class and invoked by other class object. It can be requested from any object of the class to affect behavior. An object’s data or state can be changed by invoking an operation of the object. A class may have any number of operations or no operation at all. Generally the first letter of an operation name is a small letter. Its return type is Boolean as E.g issueBook(in bookName):Boolean Association When two classes associated with each other, their exists association relation. It is represented by straight line between concerned classes. Associations enable objects to communicate with each other. An association describes a connection between classes. The association relation between two objects is called object connection or link. Links are instances of associations. Mathematically, a link can be considered to be a tuple, i.e. an ordered list of object instances. An association describes a group of links with a common structure and common semantics. Each side of association relation multiplicity is noted as an individual number or value range. Multiplicity (*) indicate how many instance of one class are associated with the other. Range of multiplicity are noted by specifying range of minimum to maximum by giving two dots i.e 1..5. An asterisk is used as a wild card (last entry), zero or more. Let us consider the statement that below illustrates the graphical representation of the association relation. The name of the association is written alongside the association line. An arrowhead is placed on the association line to indicate the reading direction of the association. The arrowhead should not be misunderstood to be indicating the direction of a pointer implementing an association. The multiplicity indicates how many instances of one class are associated with each other. Fig. 6: Association between two classes Aggregation Aggregation is a special type of association relation, where classes are not only associated but also whole part relation exist between them. Here involved classes that takes the responsibility of forwarding messages to the appropriate parts. Thus, it takes the responsibility of delegation and leadership. When an instance of one object contains instances of some other objects, then aggregation relationship exists between the composite object and the component object. Aggregation is represented by the diamond symbol at the composite end of a relationship. For example boo register is an aggregation of book objects similarly document can be consider as an aggregation of paragraph and aggregation of line. Here 1 and * means one document can have many paragraph and many lines constitute a paragraph. This relation cannot be reflexive means an object cannot have the object of same class as itself nor symmetric (i.e two classes cannot contain instance of each other). However aggregation relationship is transitive and it can consist of arbitrary number of levels. Composition Composition is a stricter form of aggregation, in which the parts are existencedependent on the whole. Means that the life of the parts closely ties to the life of the whole. The composition relationship is represented as a filled diamond drawn at the composite-end. An example of the composition relationship is Fig. 7: Diagram representing aggregation and composition. Dependency It represented by dotted arrow from dependent class to independent class. It provides pre and post condition for operation to define ordering of an item. Association vs. Aggregation vs. Composition • Association is the most general (m:n) relationship. Aggregation is a stronger relationship where one is a part of the other. Composition is even stronger than aggregation. • Association relationship can be reflexive (objects can have relation toitself), but aggregation cannot be reflexive. Aggregation is anti-symmetric (If B is a part of A, A cannot be a part of B). • Composition has the property of exclusive aggregation i.e. an object can be a part of only one composite at a time. For example, a Frame belongs to exactly one Window whereas in simple aggregation, a part may be shared by several objects. For example, a Wall may be a part of one or more Room objects. • In composition, the whole has the responsibility for the decomposition of all its parts, i.e. for their creation and destruction. For example, when a Frame is created, it has to be attached to an enclosing Window. Similarly, when the Window is destroyed, it must in turn destroy its Frame parts. Inheritance vs. Aggregation/Composition • Inheritance describes ‘is a’ / ‘is a kind of’ relationship between classes (base class - derived class) whereas aggregation describes ‘has a’ relationship between classes. Inheritance means that the object of the derived class inherits the properties of the base class; aggregation means that the object of the whole has objects of the part. • Inheritance means the objects of the subclass can be used anywhere the super class may appear, but not the reverse; i.e. wherever we could use instances of ‘payment’ in the system, we could substitute it with instances of ‘cash payment’, but the reverse cannot be done. • Inheritance is defined statically. It cannot be changed at run-time. Aggregation is defined dynamically and can be changed at run-time. Aggregation is used when the type of the object can change over time. For example, consider this situation in a business system. A Business Partner might be a Customer or a Supplier or both. During its lifetime, a business partner might become a customer as well as a supplier, or it might change from one to the other. In such cases, we prefer aggregation instead. Here, a business partner is a Customer if it has an aggregated Customer object, a Supplier if it has an aggregated Supplier object and a "Customer Supplier" if it has both. Here, we can have only two types. Hence, we are able to model it as inheritance. • The advantage of aggregation is the integrity of encapsulation. The operations of an object are the interfaces of other objects which imply low implementation dependencies. The disadvantage of aggregation is the increase in the number of objects and their relationships. On the other hand, inheritance allows for an easy way to modify implementation for reusability. . 1.1 Interaction Diagrams Interaction diagram describe the interaction among group of objects through message passing. Interaction diagrams are models that describe how group of objects collaborate to realize some behavior. Each interaction diagram realizes the behavior of a single use case. An interaction diagram shows a number of example objects and the messages that are passed between the objects. There are two kinds of interaction diagrams: sequence diagrams and collaboration diagrams. 2. Sequence Diagram: A sequence diagram shows interaction among objects as a two dimensional chart. The chart is read from top to bottom. The objects participating in the interaction are shown at the top of the chart as boxes attached to a vertical dashed line. Vertical dashed line is called object life line. Any point on life line implies that object exist at that point. If object is destroyed, lifeline of object is crossed at that point and lifeline of that object is not drowned at that point. Control rectangle is used as activation symbol drown from lifeline of an object that the point at which object is active. Object is active as long as control rectangle is exist in lifeline of object. Each message is labeled with message name. Inside the box the name of the object is written with a colon separating it from the name of the class and both the name of the object and the class is underlined. The objects appearing at the top signify that the object already existed when the use case execution was initiated. Note: single use case represent single sequence diagram. Object1 Object2 c Object3 message [invalid] • A condition (e.g. [invalid]) indicates that a message is sent, only if the condition is true. • An iteration marker shows the message is sent many times to multiple receiver objects. As it happened elements of an array are being iterated. The basis of the iteration can also be indicated e.g. [for every book object]. Fig. 8: Sequence diagram for the renew book use case 3. Collaboration Diagram Collaboration diagram is a cross between the class diagram and sequence iagram. It model the objects and sequenced communication between each other. Collaboration diagram shows both structural and behavioral aspects explicitly. Structural aspect consists of objects and links among the objects which indicate the association. Object in collaboration diagram is called collaborator. But in sequence diagram it shows only the behavioral aspects. The link between objects is shown as a solid line and can be used to send messages between two objects. The message is shown as a labeled arrow placed near the link. The use of the collaboration diagrams in our development process is to help us to determine which classes are associated with which other classes. This model used to represent interaction between objects and role. Link between object is shown in solid line and can be used to send messages between two objects. Collaboration diagram derived from sequence diagram which realize for single use case. It helps us to, which class associated with the other class. For example collaboration diagram for renew book use case Fig. 9: Collaboration diagram for the renew book use case 4. Activity diagrams Activity diagram represent the various activity or chunk of process and their sequence of activation. It shows the system execution and changes of direction based on different condition. It model workflow for use case. It is possibly based on the event diagram of Odell [1992] through the notation is very different from that used by Odell. An interesting feature of the activity diagrams is the swim lanes. Swim lanes enable us to group activities based on who is performing them, e.g. academic department vs. hostel office. This is carried out during the initial stages of requirements analysis and specification. Activity diagram gives start and end state and can show the path within the use case as well as between the use cases. It explains what condition needs to meet for use cases for use case to be valid condition state etc. Components of activity diagram are: a)Activities or action state: notation used for activity/action is rectangle with rounded corner and it indicate action. b)State: activity diagram can have only one start state but can have several end/stop state. UML may describe two special state called start state and stop state represented as: black dot and black dot with round circle. c)Transition: used to show control flow from one state to another state. It shows flow from state to an activity, between activity or between states. Guard is noted on transition between two activity or states. And diamond is used as decision point for condition. An activity is a state with an internal action and one or more outgoing transition which automatically follow the internal activity termination. Activity diagram is similar to procedural flow chart, difference is that activity diagram support description of parallel activity and synchronization exist between activity and parallel activities are represented by swim lane. Fig. 9: Activity diagram for student admission procedure at IIT Viva-Voce Q1.What Is An Activity Diagram? Answer: A variation of a state chart diagram that focuses on a flow of activity driven by internal processing within an object rather than by events that are external to it. In an activity diagram most (or all) states are action states, each of which represents the execution of an operation. Q2. What is the use of Activity Diagram? Answer- Activity diagram gives detail view of the business logic. Q3. Brief Explanation of All Elements in Activity Diagrams? Answer • • • • Activities: An activity indicates an action that performed in the system. Transitions: Transitions are represented by open arrow heads. Transitions are used to indicate the flow among elements in the diagram. Decision Points: The logical branching is depicted by the decision points. States: A state is shown in a rounded rectangle. States are indicated to mention the mile stones of processing in the activity diagrams. Q4. What Is the Difference Between Activity and Sequence Diagrams? Answer : The following are the difference between Activity and Sequence Diagrams: A sequence diagram shows the way of processes execute in a sequence. For example, the order of operations and the parameters. ► An activity diagram depicts the operational workflows. ► A sequence diagram is focused to represent interactions between different objects. ► Activity diagram shows the actions for various objects. Q5. What Are Messages? Answer: A message is the specification of a communication, when a message is passed that results in action that is in turn an executable statement. Q6. What Is an Activity? Answer: An activity is some behavior that may persist for the duration of a state. Exercise-9 Manage Files using ProjectLibre Project Management tool. Solution: ProjectLibre is considered one of the best open-source project management tools. It was created by the founders of OpenProj. ProjectLibre is considered as an efficient project management tool that is used, and in its usage all data is entered in tables as rows, like Excel. And after all of it’s entered, diagrams, Gantt Charts and a WBS (Work Breakdown Structure) generate automatically. No need to draw the diagrams yourself, all you have to do is clearly define your project, and enter your project-data correctly. Step-1: Enter the name of all the activities that are to be accomplished related to any specific project. 2.Once the activities are entered, then click on task option in Menu bar and then click on Gantt chart. Hence you can see the Gantt chart is automatically generated. Step-3: Likewise other activities of project like Activity Network, PERT, Work Breakdown structure (WBS), Critical Path Method are also generated. This helps to understand and decide which activity is to be started as soon as possible and that could be started late with some time lag. All these tasks are done to avoid any kind of risk that ultimately leads to the failure of the project due to bound timelines. Viva- Voce What Is Modeling? What Are The Advantages Of Creating A Model? Answer : 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 Objectoriented Software System? Answer : 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 Is Generalization And Specialization? Answer : Generalization: Generalization is the abstraction of common feature among elements by the creation of a hierarchy of more general elements that encapsulate common features. For example, in animal world a cat and a dog share some common features and we create a common general class “Mammal” which encapsulates common their common feature. A cat, a dog – both are consistent with mammal class. Specialization: The other face of generalization is specialization. A class is said to be specialized when it has a set of characteristics that uniquely distinguish it from its super class. For example, a cat is a mammal but it is more specialized. What are design patterns? Answer: Design patterns are the recurring solutions to recurring problems in software architecture. Which design patterns have you used in your project? Answer: This question is very subjective as every developer has his own experience. So we will pick up three design patterns, i.e., factory, singleton, and facade, and discuss the same in more depth. In case you are using some other design pattern below is the list with classification, go and pick your best three. There are three basic classifications of patterns Creational, Structural, and Behavioral patterns.