Global Technology Solutions
Medici Software
© MEDICI SOFTWARE LTD 2012-2013
Software Ltd
Medici
Medici is an international technology services and consulting company. With a strong background in IT design, development and support for enterprise-level applications, Medici goes above and beyond the highest industry standards. We use cutting-edge technologies and concepts to create strategic advantages for our clients across a number of growing
and competitive markets. As a thriving company with some of the finest
minds in the industry, Medici has the passion and drive to deliver on our clients’ requirements. We are always growing and progressing to ensure we stay ahead of the game.
As consultants in the financial, e-commerce and healthcare sectors, we
prioritize the importance of data protection and strategy ownership. To govern this, we have stringent policies and procedures to protect our clients’ strategies and data.
With years of experience in the industry, Medici provides a full-cycle service, including software and IT consulting, IT design, cloud-based solution implementation, testing, deployment, and other state-of-the-art solutions, including data warehousing and data analytics.
About Medici
Contents
About Medici
Enterprise and Service-Oriented Application (SOA) Development
Strong Object-Oriented Design (OOD) Capabilities Domain-Driven Design (DDD)
Service-Oriented Architecture (SOA)
Agile Project Management Methodology
Medici’s Agile Team Structure
Medici’s Agile and Scrum Methodologies Test-Driven Development (TDD)
Acceptance Test-Driven Development (ATDD)
AI-based Solutions
AI in E-Commerce AI in Credit and Finance AI in Healthcare Education
Big Data Solutions and Infrastructure Cloud-based Solutions
Business Intelligence (BI) and Data Mining Services
Requirements Transformation
Data Mart and Data Warehouse Design Data Visualization
Business and Data Analysis Comprehensive Topic Analysis
Medici Combined Expertise
Finance and Credit Market E-Commerce
Health and Education
Payment Card Industry Data Security Standard (PCI DSS) Our Team P3 P4 P11 P16 P18 P20 P23 P26 P31 P32
Enterprise and Service-Oriented
(SOA) Application Development
How it works?
Typically, an OOD process requires two human roles: a designer and an implementer. The designer takes the product scope and analysis and changes it into a design, while the implementer turns this design into actual code.
At Medici, we have added a third stage to this process, namely the incorporation of an evaluator to assess how both the initial design analysis, and the end solution, meet the design’s initial requirements. The three roles are usually divided amongst different members of our team, but on occasion multiple roles might also be completed by a single team member.
Medici Architecture and OOD
Our designers normally work in the following manner:
• Define objects, and create a class diagram from a conceptual diagram.
• Identify attributes.
• Use design patterns (if applicable): A design pattern is not a finished
design, but is rather a description of a solution to a common problem within a given context.
• Define application framework (if applicable): An application framework usually refers to a set of libraries or classes that are used
to implement the standard structure of an application for a specific
operating system.
• Identify persistent objects/data (if applicable): Identify objects
that have to last longer than a single runtime of the application. • Identify and define remote objects (if applicable).
Strong Object-Oriented Design (OOD) Capabilities
Object-oriented design (OOD) is the process of designing a task to
develop a conceptual model that can then be used to complete the task. The purpose of the design is to facilitate implementation, and there are a variety of desirable characteristics for a design:
• Requirements satisfaction • Maintainability • Partitioning • Adaptability • Scalability • Testability • Increment
Domain-Driven Design (DDD)
Domain-Driven Design (DDD) is a collection of principles and patterns
that help developers to create elegant object systems. If properly applied,
DDD can lead to software abstractions called domain models. These models encapsulate complex business logic, thereby helping close the gap between business and reality.
Medici’s ‘Agile Software Development Methodology’ focuses on the delivery of business values, in a similar way as DDD focuses on the alignment of software systems with business models. In addition, due to the iterative nature of DDD, agile methodologies such as SCRUM and
DSDM result in superior project management frameworks. Together, SCRUM (for project management) and XP (for software development)
methodologies form an optimum combination for managing DDD
implementation projects.
The DDD iteration cycle project management model is shown in Figure
Medici Architecture and DDD.
DDD begins where domain modeling ends. Medici places emphasis on
domain objects rather than on the services in the domain
• Starting with domain entities and domain logic.
• Starting without an initial service layer, and only adding services
where the logic does not belong in any domain entity or value object.
• Using Ubiquitous Language, Design by Contract (DbC), Automated Tests, CI and Refactoring to ensure that implementation is as closely aligned with the domain model as possible.
Medici Architecture and DDD
DDD Architecture
Medici’s typical enterprise application architecture consists of the following four conceptual layers:
• User Interface (Presentation Layer): This layer presents information to the user and interprets user commands.
• Application Layer: This layer coordinates the application activity. It does not contain any business logic or hold the state of business
objects, but can hold the state of an application task's progress.
• Domain Layer: This layer contains information about the business
domain and is where the state of business objects is held. The
persistence of business objects, and possibly their state, is delegated to
the infrastructure layer.
• Infrastructure LayerThis layer acts as a supporting library for all other layers. It provides communication between layers, implements
persistence for business objects, and contains supporting libraries for
Loan Application Architecture Diagram
The architecture with DDD:
Service-Oriented Architecture (SOA)
With Service-Oriented Architecture (SOA), services can be invoked,
published and discovered, and are abstracted away from implementation using a single, standards-based form of interface.
Medici designs principles, standards, and models required to implement and manage the execution of an SOA transformation and enterprise application integration (EAI) for an enterprise.
Design and Development
Medici identifies, builds, and implements services with the supporting
applications’ infrastructure.
Management
Medici maintains, monitors, and administers SOA and integration environments.
Governance
Medici establishes the SOA governance model, as well as the policies, frameworks, processes, roles, and responsibilities essential for an SOA transformation.
Service Lifecycle and SOA Roles
Medici develops applications that are ported to more than one platform.
Medici builds the activity-based business workflow services using the latest
.NET technologies (WCF4.5 and WWF4.5).
.Net, C++, Java and mobile platforms
SOA and Integration Architecture
Agile Project Management Methodology
Medici works in a reliable yet ‘agile’ manner. Using the software development method known as Scrum, we have developed a unique
way of implementing Extreme Programming (XP) methodology, which enables us to be more flexible, more adaptable to change, and easier to work with from a client's perspective. We conduct pair programming
in order to enhance our quality and merge the Kanban system into our
workflow, which makes us lean, efficient and competitive. Our solutions are flexible and can be integrated with existing third party solutions when
necessary.
All of our work is conducted in accordance with Test-Driven
Development (TDD). As a team, we boast extraordinary
Object-Oriented Design (OOD) and Domain-Driven Design (DDD) capabilities. We mainly use .NET, C++, Java and ASP.NET in our daily software developing process. With the integration of Service-Oriented
Architecture (SOA), which improves the development of mobile platform and Multi UI development, Medici encourages the use of a wide range of
tools, including Windows Communication Foundation (WCF), Windows Workflow Foundation (WF), NHibernate and MVC4.
Medici’s Agile Team Structure
Medici’s Agile Team Structure
Medici’s Agile and Scrum Methodologies Test-Driven Development (TDD)
Medici’s Agile and Scrum Methodologies
How it works in Medici?
1. Product Owner creates product backlog, expressed in features and user ‘stories’.
2. Project Team holds Sprint Planning Meetings to pick up user ‘stories’
for further Sprint.
3. Project Team initiates a Sprint.
4. Developers define development tasks from the refined story.
5. Scrum Master hosts a daily scrum meeting to update artifacts, and coordinate routine work.
6. Project Team delivers a Sprint.
7. Project Team holds Review Meetings to review merits and demerits.
8. Project Team begins new Sprint rounds.
Medici Agile Team Structure
Responsibility Overview :
• Product Owner: Create user stories, product backlogs and communicate business priority.
• Architect: Provide the technical direction and help development team to make technical decisions.
• Business Analyst: Create testable specifications and submit
proposal for alternative solutions.
• Quality Assurance: Create test plans, test cases, test scripts and pass them all.
• Lead Developer: Create sprints, tasks and manage the team performance through daily scrum meetings.
• Developer: Adopt TDD methodology in coding and deliver release package to QA for testing;
Test-Driven Development (TDD)
The advantages of TDD include: increased productivity, driving design, continuous refactoring, and more modularized and extensible code.
During routine development, Medici developers constantly test their code using test cases. Our lead developer organizes the daily code review to ensure 100% source code test coverage.
How it works
TDD iteration cycle
Acceptance Test-Driven Development (ATDD)
Stages of the ATDD Cycle in Medici:
• Discuss: In this stage of an ATDD cycle, our agile team along with the business stakeholders gets into a discussion. The team develops a detailed understanding of the behavior of the system from the user point of view in the discussion. And on the basis of the understanding, Medici agile team creates acceptance tests that can be executed either automatically or programmatically.
• Distill: In this stage of an ATDD cycle, the agile tries to implements the acceptance tests in an automatic testing framework. In this stage,
our team ensures that the tests are not just remain specifications but can be actually executed in the project.
• Develop: During this stage, Medici agile team follows a Test First Development (TFD)approach, i.e. we will first execute tests, to find out
what make them fail and then proceed to write the code that will make the tests pass.
• Demo: In this stage of ATDD cycle, our agile team provides a demo to the business stakeholders. In the demo, they can also indicate the
tests they have run and the vulnerabilities they have been identified
through the tests.
AI-based Solutions
In contrast to many other companies in the industry, Medici has a dedicated team focusing on the adoption and deployment of
state-of-the-art artificial intelligence (AI) technologies. These include but are not
limited to knowledge representation, automated reasoning and machine
learning. Here are some examples:
AI in E-Commerce
By using algorithms such as content-based filtering, collaborative
filtering and association rules learning, Medici offers high-performance
hybrid product recommendation software that allows e-commerce
companies to create accurate user-targeted adverts and promotions. The
team also conducts research on knowledge-based filtering with inductive
logic learning, and develops new algorithms to address problems such as cold-start (see below). Medici’s AI team has created several products that are unique to the company, including fashion discovery and
full-configuration recommendation.
AI in Credit and Financ
e
Medici uses AI to construct credit card fraud detection systems based on dynamic machine learning techniques. These integrate recent advances
in artificial neural networks, Bayesian models and time series analyses. The system adopts real-time customer behavior profiling and adaptive
real-time fraudulent pattern detection to forecast a user’s credit risk.
AI in Healthcare Education
Our products use AI to turn the knowledge of medical professionals into
data, allowing for the creation of domain-specific expert enquiry systems.
These can be used to perform deducted inference and answer queries. When abductive inference algorithms are applied to these, they can be
used to carry out efficient, accurate medical diagnoses. Medici combines
these tools with intelligent chat-bot technologies to create fun and effective educational software for hospitals.
In order to integrate the latest advancements in various AI techniques,
and to customize our solutions to our clients’ specific requirements,
Medici has also developed and maintained a proprietary AI library that
consists of the efficient implementation of a wide range of automated
reasoning, machine learning and data mining algorithms. Some of
these make use of the Hadoop framework to improve scalability and are
therefore suitable for dealing with Big Data.
Medici ai based solution framework
Probabilistic& Statistical
Optimization Calculus of Variance Others Speech Recognition Computer Vision Image Processing Expert
System RecommendationSystem
Machine Learning Natural Language Processing Knowledge
Representation AutomatedReasoning others Data Mining
Stochastic
Process Differential Equation Parallel Computing ProgrammingLanguage Big Data
Architecture Others Financial
Planning Medical Diagnosis Others
Text Analysis
Big Data Solutions and Infrastructure
What’s Big data
Big Data is the term for a collection of data sets so large and complex
that they become difficult to process by database management tools or
traditional data processing applications.
Challenges of Big Data
Big Data is growing exponentially. With the rapid development of mobile devices and the increasing use in the Internet, the amount of data produced in the past 3 years has reached record highs and will only increase in the future. Without the right tools and architectures to deal with all that information, Big Data can become a big challenge. Companies will need to learn to manage this data – i.e., capture, sort, process and recall it – if they are to thrive.
78% CAGR 2011-2016
Exabytes per Month
12 6 0 10.8 EB per month 6.9EB per month 4.2EB per month 2.4EB per month 1.3EB per month 0.6EB per month
Big Data Solution
Traditional RDBMS process skills cannot handle Big Data effectively, and therefore new tools are urgently needed to resolve the challenges of its management.
Medici employs various tools (including Hive, MPP database and ETL) and
provides sophisticated Big Data solutions (including infrastructure construction,
data model design, ETL processing and analysis methodologies). Furthermore,
Medici combines cutting-edge AI technology into Big Data solutions to help its clients extract value from their business data.
The illustration above demonstrates how all kinds of data, including structured,
unstructured & semi-structured, are loaded into a Hadoop cluster at a high speed.
When this data is loaded, Medici uses Map-Reduce/Storm to transfer the data. A
part of this transferred data is then loaded into an MPP database (such as Vertica,
Redshift or Greenplum), while another part of this data is loaded into our own AI
module. By using AI applications such as collaborative filtering and the parallel computing capabilities of Hadoop, our own AI module can access the data stored in Hadoop and compute much faster than a regular database. This AI module can
then be managed by schedule tools.
Cloud-based Solutions
Medici has rich experience in providing solutions based on well-known public/private cloud platforms such as AWS and Windows Azure.
How Medici can help you:
Security
Security has been the biggest issue since the cloud first came out.
Medici has an expert team focused on security issues regarding the cloud. We provide professional consulting services and deliver cloud security solutions that can meet PCI DSS and other compliance of equal importance.
Design, Deployment & Maintenance
Medici uses the cloud for its own infrastructure and has also delivered
cloud solutions to many clients. Our team employs experts in fields
including cloud computing, networking, operating systems and
databases. All our experts hold relevant certifications, such as CCIE and AWS Certified Solutions Architect. Our experienced and skilled team of
professionals can help you design, deploy and maintain an effective and
reliable cloud environment. Cloud based BI solution
Benefits of Medici’s Cloud-based Solutions:
• Cost saving
• Excellent flexibility
• Easy deployment & maintenance • Great mobility
Integrated Solutions
With all the benefits that the cloud can provide, Medici can help you
make the best of it by integrating your applications, services and data into your cloud environment, providing cloud-based solutions like data mining, data warehousing and web servicing.
Cloud based Credit Card Application System
Business Intelligence (BI) and Data
Mining Services
Going beyond General Data Statistics, Business Reporting and Key Performance Indicators (KPIs) Analysis, Medici supports its clients to make accurate decisions and gain deep insights through data mining, supported by topic-organized graphic representations. Moreover, Medici, as an information consultancy, provides related services
including: requirements transformation; data mart and data warehouse design; business and data analysis; and comprehensive topic analyses.
Requirements Transformation
Data Visualization and Data Support form the cornerstones of BI
application and data mining in Big Data and enterprise management. Medici helps clients to collect, analyze and transform data visualization and data support requirements into technical requirements, and to optimize and model business processes using far-reaching business knowledge and experience. In addition, Medici also helps clients to standardize Master Data Management (MDM) and KPI settings, and
to define and prioritize topics and solutions, such as the following
e-commerce topics:
• Customer distribution and behaviour • Catalogue and SKU merchandise amounts • Supplier devotion
• Amount of orders and cost of goods sold • Warehouse quality
• Logistics quality
Through Data Visualization, Medici helps its clients extract not just information from any given data, but usable intelligence. Data Visualization helps clients better understand their business, identify areas that require attention or improvement, make timely adjustments,
and create improved business forecasts.
Data Visualization is particularly useful for the sectors of a company
that rely on information, including: manufacturing; security; human
resources; finance departments; purchasing; sales; and warehouses.
Business and Data Analysis
At Medici, we understand that for some clients, even data presented
graphically through Data Visualization requires further interpretation. Medici’s consultants are experts in the fields of data mining, data mart
strategies and visualized historical data collection, and have knowledge of a broad spectrum of business sectors. Medici’s consultants are able to guide companies through business and data analysis, allowing them to gain real insights into their data.
Comprehensive Topic Analysis
By combining various BI and data mining services (such as data collection, data analysis, and data visualization), Medici can provide solutions to comprehensive and specialized market issues. These issues fall partly (but are not limited to) under the business requirements below:
• Standards establishment • Target value setting • Sales forecasting
• Infectious model establishment • Life quality marked of seniors • New financial products R&D
• New drugs evaluation
Data Mart and Data Warehouse Design
Standard data marts and well-designed data warehouses can simplify BI and data mining. Medici assists its customers in building cloud-based data warehouses and also guiding them through the processes of: data extraction transformation and loading (ETL); data cleaning and data modelization; and the implementation of data mart and data warehouse solutions.
Data Visualization
Quality Data Visualization helps decision makers at all levels of a company
Medici Combined Expertise
The combined expertise of Enterprise Applications Development, AI Algorithm Generation, Big Data and the Cloud computing gives us the ability to create specialized solutions and products for organisations in various industries. Below are some of the products and markets that we are in active production for:
Credit Card Payment
Our innovative payment execution process allows for payment to be processed through a variety of channels (UI and SSIS for example) and on variable schedules. The system generates the payments automatically, with reattempts made even if there are failures due to unknown
exceptions (i.e., communication error or insufficient balance). This
allows for a very high payment success rate.
Finance and Credit Market
Medici offers a full cycle of financial service for an UK credit card
company from credit card application to credit card cancellation.
Here are two examples explaining how Medici operates in credit card
application and payment stages.
Credit Card Application
Nowadays, potential credit card applicants can access internet anywhere and anytime using either computers or mobile phones. When an
application is submitted through any of those devices, Medici financial service validates the application by communicating with the specified
decision metric service and payment service processor. If the application is accepted, we will synchronically replicate the complete data to the business owner’s data center.
E-Commerce
Hybrid Recommendation System
Traditional product recommendation systems are mainly based on
collaborative filtering (CF) algorithms, which often suffer from a major problem known as cold-start. Essentially, if a customer has
not used a system before, the system is unable to create an accurate
recommendation. For the retail market, Medici has created a hybrid recommendation system by integrating CF with knowledge-based
approaches, which utilize AI techniques such as knowledge engineering and machine learning to extract relationships and constraints between products and users from multi-source data. The resulting system addresses the cold-start problem and provides highly personalized, diverse and accurate recommendations for different customers of online shops.
Business Intelligence Dashboard
The Medici Business intelligence (BI) dashboard is a data visualization tool that displays the current status of metrics and key performance indicators (KPIs), and consolidates and arranges numbers and metrics
on a set of organized screens. The dashboard can be tailored for specific
topics targeted for a single viewer or department. The essential features of the dashboard include a customized interface and the ability to pull real-time data from multiple sources. The dashboard helps our clients
to obtain valuable, real-time insights that drive smarter, more profitable
business decisions. Medici RS 用户群的行为和偏好 Customer A ... Expert Knowledge Artificial Intelligence Knowledge Models Product Features User Behaviors Recent Browse Recent Purchase Score Others Page Stay Time Vote Collect Customer B Customer C Customer D
Health and Education
The Medici Health Education System helps monitor and improve the
on-going professional and academic studies that medical practitioners are now required to undertake. The specially designed courseware in the system records a user’s studying process, delivers examinations and allows users to move up the ‘levels’ in the courses accordingly. The purpose of the system is not only to help monitor their professional development, but to help motivate medical professionals to keep pace with the latest medical skills, techniques and theory.
Learning Management System:
Used to deliver, track and manage training and education. This includes: tracking attendance; the time taken to complete given tasks; and the improvement over time of individual students.
Learning Content Management system:
Software for author content (courses, reusable content objects).
Electronic Performance Support System:
A computer-based system that improves employees’ productivity by
providing on-the-job access by integrating information, advice and
Payment Card Industry Data
Security Standard (PCI DSS)
E-Learning meets AI
Online Q&A system: Can be used to query the symptoms of a certain disease and identify its treatment by deductive reasoning.
Automated Performance Evaluation System: Automatically
generates a specific evaluation module for each doctor by gathering the
professional knowledge of different departments in a hospital through AI techniques.
Chat-bot: This technology provides a fun, interactive way of communicating and learning. It can be combined with
other AI modules to create an online Q&A or expert
system. Over time, by recording and analyzing learners'
behavior, the system can identify the most frequently asked questions and optimize the entire system
accordingly.
Medici has achieved PCI DSS Compliance Certification. PCI DSS has been applied to our cardholder data environment (Amazon VPC).
The Payment Card Industry Data Security Standard (PCI DSS) is a widely accepted set of policies and procedures intended to optimize the security of credit, debit and cash card transactions and protect cardholders
against misuse of their personal information. PCI DSS is the standard that all organizations, including online retailers, have to follow when storing, processing and sending their customer credit card data.
To become PCI compliant, the company must use a firewall between the
wireless network and their cardholder data environment, using the latest security and authentication (such as WPA/WPA2), and changing default settings for privacy lock cables and network intrusion detection systems.
The PCI DSS standard consists of the following 6 requirements for security best practices:
• Build and Maintain Secure Network • Protect Cardholder Data
• Maintain a Vulnerability
Management Program
• Implement Strong Access Control Measures
• Regularly Monitor and Test Networks
• Maintaining Information Security Policy
Our Team
Our team represents a dynamic fusion of experienced software professionals and industry experts. All were selected for their unique capabilities to ensure that our company provides the highest standard solutions to its clients throughout various industries.
Key Members
Emanuel KuceRadis (ceo)
With more than 16 years’ experience in software architecture and implementation at enterprise level, Emanuel has the vision to create
efficient, cutting-edge and cost-effective technologies, providing a high
quality service comparable to the larger industry players, such as IBM.
He is an expert in the creation and management of offshore teams and
companies, with agile technology development experience in China, Switzerland, the UK, India, Poland and the Philippines. Through the founding of Medici Software, Emanuel has realized his vision by engaging industry experts from around the world at affordable rates, accessing talent pools such as China, and creating partnerships with academics from leading institutions like Imperial College.
Leslie Ashman (Senior Architecture & Offshore Manager)
Leslie boasts a strong academic background, with an MBA in Strategic
Management, BSc in Software Engineering, GDFE (Graduate Diploma in Financial Engineering) and qn MCPD (Microsoft Certified Professional Developer) certification. He is also a skilled manager and leader,
and is particularly talented in communicating and managing clients’ requirements and expectations. Leslie role is primarily to provide professional technical guidance and support to Medici’s clients during their engagement with the company.
Dr. Jiefei Ma (AI Director)
Jiefei Ma received his MEng in Artificial Intelligence in 2007 and his PhD in Distributed Artificial Intelligence in 2011 from the Department of Computing at Imperial College London. He specializes in symbolic AI,
including knowledge representation and automated reasoning, and also
has expertise in machine learning and data mining. His previous and ongoing research projects (funded by the EU, UK and US governments)
include the application of AI techniques in security policy analysis
for system and network management, verification and execution of
declarative network protocols, and privacy data protection in adaptive
systems. Having worked within an academic environment for many
years, he is passionate about collaborating with industrial partners with the aim of translating state-of-the-art AI technologies into real-world products.
Michael Chen (Data Scientist)
Michael has worked as a data warehouse expert in several major companies, including IBM, Teradata and Vipshop (the 5th largest
e-commerce company in China). He is an expert in business intelligence, data warehouse project construction, data mining, data analysis and
product recommendation systems.
Lemo Wang (System Architecture Design)
Lemo has worked for over 9 years in software development across several different industries, including healthcare, electric power, construction
(BIM) and finance. He has a comprehensive and profound knowledge of Object-Oriented Design, Multi-Tiered Frameworks, SOA design patterns and various cutting-edge Microsoft technologies. He is passionate about
pushing the limits of Microsoft technologies to help our clients achieve their goals. Lemo leads the architect group in the agile design and development environment.