0% found this document useful (0 votes)
7 views57 pages

LectureNote 02 Problem Definition

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)
7 views57 pages

LectureNote 02 Problem Definition

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

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

You might also like