Methodologies, SDLC Caselets Solved-Session 17
Methodologies, SDLC Caselets Solved-Session 17
Each phase must be completed before the next phase can begin with no overlap between the
phases. Each phase is designed for performing specific activity during the SDLC phase
When use?
It collects requirements side by side as per business needs while developing new
information systems for a company that means JAD involves the client or end-users in
designing and development process.
Since client is involved throughout the development process it leads to faster development
times and greater client satisfaction.
Sometimes opinions within the team members may differ which make difficult to align goals and
maintain focus. Depending upon size of the project, in JAD people may have to spent significant
amount of time.
The RAD (Rapid Application Development) model is based on prototyping and iterative development
with no specific planning involved. The most important aspect for this model to be successful is to
make sure that the prototypes developed are reusable.
What is a prototype?
Steps in RAD:
Business Modelling: Phase involves finding the flow of information and the distribution of
information between various business channels.
Data Modelling: The information gathered in the Business Modelling phase is reviewed and analyzed
to form sets of data objects vital for the business.
Process Modelling: The data object sets defined in the Data Modelling phase are converted to
establish the business information flow needed to achieve specific business objectives as per the
business model. Process descriptions for adding, deleting, retrieving or modifying a data object are
given
Application Generation: The actual system is built and coding is done by using automation tools to
convert process and data models into actual prototypes.
Testing and Turnover: The overall testing time is reduced in the RAD model as the prototypes are
independently tested during every iteration. However, the data flow and the interfaces between all
the components need to be thoroughly tested with complete test coverage. Since most of the
programming components have already been tested, it reduces the risk of any major issues.
The traditional SDLC follows a rigid process model with high emphasis on requirement analysis and
gathering before the coding starts. The RAD model focuses on iterative and incremental delivery of
working models to the customer. This results in rapid delivery to the customer and customer
involvement during the complete development cycle of product reducing the risk
Agile Methodology:
The customers are satisfied because after every Sprint working feature of the software is delivered
to them. Customers can have a look of the working feature which fulfilled their expectation.
Agile projects logically break down the solution into features that are incrementally developed and
delivered. The developers using the RAD model focus on developing all the features of an application
by first doing it badly and then successively improving the code.
The Agile team only demonstrate completed work to the customer after each iteration. Whereas
RAD teams demonstrate to customers screen mock up and prototypes, that may be based on
simplifications such as table lookup rather than actual computations.
The Agile model does not recommend developing prototypes but emphasizes the systematic
development of each incremental feature at the end of each iteration. The central theme of RAD is
based on designing quick and dirty prototypes, which are then refined into production quality code.
Nut shell – Agile breaks logically first but RAD builds the entire prototype and makes it better.
The extreme programming model recommends taking the best practices that have worked
well in the past in program development projects to extreme levels.
It suggests pair programming as coding and reviewing of written code carried out by a pair of
programmers who switch their works between them every hour.
Testing code helps to remove errors and improves its reliability. XP suggests test-driven
development (TDD) to continually write and execute test cases. In the TDD approach test
cases are written even before any code is written.
Small projects: XP model is very useful in small projects consisting of small teams as face-to-
face meeting is easier to achieve.
Projects involving new technology or Research projects: This type of projects face changing
of requirements rapidly and technical problems. So, XP model is used to complete this type
of projects.
CASE TOOLS
CASE stands for Computer Aided Software Engineering. It means, development and maintenance of
software projects with help of various automated software tools.
CASE tools are set of software application programs, which are used to automate SDLC
activities. CASE tools are used by software project managers, analysts and engineers to
develop software system.
It has a case repository which can serve as a source of common, integrated and consistent
information.
Central repository is a central place of storage where product specifications, requirement
documents, related reports and diagrams, other useful information regarding management
is stored. Central repository also serves as data dictionary.
Diagramming Tools:
It helps in diagrammatic and graphical representations of the data and system processes. It
represents system elements, control flow and data flow among different software
components and system structure in a pictorial form.
For example, Flow Chart Maker tool for making state-of-the-art flowcharts.
Chances to meet real-world requirements are more likely and easier with a
computer-aided software engineering approach.
Caselet:
Suppose that you are an analyst for the ABC Company, a large consulting firm with offices around
the world. The company wants to build a new knowledge management system that can identify and
track the expertise of individual consultants anywhere in the world on the basis of their education
and the various consulting projects on which they have worked. Assume that this is a new idea that
has never before been attempted in ABC or elsewhere. ABC has an international network, but the
offices in each country may use somewhat different hardware and software. ABC management
wants the system up and running within a year. Question: What methodology would you
recommend that ABC Company use? Why?
< Depends justify for your type> JAD and waterfall are eliminated, RAD or Agile can be used
1) According to the problem statement the given system is new and is going to require some further
development in the future as actual use is being considered.
2) After analyzing the requirement “system prototyping” seems like a best way to approach this
project.
3) We can develop different prototypes for different regions and rebuild each system using past data
in such a way that to optimize the overall efficiency of each prototype.
4) Ultimately based on the prototypes build a larger scale system that is compatible with the entire
system.
Caselet: Example of system request: If you were building a web-based system for course enrollment
/ registration,
Caslet
I would like to go for an off the shelf product rather than a customed one here as mainly said most of
the functionality is met. So, it is almost 90% feasible. A lot of time and resource has to be spent for
customer software. The development team needs to take into account not just the initial design,
built and test and implementation costs but also the life time cost required to maintain it. While
developing might seem fun but developmental tasks can seem a distraction from core focus. The It
team might be involved in routine tasks and development work can pose a drag on efficiency. Also,
off the shelf will be designed in an agile manner with best practices. They also keep in touch with the
latest technology and and test extensively to avoid glitches. So, a little amount of tweaking will not
shoot the cost up. Since there is no extensive customization needed I as a CIO would recommend to
go for off the shelf but I would also emphasize on buying a modular and matured software which
won’t clog the systems.
END