Professional Documents
Culture Documents
UC- Website Technical Requirement Modeling
UC- Website Technical Requirement Modeling
Harambee University
TVET CURRICULUM
WEB DEVELOPMENT AND DATABASE
ADMINISTRATION
LEVEL – III
Occupational Standard (OS)
Unit of Competence: Website Technical Requirement Modeling
Module Title: Website Technical Requirement Modeling
Learning outcomes:
LO#1 Define Technical Environment
LO#2 Define Human Computer Interface
LO#3 Determine Site Hierarchy
LO#4 Gather Data through Formal and Informal Processes
The technique of modeling requirements and solutions as they change through collaborative work and
cooperation is known as Requirements Modeling. You may ensure that your team satisfies the
stakeholders’ exact requirements by employing this approach of cross-functional, self-organizing teams.
Requirements can be anything that a customer or user wants from a software system. They can include
functional requirements (what the system should do), non-functional requirements (such as
performance, security, etc.), as well as constraints (things that might limit what the system can do).
Refers to the servers, operating systems, database management systems (DBMS) and network
Software required operating the Software.
Technical requirements analysis begins with the business requirements documents created during
the business analysis phase. Using the business requirements as a basis, you perform the following
steps:
Perform a usage analysis to aid in determining expected load on the deployment
Create a set of use cases that model typical user interaction with the deployment
Create a set of system requirements that are derived from the business requirements, use cases,
and usage analysis.
The use cases are also the basis for designing the logical architecture in the design phase.
The logical architecture and the system requirements together form the deployment scenario, which later is
an input to the deployment design phase.
The following figure shows the technical requirements phase in relation to the business analysis, logical
design, and deployment design phases.
Figure 1-1 Technical Requirements Phase and Other Deployment Planning Phases
Try to aim for having at least 16 GB of RAM in your system. A zippy processor might make rendering
easier and more convenient, so opting for the latest generation of the i5 or i7 processor might serve you
well. For the best performance, choose a quad-core processor with a speed of at least 3GHz.
If you’re doing graphic design work, consider the type of file output that you’ll be working with before
deciding on a machine. Graphic designers should look into obtaining a dedicated graphics processing
unit (GPU). Similarly, they should invest in a dedicated graphics card with a generous amount of video
RAM (VRAM).
If you intend to work with hefty videos, think about investing in a desktop with RAID (redundant array of
independent disks) capability.
If you find that you’re working in a discipline that requires you to pull up large files quickly, consider
obtaining a solid state drive (SSD).
Typically, you will want a hard drive that is as large and as fast as possible. Look for one that boasts
7200 RPM.
Software Requirements
Operation System
When deciding on computer specs for Web development, you’ll have to consider what type of operating
system that you will want to use for work.
While a handful of different operating systems exist, many, like Chrome OS and Linux, have limitations
or complexities that could complicate your training.
The ubiquity and flexibility of Windows will allow you more options when configuring a system, while
Mac operating systems offer their own set of benefits, such as virtualization software and Git tools.
Identify the problem or opportunity: Clearly and concisely describe the problem or opportunity that
the software will address. Be specific about the business goals that the software must achieve.
Gather input from stakeholders: Identify the key stakeholders who will be impacted by the software
and gather their input to ensure that the software meets their needs.
Define success metrics: Clearly define the success metrics that the software must meet in order to
achieve the business goals. These may include metrics such as increased efficiency, cost savings, or
increased revenue.
Describe the desired outcome: Describe the desired outcome of the software in terms of how it will
improve the business. This will help to ensure that the software development company fully
understands the business requirements and can deliver software that meets your needs.
Prioritize the requirement: Prioritize the requirement in terms of their importance and urgency. This
will help to ensure that the software development company focuses on the most critical requirements
first and that the software meets the most important business needs.
This will help to ensure that the software development company fully understands your requirements
and can deliver software that meets your needs.
Business Requirement
Problem: The sales team is currently using a manual process to track customer orders, which is
Time-consuming and error-prone.
Opportunity: Implementing a new software system to automate the order tracking process will
increase efficiency and accuracy, resulting in increased sales and customer satisfaction.
Specific Business Goals:
Reduce the time spent on order tracking by 50%
Increase accuracy of order tracking by 90%
Increase sales by 20%
Stakeholders:
Sales team
Customer service team
Management
Success Metrics:
Number of orders processed per hour
Number of errors in order tracking
Sales revenue
Desired Outcome:
The new software system will automate the order tracking process, allowing the sales team to spend
more time on selling and less time on administrative tasks. This will result in increased efficiency,
accuracy, and sales.
Prioritizing Requirements:
Automating the order tracking process is the most critical requirement, as it is the foundation of the project.
Implementing a user-friendly interface for the sales team to enter and track orders is the second-most
critical requirement, as it will be used by the sales team on a daily basis.
Implementing a reporting feature for management is the third-most critical requirement, as it will provide
visibility into the performance of the sales team.
As you can see, this example clearly defines the business requirement by describing the problem,
opportunity and specific business goals, identifying the stakeholders, defining success metrics, describing
the desired outcome, and prioritizing the requirements.
This will help the software development company understand the business requirement and develop
software that meets the specific needs of the business.
As stated above, computer hardware encompasses digital devices that you can physically touch.
This includes devices such as the following:
Desktop computers
Laptop computers
Mobile phones
Tablet computers
e-readers
Storage devices, such as flash drives input devices, such as keyboards, mice, and scanners output
devices such as printers and speakers. Besides these more traditional computer hardware devices, many
items that were once not considered digital devices are now becoming computerized themselves.
Digital technologies are being integrated into many everyday objects so the days of a device being labeled
categorically as computer hardware may be ending.
These documents are the foundation on which a team operates for development. It guides in perceiving,
strategizing, budgeting, and executing a project.
We have crafted these seven software requirements tips that can help you document practical software
requirements file for a successful development phase.
Avoid ambiguous statements and unclear information. Don’t forget to keep in the loop all the necessary
personnel. Such as business leaders, developmental staff, project managers, customers, etc.
3. Throughout Consistent
The majority of the times, software requirement documents are long and lengthy.
They are divided into many parts, with their specific details. To avoid confusion, opt for consistent
requirements only.
Make sure you have no duplicated requirements as it, later on, turns into fluff. Unnecessary requirements
lead to errors that waste the time and cause hindrance to the process.
Sometimes, a single misinterpreted statement can lead to disastrous outcomes. Make sure to phrase each
statement with clarity and with one probable interpretation. Collaborate and conduct reviews to ensure
unambiguous documents.
It empowers the team to be creative and come up with designs that are as per your expectations.
Don’t provide specific implementation details unless necessary. It can limit creativity and developmental
procedure.
These principles are a great starting point for creating or assessing the structure of your own site and it is
worthwhile quickly going through them and defining what they mean.
Eight principles to help designers make the right decisions when creating their build strategies.
Give people who arrive at other pages the chance to view useful information and navigation aids from
wherever they come on board and try to make your site accessible from wherever they land.
To list the best tools for web development, we considered the following aspects:
Complexity: - Before investing in a web development tool, ensure it meets your actual needs and
capabilities.
Security: - A good web development tool should provide web application security solutions like cross-site
scripting (XSS) management, Web Application Firewalls (WAF), and security audits to protect your app
from cyber-attacks.
Scalability: - The tool should work with small and large projects.
Cost: - Consider its pricing system, as some web developer tools are free, while others have a monthly or
yearly subscription system.
Programming languages: - Pick web development tools that are compatible with the programming
language you use.
Platform support: - Check if the web development tool will provide adequate assistance and support in
case of software issues.
Since web application development is a dynamic field that evolves continuously, a web developer’s role is
a highly demanding job throughout the world. The current web development trend includes technologies
like – IOT, voice search, machine learning, cyber-security, artificial intelligence, cloud technology, and
more.
Types of Web Development Tools
Web development tools help developers build, test, deploy, and user-friendly websites. There are different
types of tools you can choose in this regard. They often include frameworks and libraries that provide a
foundation for building web applications.
Whereas, the back-end tools contribute to the unseen portion of a website/app. That means the
users can’t see this part of the application. So, these tools aid in creating servers, databases, APIs,
algorithms, and more to support the front-end part.
2. Vue.js:- is another JS library that focuses on the view layer of your web. It’s small in size and
easily integrates with other projects.
Also, it summed up with the Angular, and React features, easily. Again, it supports cross-platform
applications, unit testing, routing, etc. The two-way binding feature gives you real-time data tracking and
component updates. The fastest speed of Vue.js offers refined user experience on web browsing.
3. Angular JS: - This is another popular JS framework created by Google. It provides the solution
for both development and testing.
One of its attractive features is supporting client-side MVC (Model-View-controller) and MVVM (Model-
View-View-Model) architecture. Also, it provides UI with HTM, two-way data binding, dependency injection,
and more. You can create a single-page-application and get Google community support for regular
updates.
4. Bootstrap: - Bootstrap is one of the powerful front-end mobile app and web development tools.
It’s an open-source responsive CSS framework. It maintains an easy responsive, mobile-first web
development approach to design UI-level components like forms, buttons, headers, footers, navigation
menus and bars, etc. This framework also provides cross-browser compatibility.
You can embed it easily with HTML, CSS, and other front-end tools. PHP is highly scalable and free to
use. Also, it integrates with several popular DBs – MySQL, Oracle, MS SQL Server, etc.
2. Python: - It’s an easy back-end programming language with simple syntaxes. That’s why it
grabs a large share of the web development industry. It’s a cross-platform language that
supports different languages like C, Java, etc.
Also, it helps in data visualization, and analytics, as well.
The Selenium Python combination creates great test scripts for automation, cross-browser, and parallel
testing. It’s free and open-source. You can try new types of apps with this. Thus it increases productivity.
4. Node.js:- It is an open-source, cross-platform runtime environment for JS. The developers use
it for server-side web application development.
Node.js easily builds real-time and data-intensive webs. A Node.js developer gives you fast prototype
delivery, on-time releases and real-time apps. Thus it saves extra time, money, and resources.
5. Django: - It’s a well-known back-end web development framework. Specifically, you can use it
for Python programming. It includes features like scalability, flexibility, extensibility, and more.
You can write and run unit tests with Django’s test execution framework.
6. Ruby on Rails: It’s a powerful full-stack framework that comes with distinct features like-an
active record for connecting apps’ databases, modifying SQL queries, and more. A rails app has
three environments – development, testing, and production. Rails create a test directory for the
QAs.
RoR is totally free of cost and provides free plug-ins. You can easily modify codes and add new features
through this framework. You can easily remove bugs when you test your codes through this framework.
7. Laravel: - Laravel is a framework for web development using PHP. It supports data
migrations, routing, validation, views, Blade templates, and more.
It supports unit testing through phpunit.xml files and provides a configuration environment for your tests.
The Laravel package comes with pre-built user authentication and authorization, cross-site screening,
simplified email integrations, message systems, and more. Also, it gives high performance under heavy
traffic loads.
8. Express.js:- It’s a web development platform with Node.js. You can create single-page, multi-
page, and hybrid web apps with this framework.
It provides faster I/O, handles asynchronous, single treads, and manages servers, routes, and more.
It supports unit, integration, and end-to-end testing. You can scale your application quickly and use JS for
both front-end, back-end developments with this framework. It gets support from Google v8 engine, which
increases its performance.
2. Sublime Text: - It’s a pure text editor that comes with a Python interface. It supports Markup and
other programming languages. It provides customization with JSON configuration files. Another
important thing is – it supports split editing (dividing the webpage into different sections).
3. Atom: - The Git Hub community built this open-source, free, desktop app. Generally, it edits text
and source codes. It’s a cross-platform editor and provides built-in Git control and multi-cursor plug-
ins. It’s written in JS, HTML, less, etc.
4. WebStorm: - It handles complex server-side and client-side Node.js development. Also, provides
coding support for different JS frameworks, and built-in tools for debugging, and testing the Node.js
apps. Again, it supports features like – smart code insights, Spy.js built- in tools, auto-completion,
etc.
5. Eclipse: - It’s a free, open-source IDE for Java developers. Also, it supports JUnit tests and Maven
projects. It provides different tools and frameworks related to non-software development. Some of
them are – web tools, data tools, test and performance tools, etc.
Project Management/Collaborative tools
1. GitHub: - It’s a popular version control, project management, and collaboration tool for developers.
You can use the GitHub repository to commit (save) your source code files.
You can use BrowserStack-GitHub integration for automation testing and track the changes of your codes
throughout different versions of GitHub.
3. Bitbucket: - It’s a code hosting and collaboration tool that provides solutions for CI/CD, automation,
cloud, server, data center, etc. BrowserStack integrates the Bitbucket pipeline for running your
automation tests.
It provides unlimited repositories including Git to manage your source codes, access control, and workflow
control. You can manage large file systems from Git.
4. Trello: - This project management tool handles project plans, workflows, visual progress,
collaboration, and more.
It’s a simple, flexible tool that also tracks your project boards, and lists to find the people involved in every
task. It has the strongest notification system for project management. Also, you don’t need to write any
notes when using it.
5. Slack: - It’s a collaborative app to handle your automation workflows. It provides integrations with
different services- Google Drive, Office 365, etc. Also, it has other features like – channels, canvas,
messaging, accessibility, security, etc. It supports integrations with CRM tools and automates your
important tasks.