CS代考 CMT302 E-commerce & Innovation

CMT302 E-commerce & Innovation
Session 1:
Modern E-Commerce Development
Dr Natasha Edwards Office: C/2.02

Copyright By PowCoder代写 加微信 powcoder

Spring Semester
Happy new year!
What to expect this semester:
• Contact sessions:
– 10:00-17:00onFridaysofWeeks1,4,7,10. – Atypicalsession:
‣ Acombinationoflecture,tutorial/workshopandpracticals ‣ Lunch:13:00-14:10
• Assessment:
– Individualcoursework;50%ofthemodule.
– Moreexplanationonthetask,requirementsandassessment criteria will be given in Week 4.

Spring Semester: Plan
• Sessions 1, 2, 3
– ModernECdevelopment
– Backenddevelopmentfundamentals:design patterns, frameworks (Flask), DBs, Version Control with git
• Session 3
– Strategicandmanagerialaspects,challengesand
– Competitiveadvantage;valuechainand
supply chain management, marketing; CRM
• Session 4
– Launchinge-business:economicsand
justification. Security. Privacy. Legal and ethical.

– (2011). E-Business & E-Commerce Management: Strategy, Implementation And Practice, .
– Efraim Turban et al. (2012). Electronic Commerce 2012: A Managerial And Social Networks Perspective, Pearson.
– . Laudon (2015). E-Commerce : Business, Technology, Society, Pearson.
• Learning Central: lecture slides, supplementary reading, etc.
• Various electronic resources will be offered for specifics topics.

Learning Objectives
• Appreciate and examine the modern web development principles and practices
– the process of building EC websites
– essential/ core and desirable components and functionality
– design patterns and web development frameworks
– Software Configuration Management (SCM); version control and using git
– databases

Building E-Commerce Websites

Assumptions
• You understand/ know about:
‣ The difference between Internet and WWW (in a ‘strict’ sense)
‣ Internet governance
‣ Internet physical infrastructure
‣ Intranets and extranets
‣ Client-server computing
‣ Internet communication concepts and standards » communication protocols: OSI, TCP/IP, AppleTalk, SMB,
» other Internet protocols: http; ftp; ssl; smtp, pop, imap
‣ Domain names, URLs, DNS

Web “Tools”
• Web Servers: responsible for servicing requests for information from Web browsers.
• Web Browsers: application that provides access to a Web server. Consists of an HTML interpreter and a HTTP client. May also support ftp, e-mail.
• CGI: Common Gateway Interface. Interface for invoking programs from Web servers.
• Markup Languages, e.g.
‣ HTML (Hypertext Markup Language). Format for Web pages.
‣ XML (eXtensible Markup Language).
» specialised markup languages (GML, MML, Math XML)
• Other languages, tools and technologies (PHP, Python, JSP, ASP, …)

Building an E-commerce Web Site
Pieces of E-Commerce Building Puzzle
FIGURE 4.1 PIECES OF THE E-COMMERCE SITE-BUILDING PUZZLE
Building an e-commerce Web site requires that you systematically consider the many factors that go into the process.
Organizational Capabilities
Hardware Architecture
Telecommunications
Human Resources
Site Design

Frontend vs vs. Backend development
(Source: www.linkedin.com)

Web Systems development Lifecycle
FIGURE 4.2 WEB SITE SYSTEMS DEVELOPMENT LIFE CYCLE
Systems Analysis/ Planning
Implementation Service
Systems Design
Building the System

Continuous availability 99%+
Design for scalability
Build in management for end-to-end delivery Plan for growth
Design pages for high-speed performance Understand and optimize workload on system
Also, maintenance!
All stages involves changes and it is important to manage these effectively and efficiently

Agile (XP, Scrum, Kanban…)
– https://www.agilealliance.org
– Agile Manifesto: https://agilemanifesto.org
Rational Unified Process (RUP)
Other approaches

