ASM2 - SDLC - IT0501 - Tran Van Khoi
ASM2 - SDLC - IT0501 - Tran Van Khoi
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
Grading grid
P5 P6 P7 M3 M4 M5 M6 D3 D4
❒ Summative Feedback: ❒ Resubmission Feedback:
Table of Contents
A. Introduction ..................................................................................................................................... 7
B.Content ............................................................................................................................................. 7
TASK 1 – ANALYSIS (1) .......................................................................................................................... 7
I. Identify the stakeholders, their roles and interests in the case study.(P5) .................................. 7
1. Requirement difinition of the project ...................................................................................... 7
1.1. Identify the stakeholders, roles, and interests in the case studey ....................................... 7
a. Definition .................................................................................................................................. 7
b. Categories ................................................................................................................................. 7
c. Requirement Gathering Methods ............................................................................................. 8
1.2. Stakeholder role with an interest .......................................................................................... 9
a. Definition .................................................................................................................................. 9
b. Types of stakeholders in project management ...................................................................... 11
c. Examples of stakeholders in a project .................................................................................... 11
d. Roles of Stakeholders ............................................................................................................. 12
2. Identify FRs and NTRs of the Tune Source Project ................................................................ 13
2.1. Functional Requirements .................................................................................................... 13
a. What is a Functional Requirement? ....................................................................................... 13
b. What should be included in the Functional Requirements Document? ................................ 14
c. Benefits of Functional Requirement ....................................................................................... 15
d. Types of Functional Requirements ......................................................................................... 15
e. Example of Functional Requirements..................................................................................... 16
2.2 Non-Functional Requements ................................................................................................ 16
a. What is Non-Functional Requirement? .................................................................................. 16
b. Types of Non-functional Requirement ................................................................................... 17
c. Examples of Non-functional requirements............................................................................. 18
d. Advantages of Non-Functional Requirement ......................................................................... 19
e. Disadvantages of Non-functional requirement ...................................................................... 19
3. Discuss the relationships between the FRs and NFRs ............................................................ 19
4. The technical requirements.................................................................................................... 20
II. Use appropriate software analysis tools/techniques to carry out a software investigation and create supporting documentation.
(P6) ................................................................................................................................................. 27
1. Use case diagram .................................................................................................................... 27
a. Actor: ...................................................................................................................................... 28
b. Use Case: ................................................................................................................................ 28
Table of Figures
+ Identify the stakeholders, their roles and interests in the case study.(P5)
+ Use appropriate software analysis tools/techniques to carry out a software investigation and create supporting documentation. (P6)
+ Explain how user and software requirements have been addressed. (P7)
B.Content
I. Identify the stakeholders, their roles and interests in the case study.(P5)
1.1. Identify the stakeholders, roles, and interests in the case studey
a. Definition
- Project requirements are conditions or tasks that must be completed to ensure the success or completion of the project.
They provide a clear picture of the work that needs to be done. They're meant to align the project's resources with the objectives of
the organization. The benefits of effectively gathering project requirements include cost reduction, higher project success rates, more
effective change management, and improved communication among stakeholders.
b. Categories
Project requirements can be categorized into three main categories: business, solution, and stakeholder requirements.
Business requirements are the high-level needs of the business. They address what's required and why the project is
happening. Getting back to our house example, a business requirement might include, 'build an eco-friendly house with high-efficiency
solar panels that will reduce carbon emissions and reduce environmental impact.' This is the starting point of the project and provides
guidance for the other types of requirements. It's imperative that these requirements are communicated clearly and early on.
Solution requirements, which include both functional and non-functional requirements, are the specific features and
characteristics of the product or service that meet all requirements, both business and stakeholder. Functional requirements describe
something that a product or service is required to do. Non-functional requirements describe how a system is supposed to function. A
functional requirement for your solar panel is to 'convert light into electricity,' while the non-functional requirement is to 'produce
this electricity at an efficiency rate of 20%.'
A stakeholder is anyone who has an interest in the product or service that's being produced or provided. They may be internal
stakeholders (employees) or external stakeholders (customers, regulators, or suppliers). Every individual stakeholder has specific
needs or requirements that they want to be fulfilled. Each of these needs must be balanced during the course of the project. Often
times, stakeholders have competing needs, which can impact the schedule, budget, and scope of the project if not managed
effectively. Suppose, as the owner of the house, you decide that you want repurposed composite wood for the exterior of your house.
However, after your builder has placed the order, you discover that your Home Owners Association only allows for stucco and brick
exteriors. This change will have a knock-on effect in terms of pricing, materials and design and will ultimately slow down the project.
When a stakeholder happens to be your customer, you need to ensure that you're eliciting their exact requirements in order
to deliver on your product or service. If the right questions are not asked using the right method, you will not meet customer needs
and, in the end, the project will have failed.
a. Definition
A stakeholder is a party that has an interest in a company and can either affect or be affected by the business. The primary
stakeholders in a typical corporation are its investors, employees, customers, and suppliers.
A stakeholder has a vested interest in a company and can either affect or be affected by a business' operations and
performance.
Typical stakeholders are investors, employees, customers, suppliers, communities, governments, or trade associations.
Shareholders are only one type of stakeholder that firms need to be cognizant of.
Stakeholders are important for a number of reasons. For internal stakeholders, they are important because the business’s
operations rely on their ability to work together toward the business’s goals. External stakeholders on the other hand can affect the
business indirectly.
Figure 1 : project
b. Types of stakeholders in project management
There are two main types of stakeholders in project management, internal and external.
Internal stakeholders
These stakeholders are coming from within the house!!! Internal stakeholders are people or groups within the business, such as team
members, managers, executives, and so on.
External stakeholders
External stakeholders are — as you can probably guess — people or groups outside the business. This includes customers, users,
suppliers, and investors.
Project manager
Team members
Managers
Resource managers
Executives
Senior management
Company owners
Investors
Sponsors
Suppliers
Vendors
Consultants
Customers
End users
d. Roles of Stakeholders
Direct the Management: The stakeholders can be a part of the board of directors and therefore help in taking actions. They
can take over certain departments like service, human resources or research and development and manage them for ensuring
success.
They Bring in Money: Stakeholders are the large investors of the company and they can anytime bring in or take out money
from the company. Their decision shall depend upon the company’s financial performance. Therefore they can pressurize the
management for financial reports and change tactics if necessary. Some stakeholders can even increase or decrease the
investment to change the share price in the market and thus make the conditions favorable for them.
Help in Decision Making: Major stakeholders are part of the board of directors. Therefore they also take decisions along with
other board members. They have the power to disrupt the decisions as well. They and bring n more ideas a threaten the
management to obey them. The stakeholders also have all the powers to appoint senior-level management. Therefore, they
are there in all the major decision-making areas. They also take decisions regarding liquidations and also acquisitions.
Corporate Conscience: Large stakeholders are the major stakeholders of the company and have monitored over all the major
activities of the company. They can make the company abide by human rights and environmental laws. They also monitor the
outsourcing activities and may vote against any business decision if it harms the long term goals of the company.
Other Responsibilities: Apart from the above four major roles they also have some other roles to play in the company. They
can identify new areas for market penetration and increased sales. They can bring in more marketing ideas. They also attract
other investors like honeybees in the company. They can be a part of a selection board or a representative for the company.
Moreover, they can take all the major social and environmental decisions.
It should clearly define who will be allowed to create/modify/delete the data in the system
How the system will fulfill applicable regulatory and compliance needs should be captured in the functional document
Helps you to check whether the application is providing all the functionalities that were mentioned in the functional
requirement of that application
A functional requirement document helps you to define the functionality of a system or one of its subsystems.
Functional requirements along with requirement analysis help identify missing requirements. They help clearly define the
expected system service and behavior.
Errors caught in the Functional requirement gathering stage are the cheapest to fix.
Transaction Handling
Business Rules
Certification Requirements
Reporting Requirements
Administrative functions
Authorization levels
Audit Tracking
External Interfaces
The software automatically validates customers against the ABC Contact Management System
The background color for all windows in the application will be blue and have a hexadecimal RGB color value of 0x0000FF.
Only Managerial level employees have the right to view revenue data.
Usability requirement
Serviceability requirement
Manageability requirement
Recoverability requirement
Security requirement
Capacity requirement
Availability requirement
Scalability requirement
Interoperability requirement
Reliability requirement
Maintainability requirement
Regulatory requirement
Environmental requirement
Users must change the initially assigned login password immediately after the first successful login. Moreover, the initial should
never be reused.
Employees never allowed to update their salary information. Such attempt should be reported to the security administrator.
Every unsuccessful attempt by a user to access an item of data shall be recorded on an audit trail.
A website should be capable enough to handle 20 million users with affecting its performance
The software should be portable. So moving from one OS to other OS does not create any problem.
Privacy of information, the export of restricted technologies, intellectual property rights, etc. should be audited.
The nonfunctional requirements ensure the software system follow legal and compliance rules.
They ensure the reliability, availability, and performance of the software system
They ensure good user experience and ease of operating the software.
None functional requirement may affect the various high-level software subsystem
They require special consideration during the software architecture/high-level design phase which increases costs.
Their implementation does not usually map to the specific software sub-system,
Technical professionals like architects, software engineers, etc. are required to specify non-functional requirements, although
they are not required. It is thought of as a quality trait that can be applied to the complete system and aids in evaluating non-
functionalities including performance, usability, security, and other... The definition of non-functional requirements is frequently more
challenging.
Brainstorming: used in gathering requests to get more ideas. In a meeting, all participants will say what they feel is good about
the topic under discussion, after which the group leader will select and prioritize the results. For good brainstorming, it is
necessary to clearly define the goal of the topic, come up with many ideas, let the imagination fly, do not criticize or argue,
then review and combine the ideas. together.
Figure 5: Brainstorming
• Document analysis: is a useful method for gathering requirements, driving gap analysis to determine the scope of a moving project.
Analyzing documents and reviewing procedures will help observers better understand the structure and current state of the business.
This helps to assist researchers in formulating questions to interview stakeholders or questions to collect additional criteria
Figure 6: Document
• Focus group: is a collection of people who represent users or customers of a product or service to receive feedback. The collected
feedback includes needs, opportunities, problems to define requirements or to validate and customize the suggested requirements.
In contrast to brainstorming, focus grouping is a managed process with specific participants. Focus group has the risk of following the
majority, so it is not considered effective.
Figure 7: Focus
• Interview: conducting an interview is a crucial step in determining the objectives and stakeholder expectations for the product in
order to produce a fantastic one. direct interaction with users through interviews, collecting and validating their requirements through
interviews with them using prepared questionnaires. Inquire from stakeholders about the work and issues they encounter. There are
many various ways to conduct interviews, but all involve good listening skills.
Figure 8: Interview
• Survey or questionnaire: Conducting interviews with many people can result in time and financial constraints. Consequently, it is
possible to gather information using a survey or questionnaire. The survey will require the respondent to rate something, select an
option from a list, or respond freely to an open-ended question. Designing survey questions can distort respondents' responses and is
challenging. A well-designed survey may provide qualitative data that aids in market characterization.
Figure 9:Survey question
• Reverse engineering: When a project is going forward without access to all of the system's documentation, this technique will help
define what the system does, but it won't explain what the system needs to do or when the system errs.
• Observation: By watching users, analysts can spot procedures, steps, difficulties, and chances for change. both passive and active
observation possible. In order to gain feedback on a prototype, passive observation is preferable, however active observation is better
for understanding how the market operates now. Professionals can reflect on clients and clear any confusion by using this information
to understand what to look for.
• Prototyping is a cutting-edge method of gathering requests. There are several users involved in this iterative process. Prototyping
calls for gathering the initial requirements that are utilized to create the first iteration of a prototype, which must then be shown to
the client who will offer additional requirements. Review those specifications, then make necessary improvements to the product.
• Joint application development (JAD): is a process that accelerates the design of information technology solutions. JAD includes the
participation of the project team, stakeholders, and customers so that each person's perspective on needs and solutions can be
accurately determined. Prior to JAD, requirements were determined by interview. Some of the benefits of JAD are speeding up design,
improving quality, promoting teamwork with customers, creating designs from the customer's point of view, and reducing
development and maintenance costs. JAD participants are required to adhere to the following rules: reaching consensus, time limit
rules, mandatory attendance requirements, executive sponsor will decide, all participants are equal, etc. To prove the benefits of JAD,
I have cited the testimonials of the following researchers: "A study of 60 projects showed that those that didn't use JAD missed out on
up to 35 percent of needed functionality, resulting in up to 50 percent more code needed," says Capers Jones.
II. Use appropriate software analysis tools/techniques to carry out a software investigation and create supporting documentation.
(P6)
1. Use case diagram
Use case diagramming is a method for describing how users and systems interact in a setting with a particular goal. The
interaction in question can be between the user and the system or between the system and other systems, but it needs to take place
within a certain framework, within a particular system, or within a particular piece of software. The following are elements of the use
case diagram:
a. Actor:
used to describe people when interacting with or accessing a system
b. Use Case:
The interaction between the user and the system will be portrayed by actors using this function.
Figure 11: Use case diagrams
2. Class diagram
All object-oriented development techniques use class diagrams as a modeling methodology. Programmers are accustomed to
using this diagram, which is also the most popular one in UML. The various kinds of items in the system and the various kinds of
relationships that occur between them are described in class diagrams.
A class diagram's fundamental components are the class name, the attribute (field, property), and the operation (method,
function). The access scope of an attribute and operation in a class are also described in the class diagram using the term "Access
Modifier." There are 4 possible access ranges:
Private (-): only objects created from this class can be used.
Public (+): all objects are available.
Protected (#): only objects created from this class and classes inherited from this class can be used.
Package/Default: objects created from classes in the same package can be used.
3 Activity diagram
A logical model used to describe actions or control flows in a system visually is called an activity diagram. It displays the flow
from one activity to another in a system, comparable to a flowchart. utilized a lot while modeling business processes. There will be a
start (the initial state) and an end to an activity diagram (final state).
A successful activity diagram must have activities, relationships, conditions, and limitations in order to present a clear image
of the diagram. After examining these variables, we must mentally sketch out the entire flow, which is then converted into an
operation diagram.
You can create an activity diagram by merging and connecting several activity states. A black circle designating the initial point
will be followed by rounded-cornered rectangular arrows leading to the subsequent state.
Explain: Users must type search terms into the website's search bar in order to conduct a search. If you type the term incorrectly, the
system will display a notification that "data not found," but if you enter it right, it will show you what you are looking for. To conduct
the download function on your computer, you must sign in with an existing account or create a new one. The system will instantly
reload the home page once you have successfully logged in or made an account, allowing you to browse or shop for the necessary
things.
III. Explain how user and software requirements have been addressed. (P7)
1. Architecture (client – server)
Client/server architecture is a computing model in which multiple components work in strictly defined roles to communicate.
The server hosts, delivers and manages most of the resources and services to be consumed by the client. This type of shared resources
architecture has one or more client computers connected to a central server over a network or internet connection.
Client/server architecture is also known as a networking computing model or client/server network because all the requests
and services are delivered over a network. It’s considered a form of distributed computing system because the components are doing
their work independently of one another
In a client/server architecture, the server acts as the producer and the client acts as a consumer. The server houses and provides
high-end, computing-intensive services to the client on demand. These services can include application access, storage, file sharing,
printer access and/or direct access to the server’s raw computing power.
Client/server architecture works when the client computer sends a resource or process request to the server over the network
connection, which is then processed and delivered to the client. A server computer can manage several clients simultaneously,
whereas one client can be connected to several servers at a time, each providing a different set of services.
One of the biggest issues with a traditional client/server setup is the nature of unpredictable workloads.
In defining client/server systems as systems that scale vertically and use central data stores, some analysts believe that peer-to-peer
is more agile and versatile for making sure that unpredictable workloads are managed well. Experts talk about things like redundancy
and availability zones and failover as a means to keep online business systems running smoothly, despite changes in demand or other
problems.
* Advantages of a Client Application Server
Centralization of control: access, resources, and integrity of the data are controlled by the dedicated server so that a program
or unauthorized client cannot damage the system. This centralization also facilitates the task of updating data or other resources
(better than the networks P2P).
Scalability: You can increase the capacity of clients and servers separately. Any element can be increased (or enhanced) at any
time, or you can add new nodes to the network (clients or servers).
Easy maintenance: distribute the roles and responsibilities to several standalone computers, you can replace, repair, upgrade,
or even move a server,
Traffic congestion has always been a problem in the paradigm of C / S. When a large number of simultaneous clients send
requests to the same server might cause many problems for this (to more customers, more problems for the server). On the contrary,
in P2P networks each node in the network server also makes more nodes, the better bandwidth you have.
The paradigm of C / S Classic does not have the robustness of a network P2P. When a server is down, customer requests cannot
be met. For the most part, P2P network resources are usually distributed across multiple nodes of the network. Although some out or
abandon download, others may still end up getting data download on the rest of the nodes in the network.
2. Wireframe
Wireframe is a visual tool for web design at the structural level. A wireframe is often used to lay out content and functionality
on a page. Wireframes are also used in the process of establishing the basic structure of the website before the visual design. Of
course, that process needs to be created, supplemented and perfected content.
Figure 18: wireframe
Wireframe can be understood as black and white layouts outlined in specific sizes and positions corresponding to each page
element, page feature, transition areas or each navigation for your website. They are plain, without colors, font choices, logos or any
other design elements. What the wireframe focuses on is the structure of the site
*Login page
Figure 19: Login page
*Register page
Figure 20: Register page
* Home page
3. Front-end
Front-end web development, also known as client-side development is the practice of producing HTML, CSS and JavaScript for
a website or Web Application so that a user can see and interact with them directly. The challenge associated with front end
development is that the tools and techniques used to create the front end of a website change constantly and so the developer needs
to constantly be aware of how the field is developing.
The objective of designing a site is to ensure that when the users open up the site they see the information in a format that is
easy to read and relevant. This is further complicated by the fact that users now use a large variety of devices with varying screen sizes
and resolutions thus forcing the designer to take into consideration these aspects when designing the site. They need to ensure that
their site comes up correctly in different browsers (cross-browser), different operating systems (cross-platform) and different devices
(cross-device), which requires careful planning on the side of the developer.
A front-end developer architects and develops websites and applications using web technologies (i.e., HTML, CSS, DOM,
and JavaScript), which run on the Open Web Platform or act as compilation input for non-web platform environments (i.e., React
Native).
A web browser is software used to retrieve, present, and traverse information on the WWW. Typically, browsers run on a desktop or
laptop computer, tablet, or phone, but as of late a browser can be found on just about anything (i.e, on a fridge, in cars, etc.).
The most common web browsers are (shown in order of most used first):
Chrome
Safari
Firefox
Edge
* Headless Browsers
Headless browsers are a web browser without a graphical user interface that can be controlled from a command line interface
programmatically for the purpose of web page automation (e.g., functional testing, scraping, unit testing, etc.). Think of headless
browsers as a browser that you can run from the command line that can retrieve and traverse web pages.
Headless Chromium
Zombie
slimerjs
* Webviews
Webviews are used by a native OS, in a native application, to run web pages. Think of a webview like an iframe or a single tab from a
web browser that is embedded in a native application running on a device (e.g., iOS, android, windows).
4. Back end
The back end of a web page is the part that is not visible to the user but it always runs in the background, providing functionality and
providing the user experience. Use programming languages like Ruby, Python, PHP, Java, and tools like Oracle, SQL Server, MySQL to
tie those pieces together.
Figure 28: Backend
To be able to become a Backend Developer, you need to know the programming languages Java, Python, Ruby and PHP. In
addition, you need to master tools like MySQL, Oracle, and SQL Server. And some PHP frameworks like Zend, Symfony, and CakePHP.
- Python: Being open-source, you are free to use Python for free. It can move from one platform to another without any changes, it
is run on almost all platforms like Windows, macOS, Linux. Has a very simple, clear, easy to read and write syntax. Extendable.
- PHP: This is open source, extremely easy to use and completely free. The library is very rich, making it easier and faster to learn or
write PHP applications. It can be combined with databases like MySQL, Oracle, etc. It is quite secure.
A database management system (or DBMS) is essentially nothing more than a computerized data-keeping system. Users of
the system are given facilities to perform several kinds of operations on such a system for either manipulation of the data in the
database or the management of the database structure itself. Database Management Systems (DBMSs) are categorized according to
their data structures or types.
There are several types of databases that can be used on a mainframe to exploit z/OS®: inverted list, hierarchic, network, or
relational.
Mainframe sites tend to use a hierarchical model when the data structure (not data values) of the data needed for an
application is relatively static. For example, a Bill of Material (BOM) database structure always has a high level assembly part
number, and several levels of components with subcomponents. The structure usually has a component forecast, cost, and pricing
data, and so on. The structure of the data for a BOM application rarely changes, and new data elements (not values) are rarely
identified. An application normally starts at the top with the assembly part number, and goes down to the detail components.
Database
A database is a logical grouping of data. It contains a set of related table spaces and index spaces. Typically, a database contains all
the data that is associated with one application or with a group of related applications. You could have a payroll database or an
inventory database, for example.
Table
A table is a logical structure made up of rows and columns. Rows have no fixed order, so if you retrieve data you might need to sort
the data. The order of the columns is the order specified when the table was created by the database administrator. At the
intersection of every column and row is a specific data item called a value, or, more precisely, an atomic value. A table is named with
a high-level qualifier of the owner's user ID followed by the table name, for example TEST.DEPT or PROD.DEPT. There are three types
of tables:
Back-end developers build, maintain, and debug the back-end that runs an application. As you might imagine, this is a large
responsibility that can be broken down into many tasks. Depending on the company, a back-end developer will be responsible for
some, most, or all of the following:
Developing the systems and processes to meet the application’s specified requirements
Maintaining databases, including data storage and retrieval, organization, backups, and security
Finding and fixing bugs in the back-end code
Managing any APIs the company uses to integrate applications, both externally and internally
Conducting performance optimization to increase efficiency and improve the user experience
Creating and maintaining libraries of code that can be reused by developers across the organization
Helping develop the overall architecture of the application’s back-end
Securing the application from cyberattacks
C. Conclusion
In the above ASM article, I have outlined the main ideas in the article. definition of project requirement, the difference between
FRs and NFRs. and some parts included in the project to create my music website.
D.References
https://www.techopedia.com/definition/438/clientserver-architecture
https://www.esds.co.in/blog/advantages-and-disadvantages-of-client-application-server/
https://topdev.vn/blog/wireframe-la-gi/
https://blog.hubspot.com/website/back-end-developer
https://www.ibm.com/docs/en/zos-basic-skills?topic=zos-what-is-database-management-system