Sie sind auf Seite 1von 7

INFORMATION AND COMMUNICATION UNIVERSITY

NAME: KASALA
MAURICE
SIN: 1502182544
COURSE: SOFTWARE
ENGINEERING 1
PROGRAMME: BED-ICT
ASSIGNMENT: 1
YEAR: 2019
SEMESTER: 6
DUE DATE: 02.10.2019
LECTURER: Mr.Thinakaran Anansingh

Question 1
Provide a brief description for how software requirements are
determined using the following software processes. Your
description should identify what is diferent.
A. Waterfall

The waterfall model is a sequential approach, where each fundamental


activity of a process represented as a separate phase, arranged in linear
order.
In the waterfall model, you must plan and schedule all of the activities
before starting working on them it is a plan-driven process.
Plan-driven process is a process where all the activities are planned frst, and
the progress is measured against the plan. While the agile process, planning
is incremental and it’s easier to change the process to refect requirement
changes. The phases of the waterfall model are: Requirements, Design,
Implementation, Testing, and Maintenance.

1
In principle, the result of each phase is one or more documents that should
be approved and the next phase shouldn’t be started until the previous phase
has completely been fnished.
In practice, however, these phases overlap and feed information to each
other. For example, during design, problems with requirements can be
identifed, and during coding, some of the design problems can be found, etc.
The software process therefore is not a simple linear but involves feedback
from one phase to another. So, documents produced in each phase may then
have to be modifed to refect the changes made.
B. Spiral
The spiral model is a risk-driven where the process is represented as spiral
rather than a sequence of activities.
It was designed to include the best features from the waterfall and
prototyping models, and introduces a new component; risk-assessment.

Spiral model is one of the most important Software Development Life


Cycle models, which provides support for Risk Handling. In its
diagrammatic representation, it looks like a spiral with many loops. The
exact number of loops of the spiral is unknown and can vary from project to
project. Each loop of the spiral is called a Phase of the software
development process. The exact number of phases needed to develop the
product can be varied by the project manager depending upon the project
risks. (Cockburn. J 2001) As the project manager dynamically determines
the number of phases, so the project manager has an important role to
develop a product using spiral model. The Radius of the spiral at any point
represents the expenses (cost) of the project so far, and the angular
dimension represents the progress made so far in the current phase.
(Daniels, J. 1994)

Below diagram shows the diferent phases of the Spiral Model

2
Each phase of Spiral Model is divided into four quadrants as shown in the

