Professional Documents
Culture Documents
Assignment 1
Prepared for :
Prepared by:
Le Vo Thang
Table of Contents
P1. Describe two iterative and two sequential software
lifecycle models.
REFERENCES 19
3
1.Waterfall Model :
*The sequential phases in Waterfall model are :
System Design − The requirement document in first phase are studied in this
phase and the system design is prepared. This system design helps defining the
overall system architecture.
Integration and Testing − All the units developed in the implementation phase
are integrated into a system after testing of each unit. Post integration the entire
system is tested for any faults and failures.
Maintenance − There are some issues which come up in the client environment.
To fix those issues, patches are released. Also to enhance the product some
better versions are released. Maintenance is done to deliver these changes in
the customer environment.
4
Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
Works well for smaller projects where requirements are very well understood.
Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
2.V- model :
In this first step, business analysts gathering information about the needs of the
user(client) by interview or meeting. Then the document called the user requirements
is created. The user requirements document describe all information of the application :
the interface, data, security, system ‘s functional, performance. The users will carefully
review this document because it would serve as the guideline for the system designers
in the system design stage. The user acceptance tests are also designed in this step.
After analyze and understand the detailed requirements document, it is the time to
design the complete system. System engineers calculate possibilities and techniques
that can be performed follow the user requirements.If any of the requirements are
inappropriate , the user is notified of the problem.Then the resolution is suggested and
the requirements document is edited after that.In this step, the application specification
document is generated for the development stage.It contains the general, menu
structures, data structures system organization.The system test plan is developed in
this step, the earlier the system test plan is prepared , the more time for unit testing
executed later.
Based on the technical and financial possibility , software architects would realize the
system design by broken down it into modules taking up different functionality, brief
functionality of each module, their interface relationships, dependencies, database
tables, architecture diagrams, technology details . The integration tests would be
designed in this stage.
7
In this steps , the designed system is broken up into smaller modules with the very
specification details so the developers can start coding .The module design document
will contain a detailed functional of the modules :
It is very important that the module designed is appropriate with the other modules in
the system construction and the the other external systems.The unit tests can be
developed in this stage based on the internal module designs.
2.5.Coding :
All of the modules design is convertered into code by the developers in this step. The
most suitable programming language is decided according to the system and
architecture requirements. The coding is implemented based on the coding guidelines
and standards. The code is went through numerous code reviews and finally optimized
for the best performance. Unit testing is executed by the developers on the code written
by them.
8
2.6. Testing :
2.6.1.Unit Test Plans (UTPs) are developed in module design step would performance
now. The unit tests are a very necessary part of any application develop procedure and
helps eliminate most of errors that can generate at a very early phase.
A unit like a program module is the smallest entity in the whole system. Unit testing
check that the module can execute exactly when isolated from the rest of the units of
system.
2.6.2.Integration testing :
Integration Test Plans are developed in the Architectural Design step. Integration
Testing performed to make sure that all of the modules created before which tested
independently in UTPs can coexist and communicate among themselves within the
system.Then Test results are shared with the client ‘s team.
2.6.3.System testing :
System testing is strictly related with the system design stage. Unlike Unit and
Integration Testing , System Test Plans are constructed by client's team. System Test
plan ensures that all of the client ’s expectations are met. The entire application ’s
system is tested for its functionality, interdependency and communication. System
Testing authenticates that functional and non-functional requirements are met. Load
and performance testing, stress testing, regression testing.Most of the problems about
the compatibility beetween hardware and software can be discovered during this step.
2.6.4.Acceptance testing:
User Acceptance Test (UAT) Plans are developed in the Requirements Analysis step.
Test Plans are constructed by the user. UAT is executed in user environment and using
realistic data to find out the incompatibility with the other systems . UAT confirms that
complete system meets all the requirement of user and ready for use in actual time. It
also detects the non-functional errors such as load and performance defects in the real
time user environment.
9
Works well for smaller projects where requirements are very well understood.
Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a
review process.
Not suitable for the projects where requirements are at a moderate to high risk of changing.
* Iterative Model
1.Spiral Model :
The spiral model has four phases. A software project repeatedly passes through these
phases in iterations called Spirals.
1.1 Identification
This phase starts with gathering the business requirements in the baseline spiral. In the
subsequent spirals as the product matures, identification of system requirements,
subsystem requirements and unit requirements are all done in this phase.
1.2 Design
The Design phase starts with the conceptual design in the baseline spiral and involves
architectural design, logical design of modules, physical product design and the final
design in the subsequent spirals.
Then in the subsequent spirals with higher clarity on requirements and design details a
working model of the software called build is produced with a version number. These
builds are sent to the customer for feedback.
11
The following illustration is a representation of the Spiral Model, listing the activities in
each phase.
Based on the customer evaluation, the software development process enters the next iteration
and subsequently follows the linear approach to implement the feedback suggested by the
customer. The process of iterations along the spiral continues throughout the life of the
software.
Development can be divided into smaller parts and the risky parts can be developed earlier
which helps in better risk management.
Not suitable for small or low risk projects and could be expensive for small projects.
Process is complex
2.DSDM model :
Dynamic systems development method (DSDM) was first created in 1994 and originally
sought to provide some discipline to the rapid application development (RAD) method.
DSDM Atern is the latest version of the popular Dynamic Systems Development Model
approach to Agile.
It Eliminates problems of: Going over-budget, Missing deadlines, Users not involved,
Management not commited in the project.
1.RESPONDING TO CHANGE
The biggest advantage of this model is responding to change and focus on working
on importance part of projects. An Agile team has a list of the most important things
they can work on; when they finish the most important thing on that list, they move
to the next most important thing…and repeat again and again. This type of focus
has many benefits:
-Customers get solutions to the problems they value most in the earliest time.
-Developers feel valued, since they’re working on things that actually matter and will
receive frequent in-depth feedback from the very people using the product.
2.ACCEPTING UNCERTAINTY
During the project we may find a particular technical solution doesn’t meet the
needs of customers, or we might discover there’s an entirely different problem
underneath the stated problem. Applying Agile principles to our approach allows us
to accept the unknown and prioritize discovery and experimentation to drive out
uncertainty before we fully commit to a solution.
To ensure that new discoveries are contemplated and current efforts are evaluated. Most
Agile practices either time-box efforts (Scrum) or control the amount of “work in progress” to
ensure efforts are completed within a reasonable amount of time. Those efforts are then
reviewed with customers .
14
LACK OF UNDERSTANDING
The biggest drawback of Agile development is most people don’t understand what it
means to be Agile. Many companies “want” to be Agile, but don’t invest the time,
money, or effort to actually educate management or employees about how the
principles apply and what methodologies will work best within their culture and
organization
With the change in process or people, not investing in understanding why we’re making
the change so that change will almost inevitably lead to failure.
The flexibility of Agile model can lead teams engaging in bad behaviors, and “blaming”
the resulting outcomes on Agile itself, rather than the wrong choices made by the team.
No product can succeed without some level of process and tools, some negotiation of
deliverables or some form of plan.when a company decides to change to Agile model,
it rely on internal people with “experience” that lead the change; if their experience is
based on poor fundamentals, then their next Agile processes will suffer many of the
same limitations.
CHALLENGES AT SCALE
In recent years, there have been many attempts at building scalable Agile system
architectures. These concepts have been driven primarily by the difficulty of effectively
scaling the work teams do into larger and larger organizations.
When the ideal size of a scrum team is most often positioned at between 5 and 9
people and your development team consists of 500 developers, how do you manage
the interrelationships between those small teams while still maintaining a cohesive
approach? Most Agile methodologies were designed for small, nimble,young
organizations to adopt and adapt, but only in recent years have there been real efforts
to identify and establish scalable Agile practices large organizations can apply.
15
1.Risk assessment :
Risk assessment is the first process in the risk management methodology.Using risk
assessment to determine the extent of the potential threat and the resulting impact of
that adverse event on the organization. Consequence is the level of impact that the
potential risk event can have on the achievement of business objectives..5 level rating
scale in the risk survey including : 25-Almost Certain, 20-likely, 15-Possible, 10-
Unlikely, 5-Rare.
(3) The competence of the risk assessment team, which must have the expertise to
apply the risk assessment methodology to a specific site and system, identify mission
risks, and provide cost-effective safeguards that meet the needs of the organization.
(4) The awareness and cooperation of members of the user community, who must
follow procedures and comply with the implemented controls to safeguard the mission
of their organization.
17
A project feasibility study is a comprehensive report that examines in detail the five frames of
analysis of a given project. It also takes into consideration its four Ps, its risks and POVs, and its
constraints (calendar, costs, and norms of quality). The goal is to determine whether the project
should go ahead, be redesigned, or else abandoned altogether.
The five frames of analysis are: The frame of definition; the frame of contextual risks; the frame
of potentiality; the parametric frame; the frame of dominant and contingency strategies.
The four Ps are traditionally defined as Plan, Processes, People, and Power. The risks are
considered to be external to the project (e.g., weather conditions) and are divided in eight
categories: (Plan) financial and organizational (e.g., government structure for a private project);
(Processes) environmental and technological; (People) marketing and sociocultural; and
(Power) legal and political. POVs are Points of Vulnerability: they differ from risks in the sense
that they are internal to the project and can be controlled or else eliminated.
A feasibility study examines the practicability of a proposal or idea. The principal function of this
is to determine if the project will continue or not. In business, feasibility studies work in a number
of reasons.
The feasibility report will look at how a certain proposal can work in a long-term basis or endure
financial risks that may come. It is also helpful in recognizing potential cash flow. Another
important purpose is that it helps planners focus on the project and narrow down the
possibilities. Accordingly, a feasibility study can provide reasons not to pursue the said project
or proposal. When it comes to the operational aspect, the analysis determines whether the plan
has the necessary resources for it to be practicable. Feasibility report will also help we figure out
whether or not the people will support the subsequent product or service. Additionally, it
provided knowledge on the trends because a feasibility study looks at the present-day market
and studies the anticipated growth of your target business sector.
Feasibility studies are prevalent in all business industries. Whether Hotel, Hospitality,
Restaurant, Real Estate, Medical, Office or Industrial. Getting a head start on a Feasibility study
will ensure you save time and money on the project.
18
An alternative matrix can be used to organize the pros and cons of the design
alternatives so that the best solution will be chosen in the end. This matrix is created
using the same steps as the feasibility analysis. The only difference is that the
alternative matrix combines several feasibility analyses into one matrix
so that the alternatives can easily be compared. An alternative matrix is a grid that
contains the technical, budget, and organizational feasibilities for each system
candidate.
Sometimes weights are provided for different parts of the matrix to show when
some criteria are more important to the final decision.To create the alternative matrix,
draw a grid with the alternatives across the top and different criteria (feasibilities, pros,
cons,…) along the side.
Next, fill in the grid with detailed descriptions about each alternative. This becomes a
useful document for discussion because it clearly presents the alternatives being
reviewed and comparable characteristics for each one.
REFERENCES
-UserVoice Blog. (2018). The Pros and Cons of Agile Product Development | UserVoice Blog.
[online] Available at: https://community.uservoice.com/blog/the-pros-and-cons-of-agile-product-
development/ [Accessed 19 Nov. 2018].
-Trumanmox.com. (2018). Why a Feasibility Study is Important for any Business | TrumanMox.
[online] Available at: https://www.trumanmox.com/why-a-feasibility-study-is-important-for-any-
business [Accessed 19 Nov. 2018].