Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

APPENDIX A: ASSESSMENT COVER SHEET

ASSESSMENT COVER SHEET

Daniel
Surname
Luke Denver
First Name/s
178967
Student Number
Principles of Software Engineering
Subject
02
Assessment Number

Tutor’s Name
16/04/24
Date Submitted
×
Submission () First Submission Resubmission

Postal Address
198 Lotus Road, Springtown, Durban, 4091

E-Mail Dluke4173@gmail.com
(Work)
(Home)
Contact Numbers
(Cell) 067 058 4359

BcomITM Year 3 Jan 2024


Course/Intake

Declaration: I hereby declare that the assignment submitted is an original piece of work produced by myself.

Signature: L. D Date: 02/04/24


Question 1.

According to Summerville, 2011, Pg 9 “A software process is a sequence of activities that leads


to the production of a software product.” A software process has four fundamental activities,
namely: Specification, Development, Validation and Evolution. This is how they are applicable
to the AG project server development.

Specification - This is the first activity that takes place in the software development project.
During this phase software engineers determine what software it is that needs to be produced
and the constraints on its operation, this means when AG developers determine that a problem
exists or a new functionality is needed they will need to determine exactly what new software
needs to be developed to address the problem or add the new function whilst taking into
consideration the constrains and limitations of this software development. “Detailed
description of a software system to be developed with it’s functional and non-functional
requirements” is the definition of the specification step by GeeksforGeeks, (blog, software
processes in software engineering, 2023[Accessed 12/04/24]).

Development – This is the second activity in the software process. During development the
software that is determined in specification is developed through designing and programming a
model of the software which when encoded should solve the problem outlined in specification.
According to Sommerville, 10th Ed, chapter 2 “defining the organization of the system and
implementing the system” is what occurs during development. During this activity AG
developers will develop the code and a model of the software outlined in specification.

Validation – Essentially the activity of validation in the software process is to validate that the
software developed in the development activity meets the criteria outlined in the specification
activity and pleases the customer. This is done by testing the software. Although testing is not
just carried out during the validation phase, it is also done during the design and
implementation to ensure any costly errors are detected early. According to Hans Van Vleit,
2007, Pg13 “We also have to check that we are still on the right track as regards fulfilling user
requirements (validation). “ For AG developers this essentially is the step where they present
the code to the AG for review and committing the code and documentation to the repository.

Evolution- Evolution takes place after the software has already been deployed, as there almost
always are errors that may go undetected after the delivery of the software or a new customer
may want similar software with slightly different requirements in which case the software can
be slightly altered to fit their requirements. The system will also just need an overall upgrade or
enhancement along the line so maintenance and Evolution go hand in hand. For AG developers
this is when iterations may occur and the fixing of bugs after deployment also takes place.
According to Sommerville, 2011, Pg 9 “The software is modified to reflect changing customer
and market requirements.”, is what is used to describe the activity of evolution.

These are the four fundamental applications of software processes


Question 2
A classic method for developing software, the waterfall model comprises distinct stages that
need to be finished in order.The stages of the Waterfall model and the fundamentals of
software engineering can be connected in the AG in the following ways:

Requirements Analysis and Definition: According to Sommerville, 2011, Pg31 “The system’s
services, constraints, and
goals are established by consultation with system users.” This phase
corresponds to the process of identifying issues or new features that are required in the softwa
re source. For the AG developers
It entails figuring out a remedy and if a volunteer will take on the problem. It is said that the
system specification is produced during this stage of the Waterfall model.

System and
Software Design: This stage is equivalent to the code development and testing that takes place
within the local copies of the source code used by the developers.
It entails developing and perfecting the fix for the found issue or adding new capabilities.
“establishing an overall system
Architecture” is what is said to happen during this stage according to Sommerville.

Implementation and Unit testing


: According to the Waterfall model, the implementation phase consists of committing the code
and documentation to the repository during the AG's development process and presenting the
code modifications for approval to the AG. Each unit must meet it’s specification. The code will
be tested to determine if it is bug free.

