100% found this document useful (1 vote)
2K views

Software Development Practices: 12/08/2021 S.G.Nambuwasam

The document discusses various software development practices and models. It describes what software is, reasons for developing software, and the software development life cycle (SDLC). The SDLC includes requirements gathering, design, implementation, testing, and maintenance. Popular models discussed include waterfall, prototyping, rapid application development (RAD), and component assembly. The waterfall model involves sequential phases from requirements to maintenance. Prototyping allows refining requirements through user feedback on prototypes. RAD aims to shorten the development cycle through component-based construction.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
2K views

Software Development Practices: 12/08/2021 S.G.Nambuwasam

The document discusses various software development practices and models. It describes what software is, reasons for developing software, and the software development life cycle (SDLC). The SDLC includes requirements gathering, design, implementation, testing, and maintenance. Popular models discussed include waterfall, prototyping, rapid application development (RAD), and component assembly. The waterfall model involves sequential phases from requirements to maintenance. Prototyping allows refining requirements through user feedback on prototypes. RAD aims to shorten the development cycle through component-based construction.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 42

Software Development Practices

ICT 0801

1 S.G.Nambuwasam 12/08/2021
What is Software
Software is a general term for the various kinds of
programs used to operate computers and related
devices.
Software can be thought of as the variable part of a
computer and hardware the invariable part.
Software Development
Is the act of working to produce/create software. This
software could be produced for a variety of purposes.
Reasons to Develop Software
to meet specific needs of a specific client/business
to meet a perceived need of some set of potential users
for personal use
Software Development Life Cycle (SDLC)
Market research
Gathering requirements for the proposed business
solution
Analyzing the problem
Devising a plan or design for the software-based
solution
Implementation (coding) of the software
Testing the software
Deployment
Maintenance and bug fixing
Popular Software Development Models
A. System Development Life Cycle (SDLC) Model
B. Prototyping Model
C. Rapid Application Development Model
D. Component Assembly Model
System Development Life Cycle (SDLC)
The systems development life cycle (SDLC) is a
sequential conceptual model used in project
management that describes the stages involved in an
information system development project, from an
initial feasibility study through maintenance of the
completed application.
Activities of SDLC
1.System/Information Engineering and Modeling
2.Software Requirement Analysis
3.System Analysis and Design
4.Code Generation
5.Testing
6.Maintenance
Stages of the Waterfall Model
Requirement Analysis &
Definition
The requirements are gathered from the end-user by
consultation
Requirements are analyzed for their validity and the
possibility of incorporating the requirements in the
system to be development is also studied
A Requirement Specification document is created
which serves the purpose of guideline for the next
phase of the model
Feasibility Study
Aims to objectively and rationally uncover the
strengths and weaknesses of the existing business or
proposed venture, opportunities and threats as
presented by the environment, the resources required
to carry through, and ultimately the prospects for
success
Criteria to judge feasibility
Cost required
Value to be attained
Five Common Feasibility Factors
Technology and System Feasibility
Economic Feasibility
Legal Feasibility
Operational Feasibility
Schedule Feasibility
Other Feasibility Factors
Market and real estate feasibility
Resource feasibility
Cultural feasibility
Financial feasibility
Feasibility Study Report
The feasibility study outputs the feasibility study
report
A report detailing the evaluation criteria, the study
findings, and the recommendations
System & Software Design
The requirement specifications from first phase are
studied in this phase and system design is prepared.
Helps in specifying hardware and system requirements
Helps in defining overall system architecture
Serve as input for the next phase of the model
Implementation & Unit Testing
the work is divided in modules/units and actual coding
is started
The system is first developed in small programs called
units, which are integrated in the next phase.
Each unit is developed and tested for its functionality;
Integration & System Testing:
Units are integrated into a complete system during
Integration phase and tested to check if all
modules/units coordinate between each other and the
system as a whole behaves as per the specifications.
After successfully testing the software, it is delivered
to the customer.
Operations & Maintenance:
virtually never ending phase (Very long)
the issues related to the system are solved after
deployment of the system
Waterfall development in action
1. create the functional specification
2. When we have a full understanding of the business
the functional specification is published and
distributed to as many business experts as possible
for feedback. 
3. When the functional specification is final we often
convey a meeting of business experts and work
through the final copy together to iron out any errors
prior to sign-off.
4. produce a non working prototype application along with
a user interface specification
5. When everybody is happy that the screens will deliver
the functionality required the application can be
developed and tested.
6. When the application is complete a beta release is
published and provided to the business for testing. 
7. Any  bugs found are rapidly repaired
8. When no significant bugs remain and the client is happy
with the application it can go live as release version 1.0.
Advantages of the waterfall method
Design errors are captured before any software is written
saving time during the implementation phase.
Excellent technical documentation is part of the deliverables
and it is easier for new programmers to get up to speed during
the maintenance phase.
The approach is very structured and it is easier to measure
progress by reference to clearly defined milestones.
The total cost of the project can be accurately estimated after
the requirements have been defined (via the functional and
user interface specifications).
Testing is easier as it can be done by reference to the scenarios
defined in the functional specification.
Disadvantages of the waterfall method
Clients will often find it difficult to state their
requirements at the abstract level of a functional
specification and will only fully appreciate what is
needed when the application is delivered.  It then
becomes very difficult (and expensive) to re-engineer
the application.
The model does not cater for the possibility of
requirements changing during the development cycle.
A project can often take substantially longer to deliver
than when developed with an iterative methodology
such as the agile development method.
Prototyping Model
The basic idea here is that instead of freezing the
requirements before a design or coding can proceed, a
throwaway prototype is built to understand the
requirements.
prototype is developed based on the currently known
requirements.
By using this prototype, the client can get an "actual
feel" of the system, since the interactions with
prototype can enable the client to better understand the
requirements of the desired system.
Prototyping is an attractive idea for complicated and
large systems for which there is no manual process or
existing system to help determining the requirements.
It is also an effective method to demonstrate the
feasibility of a certain approach.
might be needed for novel systems where it is not clear
that constraints can be met or that algorithms can be
developed to implement the requirements.
Prototyping Model
Stages of the Prototyping Model

