-
QUESTION
Managing software development
Assignment 2
The assignment a has component that is a C# source code but the majority is written responses. The responses and the C# code should be submitted through the submission link in the unit site.
This assignment covers the agile development and automatic document generation topics in the unit.
Important: You must submit your own solution with reasoning, however, we are perfectly happy for you to chat and discuss with previous students of this unit and your current classmates. The last bit is particularly important. What we are looking for is the thought process behind your designs and solutions as well as the actual solutions. Reports which do not give satisfactory reasons for their designs and solutions will be penalised.
Part 1 – Agile processes (15 marks)
Spearhead Technology Services (STS) were so pleased with your previous software development advice where you assisted them with procurement processes, that you have retained them as a client.
As you know, STS are involved with Internet of Things (IoT) products. The founders of STS recognised a larger need for small and ‘smart’ software products than centralised large systems. To maintain its competitive advantages, STS has to adapt itself to the market. Sizes of their development projects will become smaller, while multiple projects of many varieties may be undertaken in parallel. The Waterfall process model is not appropriate for many of their future projects. STS is investigating the adoption of Agile methodologies and practices. You are required to write a report on the adoption of Scrum and XP methodologies (including identifying individual practices and processes suitable for STS), for STS. Your report should provide:
- An overview of the Agile mindset (3.5 marks).
- Comparison of the Agile mindset and the Waterfall process (3.5 marks).
- Description of Scrum process and XP methodology (3.5 marks).
- Guidelines for choosing Scrum or XP according to types of projects (3.5 marks).
- Another well-known process as candidate of adoption of new process for the second stage (1 mark).
The other well-known process can be any process you know. This will require independent research and your illustration of understanding Agile concepts in software development. The contents of the report should be organised logically, and the report should have a title, an executive summary, an introduction, a conclusion, and reference list. The briefing should be a maximum of 1500 words. This is a briefing to an employer/client. You will be penalised for going over the limit, as it may indicate your writing is not precise and you have not thought about your responses enough.
2
Part 2 – Automatic document generation (5 marks)
Your clients have requested a demonstration on the value of automatic document generation to be presented to their new junior programmers that have just begun working at the company. Attached is a C# program for a simple game that you are required to use to demonstrate this. You must replace the current inadequate comments with the C# XML comments. Your XML comments should contain examples of each of the following tags at the very least:
- <summary> and <remarks> (1.5 marks)
- <param> and <returns> (1.5 marks)
- <code> (1 mark)
- <see> (1 mark)
Note that your code does not have to compile but you could implement it in Visual Studio to iron out problems. Please note that you need to explain each of your C# XML comments. Comments without a good explanation will result in loss of marks and may not be marked entirely.
namespace Assign2
{
//
// This program is for CMP73010 Assignment 2 (2020)
//
- It calls some functions that need commenting
class Program
{
- Mainline function
//
static void Main(string[] args)
{
int num1 = ReadNumber();
int num2 = ReadNumber();
FormatBinary(num1, “+”, num2, Add(num1,
num2)); Console.ReadLine();
}
//
// Read a single integer
//
public static int ReadNumber()
{
Console.Write(“Number:
“); try
{
return Convert.ToInt32(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine(“illegal number
format”); return 0;
}
}
//
// Formatted operation output
//
public static void FormatBinary(int n1, string op, int n2, int result)
{
3
Console.WriteLine(“{0} {1} {2} = {3}”, n1, op, n2, result);
}
//
// Add two integers
//
public static int Add(int n1, int n2)
{
return n1 + n2;
}
}
}
4
Mark deductions (after):
Demerit areas
Marks
Not using the report template (CMP73010_Assignment_2_Report_Template.docx)
-3%
Not writing Report Title, Student name, Student Number, etc. at the first page
-1%
Not writing the Executive Summary
-1%
Not writing the Introduction and Conclusion sections
-1%
Exceeding the maximum word-limit
– 2%
Late submission penalty
5% per day
Notes:
- Coversheet: Students must use the report coversheet, available at the Assessment page, to submit this assignment. Information regarding mark distribution, word-limit, etc. in the template file is for the whole assignment.
- Word-limit: The maximum word-limit will be strictly applied. The marker can deduct marks for writing over this word-limit. So, make sure your report is completed within the given word-limit (1500 words). There is no maximum word-limit applicable for Title, Executive Summary and
- Start early and submit on-time: Avoid any pitfalls that may arise due to late start. Thus, start your assignment as soon as possible to submit on-time. For late submissions, the standard assessment submission policy will be applied (see the unit profile).
- Appendix: You may add appendices to document any additional material you wish to include such as tables, diagrams, figures, or other supplementary material. Appendices do not contribute to the word count of the document.
- Reference: You should add a reference section and include any references, including publications (literature, books, etc.), which you want to refer to support your report.
- Consultation: You will have the opportunity to show your assignment draft to your tutors/lecturer/unit assessor for feedback. Several assignment consultation slots will be organised; follow the announcements from the unit assessor.
- Contact: Please contact the tutor/lecturer/unit assessor if you have any issues or confusions.
Subject | Computer Technology | Pages | 13 | Style | APA |
---|
Answer
-
-
Managing Software Development
Part 1 – Agile processes
Executive Summary
Agile software methodologies are widely applicable in organizations because of factors such as simplicity,ease ofcomunication,accurate estimation of development resources,small development team and lower system requirments.The software development methodologies such as Extreme Programming and Scrum are scalable and allows iterative software development process.This allows complete parts of the working system to be released in batches in an event that the resources of a client reduce.On the other hand,agile processes such as Kanban use workflows to manage software development.Agile processes ensures there is a speedy development and release of sotware as compared to other methodologies such as the Waterfall model.
Introduction
According to William (2010),agile methodologies and practices entail adopting changes in the software development requirements in accordance to client preferences. Also, it entails the incremental software development methodologies as the need to incorporate other functionalities in the system arise (Flora et al.,2014).Some examples of agile methodology practices comprise of Agile Scrum Methodology,Lean Software Development,Kanban,Extreme Programming (XP),Crystal,Dynamic Systems Development Method (DSDM) and Feature Driven Development (FDD) (William,2010).
Comparison of the agile mindset and the Waterfall process
There are a number of differences between theagile development methodologies and the Waterfall model. The Agile software development practices use the iterative approach in the product development cycle. On the other hand, the Waterfall process follows a sequential product development cycle(Van Casteren, 2017).Moreover,in Agile software development process the software is released in batches at varying time intervals whereas in the Waterfall process, the whole product is released only when it is complete(Agile vs Waterfall: Which is the Best Methodology for Your Project? ,2020).Besides, Agile software development process utilizes the new and modern software development practices whereas the Waterfall process uses the old software development approaches.Furthermore,the Agile mindset uses iterative development and multiple releases of software. On the other hand, the Waterfall model is completed in a single cycle with only one single release.
The scrum methodology
Scrum software development methodology is as an example of agile sotware development process. The software development team contributes in the creation of the software in bits until iscomplete(Permana, 2015). The scrum development methodology segmented is into parts such as product owner, scrum master and the team. The role of the product owner is to outline the requirements of the software to be developed. Besides, the product owner defines thespecificationsof the software(Permana, 2015). These specifications are then implemented by the software development team to create the product as specified by the product owner. The initial product requirements known as product backlog outlines the needs of the product owner. The product backlog serves as the blueprint on which a softwaresystem isbuilt(Permana, 2015). The scrum master is tasked with allocating duties to each member in the software development team(Permana, 2015).Moreover,the scrum master monitors the progress of each developer to ensure that the product is delivered on time and that theycomplete their assigments with precision.Essentially, the scrum flow entails the visualization o the system to be created as outlined in the product backlog.The product backlog defines the objective of the system to be created.A timeline within which the software is to be delivered ischosen.It can be one month or more depending on the overall requirements o the software(Permana, 2015).Meetups are organized by the Scrum master to allow code reviews to be done by the team members.A typical meeting consists of a Scrum master,project manager and the software development team.Firstly,product backlog planning isled by the project manager.Sprint planning is then done to ensure that each member in the team accomplishes their tasks within the given time limit(Permana, 2015).In addition,daily meetings are held so that each member in the team are are able to determine milestones achieved in the software development process.
Extreme Programming Methodology
Extreme programming methodology is a software engineering methodology that follows lightweight software engineering practices.Informal requirements from clients are collected and changes are gradually made to the software(Lytvynova, 2018).The programmers make continuous changes in designs,integration and testing.They refactor the code each time there are new developments so as to incorporate any new changes that may arise with changing client preferences or whenever a customer requires a new functionality in the system(Lytvynova, 2018).Extreme programming is highly recommended or projects with unpredictable and unstable system requirements.Extreme programming is characterized by a number offeatures and benefits such as communication,simplicity and feedback.Communication is significant to ensure that the project does not fail(Lytvynova, 2018).Moreover,simplicity allows changes to be easily implemented in a software system.The written code should be easy to understand and also allow scalability of the system in the near future.Besides,feedback is significant since the programmers are able to know where there is need to modify code in the software.When software is developed incrementally with a series ofrealeases,developers are able to identiy bugs and errors quickly and make the necessary changes(Lytvynova, 2018).However,the disadvantages ofextreme programming are that it is not suitable or very large projects.Furthermore,extremeprogramming requires a lot of collaboration between software programmers to avoid conflicts in the code base.
Guidelines for Choosing Extreme ProgrammingAccording to Types of Projects
In choosing in choosing extreme programming methodologies there are key factors that must be put into consideration.Some of the factors include accurate initial estimation of costs and development time,integration of requirements modifications during the development process,attaining functional versions of the system during the development process,developmentcosts,system complexity,communication between customers and developers and size o the development team(Lytvynova, 2018).In extreme programming methodology , there is scalability and adaptabilitythat allows accurate initial estimation of costs and development time.Additionally,extreme programming methodology allows integration of requirements in the development process allowing clients to request for modifications to be implemented in the system by developers(Lytvynova, 2018).Besides,clients can obtain complete iterations of the software versions even if the system is incomplete.They can still use part of the systemeven if resources are unavailable.Furthermore,the development costs in extreme programming are lower in comparison with software development methodologies making it suitable or an organization to adopt(Lytvynova, 2018).Also,extreme programming practices are simple hence provides scalability that allows different programmers work together at any given time(Lytvynova, 2018).Besides,there is need for clear communication between developers and clients that is provided by extreme programming.
Kanban Software Development Methodology
Kanban is one of the agile software development methodologies that allows organizations to design and improve the work flow of their systems.This methodology is suitable where there are unpredictable requirements and there is limited time to wait for other specications(What is Kanban? ,2019).It does not follow sprinting principles like extreme programming methodology.The software development process begins and stops after 2 to 4 weeks(What is Kanban? ,2019).Besides,this methodology supports continuous software development process without overloading programmers with too much work.Besides,it applies the concepts of TBD,WIP and Done in signboard workflow to enhance communication and and of good view of the structure of the development flow(What is Kanban? ,2019).The principles of Kanban methodology such as management of workflow ensures that the incurred development costs is at the bare minimum.The other principles include visualization of workflow,limitingwork progress,managing the workflow,making processes and policies explicit,implementingfeedback loops and continuous improvement(What is Kanban? ,2019).Kanban software development methodology lack a defined role allocation.It is solely upto the organization’s management team to decide on which duties to assign to a developer.Moreover,if a certain role makes the software development process slower then it is removed(What is Kanban? ,2019).However,Kanban software methodology has a number of demerits such as destruction of an entire software module during development time that maybe difficult to recover. In addition,Kanban is not managed rather uses WIP(Work In Progress) mechanism.
Conclusion
Agile software development processes provide iterative generation of software systems in several organizations.Examples of the agile sotware development methodologies include Scrum,Extreme programming and andKanban.They utilize principles that minimize development costs,use of smaller development teams and allows accurate estimation of the initial development cost.However,actors such as communication breakdown significantly affect agile processes.Forinstance,in Extreme Programmer, if one developer cannot understand other developers implemented then the scalability of the system will be compromised.
Part 2 – Automatic Document Generation
using System;
namespace Assign2
{
// The namespace Assign2organizes the various function blocks of the whole code.
classProgram
{
// This is the main class with functions that are called within the code in the program
staticvoid Main(string[] args)
{
int num1 = ReadNumber();
int num2 = ReadNumber();
FormatBinary(num1, “+”, num2, Add(num1,
num2)); Console.ReadLine();
}
//This function takes two parameters that are integers num1 and num2 and computes the sum and returns the result.For instance,if you add two integers 45 and 67 the output that is returned is 112.
//The function can be called from any part of the code and can be reused when the need arises.
//There is only one single instance for the class Program no matter the number of objects instantiated from it.
publicstaticint ReadNumber()
{
Console.Write(“Number: “); try
{
return Convert.ToInt32(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine(“illegal number format”);
return 0;
}
}
//Console.Write in the function ReadNumber allows the output to be printed in the Console.
// The function is placed in try catch block to capture any errors in the function block.
//In case there is an illegal number format then the code returns nothing.
publicstaticvoid FormatBinary(int n1, string op, int n2, int result)
{
Console.WriteLine(“{0} {1} {2} = {3}”, n1, op, n2, result);
}
//This function returns the result of adding any two integers.
publicstaticint Add(int n1, int n2)
{
return n1 + n2;
}
}
}
Sample Output of the Running Code
-
References
Agile vs Waterfall: Which is the Best Methodology for Your Project? (2020, September 13). Retrieved October 4, 2020, from https://www.softwaretestinghelp.com/agile-vs-waterfall/
Flora, H. K., & Chande, S. V. (2014). A systematic study on agile software development methodologies and practices. International Journal of Computer Science and Information Technologies, 5(3), 3626-3637.
Lytvynova, K. (2018, June 20). Extreme Programming: Values, Principles, and Practices – DZone Agile. Retrieved October 4, 2020, from https://dzone.com/articles/extreme-programming-values-principles-and-practice
Permana, P. A. G. (2015). Scrum method implementation in a software development project management. International Journal of Advanced Computer Science and Applications, 6(9), 198-204.
Van Casteren, W. (2017). The Waterfall Model and the Agile Methodologies: A comparison by project characteristics. Research Gate, February.
What is Kanban? (2019, September 25). Retrieved October 4, 2020, from https://www.agilealliance.org/glossary/kanban/#q=~(infinite~false~filters~(postType~(~’page~’post~’aa_book~’aa_event_session~’aa_experience_report~’aa_glossary~’aa_research_paper~’aa_video)~tags~(~’kanban))~searchTerm~’~sort~false~sortDirection~’asc~page~1)
Williams, L. (2010). Agile software development methodologies and practices. In Advances in computers (Vol. 80, pp. 1-44). Elsevier.
Related Samples
The Role of Essay Writing Services in Online Education: A Comprehensive Analysis
Introduction The...
Write Like a Pro: Effective Strategies for Top-Notch Explication Essays
Introduction "A poem...
How to Conquer Your Exams: Effective Study Strategies for All Learners
Introduction Imagine...
Overcoming Writer’s Block: Strategies to Get Your Essays Flowing
Introduction The...
Optimizing Your Online Learning Experience: Tips and Tricks for Success
The world of education...