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

Software Engineering

Uploaded by

00namjoonie
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)
11 views

Software Engineering

Uploaded by

00namjoonie
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/ 11

Learner Name Samiya Akther Sammi

Learner Registration No. 230208020

Study Centre Name AIMS Academy

Qualification Title OTHM Level 5 Diploma in Information Technology

Unit Reference No. K/617/2276

Unit Title Software Engineering

Word Count 2172

Submission Date

Declaration of authenticity:

1. I declare that the attached submission is my own original work. No significant

part of it has been submitted for any other assignment and I have acknowledged in my

notes and bibliography all written and electronic sources used.

2. I acknowledge that my assignment will be subject to electronic scrutiny for

academic honesty.

3. I understand that failure to meet these guidelines may instigate the centre’s

malpractice procedures and risk failure of the unit and / or qualification.

_________________ _________________

Learner signature Tutor signature

Date: Date:
Assignment Cover Sheet

Table of Contents

Introduction................................................................................................................................2

1.1 Describe different modelling languages..........................................................................3

1.2 Explain the benefit of using modelling languages in system design...................................4

3.1 Evaluate how software testing differs for different strategies..............................................5

3.2 Describe the stages of system testing...................................................................................6

3.3 Evaluate different software testing tools available for the automation of the testing
process........................................................................................................................................8

References................................................................................................................................10

1
Introduction

Creating software systems with precision and procedure is known as software engineering. To
produce software that is dependable, effective, and easy to use, it combines concepts from
computer science, engineering, and project management. With software having to match
industry standards and user needs, this sector is crucial in today's technologically advanced
society. Incorporating techniques, instruments, and ethical issues, it encompasses phases such
as requirements collecting, design, implementation, testing, and maintenance. To put it
briefly, the focus is on providing software solutions that are dependable. (Elgabry 2022)

2
1.1 Describe different modelling languages.

Any artificial language that has a specified structure and can be used to convey data,
knowledge, or system is known as modelling language.

1.Unified Modelling Language (UML): Unified modelling language is a graphical


standardized language which helps the developers or the system creators to visualize and
understand the system more precisely. UML makes the system easier to understand by using
some set of diagrams which represents different aspect of a system such as data, business,
object, and component. UML is not a programming language but it’s being used widely in
software engineering for object-oriented design and analysis. UML provides powerful and
wide range of notation which also helps to speed up development.

2. Business Process Model and Notation (BPMN): Business process model and notation is
a standard graphical notation which is mostly used for business process management and
documenting. Flowcharts are used in BPMN to represent the information and tasks in order.
It aims to be more understandable and user-friendly for technical and business users alike.
Using a common notation, it enables businesses to discuss, document, and optimise their
processes.

3.ArchiMate: An organization's interactions, processes, and constituent parts can be


structurally described and visualised using ArchiMate, an open and independent architecture
modelling language. It offers a common vocabulary to describe information flows, IT
systems, operational and development processes, and technological infrastructure. It is very
useful for explaining and capturing intricate architectural ideas. The ArchiMate language is
designed to be more vendor neutral and may be used with a variety of frameworks and
procedures.

To sum up, UML is a general-purpose modelling language for software systems, BPMN is
dedicated to modelling business processes, and ArchiMate is concentrated on modelling
enterprise architecture. A distinct set of topic-specific diagrams and concepts are included in
each of these languages. ( IcePanel 2023)

3
1.2 Explain the benefit of using modelling languages in system design.

The ability to express and comprehend complex systems more easily is one of the key
benefits of utilising modelling languages in system design. These languages provide a
common, visual framework for stakeholder communication.

1. Clarity and Visualisation: Modelling languages enable system designers to create visual
representations of the components, relationships, and procedures of the system, which
promotes understanding and communication between technical and non-technical
stakeholders.

2. Consistency: By encouraging uniformity in documentation and design, they make sure


that everyone in the team is aware of the architecture and behaviour of the system.

3. Simplicity and Abstraction: By enabling designers to concentrate on high-level concepts


and structures while abstracting intricate details, these languages streamline the design
process.

4. Analysis and Validation: By ensuring that models are accurate and comprehensive prior
to the actual system implementation, errors and rework can be minimised in subsequent
stages.