Integration and system Testing: The Waterfall model's system testing is when each individual
unit and parts of the system are integrated and then tested as one whole system, this
makes sure the program complies with the requirements.
This is consistent with the AG's review procedure, which involves multiple rounds until a result i
s reached.
It highlights how crucial it is to conduct extensive testing and review before committing change
s to the code.

Operation and Maintenance: The AG's continuous development and decision-


making process, which prioritizes decentralized workspaces and asynchronous communication,
is comparable to the Waterfall model's deployment and maintenance phase. During this phase
the developed system is in full use after undergoing vigorous testing, however, bug may still
remain and will need to be fixed and the overall system may be altered as per changing
requirements and improved, this all forms part of maintenance.

In conclusion, by stressing the iterative nature of development, the significance of comprehensi


ve testing and review, and the decentralized and asynchronous communication emphasized in t
he AG's development and decisionmaking process, the phases of the Waterfall model can be rel
ated to the principles of software engineering in the context of the Apache Group.
Question 3
Agile methods can be defined by the agile manifesto, to summarize this method prioritizes
individuals and interactions over processes and tools, working software over comprehensive
documentation, customer collaboration over contract negotiation and responding to change
over following a plan, in essence it’s prioritizing agility. There are five principles of agile
methods which can help the AG enhance their operational ability

1. Customer involvement – This means that the customer will be closely involved
throughout the development process. The inclusion of the customer in the development
process is not only to help with keeping the requirements at the forefront of the entire
development process but also to judge the iterations of the system. According to
Sommerville, 2011, pg65, “Customer involvement is supported through the continuous
engagement of the customer in the development team.”. The AG can achieve this by
keeping collaboration between developers at the forefront of the development process.
2. Incremental delivery--This refers to the delivery of the software in small increments at a
time. As each new increment is delivered it will contain new functions and features,
through customer involvement the customer will be held responsible for outlining what
new features they would like to see in each new increment. This Incremental
development will give the AG the ability to consistently improve and add new features
as needed to the software.
3. People not process—This refers to emphasis being on the team (people) during the
software development, this means each team member is given the chance to
independently handle tasks for the collective better of the project. The AG will benefit
from people not process as each developer can showcase their talents for the greater
quality of the overall project. “People, not process, are supported through pair
programming, collective ownership of the system code” according to Sommerville.
4. Embrace change—Change is inevitable and agile methods force developers to
“embrace” that but in reality it forces them to prepare for change as it does not account
for change leaving developers with no choice but to ensure that they include the
accommodation for change in the project should it occur. Incremental delivery also
helps in accommodation for change. The AG should be able to change based on various
forms of feedback or a change of requirements, by embracing change they won’t find
these issues challenging.
5. Maintain Simplicity— Throughout the entire process simplicity should be maintained,
what is meant by this is that in the software being developed and the process of
developing it code should be improved continuously, unnecessary features should be
kept out, and the design should be simple. Hans van Vleit describes this as “Don’t build
in extra complexity so that a certain class becomes more flexible and may be reused if a
certain feature is to be added. “ AG can benefit from maintaining simplicity as it will help
from preventing overcomplicating and creating confusion or errors in the design process
and eventual completed software.

These are the 5 agile process approaches in principle of software engineering in relation to
the AG.
Bibliography
GfG (2023) Software processes in software engineering, GeeksforGeeks. Available at:
https://www.geeksforgeeks.org/software-processes-in-software-engineering/ (Accessed: 12 April 2024).
CS 410/510 - Software Engineering Class Notes. Available at:
https://cs.ccsu.edu/~stan/classes/CS410/Notes16/02-SoftwareProcesses.html (Accessed: 14 April 2024).
Sommerville, I. (2018) Software engineering. München u.a.: Pearson. 9th edition
Vliet, J.C. van (2010) Software engineering: Principles and practice. Chichester etc.: Wiley.

You might also like