0% found this document useful (0 votes)
25 views

SDLC Assignment2

The document discusses implementing the software development life cycle for a music streaming website. It includes gathering requirements through interviews and documentation analysis, analyzing requirements using UML diagrams, and implementing the design through wireframes and website code. The implementation includes frontend features like login, registration, browsing music and categories, and backend integration with a database.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

SDLC Assignment2

The document discusses implementing the software development life cycle for a music streaming website. It includes gathering requirements through interviews and documentation analysis, analyzing requirements using UML diagrams, and implementing the design through wireframes and website code. The implementation includes frontend features like login, registration, browsing music and categories, and backend integration with a database.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 48

ASSIGNMENT 2 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing

Unit number and title Unit 9: Software Development Life Cycle

Submission date 4/8/2023 Date Received 1st submission

Re-submission Date Date Received 2nd submission

Student Name Nguyen Hai Anh Student ID BH00125

Class IT 0502 Assessor name Ngo Thi Mai Loan

Student declaration
I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that
making a false declaration is a form of malpractice.

Student’s signature Anh

Grading grid
P5 P6 P7 M3 M4 M5 M6 D3 D4

1|Page
❒ Summative Feedback: ❒ Resubmission Feedback:

Grade: Assessor Signature: Date:

2|Page
Internal Verifier’s Comments:

Signature & Date:

3|Page
Contents
A. Introduction............................................................................................................................................................................................6
B. Body........................................................................................................................................................................................................7
I. Undertale a software investigation to meet a business (P5)............................................................................................................7
1. Techniques used for requirement analysis. Give the reason for the choice. (Choose 1 of 3 techniques BPI, BPA, BPR).............7
2. Techniques used to gather requirements..........................................................................................................................................8
2.1. Describe software investigation technique (Interview, JAD, Sessions, Questionnaires, Documentation analysis, Observation)8
2.2. Choose an appropriate method for Tune Source...........................................................................................................................9
2.3. Undertake the investigation...........................................................................................................................................................9
II. Analyze the requirements that you identified in Task 1 using a combination of structural and behavioral modeling
techniques that you have learned (P6)...............................................................................................................................................24
1. Activity diagram:...........................................................................................................................................................................25
2. Use case diagram:..........................................................................................................................................................................26
3. ERD diagram:................................................................................................................................................................................28
III. Implement (P7)..............................................................................................................................................................................29
1. Wireframe......................................................................................................................................................................................29
2. Website...........................................................................................................................................................................................33
C. Conclusion............................................................................................................................................................................................50
D. References.............................................................................................................................................................................................50

4|Page
Figure 1 Diagram.......................................................................................................................................................................................25
Figure 2 Use caseDiagram.........................................................................................................................................................................26
Figure 3 Use case Diagram........................................................................................................................................................................27
Figure 4 ERD Diagram..............................................................................................................................................................................28
Figure 5 Login...........................................................................................................................................................................................29
Figure 6 Register........................................................................................................................................................................................30
Figure 7 Page.............................................................................................................................................................................................31
Figure 8 Page.............................................................................................................................................................................................32
Figure 9 Page.............................................................................................................................................................................................33
Figure 10 Login..........................................................................................................................................................................................34
Figure 11 Register......................................................................................................................................................................................35
Figure 12 Home page.................................................................................................................................................................................36
Figure 13 Music Product............................................................................................................................................................................37
Figure 14 Category....................................................................................................................................................................................38
Figure 15 Product.......................................................................................................................................................................................39
Figure 16 Code...........................................................................................................................................................................................40
Figure 17 Code...........................................................................................................................................................................................42
Figure 18 Code...........................................................................................................................................................................................43
Figure 19 Code...........................................................................................................................................................................................45
Figure 20 Database....................................................................................................................................................................................46
Figure 21 Code...........................................................................................................................................................................................48