W12.30 Part 7: Applications and Site Development
EC Application Development Process
EXHIBIT 12.11 The EC Application Development Process
Project Identification, Justification, and Planning (Step 1)
IT as enabler Identify EC projects From business goals to information needs Justify EC investments System-required functionalities
Need to solve problems
EC Architecture (Step 2)
Information architecture Data architecture Application architecture
Technical architecture Organization architecture Feasibility
Business process restructuring, redesign
EC Infrastructure
Development (Acquisition) Options (Step 3)
How, which methodology What, from whom
What, from whom
Which partner, how to partner
Which one (ones)
Join an exchange, marketplace
Management
Vendor management Project management Evaluation
Business Partners
Business Partners
Testing, Installation, and Integration (Step 4)
Testing, installation, integration, training, security, conversation, deployment, etc.
Business Partners
Operations, Maintenance, and Updating (Step 5)
Operations
Maintenance and updating Replacement
STEP 1: IDENTIFYING, JUSTIFYING, AND PLANNING EC SYSTEMS

EXHIBIT 12.2
The Process of Building a Web Site
Process of Building Website
16 Part 7: Applications and Site Development
1 Select Web Host
Select host or a vendor
(Section 12.4)
2 Domain Name
Get yourself or host will provide
(Section 12.4)
3 Create Content
What will be on the site? Who contributes? Catalog?
(Section 12.5)
4 Web Site Design
Look, colors, typography
(Section 12.6)
6 Advertise
Promote your site, attract visitors
(Section 12.8)
5 Construct Site
Program and test the site, integration
(Section 12.7)
Section 12.3 ◗ REVIEW QUESTIONS
1. Distinguishamonginformational,interactive,transactional,andcollaborativeWebsites. 2. List the six steps in building a Web site.
12.4 WEB SITE HOSTING AND OBTAINING A DOMAIN NAME

02 CHAPTER 4 Building an E-commerce Web Site
Logical Design of a Simple Site
FIGURE 4.3 A LOGICAL AND PHYSICAL DESIGN
Web Site Customer
HTTP request
Verify Login
Accept/ reject visitor
Display Catalog Pages
Purchase Products
Customer information
Customer Database
Order shipped confirmed
Ship Products
Catalog Database
FOR A SIMPLE WEB SITE
Fulfill order
(a) Simple Data Flow Diagram
This data flow diagram describes the flow of information requests and responses for a simple Web site.
T1 Verizon line IBM Web Server Model at 1.54 Mbps 1500 Dual Processor/
Oracle SQL
Order Database

Products Products
(a) Simple Data Flow Diagram
Physical Design of a Simple Site
This data flow diagram describes the flow of information requests and responses for a simple Web site.
T1 Verizon line at 1.54 Mbps
IBM Web Server Model 1500 Dual Processor/ w/100 gigabyte storage
Oracle SQL Database
IBM WebSphere E-Commerce Suite
Ad Server Online Catalog
Mail Server Shopping Cart
YOUR FIRM’S WEB SITE
56K modem DSL Cable T1
(b) Simple Physical Design
A physical design describes the hardware and software needed to realize the logical design.

igates its Web pages to support browsing and searching. Information architecture begins organized, labeled, and
with designing the site’s structure. The most common site structure is hierarchical. navigated to support Exhibit 12.6 shows a typical hierarchical structure for an online store. Most hierarchical browsing and searching
EXHIBIT 12.6 A Simple Hierarchical Web Site Structure
Web sites are built wide and shallow, putting 3 to 10 sections in the second level and lim- throughout the iting most sections to two or three levels. Web site.
Information Architecture of a Simple Site
Members Only
Customer Support
Investor Relations
Product Catalog
My Account
Discussion Forum
Online Manuals
Product #1
Product #2
Product #3
Product #4
Mission and Contact Info
Shipping and Handling

Anatomy of EC System
Discussion
Identify EC system components and functionality that you consider to be:
10 – 15 min: cluster on paper of essential and desirable components and functionality, which your table identifies
essential / core desirable
15 – 20 min: visit other tables
10 – 15 min: class discussion on findings

Anatomy of an EC System

Professional Web Development:
Frameworks

Design patterns
Reusable solutions to a common problem and within a context
– Creational, structural, behavioural, concurrency, architectural, …

Pattern: Model-View-Controller
Model-View-Controller is an extremely common architectural pattern in software engineering.
It describes a way to logically structure an (interactive) application and how to separate the responsibilities and interactions for its parts.
Model: maintains state and notifies views and controllers when change of state occurs.
View(s): request information from the model and present it to
Controller(s): updates the model state in response to the user’s actions, and possibly updates views.

Lego & MVC
controller
responsible for picking up the necessary blocks and organising them as appropriate
Source: https://realpython.com/the-model-view-controller-mvc-paradigm-summarized-with-legos/

