IBM Rationa XDE Developer v2003
Download
Report
Transcript IBM Rationa XDE Developer v2003
®
IBM Software Group
Yazılım Mühendisliği’nde IBM Rational
Pınar Uğurlu
Bilgi Teknolojileri Uzmanı / Rational
[email protected]
IBM Software Group | Rational software
Gündem
Yazılım Mühendisliği’ne Bakış
Yazılım Mühendisliği’nde Bugün
IBM Yazılım Geliştirme Platformu
IBM Yazılım Geliştirme Araçları
Rational
Süreç İyileştirme
IBM Software Group | Rational software
Yazılım Mühendisliği’ne Bakış
Yazılım Geliştirmek zor bir süreçtir!
(ve her zaman yüksek maliyetli olarak öngörülür)
Yazılım projelerinin %66’si başarısızlıkla
sonuçlanıyor yada çok zor tamamlanıyor!
Standish Group,
CHAOS Report, 2003
IBM Software Group | Rational software
Niçin projeler
başarısız oluyor?
57% gereksinimlerin
zayıf belirlenmesi, veya
yönetilememesi
54% gerekli
fonksiyonların son ürüne
yansımaması
25% yetersiz araç
kullanımı veya gerekli
eğitimin alınmaması
82% öngörülen
zamanın aşılması, 51%
öngörülen bütçenin
aşılması
IBM Software Group | Rational software
IBM Software Group | Rational software
Gündem
Yazılım Mühendisliği’ne Bakış
Yazılım Mühendisliği’nde Bugün
IBM Yazılım Geliştirme Platformu
IBM Yazılım Geliştirme Araçları
Rational
Süreç İyileştirme
IBM Software Group | Rational software
Yazılım Mühendisliği’nde Bugün
Source: Mercedes
* Gartner, April 2003, Embedded Software Development and Management - Automotive Industry
IBM Software Group | Rational software
Yazılım Mühendisliği’nde Bugün
Çoklu teknolojiler
ve
ortamlar
Kurumsal
Proje
Karmaşıklık
Teknoloji
yükü
Dağıtık
geliştirme
Koordinasyon ve yerleştirim
ve iletişim
Sabit
Kayıp ve bozucular
Uygulayıcı
Çok iş,
az zaman
Sınırlı kaynaklar
Maliyetler
Öğrenme eğrisi
Takım yetenek kümesi
Yazılım
modernizasyonu
IBM Software Group | Rational software
Yazılım Mühendisliği’nde Bugün
Geleneksel Yaklaşım
Gereksinimler
Analiz
Tasarım
Gerçekleştirim
Yükleme ve Bakım
Su-düşüşü (Waterfall)
IBM Software Group | Rational software
Yazılım Mühendisliği’nde Bugün
Nesne Yönelimli Metodoloji
Sistem
Kullanıma göre kurgulanmış, “use-case driven”
Artırım
Yinelenen Artırımlı, “iterative incremental”
Mimari Odaklı, “architecture centric”
Test
Tasarım
Analiz
değişiklikler
Gereksinimler
İş ihtiyaçları
Gerçekleştirim
IBM Software Group | Rational software
IBM Software Group | Rational software
Model Yönelimli Geliştirme
Yazılım üretiminin modernize edilmesi, görselleştirilmesi, otomatikleştirilmesi,
yeniden kullanımını sağlayan stratejik bir yönelim
Model Tabanlı İş
Entegrasyonu ile
geliştirme ve iş
ekiplerinin biraraya
getirilmesi
Modelleme
Gereksinimler
Yazılım
Üretimi
İş
Süreçleri
Model paradigmaları
sayesinde
üretkenliği arttırma
Tekrar kullanılabilir
kodlar geliştirmeyi
benimseterek süreci
hızlandırma ve
ucuzlatma
Yönetim
Devreye Alma
IBM Software Group | Rational software
Model Yönelimli Geliştirme
Sadece
program kodu
C
“Model ?
O da ne ?”
Kod
sihirbazı
Model
merkezli
Sadece
model
M
M
M
M
görselleştir
senkronize et
üret
C
C
C
“Kod, modeli
oluşturur”
1995
“Kodu ve
modeli
yönet”
2000
“Model kodun
kendisidir”
2005
“UML’ce
konuşalım”
IBM Software Group | Rational software
Takım Halinde Geliştirmeyi Kolaylaştırır
Ortak bir dil kullanımı
Gereksinim
Modelleme
İş Modelleme
Uygulama
Modelleme
Web
Modelleme
Veri
Modelleme
Ortak dil – Tek Araç – Tek takım
Note: Also Free-form Modeling
IBM Software Group | Rational software
İş-odaklı yazılım geliştirme yaşam döngüsü
Önceliklendir
Planla
Yönet
Ölçümle
İş
Son Kullanıcı
İşin
Modellenmesi
İş Yöneticisi
Gereksinimlerin
Tanımlanması
Koruma
Analiz
& Tasarım
BT Operasyon
Yöneticisi
Yönetim
Analist
Proje Yöneticisi
Gerçekleştirim
Mimar
Yerleştirim
Uygulama
Destek
Test
Geliştirici
Operasyon
Yerleştirme Yöneticisi
İyileştir
Test
Yinele
Geliştirme
IBM Software Group | Rational software
Gündem
Yazılım Mühendisliği’ne Bakış
Yazılım Mühendisliği’nde Bugün
IBM Yazılım Geliştirme Platformu
IBM Yazılım Geliştirme Araçları
Rational
Süreç İyileştirme
IBM Software Group | Rational software
IBM Ürün Ailesinde Rational’ın Yeri
Oluştur
İşlet
Yönet
Yazılım Geliştirme
İşletim Yönetimi
Uyarlanabilir Süreçler
Gereksinim ve Analiz
Veri
Görsel Modelleme ve Altyapı ve Araçlar
Yönetimi
Geliştirme
Portallar
Test
İş ve Süreç Entegrasyonu
Proje Yönetimi
Konfigürasyon
Yönetimi
Sistem
Yönetimi
Birlikte Çalışma ve
Bilgi Yönetimi
IBM Software Group | Rational software
IBM Yazılım Geliştirme Ortamı
Bütünleşik, Açık, Modüler, ve Kanıtlanmış Çözüm
Analiz
Modelle,
simüle et,
birleştir,
ve süreci
monitör et
Mimar
Görsel
modelle
(veri ve
uygulama)
Geliştirici
Hızlı
oluştur,
dönüştür,
entegre et
ve kod üret
Test
Uzmanı
Yerleştirim
Yöneticisi
Test
tasarla,
yarat,
ve çalıştır
Sunu
konfigüre et,
ayarlama yap
ve sorun
gider
Proje
Yöneticisi
Süreç takibi
Proje / portfolyo yönetimi
ve ölçümlenmesi
Gereksinim yönetimi
Yönetici
İş önceliklerine göre yatırımların yönetilmesi
Proje portfolyolarının analiz, takip,ölçüm ve
değerlendirilmesi
Kaynak ve değişiklik
yönetimi
Kaliteyi yönetimi
IBM Software Group | Rational software
IBM Yazılım Geliştirme Ortamı
Analist
WebSphere
Business
Integration
Modeler
& Monitor
Rational
Software
Modeler
Mimar
Rational
Software
Architect
Geliştirici
Test Uzmanı
Yerleştirme
Yöneticisi
Rational
Application
Developer
Rational
Functional
& Manual
Tester
Tivoli
Configuration
Manager
Rational
Web
Developer
Rational
Performance
Tester
Tivoli
Monitoring
Customer
Extensions
3rd Party
ISV Tools
Rational
Project
Console
Proje
Yöneticisi
Yönetici
Rational
Requisite Pro
Rational
ClearCase
Rational Unified Process
Rational
ClearQuest
Rational Test
Manager
IBM Software Group | Rational software
Gündem
Yazılım Mühendisliği’ne Bakış
Yazılım Mühendisliği’nde Bugün
IBM Yazılım Geliştirme Platformu
IBM Yazılım Geliştirme Araçları
Rational
Süreç İyileştirme
IBM Software Group | Rational software
Yazılım Geliştirme
Zorluklar
1.
Yazılım geliştirme, karmaşık, zaman alıcı ve
hataya açık bir süreç
2.
Oldukça bilgili ve yetkin geliştiricilere
gereksinim duyuyor ve kaynaklar kısıtlı
3.
Öğrenme eğrisi uzun
4.
Geleneksel yazılım geliştirme ortamları yetersiz
Çözüm
Endüstri Standartları ile Modelleme
Geliştirme ortamından daha çok faydalanmak
Hızlı ama sağlam kod geliştirme
Öğrenme eğrisini kısaltan veya ortadan kaldıran
Model-yönelimli yaklaşım yazılım geliştirme sürecini basitleştirir
IBM Software Group | Rational software
Ne
yapılacak?
Yazılım Analisti – Zorluk Noktaları
Geliştiriciler müşteri isteklerini
karşılayamıyorlar – kendi
düşündüklerini yapıyorlar
Gereksinimler içinde kayboldum –
isterdimki daha mantıksal bir
düzeyden bakabileyim ve
gereksinimleri yönetebileyim
Tüm düzenleyici kısıtları anlamak ve
uymak zorundayız
Heryerden değişiklik istekleri
yağıyor nasıl önceliklendireceğim
Anahtar Araçlar
IBM Rational RequisitePro
IBM Rational Rose Data Modeler
IBM Rational Software Modeler
IBM WebSphere Business Integration Modeler
& Monitor
İş
Analisti
Sistem
Analist
DBA / Veri
Analisti
IBM Software Group | Rational software
IBM Rational RequisitePro: Gereksinim Yönetimi
IBM Software Group | Rational software
Nasıl
Yapılacak?
Yazılım Mimarı – Zorluk Noktaları
Mimariyi tüm katılımcılara
anlatabilmem lazım, bunu nasıl
yapabilirim?
Her geliştirici kendi sitilini yaratıyor,
kodlamada ortak bir still, pattern
nasıl takip edebiliriz? Bunu nasıl
kontrol edebiliriz?
Anahtar Araçlar
IBM Rational Software Architect
IBM Rational Rose Data Modeler
Any of the Developer Role Products
Geliştiriciler deneyimli,fakat aynı
hataları tekrar tekrar yapıyorlar
Her geliştirici kendi yazdığı parçanın
çalıştığını söylüyor, fakat biraraya
getirip çalıştırdığımızda çalışmıyor
Mimar
Geliştirici
DBA
IBM Software Group | Rational software
IBM Rational Software Architect v6.0
“Application Analyzer”
• Automatic anti-pattern and
pattern detection
• Architectural discovery,
analysis, metrics, and
stability reporting
• Implementation level
architectural rules
IBM Rational Software
Architect
Java Structural Analysis
• Sample UML-to-code transforms for
EJB, Java, and C++
• Selective language to UML harvesting
“Modeler”
• UML 2.0 Diagrams for
Class, Communication,
Component, Composite
Structure, Deployment,
Activity, Sequence, State,
and Use Case
• OCL Support
• Automatic diagram
generation
• Pattern content
• Pattern/Transform
authoring framework and
services
• Extensive open API
• Java-based “scripting” for
extensibility
• HTML and XML based
data extraction and
reporting
• Extensive printing
• RAS tools
UML Language Transforms
Software Modeler
• C/C++ editors and build management
• Compiler and debugger integration
• UML code editors
“WSAD v6”
C/C++ Development Tools
Rational Application Developer
for WebSphere Software
RUP Configuration for SW Architects
ClearCase LT
•
•
•
•
•
•
•
•
•
•
•
•
•
JSF, SDO, Struts
Java GUI editor
Web diagram editor
Site designer
Web Services development tools
Database editing tools
EGL
EJB development tools
UML code editors for EJB, Java, and
Data
Static Analysis
Runtime Analysis
Component test automation
Portal/Portlet development tools
IBM Software Group | Rational software
Yazılım Geliştirici – Zorluk Noktaları
Kodlamak istiyorum; ama onlar
dökümantasyon da hazırlatıyorlar
Kodlamak istiyorum; bana yazdığım
kodlar için test yarattırıyorlar
Anahtar Araçlar
Sadece
Yap!
Kodlamak istiyorum; Onlar benden
daha az yaratıcılık daha çok çalışan
kod istiyorlar
Kodlamak istiyorum; onlar
kodlarımın çalışıp çalışmadığından
emin olmak istiyorlar
Java/J2
Geliştirici
Microsoft
Geliştirici
Web
Geliştirici
Teknik
Geliştirici
IBM Rational Web Developer
for WebSphere Software
IBM Rational Application Developer
for WebSphere Software
IBM Rational Software Architect
IBM WebSphere Studio Enterprise Developer
IBM WebSphere Studio Asset Analyzer
Rational Rose XDE Developer Family
IBM Software Group | Rational software
Palette
Design Editor
Data
Objects
Page Data
Property Editor
IBM Software Group | Rational software
IBM Software Group | Rational software
Doğru
yaptılar
mı?
Yazılım Test Uzmanı – Zorluk Noktaları
Aynı tuşlara tekrar tekrar
basmamamın bir yolu olmalı
Teslerimizi otomatize ettik, fakat log
‘lardan raporlarımıza cut/paste
etmek zorunda kalıyoruz
Java için ayrı Microsoft GUI için ayrı
terminal tabanlı uygulamalar için
ayrı test aracı öğrenmek ve
kullanmak çok büyük zaman kaybı
Testlerimizin kodların ne kadarını
test ettiğini / kapsadığını bilemiyoruz
Test
Uzmanı
Geliştirici
İş
Analisti
IBM Rational Manual Tester
IBM Rational Functional Tester
IBM Rational Performance Tester
Anahtar Araçlar
IBM Rational Robot
IBM Rational PurifyPlus
IBM Rational Test RealTime
IBM Software Group | Rational software
Zaman ve
bütçe
içinde
yapın !
Proje Yöneticisi – Zorluk Noktaları
Analistler çok soru soruyor !
Mimar gerekenden daha “zarif” ve karmaşık
yapılar kuruyor!
Geliştiriciler kuralları / stili takip etmiyorlar !
İletişimi ve iş dağılımını yönetmek
çok zor
Bukadar görünmeyen iş varken
zaman ve bütçe kısıtları içinde
kalmakta zorlanıyorum
Test uzmanları gereksinimlerin hepsini test
etmiyorlar !
Proje
Yöneticisi
Analist
Mimar
Geliştirici
Test
Uzmanı
IBM Rational Unified Process
IBM Rational SUMMIT Ascendant
IBM Rational Team Unifying Platform
IBM Rational Suite
Anahtar Araçlar
IBM Software Group | Rational software
Yönetim
Startejilerle aynı hizada ol, Yatırım Kararlarını Ver
Project Portfolio Management
Önceliklendir, Planla, Yönet, Ölç
Uygulama Döngüsü Yönetimi
Yazılımları Oluştur, İşlet ve Yönet
IT
IBM Software Group | Rational software
Takım – Zorluk Noktaları
İşAkışı
Değişiklik Yönetimi
Sürecin neresindeyiz?
Eğer A üzerinde değişiklik yaparsam ne gibi
potansiyel etkileri oluşur, A ile B arasındaki
bağımlılık nasıl?
Öncelikli olanları biliyormuyuz?
Gereksinimlerin tamamını gerçekleştirdik
mi?
Hatalar ve eksikleri biliyor muyuz?
Sürüm 1.5 ve sürüm 2 arasında ne farklar
var?
Sürüm 2 de çalışmaya başladık, şimdi sürüm
1,2 ye nasıl dönebilirim?
Proje
Yöneticisi
Analist
Mimar
Geliştirici
Test
Uzmanı
IBM Rational Unified Process
IBM Rational RequisitePro
IBM Rational ClearCase
IBM Rational ClearQuest
IBM Rational SoDA/Project Console
Anahtar Ürünler
IBM Software Group | Rational software
IBM Rational ClearCase : Değişiklik / Versiyon Yönetimi
IBM Software Group | Rational software
IBM Rational ClearQuest: Hata Yönetimi
IBM Software Group | Rational software
Gündem
Yazılım Mühendisliği’ne Bakış
Yazılım Mühendisliği’nde Bugün
IBM Yazılım Geliştirme Platformu
IBM Yazılım Geliştirme Araçları
Rational
Süreç İyileştirme
IBM Software Group | Rational software
Süreç İyileştirme
Olgunlaşma Etmenleri
Olgunlaşmada Neden Sürece Odaklanılır?
Süreç daha yararlı ve sonuç almada daha güçlü bir odaklanma sağlar.
İnsana odaklanmaya karşı
•
•
•
İş gücünüzün deneyimi ve eğitimi her zaman yeterli olmaz.
Çok fazla çalışma her zaman doğru cevap olmayabilir.
Daha iyi tanımlı süreçler daha cazip çalışmayı sağlayabilirler.
Teknolojiye odaklanmaya karşı
•
•
Teknoloji kendi kendine etkili bir şekilde çoğunlukla kullanılamaz.
Teknoloji uygun süreç haritası kavramını içerdiğinde maksimum faydayı
sağlar.
IBM Software Group | Rational software
Süreç ve İnsanlar
etkililiği(effective)
artırırken
Teknoloji de
etkinliği(efficient)
arttırır.
Süreç İyileştirme
Bir yazılım firmasının hedeflerine
ulaşmasında temel olan kavram yazılım
mühendisliği kültürüdür.
Kültürün olgunlaşmasında en önemli
faktörler ise;İnsan, Süreç ve Teknolojidir
Organizasyonun kültürü süreç
iyileştirmeyi desteklediği zaman,
çalışanlar faydalı değişikliğe (süreç
iyileştirmeye) karşı direnç göstermezler.
Süreç iyileştirme sonucunda iyileştirilmiş
teknikleri, pratikleri kullanarak daha iyi
yazılım ürünleri geliştirilmesi esastır.
Kalite
Ürün/Hizmet
Olgunlaşma,
İnsan
Süreç
Teknoloji
IBM Software Group | Rational software
Süreç İyileştirme Döngüsü
Organizasyonun ihtiyaçlarını incele
Performansı ölç, veri topla
Öncelikleri ve kapsamı belirle
Süreç iyileştirmeyi başlat
Süreç değerlendirmesi yap
Sonuçlara göre eylem planı hazırla
Eylem planını uygula
İyileştirmeyi doğrula
İyileştirmeyi kurumsallaştır
IBM Software Group | Rational software
Capability Maturity Model Integration (CMMI)
CMMI’ın Genel Yapısı/Olgunlaşma Seviyeleri
5 İyileşen
4 Niceliksel Yönetilen
3 Tanımlı
2 Yönetilen
1 Yerine Getirilen
0 Eksik
RUP, Rational ürünleri
ile doğrudan CMMI
Level 2’ye erişmeyi
sağlayan ve üst
seviyelere geçiş için
önemli bir basamak
olan entegre yazılım
geliştirme süreci olarak
tanımlanıyor
IBM Software Group | Rational software
Teşekkürler
Pınar Uğurlu
[email protected]
IBM Software Group | Rational software
Sorular?