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 area—features,
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
- Circuit breaker
- Emergency services dispatch systems
- Electricity generation, transmission and distribution
- Fire alarm
- Fire sprinkler
- Fuse (electrical)
- Fuse (hydraulic)
- Telecommunications
- Burner Control systems
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).
- Heart-lung machines
- Mechanical ventilation systems
- Infusion pumps and Insulin pumps
- Radiation therapy machines
- Robotic surgery machines
- Defibrillator machines
- Dialysis machines
- Devices that electronically monitor vital functions (electrography; especially, electrocardiography, ECG or EKG, and electroencephalography, EEG)
- Medical imaging devices (X ray, computerized tomography- CT or CAT, different magnetic resonance imaging- MRI- techniques, positron emission tomography- PET)
- Even healthcare information systems have significant safety implications [12]
C. Nuclear engineering
- Nuclear reactor control systems
D. Recreation
E. Transport
Railway
- Railway signalling and control systems
- Platform detection to control train doors
- Automatic train stop
Automotive
- Airbag systems
- Braking systems
- Seat belts
- Power Steering systems
- Advanced driver-assistance systems
- Electronic throttle control
- Battery management system for hybrids and electric vehicles
- Electric park brake
- Shift by wire systems
- Drive by wire systems
- Park by wire
Aviation
- Air traffic control systems
- Avionics, particularly fly-by-wire systems
- Radio navigation RAIM
- Engine control systems
- Aircrew life support systems
- Flight planning to determine fuel requirements for a flight
Spaceflight
- Human spaceflight vehicles
- Rocket range launch safety systems
- Launch vehicle safety
- Crew rescue systems
- Crew transfer systems
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:
Posting Komentar