Architectural Patterns: MVC
with cleaner code
easier to develop
(modular; team- working)
easier to maintain, scalable
Python, RoR, PHP, etc.

Pattern: Model-View-Controller
Examples of situations that can be modelled by MVC:
Computer games.
Text editors, and countless other GUIs.
Various interactive web sites.
Hardware interfaces
(e.g. nuclear power plant control panel).

Web Frameworks
In software engineering, some problems, scenarios, situations, patterns are frequently recurring.
Express solutions to common problems as libraries.
Reuse code in the future. Do not reinvent the wheel:
Not only to save time, but to avoid poor in-house solutions.
Do not Repeat Yourself (DRY principle).

Web Frameworks
Examples of common problems in web programming: (you may have encountered these already while working on your coursework)
Storing state of a website in a systematic manner Abstracting from the database engine.
Mapping between relational databases and classes/ objects.
Maintaining some business logic (e.g. decrement stock counter when an item is sold).
Presenting data to users according to some business logic.
Reacting to user’s requests/actions, for example to modify the state or present data in a different way.

Web Frameworks
Some more specific examples of patterns in web programming:
Authentication of users Handling sessions Form validation
Taking payments Searching.
URL routing (mapping URL’s to actions). Skinnable HTML interfaces, e.g. via templates.
Caching to reduce server load and increase responsiveness.
. . . and countless more!

Web Frameworks
Web Application Frameworks (or simply “web frameworks”) aim to address the above common problems, patterns, scenarios.
Huge list of existing web frameworks:
http://en.wikipedia.org/wiki/ Comparison_of_web_application_frameworks
Available for many languages. Some popular ones: Ruby on Rails (Ruby)
Django, Flask (Python) weblocks (Lisp)
Various level of abstractness. Some solve specific problems, some are very general.
We will consider Flask

An example Django project
central configuration for a Django project
mapping between URL path expressions to Python functions
(your views)
takes a Web request and returns a Web response

Putting it together
🔍 Analyse 💡Design 🛠 Implement ⚙ Maintain 🚀 Deploy $ Build
all stages involve changes and it is important to manage these effectively and efficiently – configuration management and version control (VC)

Professional Web Development:
Version Control

What is Configuration Management?
Configuration Management is the process of identifying and defining the items in the system, controlling the change of these items throughout their lifecycle, recording and reporting the status of items and change requests, and verifying the completeness and correctness of items.
IEEE Guide to Software Configuration Management 1987. (IEEE/ANSI Standard 1042-1987)

Software Configuration Management (SCM)
is a quality assurance activity that manages change throughout the software process
controls, manages and documents change in software systems
coordinates the creation and release of products to customers

Problems of scale
Development of a large software system:
Involves a large amount of components
Requirements, designs, code modules, test cases, documentation etc.
Complex dependencies between components
Software system undergoes many changes
May involve large teams of developers
Possibly dispersed amongst a number of different sites.
Some of the components may be shared
between developers between systems – reuse

Need for Configuration Management
Number of areas of possible conflict: Simultaneous Update
Two (or more) programmers each take a copy of the same component and make a change
Last copy submitted overwrites changes made previously
Changes to Shared Code
Need to check changes do not conflict with others who use the item
Keeping Variants Consistent
To support different platforms or operating systems

Version Control (VC)
a.k.a. Revision Control, a.k.a. Source Control
is a part of SCM
Management of change:
Track changes, backup and synchronise files
VCS = Version Control System

Why Version Control?
Imagine you are working on a project (coursework) and making lots of revisions.
Or imagine you are working on a project that involves a group of people. Now imagine that several people working on the same document, how do you know who produced/ changed what and what was the latest change?
VC = Time Machine:
Allows you to go back in time to the previous working version
Can be a project’s requirement
In our module -> required to deploy your website
on OpenShift!

Who is it for?
Individuals
Groups (collaboration)
Individual VC
Remote, Distributed VC
Types of Version Control

Version Control Systems (1)
Version Management is a technique that facilitates Change Control
It captures and controls changes to each of the components that make up the system
A new version may be created:
As an initial version when a new component is first created
As a fix for a problem
To add extra functionality
To meet a change in requirements
As a variant e.g. for multiple platform support