5|Page
A. Introduction
The software development lifecycle is a complex and challenging process that requires careful planning and coordination across
various stages. One crucial approach to achieving a high-quality software product is to implement the software development lifecycle.
The software development lifecycle is a process that guides activities from ideation to software operation, including activities such as
analysis, design, programming, testing, deployment, and maintenance. This process is tightly linked with the seamless flow of
activities, from understanding customer needs and requirements, designing a viable solution, building software code, ensuring quality
through testing, and successfully deploying the product. However, it is also a continuous process that demands flexibility and
adaptability to changes and adjustments throughout the development journey. To effectively implement the software development
lifecycle, the development team needs to ensure continuous and proactive interaction with customers to understand their needs and
expectations, as well as to face changes in requirements or business environment. Project management processes and tools should be
applied to ensure effective management of schedule, quality, and resources. In this ASM2, I will be writing about Performing
Software Investigations to Meet Business Needs. Use appropriate software analysis tools/techniques to perform software
investigations and generate supporting documentation. I will explain how to address user and software requirements. And I will
present about the music web that I have created.

6|Page
B. Body

I. Undertale a software investigation to meet a business (P5)


1. Techniques used for requirement analysis. Give the reason for the choice. (Choose 1 of 3 techniques BPI, BPA, BPR)
The technique chosen for requirement analysis is Business Process Improvement (BPI). BPI is chosen for the following
reasons:

• Process-Centric Approach: BPI focuses on analyzing and improving existing business processes to identify
areas of inefficiency or opportunities for optimization. This approach is useful when the goal is to optimize
existing processes to improve performance, reduce costs, or enhance customer satisfaction.

• Incremental and Continuous Improvement: BPI involves making incremental changes to existing processes over
time, rather than radical or disruptive changes. This allows for a gradual and continuous improvement of
processes, minimizing risks and disruptions to ongoing operations.

• Data-Driven Analysis: BPI relies on data-driven analysis of existing processes to identify bottlenecks,
redundancies, and other areas of improvement. Data is collected, analyzed, and used to make informed
decisions about which processes need improvement and how to implement changes effectively.

• Stakeholder Engagement: BPI involves engaging stakeholders across different levels of the organization to
gather insights and perspectives on existing processes. This helps in understanding the actual needs and
requirements of the stakeholders and ensures their involvement in the requirement analysis process, leading to
higher acceptance and adoption of changes.

• Flexibility and Adaptability: BPI allows for flexibility and adaptability in the requirement analysis process as it
focuses on making incremental changes. This allows for adjustments and refinements based on real-time
feedback and results, making it easier to incorporate changes as needed.

7|Page
 Overall, BPI is chosen for requirement analysis because it is a practical and data-driven approach that focuses on
optimizing existing processes through incremental improvements, while actively involving stakeholders and
allowing for flexibility and adaptability.

2. Techniques used to gather requirements.


2.1. Describe software investigation technique (Interview, JAD, Sessions, Questionnaires, Documentation analysis,
Observation)
Software investigation techniques are used to gather information and analyze software systems in order to identify
issues, assess performance, and make improvements. Here's a description of some common software investigation
techniques:

• Interviews: Interviews involve directly interacting with software users, stakeholders, or developers to gather
information about the software system. Interviews can be conducted one-on-one or in a group setting and can be
structured or unstructured. Interviewers ask questions to gather insights, opinions, and feedback about the
software system, its functionalities, usage patterns, and any issues or concerns.

• Joint Application Development (JAD) Sessions: JAD sessions are collaborative workshops where stakeholders,
software users, and developers come together to identify requirements, analyze software problems, and generate
solutions. JAD sessions typically involve structured brainstorming, facilitated discussions, and interactive
activities to gather diverse perspectives, validate assumptions, and build consensus on software-related issues.

• Questionnaires: Questionnaires are written surveys that are distributed to software users or stakeholders to
gather information about their experiences, preferences, and feedback. Questionnaires can be designed to gather
quantitative data, such as ratings or rankings, as well as qualitative data, such as open-ended responses.
Questionnaires can be administered electronically or in person and can be used to collect data from a large
number of participants in a relatively short period of time.

8|Page
• Documentation Analysis: Documentation analysis involves reviewing existing documentation related to the
software system, such as design documents, user manuals, system documentation, and error reports. This
technique aims to understand the architecture, functionalities, and performance of the software system, as well
as identify any discrepancies, gaps, or areas for improvement in the documentation. Documentation analysis can
be done independently or in conjunction with other investigation techniques.

