PRT453 Process development methodologies
PRT 453 Assignment 1
This assignment needs to be completed and submitted using the learnline submission point provided for the assignment
Q1 (10 marks) You are the team leader of a team of ten software engineers working on an important IT 1 year project that has heavy penalties for running late. It is now 8 months into the project and it is clear that the project will not reach its deadline.
- One obvious option is to add more staff to the project, explains if you will take up this option.
- What other software process options should be considered?
- Discuss brooks law in relation to the above case?
Q2 (10 marks)
Man-month as a unit for measuring the size of a job is a dangerous and deceptive myth. It implies that men and months are interchangeable
Explain with graph and example for the following tasks
- Perfectly partitionable task
- Unpartitionable task
- Partitionable task requiring communication
- Task with complex interrelationships
Q3 (10 marks)
- Explain any 3 refactoring techniques in detail?
- Discuss reasons for technical debt?
- You identified dirty code when working on separate task, detail your plan of action?
Q4 (10 marks)
- What is Agile and what happens in agile?
- What are the different roles and their responsibilities/day-to-day activities in agile software development?
- Explain any 3 agile methodologies?
Q5 (10 marks)
- What are design patterns and why we need them?
- Give an example where you prefer abstract class over interface?
Q6 (10 marks) Explain the following:
- What is the rationale for refactoring in agile development?
- Is refactoring just cleaning up code? Explain your answer
- The key motivations for Iterative Development.
Q7 (10 marks) Explain with examples/code on the following:
- Inheritance & Polymorphism
- Access specifiers, Interface, Abstract, static
Q8 (10 marks) Explain the following:
- How unit testing is useful to increase productivity?
- What is CI and explain benefits?
Q9. (20 marks) Find your own example of where a refactoring to patterns was be used (For example the Move Creation Knowledge to Factory) refactoring would be used. Please explain the following
- Explain the details of the scenario
- Explain the pattern your trying to implement and justify your changes
- UML / ER diagram
- Before changes – code snapshot of the skeleton of the classes/methods
- After changes – code snapshot of the skeleton of the classes/methods
- Risk assessment of the changes
- Test Analysis
Please follow the approach/pattern from text book: @Joshua_Kerievsky – Refactoring to Patterns