Arsitektur Software.

Slides:



Advertisements
Presentasi serupa
Arsitektur Software Jauari Akhmad.
Advertisements

Managing Software Requirements (manajemen kebutuhan perangkat lunak)
Agile Software Development
RENCANA PENGEMBANGAN PERANGKAT LUNAK (RPPL)
Training, Learning, and Development Strategy
Analisis dan Perancangan Sistem
Manajemen Proyek: Overview
© 2007 by Prentice Hall Management Information Systems, 10/e Raymond McLeod and George Schell 1 Management Information Systems, 10/e Raymond McLeod and.
WaterfallPrototyping RAD Incremental Prototyping Pendekatan SDLC.
ANALISIS STRATEGIS: MENENTUKAN POTENSI MASA MENDATANG MODUL 6 PERT. 19 S/D 21.
Testing Implementasi Sistem Oleh :Rifiana Arief, SKom, MMSI
Menulis Kolom  Kolom adalah opini atau artikel. Tidak seperti editorial, kolom memiliki byline.  Kolom Biasanya ditulis reguler. Biasanya mingguan atau.
1 Pertemuan 09 Kebutuhan Sistem Matakuliah: T0234 / Sistem Informasi Geografis Tahun: 2005 Versi: 01/revisi 1.
1 Pertemuan 12 Pengkodean & Implementasi Matakuliah: T0234 / Sistem Informasi Geografis Tahun: 2005 Versi: 01/revisi 1.
1 Pertemuan 22 Analisis Studi Kasus 2 Matakuliah: H0204/ Rekayasa Sistem Komputer Tahun: 2005 Versi: v0 / Revisi 1.
Test System Architecture, Cases, & Coverage Pertemuan 5
Verb Tense Tense denotes the time of the action indicated by a verb. The time is not always the same as that indicated by the name of the tense.
INDONESIA INFRASTRUCTURE INITIATIVE IURSP – Monitoring dan Evaluasi IURSP – Monitoring and Evaluation Workshop 3 Steve Brown VicRoads International Projects.
1 Pertemuan 2 Unit 1 - Careers Matakuliah: G0682 / Bahasa Inggris Ekonomi 1 Tahun: 2005 Versi: versi/revisi.
1 Pertemuan 11 Function dari System Matakuliah: M0446/Analisa dan Perancangan Sistem Informasi Tahun: 2005 Versi: 0/0.
 Materi :  Understanding e-CRM Concept and Application  Buku Wajib & Sumber Materi :  Kalakota, Ravi & Marcia Robinson (2001). e-Business 2.0. Roadmap.
Chapter 10 – The Design of Feedback Control Systems PID Compensation Networks.
THE OLD WAY OF BRANDING Brand (-ing) is only about tagline for promotion Brand (-ing) is only about the logo & creative Brand (-ing) is only for the communication.
Management Information Systems, 10/e
Software Engineering Process
Pertemuan 03 Materi : Buku Wajib & Sumber Materi :
Pert. 16. Menyimak lingkungan IS/IT saat ini
Chapter 3: The WebE Process
AKUNTANSI PAJAK EDISI 6 WALUYO
Membangun Web Site“Cantik”
Chapter 2: Rekayasa Web We define it this way:
Arsitektur Teknologi Informasi
Perancangan Basis Data
DESIGNING AND EVALUATING MANAGEMENT CONTROL SYSTEMS
Software Engineering Rekayasa Perangkat Lunak
Pertemuan <<18>> << Penemuan Fakta(01) >>
Organizational Environment Analysis
Dasar-Dasar Sistem Informasi
Rekayasa Perangkat Lunak Part-5
Pertemuan 4 CLASS DIAGRAM.
Welcome 8clicks Pte Ltd. About us  8CLICKS PTE LTD is best web Development Company in Singapore. It is famous for their web designing services. 8CLICKS.
How to Set Up AT&T on MS Outlook ATT is a multinational company headquartered in Texas. ATT services are used by many people widely across.
How You Can Make Your Fleet Insurance London Claims Letter.
Why It Is Necessary to Have More Sells Through the Social Media
How Can I Be A Driver of The Month as I Am Working for Uber?
How the Challenges Make You A Perfect Event Organiser.
Things You Need to Know Before Running on the Beach.
How You Change Your Experience with Time Regarding Portable Staging
How to Pitch an Event
Grow Your Social Media Communities
Don’t Forget to Avail the Timely Offers with Uber
Takes Rides for Never Ending Fun pacehire.co.uk. It’s still Time to Make Fun Before the Holidays pacehire.co.uk.
Story of Successful Events, How Visions Becomes Reality.
Social Media for Events audiovisualhire.co.uk.
Evidence-Based Medicine Prof. Carl Heneghan Director CEBM University of Oxford.
Suhandi Wiratama. Before I begin this presentation, I want to thank Mr. Abe first. He taught me many things about CorelDRAW. He also guided me when I.
Angular js training institute in indore
Sistem Pendukung Keputusan Roni Andarsyah, ST., M.Kom Lecture Series.
THE INFORMATION ABOUT HEALTH INSURANCE IN AUSTRALIA.
HughesNet was founded in 1971 and it is headquartered in Germantown, Maryland. It is a provider of satellite-based communications services. Hughesnet.
By Yulius Suprianto Macroeconomics | 02 Maret 2019 Chapter-5: The Standard of Living Over Time and A Cross Countries Source: http//
Website: Website Technologies.
ICT untuk kolaborasi internasional
Rank Your Ideas The next step is to rank and compare your three high- potential ideas. Rank each one on the three qualities of feasibility, persuasion,
A SHORT ESSAY OF CIVIL ENGINEERING BY : ALFATIHATU RAHMI CIVIL ENGINEERING ENGINEERING FACULTY ANDALAS UNIVERSITY PADANG.
Draw a picture that shows where the knife, fork, spoon, and napkin are placed in a table setting.
2. Discussion TASK 1. WORK IN PAIRS Ask your partner. Then, in turn your friend asks you A. what kinds of product are there? B. why do people want to.
ICT untuk kolaborasi internasional
Wednesday/ September,  There are lots of problems with trade ◦ There may be some ways that some governments can make things better by intervening.
Transcript presentasi:

