0% found this document useful (0 votes)
4 views8 pages

REVIEWER App Development

The document discusses emerging technologies, particularly AI and quantum computing, and their transformative impact on industries, highlighting the uncertainty and opportunities they present. It outlines the phases of systems development, including requirements analysis and design principles, emphasizing the importance of clear requirements and design patterns in software development. Additionally, it details various design patterns, including creational, structural, and behavioral patterns, that provide reusable solutions to common design problems.
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)
4 views8 pages

REVIEWER App Development

The document discusses emerging technologies, particularly AI and quantum computing, and their transformative impact on industries, highlighting the uncertainty and opportunities they present. It outlines the phases of systems development, including requirements analysis and design principles, emphasizing the importance of clear requirements and design patterns in software development. Additionally, it details various design patterns, including creational, structural, and behavioral patterns, that provide reusable solutions to common design problems.
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

App Development 4.

Prominent Impact - Transforms


industries and systems
Week 1-2: Emerging Technologies
Ex. AI reshaping operations and research

5. Uncertainty - Unpredictable future


Emerging technologies - are innovations applications
developing or evolving rapidly, impacting Ex. Theoretical AI uses and ethical debates
business and society within five to ten
years. Major Emerging Technology Areas
Continuous Evolution - Technologies like AI
evolve continuously, expanding into fields Artificial Intelligence (AI) and
such as automation, healthcare, and Machine Learning
education.
1. AI and Machine Learning Overview
Integration and Impact - Emerging - AI simulates human intelligence,
technologies integrate diverse research while machine learning enables
streams, influencing multiple sectors and systems to improve from
transforming industries. experience without explicit
Uncertainty and Opportunity - These programming.
technologies introduce uncertainty and
unpredictability, creating challenges and 2. AI Applications Across Industries -
opportunities for businesses. AI impacts healthcare, finance, and
transportation by improving
diagnostics, fraud detection, and
Key Characteristics of Emerging autonomous systems.
Technologies
3. Benefits and Competitive
1. Radical Novelty - Introduces new Advantages - AI drives innovation,
ideas or applies existing tech automation, and personalized
innovatively experiences, giving organizations
Ex. AI in automation and healthcare data-driven competitive
advantages.
2. Fast Growth - Rapid adoption and
development
4. Ethical and Regulatory
Ex. AI adoption by businesses and
Considerations - Responsible AI
universities
adoption requires ethical
3. Coherence - Integration of separate frameworks and regulations
technologies ensuring transparency and
Ex. Cloud computing + AI + robotics accountability.
Quantum Computing 3. Industry 3.0: Digital Revolution
Digital technology integrated electronics
1. Quantum Mechanics Principles -
and computers to automate
Quantum computing leverages
manufacturing processes in the late 20th
qubits that exist in multiple states
century.
simultaneously, enabling superior
computational power. 4. Industry 4.0: Smart Technologies
The current era combines AI, IoT, robotics,
2. Applications of Quantum
and augmented reality to create
Computing - Quantum computing
interconnected, intelligent production
promises breakthroughs in
systems.
molecular simulation, material
science, and solving complex Core Technologies of Industry 4.0
scientific problems.
1. Big Data Analytics
3. Industry and Research Leaders - Big Data Analytics involves collecting and
Leading organizations are driving analyzing large volumes of data to identify
quantum computing research to patterns, trends, and insights. It supports
revolutionize cryptography, real‐time decision‐making in production,
optimization, and AI. operations, and customer management.
2. Internet of Things (IoT)
4. Challenges in Quantum Computing
- Scalability, error correction, and IoT refers to the network of
practical implementation remain interconnected physical devices that
challenges for widespread quantum communicate and exchange data over the
computing adoption. internet. These devices use sensors and
wireless technologies to enable
automation, monitoring, and decentralized
The Fourth Industrial Revolution
decision‐making.
3. Cloud Computing
1. Industry 1.0: Mechanical Power
Cloud Computing provides on‐demand
The 18th century saw the rise of mechanical
access to computing resources and
production powered by water and steam
services over the internet. It enables
engines, starting the industrial revolution.
scalable storage, faster processing, and
2. Industry 2.0: Electrification data‐driven production systems with
minimal infrastructure costs.
In the 19th century, electricity enabled
mass production and advanced machinery
for industrial growth.
Augmented Reality (AR) in Industry Requirement - is a clear statement
describing: - What a system must do, or - A
In industrial settings, AR supports tasks
quality or constraint the system must have
such as: - Warehouse part selection -
Maintenance and repair guidance - Real‐ - are initially gathered as user
time operational support requirements and later refined into
While still developing, AR is expected to system requirements.
become a widely adopted tool to enhance
Purpose of Requirements Determination
productivity and improve workplace
efficiency. The goal is to convert high-level user needs
into a Requirements Definition Report that
can be used as input for system modeling
and design.
Week 3-4: Requirements Analysis and
Types of Requirements
Modeling
Overview of Systems Development 1. Functional Requirements - describe
system behavior or functions.
Systems (or applications) development is a - are directly translated into system
structured process used to define, design, models (functional, structural, and
test, and implement information systems. behavioral models).
Most development approaches follow four
core phases: 2. Non-Functional Requirements -
1. Planning – Identify the problem, define how well the system
opportunity, and project scope performs its functions.
2. Analysis – Determine and model
user requirements a. Operational Requirements -
3. Design – Specify how the system Specify the operating
will be built environment of the system.
4. Implementation – Build, test, and b. Performance Requirements -
deploy the system Address speed, capacity, and
reliability.
Key Role: During the analysis phase, c. Security Requirements -
systems analysts (or requirements Define access control and data
engineers) work closely with users to protection.
understand what the system must do. d. Cultural and Political
Requirements - Account for
Requirements Determination
legal, cultural, and
organizational constraints.
Requirements Definition Report Selecting Appropriate Techniques

