10/10/19

ADAPTIVE SOFTWARE DEVELOPMENT


Subject                       : Software Development Methodology
Lecturer                     : Rusdiyanto Roestam
Faculty/Major            : Computing/MSIT


    GROUP 3 :

      Annisa Maulana Majid (001201907006)
      Dede Lutfi Siregar (001201907004)
      Rachma Oktari (001201907023)
      Wilson Sasongko Purnomo (001201907023)




ADAPTIVE SOFTWARE DEVELOPMENT

1.      Literature Review

Agile Value [5]

·         Individuals and interactions over processes and tools -> People
·         Working software over comprehensive documentation -> Product
·         Customer collaboration over contract negotiation -> Communacation
·         Responding to change over following a plan -> Responsivness
That is, while there is value in the items on the right, we value the items on the left more.

Agility Principles [5]

12 agility principles for those who want to achieve agility:
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity—the art of maximizing the amount of work not done—is essential.
11. The best architectures, requirements, and designs emerge from self– organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.


Perbedaan Agile Development dengan traditional [4]

2.      Metodology : Adaptive Software Development [5]
Originally proposed by Jim Highsmith

ASD — distinguishing  features

a.       Mission-driven planning : evaluate the mission everyday
b.      Component-based focus
c.       Uses “time-boxing”
d.      Explicit consideration of risks
e.       Emphasizes collaboration for requirements gathering
f.       Emphasizes “learning” throughout the process

ASD – Values [3]

a.       The first goal is to offer an alternative to the belief that optimiza-tion is the only solution to increasingly complex problems. Optimizing cultures believe they are in control, that they can impose order on the uncertainty around them.
b.      The second goal is to offer a series of frameworks or models to helpan organization employ adaptive principles. The Adaptive Develop-ment Life Cycle, for example, provides a framework that reinforces the concepts and details a practical way of moving from the conceptual tothe actionable.
c.       The third goal is to establish collaboration—the interaction of people with similar and sometimes dissimilar interests, to jointly create andinnovate—as the organizational vehicle for generating emergent solu-tions to product development problems.
d.      The fourth goal of Adaptive Software Development is to provide a pathfor organizations needing to use an adaptive approach on larger projects. Because Rapid Application Development (RAD) approaches had a repu-tation of eschewing all discipline and rigor, they were relegated by many developers for use only on noncritical toy projects.
e.       The  last  goal of this book is to  offer  a new, adaptive management  style,which I label Leadership-Collaboration,  to replace  Command-Control. The  ability  to  adapt  and  move  quickly requires  that  "leadership" replace  "command" and  "collaboration" replace  "control"

Tahapan pada model ASD, yaitu: Speculation, Collaboration, dan Learning. [5]

a.       Pada tahap Speculation, proyek dimulai dan adaptive cycle planning diselenggarakan. Pada tahapan ini, didefinisikan visi dan misi pengguna terhadap sistem yang akan dibuat, selanjutnya mendefinisikan project constraints, misalnya: waktu deliver. dan selanjutnya mendefinisikan satu set dari requirements yang akan dikerjakan dalam suatu cycle.




As shown in the table, the Excel column identifies Scope (Features) as the most important characteristic for marketplace success. Given this matrix, trade-off decisions that the team makes during the project would favor feature richness over development speed.

b.      Pada tahap Collaboration, pada tahap ini diorganisasikan tim kerja untuk membangun sistem. Direkomendasikan menggunakan model Joint Application Development (JAD).  Collaboration : orang-orang yang bermotivasi tinggi bekerja sama: saling melengkapi, rela membantu, kerja keras, trampil di bidangnya, dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif.
c.       Pada tahap Learning, terdapat tiga aktifitas yaitu: pelanggan atau end-user menyediakan feedback terhadap hasil incremental delivery, tim ASD melakukan review terhadap komponen perangkat lunak untuk memperbaiki dan meningkatkan kualitas perangkat lunak yang sedang dibuat. Learning: tim pembangun sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya begitu.
Karena itu proses ini membuat mereka belajar lebih tentang proyek melalui 3 cara:
• Focus group: klien dan pengguna memberi masukan terhadap software
• Formal Technique Reviews: Tim ASD lengkap melakukan review
• Postmortems: Tim ASD lakukan instrospeksi pada kinerja dan proses

