ReportI
8September,2016
RishabhJain
UtkarshSehgal
AlphaMailClient
SoftwareRequirementsSpecification
Pageii
AlphaMailClient
TableofContents
REVISIONHISTORY................................................................................................................................................II
DOCUMENTAPPROVAL........................................................................................................................................II
1.INTRODUCTION.....................................................................................................................................................1
1.1PURPOSE...............................................................................................................................................................1
1.2SCOPE...................................................................................................................................................................1
1.3DEFINITIONS,ACRONYMS,ANDABBREVIATIONS................................................................................................1
1.4REFERENCES.........................................................................................................................................................2
1.5OVERVIEW............................................................................................................................................................2
2.GENERALDESCRIPTION....................................................................................................................................2
2.1PRODUCTPERSPECTIVE........................................................................................................................................2
2.2PRODUCTFUNCTIONS...........................................................................................................................................2
2.3USERCHARACTERISTICS......................................................................................................................................2
2.4GENERALCONSTRAINTS.......................................................................................................................................3
2.5ASSUMPTIONSANDDEPENDENCIES......................................................................................................................3
3.SPECIFICREQUIREMENTS................................................................................................................................2
3.1EXTERNALINTERFACEREQUIREMENTS...............................................................................................................3
3.1.1UserInterfaces.............................................................................................................................................3
3.1.2HardwareInterfaces....................................................................................................................................3
3.1.3SoftwareInterfaces......................................................................................................................................3
3.1.4CommunicationsInterfaces.........................................................................................................................4
3.2FUNCTIONALREQUIREMENTS...............................................................................................................................4
3.2.1<FunctionalRequirementorFeature#1>..................................................................................................4
3.2.2<FunctionalRequirementorFeature#2>..................................................................................................4
3.3USECASES............................................................................................................................................................5
3.3.1UseCase#1.................................................................................................................................................5
3.3.2UseCase#2.................................................................................................................................................5
3.4NONFUNCTIONALREQUIREMENTS......................................................................................................................6
3.4.1Performance.................................................................................................................................................6
3.4.2Reliability.....................................................................................................................................................6
3.4.3Availability...................................................................................................................................................6
3.4.4Security........................................................................................................................................................6
3.4.5Maintainability.............................................................................................................................................6
3.4.6Portability....................................................................................................................................................6
3.5INVERSEREQUIREMENTS......................................................................................................................................6
3.6DESIGNCONSTRAINTS..........................................................................................................................................7
3.7LOGICALDATABASEREQUIREMENTS..................................................................................................................7
3.8OTHERREQUIREMENTS........................................................................................................................................7
4.ANALYSISMODELS..............................................................................................................................................7
4.1USECASEDIAGRAMS........................................................................................................................................8
4.2CONTEXTDIAGRAMS.......................................................................................................................................8
4.3DATAFLOWDIAGRAMS................................................................................................................................8
4.4STATETRANSITIONDIAGRAM...................................................................................................................8
4.5ENTITYRELATIONSHIPDIAGRAM..............................................................................................................8
A.APPENDICES..........................................................................................................................................................9
SoftwareRequirementsSpecification
Pageiii
AlphaMailClient
A.1APPENDIX1.........................................................................................................................................................9
A.2APPENDIX2.........................................................................................................................................................9
SoftwareRequirementsSpecification
Pageiv
AlphaMailClient
1.Introduction
Client is meant to be a role. For example, a web application which provides message management,
composition, and reception functions may internally act as an email client; as a whole, it is commonly
referred to as webmail. Likewise, email client may be referred to a piece of computerhardwareor
softwareworldwhoseimportantroleistoworkasaemailclient.
1.1Purpose
ThisApplicationisusedforsendingandreceivingmailtoandfromtherecipient.
1.2Scope
1)ThisApplicationnamedalphamailwillbeusedtosendandreceivemessagesand
attachmentsofflinei.e.withouttheuseofanybrowser.
2)UnliketheothermailserversthisApplicationcanbeusedfortheotheruserswhoarenot
registeredinthealphamail.
3)Evenifuserlacksinternetconnectionthenalsosendingmailsispossible.
4)MailServerlikeyahoo,Gmail,Hotmail,outlookcanbeusedforaccessingthemailsend
bythesender.
1.3Definitions,Acronyms,andAbbreviations
SMTPSimple Mail Transfer Protocol (SMTP) is an Internet standard for
electronic mail (email) transmission. First defined by RFC 821 in 1982, it was last
updated in 2008 with the Extended SMTP additions by RFC 5321which is the
protocol in widespread use today.SMTP by default uses TCP port 25.
POP3 (Post Office Protocol 3) is the most recent version of a standard protocol
for receiving e-mail. POP3 is a client/server protocol in which e-mail is received and
held for you by your Internet server.
SoftwareRequirementsSpecification
Page1
AlphaMailClient
1.4References
[1]MailClient.(2016,August20).Retrievedfromhttps://en.wikipedia.org/wiki/Email_client
[2] Java MailApi Tag Library. (2016 August 20). Retrieved from
https://javamail.java.net/nonav/docs/api/
[3]JavaMail.(2016,August20).RetrievedfromMailClient.(2016,August20).Retrievedfrom
https://en.wikipedia.org/wiki/Email_client.
1.5Overview
WhilepopularprotocolsforretrievingmailincludePOP3andIMAP4,sendingmailisusually
doneusingtheSMTPprotocol.Anotherimportantstandardsupportedbymostemailclients
isMIME,whichisusedtosendfile,
emailattachments.Attachmentsarefilesthatarenotpartoftheemailproper,butaresentwith
theemail.TheemailclientswillperformformattingaccordingtoRFC5322forheadersand
body,andMIMEfornontextualcontentandattachments.Headersincludethedestinationfields,
To,Cc,andBcc,andtheoriginatorfieldsfromwhichisthemessagesauthor(s),Senderincase
there are more authors, and ReplyTo in case responses should be addressed to a different
mailbox.
2.GeneralDescription
Client is meant to be a role. This application which provides message management, composition,
and reception functions may internally act as an email client; as a whole, it is commonly referred
to as alpha mail. Likewise, email
client may be referred to a piece of computer hardware or software whose primary or most visible
role is to work as an email client.
2.1ProductPerspective
TheApplicationwillbeaWindowsbased,selfcontainedandindependentsoftwareproduct.
2.2ProductFunctions
TheSystemwillallowaccessonlytoauthorizeduserswithspecificrole.Dependinguponthe
usersrolehe/shewillbeabletoaccessonlyspecificmoduleofthesystem.
LOGINALoginfacilityforenablingonlyauthorizedaccesstothesystem.
SENDINGMAILTheusercansendtheircomposedmailalongwiththeattachment
usingthismodule.
RECEIVINGMAILThereceiverclientcanviewthepopupnotificationusingreceiving
module.
Downloadingattachments.
Facilityoflatestnewsupdates.
SoftwareRequirementsSpecification
Page2
AlphaMailClient
2.3UserCharacteristics
UserhaveelementarycomputerknowledgeandtheknowledgeofuseofApplication.
Theusershouldknowthedetailsofitscorrespondingemailaccount.
2.4GeneralConstraints
.Thesenderemailidandpasswordisrequired.Themailwillbesenttoparticularmailserver
providedinthedropdownmenu.
2.5AssumptionsandDependencies
Thesearesomefollowingassumptions:
ThesystemishavingrequiredconfigurationaswellasWindowsoperatingsystem.
FullworkingofalphamailApplicationisdependentsontheavailabilityofInternet
connection.
3.SpecificRequirements
None.
3.1ExternalInterfaceRequirements
3.1.1UserInterfaces
Main/Centralwindow:
Thisisthefirstscreenthatwillbedisplayedandallowstheusertoenterhisemailidand
password.Useralsoneedstoselectthehostserverwhetheritssmtp.gmail.comforsendingmail
usingGmailorother.
Helpwindow:
Thisisthescreen/windowavailableunderthemenuoptionhelpanditprovidesageneraland
briefintroductiontheproposedsystem.
Aboutwindow:
Thisisthescreen/windowavailableunderthemenuoptionhelpprovidingownershipand
buildinformationaboutthesoftwaresystem.
3.1.2HardwareInterfaces
AnIBMcompatiblePCisrequiredtosupportandrunthegivensoftware
Anx86,x86_64,arm,ultrasparcbasedprocessor.Javavirtualmachineiscompiledand
testedfortheseCPUarchitectures.
Atleast512megabytesofRAMisrequiredtorunboththesoftwareandthejavavirtual
machine.
SoftwareRequirementsSpecification
Page3
AlphaMailClient
3.1.3SoftwareInterfaces
AnIBMcompatiblePCrunningWindows/Linux/*BSD/*nixoperatingsystem.
JavaRuntimeEnvironmenttorunandtestthesoftware.
JavaDevelopmentKittobuildanddevelopthesoftware.
Modelioforgeneratingandviewingreports.
3.1.4CommunicationsInterfaces
None
3.2FunctionalRequirements
Thissectiondescribesspecificfeaturesofthesoftwareproject.Ifdesired,somerequirements
maybespecifiedintheusecaseformatandlistedintheUseCasesSection.
Abilitytosendmail.
Abilitytoreceivemail
AstandardSMTPclient
AstandardIMAP4client.
3.3UseCases
3.3.1Login
3.3.1.1BriefDescription
Thisusecasedescribeshowausercanloginintohisemailaccountusingthesoftwaresystem.
3.3.1.2Actors
Thefollowingactor(s)interactandparticipateinthisusecase:
user
SMTPServer
POP3/IMAPServer
3.3.1.3FlowofEvents
Basicflow:Thisusecasestartswhentheactorwishestosendorreadmail.Thelogin
intoaccountdialogispresentedtotheuserwherebyhecanchoosethedesiredemail
server.TheactorselectstheSMTP/IMAPserverwithamouseclickandloginsintoemail
serverusinglogincredentials.
AlternativeFlows:Incasetheuserisunabletologinintotheaccountusingthesoftware
system,anerrorisdisplayedaccordingly.
3.3.2ComposeMail
3.3.2.1BriefDescription
Thisusecasedescribeshowausercancomposethemailusingvariouseditingoptions.Usercan
sendattachmentaswell.
3.3.2.2Actors
SoftwareRequirementsSpecification
Page4
AlphaMailClient
Thefollowingactor(s)interactandparticipateinthisusecase:
user
3.3.2.3FlowofEvents
Basicflow:Thisusecasestartswhentheactorhasalreadyloggedin.Astheuserpresses
thecomposemailoptionawindowshowingtextareaincludingeditingoptionsfortext
appearswhereusercancomposemail.
AlternativeFlows:Incasethescreendoesnotsuccessfullyappearsinthesoftware
system,anerrorisdisplayedaccordingly.
3.3.3SendMail
3.3.3.1BriefDescription
ThisusecasedescribeshowausercanSendMailwhichhehascomposed.
3.3.3.2Actors
Thefollowingactor(s)interactandparticipateinthisusecase:
user
SMTPserver.
3.3.3.3FlowofEvents
Basicflow:Thisusecasestartswhentheactorwishestosendthemailhehascomposed.
TheSendbuttonispresentedtotheuseroncomposemailscreen.
AlternativeFlows:Incasethemailcouldnotbesent,anerrorisdisplayedaccordingly.
3.3.4ReceiveMail
3.3.4.1BriefDescription
Thisusecasedescribeshowausercanreadhisemailswhichhehasreceived.
3.3.4.2Actors
Thefollowingactor(s)interactandparticipateinthisusecase:
user
POP3/IMAPserver.
3.3.4.3FlowofEvents
Basicflow:Thisusecasestartswhentheactorwishestoreadtheemails.TheReceived
mail/Inboxmenuprovidestheuserwiththedesiredfacility.
AlternativeFlows:Incasethereceivedmailcannotberetrieved,anerrorisdisplayed
accordingly.
3.3.5DownloadAttachments
3.3.1.1BriefDescription
SoftwareRequirementsSpecification
Page5
AlphaMailClient
Thisusecasedescribeshowaattachmentfilecanbedownloadedfrommailserver.
3.3.1.2Actors
Thefollowingactor(s)interactandparticipateinthisusecase:
User
POP3/IMAPserver.
3.3.1.3FlowofEvents
Basicflow:Thisusecasestartswhentheactorhasalreadyloggedintotheemailaccount
andhasreadthereceivedmail.Themailifcontainsattachedfiles,theycanbe
downloadedeasily.
AlternativeFlows:Incasethefileisnotsuccessfullyloadedinthesoftwaresystem,an
errorisdisplayedaccordingly.
3.4NonFunctionalRequirements
Followingarethenonfunctionalrequirementsofthegivensoftwaresystem.
3.4.1Performance
Thesoftwareshouldbeabletosend,receivemail,readnewstoanextentpermittedbythe
operatingsystemwithoutaffectingtheoverallperformanceofthesystem.
3.4.2Reliability
Thesoftwaresystemmustprovidereliabilityregarding
Thedownloadedfilesshouldbeinconsistentstateincaseoffailures.
Theunethicalaccessofemailaccountisprotectedasitusesstrongnetworkingprotocols.
3.4.3Availability
Thesoftwareissupposedtoberesponsiveinallpossibleandimaginablestates,inthatitshould
notleaveauserastray.
3.4.4Security
Nospecificconcerns.
3.4.5Maintainability
Thesoftwareissupposedtobeeasilymaintainableandeasytochange.
3.4.6Portability
Thesoftwareisportableinthatitisexpectedtorunonthefollowingplatforms
Linux
mac
windows
3.5InverseRequirements
Thesoftwaresysteminnocaseshould,
SoftwareRequirementsSpecification
Page6
AlphaMailClient
Loginintoaccountwithinvalidlogincredentials.
Shoulddownloadthefilesinsameformatastheywerereceived.
3.6DesignConstraints
Thedesignconstrainsasapplicabletothegivensoftwaresystemare,
Thesoftwareistobebuiltusingwindowsasdevelopmentplatforms.
Allthedevelopmenttoolslicensedundersomeopenorfreelicense.
Openjdkisusedasjavaimplementation.
Developedonanx86orx86_64compatibleprocessor.
ThecodingstyleusedisasperOracle'sCodeConventionsfortheJavaProgramming
Language.
3.7LogicalDatabaseRequirements
None.
3.8OtherRequirements
Ifpossiblefollowingrequirementscanbeimplemented,
Useswingforjavafordevelopmentoftheproposedsoftwaresystem.
Implementinganinbuiltlibraryfornetworkprotocols.
4.AnalysisModels
None.
4.1UseCaseDiagram
SoftwareRequirementsSpecification
Page7
AlphaMailClient
4.2ContextDiagram
SoftwareRequirementsSpecification
Page8
AlphaMailClient
4.3DataFlowDiagrams(DFD)
SoftwareRequirementsSpecification
Page9
AlphaMailClient
4.4StateTransitionDiagrams(STD)
None.
4.5EntityRelationshipDiagram(ERD)
None.
5.ChangeManagementProcess
ThescopeofthesoftwaredoesnotindicatesfuturechangesinSRSdocument,incaseachange
isrequired,itshouldbeaccomplishedbythefollowingmembersofthedevelopmentteam,
RishabhJain
UtkarshSehgal
A.Appendices
A.1Appendix1
Open JDK : OpenJDK (Open Java Development Kit) is a free and open source
implementation of the Java Platform, Standard Edition (Java SE). It is the result of an
effort Sun Microsystems began in 2006.
A.2Appendix2
SMTPSimple Mail Transfer Protocol (SMTP) is an Internet standard for
electronic mail (email) transmission. First defined by RFC 821 in 1982, it was last
updated in 2008 with the Extended SMTP additions by RFC 5321which is the
protocol in widespread use today.SMTP by default uses TCP port 25.
POP3 (Post Office Protocol 3) is the most recent version of a standard protocol
for receiving e-mail. POP3 is a client/server protocol in which e-mail is received and
held for you by your Internet server.
Page10
AlphaMailClient
SoftwareRequirementsSpecification
Page11