5. Documentation: Models act as thorough documentation, which facilitates knowledge


sharing among team members and makes system upkeep and updates easier.

In conclusion, modelling languages provide a structured, visual representation of the system,


which improves cooperation, lowers ambiguity, and raises the general quality of system
design. IcePanel (2023)

4
3.1 Evaluate how software testing differs for different strategies.

Depending on the chosen testing approach, software testing varies greatly. Every strategy has
a different methodology, set of goals, and techniques.

1. Manual Testing: To conduct manual testing, human testers must simulate end users of the
product. Manually completing test cases allows testers to examine the functionality and user
interface of the programme. This is a useful approach for experimental, ad hoc, and early
testing phases where human ingenuity and intuition are crucial. Manual testing requires a lot
of work, which makes doing repetitive jobs difficult. But it's quite good at identifying
problems with real-world usability and user experience.

2. Automated Testing: Using automation technologies, test scripts are created and
executed as part of automated testing. Test scripts can be run multiple times to ensure
consistency and prompt response by simulating user interactions. Regression testing and task
validation are two of its best uses. Exploratory and usability testing are better suited for
manual testing, which necessitates scripting abilities.

3. Black-Box Testing: This type of testing ignores the internal code of the programme in
favour of concentrating on how it behaves externally. Testers evaluate the software's response
to a range of inputs and circumstances. It mimics end-user interactions and is user-centric,
requiring no understanding of the underlying code. It does, however, offer little
understanding of structural problems and code quality.

4. White-Box Testing: In white-box testing, the internal code, algorithms, and logic of the
software are examined. The structure of the code is used by testers to design tests. By
focusing on certain code pathways and logic, this method finds problems that black-box
testing would overlook. While white-box testing is useful for code-centric testing, it may not
5. Agile Testing: Using rapid iterations and releases, agile testing is incorporated into the
development process. Test cases are frequently connected to user stories and acceptance
criteria, and testing is done in accordance with evolving requirements. Keeping up with Agile
development cycles necessitates flexibility, tight cooperation with development, and a focus
on real-time testing.
5
6. Waterfall Testing: Waterfall testing, on the other hand, employs a staged methodology,
with testing taking place following development stages like as acceptability and system
testing. Although it places a strong emphasis on thorough test documentation, it is less
flexible after each phase.

7. Security Testing: Finding weaknesses and vulnerabilities is the focus of security testing.
To evaluate the software's resistance to security risks, testers create a variety of scenarios and
attacks. Proficiency in security testing methodologies and instruments is necessary. Cover all
user scenarios and necessitates programming skills.

In conclusion, the kind of software being produced, time constraints, and project needs all
influence the testing technique selection. The benefits and trade-offs of each method are
different, therefore choosing the best one is essential to ensuring the quality of the
programme. (Bose, 2023)

3.2 Describe the stages of system testing.

A critical step in the software testing process is system testing, which involves testing the
system to make sure it satisfies the intended requirements. This phase consists of multiple
stages, each with a distinct emphasis:

1. System Integration Testing: In this preliminary phase, separate software modules or


components are integrated and tested collectively. Finding any integration problems is the
aim to make sure that various components of the system can function together as planned.
Module-to-module testing, component communication, and data flow verification are
examples of integration testing.

2. Functional Testing: The purpose of functional testing is to confirm that the system
operates as intended and that all the specifications are met. Test cases are made to see if every
feature or function works as it should. Test scenarios, both positive and negative, are run to
make sure the software satisfies its functional requirements.

6
3. Non-Functional Testing: Non-functional testing assesses non-functional characteristics of
the system, including usability, performance, scalability, and dependability. This phase
evaluates the system's ability to manage certain non-functional characteristics. Stress testing,
load testing, usability testing, and reliability testing are examples of common non-functional
tests.

4. Compatibility testing: This process evaluates the program's performance across a range of
hardware, operating systems, browsers, and platforms. Making sure the programme runs
consistently in different environments is the aim. To find compatibility problems, it entails
testing on various configurations and settings.

