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