• Observation: Observation involves directly observing how the software system is used in real-world settings.
Observations can be done through techniques such as shadowing, where an investigator follows and observes
users as they interact with the software system, or through automated logging and monitoring of system usage.
Observation allows investigators to gather insights about actual usage patterns, user behaviors, and issues that
may not be apparent through other techniques.

 Each of these software investigation techniques has its own strengths and limitations and can be used
individually or in combination depending on the specific investigation goals, context, and resources available.
The findings from these techniques can provide valuable insights for identifying issues, understanding user
needs, and making informed decisions for software improvement.
2.2. Choose an appropriate method for Tune Source
I think the interview method to be the most appropriate and effective for Tune Source. In the following, I will give you
my investigation by using the interview method.

9|Page
2.3. Undertake the investigation.
- Step 1: Choose people to be interviewed.
Full Name Role Interview purpose Date time

10 | P a g e
Khang Chief Executive Understand business March 11, 2022, at
Officer goals and objectives 10:00 AM
for Tune Source

Kien Marketing Manager Understand target March 15, 2022, at


market and customer 2:00 PM
needs

Dung Sales Manager Understand sales March 18, 2022, at


process and customer 3:00 PM
feedback

Quy Customer Support Understand common March 20, 2022, at


Representative customer issues and 11:00 AM
concerns

Long Software Developer Understand technical March 23, 2022, at


requirements and 10:00 AM
constraints

Thanh User Experience Understand user needs March 26, 2022, at


Designer and preferences 2:00 PM

- Step 2: Design interview questions


Types of Questions Questions

11 | P a g e
Closed-Ended Questions - Are you satisfied with the current sales
performance of Tune Source??
- Is Tune Source currently meeting the
needs of its target market?
-
Can you describe the key features and
benefits that Tune Source's target market
is looking for in a software product?
- Have you received any recent customer
feedback on Tune Source?
-
Are there any known technical issues with
Tune Source that customers frequently
report?
-
Are there any technical constraints that
need to be considered when developing
new features for Tune Source?
- Are there any known usability issues with
Tune Source?

Open-Ended Questions - Can you tell me more about Tune Source's


long-term goals and objectives??
- Can you describe your current experience
with music streaming services?

12 | P a g e
- Can you describe some of the key user
needs and preferences that Tune Source
should consider?

- Can you describe some of the key


technical requirements for Tune Source?
-
Can you describe some of the most
common customer issues that you see
with Tune Source?
- Can you describe the typical sales process
for Tune Source?

Probing Questions - How do you see Tune Source evolving in


the next few years, and what role do you
see the software playing in that
evolution??
-
How do you think Tune Source can
differentiate itself from other music
streaming services?
-
How does the Tune Source development
team prioritize and manage software
development tasks?

13 | P a g e
-
How do you ensure that Tune Source's
user interface is both functional and
aesthetically pleasing for its users?
-
How does the Tune Source support team
currently handle customer complaints or
issues?
- What are some common objections that
customers raise when considering Tune
Source, and how do you address those
objections?

- Step3: Interview
- Step 4: Create interview reports.
Interview report

Interview notes approved by BTEC FPT

Person interviewed Nguyen Hai Anh

Interviewer Khang, CEO

Date March 11, 2022, at 10:00 AM

Primary Purpose To understand business goals and objectives for


Tune Source

14 | P a g e
Summary of Interview - During the interview with Khang, the CEO
of Tune Source, we discussed the long-term
goals and objectives of the company. Mr.
Ronaldo expressed satisfaction with the
current sales performance of Tune Source
but acknowledged that there is room for
improvement. He emphasized the
importance of expanding Tune Source's
customer base and increasing revenue. He
also discussed the role that the software

should play in supporting the company's


growth and evolution over the next few
years.

-
Recommendations: Based on this
interview, it is recommended that Tune
Source prioritize its software development
efforts to support the company's growth
goals. The software should be designed to
meet the needs of the company's target
market and differentiate Tune Source
from its competitors. It is also
recommended that Tune Source regularly
review its sales performance and adjust its
strategies as needed to improve revenue.

15 | P a g e
Interview report

Interview notes approved by BTEC FPT

