SDLC Assignment2
SDLC Assignment2
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.
Grading grid
P5 P6 P7 M3 M4 M5 M6 D3 D4
1|Page
❒ Summative Feedback: ❒ Resubmission Feedback:
2|Page
Internal Verifier’s Comments:
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
• 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.
• 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
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?
12 | P a g e
- Can you describe some of the key user
needs and preferences that Tune Source
should consider?
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
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
-
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
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.
17 | P a g e
Interview report
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
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.
20 | P a g e
Interview report
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.
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:
24 | P a g e
Figure 3 Use case Diagram
25 | P a g e
3. 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:
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
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.
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'.
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).
48 | P a g e