Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 6

ASSIGNMENT

JANUARY 2021 SEMESTER

SUBJECT CODE : CAS400

SUBJECT TITLE : AGILE SOFTWARE DEVELOPMENT

LEVEL : BACHELOR

STUDENT’S NAME : ADI MAULANA

MATRIC NO. : C30101190137

PROGRAMME : BICT (Hons)

ACADEMIC :
FACILITATOR

LEARNING CENTRE :

INSTRUCTIONS TO STUDENTS

1) This assignment consists of FOUR (4) questions. Answer the questions.

2) Plagiarism in all forms is forbidden. Students who submit plagiarised assignment will be
penalised.

3) Your assignment will be examined based on the followings


 a complete working solution.
 ability of using methods available in the learning materials.

4) This assignment carries a 60% weightage toward final grade.

THERE ARE THREE [3] PAGES OF QUESTIONS, INCLUDING THIS PAGE.


INSTRUCTION. Answer ALL questions. [Total : 60 Marks]

Question 1

Agile development has become a common practice in Information Communication Technology


industry. From surveys conducted, over 50% of respondents said that their company practised
Agile Development.

With appropriate examples,

a) Differentiate between agile software development and traditional software development


model.
[10 Marks]

b) Identify THREE (3) project attributes that agile development model is the best to be
applied.
[6 Marks]
c) Explain the impact of agile adoption on the performance of IT organisations.
[4 Marks]

[Total: 20 Marks]

Question 2

The primary mechanisms behind the Open-Closed Principle are abstraction and polymorphism.
With an appropriate example, elaborate on how both object-oriented concepts can be applied in
order to deliver flexibility, reusability and maintainability.

[10 Marks]

Question 3

The Single Responsibility Principle (SRP) states that a class should have only one reason to
change. It was first cited in this form by Robert C. Martin in an article that later formed a chapter
in his Principles, Patterns, and Practices of Agile Software Development book.

Briefly explain the use of SRP in agile design using an example.


[15 Marks]

Question 4

Unified Modeling Language (UML) has THREE (3) main kinds of diagrams: Static, Dynamic
and Physical. Briefly explain each of them with an appropriate example.

[15 Marks]

END OF ASSIGNMENT QUESTION


Answer 1:

a)

Differentiate Agile Software Development Traditional Software Development

Changes Welcomed and adapted to Resisted and controlled

Contracts Flexible Binding

Customer Interaction Continous During selected miletones

Delivery Interative and incremetal One-Time

Orientation People Process

Process Lightweight Heavyweight

Requirements Architecture and Evolves Define upfront


Design

Roles Less More

b)

1) Extreme Programming (XP) is a disciplined approach to delivering high-qualify software


quickly and continuously.

2) Scrum is a lightweight agile project management framework with broad applicability for
managing and controlling iterative and incremental projects of all types.

3) The Crystal methodology is one of the most lightweight, adaptable approaches to software
development.

c) Agile method emphasizes agility and speed in an organization, The main focus is on how to
provide a fast and responsive user experience. Because, in an IT organization, speed is one of the
key factors that determine publication.

- The application of the agile method provides flexibility for developers to add or replace features
according to the requirements.

- The interaction is going well, Agile culture emphasizes collaboration with clients over project
negotiations between the two.

- Able to organize themselves without being tied to a position. Initiative aspects are the main
driving force of this method.
- The application of incremental and iterative principles provides flexibility for the team to work
at a measured speed.

- Team can evaluate and review success levels.

Answer 2:

The primary mechanisms behind the Open/Closed principle are abstraction and polymorphism.
Open/Closed Principle is at the heart of object-oriented design, In object-oriented programming language
(OOPL), it's possible to create abstractions that are fixed and yet represent an unbounded group of
possible behaviors.

It's possible for a module to manipulate an abstraction. Such a module can be closed for modification,
since it depends on an abstraction that is fixed.

Client <<Interface>>
X Client Interface

Server
Y

The image above shows a suitable design in OCP using the STRATEGY pattern which is an abstract
Client Interface is a class with abstract member functions. The Client class uses this abstraction. However,
objects of the Client class will be using objects of the derivative Server class. If we want Client objects to
use a different server class, a new derivative of the Client Interface class can be created. The Client class
can remain unchanged.

Answer 3:

Computational Rectangle GUI


+ area() : double
Geometry
+ draw
In this simple example above, we can see a rectangle class that has two methods; Area () & Draw ().

- Area () has the responsibility to return the area of a rectangle.


- Draw () has the responsibility to draw the rectangle itself.

In this design, it can be seen that, if there are changes in the GUI, we should modify the Rectangle class,
then we obliged to test again the other application that attacks the same class. The solution to this problem
is to divide the class in two, so that each class has a unique responsibility.

Rectangle Rectangle
Computational Geometry Geometry GUI
Geometry +area () double:

This design violates SRP. The Rectangle class has two responsibilities.
1.To provide a mathematical model of the geometry of a rectangle.
2.To render the rectangle on a GUI.

Answer 4:

You might also like