Person interviewed Do Viet Quang

Interviewer Kien, Marketing Manager

Date March 15, 2022, at 2:00 PM

Primary Purpose To understand target market and customer


needs for Tune Source

16 | P a g e
Summary of Interview - During the interview with Kien, the
Marketing Manager for Tune Source, we
discussed the target market and customer
needs for the software product. Ms. Messi
described the key features and benefits
that Tune Source's target market is
looking for in a software product,
including ease of use, customization
options, and integration with other tools.
She emphasized the importance of
differentiating Tune Source from its
competitors and meeting the specific
needs of its customers.

- Recommendations: Based on this


interview, it is recommended that Tune
Source prioritize usability and
customization features in its software
development efforts. The software should be
designed to meet the specific needs of Tune
Source's target market and provide a unique
value proposition compared to competitors. It
is also recommended that Tune Source
regularly review customer feedback and
adjust the product as needed to meet changing
needs.

17 | P a g e
Interview report

Interview notes approved by BTEC FPT

Person interviewed Do Viet Quang

Interviewer Interview Report - Dung, Sales Manager

Date March 18, 2022, at 3:00 PM

Primary Purpose To understand sales process and customer


feedback for Tune Source

Summary of Interview - During the interview with Dung, the Sales


Manager for Tune Source, we discussed the
sales process and customer feedback for the
software product. Mr. Neymar described
the typical sales process for Tune Source,
including lead generation, product
demonstrations, and follow-up
communication. He also
provided insights into common objections
that customers raise when considering
Tune Source and how the sales team
addresses those objections.

18 | P a g e
- Recommendations: Based on this
interview, it is recommended that Tune
Source continue to refine its sales process
to effectively address common customer
objections and close more deals. The sales
team should also regularly solicit and
review customer feedback to improve the
product and better meet customer needs.

Interview report

Interview notes approved by BTEC FPT

Person interviewed Do Viet Quang

Interviewer Quy, Customer Support Representative

Date March 20, 2023, at 11:00 AM

Primary Purpose To understand common customer issues and


concerns for Tune Source

Summary of Interview - During the interview with Quy, a Customer


Support Representative for
Tune Source, we discussed the common

19 | P a g e
customer issues and concerns for the
software product. Ms. Quy described
some of the most common issues that
customers experience, including technical
issues and difficulties with user interface.
She also provided insights into how the
customer support team currently handles
customer complaints and issues.

Recommendations: Based on this


interview, it is recommended that Tune
Source prioritize customer support efforts
to effectively address common issues and
concerns. The development team should
work closely with the customer support
team to identify and resolve technical
issues, and the user interface should be
regularly reviewed and refined to improve
usability. It is also recommended that
Tune Source continue to gather and
review customer feedback to identify
common issues and proactively address
them.

20 | P a g e
Interview report

Interview notes approved by BTEC FPT

Person interviewed Do Viet Quang

Interviewer Long, Software Developer

Date March 23, 2023, at 10:00 AM

Primary Purpose To understand technical requirements and


constraints for Tune Source

21 | P a g e
Summary of Interview - During the interview with Long, a
Software Developer for Tune Source, we
discussed the technical requirements and
constraints for the software product. Mr.
Long provided insights into the
technology stack currently being used by
Tune Source and the development team's
approach to building software. He also
discussed some of the technical challenges
that the team has faced in the past and how
they were addressed.

- Recommendations: Based on this


interview, it is recommended that Tune
Source carefully consider the technical
requirements and constraints of the
software product when planning and
executing software development efforts.
The development team should work
closely with other stakeholders, including

the marketing and sales teams, to ensure that


the software meets the needs of the target
market and provides a unique value
proposition. It is also recommended that the
development team continue to monitor
emerging technologies and trends to identify
new opportunities for improving the software
product.

22 | P a g e
II. Analyze the requirements that you identified in Task 1 using a combination of structural and behavioral modeling
techniques that you have learned (P6)
➢ Software investigation and supporting documentation:
1. Activity diagram:

Figure 1 Diagram

23 | P a g e
2. Use case diagram:

Figure 2 Use caseDiagram

24 | P a g e
Figure 3 Use case Diagram

