0% found this document useful (0 votes)
13 views

Lecture6 SoftwareDevelopment

AICT lecture6

Uploaded by

Felonia Mekaell
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Lecture6 SoftwareDevelopment

AICT lecture6

Uploaded by

Felonia Mekaell
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Advanced Information and Communication Technology

Geodetic Engineering Department

SOFTWARE DEVELOPMENT
INTENDED LEARNING OUTCOMES

1. Understand how a software is made

What is Software Development


Software Development (also known as application development, software design, designing software,
software application development, enterprise application development, or platform development) is the
development of a software product.

Software Engineering: The application of a systematic, disciplined, quantifiable approach to the


development, operation, and maintenance of software.

Figure 1. Software Interaction with Hardware and Users


Advanced Information and Communication Technology
Geodetic Engineering Department

Challenges

Figure 2. Challenges with Software Development

Collaboration and communication within the team and with stakeholders, etc. are crucial when it
comes to creating good software. Creating software is complicated. It is important to understand the
customer’s needs! In some way, you need to find out what the customer needs. Market research, etc. is a
good start, but in the end, you need to go much deeper to understand the customer. Most of the time the
customer doesn’t even know what they need.

Software Systems
In software development, we have different kinds of systems, such as;

 Stand-alone applications
- These are application systems that run on a local computer, such as a PC. They include
all necessary functionality and do not need to be connected to a network
Advanced Information and Communication Technology
Geodetic Engineering Department

 Interactive transaction-based applications


- Applications that execute on a remote computer and are accessed by users from their
own PCs or terminals. These include web applications such as e-commerce
applications.
 Embedded Control Systems
- These are software control systems that control and manage hardware devices.
Numerically, there are probably more embedded systems than any other type of
system.
 Batch Processing Systems
- These are business systems that are designed to process data in large batches. They
process large numbers of individual inputs to create corresponding outputs.
 Entertainment Systems
- These are systems that are primarily for personal use and which are intended to
entertain the user.
 Systems for Modeling and Simulation
- These are systems that are developed by scientists and engineers to model physical
processes or situations, which include many, separate, interacting objects.
 Data Collection Systems
- These are systems that collect data from their environment using a set of sensors and
send that data to other systems for processing.
 Systems of systems
- These are systems that are composed of several other software systems.

We can split the software systems in 2 main categories:

Generic Products

 Stand-alone systems that are marketed and sold to any customer who wishes to
buy them.
 Examples – PC software such as graphics programs, project management tools;
CAD software; software for specific markets such as appointments systems for
dentists.

Customized Products

 Software that is commissioned by a specific customer to meet their own needs.


 Examples – embedded control systems, air traffic control software, traffic
monitoring systems.
Advanced Information and Communication Technology
Geodetic Engineering Department

Documentation
Lots of documentation is involved in software development. Some important documents are:

 SRS (Software Requirements Specifications) - A document stating what an application must


accomplish
 SDD (Software Design Document) – A document describing the design of a software application
 STP (Software Test Plan) - Documentation stating what parts of an application will be tested, and
the schedule of when the testing is to be performed.
 STD (Software Test Documentation) - Contents: Introduction, Test Plan, Test Design, Test
Cases, Test procedures, Test Log and Summary

Figure 3. Typical documentation involved in Software Development


Advanced Information and Communication Technology
Geodetic Engineering Department

Development Teams
A typical Software Team consists of the following roles:

Figure 4. Software Team and Team Collaboration

 Stakeholders
All the people that has an interest in the outcome of the software are called Stakeholders.
In most cases the Stakeholders are referred to as “Customers” but others may also be referred to as
stakeholders, such as management, shareholders, etc.
 Project Manager
The Project Managers have the responsibility of the planning, execution and closing of the
project.
 System Architect
With “Technical Design” we mean the Platform and Architecture Design, i.e., how to build
the software.
Advanced Information and Communication Technology
Geodetic Engineering Department

 UX Designer
UX Design is the Design of the User eXperience (UX) and the Graphical User Interface
(GUI), sometimes also called Human Machine Interface (HMI). This is what the end user of the
software sees.
 Programmer