Arsitektur Software

Why Software Architecture

Enterprise architecture Tujuan dasar dari sistem arsitektur adalah untuk mendukung lapisan yang lebih tinggi dari arsitektur enterprise.  Di banyak perusahaan,perangkat lunak dan perangkat keras merupakan bagian yang signifikan dari total aset perusahaan. Adalah penting bahwa arsitek perusahaan tidak menyamakan tugas mereka dengan objek, aplikasi, atau mesin yang terdiri dari domain mereka.  Tujuan mendasar adalah untuk mendukung dan memajukan tujuan bisnis dari perusahaan. Hardware dan software benda pada dasarnyabersifat sementara dan hanya ada untuk memajukan tujuan bisnis

Enterprise architecture model Bussiness Information Operational Organizational Architectural Infrastuctural

Considered as Systems Architecture best practices Know the business processes that the systems architecture is supporting. Know them inside and out. Keep support of those business processes first and foremost on your agenda. Know what the business needs and keep the business side aware of your accomplishments. Know the components in your systems architecture: all the machines, applications, network connections, and so on. Instrument, your system. That is, install monitoring and measurement systems that allow you to find the problem areas and the bottlenecks.

Considered as Systems Architecture best practices Attack the cheap and easy problems first. That will build and help maintain credibility and trust with the business side of your company. Prioritize and be proactive. If you are not constrained to produce immediate results, identify the most important systems architecture problems and attack them first, even before they become problems. Good system measurements are key to being able to identify problem areas in your systems architecture and to establish the most effective means to deal with them.

Considered as Systems Architecture best practices Know all your stakeholders. The people aspects of your systems architecture are at least as important as the machines Only buy as much security as you need. Give up on the idea of becoming invulnerable. Prioritize your security issues into A, B, and C lists

Three Important aspects to Emphasize about Systems Architecture It must align (selaras) with the business goals of the organization. It must provide what the stakeholders need to perform their functions. This is a two-way street. The architecture team should take responsibility to establish communication with systems architecture stakeholders and to understand their issues. The software and hardware infrastructure of an enterprise is a major asset that must be managed to provide the greatest return on that investment.

Software Architecture Arsitektur Software dari sebuah sistem memiliki pengaruh pada kualitas dari arsitektur organisasi/enterprice Sementara desain dari software sistem berkonsentrasi pada terealisasinya/establish fungsi yang dibutuhkan system.

Software Architecture Software Architecture dari sebuah system mensupport semua kebutuhan dari system Sebagai contoh system harus terkoneksi dengan wifi atau terjadi perubahan dari bisnis rule enterprice maka software arsitektur dapat beradaptasi.

Apa Software Architecture itu? Arsitektur Perangkat lunak suatu program atau sistem komputasi adalah struktur atau struktur sistem, yang meliputi komponen perangkat lunak, Properti dari komponen juga terlihat nyata , serta hubungan diantarnya (komponen PL).

Apa Software Architecture itu? Arsitektur Perangkat lunak adalah satu set konsep dan keputusan disain tentang struktur dan tekstur perangkat lunak yang harus dibuat sebelum rancang-bangun untuk memungkinkan kepuasan efektif secara arsitektur kebutuhan berkwalitas dan fungsional yang tegas/eksplisit yang penting dan kebutuhan yang tersembunyi/terkandung pada keluarga produk (product family), masalah (the problem), dan daerah solusi (solution domain)