25 | P a g e
3. ERD diagram:

Figure 4 ERD Diagram

26 | P a g e
III. Implement (P7)
1. Wireframe

Figure 5 Login

27 | P a g e
Figure 6 Register

28 | P a g e
Figure 7 Page

29 | P a g e
Figure 8 Page

30 | P a g e
Figure 9 Page

2. Website

31 | P a g e
Figure 10 Login

32 | P a g e
Figure 11 Register

33 | P a g e
Figure 12 Home page

34 | P a g e
Figure 13 Music Product

35 | P a g e
Figure 14 Category

36 | P a g e
Figure 15 Product

➢ In Laravel, migration is a way to create and manage versions of the application's database. A migration is a PHP code snippet used
to define changes to the database, such as creating tables, adding columns, or modifying column data types. Laravel then automatically
executes these migrations to update the application's database.

37 | P a g e
Figure 16 Code

➢ This PHP code represents a Laravel migration for creating a table named failed_jobs in a
database using Laravel's database migration feature. Let's go through the code and understand
what it does.
➢ The use statement at the beginning of the code imports the necessary classes from Laravel
for running migrations.
➢ The CreateFailedJobsTable class extends the Migration class, which is a Laravel base
class for creating database migrations.
➢ The up() method is used to define the operations that should be performed when this
migration is run. In this case, it creates a new table called failed_jobs with the following
columns:

• id: an auto-incrementing primary key column.

38 | P a g e
• uuid: a unique string column.
• connection: a text column.
• queue: a text column.
• payload: a long text column.
• exception: a long text column.
• failed_at: a timestamp column that uses the current timestamp as
the default value.
➢ The down() method is used to define the operations that should be performed when this
migration is rolled back. In this case, it drops the failed_jobs table using the dropIfExists()
method, which automatically checks if the table exists before attempting to drop it.

➢ Overall, this migration creates a table named failed_jobs with columns that are commonly
used for storing failed job information in Laravel applications, such as queue workers, failed
queue jobs, and their related information.

39 | P a g e
Figure 17 Code

➢ In Laravel, the views directory is used to store the Blade templates that are used to generate the HTML
output for your web application. As per the Laravel convention, you generally should not create folders directly
within the views directory, but rather organize your views using subdirectories based on your application's
structure.

40 | P a g e
Figure 18 Code

➢ The code you provided appears to be a configuration file for a


Laravel application's database connection settings. Let's go through
each line and understand what it does:
DB_CONNECTION=mysql

41 | P a g e
➢ This line sets the database connection driver to mysql, which
indicates that the Laravel application will be connecting to a MySQL
database server.
DB_HOST=127.0.0.1
➢ This line sets the database host to 127.0.0.1, which is the IP
address commonly used to refer to the local machine or localhost.
This means that the Laravel application will be connecting to a
MySQL database server running on the same machine where the
Laravel application is hosted.
DB_PORT=3306
➢ This line sets the database port to 3306, which is the default port
number for MySQL database servers.
DB_DATABASE=it0502
➢ This line sets the name of the database that the Laravel application
will be using, in this case, it's set to it0502. This should be the name
of the MySQL database that has been created and configured to be
used by the Laravel application.
DB_USERNAME=root
➢ This line sets the username that the Laravel application will use to
authenticate with the MySQL database server. In this case, it's set to
root, which is a common default username for MySQL databases.
However, it's generally not recommended to use the root user for
production applications due to security concerns.
DB_PASSWORD=

42 | P a g e
➢ This line sets the password that the Laravel application will use to
authenticate with the MySQL database server. In this case, it's left
blank, which means no password is specified. You should specify the
appropriate password for the MySQL user specified in the
DB_USERNAME configuration, if applicable.
Overall, this configuration file sets the database connection settings
for a Laravel application to connect to a MySQL database server
running on the same machine, using the root user (without a
password), and the it0502 database. Note that these settings may vary
depending on your specific Laravel application and database
configuration.

Figure 19 Code

43 | P a g e
Figure 20 Database

➢ This is the code in Laravel, a popular framework for developing web applications based on PHP language. This
snippet defines some paths (routes) for your web application.