Version Control Systems (2)
A repository is used to store components
Developers check out a copy of the component into their workspace
Provide exclusive locking of the component
Or allow changes to be merged
Once the changes are made the component can be checked in to the repository.
Metadata may also be stored:
e.g. the author, the date and a brief description
This builds up a version history for the component

What VCS can do (1)
A versioning system may provide facilities for:
storing and retrieving past versions of components and products (back up and restore)
components (files) synchronisation
short-term and long-term undos
creation of new versions from old
sandbox changes (e.g. by branching and then merging/ rebasing)
checking the differences between two versions of the same component

What VCS can do (2)
A versioning system may provide facilities for:
tracking changes and ownership
automatic management of version identifiers
documentation of change histories
automatic retrieval of all code in a particular release
providing notification of changes

Advantages and Disadvantages
+ Sandbox for everyone
+ Works offline
+ [Fairly] easy
+ Less Management
– Still need backups
– What is the “latest” version?
– No “proper” revision numbers

Repository (repo): The DB to store the files (objects)
Server: to store the repo Client: to connect to the repo
Working set/ working copy: your local directory of files, where you make changes
Trunk/ Main: the primary location for code in the repo. Think of code as a family tree — the trunk is the main line
Global unique identifiers (uses SHA-1). NB: Files with identical content will have the same SHA-1

Working smarter, not harder!
Using Command line
e.g. Windows, see: ‘MS-DOS and command line overview’ -> http://www.computerhope.com/ overview.htm
Documentation on our systems, software, etc: http://docs.cs.cf.ac.uk/
COMSC’s GitLab
https://gitlab.cs.cf.ac.uk/
Basic intro: http://docs.cs.cf.ac.uk/notes/using- gitlab/

Practicals (labs): Notes and Rules
The systems we will use for ALL our labs are School-based ones, e.g.
The School’s GitLab (https://gitlab.cs.cf.ac.uk) -> for working with the remote repository
OpenShift (https://openshift.cs.cf.ac.uk) -> for creating a Flask-based website
Documentation on our systems, software, etc: https://docs.cs.cf.ac.uk/notes/
If you connect to our systems outside of the University network, you need to set up a VPN connection:
See: https://docs.cs.cf.ac.uk/notes/university-vpn/

Practical: git
☞ Reference slides: ☞ Exercises to complete:
☞ Basic intro on COMSC’s GitLab
[CMT302] LAB1 – VC with git – Reference.pdf [CMT302] LAB1 – git – WORKSHEET.pdf
http://docs.cs.cf.ac.uk/notes/using-gitlab/
Git cheat sheets, e.g.:
Google them

Professional Web Development:

Databases are facilities for storage and management of data in a principled manner:
Avoid duplication
Maintain consistency (avoid contradictions)
Maintain integrity (data makes sense, conforms to user-specified constraints) Maintain security:
– Access can be confined to authorised individuals.
– System of privileges for operations on the data.
– Protection against loss and corruption (back-up, roll-back)
Support concurrency (simultaneous manipulation by multiple users)
Maintain the independence of data from the mechanism of queries (abstraction)
For the purposes of this module, we are interested in databases primarily as a way to store and manipulate the state of a dynamic web site in a principled and organised manner.

Database abstraction
ANSI/SPARC three levels of abstraction:

Database abstraction
ANSI/SPARC three levels of abstraction (schemas):
External level (or view level): End-user view of the data. The same data can be regarded from several user/application-dependent perspectives according to its dierent uses.
Conceptual level: The information components. What data entities are stored, what their attributes, and the relations between data.
Internal level: Data types, query methods, record structures, indexing, encryption, compression. . .
Physical level: How the data is stored physically, e.g. media.

Data Architecture
EC System: Back-end Order
Customer DB
Products DB
Shopping Cart / Payment Processing
eCRM System
Inventory Management System
PROFIUS User Profiling System
User Profiling Ontology
User Profiles DB
EC Website GUI
(Front-end)
Why is it important?
manage data across the enterprise
Data Architecture requirements: OS(s)
decision support services legacy systems
new systems
external and internal systems data warehousing

Data Architecture Types
[non-exhaustive list…]:
Business Intelligence Data Architecture CRM Data Architecture
eCommerce Data Architecture

General Approach to Data Architecture
3 Levels of Specification:
Conceptual & Logical Le

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com