SWCON201
Opensource & Software
Development Methods and Tools
Department of
Software Convergence
Contents
Agenda
Class
Summary
Reference
KYUNG HEE UNIVERSITY 2
Problem Resolving in SWCON
KYUNG HEE UNIVERSITY 3
Problem Definition (software layer)
System software
Application software
KYUNG HEE UNIVERSITY 4
System software vs Application software
KYUNG HEE UNIVERSITY Reference: [Link] 5
System software vs Application software
KYUNG HEE UNIVERSITY Reference: [Link] 6
Problem Definition (purpose)
Purely your own purpose
Based on other person’s request
KYUNG HEE UNIVERSITY 7
Customer Requirement Analysis
KYUNG HEE UNIVERSITY Reference: [Link] 8
Customer Requirement Analysis
KYUNG HEE UNIVERSITY Reference: [Link] 9
Problem Definition (legacy)
From scratch
Based on existing platform(s)
KYUNG HEE UNIVERSITY 10
Reverse Engineering (Reengineering)
KYUNG HEE UNIVERSITY Reference: [Link] 11
Software Reuse
KYUNG HEE UNIVERSITY Reference: [Link] 12
Design Patterns
KYUNG HEE UNIVERSITY Reference: [Link] 13
Refactoring
KYUNG HEE UNIVERSITY Reference: [Link] 14
Refactoring
KYUNG HEE UNIVERSITY Reference: [Link] 15
Problem Definition (project characteristics)
Due (Service deployment date)
Performance (Capacity, Response Time, etc.)
Resource (Number of developers, Developer skill, Money, etc)
KYUNG HEE UNIVERSITY 16
Performance indicator (or KPI)
A performance indicator or key performance indicator (KPI) is a
type of performance measurement.
KPIs evaluate the success of an organization or of a particular
activity (such as projects, programs, products and other initiatives)
in which it engages.
KPIs provides a focus for strategic and operational improvement,
create an analytical basis for decision making and help focus
attention on what matters most.
KYUNG HEE UNIVERSITY Reference: [Link] 17
KPI example
KYUNG HEE UNIVERSITY Reference: [Link] 18
KPI example
KYUNG HEE UNIVERSITY Reference: [Link] 19
Problem Definition (hardware dependency)
Hardware dependent
Hardware in-dependent
KYUNG HEE UNIVERSITY 20
Hardware dependent problem
Case Study
Arduino (ATmega, C, Sketch IDE)
RaspberryPi (ARM Processor, GPIO, USB)
CUDA (NVIDIA GPU, C/C++/Fortran)
KYUNG HEE UNIVERSITY 21
Hardware independent problem
Case Study: Web server development
C++ & Proxygen
Python & Django
Javascript & [Link]
Apache/Nginx (tools, non-programming)
Generally, KPI (Key Performance Index) is considered, such as:
Due (Service deployment date)
Performance (Capacity, Response Time, etc)
Resource (Number of developers, Developer skill, Money, etc)
KYUNG HEE UNIVERSITY 22
Case Study: Web server development
C++ & Proxygen
KYUNG HEE UNIVERSITY Reference: [Link] 23
Case Study: Web server development
Python & Django
KYUNG HEE UNIVERSITY 24
Case Study: Web server development
Javascript & [Link]
KYUNG HEE UNIVERSITY 25
Case Study: Web server development
Apache/Nginx (tools, non-programming)
KYUNG HEE UNIVERSITY 26
Hardware independent problem
Case Study: Web server development
C++ & Proxygen
Python & Django
Javascript & [Link]
Apache/Nginx (tools, non-programming)
Due (Service deployment date)
Performance (Capacity, Response Time, etc)
Resource (Number of developers, Developer skill, Money, etc)
KYUNG HEE UNIVERSITY 27
Consideration on performance (time)
KYUNG HEE UNIVERSITY Reference: [Link] 28
Consideration on performance (time)
KYUNG HEE UNIVERSITY Reference: [Link] 29
Consideration on performance (time)
KYUNG HEE UNIVERSITY Reference: [Link] 30
Consideration on performance (overall)
KYUNG HEE UNIVERSITY Reference: [Link] 31
Consideration on performance (http capacity)
KYUNG HEE UNIVERSITY Reference: [Link] 32
Consideration on performance (http capacity)
KYUNG HEE UNIVERSITY Reference: [Link] 33
Consideration on performance (http capacity)
KYUNG HEE UNIVERSITY Reference: [Link] 34
Hardware independent problem
Case Study: Mobile application development
Native platform (iOS, Android)
Cross platform (HTML/CSS/JavaScript, Dart/Flutter)
KYUNG HEE UNIVERSITY 35
Case Study: Mobile application development
Native platform (iOS, Android)
KYUNG HEE UNIVERSITY 36
Case Study: Mobile application development
Cross platform (HTML/CSS/JavaScript)
KYUNG HEE UNIVERSITY 37
Case Study: Mobile application development
Cross platform (Dart/Flutter)
KYUNG HEE UNIVERSITY 38
Consideration on coverage
KYUNG HEE UNIVERSITY Reference: [Link] 39
Consideration on general criteria
KYUNG HEE UNIVERSITY Reference: [Link] 40
Consideration on platform
KYUNG HEE UNIVERSITY Reference:[Link] 41
Consideration on platform
KYUNG HEE UNIVERSITY Reference: [Link] 42
Consideration on platform
KYUNG HEE UNIVERSITY Reference: [Link] 43
Consideration on platform
KYUNG HEE UNIVERSITY Reference: [Link] 44
Consideration on platform
KYUNG HEE UNIVERSITY Reference: [Link] 45
Consideration on performance (time)
KYUNG HEE UNIVERSITY Reference: [Link] 46
Consideration on resource
KYUNG HEE UNIVERSITY Reference: [Link] 47
Consideration on coverage
KYUNG HEE UNIVERSITY Reference: [Link] 48
Consideration on coverage
KYUNG HEE UNIVERSITY Reference: [Link] 49
Consideration on coverage
KYUNG HEE UNIVERSITY Reference: [Link] 50
Consideration on performance (time)
KYUNG HEE UNIVERSITY Reference: [Link] 51
Consideration on performance (time)
KYUNG HEE UNIVERSITY Reference: [Link] 52
Consideration on performance (time)
KYUNG HEE UNIVERSITY Reference: [Link] 53
Consideration on performance (time)
KYUNG HEE UNIVERSITY Reference: [Link] 54
Summary
Define your problem.
Hardware dependent
Hardware in-dependent
Define your approach:
From the scratch [making new software]
Evolving conventional software
Define your KPIs (Key Performance Indexes):
Due
Performance
Cost
Man-power
KYUNG HEE UNIVERSITY 55
Reference
Dart & Flutter official sites
KYUNG HEE UNIVERSITY 56