Colorado Technical University
SWE481-1801B-01 Software Engineering Capstone I
Software Engineering Methodology
Student: Seth Holley
06 Mar 2018
Table of Contents
Project Outline ............................................................................................................................................ 3
Software Development Model .................................................................................................................... 3
Software Development; Business Requirements and Resources ............................................................ 4
Requirements............................................................................................................................................... 9
Design ......................................................................................................................................................... 10
Development .............................................................................................................................................. 14
Development Methodology ................................................................................................................... 14
Key Processes ........................................................................................................................................ 14
Testing ........................................................................................................................................................ 16
Test Case 1: Create an account ............................................................................................................ 18
Test Case 2: Making an Order............................................................................................................. 19
Test case 3: Making Payment .............................................................................................................. 20
Project Schedule ........................................................................................................................................ 21
Risk Analysis ............................................................................................................................................. 22
References .................................................................................................................................................. 23
Project Outline
The Virtual Floor Store is an e-commerce application that will allow the customers to select
their desired products from a range of flooring products. As such, the customers will enter the
necessary information such as the quantity requested, payment information, shipping address and
any other special requests (Da Silva, 2011). The most suitable software development technology
that can be used in the development of this project is the Agile Scrum and will be built using the
Java-based Spring MVC (framework).
Software Development Model
Agile Scrum is an iterative software development methodology with a flow of processes all aimed
at completing the development of a system. “Agile methods or Agile processes generally promote
a disciplined project management process that encourages frequent inspection and adaptation, a
leadership philosophy that encourages teamwork, self-organization and accountability, a set of
engineering best practices intended to allow for rapid delivery of high-quality software, and a
business approach that aligns development with customer needs and company goals.” (Ruparelia,
2010).
Software Development; Business Requirements and Resources
The requirements gathering approach that will be used is the user stories. This is a highlevel technique that focuses on establishing the full feature design, beginning from the initial
vertical slice to the fully functional feature. It captures the development of the software by
describing the type of users and their main expectations from the project. As the user stories are
written, the actual requirements of the systems are gathered with the help of story mapping. User
stories provide a reasonable amount of information that can be used by the developers to
implement and construct a software.
High-Level Requirements
Requirement
Description
Function /Non- Rationale
Measurement
functional
Criterion
Priority
Requirements
User login and The application should provide the Functional
logout
The ability to login and logout
ability of the user to log in and log-
How long does it take 1
to log in?
out without any interruptions.
Entry of Data
The user should be able to enter the Functional
Entry of data is essential to How much data can 2
necessary data such as, quantity
enhance a proper adaptability and be entered?
requests, the billing information
functionality of the system.
and the shipping address.
Navigation
The user should be able to enact an Functional
Navigation allow the user to Amount of products a 10
extensive search of the various
search on a variety of products in can search?
products in the platform.
the online store.
Make
The system should allow the user Functional
With
the
ability
to
make Acceptance of the 4
payments
to make payments using various
payments, a customer can acquire payment.
methods of payments such as credit
a product.
cards and PayPal.
User Interface
The application should minimize Functional
This ability ensures that the user How
the
only
user’s
need
to
enter
information. The features of the
enters
the
much 5
necessary information can be
information in the system.
entered?
application will be provided.
Speed
The application should be fast to Non-functional
A fast application attract a range Processed
ensure improved usability for the
of users.
users.
transactions
Application response
time.
6
Accessibility
Reliability
The system should be easily Non-functional
An application that is easily Rate of failure
accessed from any web device in
accessible provides a legendary
any location.
experience for its users.
The application should be always Non-functional
The consistent availability of the Probability
available for the users to navigate
application improves the sales of unavailability.
the range of products in the online
the firm.
7
of 8
store.
Usability
The application should be easily Non-functional
The ease of use ensures that the Training time
operated by the users
customers
have
a
better Number
experience with the application.
of
The application should be able to Functional
With fault tolerance, the users Rate of failure
Tolerance
respond to the requests from the
will still be able to access the
customers irrespective of minimal
information
failure
failure.
of
help
frames
Fault
irrespective
9
11
Security
The system should be highly Non-functional
A secure platform allows the Reliability
secured and protected from the
users to navigate without worry of security techniques
invasion of authorized persons,
cyber-attack hence increasing the The rate of frequent
malicious attacks, viruses, integrity
consumer base.
issues and other vulnerabilities
of
cyber-attacks.
the 3
Requirements
The requirements elicitation process is a technique that involves the establishment of the
overall organizational gathering and understanding of the background information of the system.
In this process, the technical professionals such as system developers and engineers work together
with the users of the system and customers to ensure a successful project (Aranda, 2010). The
chain of process in this technique interact with each other and allows all parties to make the viable
decisions. The requirement elicitation process used in the case of the Virtual Floor store is the joint
workshop. Under this technique, a meeting is facilitated with a set of clear objectives. Moreover,
a group of people engages in the discussion of various activities in order to reach the set objectives.
Requirements are the key elements during software development. The project team has a
task of identifying the high-level, functional and non-functional requirements. The main functional
requirements of the Virtual Floor Store include; User login and Logout, entry of data, navigation,
making payments and User Interface. The non-functional requirements, on the other hand, include
speed, accessibility, availability, and Security. With the use of the joint workshop in the
requirement elicitation process, the identified elements will allow the project designers to establish
the most appropriate application.
Data management centers various operations in every organization. Poor data management
and control can lead to inefficient business process and ultimate reduction in the consumer value.
Quality is one of the essential requirements of data management. The data provided should be of
good use to the customers. The proper data format is another requirement of the data management.
Ideally, the customers should be able to easily navigate through a range of products in the virtual
store. This requirement can be achieved by grouping various products together for better
accessibility and navigation. For data flow consistency and access, the responsible team should
foster a continuous risk analysis and management (Chen, 2012). This approach entails using a
range of methods and techniques that can allow proper risk detection and prevention.
Design
This section entails the overall architecture of the application and components of the
application with the support of the diagrams. It also provide use cases of each component, visual
design of the screen and other data management requirements.
Overall Architecture of the application
The virtual store will entail the customers who will access the platform through various
web-supportive devices such as, desktops, laptops, and smartphones. The store will also entail a
firewall that will monitor and control the incoming and outgoing connections based on the
specified rules. Moreover, the e-commerce application will entail a server that will engineers the
incoming and outgoing requests. A virtual floor store database is also part of the overall
architecture. This element has a collection of data, which can be accessed by the customers. From
the end, there are workstations in which the system operators can use to manage the platform. The
overall architectural design can be shown in the diagram below;
Internet
Firewall
Customers
Laptops,
desktops and
smartphones
Virtual Floor
Store Server
Workstations
Virtual Flore Store
Database
Firewall
Workstation
System Operators
Components of the Application
➢ Customers – The customer is the main component of the virtual floor store. He or she
makes an order based on the range of products presented on the platform.
➢ Order – Under the e-commerce application, the customers make an order.
➢ Payment- Upon making the order, the customer can then choose to make the payment. The
two main methods used for payment are credit cards and PayPal.
➢ Warehouse – Once the payment is confirmed, the order is transported to the warehouse
ready for shipping.
➢ Shipping – Once the order has been prepared, the order is shipped to the customer.
The relationship of the components can be represented in the diagram below;
Payment
Order
Customer
Warehouse
Shipping
Use cases
Component
Use case
•
Creates an Account
•
Makes an order
•
Make an order
•
Remove an order
•
Edit the quantity of the number product.
Payment
•
Customer chooses the most suitable mode of payment.
Warehouse
•
Packs the order
Shipping
•
Ships the order.
Customer
Order
Visual Design
Development
This section describes the scrum methodology and key processes that encompasses the
development of the virtual floor store.
Development Methodology
The most suitable methodology that can be used in the coding phase is the Scrum
methodology. Agile Scrum is an iterative software development methodology with a flow of
processes all aimed at completing the development of a system (Lee, 2010). This method is highly
scalable. From small to large projects, scrum can manage both simple and hard projects. Being
part of the agile software methodology, the probability of success of scrum remains high even
during complex activities. The main phases of scrum are planning, staging, development, and
release. During planning and staging, the workload of the coding phase is prepared. All the
functional development in the methodology is done iteratively and each sprint that contributes to
the improvement of the product is released. The main practices of scrum comprise of; iterations,
increments, emergence, self-organization, and collaboration.
Key Processes
➢ Planning.
This is the initial process in the development of a product. It involves gathering and preparing
the essential elements that will be used in coding. This process also entails enacting a kick-off
meeting in which the project team such as, scrum master and developers would discuss on their
various roles and make high-level decisions to ensure effective development of the virtual floor
store (Sohaib, 2010). The scrum master only approves the success of the planning process.
➢ Sprint cycle
This is a vital process in the product development. It entails the actual development of the
project. It involves conducting meetings for 3-4 weeks to analyze the released plans. The scrum
master demands the various accomplishment that has been achieved since the last meeting (Sohaib,
2010). During this step, the released plans are distributed among the team members who will the
conducted study of how the plans were formulated and how they can contribute to the successful
development of the virtual floor store. The scrum master can only approve this step when the
variable quality, time, competitions and costs are at balance.
➢ Closure
This is the final process of the product development can only be enacted after the sprint cycle
has been executed by the scrum master. It is the process of closing the development of the project.
During the closure, all the released plans and the sprint cycle process are aligned to ensure that the
required level of quality has been achieved (Sohaib, 2010). The project team can then document
a report of the process, which can be approved by the project manager before the product is
released to the market.
Testing
Testing in the agile scrum, unlike the waterfall methodology, is not a phase at the end of
the project. The system testers cannot wait until the system is ready to begin its testing. Testing in
agile follows the practices of the development methodology. The project testers and developer
work together to ensure a successful achievement of the Virtual Floor store. The following are the
phases in which testing can be undertaken in agile scrum;
➢ High-level design
This phase entails a review of the backlog designs, and identify any changes that are necessary
for the implementation of the backlog items. During this phase, a domain analysis is conducted to
the extent in which various updated and modeling is executed. In this phase, integration testing
can be executed. Ideally, the individual deigns units are combined and tested as a group. The
primary goal of this type of testing is to expose any faults in the design.
➢ Development
The development phase is an iterative cycle of the development of the project. Ideally, the
scrum master seeks to ensure that the quality, time, competition and functionality are well
balanced. One of the most suitable types of testing in this phase is the integration testing. It is done
with continuous integration as the sprint progress during the stipulated sprint cycle. The
development phase can also be achieved with unit testing. This form of testing is done by both
system testers and developers with tests cases ensuring complete design coverage. System testing
is another types of testing that are done as the development phase progresses. The user stories,
features, and functionality are also tested (Sohaib, 2010). The primary aim of the system testing is
to evaluate the system’s compliance with the requirements and the expectations of the end-user.
➢ Release
Release entails the deployment of the product after the development has been completed.
During this phase, the user-acceptance testing can be enacted. This type of testing entails testing
for the system acceptability. Ideally, the system developers and the testers work with the end-users
to ensure that the deployed product is of the expected quality (Sohaib, 2010). In the event of bugs
and errors, the system development team can engage in formulating new strategies for fixing and
ensuring that the virtual floor store is successfully released.
Test Case 1: Create an account
Test
Test
Test purpose
Steps followed
Prerequisites
Test data
Expected Results
Case
Pass/Fail
criteria
no.
1.
Create an
To test if an
account
error message
Gather all the
Email,
The home page of
Virtual
data for the
username and
the system
occurs when
Floor Store
account creation
password.
the username
system
process
is not inserted
page.
in the account
2. Click on
creation
process
1. Click on the
“New User”
3. Leave
The virtual floor
store secure sign
up is displayed
“Username
An error message
field blank”
is displayed that
reads, “Please
insert a
username”
Pass
Test Case 2: Making an Order
Test Case
Test
no.
2
Test
Steps followed
Prerequisites
Test data
Expected Results
purpose
criteria
Making an
To verify
order
that
on the
clicking
particular
submit
product
button after
of
you have
shipping
The checkout
entering
interest.
the
address.
page is presented
making an
1. Search
2. Click
1. Decide on
Username,
The product is
the product
and password,
displayed, with
to buy.
credit card
its price.
2. Ensure that
information,
payment
with the buyer
order,
“Buy
and
asked to submit
submits the
Now”
shipping
the shipping and
information
the payment
data to the
Pass/Fail
3. Enter
server and
payment
accepts the
and
order
shipping
The page
details
indicates “Order
4. Click
“Submit”
details.
accepted”
Pass
Test case 3: Making Payment
Test Case
Test
no.
3
Test
Steps followed
Prerequisites
Test Data
Expected Results
purpose
Making a
To verify if
payment
an error
criteria
1. Click
Gather all the
“Payment” necessary
Username,
The system
and password,
displays the text
occur when
payment
credit card
boxes to enter
the buyer
information.
information,
billing
2. Enter a
shipping
information.
wrong
wrong/
address.
credit card
non-
An error message
number.
existent
is displayed that
credit card
reads, “The credit
number.
card number does
submits a
Pass/Fail
not match the
security number”
Pass
Project Schedule
Risk Analysis
References
Aranda, G. N. (2010). A framework to improve communication during the requirements
elicitation process in GSD projects. Requirements engineering.
Chen, D. &. (2012). Data security and privacy protection issues in cloud computing. IEEE.
Da Silva, T. S. (2011). User-centered design and agile methods: a systematic review. IEEE.
Sohaib, O. &. (2010). Integrating usability engineering and agile software development: A
literature review. international conference on IEEE.
Lee, G. &. (2010). Toward agile: an integrated analysis of quantitative and qualitative field data
on software development agility. Mis Quarterly.
Purchase answer to see full
attachment