Rabu, 11 Desember 2013

SOFTWARE PROSES

Software Process :


Software : Perangkat lunak yang berfungsi membanti brainware menjalankan fungsi hardware.

 

Proses : Suatu urutan dalam menjalankan sesuatu baik yang terjadi secara alami ataupun yang sudah direncanakan.

 

Software Process : Urutan yang sudah direncanakan yang bertujuan untuk membuat sebuah software ataupun mengevaluasinya.

http://tmm999.blogspot.com/2012/04/dasar-dasar-rekayasa-perangkat-lunak.html

 

Ada 5 Generic Proses Framework :

  1. Communication

  2. Planning

  3. Modelling

  4. Construction 

  5. Deployment

http://dewaadeandrea.blogspot.com/2013/03/software-process.html

 

CMMI (Capability Maturity Model Integration atau Integrasi Model Kematangan Kemampuan)

adalah : metodologi yang mengutamakan keintergritaskan sebuah sistem agar mengurangi redudansi informasi yang dihasilkan.

 

Model CMMI yang terbaru ada 2 macam :

  • CMMI DEV (Development/Pengembangan)

  • CMMI ACQ (Acquisition /Akuisisi) 

http://id.wikipedia.org/wiki/CMMI

 

CMMI DEV :

  • Pada Agustus 2006 CMMI ver 1.2 CMMI-DEV (CMMI for Development) yang dirilis pada Agustus2006 dan ditunjukan untuk proses pengembangan produk dan jasa.

CMMI ACQ :

  • Pada November 2007 dirilis dan  ditujukan untuk manajemen rantai suplai, akuisisi, serta proses outsourching di pemerintah dan industri.

http://degazrinaldo17.blogspot.com/2011/06/cmmi-capability-maturity-model.html

 

Manfaat CMMI :

  • Berhasil meningkatkan kinerja organisasi dari sisi biaya, waktu, mutu, kepuasan pelanggan dan Return On Investment (ROI).

  • Meningkatkan produktivitas dan menekan resiko proyek.

  • Tersedianya 'Road Map' untuk peningkatn lebih lanjut.

  • Mempunyai fitur fitur yang bersifat institusional, yaitu komitmen, kemampuan untuk melakukan sesuatu, analisis dan pengukuran serta verifikasi implementasi.

  • Menekan resiko dalam pengembangan perangkat lunak.

http://jyoris.wordpress.com/2012/03/01/sekilas-cmmi-6/

 

Perusahaan yang sudah menerapkan CMMI :

  • Huawei

  • Toshiba

  • NASA

  • ATSI (the Association of Thai Software Industry

  • PT. Sigma Karya Sempurna

  • Bank Danamon, Divisi IT

http://jyoris.wordpress.com/2012/03/01/sekilas-cmmi-6/


Minggu, 08 Desember 2013

AGILE

'AGILE'

Where did 'Agile' come from ?

In 1970, Dr. Winston Royce presented a paper entitled “Managing the Development of Large Software Systems,” which criticized sequential development. He asserted that software should not be developed like an automobile on an assembly line, in which each piece is added in sequential phases. In such sequential phases, every phase of the project must be completed before the next phase can begin. Dr. Royce recommended against the phase based approach in which developers first gather all of a project’s requirements, then complete all of its architecture and design, then write all of the code, and so on. Royce specifically objected to this approach due to the lack of communication between the specialized groups that complete each phase of work.
It’s easy to see how the “waterfall” methodology is far from optimized compared to agile methodology. First of all, it assumes that every requirement of the project can be identified before any design or coding occurs. Put another way, do you think you could tell a team of developers everything that needed to be in a piece of software before it was up and running? Or would it be easier to describe your vision to the team if you could react to functional software? Many software developers have learned the answer to that question the hard way: At the end of a project, a team might have built the software it was asked to build, but, in the time it took to create, business realities have changed so dramatically that the product is irrelevant. In that scenario, a company has spent time and money to create software that no one wants. Couldn’t it have been possible to ensure the end product would still be relevant before it was actually finished?
 

What is Agile model – advantages, disadvantages and when to use it ?

 
 

Advantage of using Agile :
  • Customer satisfaction by rapid, continuous delivery of useful software.
  • People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other.
  • Working software is delivered frequently (weeks rather than months).
  • Face-to-face conversation is the best form of communication.
  • Close, daily cooperation between business people and developers.
  • Continuous attention to technical excellence and good design.
  • Regular adaptation to changing circumstances.
  • Even late changes in requirements are welcomed
Disadvantage of using Agile :
  • In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
  • There is lack of emphasis on necessary designing and documentation.
  • The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
  • Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.
When to use Agile process ?
  • When new changes are needed to be implemented. The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced.
  • To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it.
  • Unlike the waterfall model in agile model very limited planning is required to get started with the project. Agile assumes that the end users’ needs are ever changing in a dynamic business and IT world. Changes can be discussed and features can be newly effected or removed based on feedback. This effectively gives the customer the finished system they want or need.
  • Both system developers and stakeholders alike, find they also get more freedom of time and options than if the software was developed in a more rigid sequential way. Having options gives them the ability to leave important decisions until more or better data or even entire hosting programs are available; meaning the project can continue to move forward without fear of reaching a sudden standstill.

 How to use Agile Methodology :

 
Method 1 : Planning and Architecture
  1. Identify the high level scope
  2. Identify initial "requirements stack".
  3. Create initial requirements model. Use the company’s usage model, initial domain model, and initial user interface model to create the model for initial requirements.
  4. Assign an architecture team. The core architecture team is responsible for envisioning the initial architecture, then they bring the initial architecture to the project team for feedback. The architecture team should be comprised of developers whom are experienced in the technologies that your organization is working with and they should have the ability to work on architecture spikes to explore new technologies.
  5. Identify an architectural vision. Once a vision is created, assign an architecture owner.
  6. Complete the initial set-up and planning.
  7. Model the architecture.
Method 2 : Iteration
  1. Estimate the amount of work required for each requirement.
  2. Create a model for iteration. The model should be complete enough to give good estimates and include a plan for the work required for iteration.
  3. Complete Test Driven Design (TDD).
 
Method 3 : Test Driven Design (TDD)
  1. Add a test (add enough code to fail).
  2. Run the test. If the test passes go back to step 1. If the test fails continue to step 3.
  3. Make a little change to the code.
  4. Run the tests. If the test passes go back to step 3. If the test passes, but there are still development tests to complete return to step 1. It the test passes and development stops Continue to the Final Stage.
Method 4 : Final Stage
  1. Envision the initial architecture.
  2. Communicate architecture with stakeholders. If feedback from stakeholders requires changes go to step 3. If no changes are needed continue to step 4.
  3. Update architecture work products and their models. Once everything has been updated go back to step 2.
  4. Work with developers to complete project.