Peran Arsitek Perangkat lunak (The Role of a Software Architect) Menciptakan/membuat arsitektur perangkat lunak adalah suatu usaha sulit Arsitek perangkat lunak mempunyai pekerjaan yang paling sulit dalam merancang suatu perangkat lunak Ia atau dia harus mempunyai kepercayaan dari semua stakeholders Kepercayaan ini didasarkan pada track record dari proyek yang sukses dikerjakannya dan rasa hormat dari pengembang yang menghormat/peduli padanya sebagai pemimpin teknis

Peran Arsitek Perangkat lunak Arsitek harus mampu berkomunikasi dengan semua komponen dalam suatu organisasi / perusahaan/enterprice Arsitek harus memiliki kemampuan dalam mendisain,kemampuan teknologi, dan mengerti/faham tentang aplikasi rancang-bangun perangkat lunak Arsitek harus mampu melayari melalui/sampai dengan politik organisatoris untuk mendapatkan proyek itu Arsitek Perangkat lunak harus seorang pemimpin, penasihat, dan berani membuat keputusan

Mengapa kita butuh Arsitektur PL? Sama halnya peta, tujuan dari arsitektur PL adalah untuk mengabarkan/menginformasikan pemahaman perancangan sistem kepada pembaca tujuan dari arsitektur perangkat lunak adalah untuk mengkomunikasikan suatu gagasan. membawa pembaca ke dalam perangkat lunak dan menjelaskan konsep yang penting. membantu mereka memahami aspek yang penting dari sistem dan memberi mereka nilai rasa suatu sistem tanpa benar-benar melihat kedalamnya.

Dua pendekatan dalam Pengembangan Software Software development approaches vary between two extremes The first method involves little or no upfront modeling or design This is the "shanty town" method of system development in which a few developers code without a mental picture in their heads about the system they are building.

First method Some managers believe that if developers aren't coding, they aren't working These project managers also believe that the sooner developers begin coding, the sooner they will be done. This stems from the incorrect belief that a constant amount of time is involved in the coding of the system no matter what upfront process is used.

First method In this type of environment, developers don't fully understand the requirements for the system. Some of these environments deliver decent software through heroics by developers and frequent rewrites, although this approach is not repeatable, and it is extremely risky.

Second method "ivory tower" software architecture in which a design team or a single architect design a system in every detail, down to the class and method level. The architect has a clear picture in his or her head about the design of the system but has not left many of the implementation details to the developers.

Second method The belief in these environments is that the architects are the most experienced developers and thus can design the best possible system from start to finish. No one person or small team can possibly understand all the requirements, predict every change in requirements, and have expertise in every technology that the project is built upon.

Second method Developers in these environments also suffer from low morale because they are perceived as somehow inferior to the designers of the system. Morale is also poor because the developers must implement the design in a prescriptive way with little or no input into the design of the system.

The Middle of the Road So what does all this have to do with software architecture? Software architecture is the middle road between no design and complete design. It is a view of the system design that shows how the design satisfies the critical requirements of the system.

The Middle of the Road It is the role of the software architect to design the structures of the software such that those critical requirements are satisfied. It is also the goal of the software architecture to facilitate the development of the system by multiple teams in parallel.

The Middle of the Road In addition, if multiple teams or departments within an organization will support and maintain the software, the software architecture will allow those parts of the system to be managed and maintained separately. The most important role that the software architecture has is that of an organizing concept for the system.

The Middle of the Road The software architect has an idea how the system should work. The software architecture is the communication of that idea to other system stakeholders so that everyone understands what the system does and how it does it.

The Middle of the Road In a practical sense, two rules determine whether or not a design detail should be included in the software architecture: The design detail must support a quality requirement. The design detail must not detract (mengurangi) from stakeholder understanding of the software architecture.

The System Stakeholders Many people believe that the software architecture is meant only for developers to use as an overall guide for system design and construction. While this may be the software architecture's primary purpose, other system stakeholders can use the architecture as a basis to guide their activities as well. The following are some of the system stakeholders:

The System Stakeholders Developers Managers Software architects Data administrators System customers Operations Marketing Finance End-users General management Subcontractors Testing and quality assurance UI designers Infrastructure administrators Process administrators Documentation specialists Enterprise architects

The System Stakeholders The software architect must elicit (menimbulkan/memunculkan) input from all the system stakeholders to fully understand the requirements for the architecture. This is important because the requirements are built from the perspective of what the system should do. However, the architecture must reflect how the system will perform those functions.

