SE Manual
SE Manual
LAB MANUAL
FOR
Software engineering
(3150711)
BE 5TH SEM
COMPUTER ENGINEERING
Trushan
Mithil Mali
Patel
Mr. / Ms. …..………………………………………………..........
201170107508
201170107001
……………………with enrollment no………………………..Has
successfully completed his / her laboratory experiments in the subject
Software Engineering
Engineering -- 3150711
(with code)…………………………………………………from 3150711 the
Computer Engineering
Computer (BE)
Engineering (BE)
department of………………………………………………...during
2021 - 22
2022-23
the academic year……………….
1.Communication
▪ We will communicate with client regarding what type of software looking for
web app/website. It will give us broad idea about client’s needs so that we can
have a perfect objective in front of us.
▪ First we start with budget so that we can develop a software in particular that
budget.
▪ Third is design we want to know what type of design client wants so futuristic or
fluent or material. Since it varies from system to system.
▪ Then for networking what type of cloud server client is looking for AWS or
Azure.
▪ What type of server configuration & data storage (HDD, SSD, NVMe) client
needs?
▪ What type of security client wants i.e. what type of encryption & data policies
client needs for that particular software?
▪ Communicating with client pave perfect road for developing the software.
Software Engineering(3150711) 201170107508
2.Planning
Time Management
▪ Critical Chain
➢ As Per Developer ability chart of time require to complete work
▪ Critical Path
➢ Chart of all the things [In Days]
Completion Time
Frontend &
Coding Backend Security
33% Checkup
17%
Frontend & Backend
1.Construction
▪ We will build machine learning from the scratch using following libraries.
→ Laravel Tinker
→ Laravel Backup
→ PHP Rector
→ Stripe-PHP
▪ We will also use wordPress standard library as well. We will also use and
advance sql connection for data stored in effective way.
1. Deployment
▪ Testing
➢ In testing we start with alpha version then beta version then insider preview &
finally public release so that we can tackle all the bugs along the way.
▪ Client review
➢ Here we approach the client and ask for about his opinion in broad sense
‘review’. What client thinks about software & did we meet up his expectations
or not.
➢ Here we try to find bugs in software so that software can run smoothly on any
system & also will talk about the features that we can come up with for further
updates.
▪ Software Support
➢ We will provide way for user to communicate with support in case they got any
issues related to software.
▪ Launch
2. Modeling
Tutorial-2
Software Requirements Specification (SRS)
Book E-Commerce System (BECS)
1 Introduction
The Software Requirements Specification is designed to document and describe the agreement between the
customer and the developer regarding the specification of the software product requested . Its primary purpose
is to provide a clear and descriptive “statement of user requirements”. that can be used as a reference in further
development of the software system. This document is broken into a number of sections used to logically
separate the software requirements into easily referenced parts.
This Software Requirements Specification aims to describe the Functionality, External Interfaces, Attributes
and Design Constraints .
1.1 Purpose
Defining and describing the functions and specifications of the Book E-Commerce System (BECS) is the
primary goal of this Software Requirements Specification (SRS). This Software Requirements Specification
illustrates, in clear terms, the system’s primary uses and required functionality as specified by our customer.
1.2 Scope
The software system being produced is called Book E-Commerce System or BECS. It is being produced for a
customer interested in selling books via the Internet. This system is designed to “provide automation support”
for the process of placing books for sale on the Internet and facilitating the actual sale. The system will be run
on a central server with each user having a remote user interface through a web browser to interact with it.
The Book E-Commerce System will allow any user to create an account to become a customer. The customer,
through the process of account creation, will have the option to become a member of the site. The system will
allow customers to browse, search, select, and add books to a shopping cart. Then, provided they have books in
their shopping cart, check out books in shopping cart and decrement the stock that the inventory the system
maintains. The BECS also allows a manager to manage the inventory with full create, retrieve, update and
delete (CRUD) functionality with regards to books in the system. It will also allow, on an inventory wide basis,
customers and managers to interact with a
promotion system that handles percentage-off promotions that can be applied to member’s orders.
The BECS will have numerous constraints on what it can do. The system will not have full credit-card
processing capabilities. It will not allow managers to be customers. The manager will be a hard-coded user and
only a single manager will exist. There will be no actual book ordering and order completion, however the
system will provide the customer with a receipt and it will log the transaction details. The system will not allow
Software Engineering(3150711) 201170107508
multiple promotions to be added to a single shopping cart nor will it allow a customer to add more than one of
each item to their cart. The system also will not allow users to retrieve passwords or edit their user details.
1.4 Organization
This Software Requirements Specification document is divided in to multiple subsections. The first section
includes explanations of the Purpose, Scope and Organization of the document. The first section also handles
the description of project specific words, acronyms and abbreviations that will be used in the document. The
second section of the document is separated into the following five different sections, each detailing specific
details of system uses and their corresponding actions: Product Perspective, Product Functions, User
Characteristics, Constraints, Assumptions and Dependencies, Apportioning of Requirements. The third section
Software Engineering(3150711) 201170107508
is an enumerated listing of all of the requirements described for this system. The fourth section encompasses all
of the Use-case, Sequence, State and Class diagrams that model the system. In the fifth section there exists a
Prototype of the system along with a sample scenario that graphically describes the use of the system. The sixth
section contains a listing of all related reference materials used in this document. The seventh and final
subsection is dedicated to providing a point of contact for any viewer of this document.
2 Overall Description
This section includes details about what is and is not expected of the BECS system in addition to which cases
are intentionally unsupported and assumptions that will be used in the creation of the BECS system.
The website must be available to anyone using the Computer Science Department’s provided computer
resources in the MSU Engineering Building and as such must work correctly in both Internet Explorer and
Mozilla Firefox. As stated by the customer, there are no hardware or software requirements beyond these
including, but not limited to, memory or specific software packages that need to be utilized nor software
packages that need not be utilized.
2.4 Constraints
As stated by the customer, security is not a concern for this system. The database may store passwords in plain
text and there doesn't need to be a password recovery feature nor lockout after numerous invalid login attempts.
As such, the system may not work correctly in cases when security is a concern. These cases include those
listed above in addition to lack of an encrypted connection when sending credit card information and forcing
users to use “strong” passwords. A strong password is a password that meets a number of conditions that are set
in place so that user's passwords cannot be easily guessed by an attacker. Generally, these rules include
ensuring that the password contains a sufficient number of characters and contains not only lowercase letters
but also capitals, numbers, and in some cases, symbols.
Condition Table
Mode Conditions
Software Engineering(3150711) 201170107508
Mode Class
Old Mode Login IsManager IsCustomer Logout New Mode
UserLoggedOut @T t - - ManagerLoggedIn
@T - t - CustomerLoggedIn
ManagerLoggedIn - - - @T UserLoggedOut
CustomerLoggedIn - - - @T UserLoggedOut
Event Table
@T(User::Login() ==
UserLoggingIn TRUE) never
@T(Logout() ==
UserLoggingOut never TRUE)
User::LoggedIn TRUE FALSE
Condition Table
Mode Conditions
UserLoggedOut FALSE TRUE
ManagerLoggedIn TRUE FALSE
CustomerLoggedIn TRUE FALSE
UserLoggedIn TRUE FALSE
Provider:
We have assumed that the BECS will be running on a properly working web server and database system with
an Internet connection that allows this system to perform all communications with clients.
Assumptions:
• There is no need for anyone to be able to order more than a single copy of a book (or any item) in a
single transaction.
• The manager account’s username and password maybe hard coded.
• The manager cannot be a customer.
• Any user cannot edit their account information.
Additionally, the system may need to later be extended to provide additional functions. One such example is
added support for visually impaired users. In many cases a screen reading program is used and ensuring that
page-layout reads from top-left to bottom-right in a logical manner would be required.
3 Specific Requirements
1. Restrictions
1.1. User Side
1.1.1.Software
1.1.1.1. Internet Explorer or Mozilla Firefox
1.1.2.Hardware
1.1.2.1. Computer Science Department Laboratory Terminal
1.2. System Side
1.2.1.Software
1.2.1.1. Web-based application
1.2.1.2. Database information storage system
2. Data Structure
2.1. Book has these attributes
2.1.1. Unique ID (auto-increment starting at 1)
2.1.2.Title
2.1.3.Author
2.1.4.Price
2.1.5.Reorder Threshold
2.1.6.Stop-order Boolean value
2.1.7.Stock
2.2. Customer has these attributes
2.2.1.Unique Username
2.2.2.Password
2.2.3.Name
2.2.4.Email Address
2.2.5.Postal Address
2.2.6.Member/Not Member Boolean value
2.3. Manager has these attributes
2.3.1.Username
2.3.2.Password
2.3.3.Email address
2.4. Order log entries have these attributes:
2.4.1.Unique ID (auto generated)
2.4.2.Time transaction took place
2.4.3.Date transaction took place
Software Engineering(3150711) 201170107508
3.4.4.4. There is a 30-minute session time out after which a logged in user will be logged out
automatically.
3.4.4.5.3.4.4.5.
3.5. Order Logging
3.5.1.Specifications
3.5.1.1. Required Information:
3.5.1.2. A manager can view all past transactions from all users
Order log entries are generated when a user successfully checks out their shopping cart
4. Modelling Requirements
Class Diagram
The purpose of this diagram is to show how objects within the BECS system will interact with each other in
order to achieve the functionality required by the Use Case diagram. Below is a list of what you will see in the
diagram itself as well as the class descriptions that follow.
Classes Rectangles in the diagram that are split into three parts. The top
section is the name of the class, the middle section is the list of
variables that are stored in the class and the bottom section is
the list of functions in the class. These rectangles represent
objects within the system.
Variables These have a name followed by a semicolon and then a type.
The type denotes what kind of data can be stored in the variable.
Functions These have a name followed by a list of any variable that the
function receives in-between the parenthesis “()”. After that
there is a semicolon and any variables that the function may
return, if none it will be void.
Software Engineering(3150711) 201170107508
Generalizations Shown using a line from one object to the other with an unfilled
triangle on one end. The object without the triangle inherits the
functionality and variables from the object that has the triangle
pointing towards it.
Aggregations Lines that have an unfilled diamond on one end. This means
the object with the diamond contains the object(s) without the
diamond. This may have numbers on the ends (multiplicities).
Associations Lines connecting two classes that can have a name beside it,
may point in one direction, and may have numbers at the ends
(multiplicities). These designate some relationship between the
objects. Arrows are simply there to assist you in recognizing
which direction the name of the association is read.
State Diagrams
The state diagrams take all of the functionality found in the previous diagrams and combines them together to
demonstrate the possible changes in the state within BECS. These state diagrams contain all the possible scenarios
shown in the sequence diagrams.
Starting Point This is where the system starts at and it is represented with a
filled circle that has an arrow that point towards the starting
state.
States These are represented in the diagram by the boxes that have the
rounded edges. They are separated into two half’s the top half
is the title of the state and the bottom half can have additional
states encapsulated within but these state diagrams do not
contain any encapsulated states within states.
Transitions The arrows that connect the states to each other and have a
label of the event that occurs which triggers the transition These
triggers are normally functions but they can also be a
new call that is the event of creating a new object; this is
represented simply with the word “new”. Some transitions do
not have a label, these are returns from the current state to the
previous state.
Objects The larger boxes that can contain several states and transitions.
They are classes within the state diagram. The text at the top
of the box is the name of the class.
Software Engineering(3150711) 201170107508
Software Engineering(3150711) 201170107508
5 Prototype
Software Engineering(3150711) 201170107508
Software Engineering (3150711)
Tutorial 3
A.. Development of Software Requirements Specification(SRS)
Functional Requirements :
A functional requirement describes what a software system should do. Functional
requirements define the inputs, outputs and their behavioral interrelationships. The
proposed system will be able to perform the following functional requirements:
• A person can search for the nearest available ambulance.
• Include a login and admin feature to access the software system by the ambulance
dispatch staff.
• Depending on the number of people involved in the accident, the dispatching
team will allocate the required number of ambulances.
• The ambulance dispatch system will calculate and display the time required to
dispatch the ambulance for each incident.
• The proposed system will be able to track the status of the ambulance.
Non–Functional Requirements :
Non-functional requirements define the qualities and restrictions of the system being
developed. The following are the non-functional requirements:
• Usability. Ambulance Dispatch System shall provide mouse and keyboard
navigation. Ambulance Dispatch System shall be easy to navigate by using clear
words, menus and drop-down lists. Ambulance Dispatch System shall be
accompanied with a user manual.
• Reliability, Ambulance Dispatch System shall be available 24 hours a day for
application users.
• Performance. Ambulance Dispatch System shall not take longer than 15 seconds
to respond to a page request for members; when using an internet connection that
is 56k or higher
• Supportability. The ambulance dispatch system should be supportable in current
equipment such as computers, monitors, printers etc.
• Capacity requirements: The system will store data for a large amount of data.
Software Engineering (3150711)
Flow Chart
Software Engineering (3150711)
Approach
Software Engineering (3150711)
Test Type
Item(s) to be tested
Specifications
Expected
Input Output/Result
Procedural Steps
7
Software Engineering (3150711)
Test cases
Test Case # - 001
Test Case Name - User Login
Test Items –
Functionality of the User Login screen
Input Specifications –
Valid UserName – User123
Valid Password – pass
Invalid UserName – User13
Invalid Password - pas
Output Specifications –
Input Expected Output
Valid UserName + Valid Display Dispatch Screen
Password
Invalid UserName + Valid Display Error Message
Password
Valid UserName + Invalid Display Error Message
Password
Invalid UserName + Invalid Display Error Message
Password
Environmental Needs –
Working CAD System.
Special Procedural Requirements –
None
Intercase Dependencies –
None
Test Case # - 002
Test Case Name – Enter Incident Info
Test Items –
Software Engineering (3150711)
Output Specifications –
Input Expected Output
Valid Phone # Address field is populated
Invalid Phone # Throws exception
Environmental Needs –
Working CAD System.
Special Procedural Requirements –
None
Intercase Dependencies –
None
Software Engineering (3150711)
Login Screen
1. Jenkins
Jenkins is a Java-based continuous integration tool used for orchestration for the
application provisioning and deployment. It has to be associated with a version control
system (SVN) when you want a new code to push into the code repository.
The Jenkins server allows you to build and test the new code and notifies the team about
the process, changes and final results. Jenkins as an orchestration tool used for building
pipelines. You can also configure polls for any comments on SVN and trigger builds and
regression tests on the new code that is added according to the latest code commits.
2. Puppet
Puppet is a ruby based configuration management tool. It is written with puppet DSL and
is wrapped in modules. Puppet is developed with special consideration of system
administrators. The design of Puppet felicitates fast deployment, efficiently manages the
infrastructure as code with a task-based approach. Which improves the overall quality of
the software.
It runs a puppet agent running on all servers that need to be configured. Instead of running
any codes on the infrastructure it builds a graph that represents the code base of the
Software Engineering(3150711)
infrastructure. It will also figure out the best possibilities to achieve the desired state.
Puppet pulls a complied module with the specification desired and installs the software
needed to complete the tasks. You can find all the puppet community modules called
Puppetforge here.
3. Chef
Chef is one of the most popular agent-based cloud infrastructure automation tool for
configuration management. Ruby-based DSL is used, you have to code your infrastructure
and define the configuration scenarios. It uses agents to configure VMs and severs
according to the rules define in the cookbooks.
You’ll need an agent running on all the servers that require to be configured. Chef is helpful
to maintain consistent configuration, this reduces the operating costs, with effective data
centers management. And it also offers customization, flexibility, and readable
configuration policies.
The tools provide the support of simple migration, allows you to integrate with multiple
platforms such as FreeBSD and AIX. Chef provides you with a rich selection of ready to
use templates. You can find everything you need on the community cookbook here.
4. Vagrant
Vagrant is another most popular tool for configuring virtual machines for your
development environment. The tools run on the top of VM solutions such as Virtualbox
HyperV etc. Vagrant can handle all the configurations with help fo Vagrantfile. This
Vagrantfile contains all the configurations required for the Virtual machines. You can
create a configuration, it can be shared with other developers to imitate the process of the
same configuration. Vagrant also provides plugins for cloud provisioning, infrastructure
automation tools, and Docker.
5. Docker
Docker will be another most preferred tools for continuous integration and deployment.
Docker is an automation tool build on the top of Linux containers with the support for
containerization.
Docker works on the concept of process-level virtualization and creates isolated
environments for applications which are known as containers. The containers can be easily
shipped to another server without any changes made to the application, which further
doesn’t have any OS-related dependencies. Docker is predominantly used by DevOps
professionals in cloud computing and has active community support on both Windows and
Linux.
Software Engineering(3150711)
6. Saltstack
Saltsack is a Python-based configuration management tool. Unlike like few other tools
which pull the code for configuration from the server, Saltstack pushes the code to various
node simultaneously.
It compiles the code faster than Puppet and Chef and the configuration of the code is also
pretty quick.
7. Ansible
Ansible is complete agentless configuration management as well as an orchestration tool.
The configuration modules are written in YAML format and it is termed as “Playbooks”.
You can find all the community playbooks for your use here. Ansible is used for
integration, automation, development, testing, deployment and performance management.
The way of interaction between the system and its components is described by the user. It
reduces the complexity and removes unnecessary repetition in your infrastructure with ease
use. Ansible can also be modulated for multi-tier deployments and cloud provisioning.
8. Juju
Juju is a Python-based orchestration tool used to configure applications, scaling and
deployment of the application. It was developed by Canonical with attractive UI for cloud
environments when orchestrating your applications. Juju comes with the provision of using
a Command Line Interface to perform all the related tasks.
9. Sensu
Sensu is a monitoring framework used as a monitoring tool, specially built for cloud
environments. It is open source and written in Ruby. Sensu comes with ease of deployment
just like Chef and Puppet. It also has an enterprise edition for advanced monitoring.
10. Consul
Consul is an open source secret/ configuration management tool. It is considered ideal for
server discovery and a highly accessible key-value store. Consul allows you to have a use
case to store and retrieve the configurations in real-time.
Configuration Management
Ansible
Ansible is an agentless configuration management tool. It uses SSH to access the servers
it manages to communicate with them and execute predefined commands. It uses modules
called “Playbooks” that describe automation tasks it performs. Playbooks are the
configuration files written using a yaml file. The main reason it is so attractive, both to the
newer users and more experienced admins is its simplicity.
Pricing: Offers Standard and Premium versions.
Chef is a popular tool which is used for the configuration and management of your cloud
infrastructure. The chef server stores information about your node’s current and desired
configuration. Chef’s main task is to push the desired configuration instructions, also
known as cookbooks, to all other nodes connected to the server. These instructions help us
easily scale and modify our infrastructure if needed.
With Chef, we are using infrastructure as code - meaning that you are managing your IT
infrastructure using configuration files. To download Chef click here.
Pricing: Free and open source but does have enterprise options.
Software Engineering(3150711)
Puppet
Puppet is another popular configuration management tool on our list which consists of a
puppet master server and puppet agents which are located on the servers that we are
managing. The Puppet master server stores the configuration files needed for the servers
that are being managed. The Puppet master communicates constantly with puppet agents
and checks if something needs to be updated/changed. Opposite to Ansible, it uses more
complicated Puppet DSL’s (Domain Specific Language), so if you want to use it you need
to learn its code. Luckily, there are more than 6000 “Puppet modules” you can use to
quickly automate desired parts of infrastructure. If you wish to test it out yourself here are
step-by-step instructions on how to install Puppet on Ubuntu server.
Pricing: Information is available by contacting the Puppet sales team.
SaltStack
SaltStack is the fourth in our list of configuration management tools. It is an open source,
command-line driven utility delivering configuration automation for DevOps and site
reliability engineers. Salt has an active community and effective support mechanism. It is
designed to allow for low-latency, high-speed communication between nodes when
performing remote execution. Salt is designed to work with the Unix/Linux and Windows
operating systems, but the Master Salt server can only work on Unix/Linux operating
systems. Salt can also be utilized in a multi-master configuration increasing its resiliency.
Pricing: Free and open source.
Monitoring
Nagios
Software Engineering(3150711)
Nagios XI is an open-source tool used for system-wide monitoring. You can observe any
number of devices as long as they are connected to the internet and have the Nagios plugin
installed. If there is not a plugin available for your device, we can code our own using
various coding languages. The learning curve for Nagios is a gradual one. There is also a
graphical user interface which allows you to configure Nagios with only a few clicks, and
start monitoring your devices right away. Nagios contains multiple features which can be
reviewed here: https://www.nagios.com/products/nagios-xi/#features
Pricing: Nagios offers various products.
Prometheus
Objective
Calculating effort for Attendance Management System using Function Point
oriented estimation model. It is a method to break systems into smaller components,
so they can be better understood and analyzed. It is used to express the amount of
business functionality, an information system (as a product) provides to a user. Fps
measure software size. They are widely accepted as an industry standard for functional
sizing. Function points are used to compute a functional size measurement (FSM) of
software. The cost (in dollars or hours) of a single unit is calculated from past
projects.Function Point Analysis can provide a mechanism to track and monitor scope
creep. Function Point Counts at the end of requirements, analysis, design, code, testing
and implementation can be compared. The function point count at the end of
requirements and/or designs can be compared to function points actually delivered. The
amount of growth is an indication of how well requirements were gathered by and/or
communicated to the project team. If the amount of growth of projects declines over
time it is a natural assumption that communication with the user has improved.
Overview
Number of user inputs: Each user input that provides distinct application oriented
data to the software is counted. Inputs should be distinguished from inquiries, which
are counted separately. Number of user outputs: Each user output that provides
application oriented information to the user is counted. In this context output refers to
reports, screens, error messages, etc. Individual data items within a report are not
counted separately.
Number of user inquiries: An inquiry is defined as an on-line input that results in the
generation of some immediate software response in the form of an on-line output. Each
distinct inquiry is counted.
Number of files: Each logical master file (i.e., a logical grouping of data that may be
one part of a large database or a separate file) is counted.
Number of external interfaces: All machine readable interfaces (e.g., data files on
storage media) that are used to transmit information to another system are counted.
Once these data have been collected, a complexity value is associated with each
count. Organizations that use function point methods develop criteria for determining
whether a particular entry is simple, average, or complex. Nonetheless, the
determination of complexity is somewhat subjective
Procedure
FPA provides different estimation mechanism within it for development and
maintenance projects. (having different multiplication factors).This approach computes
the total function points (FP) value for the project, by totaling the number of external
user inputs, inquiries, outputs, and master files, and then applying the following weights:
inputs , outputs , inquiries, and master files.
FP POINTS COMPUTATION
To compute function points (FP), the following relationship is used:
FP = count total [0.65 + 0.01 Σ ( Fi )]
Software Engineering(3150711)
where count total is the sum of all FP entries .
The Fi (i = 1 to 14) are "complexity adjustment values" based on responses to the
following questions :
1. Does the system require reliable backup and recovery?
2. Are data communications required?
3. Are there distributed processing functions?
4. Is performance critical?
5. Will the system run in an existing, heavily utilized operational environment?
6. Does the system require on-line data entry?
7. Does the on-line data entry require the input transaction to be built over
multiple screens or operations?
8. Are the master files updated on-line?
9. Are the inputs, outputs, files, or inquiries complex?
10. Is the internal processing complex?
11. Is the code designed to be reusable?
12. Are conversion and installation included in the design?
13. Is the system designed for multiple installations in different organizations?
14. Is the application designed to facilitate change and ease of use by the user?
Each of these questions is answered using a scale that ranges from 0 (not important or
applicable) to 5 (absolutely essential). The constant values in Equation and the
weighting factors that are applied to information domain counts are determined
empirically. Once function points have been calculated, they are used in a manner
analogous to LOC as a way to normalize measures for software productivity, quality,
and other attributes:
Errors per FP.
Productivity = FP/ Person-
Month Quality = No of
faults / FP
Cost= $/FP
Documentation = Pages count / FP.
Effort = FP/ Person-Month
Software Engineering(3150711)
Example:
Assume that....
Number of user input :
5 Number of user
output : 5 Number of
user enquires : 6
Number of files :5
Number of external interfaces : 5
Software Engineering(3150711)
Apply these assumptions on a simple project and calculate the Count Total
FP = 101.7
Effort = FP / person-month
Software Engineering(3150711)
Advantages:
Disadvantages:
1. This method is more suitable for Business systems and can be developed for that
domain.
2. Many aspects of this method are not validated.
3. The functional point has no significant ant meaning, it’s just a numerical value.
Software Engineering(3150711)
Software Engineering(3150711)