2. AREAS OF SOFTWARE DEVELOPMENT:
Technology Drivers
3/22/2024 12:36 AM 2
3. OBJECTIVES
• At the end of this session you should be able to:
1. Describe current technology drivers that influence
software development
2. Differentiate the areas of software development
3. Justify the need to create new or enhance existing
software systems
4. Discuss the role of professional bodies and Industry
Standards that are used in the software development
process
3/22/2024 12:36 AM 3
4. 1-4
Technology Drivers for Today’s Information
Systems
• Advances in Information Technology can be
drivers for Information Systems. Outdated
technologies can present significant problems that
drive Information Systems Development.
Technology that influences development includes:
– Networks and the Internet
– Mobile and Wireless Technologies
– Object Technologies
– Collaborative Technologies
– Enterprise Applications
• Let’s examine each one
3/22/2024 12:36 AM
5. • You will need to have knowledge of the following:
• xHTML and XML
• Scripting languages such as Pearl, JavaScript
• Web-specific programming such as Java and Cold-
Fusion
• Intranet and Extranet
• Portals - A Web portal is a specially designed website
that often serves as the single point of access for
information. It can also be considered a library of
personalized and categorized content
• Web services – re-usable web-based programs that can
be called from any other internet program
Network & The Internet
3/22/2024 12:36 AM 5
6. • Mobile and wireless technology will significantly
influence analysis and design of new information
systems. Among the factors to consider is the
limitations of mobile devices and screen sizes.
Mobile & Wireless Technologies
3/22/2024 12:36 AM 6
7. • Most software is built using object technologies.
Software developers must be conversant with this
technology
• Object technology will be addressed later
Object Technologies
3/22/2024 12:36 AM 7
8. • Collaborative technologies such as email, instant
messaging and NetMeeting enhances interpersonal
communication and teamwork. Information
Systems must be developed to facilitate these
technologies
Collaborative Technologies
3/22/2024 12:36 AM 8
9. • Suite of integrated software modules and a common central
database
• Collects data from many divisions of firm for use in nearly all
of firm’s internal business activities
• Information entered in one process is immediately available
for other processes
Enterprise Applications
3/22/2024 12:36 AM 9
10. • Enterprise Software
• Built around thousands of predefined business processes that reflect
best practices
• Finance/accounting: General ledger, accounts payable, etc.
• Human resources: Personnel administration, payroll, etc.
• Manufacturing/production: Purchasing, shipping, etc.
• Sales/marketing: Order processing, billing, sales planning, etc.
• To implement, firms:
• Select functions of system they wish to use
• Map business processes to software processes
• Use software’s configuration tables for customizing
Enterprise Application
3/22/2024 12:36 AM 10
11. Enterprise systems feature a
set of integrated software
modules and a central
database that enables data to
be shared by many different
business processes and
functional areas throughout the
enterprise
How Enterprise SystemsWork
3/22/2024 12:36 AM 11
12. • The supply chain
• Network of organizations and processes for:
• Procuring raw materials
• Transforming them into products
• Distributing the products
• Upstream supply chain:
• Firm’s suppliers, suppliers’ suppliers, processes for managing
relationships with them
• Downstream supply chain:
• Organizations and processes responsible for delivering products
to customers
Types of ERP Systems – Supply Chain
Management
3/22/2024 12:36 AM 12
13. Push- Versus Pull-Based Supply Chain Models
The difference between push- and pull-based
models is summarized by the slogan “Make
what we sell, not sell what we make.”
Types of ERP Systems – Supply Chain
Management
3/22/2024 12:36 AM 13
14. • What is customer relationship management?
• Knowing the customer
• In large businesses, too many customers and too many ways
customers interact with firm
• Customer relationship management (CRM) systems
• Capture and integrate customer data from all over the
organization
• Consolidate and analyze customer data
• Distribute customer information to various systems and
customer touch points across enterprise
• Provide single enterprise view of customers
Types of ERP Systems – Customer
Relationship Management (CRM)
3/22/2024 12:36 AM 14
15. Customer Relationship Management (CRM)
CRM systems examine customers from a
multifaceted perspective. These systems
use a set of integrated applications to
address all aspects of the customer
relationship, including customer service,
sales, and marketing.
Types of ERP Systems – Customer
Relationship Management (CRM)
3/22/2024 12:36 AM 15
17. • Real Time Systems
• Distributed Systems
• Mobile and Ubiquitous Computing
• Parallel Computing
• High Integrity Systems
• Scientific Applications
– Biometrics
– Forensics
Application Areas
3/22/2024 12:36 AM 17
18. Real-Time Systems
What is a Real-Time System?
Is defined as a system in which the time where the outputs are
produced is significant (within specified bounds or deadlines)
.
RTS
Sensor Data
Commands
Actuator Outputs
Displays
Correctness depends on output values and the time at which
the inputs are processed and the outputs are produced
3/22/2024 12:36 AM 18
20. Introduction to Real-Time Systems
• Real-time systems often are comprised of a controlling
system, controlled system and environment.
– A Controlling system: acquires information about the
environment using sensors and controls the environment
with actuators.
• Timing constraints derived from physical impact of controlling
systems activities. Hard and soft constraints.
– Periodic Tasks: Time-driven recurring at regular intervals
(e.g., sensors polling).
– Aperiodic Tasks: event-driven (operator commands).
20
3/22/2024 12:36 AM
21. • Real-Time Systems can be Hard Real-Time systems or Soft
Real-Time systems
• In Hard Real-Time systems outputs must be produced within
the specified deadlines or a system failure will occur (Examples
include: Flight Control systems, Air Traffic Control systems,
Robots, Automotive Control Systems,..)
• In Soft Real-Time Systems, deadlines can be occasionally
missed ( Examples include: communications systems using
time out protocols, ATMs, Air line Reservation Systems,
Process Control Systems designed to tolerate delays)
Real-Time Systems
3/22/2024 12:36 AM 21
23. Characteristics of Real-Time Systems
Real-Time systems are often embedded systems (i.e.,
contained within a larger system to provide monitoring,
control, and computation functions)
They often require concurrent processing of multiple inputs.
Concurrent tasks must be created and managed in order to
fulfill the functions of the system.
Task scheduling is one of the important aspects of managing
concurrency. Since tasks will compete for the same resources
(such as the Processors)
Real-Time Systems
3/22/2024 12:36 AM 23
24. Characteristics of Real-Time Systems
• Real-Time systems need to respond to synchronous events ( i.e.,
periodic events) as well as asynchronous events (or aperiodic
events, those that could occur at any time)
• Real-Time systems often require high Reliability and Safety
requirements.
• Real-Time systems often have special environmental, interfacing,
and fault-tolerance requirements.
• Environmental factors such as temperature (e.g., in space
exploration applications systems must operate in a temperature
range of -55 to 200 degree centigrade), shock and vibration, size
limits, weight limits, usually have an impact on the system
hardware and software requirements
Real-Time Systems
3/22/2024 12:36 AM 24
25. Characteristics of Real-Time Systems
• Fault-tolerant requirements and Exception handling have special
consideration due to the high reliability and critical timing
requirements. Fault-tolerance requirements greatly impact and
usually complicate the design of software and hardware
components of the system.
• Interfacing requirements.The devices which are typically
interfaced to a RTS are many (Examples include sensors, actuators,
switches, displays, communication links, D/A and A/D converters,
and pulse-width-modulated controllers)
Real-Time Systems
3/22/2024 12:36 AM 25
30. Introduction to Distributed Systems
• What is a distributed system?
– A distributed system is a collection of independent
computers that appear to the users of the system as a
single system.
• Features:
– No shared memory – message-based communication
– Each runs its own local OS
– Heterogeneity
• Ideal: to present a single-system image:
– The distributed system “looks like” a single computer
rather than a collection of separate computers.
3/22/2024 12:36 AM 30
31. Examples of Distributed Systems
• Local Area Network and Intranet
• Database Management System
• Automatic Teller Machine Network
• Internet/World-Wide Web
• Mobile and Ubiquitous (Pervasive) Computing
31
3/22/2024 12:36 AM
32. Local Area Network
the rest of
email server
Web server
Desktop
computers
File server
router/firewall
print and other servers
other servers
print
Local area
netw ork
email server
the Internet
32
3/22/2024 12:36 AM
37. Web Servers and Web Browsers
Internet
Browsers
Web servers
www.google.com
www.uu.se
www.w3c.org
Protocols
Activity.html
http://www.w3c.org/Protocols/Activity.html
http://www.google.comlsearch?q=lyu
http://www.uu.se/
File system of
www.w3c.org
37
3/22/2024 12:36 AM
38. Mobile and Ubiquitous Computing
Laptop
Mobile
Printer
Camera
Internet
Host intranet Home intranet
GSM/GPRS
Wireless LAN
phone
gateway
Host site
38
3/22/2024 12:36 AM
39. Common Characteristics
• What are we trying to achieve when we construct a distributed
system?
• Certain common characteristics can be used to assess
distributed systems
– Heterogeneity
– Openness
– Security
– Scalability
– Failure Handling
– Concurrency
– Transparency
3/22/2024 12:36 AM 39
40. What is Parallel Computing? (1)
• Traditionally, software has been written for serial
computation:
– To be run on a single computer having a single Central
Processing Unit (CPU);
– A problem is broken into a discrete series of instructions.
– Instructions are executed one after another.
– Only one instruction may execute at any moment in time.
3/22/2024 12:36 AM 40
41. What is Parallel Computing? (2)
• In the simplest sense, parallel computing is the simultaneous use of multiple
compute resources to solve a computational problem.
– To be run using multiple CPUs
– A problem is broken into discrete parts that can be solved concurrently
– Each part is further broken down to a series of instructions
• Instructions from each part execute simultaneously on different CPUs
3/22/2024 12:36 AM 41
42. Parallel Computing: Resources
• The compute resources can include:
– A single computer with multiple processors;
– A single computer with (multiple) processor(s) and some
specialized computer resources (GPU, FPGA …)
– An arbitrary number of computers connected by a
network;
– A combination of both.
3/22/2024 12:36 AM 42
43. Parallel Computing: The Computational Problem
• The computational problem usually demonstrates
characteristics such as the ability to be:
– Broken apart into discrete pieces of work that can be
solved simultaneously;
– Execute multiple program instructions at any moment in
time;
– Solved in less time with multiple compute resources than
with a single compute resource.
3/22/2024 12:36 AM 43
44. Parallel Computing: What for? (1)
• Parallel computing is an evolution of serial computing that attempts to
emulate what has always been the state of affairs in the natural world:
many complex, interrelated events happening at the same time, yet
within a sequence.
• Some examples:
– Planetary and galactic orbits
– Weather and ocean patterns
– Tectonic plate drift
– Rush hour traffic in Paris
– Automobile assembly line
– Daily operations within a business
– Building a shopping mall
– Ordering a hamburger at the drive through.
3/22/2024 12:36 AM 44
45. Parallel Computing: What for? (2)
• Traditionally, parallel computing has been
considered to be "the high end of computing" and
has been motivated by numerical simulations of
complex systems and "Grand Challenge Problems"
such as:
– weather and climate
– chemical and nuclear reactions
– biological, human genome
– geological, seismic activity
– mechanical devices - from prosthetics to spacecraft
– electronic circuits
– manufacturing processes
3/22/2024 12:36 AM 45
46. Parallel Computing: What for? (3)
• Today, commercial applications are providing an equal or greater driving
force in the development of faster computers. These applications require
the processing of large amounts of data in sophisticated ways.Example
applications include:
– parallel databases, data mining
– oil exploration
– web search engines, web based business services
– computer-aided diagnosis in medicine
– management of national and multi-national corporations
– advanced graphics and virtual reality, particularly in the entertainment
industry
– networked video and multi-media technologies
– collaborative work environments
• Ultimately, parallel computing is an attempt to maximize the infinite but
seemingly scarce commodity called time.
3/22/2024 12:36 AM 46
47. Why Parallel Computing?
• The primary reasons for using parallel computing:
– Save time - wall clock time
– Solve larger problems
– Provide concurrency (do multiple things at the same time)
3/22/2024 12:36 AM 47
48. Why Parallel Computing? (2)
• Other reasons might include:
– Taking advantage of non-local resources - using available
compute resources on a wide area network, or even the
Internet when local compute resources are scarce.
– Cost savings - using multiple "cheap" computing resources
instead of paying for time on a supercomputer.
– Overcoming memory constraints - single computers have
very finite memory resources. For large problems, using
the memories of multiple computers may overcome this
obstacle.
3/22/2024 12:36 AM 48
49. • High integrity systems - carry out safety-critical and
security-critical tasks.
• They require that close attention be paid to integrity
concerns during software development.
• There is a growing awareness that the manner in which
software is designed can have a significant impact on
the security of the system.
• Software developers need to consider integrity concerns
when making architectural, logical, and physical
(including technology related) design decisions.
• For complex systems, developers also have to be
concerned with other factors such as distribution, and
usability.
High Integrity Systems
3/22/2024 12:36 AM 49
51. ACTIVITY – APPLICATION AREAS
• Identify real time application that needs to be
developed on campus (or else where):
– Explain the purpose of this application
– Describe the characteristics or features of this application
• Identify distributed application that needs to be
developed on campus (or else where):
– Explain the purpose of this application
– Describe the characteristics or features of this application
3/22/2024 12:36 AM 51
52. • Biometrics
– What is biometrics
– What are the characteristics used in biometrics
– Give some examples of biometrics systems
• Computer Forensics
– What is computer forensics
– Uses of computer forensics
ACTIVITY – APPLICATION AREAS
3/22/2024 12:36 AM 52
54. • List some reasons why it might become necessary to
create or modify an Information System
ACTIVITY
3/22/2024 12:36 AM 54
55. To capitalize on an
opportunity
Competition can
lead to change
To improve
existing system
Outside group may
mandate change
To correct problem
in existing system
Reasons to Create or Modify a Computerized
System
INTRODUCTION
3/22/2024 12:36 AM 55
56. • Problem – an undesirable situation that prevents
the organization from fully achieving its purpose,
goals, and/or objectives.
• Opportunity – a chance to improve the
organization even in the absence of an identified
problem.
• Directive - a new requirement that is imposed by
management, government, or some external
influence.
Reasons to Create or Modify a
Computerized System
3/22/2024 12:36 AM 56
57. • Planned Projects
– An Information Systems Strategy Plan has examined the
business as a whole to identify those system development
projects that will return the greatest strategic (long-term)
value to the business
– A Business Process Redesign has thoroughly analyzed a
series of business processes to eliminate redundancy and
bureaucracy and to improve efficiency and value added.
Now it is time to redesign the supporting information
system for those redesigned business processes.
Reasons to Create or Modify a
Computerized System
3/22/2024 12:36 AM 57
58. • Unplanned projects
– Triggered by a specific problem, opportunity, or directive
that occurs in the course of doing business.
Reasons to Create or Modify a
Computerized System
3/22/2024 12:36 AM 58
60. • Jamaica Computer Society - JCS
• Institute of Electrical and Electronics Engineers
(IEEE)
• Association for Computing Machinery (ACM)
Professional Bodies
3/22/2024 12:36 AM 60
61. • Follow link below
– http://myjcs.com/
JCS
3/22/2024 12:36 AM 61
62. • The IEEE describes itself as "the world's largest technical
professional society -- promoting the development and application
of electro-technology and allied sciences for the benefit of
humanity, the advancement of the profession, and the well-being
of our members.“
• The IEEE fosters the development of standards that often become
national and international standards.The organization publishes a
number of journals, has many local chapters, and several large
societies in special areas, such as the IEEE Computer Society.
IEEE
3/22/2024 12:36 AM 62
63. • Follow link below to view some of IEEE standards
– https://standards.ieee.org/getieee802/download/802.15.1
-2005_part1.pdf
IEEE Standards
3/22/2024 12:36 AM 63
64. • ACM, the Association for Computing Machinery,
is the world's largest educational and scientific
society, uniting computing educators, researchers
and professionals to inspire dialogue, share
resources and address the field's challenges.
• ACM strengthens the profession's collective voice
through strong leadership, promotion of the highest
standards, and recognition of technical excellence.
ACM
3/22/2024 12:36 AM 64
65. • ACM supports the professional growth of its
members by providing opportunities for life-long
learning, career development, and professional
networking.
http://www.acm.org/about-acm/acm-history
ACM
3/22/2024 12:36 AM 65
66. • Industry standards are a set of criteria within
an industry relating to the standard functioning and
carrying out of operations in their respective fields of
production. In other words it is the generally
accepted requirements followed by the members of
an industry.
Industrial Standards Law & Legal Definition
definitions.uslegal.com/i/industrial-standards/
INDUSTRY STANDARDS
3/22/2024 12:36 AM 66
67. 1. What is the relationship between computing
industry standards and computer professional
bodies?
2. As software developers, what is the importance of
being a member of a professional body such as
IEEE and ACM? What impact should that have on
the software being built? What impact would it
have on the organization as a whole?
ACTIVITY – PROFESSIONAL BODIES
3/22/2024 12:36 AM 67
68. • Write one paragraph each about the following
– ISO
– SWEBOK (Software Engineering Body of Knowledge)
ACTIVITY – PROFESSIONAL BODIES
3/22/2024 12:36 AM 68