5. User Acceptance Testing (UAT): Before software is deployed, UAT is usually the last
phase. End users or other stakeholders test the software at this point to see if it satisfies their
requirements and expectations. Its main objective is to verify if the programme complies with
business needs and actual use cases.

6. Regression Testing: Regression testing is a continuous procedure that extends beyond


system testing. This is done to make sure that any additions or modifications to the software
don't cause new bugs or interfere with already-existing features. To make sure the latest
modifications haven't had a detrimental effect on the system, testers rerun previously
completed test cases.

7. Usability Testing: This process evaluates how user-friendly the system is, making sure
that it is simple to use and navigate. During this testing phase, actual users or representative
stakeholders offer comments on the user interface and overall user experience.

System testing phases are critical to fully verifying the functionality, performance, and
quality of the software system prior to its distribution to clients or end users. (Preston, 2023)

7
3.3 Evaluate different software testing tools available for the automation of the testing
process.

There are several testing tools available on the market, and each has unique features,
functionalities, and advantages. The testing tool you use will rely on your budget,
technological stack, and unique requirements. These are a few well-liked software testing
instruments:

1. Selenium: For automated web browser testing, Selenium is a popular open-source tool. Its
versatility for web application testing stems from its compatibility for numerous
programming languages and browsers.

2. Appium: Appium is an open-source automation programme made especially for testing


mobile applications. Its compatibility for both iOS and Android platforms is advantageous for
testing mobile applications.

3. Test Complete: A paid testing tool, Test Complete is well-known for its record and
playback functions. It supports testing of desktop, mobile, and online apps and has various
built-in test automation techniques.

4. Jenkins: Jenkins is a well-liked open-source framework for ongoing testing and


continuous integration. It builds, tests, and deploys applications automatically and is
interoperable with a wide range of testing frameworks and tools.

5. Postman: One popular tool for testing APIs is Postman. Tester testing, documentation, and
API design are all made more effective by it. Its application is advantageous for HTTP query
and RESTful web service testing.

6. Loadmaster: An application's response to various load scenarios is assessed using a


performance testing tool called LoadRunner. It simulates multiple users in order to
investigate performance bottlenecks.

7. JIRA: Although JIRA is generally used for recording issues and projects, it also connects
with several test management solutions, which makes it a useful tool for managing and
tracking test cases.

8
8. SoapUI: A well-liked tool for SOAP and REST web service testing is SoapUI. It provides
a wealth of features for writing, running, and verifying API tests.

9. Cypress: Mostly used for web applications, Cypress is an end-to-end testing framework
that runs on JavaScript. It provides automatic waiting, time-travel debugging, and real-time
reloading.

10. Browser Stack: This cloud-based cross-browser testing platform is called Browser Stack.
It lets you test web apps across a variety of operating systems, devices, and browsers.

A few things to think about when assessing testing tools for automation include their ease of
use, compatibility with your technological stack, community support, cost of licencing, and
the testing requirements of your project. Whether you are using web, mobile, API, or
performance testing, the tools you use should match the objectives of your project and the
testing approach. (Collins, 2023)

9
References

Elgabry, O. 2022, “Software Engineering — Introduction (Part 1) - OmarElgabry’s Blog -


Medium,” Medium, viewed <https://medium.com/omarelgabrys-blog/software-engineering-
introduction-part-1-b79238ec97ee>.

IcePanel (2023) 7 modelling languages for software architecture - IcePanel - Medium.


Available at: https://icepanel.medium.com/7-modelling-languages-for-software-architecture-
2ed3a9f75343.

IcePanel (2023) 7 modelling languages for software architecture - IcePanel - Medium.


Available at: https://icepanel.medium.com/7-modelling-languages-for-software-architecture-
2ed3a9f75343.

Bose, S. (2023) Software Testing Strategies and Approaches | BrowserStack. Available at:
https://www.browserstack.com/guide/software-testing-strategies-and-approaches.

Preston, M. (2023) 7 Phases of the System Development Life Cycle Guide. Available at:
https://www.clouddefense.ai/system-development-life-cycle/.

Collins, T. (2023) What are different Software Testing Tools? | BrowserStack. Available at:
https://www.browserstack.com/guide/what-are-testing-tools.

10

You might also like