cyclic version of the linear model


once the requirement analysis is done and the design
for a prototype is made
the development process gets started
Once the prototype is created, it is given to the
customer for evaluation
The customer tests the package and gives his/her feed
back to the developer who refines the product
according to the customer's exact expectation
After a finite number of iterations, the final software
package is given to the customer.
In this methodology, the software is evolved as a result
of periodic shuttling of information between the
customer and developer.
the most popular development model in the
contemporary IT industry.
Most of the successful software products have been
developed using this model
Advantages of Prototyping

Users are actively involved in the development


It provides a better system to users, as users have
natural tendency to change their mind in specifying
requirements and this method of developing systems
supports this user tendency.
Since in this methodology a working model of the
system is provided, the users get a better understanding
of the system being developed.
Errors can be detected much earlier as the system is
mode side by side.
Quicker user feedback is available leading to better
solutions.
One of the key advantages a prototype modeled
software has is the time frame of development. Instead
of concentrating on documentation, more effort is
placed in creating the actual software. This way, the
actual software could be released in advance.
Disadvantages of the Prototyping Model

Leads to implementing and then repairing way of


building systems.
Since its being built out of concept, most of the models
presented in the early stage are not complete.
Practically, this methodology may increase the
complexity of the system as scope of the system may
expand beyond original plans.
integration could be very difficult for a prototype
model.
Rapid Application Development Model

A linear sequential software development process


An extremely short development cycle
The RAD model is a "high speed" adaptation of the
linear sequential model
Rapid development is achieved by using a component-
based construction approach.
Used primarily for information systems applications,
Phases of RAD
1. Business Modeling
2. Data Modeling
3. Process Modeling
4. Application Generation
5. Testing and Turnover
Business Modeling
• The information flow among business functions is
modeled in a way that answers the following
questions:
 What information drives the business process?
 What information is generated?
 Who generates it?
 Where does the information go?
 Who processes it?
Data Modeling
The information flow defined as part of the business
modeling phase is refined into a set of data objects
The characteristic (called attributes) of each object is
identified and the relationships between these objects
are defined.
Process Modeling
The data objects defined in the data-modeling phase
are transformed to achieve the information flow
necessary to implement a business function.
Processing the descriptions are created for adding,
modifying, deleting, or retrieving a data object.
Application Generation
Works to reuse existing program components (when
possible) or create reusable components (when
necessary).
In all cases, automated tools are used to facilitate
construction of the software.
Testing and Turnover
The RAD process emphasizes reuse, many of the
program components have already been tested.
This minimizes the testing and development time.
Advantages of RAD
1. Flexible and adaptable to changes.
2. Prototyping applications gives users a tangible description
from which to judge whether critical system requirements
are being met by the system. Report output can be
compared with existing reports. Data entry forms can be
reviewed for completeness of all fields, navigation, data
access (drop down lists,checkboxes, radio buttons, etc.).
3. RAD generally incorporates short development cycles -
users see the RAD product quickly.
4. RAD involves user participation thereby increasing
chances of early user community acceptance.
5. RAD realizes an overall reduction in project risk.
6. Reduce the cost to create custom system.
Disadvantages of RAD
1. Unknown cost of product. As mentioned above, this
problem can be alleviated by the customer agreeing
to a limited amount of rework in the RAD process.
2. It may be difficult for many important users to
commit the time required for success of the RAD
process.
Component Assembly Model
leads to software reusability
The integration/assembly of the already existing
software components accelerate the development
process.
is an iterative development model
It works like the Prototype model, constantly creating
a prototype until a software that will cater the need of
businesses and consumers is realized.
has a close resemblance with the Rapid Application
Development (RAD) model.
7 uses the available tools and GUIs to build software.
8 If the right components are chosen, the integration
aspect is made much simpler.

You might also like