➢ Route::get('/category/index', [CategoryController::class,'index'])->name('category.index');: This is a route used for the


GET method ( get data) on path '/category/index'. When this path is called, Laravel will call the 'index' method in the
'CategoryController' to handle the corresponding logic. In addition, this code also names this path 'category.index' for
easy access and later use.

44 | P a g e
➢ Route::get('/category/create', [CategoryController::class,'create'])->name('category.create');: Same as above code,
here is a path (route ) used for method GET on path '/category/create'. When this path is called, Laravel will call the
'create' method in the 'CategoryController' to handle the corresponding logic. This code also names the path
'category.create'.

➢ Route::get('/category/delete/{id}', [CategoryController::class,'destroy'])->name('category.destroy');: This is a path


(route) used for method method GET on the path '/category/delete/{id}', where '{id}' is a mutable parameter. When
this path is called with a specific 'id' parameter value, Laravel will call the 'cancel' method in the 'CategoryController'
to handle the corresponding logic. This code also names the path 'category.destroy'.

Route::get('/category/edit/{id}', [CategoryController::class,'edit'])->name('category.edit');: Similar to the above code,


here is a child path (route) used for method GET on path '/category/edit/{id}', in that '{id}' is an integers can change.
When this path is called with a specific 'id' parameter value, Laravel will call the 'edit' method in the
'CategoryController' to handle the corresponding logic. This code also names the path 'category.edit'.

45 | P a g e
Figure 21 Code

Create paths to created folders: The above code defines routes in Laravel for product management in your system.

46 | P a g e
• Route::get('/product/index', [ProductController::class,'index'])->name('product.index'); : This is the route to display the product list,
handled by the index() method in the ProductController. This route is named 'product.index'.
• Route::get('/product/create', [ProductController::class,'create'])->name('product.create');: This is the route to display the new product
creation form, processed by the create() method in the ProductController. This route is named 'product.create'.
• Route::get('/product/delete/{id}', [ProductController::class,'destroy'])->name('product.destroy');: This is the route to delete the
product, processed by the destroy() method in the ProductController. This route is named 'product.destroy'.
• Route::get('/product/edit/{id}', [ProductController::class,'edit'])->name('product.edit');: This is the route to display the product edit
form , which is handled by the edit() method in the ProductController. This route is named 'product.edit'.
• Route::POST('/product/update/{id}', [ProductController::class,'update'])->name('product.update');: This is the route to update
product information, handled by the update() method in the ProductController. This route is named 'product.update'.
• Route::get('/product/show/{id}', [ProductController::class,'show'])->name('product.show');: This is the route to display details of
product, handled by the show() method in the ProductController. This route is named 'product.show'.
• Route::POST('/product/store', [ProductController::class,'store'])->name('product.store');: This is the route to store new product
information, handled by store() method in ProductController. This route is named 'product.store'.
• Route::get('search', [ProductController::class,'searchMusic']);: This is the route to search for products by keyword, handled by the
searchMusic() method in the ProductController. Note that the names of these routes can be used to generate URL links in your Laravel
application, instead of using hard URLs. For example, to create a link to the product listing page, you could use route('product.index')
instead of the hard URL /product/index.

47 | P a g e
C. Conclusion
In this ASM2, I wrote about Implementing Software Investigations to Meet Business Needs. Use appropriate software analysis
tools/techniques to perform software investigations and generate supporting documentation. I have explained how to deal with user
and software requirements. And I presented about the music web that I created. I hope this article will be correct and useful.

D. References
How to undertake an investigation process: HR Services & Software for Education: FEPS (2023) Fusion Education People
Solutions. Available at: https://www.feps.co.uk/training-and-development/how-to-undertake-an-investigation-process/ (Accessed:
April 8, 2023).

Tamzid, M. (2023) Understanding software requirements, Viblo. Viblo. Available at: https://viblo.asia/p/understanding-
softwarerequirements-gGJ59bwDKX2 (Accessed: April 8, 2023).

Point, T. (2019) Requirement gathering techniques, Tutorials Point. Available at:


https://www.tutorialspoint.com/business_analysis/business_analysis_requirement_gathering_tec
hniques.htm (Accessed: April 8, 2023).

48 | P a g e

You might also like