above fgure. The functions of these four quadrants are discussed below-
1. Objectives determination and identify alternative
solutions: Requirements are gathered from the customers and the
objectives are identifed, elaborated and analyzed at the start of every
phase. Then alternative solutions possible for the phase are proposed in
this quadrant.
2. Identify and resolve Risks: During the second quadrant all the
possible solutions are evaluated to select the best possible solution.
Then the risks associated with that solution is identifed and the risks are
resolved using the best possible strategy. At the end of this quadrant,
Prototype is built for the best possible solution. (Benington, H. D. 1983
3. Develop next version of the Product: During the third quadrant,
the identifed features are developed and verifed through testing. At the
end of the third quadrant, the next version of the software is available.
4. Review and plan for the next Phase: In the fourth quadrant, the
Customers evaluate the so far developed version of the software. In the
end, planning for the next phase is started.
C. Agile
Agility is fexibility, it is a state of dynamic, adapted to the specifc
circumstances. The agile methods refers to a group of software
development models based on the incremental and iterative approach,
in which the increments are small and typically, new releases of the
system are created and made available to customers every few weeks.

At the beginning of a project you need to take several days to envision the
high-level requirements and to understand the scope of the release (what
you think the system should do). Your goal is to get a gut feel for what the

3
project is all about, not to document in detail what you think the system
should do: the documentation can come later, if you actually need it. For
your initial requirements model my experience is that you need some form
of:

1. Usage model. As the name implies usage models enable you to


explore how users will work with your system. This may be a collection
of essential use cases on a Unifed Process (UP) project, a collection
of features for a Feature Driven Development (FDD) project, or a
collection of user stories for an Extreme Programming (XP) project, or
any of the above on a disciplined agile team.
2. Initial domain model. A domain model identifes fundamental
business entity types and the relationships between then. Domain
models may be depicted as a collection of Class Responsibility
Collaborator (CRC) cards, a slim UML class diagram, or even a slim
data model. This domain model will contain just enough information:
the main domain entities, their major attributes, and the relationships
between these entities. Your model doesn't need to be complete, it just
needs to cover enough information to make you comfortable with the
primary domain concepts. (Forsberg, K. et.al 1992)
3. User interface model. For user interface intensive projects you
should consider developing some screen sketches or even a user
interface prototype.
They involve customers in the development process to propose requirements
changes. They minimize documentation by using informal communications
rather than formal meetings with written documents.
They are best suited for application where the requirements change rapidly
during the development process.
There are a number of diferent agile methods available such as: Scrum,
Crystal, Agile Modeling (AM), Extreme Programming (XP), etc.

Question 2

List and describe three characteristics of a software project where


the selection of an agile software development process is most
appropriate.

1. Scrum is the most popular way of introducing Agility due to its


simplicity and fexibility. Scrum emphasizes empirical feedback; team
self-management, and striving to build properly tested product
increments within short iterations. The beneft includes increased
visibility of project goals and how to achieve them. This clear
characteristic of agile projects, inevitably contributes toward the even
more signifcant goal of delivering software on time.
2. Quality: Testing is integrated throughout the lifecycle, enabling
regular inspection of the working product as it develops. This allows

4
the product owner to make necessary adjustments gives the product
team early sight of any quality issues.

3. Accommodating change due to volatile requirements


(Flexibility / Agility) In agile development, change is accepted.
Instead the timescale is fxed and requirements emerge and evolve as
the product is developed. Of course for this to work, it’s imperative to
have an actively involved stakeholder who understands this concept
and makes the necessary trade-of decisions, trading existing scope for
new.

Question 3

List and describe two advantages of software development with a


service oriented architecture (SOA).These advantages should
highlight key reasons for the adoption of SOA.
Service Oriented Infrastructure (SOA) is the organization of the components of a
system according to the services they provide.

(i) Services are Re-usable


Because the services provided or requested are complete, self-contained
programs, they are characterized by their re-usability. Services are re-used
many times in diferent applications irrespective of the other interacting
components in that system (Beck, K. 2000). Let's take a currency converter
for example. Not only do fnancial websites use them, but popular blogs and
websites add these services to make their content diversifed, giving the
user space to do diferent things.

(i) Services are Easily Maintained


One of the advantages of SOA is the elimination of the complexities
associated with interacting services within an environment. When it comes to
updating, upgrading, and maintaining the services in the SOA environment
there are no complications resulting from interactions with other connected
and interacting services. This is because the program is complete and self-
contained. In environments with complex components, this makes things
easy. (Bass, L., et.al 2003)
Reasons to adopt SOA
- If you have strong long-term vision and business strategy to align your
business process and IT systems to achieve higher control on your
business. SOA adoption requires times to align your IT systems to give
higher support for your business.
- If you are an acquirer and merger, having roadmap to expand your
business and investments by acquiring other corporate, then SOA is

5
the right choice to bring the acquired business process into your
control rapidly. Service based integration has better control in
integrating various system and process by standard approach.
- If your business processes are unpredictable, keep changing over
period, drive by business partners and vendors. You would have paid
heavy IT investment for keep updating your business systems to
accommodate changes. You must go for SOA adoption since service
based architecture gives better control to update your processes
without much impact in other systems and cost.
- If you already have web service and standards, SOA governance and
implementation lifecycle would be the only option to have better
control managing your service infrastructure. It is not necessary that
all the above points should match your requirement to decide on SOA
adoption. These are the major points that can help you to consider SOA
adoption as one of the solution for your IT requirement.

Question 4

Describe two good characteristics of SMART User Stories?


SPECIFIC, MEASURABLE, ACHIEVABLE, RELEVANT and TIME –BOXED

User story is a description of the user valuable features, good user story should
include the roles, functions and business value of three elements.

(i) A good user story should be complete enough to provide a user with some
value.
(ii) Start with an epic, when writing a user story about new product and
feature because it allows capturing the rough idea about product with less
detail.

REFERENCE

1. Bass, L., et.al (2003) Software Architecture in Practice, Addison-


Wesley.

2. Beck, K. (2000) Extreme Programming Explained, Addison-Wesley.

3. Benington, H. D. (1983) ‘Production of large computer


programs’, Annals of the History of Computing

4. Bird, P. (1994) LEO: The First Business Computer, Workingham, UK,


Hasler Publishing.
5. Boehm, B. W. (1988) ‘A spiral model of software development and
enhancement’, Computer,
6. Booch, G. (1994) Object-Oriented Analysis and Design, Addison-
Wesley.

6
7. Cockburn.J (2001) ‘Agile software development: the people
factor’, Computer, Workingham, UK, Hasler

8. Daniels, J. (1994) Designing Object Systems: Object-Oriented Modeling


with Syntropy, Upper Saddle River, NJ, Prentice-Hall.

9. Forsberg, K. et.al (1992) ‘The relationship of system engineering to the


project cycle’, Engineering Management Journal,

Das könnte Ihnen auch gefallen