{br} STUCK with your assignment? {br} When is it due? {br} Get FREE assistance. Page Title: {title}{br} Page URL: {url}
UK: +44 748 007-0908, USA: +1 917 810-5386 [email protected]
  1. 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

    1. 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

WeCreativez WhatsApp Support
Our customer support team is here to answer your questions. Ask us anything!
👋 Hi, how can I help?