The Requirements Definition Report (also User


Technique Depth Breadth Cost Involvement
called a Requirements Specification)
Interviews High Low Medium Medium
documents all system requirements and
JAD High Medium Medium High
defines system scope.
–High
Typical Sections Questionnair Medium High Low Low
es
o Introduction and purpose Document Low High Low Low
o Product scope and overview Analysis
o Functional requirements Observation Low Low Low– Low
o Non-functional requirements Medium
o Verification and approvals Tip: Combine techniques to balance
depth, cost, and accuracy.
Best Practice: Use the words “shall” or
“will” to make requirements clear and Requirements Analysis
testable.
Requirements analysis ensures that each
Requirements-Gathering Techniques requirement is valid, feasible, and aligned
with project goals.
1. Interviews - Structured discussions
with users and stakeholders. Characteristics of Good Requirements
2. Joint Application Development
(JAD) - Facilitated workshops A good requirement should be: -
involving users, managers, and Necessary - Unambiguous - Consistent -
analysts. Complete - Singular - Feasible - Verifiable -
3. Questionnaires - Written surveys Traceable
distributed to many participants.
4. Document Analysis - Reviewing Modeling with UML
existing documents such as forms,
Unified Modeling Language (UML) is a
manuals, and reports.
standard visual language used to model
5. Observation - Watching users
software systems.
perform real tasks.
Use-case diagrams represent functional
requirements from the user’s perspective.
Key Components: • Immobility – The modules of the
software are hard to reuse ins
1. Actors – Users or external systems
another software because these
2. Use-Cases – System functions
cannot be extracted from the
3. System Boundary – Scope of the
current software.
system
4. Relationships – Association, Design principles are a set of guidelines to
include, extend, generalization be followed that helps developers arrange
methods and data structures into classes,
Steps in Creating Use-Case Diagrams and how those classes should be
1. Review requirements interconnected, which can adapt to the
2. Identify system boundaries changes in requirements without major
3. Identify actors and goals code rewrites.
4. Identify major use-cases
SOLID Principles - of object-oriented
5. Review and refine
design are applied to software
Use-case modeling is iterative and evolves development projects to make software
as requirements change. easier to change when requirements
changes.

