Beruflich Dokumente
Kultur Dokumente
CMPS 282
Software Engineering/SRS
Alias
0. Contents
TOPIC Introduction3 Purpose.3 Scope.3 Definitions4 Analysis models ..5 BriefOverview ...............6 General overview 6 External interfaces..7 Storyboard for user ....8 Storyboard for administrator 9 Functional requirements 10 Non Functional requirements 22 System models...26 DFD..26 Class diagram and CRC26 Sequence diagram..30 Activity diagram32 Use cases.43 - Description48 Appendix 55 Analysis model.55 Elicitation techniques 57 Validation criteria ..58
CMPS 282
Software Engineering/SRS
Alias
I. Introduction
This part of the SRS will lever its purpose and scope, along with some acronyms, references and overviews. 1.1. Purpose The SRS specifies the requirements for a Computer Software and the methods to be used to guarantee that each requirement has been met (WHAT is to be done). It will also be used later as the root for design and qualification testing of computer software. (A small premature idea on HOW things will get done). 1.2. Scope Lebanese car registration and mecanique is a web-based driven application which features provide an online system to smooth the progress of not only registration and mecanique, but also inspection and insurance, including online payment facilities. Its limitations, however, or what it will NOT do are the following: The product is NOT to be linked to governmental agencies databases or insurance databases. Assumptions such as stolen car or stolen driver information; license card for example; are not to be pointed to here, until further notice by the client (Prof. Karam). So in summary, the scope of the detailed analysis project phase specifies that this document will include: Classification of requirements according to their functional areas A description of each function, or process (functional and non functional requirements) A data model including an ER diagram with attribute/element descriptions, use cases, sequence diagrams, DFDs, a class diagram and an activity diagram.
The target audience for this product is fictively governmental and social officials, such as bureaucrats and executives in the transportation system decision-makers club in Lebanon and especially the development team, the team manager and all the other stakeholders in the system. All other readers are assumed to have knowledge about the basic theory and CMPS 282 Software Engineering/SRS Alias 3
operation of a regular web application, and have some idea about the terminology used in the document.
1.3. Definitions, acronyms and abbreviations: Acronyms: ER DFD SRS CRC Definitions: Web based Administrator
A program that can be run through a typical internet browser such as Netscape or Explorer. an individual or group of individuals that upgrade, edit and maintain the functionality of a server or application
1.4. Analysis Models: The convolution of the system can be better paced when using a tough and exhaustive analysis model. Thats the reason why more than one model was espoused in order to emphasize on different perceptions and areas of the whole subject: It is necessary to represent in an SRS what is to be done in the system in terms of requirements, but still this is not sufficient. An SRS document is also a preamble of the design phase which leads to the conclusion that what is interesting to adopt is a coalition between these various techniques:
CMPS 282
Software Engineering/SRS
Alias
Name
Categories
Class-based modeling
Class diagram CRC
Behavior modeling
Sequence diagram State diagram
More explanation on the role of each model and the order we built those models in will figure later in the document, in the Appendix part. 1.5. Document overview: This document describes the software requirements for the car registration and inspection system. There will be first a complete synopsis of functional and non functional requirements, then an overview of the analysis model. Those include also the following: A general description of the user characteristics, the administrator scope, the product perspective and general constraints, assumptions, and dependencies. Finally, a complete explanation of validation procedures will be made in order to demonstrate how appropriate our quest for information in terms of requirements and needs was.
1.6. References 1. Books: Software Engineering, Roger S. Pressman, Mc.GrawHill international edition, 2005 2. Internet websites:
http://www.zoo.co.uk/~z0001039/PracGuides/toc.htm http://www.sdmagazine.com/documents/s=737/sdm0012c/0012c.htm http://www.donaldfiresmith.com/Components/WorkProducts/RequirementsSet/S ystemRequirementsSpecification/SystemRequirementsSpecificationInspectionCh ecklist.html http://www2.ics.hawaii.edu/~johnson/413/lectures/5.2.html http://www.agilemodeling.com/artifacts/uiFlowDiagram.htm
CMPS 282
Software Engineering/SRS
Alias
In summary, the system has exactly 3 possible users: Driver (Car owner) Mecanique Administrator: Can access all parts of the website, needs to fulfill functions such as: update, maintain, delete drivers, add drivers, register on the web, notice drivers for inspection success or failure Insurance company: This is omnipresent in the website.
The system functions as follow: The user enters a special number called RIN (sent by BOX OFFICE say from the seller to the
website administrator, along with personal information about the buyer once vehicle is bought; and given also to the buyer), his ID# and the chassis# of the vehicle (primary key among all other vehicles). An automatic checking crosses the information to determine whether the user actually bought the vehicle. If everything works well, the user is now signed in. The next step is to give the user the ability to fill his personal information and some important information about his vehicle. Then registration comes. The user is supposed to pay online, and the administrator notices him whether the transaction succeeded. NB: Registration is necessary before all later steps. Inspection is NOT paid online. What happens actually is that the user can view the dates the inspection of his vehicle is supposed to take place in. The user then takes his car for
CMPS 282
Software Engineering/SRS
Alias
inspection, and the inspection company which has an access to the web, posts whether the vehicle has succeeded or failed. NB: Inspection is necessary before all later steps. Insurance is also NOT paid online, it is just a form that the user prints and then goes to submit to a particular separate insurance company. The administrator will then be responsible of telling the user whether insurance went ok or not. NB: Insurance is necessary before all other steps. The last step is the mecanique. It is an annually updated value to be paid under a certain time limit. The price varies according to the year model and the make of the car.
2.2. Input, Output, Time The following describes very briefly the input and the output of the system, as well as the time factor which is responsible of automatic updates. Input Generally, when the user connects, his aim is to do an online registration for his car. The input is abstractly an unregistered but bought car, concretely 3 elements: the RIN, the id# and the chassis # of the car. Output The output of the system however fluctuates according to the time span and/or requirements completion. The following are the possible outputs: 1. Registered car 2. Inspected car 3. Insured car 4. Mecanique paid for car Time Time is extremely important in the system. Mecanique happens every year, and the system must automatically allocate days for inspection according to car plate numbers. The number of car plate numbers is divided by 12 in order to produce the timeline of car inspection each month. Other than the other case stated above, time also plays a pivotal role when it comes to delays. If the inspection is NOT done and the limit dates for inspection are over, the system must be responsible to consider the users of this situation some special cases, and produce other dates for inspection. Also, if mecanique deadline is over, the time factor also has to act in order to add a penalty payment that increases for a period of 3 years maximum. 2.3. External Interfaces
CMPS 282
Software Engineering/SRS
Alias
The external interfaces are those user directly interacts with. The following illustrates a storyboard for the system. Explanation follows
Some things to specify: ----------- : These red dotted lines specify the interaction of a database with a component. Those arrows correspond to a link between two pages. A page with an arrow pointing to itself means this page is re-entering itself, maybe because of some erroneous input. Storyboard for Users: First, we have pages, and databases. There are two databases drawn, but they both represent one single database, there are two because of spacing purposes and neatness of designs. First is the login page, which interacts with the database to authenticate input. Then it leads to a user registration page, which interacts with database to update input, with validation of input of course. Then when everything is fine, the user can start actions. Now the user can access any page, but he cant do specific actions in a page without having done some other stuff in other pages. Each page basically represents a requirement. Also not all input variables are represented in each page because of the big amount of data, and the storyboard was put just to give an idea of how would external interfaces look like, the design document will specify all details. Now as we can see, the online registration payment is given as a choice, and leads to another page. The inspection process is just information processing, as well as insurance. The mecanique process has an online payment option, similar to the registration. Almost all pages interact with database. User can check any information on any of the pages. User can do data inputs (in terms of payments) only when its the period to do so. Now some things arent put yet like ad spaces, but some small components on storyboard makes the fact that these things will be put, but later because they dont affect functionality of system.
CMPS 282
Software Engineering/SRS
Alias
L ogin
A dmin ID P assw ord Data update processing D atabases F ields to change
S b it um
S b it ch ng s um a e
Mn o itoring
D atabas e
su m b it
The administrators storyboard is similar to the users storyboard (in terms of designs). The admin can do actions such as privileges granting, update actions, and delete actions, create new accounts The administrators storyboard is a bit more simplified than the users storyboard, but the administrator dont really have to do more than monitoring the system.
CMPS 282
Software Engineering/SRS
Alias
Now there is a possibility of creating new storyboard for people who do data entries, however this is still under discussion and would need some security approaches to deal with the situation, but this option is still in mind.
CMPS 282
Some form sends this info to database and is responded by a confirmation message. 3.2 User Registration:
Inputs: User is then required to input some personal information: Name, Address, Phone Number, email address, profession, date of birth, marital status. This information will be sent to database in order to be processed and saved. User is then required to enter a password, which he has to confirm, in order to get access later to the site. Outputs: User will get confirmation concerning his personal information. 3.3 Car registration: Two options: manual or automated registration 1st case: Manual Registration: User registers the car manually in place, at the DMV. In this case, he will receive later a confirmation message and can access the page. He will be able to see all information regarding his car. 2nd case: Automated Registration: The user would like to register online. In this case, he is required to fill a form in the car registration page. In this form, the info asked for are: Car model, color, year of make, type, registration type The user will enter this info and submits. The server will send info to the database and the administrator The administrator will confirm this info manually, and the user will be replied to in few days The user is required to pay a certain amount of money to ensure registration. Here money can be paid in two options: manually or online. Below the online registration is discussed. The manual registration is obvious. Online Payment: The user will first get the amount under fees link. He will enter specific information in order to be able to pay. The database will receive this info from the user and send a value confirming the pay.
Upon reply, if everything worked successfully, the user will receive his car plate number and car registration papers later by mail. He can also get these papers manually of course.
CMPS 282
Software Engineering/SRS
Alias
11
3rd case: car owner who wishes to become an online user of database: In this case, the user will be requested to fill an online form, specifying some information. The DMV server will send request to the administrator The administrator will send confirmation to user stating that his process worked successfully. No need of re-registering.
3.4 Inspection: Each year cars must pass inspection test for safety purposes. User will be informed of inspection dates on this page inspection dates. Inspection dates are related to car plate numbers, so the server connects to a separate database of dates and car plate numbers span. The server will get the date the user must pass his inspection The server will also display inspection fees and places as well as dates and finally whether the inspection was passed or not.
Server will be in connection with database to retrieve information about the user and the test: 1st case: User successfully passes test. Here the user will only get confirmation to move on. 2nd case: User takes test but fails Server will display information regarding next dates, fees, and the things the users car failed in, which are retrieved from test table in database containing information about test requirements. 3rd case: User doesnt take test at all. User will be issued warning concerning this, and he will get info about test dates, penalty fees. . 4th case: Users car is not older than 3 years In this case user doesnt need to pass inspection. The server will automatically display info concerning this. 3.5 Insurance: CMPS 282 Software Engineering/SRS Alias 12
The Lebanese government requires each car to be insured against personal accident. The server here displays information about: 1. Whether user is insured or not 2. Which company is the user insured with 3. In case hes not insured, whens the deadline for insurance 4. What fees have to be paid for insurance 5. What companies can the user insure with, information about these companies, links 6. NB: Another requirement possibility is to make user pay online.
3.6 Mecanique: The Lebanese government requires each year that cars renew registration through mecanique. Here, the server displays to the user dates, fees, and places regarding mecanique. The server connects to a separate database containing mecanique information and retrieves information regarding mecanique. The user is given the choice of paying either online or personally. Online payment is done through prepaid cards, or credit cards. When user pays, server will update information in database to ensure payment.
Cases: penalties, tickets: These add up to the total mecanique fee. 1st case: The user pays mecanique successfully. In this case server will update the page and confirm payment. 2nd case: The user doesnt pay or is late in payment The user will be issued warning and penalty fees. Who will warn the user? Either the administrator; manually or the system; automatically.
CMPS 282
Software Engineering/SRS
Alias
13
CMPS 282
Software Engineering/SRS
Alias
14
User registration
Important 1. The user fills personal information. 2. User submits entry. 3. Server validates for empty fields, wrong formats 4. If valid, server continues, else re-enter erroneous fields. 5. Possible outputs: validation error messages, confirmation messages. None Server updates database with information.
New car registration Critical 1. User fills in car registration information. 2. Server validates information 3. If valid, server continues, else reenter erroneous fields. 4. All info ok, server redirects to payment page. 5. User fills in payment info: credit card #, prepaid card number# 6. Server validates input 7. Server authenticates input 8. Possible outputs: validation error messages, confirmation messages. None. Server updates database with information, then update confirmation information about payment. If user connection down while processing, server waits for a while, after it cancels process. If user connection or server down while payment processing, immediate blocking of operation. If empty credit card, immediate blocking of information. Once the data has been entered, it will be saved in an appropriate format in the database notifying that the payment has been done. The data will have to be first verified for correctness by being validated. Alias 15
CMPS 282
Software Engineering/SRS
For example, the format for credit card number and the total amount should always be numeric. If the user entered incorrect information, the system shall ask him to reenter the corresponding data.
Already registered car IF TIME PERMITS 1. User fills in request to enter his car in database. 2. Server validates information 3. If valid, server continues, else reenter erroneous fields. 4. All info ok, server redirects to admin page. 5. Admin sends confirmation to user and adds his car. 6. User can continue. None. Server updates database with information, then update confirmation information about payment. If user connection down while processing, server waits for a while, after it cancels process.
Car inspection Essential 1. User enters page. 2. Server displays information 3. If user did test and passed, everything ok, user is done, can move on. 4. If user did test and failed, server Alias 16
CMPS 282
Software Engineering/SRS
displays fields in which user failed, displays new test dates, fees 5. If user didnt take test, server displays fees, dates, place. 6. Possible outputs: validation error messages, confirmation messages, display information. None. Server moves user to insurance If server down while redirecting, issue error statement
Car insurance Important 1. User sees insurance info. 2. If insurance is already paid, user is sent info about company 3. if not, user is sent info requiring insurance. None. N/A If server down while redirecting, issue error statement
Car insurance payment IF TIME PERMITS, NOT IMPORTANT, UNTIL NOW NOT FEASIBLE 1. User is given option to pay online. 2. Server confirms and updates 3. If not, user is sent info requiring insurance. None. N/A If user connection down while processing, server waits for a while, after it cancels process. If user connection or server down while payment processing, immediate Alias 17
CMPS 282
Software Engineering/SRS
Mecanique payment Essential 1. User sees mecanique info. 2. User can choose online payment option. 3. If user chooses option, server redirects user to online payment page. 4. User fills in payment information. 5. Server validates information. 6. If valid, server authenticates user critical information such as credit card number or prepaid card number. 7. Everything ok: server displays confirmation info. None. Server updates database with information. If user connection down while processing, server waits for a while, after it cancels process. If user connection or server down while payment processing, immediate blocking of operation. If empty credit card, immediate blocking of information.
CMPS 282
Software Engineering/SRS
Alias
18
Path
1. If user chooses this option, server redirected to update page. 2. Update permits the user to modify some specific information (address, phone number, ) 3. If information entered is valid, then a link with the database will imply an update operation. 4. If information is not valid, issue error statement. None. User has updated personal information If server down while redirecting, issue error statement.
3.7.2 Administrator Functions Administrator is given privileges such as update databases, delete and give privileges to information entering people. 1)Requirement name Priority Path Registration update Essential 1. Admin updates registration data manually, case registration is not done online 2. Server sends information to database None. Database is updated. If server down while processing, issue error statement.
Inspection update Essential 1. Admin updates inspection data manually. 2. Server sends information to database None. Database is updated. If server down while processing, issue error statement. Alias
CMPS 282
Software Engineering/SRS
19
3)Requirement name Priority Path Other paths Post conditions Exceptions 4)Requirement name Priority Path
Insurance update Essential 1. Admin updates insurance data. 2. Server sends information to database None. Database is updated. If server down while processing, issue error statement. Mecanique update Essential 1. Admin updates mecanique data manually. 2. Server sends information to database None. Database is updated. If server down while processing, issue error statement. Admin responsibilities IF TIME PERMITS 1. Admin can grant privileges. 2. Admin can update critical information. 3. In all cases, server interacts with DB. None. Database is updated. If server down while processing, issue error statement.
CMPS 282
Software Engineering/SRS
Alias
20
Language IF TIME PERMITS 1. User chooses language in pages. 2. Server translates pages. None. Page is translated. If server down while redirecting, issue error statement. If browser doesnt support languages, issue error statement,
Site map IF TIME PERMITS 1. User selects sitemap function 2. Server help user in site functions. None. User is directed to sitemap process. If server down while processing, issue error statement.
CMPS 282
Software Engineering/SRS
Alias
21
4.2 Software: Server: The web server will run on Windows NT or Windows XP professional, or window server 2003. The database server is Microsoft SQL server 2000.
User: The user can run the application on Windows platforms: 95, 98, NT, 2000 and XP.
CMPS 282
Software Engineering/SRS
Alias
22
The user is required to have Internet Explorer 5 and above, Netscape 6 and above or any Netscape compliant application, like safari, and in all cases the user is required to have Unicode UTF-8 support in his browser if he wishes to see pages in Arabic or French, or support for Arabic or French (or both) encoding with leftto-right or right-to-left (or both). The users browser is also expected to have JavaScript enabled, and secondary requirements, such as flash player, are recommended but not required.
4.3 Connection: The user can use dial up connection and higher bandwidth connections, however connections from 56.6 kbps bandwidth are preferred. Server is expected to connect on a high bandwidth system. The web server will use an HTTP proxy. 4.4 Coding: Coding is done in ASP .net using VB .net. Forms will be created via VB.net scripts, or html tags. Forms will be processed using VB.net. Database queries use standard SQL queries.
4.5 Documents: Each page of the website will contain help information. The website will also contain a general FAQ. 4.6 Performance: The web application will on run on the DMV server, which should have strong attributes: large memory, at least 2 GB, significant amounts of storage mechanisms are required to store large amounts of information in database. Lets assume we have about 1,000,000 cars in Lebanon, each user, with his car, requires, say, 1 MB of space. Then we need about at least 1 terabyte for database storage system, equivalent to 1000 GB, assuming all registered cars want to enter online. But assuming that not more than 30 o 50 % of car owners have access to internet, or at least know how to use it then storage space can be reduced significantly. Database queries are expected to run on average in less than 1 sec, depending on traffic. Performance will also vary depending on the traffic on the server. At first the server is not expected to handle many requests, but with time and technological development the server must better be updated, even duplicated to handle many simultaneous requests. CMPS 282 Software Engineering/SRS Alias 23
Peak time running: Server performance is expected to slow down during peak times, for example during mecanique payment periods. Server during peak time is requested to handle between 1,000 and 5,000 requests per day in the first years of the projects, depending on number of users willing to become online users. 4.7 Availability: The system can be accessed 24 hours a day. However, transactions will not be allowed after the DMV closure time, and during holidays, weekends and important official events like elections. During this time, the user is only allowed to see information only.
4.8 Safety: Cases: 1. Server down or crashes for some reason: transactions occurring will be immediately cancelled. If the problem is not important and fixed automatically, user can continue his work. If the problem needs professional assistance, server will close during fixing time. 2. User connection is broke, or some problems stopping the user from continuing (PC shuts down, electricity) during session or user simply stops using page for some time. In this case server cancels session if user doesnt continue later. 4.9 Security: 3.10.1 1st time login: encryption for decoding and encoding RIN. Type to be specified later. (128 bit is an option) 3.10.2 User password: for 2nd time login: encryption for decoding/encoding password. Type will be specified later. (128 bit is an option) 3.10.3 Online payment: high security encryption software for processing credit card/prepaid card transactions. 3.10.4 Log files: every database transaction, every user action involving database transaction will be recorded in a log file, in case controversies happen. 3.10.5 User is not allowed to enter password or login information incorrectly more than 3 times during login process. 3.10.6 Cookies are an option. 3.10.7 Firewall is required in server. 4.10 Maintainability:
CMPS 282
Software Engineering/SRS
Alias
24
1. Software components are written in VB .net and HTML code, which should allow easy maintenance of code. 2. Updates to software components can be easily made since components functions arent directly attached. 4.11 Portability 1. The software can be run on windows platform XP professional or Windows Server edition, or Windows NT 2. Internet Information services is required on the platform to run the host 3. 50% of code is host-dependent. 4. 50% of components are host dependents. 5. HTML and VB .net are used, which allows easy interpretation.
4.12 Other Quality Requirements 1. Correctness: errors expected: technical errors, related to external influences, such as heat or electricity problems. Otherwise, everything is expected to run fine. 2. Efficiency: The program is expected to have about 3 % of CPU usage for each database transaction. 3. Flexibility: Modification of software can be easily done since components arent directly attached by functionality to each other. 4. Reliability: System transactions, requests are expected to run without many interruptions. 5. Reusability: Components can be used in other application specific to those components, i.e. mecanique can be used in a mecanique specific application. 6. Testability: Each component is tested separately, and then with each other, thus testing functionalities arent complicated. 7. Usability: Basic knowledge of DMV operations, with a basic knowledge of windows components, makes the learning of the usage of the application very fast. No professionalism is required except for admin.
CMPS 282
Software Engineering/SRS
Alias
25
V. System Models
5.1 DFD
For Class Diagram see AppendixII. Class: CarRegistered Responsibility computeAmountMecanique computeAmountInsurance computeAmountInspection Collaborator CarRequirements(client)+ the apropriate class of the inheriting classes(server). CarRequirements(client) + the apropriate class of the inheriting classes(server). CarRequirements(client) + the apropriate class of the inheriting classes(server). Alias 26
CMPS 282
Software Engineering/SRS
Class: TouristicBus (local) Responsibility computeAmountRegistration computeAmountInsurance computeAmountMecanique computeAmountInspection Class: TouristicBusA(continental ) Responsibility computeAmountRegistration computeAmountInsurance computeAmountMecanique computeAmountInspection
Collaborator
Collaborator
Collaborator
Collaborator
Collaborator
Software Engineering/SRS
Alias
27
Collaborator
Class: CarRequirements Responsibility getAmount getDate check_If_car_has_requirements Class: InspectionCompany Responsibility payAmountDue? Class: InspectionForm Responsibility computeIfPassedOrFailed generateReport Class: InsuranceCompany Responsibility payAmountDue? Class:Seller Responsibility generateForm
Collaborator AdminstratorMecanique+Insuranceform
Collaborator AdminstratorMecanique
Collaborator
Software Engineering/SRS
Alias
28
update addRegistered doStatistics updateUserProfile mecaniqueInfo checkInspectionResult InspectionDone payForMecanique Class: Profile Responsibility updateAddress updatePhoneNumber Class: Account Responsibility updateAddress updatePhoneNumber StartSession Class: Client Responsibility userLogin userRegistration NewCarRegistration updateInfo PayForMecanique payForRegistration Class: Password Responsibility validate AddTrial
Collaborator
client
Collaborator
Software Engineering/SRS
Alias
29
5.3 Sequence Diagrams We have decided to create sequence diagrams for some of the functional requirements discussed above.
CMPS 282
Software Engineering/SRS
Alias
30
ue : c n s r liet
ps wr : Ps Wd as o d as o r
ac ut : Ac ut c on c on
p fle P f r i : r ile o o
1:vlid t ( a a ) e 2:vlidt ( a ae )
3:Ad r l( dT ) ia
4:tu: v lidt ( re a a ) = e
This sequence diagram starts by the user process which first invokes the Validate function from the password class. The password validates and adds trials then returns true to the client in case everything is validated. Once the user is in, invoke start session, a method from class account. Then account can invoke methods from class profile in case user triggers an event such as, for example, updateAddress.
CMPS 282
Software Engineering/SRS
Alias
31
u r : clie t se n
M : A m istra rM ca iq e A d in to e n u
S :S n l M ig a
C : C rR q ire e R a e u m nts
d te : D te a s a s
ca e is : C rR g re rR g a e iste d
1: M ecan ueInfo() iq
7 : am ountC effic nt() o ie 9: s ignalM ecanique () Info 10 : M ecaniqueP t() os 8 : getA oun m t()
12 : s nalM ig ecanique()
This sequence diagram first starts by the user requesting to get the mecanique info from the administrator mecanique. The administrator mecanique then invokes the signal class in order to communicate with the car requirements. In case the car has no requirement, the process can be stopped here. Otherwise, car requirement invokes methods to find the date of mecanique payment (from Dates) and the amount to be paid (from car registered).
CMPS 282
Software Engineering/SRS
Alias
32
InspectionConfirmation
client : client
administrator : AdministratorMecanique
IM : Inspection
IC : InspectionForm
signalDone : Signal
1 : checkInspectionR esult()
This sequence diagram represents the posting of information related to the inspection process. Same as above. Every object of each instance invokes specific functions of other classes in order to accomplish tasks.
[in a ctive]/Ab o rt
CMPS 282
Software Engineering/SRS
Commit changes
Alias
34
Commit changes
CMPS 282
Software Engineering/SRS
Alias
35
[Valid Input]
[No in put]/Abort
Manipulate members
/Choos e operation
Add Member
/Add /Delete
/Update
Update Member
Delete Member
/Enter m em ber ID
/Enter m em ber ID
Find Member
Find Member
Find Member
Delete Member
Update member
[Exit Function]
CMPS 282
Software Engineering/SRS
Alias
36
[Valid Input]
[No input]/Abort
/Enter member ID
[Member Found]
Member's Profile
/Exit
/Save Changes
CMPS 282
Alias
37
Register
/Get Form
CMPS 282
Software Engineering/SRS
Alias
38
This action is to be performed by the administrator in case he wants to populate the check DBs filling in the corresponding RIN, ID# and chassis#
[Valid Input]
[No input]/Abort
Populate DB
/Get Form
Fill a form
/Validate Input
CMPS 282
Software Engineering/SRS
Alias
39
This action is to be performed by the seller: he must fill an application form including his own info and the buyers's info and then he m ust submit it to the administrator
[Valid Input]
[No input]/Abort
Sell car
CMPS 282
Software Engineering/SRS
Alias
40
[Valid Input]
[No input]/Abort
Make Changes
CMPS 282
Software Engineering/SRS
Alias
41
[Valid Input]
[No input]/Abort
/Select Mecanique
[Select Registration]
Pay
/Get Form
/Validate Input
[Valid]/Successful execution
CMPS 282
Software Engineering/SRS
Alias
42
[Valid Input]
[No input]/Abort
Fill news
CMPS 282
Software Engineering/SRS
Alias
43
+ First-Time User
+ Member
+ Seller
+ Inspector
+ Insurance Administrator
+ Mecanique Administrator
CMPS 282
Software Engineering/SRS
Alias
44
+ CountTrials
+ block
<<extend>>
<<extend>>
+ login
<<include>>
<<extend>>
<<include>>
+ Personal Info
<<include>>
<<include>>
<<include>>
+ Store in Database
<<include>> <<include>>
+ Display M essage
+ Submit Form
+ Incom plete
+ Check Credit Card N ber um + Check Account N ber um + Check Minim Account un
<<include>>
+ Car N Found ot
CMPS 282
Software Engineering/SRS
Alias
45
+ CountTrials
<<extend>>
+ login
<<include>>
<<extend>>
+ mecanique requirements
+ manipulate members
+ delete
+ finding members
<<extend>>
<<include>>
CMPS 282
Software Engineering/SRS
Alias
46
+ Register User + User + Update User Information + Fill Inpsection Information + Inspector
+ Register Car
<<include>> <<include>>
+ Find Members
<<include>>
+ Update Postings
CMPS 282
Software Engineering/SRS
Alias
47
+ Personal Inform ation + N -U ew ser + Fill M bership Form em + Store in U Database ser
<<include>>
<<include>>
+ Submit Form
<<include>>
+ Check Data
<<extend>> <<extend>>
+ Login + Seller
<<include>>
+ block
<<include>>
+ Personal Information
+ Print Form
+ Reset Form
CMPS 282
Software Engineering/SRS
Alias
48
CMPS 282
Software Engineering/SRS
Alias
49
6. The system performs the find member use case and the check RIN use case simultaneously. 7. The system displays the welcome page specific for the customer. Exit Condition: If the Login fields are not found in the database, the system prompts the customer to re-enter the information, or to register if not previously registered. If the customer selects the cancel button, the system blanks out the login and password fields without displaying a new window. The customer is logged in and the count trials use case increments by one.
4. If the system doesnt find the password in the database; it prints a message saying that this data is wrong 5. The user chosen action is resumed. Exit condition: If password is legal, the user chosen action is resumed. If the system doesnt find the password in the database; it prints a message saying that this data is wrong.
Use case: Edit Content Participating Actor: Member, Administrator Includes: none Extends: Session Expiry Entry Condition: member has chosen the Customize Personal Profile, or Administrator has chosen Update Users Profile action. Flow of events: 1. User chooses the Edit Content action on the terminal. 2. If the user leaves the page intact for a while, the session expires and exit. 3. User changes the information he wants to edit. Exit condition: If the session doesnt expire the user content of the profile is edited
Flow of events: 1. Administrator chooses the Update Member action on the terminal. 2. System checks if member exists 3. If not, system informs the administrator. 4. The administrator updates user information by filling a form. 5. If some information is missing, the system informs the administrator and asks him to provide the missing information. 6. The member information has been updated. Exit condition: If all information is provided, the member information is updated. If the member is not found, an error message is displayed
If the payment was successful, the member can proceed to the inspection. If not, an error message will occur.
VI. Appendix
CMPS 282 Software Engineering/SRS Alias
55
Methodology analysis and elicitation techniques will be discussed in this part. 1. Analysis Model
As mentioned previously, an SRS document consists first of showing what to build, but also must be an introduction and a resource to the design phase. This implied our choice to choose more than one analysis model. The way the models are explained determines the order in which we built them:
Flow-oriented diagram:
First, we started with the classical DFD. The purpose of a DFD is to provide a semantic link between systems and software developers. It is a logical representation of the system. It models WHAT the system does rather than HOW the system does it. The reasons why we chose to construct the DFD can be stipulated as follows: - A DFD sets the requirements and keeps the abstraction level that hides HOW is the system configured to emphasize on WHAT is to be done. - A DFD avoids user/developer misunderstanding of the system - A DFD avoids having to begin documentation from trash when the physical system fluctuates [since the logical system (that is, WHAT gets done), often stays the same when technology alters.]
Scenario-based modeling:
Use Cases: They define explicitly what the system does, and what happens when actors interact with the system. Since it enlists the various approaches under which the system is used, the use cases build up all the aims and requirements of that system. The reasons this model was an inevitable choice for us are summarized thereafter: 1. It grasps the functional requirements very clearly: Easy to read, easy to understand. 2. May be used later as a reference for software test and quality guarantee. 3. Plays a crucial role in the software design process.
Activity diagram: It can be viewed as a completion to the use case diagram. It shows more specifically what the steps that the user must do are in order to attain a particular goal. It is also a good indicator on HOW the system must be built.
1. Class diagram: Unlike use cases which embody users, the class diagram is intended to developers. The reasons why a class diagram is important are: It is the rigid root for a good design of the system It organizes information into abstraction of objects and encapsulation It starts going into details such as relationships between classes (hasa, is...) Since the SRS is a pre-design introduction, class diagrams are essential. 2. CRC: The CRC is an extension to the class diagram. It represents the responsibility of classes and the interaction between classes. So the reason the CRC was a choice as a model is because it organizes intrinsically the classes represented in the class diagram.
Behavioral modeling: Sequence Diagram: A Sequence diagram depicts the sequence of actions that occur in a system. The invocation of methods in each object, and the order in which the invocation occurs is captured in a Sequence diagram. This makes the Sequence diagram a very useful tool to easily represent the dynamic behavior of a system.
CMPS 282
Software Engineering/SRS
Alias
57
2. Elicitation techniques
It is said that requirements elicitation is where science stops and chaos begins. Indeed, although requirements elicitation is one of the most pivotal procedures in software engineering, it requires a lot of common sense and social background. The techniques used were the following: Introspection Interviews (more preferably, questionnaire interviews) Discussions
1. Introspection: It is a technique that amounts to imagining what kind of system should we produce; that is; trying to get part of the requirements from imagination and own speculation. Naturally, the extent at which we used this technique is very limited since it might not correspond with the clients point of view. This was mainly used in particular cases where the client himself (Prof. Karam) gave us the right to choose some requirements out of the whole list, and speculate about how it would be better to represent it in the overall system. 2. Interviews: Questionnaire interviews are one of the most successful elicitation techniques since they guide the client to choose requirements and design elements. It guides the clients to figure out how the system would function better and what is feasible and not feasible. Discussion is a central point here.
CMPS 282
Software Engineering/SRS
Alias
58
2. Validation of criteria Understanding the requirement leads to better management of software projects and improvements in the software engineering process. It was not easy to gather all requirements, as in every meeting we made, we realised there are additional question we should deal with. We decided it is very necessary to have: 1. User involvement 2. Executive management support 3. A clear statement of requirements But, for now, we believe that we have all what is needed, as throughout all our analysis, processes are consistent, predictable, and we have full control over requirements. What we mainly focused on, is that we understand the problem well, and make an estimation for time we will need, resources that will be used. Our goal is producing a high quality product within the time given to us,(thats why we divided functional requirements to different priority levels). Then we handled all different scenarios that can possibly happen, and considered all improvements that can be made concerning efficiency, practicality of usage , maintainability, and fast searching through the databases. We developed a DFD, a class diagram, CRC cards ,sequence diagrams, and use cases. The class diagram and the CRC cards identify the key responsibilities of each class, and the collaboration it might need to make with other objects to provide a specific service. Our design is object oriented, this will make it very easy to the developers to stay on the right track. Developers will have to make sure they gave each class the appropriate responsibilities according to the CRC cards, and any minor changes within a class will not have an effect on the system requirements.
CMPS 282
Software Engineering/SRS
Alias
59