The Programmer or the Developer is doing the actual implementation of the software, i.e.,
the coding.
 Software Tester
Before the customer can start using the software it needs to be properly tested. The
developer/Programmer needs to test his software, but since software consists of several software
modules and components created by different developers, we need dedicated software testers that
can test the software on a higher level. The Customers are/should also be involved in the testing as
well.

Software Development Life Cycle (SDLC)


Software Development Life Cycle (SLDC) is a framework that defines the steps involved in the
development of software at each phase. It covers the detailed plan for building, deploying and maintaining
the software.

SDLC defines the complete cycle of development i.e. all the tasks involved in planning, creating, testing,
and deploying a Software Product.

Software Development Life Cycle (SDLC) Phases


Advanced Information and Communication Technology
Geodetic Engineering Department

1. REQUIREMENT GATHERING AND ANALYSIS

During this phase, all the relevant information is collected from the customer to develop a
product as per their expectation. Any ambiguities must be resolved in this phase only. Business
analyst and Project Manager set up a meeting with the customer to gather all the information like
what the customer wants to build, who will be the end-user, what is the purpose of the product.
Before building a product a core understanding or knowledge of the product is very important.

For Example, A customer wants to have an application which involves money transactions.
In this case, the requirement has to be clear like what kind of transactions will be done, how it will
be done, in which currency it will be done, etc. Once the requirement gathering is done, an analysis
is done to check the feasibility of the development of a product. In case of any ambiguity, a call is
set up for further discussion.

Once the requirement is clearly understood, the SRS (Software Requirement Specification)
document is created. This document should be thoroughly understood by the developers and also
should be reviewed by the customer for future reference.

2. DESIGN

In this phase, the requirement gathered in the SRS document is used as an input and
software architecture that is used for implementing system development is derived.
3. IMPLEMENTING OR CODING

Implementation/Coding starts once the developer gets the Design document. The Software
design is translated into source code. All the components of the software are implemented in this
phase.

4. TESTING

Testing starts once the coding is complete and the modules are released for testing. In this
phase, the developed software is tested thoroughly and any defects found are assigned to developers to
get them fixed. Retesting, regression testing is done until the point at which the software is as per the
customer’s expectation. Testers refer SRS document to make sure that the software is as per the
customer’s standard.
5. DEPLOYMENT
Once the product is tested, it is deployed in the production environment or first UAT (User
Acceptance testing) is done depending on the customer expectation. In the case of UAT, a replica of
the production environment is created and the customer along with the developers does the testing. If
the customer finds the application as expected, then sign off is provided by the customer to go live.
Advanced Information and Communication Technology
Geodetic Engineering Department

6. MAINTENANCE
After the deployment of a product on the production environment, maintenance of the product
i.e. if any issue comes up and needs to be fixed or any enhancement is to be done is taken care by the
developers.

Software Development Life Cycle Models


A software life cycle model is a descriptive representation of the software development cycle. SDLC
models might have a different approach but the basic phases and activity remain the same for all the models.
 WATERFALL MODEL
The waterfall model is the very first model that is used in SDLC. It is also known as the linear
sequential model. In this model, the outcome of one phase is the input for the next phase. Development
of the next phase starts only when the previous phase is complete.

 First, Requirement gathering and analysis is done. Once the requirement is freeze
then only the System Design can start. Herein, the SRS document created is the
output for the Requirement phase and it acts as an input for the System Design.
 In System Design Software architecture and Design, documents which act as an
input for the next phase are created i.e. Implementation and coding.
Advanced Information and Communication Technology
Geodetic Engineering Department

 In the Implementation phase, coding is done and the software developed is the
input for the next phase i.e. testing.
 In the testing phase, the developed code is tested thoroughly to detect defects in
the software. Defects are logged into the defect tracking tool and are retested once
fixed. Bug logging, Retest, and Regression testing go on until the time the software
is in a go-live state.
 In the Deployment phase, the developed code is moved into production after the
sign-off is given by the customer.
 Any issues in the production environment are resolved by the developers which
