BECE352E Module 1
BECE352E Module 1
1
Topics
• Module 1: Data Models
• Module 2: Data Preprocess and EDA
• Module 3: ML & Cloud Computing for
IoT
• Module 4: IoT-Cloud Convergence
• Module 5: Smart Computing over IoT-
Cloud
• Module 6: User-Centric IoT
Architecture
• Module 7: Value Engineering and
Analysis
2
Syllabus
• Module:1 Data Models 2 hours
SDLC (Software Development Life Cycle), Development Models – Waterfall, Rapid Application Development, Agile Spiral Models, Object-
Relational databases, Database models.
• Module:2 Data Preprocess and EDA (Exploratory Data Analysis) 2 hours
Data Cleaning, Data Integration, Data Transformation, Data Reduction, Significance of Exploratory Data Analysis, Making sense of Data.
• Module:3 ML & Cloud Computing for IoT 2 hours
Supervised and Unsupervised ML Algorithms, IoT Data Analytics, Cloud Computing for IoT, Cloud Based platforms, ML for Cloud IoT
Analytics, Challenges.
• Module:4 IoT-Cloud Convergence 2 hours
Opportunities and Challenges, Architectures for convergence, Data offloading and computation, Dynamic Resource Provisioning, Security
Aspects.
• Module:5 Smart Computing over IoT-Cloud 2 hours
Cognitive Computing Capabilities, Underlying Technologies, Empowering Analytics, Deep Learning Approaches – Algorithms, Methods and
Techniques
• Module:6 User-Centric IoT Architecture 2 hours
Enabling Technologies, Personalizing the IoT, User Sensitized IoT Architecture, Tweaked Data Layer, Personalization Layer.
• Module:7 Value Engineering and Analysis 1 hours
Principles and Phases of Value Engineering and Analysis in IoT Solutions, Cost- Function Analysis in IoT Solutions, Assets for IoT Solution
Development, Reusability Plans
• Module:8 Contemporary Issues 2 hours
MODULE 1
SDLC, Development Models – Waterfall, Rapid Application Development, Agile
Spiral Models, Object-Relational databases, Database models.
Topics in Module-1-Data Models
• SDLC
• Development Models –
Waterfall
• Rapid Application
Development
• Agile
• Spiral Models, Object-
Relational databases
• Database models
5
Software Development Life Cycle (SDLC)
• A software life cycle model (also termed
process model) is a pictorial and
diagrammatic representation of the
software life cycle.
• A life cycle model represents all the
methods required to make a software
product transit through its life cycle
stages.
• A life cycle model maps the various
activities performed on a software
product from its inception to retirement.
• Need: The development team must
determine a suitable life cycle model for
a particular plan and then observe to it.
6
Software Development Life Cycle (SDLC)
• Stage 1: Planning and requirement analysis: Planning for the
quality assurance requirements and identifications of the risks
associated with the projects is also done at this stage.
• Business analyst and Project organizer set up a meeting with
the client to gather all the data like what the customer wants to
build, who will be the end user, what is the objective of the
product.
• Identify the IoT project's goals and requirements.
• Define the scope, including the types of devices, sensors, and
actuators involved.
• Consider security and privacy requirements.
• Example: The planning phase involves determining that the Smart Home system should
enable users to control lighting, temperature, and security remotely through a mobile app.
Security and data privacy considerations are also outlined.
7
Software Development Life Cycle (SDLC)
• Stage 2: Defining Requirements: Represent and
document the software requirements and get them
accepted from the project stakeholders.
• "SRS"- Software Requirement Specification
document which contains all the product
requirements to be constructed and developed
during the project life cycle.
• Example: Define detailed requirements such as
the ability to set schedules for devices, receive
notifications on security events, and integrate
with voice-activated assistants like Amazon
Alexa or Google Assistant. 8
Software Development Life Cycle (SDLC)
• Stage 3: Designing the Software: Bring down
all the knowledge of requirements, analysis, and
design of the software project.
• This phase is the product of the last two, like
inputs from the customer and requirement
gathering.
• Example: Designing the communication
protocols for the smart home devices, such
as MQTT or CoAP, and creating a user-
friendly mobile app for controlling and
monitoring the devices.
9
Software Development Life Cycle (SDLC)
• Stage 4: Developing the project: The actual
development begins, and the programming is built.
• The implementation of design begins with
writing code.
• Developers have to follow the coding guidelines
described by their management and programming
tools like compilers, interpreters, debuggers, etc.
are used to develop and implement the code.
• Example: Writing the firmware for the smart
thermostat to control temperature based on
user preferences and integrating it with the
cloud server for remote monitoring and
10
control.
Software Development Life Cycle (SDLC)
• Stage 5: Testing: After the code is generated, it
is tested against the requirements to make sure
that the products are solving the needs addressed
and gathered during the requirements stage.
• During this stage, unit testing, integration
testing, system testing, acceptance testing are
done.
• Example: Testing the smart home system
to verify that the smart thermostat
communicates effectively with the app, and
security features prevent unauthorized
access to the devices. 11
Software Development Life Cycle (SDLC)
• Stage 6: Deployment: Once the software is certified, and no bugs
or errors are stated, then it is deployed.
• Then based on the assessment, the software may be released
as it is or with suggested enhancement in the object segment.
• Example: Installing the smart home devices in a
residential setting, ensuring they connect to the cloud
server and function as intended.
13
Waterfall model
• The steps always follow in this order and do not overlap. The
developer must complete every phase before the next
phase begins.
• “Waterfall Model”-Diagrammatic representation resembles a
cascade of waterfalls.
• Circumstances where the use of the Waterfall model is most
suited are:
• When the requirements are constant and not changed
regularly.
• A project is short.
• The situation is calm.
• Where the tools and technology used is consistent and is
not changing.
• When resources are well prepared and available to use.
14
Waterfall model
• This model has five phases: Requirements analysis and specification,
design, implementation, and unit testing, integration and system
testing, and operation and maintenance.
• 1. Requirements analysis and specification phase:
• This phase aims to understand the exact requirements of the
customer and to document them properly.
• Both the customer and the software developer works together to
document all the functions, performance, and interfacing
Example: Imagine a software
requirements of the software. project to develop an online e-
• It describes the “what” of the system to be produced and not commerce platform. The
“how”. requirements phase involves
determining the functionalities
• In this phase, a large document called Software Requirement
needed, such as user
Specification (SRS) document is created which contains a authentication, product catalog,
detailed description of what the system will do in the common shopping cart, and order
language. processing. 15
Waterfall model
• 2. Design Phase: This phase aims to transform the requirements gathered in
the SRS into a suitable form that permits further coding in a programming
language.
• It defines the overall software architecture together with high-level and
detailed design.
• All this work is documented as a Software Design Document (SDD).
• 3. Implementation and unit testing: During this phase, design is Example: For the e-commerce platform,
implemented. the design phase involves creating
wireframes and architectural diagrams
• If the SDD is complete, the implementation or coding phase proceeds that illustrate how users will navigate
smoothly, because all the information needed by software developers is through the website, how data will be
contained in the SDD. stored, and how the overall system will
• During testing, the code is thoroughly examined and modified. Small function.
Example: Developers write the code for
modules are tested in isolation initially. After that these modules are
the e-commerce platform according to the
tested by writing some overhead code to check the interaction between design documents. They create the user
these modules and the flow of intermediate output. interface, implement the shopping cart
functionality, and integrate payment
processing features. 16
Waterfall model
• 4. Integration and System Testing: This phase is highly
crucial as the quality of the end product is determined by
the effectiveness of the testing carried out.
• The better output will lead to satisfied customers,
lower maintenance costs, and accurate results. Unit
testing determines the efficiency of individual Example: Testers check the e-commerce platform
for any bugs or issues. They verify that users can
modules. browse products, add items to the cart, and
• However, in this phase, the modules are tested for successfully complete transactions. Any
discrepancies from the requirements are identified
their interactions with each other and with the system.
and fixed.
• 5. Operation and maintenance phase: Maintenance is Example: The e-commerce platform is released to
the public, and customers can start using it to
the task performed by every user once the software has
browse products, make purchases, and track their
been delivered to the customer, installed, and orders.
operational. If users report any bugs or if there are feature requests, the development
team releases patches or updates to improve the platform. They may also
introduce new features or optimize existing ones based on user 17
feedback.
Waterfall model
Advantages of the Waterfall model
• This model is simple to implement and the
number of resources that are required for it is
minimal.
• The requirements are simple and explicitly
declared; they remain unchanged during the entire
project development.
• The start and end points for each phase are
fixed, which makes it easy to cover progress.
• The release date for the complete product, as
well as its final cost, can be determined before
development.
• It gives easy control and clarity for the customer
due to a strict reporting system.
18
Waterfall model
Disadvantages of the Waterfall model
• In this model, the risk factor is higher, so this
model is not suitable for more significant and
complex projects.
• This model cannot accept changes in
requirements during development.
• It becomes tough to go back to the phase. For
example, if the application has now shifted to the
coding phase, and there is a change in
requirement, it becomes tough to go back and
change it.
• Since the testing is done at a later stage, it does
not allow identifying the challenges and risks in
the earlier phase, so the risk reduction strategy is
difficult to prepare. 19
20
https://www.youtube.com/watch?v=Y_A0E1ToC_I
Agile Model
• “Agile process model” refers to a software development
approach based on iterative development.
• Agile methods break tasks into smaller iterations or
parts that do not directly involve long-term planning.
• The project scope and requirements are laid down at the
beginning of the development process.
• The plans regarding the number of iterations, the duration,
and the scope of each iteration is clearly defined in
advance.
• Each iteration is considered as a short time “frame” in the
Agile process model, which typically lasts from one to
four weeks.
21
Agile Model
• The division of the entire project into smaller parts
helps to minimize the project risk and reduce the
overall project delivery time requirements.
• Each iteration involve a team working through a full
software development life cycle including planning,
requirements analysis, design, coding, and testing
before a working product is demonstrated to the client
When to use Agile:
• When frequent changes are required.
• When a highly qualified and experienced team is
available.
• When a customer is ready to have a meeting with a
software team all the time.
• When the project size is small.
22
Agile Model
1. Requirements gathering: In this phase, you must define the
requirements. You should explain business opportunities and plan
the time and effort needed to build the project. Based on this
information, you can evaluate technical and economic feasibility.
Example (smart irrigation): During this phase, the team gathers
information on the needs of farmers, weather conditions, soil health
monitoring, crop health, and other relevant factors. Farmers express
their desire for real-time monitoring and control of irrigation systems, Example: Designing the Smart Agriculture
crop health alerts, and weather forecasts. system involves creating wireframes for a
user-friendly dashboard displaying real-time
2. Design the requirements: When you have identified the project, data on soil moisture, weather conditions,
work with stakeholders to define requirements. You can use the user and crop health. The architecture is planned
flow diagram or the high-level UML diagram to show the work of to support the integration of sensors, weather
APIs, and data analytics.
new features and show how it will apply to your existing system.
23
Agile Model Example: In the construction phase, the team
implements a basic version of the system, focusing on a
• 3. Construction/iteration: When the team defines the specific aspect like soil moisture monitoring. The initial
requirements, the work begins. Designers and iteration allows farmers to receive real-time updates on
developers start working on their project, which aims to soil conditions. Subsequent iterations add features like
automated irrigation control and crop health monitoring.
deploy a working product. The product will undergo
Example: Testers continuously evaluate the system for
various stages of improvement, so it includes simple,
functionality, data accuracy, and responsiveness.
minimal functionality
Example: After a few iterations, a version of the Smart
• 4. Testing: In this phase, the Quality Assurance team Agriculture system with core features, such as soil
examines the product's performance and looks for the moisture monitoring and automated irrigation, is
deployed to a group of pilot farmers. This allows for
bug.
early feedback and ensures that the system aligns with
• 5. Deployment: In this phase, the team issues a product the practical needs of farmers.
for the user's work environment. Example: Farmers offer feedback on the deployed
• 6. Feedback: After releasing the product, the last step Smart Agriculture system, suggesting improvements
like pest detection or integration with external weather
is feedback. In this, the team receives feedback about
services. This feedback influences the planning of the
the product and works through the feedback. next iteration.
24
Agile Model
Advantage (Pros) of the Agile Method:
• Frequent Delivery
• Face-to-face communication with clients.
• Efficient design and fulfills the business requirement.
• Anytime changes are acceptable.
• It reduces total development time.
Disadvantages (Cons) of the Agile Model:
• Due to the shortage of formal documents, it creates
confusion and crucial decisions taken throughout various
phases can be misinterpreted at any time by different team
members.
• Due to the lack of proper documentation, once the project
is completed and the developers allotted to another project,
maintenance of the finished project can become difficult.
25
26
27
28
https://www.youtube.com/watch?v=5RocT_OdQcA 29
Rapid Application Development Model(RAD)
• RAD is a linear sequential software development process model
that emphasizes a concise development cycle using an element-
based construction approach.
• If the requirements are well understood and described, and the
project scope is a constraint, the RAD process enables a
development team to create a fully functional system within a
concise time.
• When to use RAD model:
• The system should need to create a project that modularizes in a
short period (2-3 months).
• When the requirements are well-known.
• When the technical risk is limited.
• When there's a necessity to make a system, which is modularized in
2-3 months of period.
• It should be used only if the budget allows the use of automatic
code-generating tools. 30
Rapid Application Development Model(RAD)
• RAD (Rapid Application Development) is a
concept that products can be developed faster
and of higher quality through:
• Gathering requirements using workshops or
focus groups.
• Prototyping and early, reiterative user
testing of designs.
• The re-use of software components.
• A rigidly paced schedule that refers to design
improvements to the next product version.
• There is less formality in reviews and other
team communication.
31
Rapid Application Development Model(RAD)
1. Business Modeling: The information flow among business functions is defined by answering
questions like what data drives the business process, what data is generated, who generates
it, where the information goes, who processes it, and so on.
Example: Imagine a company wants to implement an online customer relationship
management (CRM) system. In the business modeling stage, they identify the data flows, such
as customer information, sales data, and support requests. They define who generates this
data (sales teams, customer support, etc.), where it goes, who processes it, and how it drives
business processes like lead management, order processing, and customer support.
2. Data Modeling: The data collected from business modeling is refined into a set of data
objects (entities) that are needed to support the business. The attributes (character of each
entity) are identified, and the relation between these data objects (entities) is defined.
Example: In CRM sytem, entities like "Customer," "Order," and "Support Ticket" are
identified. Attributes such as customer name, contact details, order details, and ticket status
are defined. Relationships between these entities, such as an order being associated with a
customer, are established.
32
Rapid Application Development Model(RAD)
3. Process Modeling: The information objects defined in the data modeling phase
are transformed to achieve the data flow necessary to implement a business
function. Processing descriptions are created for adding, modifying, deleting, or
retrieving a data object.
Example: In this stage, the focus is on how information flows to achieve business
functions. Processes like "New Customer Registration," "Order Processing,"
and "Customer Support Ticket Resolution" are defined. Data flows and the steps
involved in each process are outlined, describing how data objects move through
the system to accomplish tasks.
4. Application Generation: Automated tools are used to facilitate the Example: In this stage
construction of the software. automated tools are employed to
create the software components.
5. Testing & Turnover: Many of the programming components have already This will involve using a rapid
been tested since RAD emphasizes reuse. This reduces the overall testing time. development platform to build
user interfaces, database
However the new part must be tested, and all interfaces must be fully exercised. connections, and business logic
Example: The CRM system components that were generated are tested. Since RAD
emphasizes reuse, many components might have been previously tested or are based on
proven modules. However, the newly developed or customized parts need testing. 33
Rapid Application Development Model(RAD)
Advantages of the RAD Model
• This model is flexible for change.
• In this model, changes are adoptable.
• Each phase in RAD brings the highest priority
functionality to the customer.
• It reduces development time.
• It increases the reusability of features.
Disadvantage of the RAD Model
• It required highly skilled designers.
• All applications are not compatible with RAD.
• For smaller projects, we cannot use the RAD model.
• On the high technical risk, it's not suitable.
• Required user involvement.
34
Spiral Model
• The spiral model is an evolutionary software process
model that couples the iterative feature of prototyping with
the controlled and systematic aspects of the linear
sequential model.
• It combines aspects of both the iterative and waterfall
models. The name "spiral" is derived from the spiral-like
path followed by the development process, indicating the
iterative and cyclic nature of the model.
• It implements the potential for rapid development of new
versions of the software.
• Using the spiral model, the software is developed in a
series of incremental releases.
• During the early iterations, the additional release may be a
paper model or prototype. During later iterations, more and
more complete versions of the engineered system are
35
produced.
Spiral Model
• Objective setting: Each cycle in the spiral starts with the identification
of the purpose for that cycle, the various alternatives that are possible
for achieving the targets, and the constraints that exist.
• Example: A team is developing a mobile app for weather forecasting.
In this stage, they identify the purpose of the current cycle, like
improving the accuracy of rainfall predictions. They explore alternatives,
considering constraints such as data availability and computational
resources.
• Risk Assessment and Reduction: The next phase in the cycle is to • Example: The team assesses the
alternatives for predicting rainfall
calculate these various alternatives based on the goals and constraints. accuracy, considering risks like data
The focus of evaluation in this stage is located on the risk perception for inconsistency or algorithm
limitations. Strategies, such as
the project.
experimenting with different
algorithms or validating predictions
against historical data, are developed
to reduce these risks.
36
Spiral Model
• Development and validation: The next phase is to develop strategies that
resolve uncertainties and risks. This process will include activities such as
benchmarking, simulation, and prototyping.
• Example: The team implements the chosen strategies, incorporating a new
algorithm for rainfall prediction. They validate the accuracy through testing and
simulations, resolving uncertainties by refining the algorithm through an iterative
development process.
• Planning: Finally, the next step is planned. The project is reviewed, and a choice
is made whether to continue with a further period of the spiral. If it is determined
to keep, plans are drawn up for the next step of the project.
• Example: After reviewing the success of the rainfall prediction improvement, the
team plans for the next cycle. If successful, they may plan to enhance another
aspect, like wind speed prediction. If uncertainties persist, they adjust plans
before proceeding with the next stage of development.
37
Spiral Model
When to use Spiral Model:
• When deliverance is required to be frequent.
• When the project is large.
• When requirements are unclear and complex.
• When changes may be required at any time.
• Large and high-budget projects.
• Advantages
• A high amount of risk analysis.
• Useful for large and mission-critical projects.
• Disadvantages
• Can be a costly model to use.
• Risk analysis needs highly particular expertise.
• Doesn't work well for smaller projects.
38
Object Databases and Object-Relational Databases
Object Oriented Databases (OODB):
• A database is a collection of data that is organized and
stored in a way that allows easy access and retrieval.
• An OODB is a database management system.
• They are designed to store and manipulate objects.
• In an OODB, data is stored in the form of objects, and
these objects encapsulate both data (attributes) and
behavior (methods or functions).
• It is similar to object-oriented programming languages, Example: Consider an application for
i.e. Java and Python. Objects can contain data, methods, managing a music library. In an OODB,
you will have an object type Song with
and relationships to other objects.
attributes like title, artist, and duration.
• In OODB, the object itself is the storage rather than the This object also have methods like play()
representation of the data. This allows for more efficient and addToPlaylist(). Instances of this
object, representing individual songs, can
and natural handling of complex data structures and
be stored in the database. 39
relationships between objects.
Object Databases and Object-Relational Databases
Advantages of OODBs
• They work well with object-oriented programming
languages.
• OODBs are made to work well with languages like Java
and Python. They can work with object-oriented
concepts like encapsulation and inheritance.
• They can handle complex data structures well.
• OODBs are good at handling complex data structures
because they store objects, rather than breaking them
down into individual parts. • They are easy to model.
• They are fast for object-oriented workloads. • OODBs are easy to model because they
• OODBs are fast because they are designed to work with allow developers to work with objects
object-oriented programming languages. instead of worrying about the underlying
database structure.
40
Object-Relational Databases
•ORD stores data in tables, with rows
representing records and columns representing
fields. These tables are related to each other.
•These combine elements of both relational
databases and object-oriented programming. They
extend the relational model to support complex
Example: Consider a university database. In an ORD,
data types, including objects and their you might have a table for Students with typical
relationships. attributes, but you could also have an object type for
•They are a hybrid between traditional relational Course that encapsulates both data (course name,
databases and OODBs. instructor) and behavior (enroll, drop). Instances of the
•They are designed to handle both structured and Course object can be associated with the Students
unstructured data, much like OODBs, but they
table.
● OODBs are designed to store and manipulate objects
also support SQL (Structured query language) and are well-suited for complex data structures and
queries and transactions, much like traditional object-oriented programming languages.
relational databases. • The decision to choose between OODBs and ORDBs
depends on specific project requirements. 41
Object-Relational Databases
• Object-Relational Databases (ORDBs) have many advantages −
• They work with SQL.
• ORDBs can use SQL, which is a language that many developers already know. This makes them
more familiar and easier to use.
• They can be integrated.
• ORDBs can be integrated into existing systems. It makes them a good choice for companies that
want to upgrade their infrastructure without starting from scratch.
• They are good at handling structured data.
• ORDBs can handle structured data well. They are good for applications that need to do a lot of
searching and sorting.
• They have good support for transactions.
• ORDBs can handle transactions well. Even if there are errors or problems, the data stays
consistent and accurate.
• Examples of ORDBs include PostgreSQL, Oracle Database, and Microsoft SQL Server.
42
Choosing your Project
• When it comes to choosing between OODBs and ORDBs. The
decision will largely depend on the specific requirements of your
project. If you are working with complex data structures and object-
oriented programming languages, an OODB may be the better choice.
On the other hand, if you need to handle structured data efficiently and
support SQL queries and transactions, an ORDB may be the better
choice. In conclusion, both object-oriented and object-relational
databases have their strengths and weaknesses.
43
Object vs Object-Relational Databases