The System Stakeholders The system's customers want the system to be of high quality. They want the system to be delivered in a timely manner. And they want it to be developed as inexpensively as possible.

The System Stakeholders The development organization is looking for a vision for the system it is going to design and develop. It wants to know that the architecture is easy to implement. It has hard deadlines that it must meet, so reusability is important. The developers are going to be looking for technologies in the architecture that they currently understand.

The System Stakeholders They want the architecture to match their desired platforms, development tools, libraries, and frameworks. They need to meet dates, so the architecture should ease their development effort. Most of all, they want an architecture that they have participated in developing and evolving throughout the lifetime of the product.

Creating a Software Architecture: An Example The architects on the project faced a difficult job. They realized that the software architecture is implemented at the beginning, middle, and end of every project. However, much more emphasis is on it at the beginning of every project.

Creating a Software Architecture: An Example Before the architects started, they created a checklist of principles they would strive to follow while they created the architecture: The architecture should be thin. The architecture should be approachable. The architecture should be readable. The architecture should be understandable. The architecture should be credible.

Creating a Software Architecture: An Example The architecture doesn't have to be perfect. Don't do big upfront design. If given a choice between making the model perfect or implementing it, implement it. Do the simplest thing that could possibly work without precluding future requirements. The architecture is a shared asset. Involve all stakeholders but maintain control. The architecture team should be small. Remember the difference between a pig and a chicken.

Quality Attributes The software architecture of a system promotes, enforces, and predicts the quality attributes that the system will support. Quality attributes are those system properties over and above the functionality of the system that make the system a good one or a bad one from a technical perspective.

Quality Attributes There are two types of quality attributes: those that are measured at run-time those that can only be estimated through inspection.

Quality Attributes Since the software architecture of a system is a partial design of a system before it is built, it is the responsibility of the software architect to identify those quality attributes that are most important and then attempt to design an architecture that reflects those attributes.

Quality Attributes The quality attributes that most architects should be concerned with are (Bass, Clements, Kazman 1997; Clements, Kazman, Klein 2002): Performance— a measurement of the system response time for a functional requirement. Availability— the amount of time that the system is up and running. It is measured by the length of time between failures, as well as by how quickly the system is able to restart operations after a failure. For example, if the system was down for one day out of the last twenty, the availability of the system for the twenty days is 19/19+1 or 95 percent availability. This quality attribute is closely related to reliability. The more reliable a system is, the more available the system will be. Reliability— the ability of the system to operate over time. Reliability is measured by the mean-time-to-failure of the system. Functionality— the ability of the system to perform the task it was created to do. Usability— how easy it is for the user to understand and operate the system.

Quality Attributes Security— the ability of the system to resist unauthorized attempts to access the system and denial-of-service attacks while still providing services to authorized users. Modifiability— the measurement of how easy it is to change the system to incorporate new requirements. The two aspects of modifiability are cost and time. If a system uses an obscure technology that requires high-priced consultants, even though it may be quick to change, its modifiability can still be low. Portability— measures the ease with which the system can be moved to different platforms. The platform may consist of hardware, operating system, application server software, or database server software. Reusability— the ability to reuse portions of the system in other applications. Reusability comes in many forms. The run-time platform, source code, libraries, components, operations, and processes are all candidates for reuse in other applications. Integrability— the ability of the system to integrate with other systems. The integrability of a system depends on the extent to which the system uses open integration standards and how well the API is designed such that other systems can use the components of the system being built.

Quality Attributes Integrability— the ability of the system to integrate with other systems. The integrability of a system depends on the extent to which the system uses open integration standards and how well the API is designed such that other systems can use the components of the system being built. Testability— how easily the system can be tested using human effort, automated testing tools, inspections, and other means of testing system quality. Good testability is related to the modularity of the system. If the system is composed of components with well-defined interfaces, its testability should be good. Variability— how well the architecture can handle new requirements. Variability comes in several forms. New requirements may be planned or unplanned. At development time, the system source code might be easy to extend to perform new functions. At run-time, the system might allow pluggable components that modify system behavior on the fly. This quality attribute is closely related to modifiability. Subsetability— the ability of the system to support a subset of the features required by the system. For incremental development, it is important that a system can execute some functionality to demonstrate small iterations during product development. It is the property of the system that allows it to build and execute a small set of features and to add features over time until the entire system is built. This is an important property if the time or resources on the project are cut. If the subsetability of the architecture is high, a subset of features may still make it into production. Conceptual integrity

reference James McGovern, Scott W. Ambler, Michael E. Stevens, James Linn, Vikas Sharan, Elias K. Jo , 2003, “A Practical Guide to Enterprise Architecture”, Prentice Hall PTR