come under maintenance.
ADVANTAGES DISADVANTAGES
 Waterfall model is a simple model which  Waterfall model is time-consuming &
can be easily understood and is the one in cannot be used in the short-duration
which all the phases are done step by step. projects as in this model a new phase
 Deliverables of each phase are well cannot be started until the ongoing phase is
defined, and this leads to no complexity completed.
and makes the project easily manageable.  Waterfall model cannot be used for the
projects which have uncertain requirement
or wherein the requirement keeps on
changing as this model expects the
requirement to be clear in the requirement
gathering and analysis phase itself and any
change in the later stages would lead to
cost higher as the changes would be
required in all the phases.

 V-SHAPED MODEL
V- Model is also known as Verification and Validation Model. In this model Verification
& Validation goes hand in hand i.e. development and testing goes parallel. V model and waterfall
model are the same except that the test planning and testing start at an early stage in V-Model.
Advanced Information and Communication Technology
Geodetic Engineering Department

a) Verification Phase
i. Requirement Analysis - In this phase, all the required information is
gathered & analyzed. Verification activities include reviewing the
requirements.
ii. System Design - Once the requirement is clear, a system is designed i.e.
architecture, and components of the product are created and documented
in a design document.
iii. High-Level Design - High-level design defines the architecture/design of
modules. It defines the functionality between the two modules.
iv. Low-Level Design - Low-level Design defines the architecture/design of
individual components.
v. Coding - Code development is done in this phase.
b) Validation Phase
i. Unit Testing – it is performed using the unit test cases that are designed
and is done in the Low-level design phase. Unit testing is performed by
the developer itself. It is performed on individual components which lead
to early defect detection.
ii. Integration Testing – it is performed using integration test cases in High-
level Design phase. Integration testing is the testing that is done on
integrated modules. It is performed by testers.
iii. System Testing – it is performed in the System Design phase. In this phase,
the complete system is tested i.e. the entire system functionality is tested.
iv. Accepted Testing - Acceptance testing is associated with the Requirement
Analysis phase and is done in the customer’s environment.
ADVANTAGES DISADVANTAGES
 It is a simple and easily understandable  V-shaped model is not good for ongoing
model. projects.
 V –model approach is good for smaller  Requirement change at a later stage would
projects wherein the requirement is cost too high.
defined and it freezes in the early stage.
 It is a systematic and disciplined model
which results in a high-quality product.

 PROTOTYPE MODEL
The prototype model is a model in which the prototype is developed prior to the actual software.
Prototype models have limited functional capabilities and inefficient performance when compared to
the actual software. Dummy functions are used to create prototypes. This is a valuable mechanism for
understanding the customers’ needs.
Software prototypes are built prior to the actual software to get valuable feedback from the
customer. Feedback are implemented and the prototype is again reviewed by the customer for any
change. This process goes on until the model is accepted by the customer.
Advanced Information and Communication Technology
Geodetic Engineering Department

Once the requirement gathering is done, the quick design is created and the prototype which is
presented to the customer for evaluation is built. Customer feedback and the refined requirement is used to
modify the prototype and is again presented to the customer for evaluation. Once the customer approves
the prototype, it is used as a requirement for building the actual software. The actual software is build using
the Waterfall model approach.

ADVANTAGES DISADVANTAGES
 Prototype model reduces the cost and  Since the customer is involved in every
time of development as the defects are phase, the customer can change the
found much earlier. requirement of the end product which
 Missing feature or functionality or a increases the complexity of the scope and
change in requirement can be identified in may increase the delivery time of the
the evaluation phase and can be product.
implemented in the refined prototype.
 Involvement of a customer from the initial
stage reduces any confusion in the
requirement or understanding of any
functionality.

 SPIRAL MODEL
The Spiral Model includes iterative and prototype approach. Spiral model phases are
followed in the iterations. The loops in the model represent the phase of the SDLC process i.e. the
innermost loop is of requirement gathering & analysis which follows the Planning, Risk analysis,
development, and evaluation. Next loop is Designing followed by Implementation & then testing.
Advanced Information and Communication Technology
Geodetic Engineering Department