ASD – Detail [3]

a.       It  combined  a  spe-cific  goal, boundaries of behavior, and  wide latitude for implemen-tation.
b.      A mission statement needs to be focused. Attempting to excel inmultiple dimensions usually results in a product being mediocre inall of them and excellent in none.
c.       The product mission profile forces a focus on the single areafeatures, schedule, defects, or resources in which the development team needs to excel. This profile provides the high-level, trade-off strategy for the project.
d.      A mission statement facilitates collection of information that is rele-vant to the project's desired result.
e.       A mission should establish direction, inspire the participants, and provide enough detail for ongoing decision-making.
f.       The components of mission are a project vision (or charter), a proj-ect data sheet, and a product specification outline.
g.      Writing a mission statement is easy. Creating a sense of shared responsibility for achieving the mission is very difficult. Building ashared vision is an ongoing, never-ending, collaborative teameffort.
h.      The ability to periodically de-focus is important
i.        The project vision or charter establishes the focus and key motiva-tional theme for the project. It establishes which direction to takeinto the fog of the unknown. It provides the boundaries for the exploration phase of the Speculate-Collaborate-Learn life cycle.
j.        The project data sheet is a one-page summary of the key informa-tion about the project. It serves as a focal point and quick reminder of the most important elements about the project. It is simple, but powerful.
k.      The product specification outline describes the features of the product in enough detail so that developers can understand the scope of the effort, create a more detailed adaptive cycle plan, andestimate the general magnitude of the development effort.
l.        Quality  characteristics are part  of the  mission  definition.  Software developers often  fail to differentiate  between excellence and  perfec-tion.  They also  fail  to provide  a basis  for making  necessary  trade-offs  during a project.
m.    Quality is in the eye of the beholders. In Jerry Weinberg's words,"Quality is value to some person”.

Parameter All Method Agile [6]



3.      Case Study

a.  [2]

The most widely used methodology when applying data mining processes is named CRISP-DM.

ASD-DM Methodology

b. [1]
Developing  safety-critical  systems  is  not  just  a  process  of  producing  software,  but  also  providing  evidence  that  the  produced   software   will   not   cause   or   contribute   to   any   hazardous  situations,  and  the  process  of  producing  such  evidence should be carried out concurrently with the software development  process;  so  in  order  to  produce  a  safe  software  incrementally  the  process  of  creating  evidence  must  also  be  carried   out   incrementally.  
The safety development process first starts with the hazard identification process and in this process all the hazards related to the specific system should be identified and no hazard should be left out for its consequences can be very catastrophic. 

Second process is the risk assessment process where each and every hazard is given a degree of risk the higher the risk the more dangerous it is. 

Third phase is the preliminary system safety assessment, in this phase after the hazards have been identified and assessed the causes of the failures are identified and safety requirements are elicited to prevent or control possible causes of failure.

Fourth process is which is the common cause analysis is used throughout the whole development lifecycle it is used to support both the preliminary system safety assessment and the system safety assessment. A lot of safety analysis techniques assume that failures are independent of each other, if that assumption is not true and there is fact a common cause then the safety integrity of the system will be broke. 

Fifth phase which is the system safety assessment, once the design is implemented it is necessary to confirm that the safety requirements elicited from the preliminary system safety assessment have been met, and this is where such a process happens.

The speculation phase:  this phase is made of two stages the initiation  and  the  adaptive  cycle  planning  here  the  projects  requirements  (functional  and  safety)  should  be  gathered  in  enough  detail  to  serve  as  input  to  the  project  plan  and  software architecture, to serve as input to the Preliminary  System  Safety  Assessment  PAAS  activities,  also  the hazard identification process should be carried out and the hazards risks should be assessed at this stage.