Week 5-7: Design Principles and Patterns - Martin assembled a set of five (5)
software design principles, and
Michael Feathers arranged these
principles into an acronym called
Overview of Design Principles SOLID.
The designing and development of the S - Single Responsibility Principle (SRP) –
software are performed in the design This is one of the basic principles most
phase of a software development project. developers apply to build robust and
maintainable software.
Three (3) important characteristics of a
bad design architecture that should be -instructs developers to design each
avoided: module, interface, or class of a software
system to have only one (1) responsibility.
• Rigidity – The software is hard to
change because every applied O - Open-Closed Principle (OCP) – This
change will affect many parts of the states that for a software to be easy to
software. change, the software classes must be
• Fragility – When applying changes, designed to allow the behavior of those
unexpected parts of the software classes to be changed by adding new code
breaks. rather than changing existing code.
-states that software modules, interfaces, level class is a class that does
or classes should be open for extension but something significant in the
closed for modification. application, while a low-level class is
a class that does secondary work.
L - Liskov Substitution Principle (LSP) – B. Abstractions should not depend
Barbara Liskov introduced this principle upon details. Details should depend
which states that the derived classes upon abstractions. This means that
should be substitutable for their base developers must design the
classes to build a software from abstract class by looking at the
interchangeable modules or classes. needed details of the class.
-suggests that when creating a new Following these principles help
derived class of an existing class, make sure developers to achieve the following:
that the derived class can be a substitute
for its base class. o Reduce the complexity of source
codes
I - Interface Segregation Principle (ISP) – o Increase readability, extensibility,
This principle advises software designers to and maintenance
avoid depending on things that the don’t o Reduce accidental errors and
use. implement reusability easily
o Achieve easier and better software
-suggests avoiding depending on things
testing.
that are not used. This means that clients
should not be forced to implement
interfaces they don’t use.
Week 8-9: Design Patterns
D - Dependency Inversion Principle (DIP) –
This principle suggests that flexible Designing with Patterns
software are those with classes that
depend on abstract classes or interfaces. Design patterns are the reusable solutions
to commonly occurring problems in
-suggests that the most flexible software software design.
systems are those in which source code
dependencies refer only to abstractions, - are used as templates or blueprints
not to concretions. that any developer can customize
to solve a recurring design problem
The DIP states the following parts: on codes.
- are not a specific piece of code, but
A. High-level classes should not be a general concept for solving a
dependent on low-level classes. particular problem.
Both of them should depend on
abstractions. This means a high-
Design patterns are said to have four (4) distributed between objects in the
essential features: design and how communication
happens between objects.
1. Pattern Name – This is the name of
a pattern that can be used to Creational Patterns
describe a design problem, its
solution, and consequences. There are five (5) creational patterns:
2. Problem – This describes when to
1. Singleton Pattern – This design
use the pattern. It explains the
pattern lets developers ensure that
problem and its context.
a class has only one (1) instance
3. Solution – This describes the
while providing a global access
elements that make up the design,
point to the instance.
their relationships, responsibilities,
2. Factory Method Pattern – This
and collaborations.
provides an interface for creating
4. Consequences – These are the
objects in a superclass but allows
results and interchanges of
subclasses to alter the type of
applying the pattern to the
object that will be created.
problem. They include time and
3. Prototype Pattern – This creational
space tradeoffs, but also flexibility,
design pattern lets a developer
extensibility, and portability, among
copy existing objects without
others.
making his code dependent on
Categories of Patterns their classes.
4. Abstract Factory Pattern - This
There are three (3) categories of design allows developers to produce
patterns in object-oriented design: families of related objects without
specifying their concrete classes. A
1. Creational Patterns – These family of objects that are usually
patterns deal with when and how used together or a set of objects
objects are created. These provide that are dependent on each other
object creation mechanisms that in some way.
increase flexibility and reuse of 5. Builder Pattern – This creational
existing codes. design pattern allows developers
2. Structural Patterns – These to construct complex objects step
describe how objects are composed by step. The pattern allows
into larger groups and explain how developers to produce different
to assemble objects and classes into types and representations of an
larger structures while keeping object using the same construction
their structures flexible and code.
efficient.
3. Behavioral Patterns – These
describe how responsibilities are
Structural Patterns substitute or placeholder for
another object. A proxy controls
There are seven (7) design patterns in this access to the original object,
category: allowing developers to perform
something before or after the
1. Adapter Pattern – This structural
requests gets through to the
design pattern allows objects with
original object.
incompatible interfaces to
collaborate. This pattern converts Behavioral Patterns
the interface of a class into another
interface as expected by the client There are three (3) behavioral patterns in
application. this category:
2. Bridge Pattern – This allows the
developers to split a large class or a 1. Iterator Pattern – This design
set of closely related classes into pattern allows developers to
two (2) separate hierarchies, which traverse elements of a collection
are abstraction and without exposing its underlying
implementation, that can be representation, such as list, stack,
developed independently of each and tree. This pattern is used for
other. sequentially iterating and accessing
3. Composite Pattern – This design items from a collection of items.
pattern allows developers to 2. Observer Pattern – This design
compose objects into tree pattern allows developers to define
structures and then work with a subscription mechanism to notify
these structures treating them as multiple objects about any events
individual objects. that happen to the object they are
4. Decorator Pattern – This allows observing. This means that when an
developers to attach new behaviors object changes state, all of its
to objects by placing these objects dependents are notified and
inside special wrapper objects that updated automatically.
contain the behaviors. 3. Strategy Pattern – This allows
5. Facade Pattern – This provides a developers to define a family of
simplified interface to a library, a algorithms, put each of them into a
framework, or any other complex separate class, and make their
set of classes. objects interchangeable.
6. Flyweight Pattern – This allows
developers to fit more objects into
the available amount of RAM by
sharing common parts.
7. Proxy Pattern – This design pattern
allows developers to provide a

You might also like