Professional Documents
Culture Documents
Principles of Software Engineering Assessment 02
Principles of Software Engineering Assessment 02
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
Declaration: I hereby declare that the assignment submitted is an original piece of work produced by myself.
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.
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.
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.
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.