The   collaboration   phase:   The  numbers  of  development  cycles  are  determined  by  the  number  of  modules  that  are  formed  by  the   modular   decomposition.   Each   module   will   be   a   development  cycle.  By  the  end  of  each  cycle  a  software  module with the evidence of its safety should be generated. The safety process activities that will take place in the phase are   the   PAAS   and   common   cause   analysis   processes,   depending  on  the  type  of  project  at  hand  the  most  suitable  safety analysis techniques are going to be used, the resulting outputs of the process is going to feed the next phase in this model.

The  learning  phase : forces  on  the  technical  and  managerial  aspects, from the management perspective issues of time, cost and other managerial issues are consider and also if there are any  complications  faced  by  the  team  during  the  previous  phase.  And  regarding  the  technical  reviews  the  produced  product should be tested and the safety arguments reviewed to ensure that the safety requirements for this increment are met, the  System  Safety  Analysis  (SSA)  process  is  carried  out  to  ensure  this,  and  the  appropriate  techniques  should  be  used  depending  on  the  project  type,  and  during  the  SSA  process  the  safety  argument  for  the  system  is  developed  so  by  the  time  the  last  iteration  is  reached  the  safety  argument  should  be complete.


Examples of safety-critical systems

A.    Infrastructure

B.     Medicine

The technology requirements can go beyond avoidance of failure, and can even facilitate medical intensive care (which deals with healing patients), and also life support (which is for stabilizing patients).

C.    Nuclear engineering

D.    Recreation

E.     Transport

Railway

  • Railway signalling and control systems
  • Platform detection to control train doors
  • Automatic train stop

Automotive

Aviation

Spaceflight

4.      Kesimpulan

Agile methods have many advantages, and these advantages are attracting software engineers from all disciplines including engineers from the safety domain, if there were to be successfully applied to the safety domain lots will be benefited from them.
The ASD framework shown in figure 3 was identified as a very good vessel to carry out the safety critical software development process, as that it is perfectly suited for carrying out the safety process with the software development process. The figure shows the three conceptual phases of the framework, firstly the speculation phase, then the collaboration phase, and finally the learning phase.

In this paper proposed the use of ASD dan beberapa teknik pengembangan lainnya disatukan untuk memungkinkan pengembangan sistem ini dengan cara agile. The proposed proposition was applicable to in a non-production environment, but still the extent of applicability and effectiveness of the proposition is to be tested in real production environments.

Jelas bahwa metode yang diusulkan dapat diterapkan pada pengembangan sistem keselamatan dan mengurangi waktu yang diperlukan secara substansial, meskipun usulan ini is not fully agile.

Daftar Pustaka

[1] Adil A Abdelaziz, Yaseen El-Tahir, Raheeg Osman. (2015). Adaptive Software Development for Developing Safety Critical Software.
[2] Alnokari, M. (2008, 09 01). Applying Adaptive Software Development (ASD) Agile Modeling on Predictive Data Mining Applications: ASD-DM Methodology. Retrieved 10 06, 2019, from ResearchGate: https://www.researchgate.net/publication/4376306_Applying_Adaptive_Software_Development_ASD_agile_modeling_on_predictive_data_mining_applications_ASD-DM_methodology
[3] Highsmith, J. A. (2000). Adaptive Software Development A Collaborative Approach To Managing Complex Systems. New York: Dorset House Publishing Co.
[4] Leau, Y.B, Loo, W.K., Tharn, W.Y., Tan, S.F. (2012). Software development life cycle AGILE vs traditional approach. International Conference on Information and Network, (pp. 162-167).
[5] Pressman, R. S. (2010). Software Engineering A Practitioner Approach, 7th ed. New York: McGraw-Hill.
[6] Soukaina M, Sakina E Hassan E, Abdelaziz M, Nawal S. (2017). A Comparative Study of Agile Methods. Towards a New Model-based Method. . International Journal of Web Application, 4.

Tidak ada komentar:

ADAPTIVE SOFTWARE DEVELOPMENT - GROUP 3