Anda di halaman 1dari 3

Open Oriented Analysis and Design - Product, hasil - Buat sprint dg

yang akan digunakan oleh user menerapkan Gaussian/norma atau burn


Fase OOAD - UI, fokus down model
kepada bagaimana seluruh tampilan sebuah - Buat pada sprint
produk dilihat dan ditata dari antarmuka 1 lebih besar/banyak
pengguna, UI desainer mendesain berbagai
macam tampilan untuk berbagai ukuran laya CODES DEVELOPMENT (SOFTWARE
Important things OOAD - UX, fokus CONSTRUCTION)
1. Shared Vision (Similarity of bagaimana merasakan pengalaman dari 1. Previous Activities
understanding) berkomunikasi dengan sebuah produk dilihat dari antarmuka - Requirement Gathering
customer melalui pembuatan konsep pengguna. UX desainer harus - Proposing User Interface
2. Concept by modeling mengeksplorasi lebih dalam bagaimana 2. Presentation Idea
(Communication)- komunikasi antara memecahkan masalah spesifik seorang - Give the user alternative
developer dan customer pengguna - Give a good and cool name
a. POC (Proof of Concept)-
- Giving an example based on previous ap
berisi aspek technical
- High level prototype is recomende
- Horizontal
- One UI One Slide
prototype, hanya focus pada satu layer,
- Physical demonstration is better
Sangat luas, mengerjakan sebagian besar
- One speaker for pitching
interface, tetapi tidak mendalam
Before do the Code
- Mencakup seluruh antarmuka pengguna
The Requirements
namun tanpa fungsi pokok, berupa
Proposed UI Design, memilih - What we need to build
simulasi dan belum dapat digunakan
1. Software Estimatin & - What constraint that we have
untuk melakukan pekerjaan yang
planning (project management plan) The Analysis
sesungguhnya
2. Software Architecture - How the business works
- Misal, pengguna dapat mengeksekusi
(software design) - How the solution will help to solve the
seluruh navigasi dan perintah pencarian,
3. Software construction problems
tapi tanpa memanggil informasi real.
(coding) The Architecture
- Mengurangi level fungsionalitas, tetapi
4. MVC, MVP - How the solution is deployed
semua fitur ada.
Building good UX App - How the solution is composed
- Vertical
1. Creating Information - How the solution is look and feel
prototype, hanya berisi beberapa fitur,
Architecture Codes Development Required Skills
Lebih sedikit aspek atau fitur dari
- Requirement - Software Architecture
interface yang disimulasikan, tetapi
engineering, designing process, planning - Development Infrastucture
dilaksanakan dengan rincian yang sangat
content (pages, navigation, structures. - Estimation Technique
baik
Search experience) - Developer Guidences
- Mengandung fungsi yang detail tapi
2. Creating proposed user Typical Architecture
hanya untuk beberapa fitur terpilih, dan
interface Program Organization
tidak pada keseluruhan sistem
Pencils, wireframe (low level prototype), Contoh Tier Architecture physically separated
- Misalnya dalam sistem informasi
prototype (high level), user interface test. One tier : Desktop
penerbangan, pengguna dapat mengakses
3. Creating better UI Two tiers : Client Server
suatu basisdata dengan data real dari
- Hack Vision : Three tiers : client server databased (as long
penyedia informasi, tetapi tidak untuk
menggunakan low brain activity in term of as) different physical
keseluruhan data
user vision. (whitespace, grouping Major Classess
- Mempunyai performans lebih rendah
information, set alignment, attention, Contoh Layered Architecture logically separated
dibanding sistem final
chhosing color) Misalnya : CodeIgniter MVC (Model View
- Tidak dalam jaringan
- Mind vision: Controler) : logically separated model, view,
b. Mockup, contoh balsamiq
low brain activity in term of user mind controller but ist totally integrated as one soution
Steps on OOAD
(leading information( instructional text, Data Design
1. Conventional OOAD
onboarding overlay, wizard), recall vs Contohnya Data Driven Architecture
- Use Case, daftar
recognition, progressive(only show what Business Rules
aksi atau langkah, mendefinisikan interaksi
they need to see)) Contoh Service Oriented Architecture, ex :
antar peran/actor
Method driven: rally, enterprise agile -> project currency converter service, credit card validation :
1. Cite
management for software a software that acts as services, digunakan ada
level/ business use case
ALM: App Lifecycle management, when software aplikasi yang akan menggunakan service tsb.
2. Sea
die UI Design
level/ technical use case
SDLC -> when software finish Contohya :MVC, MVVM MVP
- Domain model,
Demo, using microsearch visualstudio Data Driven Architecture
representasi visual dari situasi real objek di
1. Create project Really Enterprise Agile : Project Management for
domain
2. Create sone features come from user software
- Interaction
requirement document ALM (App Lidecycle MAnagement) when
model, diagram interaksi untuk
3. Create backlog item (product) software die
menggambarkan bagaimana objek
- In CMMI, SDLC when software finish
berinteraksi via pesan
backlog item=use case Development Infrastructures
- Class diagram/
- In Agile, Source Code Versioning (SVN, TFS, GIT)
deployement diagram, menggambarkan
backlog item = user story Project Management Portal (TFS,
class, interfaces, dan asosiasinya
- In Scrum, VersionOne, Rally, TeamPulse)
2. Agile OOAD
format backlog item = as a I want to Integrated Development Environment (Visual
- Identify the
4. Create task features and Studio, Net Beans, Eclipse)
actors, using persona (sction and behavior)-
backlog items (link between features and ALM Solutions (MS-ALM, CLM)
alice is a researcher
backlog items Collaboration and Communication Portal
- User story
- Membuat (Office 365, Google Apps, Cisco WebEx)
(backlog), mendeskripsikan kebutuhan
deskripsi tugas Development Server
pengguna dalam bentuk kaliman sehari hari,
- Assign team Ideal way to estimate
misal I want to (action) so that (benefit).
- Give a Estimating by the team
Usage scenario, terdiri dari user story
priority( by user/stakeholder): higher Estimation should be done by the team
description (business process/rules of user
number, higher priority who will do the job
story) yang berfungsi untuk
- Give an Using Historical Analysis
mendeskripsikan secara detail langkah
effort(by team): in agile: story point, using Past performance for future prediction
menggunakan sw dan user story acceptance
fibonaci Estimation Techniques
(measuring factor of user story)
- Give business Specific and Scientific Technique, i.e.
- Tasks,
value (by stakeholder): berapa banyak the LOC, COCOMO, Function Points, etc
converting and splitting user story ke dalam
task memberi pengaruh bisnis Estimate Influence (McConnell, 2006)
tugas ril dan teknikal, misal a mengerjakan
5. Create sprint, disebut juga Project Size (LOC, FP)
tugas a
iteration Kind of Software Being Developed
Personnel Factor
User Experience Programming Language
Estimation after Requirements Engineering fungsional sistem. Test dilakukan oleh
inside a method variable untu
Formal Process pengembang dan hasil akan dinilai oleh pengguna. (except for cycle satu value
- Using Software Metrics (Use Case 2) Exploratory, free roam testing variables).
Points) b. Automatic: testing dilakukan menggunakan
- Project Management Approaches software untuk menguji code. class Report { class Report {
(Resources, Budget and Time) 1) Unit test, fokus pada procedure dan function. //... //...
Agile Process Done by dev Mov void sendReport() void
Using user story estimation 2) Integration testing pengujian beberapa fitur. ing { sendReport() {
Software Project Estimation Dilakukan oleh tester dan user. Feat Date nextDay = Date newStart
1. User story : count adjusted user story point 6. Testing Scenario. ures new =
betw Date(previousEnd. nextDay(previo
2. Software complexity : using technical 7. Type of software testing:
een getYear(), usEnd);
complexity factor a. Regression testing, Any changes are made, the //...
3. Project risk : using experience complexity application should be evaluated through Obje }
factor (how the project can solve) regression test. cts previousEnd.getMo private static
4. Main days effort b. Usability testing, is to validate the user nth(), Date
previousEnd.getDat nextDay(Date
5. Man Day Investment experience. e() + 1);
Tester tidak bisa develop karena jika tester c. Localization testing, Focuses on UI and others arg) {
//... return new
mendevelptdk ada independent person yg bs area (daylight, region, time). } Date(arg.getYea
melakukan test. d. Load/stress testing, Pushes a system functional } r(),
Coding Standard limits, multiple users. //A utility arg.getMonth(),
Code Comment : XML, Inline comment e. Performance testing, Measure the arg.getDate() +
Coding Conventions: Camel case, Pascal responsiveness, speed, resources allocation. class does 1);
case, Hungarian case f. Sequrity testing, Validates an application not contain }
Developer Notes: developer flag i.e. TODO, security. }
the method
NODO, HACK 8. Tahapan melakukan software testing //Add the
Build Notes Creating test case based on user requirements > that you
method
- Readme Choosing testing strategy (FDD/TDD) > Creating need and
- Refactoring a test plan > Adding Additional Testing as to a
you cannot
- Batchscript needed> Creating test report. client
Development Practices Code Improvement add the
class and
Development process 1. Refactoring adalah improving the codes. Code is method to
- Featured-Driven Development alive, sometimes need to change. Refactor tidak pass an
the class.
- Test-Driven Development berarti merubah secara keseluruhan fungsi. object of
- Behavior-Driven Development Contoh: merubah dari IF-ELSE to SWITCH,
Development perubahan tidak mempengaruhi design. the utility
management 1. Refactoring reason: class to it
- Pair Programming a. Code constantly changes and its quality as an
- Parallel mode constantly degrades (unless refactored)
Technology Wave Adoption b. Requirement change dan codes need to change. argument
Types of Application 2. When to refactor: .
The use of Application Server a. Bad smell code. Diketahui setelah melakukan
Application Library regression testing Orga public double public double
Messaging Concept b. After fixing bugs nizin getPayAmount() { getPayAmount
Data Storage c. Review other codes g double result; () {
5 Practical steps to build codes d. Test driven development Data
if (isDead){ if (isDead){
Work Units / Decomposition 3. Cara mengidentifikasi bad smell code (bad smell result = return
Identify Module Responsibilities adalah indicator bahwa code harus di refactoring) deadAmount(); deadAmount();
} }
Analyze Depedencies and Critical Paths of a. Bloaters adalah code, method, kelas yang
else { if (isSeparated)
Development mengalami penambahan proporsi sehingga sulit if (isSeparated){ {
Build the codes ditangani. result return
Test the codes (Unit Test) b. Obfuscator codes yang tidak punya meaning. = separatedAmou
Code development is the key of software c. OO abuser All these smells are incomplete or separatedAmount() nt();
development activity incorrect application of object-oriented ; }
Programmer should considers to build programming principles. } if (isRetired){
else { return
developer log book that covers d. Change preventers class yang berelasi dengan
if retiredAmount()
- Common Patterns of Software Architecture kelas lain, apabila hendak merubah codes, maka (isRetired){ ;
- Common way to estimate the software harus dirubah keseluruhan. result }
- Development Guidences e. Dispensable something yang apabila dihapus = retiredAmount(); return
tidak berpengaruh. Contoh: comment } normalPayAmo
f. Couplers kesalahan menempatkan method else{ unt();
Software Testing result }
1. Soft. Testing reason dalam sebuah kelas.
= // list
a. Implisit, is to eliminate risk: cost, time 4. Refactoring types: Data level, Statement level,
normalPayAmount( conditional satu
delivery, tco (Modal+ keeuntungan) Method level, Class level, Interface level, ); persatu
b. Eksplisit, adalah untuk memvalidasi Solution level. }
requirement, baik functional (requirement) 5. Good codes principle: }
maupun non-functional (sequrity and - Dont repeat yourself (DRY) }
- Keep it simple smart (KISS) return result;
performance). } // terdapat
2. Software testing stakeholder: Tester, user, - Make it expressive (use comment)
sejumalah nested
developer. - Reduce overall codes
conditional
3. Testing apabila dilakukan oleh ketiga stakeholder - More code= more bugs
dikhawatirkan bersifat subjektif apabila dilakukan - Appropriate level of abstraction (remove
oleh ke3 stake holder. Sebaiknya digunakan unnecessary things on tabel).
Code Management
Performance metrics: time to solve a task on a 6. Refactoring technique:
Common Approaches
software. Reliability metrics : defect density problem solution - Code frst (chaos method)
(number bugs divided by the loc)
- Architecture first (model driven)
4. Testing based on point of view:
a. Blackbox, adalah testing without knowing the double temp = 2 * final double Tier architecture model
(height + width); perimeter = 2 * Layered architecture
codes. Stakeholder yang terlibat: User dan tester Com System.out.println( (height +
b. Whitebox, adalah testing doing by codes. posi temp); width);
Software arch : MNV, MCV,
Stakeholder yang terlibat: Programmer ng temp = height * System.out.print MVP
5. Testing execution model meth width; ln(perimeter); - Project management first (method driven)
a. Manual: testing dilakukan dengan membuat ods. System.out.println( final double
Activity on Codes Management
test case dan dilakukan secara bertahap. Manual temp); //You have a area = height *
local variable that width; - Feature
testing is Fast to execute, Easy to do, Ambiguity
on testing result. is used to store System.out.print - Product Backlogs/ Use Case/ User Story
various ln(area); - Priority (stakeholder), effort (tram),
1) Acceptance test, Menguji apakah sistem sudah intermediate values //gunakan satu
sesuai dengan apa yg ada didalam spesifikasi business value (stakeholder)
- Iteration/Sprints/Milestone Project Risk 2. Note story point in totals
- Assigning use story/backlog/use case to Man-days effort 3. Map the dependency
iteration/milestone/sprints Man-days investment 4. Dependendant : banyknya
Assigning based on user load Development Environment modul yg bergantung ke modul tsb. (paling
Normalization/gauss - Source code versioning bnyk, must develop first)
Burn down model - IDE Dependency : bergantung ke banyk modul apa
Sorting the features based on - ALM, etc saja (paling bnyk, lastdevelop)
dependency and dependant Dependencies Analysis If dpends = 0, bs didevelop terpisah
- Measuring Software Estimation To know what feature that must be built first
Software complexity 1. List feature