i. Planning - The planning phase includes requirement gathering wherein


all the required information is gathered from the customer and is
documented. Software requirement specification document is created for
the next phase.
ii. Risk Analysis - In this phase, the best solution is selected for the risks
involved and analysis is done by building the prototype. For Example,
the risk involved in accessing the data from a remote database can be that
the data access rate might be too slow. The risk can be resolved by
building a prototype of the data access subsystem.
iii. Engineering - Once the risk analysis is done, coding and testing are done.
iv. Evaluation - Customer evaluates the developed system and plans for the
next iteration.
v.
ADVANTAGES DISADVANTAGES
 Risk Analysis is done extensively using  The spiral model is best suited for large
the prototype models. projects only.
 Any enhancement or change in the  The cost can be high as it might take a large
functionality can be done in the next number of iterations which can lead to high
iteration. time to reach the final product.
Advanced Information and Communication Technology
Geodetic Engineering Department

 ITERATIVE INCREMENTAL MODEL

The iterative incremental model divides the product into small chunks. For Example,
Feature to be developed in the iteration is decided and implemented. Each iteration goes through
phases namely Requirement Analysis, Designing, Coding, and Testing. Detailed planning is not
required in iterations. Once the iteration is completed, a product is verified and delivered to the
customer for their evaluation and feedback. Customer feedback is implemented in the next iteration
along with the newly added feature. Hence, the product increments in terms of features, and once
the iterations are completed the final build holds all the features of the product.
i. Inception Phase – The inception phase includes the requirement and scope of the
Project.
ii. Elaboration Phase - In the elaboration phase, the working architecture of a product
is delivered which covers the risk identified in the inception phase and also fulfills
the non-functional requirements.
iii. Construction Phase - In the Construction phase, the architecture is filled in with
the code which is ready to be deployed and is created through analysis, designing,
implementation, and testing of the functional requirement.
iv. Transition Phase - In the Transition Phase, the product is deployed in the
Production environment.

ADVANTAGES DISADVANTAGES
 Any change in the requirement can be  Complete requirement and understanding
easily done and would not cost as there is of a product are required to break down
a scope of incorporating the new and build incrementally.
requirement in the next iteration.
 Risk is analyzed & identified in the
iterations.
 Defects are detected at an early stage.
 As the product is divided into smaller
chunks it is easy to manage the product.

 BIG BANG MODEL


Big Bang Model does not have any defined process. Money and efforts are put together as
the input and output come as a developed product which might be or might not be the same as what
the customer needs. Big Bang Model does not require much planning and scheduling. The
developer does the requirement analysis & coding and develops the product as per his
understanding. This model is used for small projects only. There is no testing team and no formal
testing is done, and this could be a cause for the failure of the project.

ADVANTAGES DISADVANTAGES
 It’s a very simple Model.  Big Bang models cannot be used for large,
 Less Planning and scheduling is required. ongoing & complex projects.
 The developer has the flexibility to build  High risk and uncertainty.
the software of their own.
Advanced Information and Communication Technology
Geodetic Engineering Department

 AGILE MODEL
Agile Model is a combination of the Iterative and incremental models. This model focuses
more on flexibility while developing a product rather than on the requirement. In Agile, a product
is broken into small incremental builds. It is not developed as a complete product in one go. Each
build increments in terms of features. The next build is built on the previous functionality.
In agile iterations are termed sprints. Each sprint lasts for 2-4 weeks. At the end of each
sprint, the product owner verifies the product and after his approval, it is delivered to the customer.
Customer feedback is taken for improvement and his suggestions and enhancement are worked on
in the next sprint. Testing is done in each sprint to minimize the risk of any failures.

ADVANTAGES DISADVANTAGES
 It allows more flexibility to adapt to the  Lack of documentation.
changes.  Agile needs experienced and highly skilled
 The new feature can be added easily. resources.
 Customer satisfaction as the feedback and  If a customer is not clear about how exactly
suggestions are taken at every stage. they want the product to be, then the
project would fail.

You might also like