Ders 3

advertisement
Object-Oriented Software Engineering
Using UML, Patterns, and Java
Chapter 3, Proje Organizasyonu
ve İletişim, Bölüm 1
Nasıl yapılmalı ?
Requirements
Analysis
Design
Implementation
System Testing
Delivery and Installation
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
2
Proje Yönetimi Kanunları
• Projeler %90’ı tamamlanıncaya kadar hızla ilerler
• Sonra %90 civarında takılıp kalırlar
• Proje içeriğinin değişmesi serbest bırakılırsa
değişimin hızı projedeki ilerlemenin önüne geçer
• Proje grupları ilerleme raporu vermek istemez
çünki rapor ilerlemenin az olduğunu gösterebilir
• Murphy’nin kanunları:
• “İşler iyi gitmeye başladığında birşeyler yanlış
gitmeye başlar”
• “İşler daha kötü olmaz derken daha da kötüsü olur”
• “İşler iyi gidiyor gibi görünüyorsa mutlaka görüp
düşünmediğin bir problem vardır.”
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
3
Ders Özeti
•
•
•
•
•
Proje Tanımı
Proje Organizasyonu
Roller
Görevler & Aktiviteler
İş çıktıları & Teslim edilebilir çıktılar
• Bu dersin önemli konusu
• Proje yönetimi konseptlerini geliştirici gözüyle görmek
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
4
Proje Tanımı
• Proje, ulaşmak için organize bir çalışma gerektiren
hedeflere, sınırlı kaynaklar ve sınırlı zamanla ulaşma
girişimidir
• Proje parçaları
•
•
•
•
Müşteriye teslim edilmesi gereken çıktılar
Bir zaman cizelgesi
Çıktıları üretmek ve teslim etmek için teknik ve idari aktiviteler
Aktiviteler tarafından harçanan kaynaklar (insanlar, bütçe)
• Proje yönetimine odaklan
•
•
•
•
Kaynakları yönet
Hesap verilebilirliliği sağla
Değişimi algıla
Hedeflere ulaşıldığından emin ol.
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
5
Bir Projenin Basit Obje Modeli
Proje
Teslim edilecek çıktılar
(Deliverables)
Bernd Bruegge & Allen H. Dutoit
Zaman Çizelgesi
(Schedule)
Aktivite (Aktivity)
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Kaynak
(Resource)
6
Modelin ayrıntılı hali
Equipment
Project
*
Facility
Resource
Schedule
*
*
Outcome
Work
Breakdown
Structure
*
produces
*
*
consumes
desWork
cribes Package
*
Work
depends
Set of Work
Work
Products
Product
Activity
Project
Internal
Work Product Deliverable
Bernd Bruegge & Allen H. Dutoit
Fund
Task
Project Function
Organization
*
respon- Organizational
Unit
sible
*
plays
for
Role
Participant
Staff
Department
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Team
7
Bir Projenin Dinamik Modeli
Scope Defined
Tanım (Definition)
do/Define Scope
Start
do/Assign Tasks
Tasks
Assigned
Termination
do/Deliver System
Steady State
do/Develop System
System Done
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
8
Proje Organizasyonu
• Proje organizasyonu kaynaklar ve katılımcılar
arasındaki ilişkilerin belirlenmesini sağlar
• Bir proje organizasyonu şunları tanımlamalı
• Kim karr verecek (karar yapısı - decision structure)
• Kim kime durum raporu verecek (reporting structure)
• Kim kim ile iletişim kuracak (communication structure)
Organizasyon
Bernd Bruegge & Allen H. Dutoit
*
Takım (Team)
*
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Katılımcı
(Participant)
9
İletişim yapısına bir örnek
Management
:Team
communicateDecision()
communicateDecision()
communicateStatus()
UserInterface
:Team
Bernd Bruegge & Allen H. Dutoit
communicateStatus()
Database
:Team
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Control
:Team
10
Rapor vermek ile İletişim
• Raporlama proje durumunun izlenmesinde yardımcı
olur
• Hangi işler bitirildi?
• Hangi işler cizelgenin gerisinde kaldı?
• Projede ilerlemeye engel olan faktörler neler?
• İki takım iletişim ihtiyacı duyduğunda hiyerarşi
üzerinden raporla iletişim kurmak yeterli olmaz
• Bir iletişim yapısına ihtiyaç var
• Her iki takımdan bir kişi iletişim sağlamakla görevlidir
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
11
İletişim yapısına bir örnek
UserInterface
:Team
Role
Interface with
other team
Alice
:Developer
communicates
Management:
Team
John
:Developer
API engineer
communicates
Architecture:
Team
communicates
Editor
Mary
:Developer
Documentation:
Team
communicates
Implementor
Chris
:Developer
Testing:
Team
Implementor
Sam
:Developer
Team leader
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
12
Hiyerarşik Proje Organizasyonu
Chief Executive
First Level Manager
(“Front-Line Manager”)
A
B
Project Members
A wants to talk to B: Information Flow
A wants to make sure B does a certain change: Controlflow
Organizasyonun temel karakteri:
Hiyerarşik yapıyı kullanan karmaşık kontrol ve
bilgi akışı
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
13
Peer-To-Peer İletişim
Project
Leader
Coaches
Subsystem Team
A
Subsystem Team Subsystem Team
B
Team
Members
A wants to talk to B: Simple Information Flow
A wants to make sure B does a certain change: Simple Controlflow
Organizasyonun temel karakteri:
Dinamik formasyondaki uniteler arasında Lineer olmayan bilgi akışı
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
14
Rol
• Her rol birtakım sorumluluklar tanımlar (“to-dos”)
• Örnekler
• Rol: Test Elemanı
• Test Yazar
• Hataları rapor eder
• Verilen çözümün belirli bir hatayı giderip gidermediğini kontrol
eder
• Rol: Sistem Mimarı
• Tasarım kararlarının tutarlı olmasını sağlar ve altsistemlerin
arayüzlerini belirler
• Sistem Entegrasyon Stratejisini formule eder
• Rol: İletişim Sorumlusu
• Facilitate communication between two teams.
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
15
Yazılım organizasyonlarında rol tipleri
Developer
API Engineer
Document Editor
Liaison
Configuration
Manager
Tester
Role
Manager
Project Manager
Team Leader
Application
Domain Expert
Consultant
Solution Domain
Expert
Client
End User
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
16
Sorumluluklar rollere,
roller insanlara verilir
“To Do” List for the Project
• Item 1
• Item 2
• Item 3
Role 1
Item 1
Item 2
Item 9
• Item 5
• Item 6
• Item 7
• Item 9
Bernd Bruegge & Allen H. Dutoit
Person A
Role 1
Role 2
Item 4
Item 5
Item 7
• Item 4
• Item 8
Team A .
Role 3
Item 3
Item 6
Item 8
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Role 2
Person B
Role 3
17
Rollerden kişilere olan ilişkiler
• Bire-bir
• Ideal ama çoğunlukla mümkün değil
• Çoktan-aza
• Her proje üyesi birden çok görev üstlenir
• İşin altından kalkamama tehlikesi
• İş yükünün dengeli dağıtılması lazım
• Çoktan-çoka
• Bazı insanların rolleri önemli değil
• Hesap verilebilirlik zorlaşır
• Projeyle bağlantı zayıflar
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
18
Görev(Task)
• Yöneticinin takip edebileceği en küçük iş miktarına
görev diyoruz
• 3-10 günlük işler
• Görev tanımlamaları
•
•
•
•
•
Rol
İş çıktısı
Başlama tarihi
Ne kadar sürecek
Gerekli kaynaklar.
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
19
Example: Tasks for building a House
Install
Interior
Plumbing
Install
Interior
Electrical
Install
Wallboard
Paint
Interior
Install
Flooring
Survey
Survey
Build
Build
Lay
Outside
Foundation
Lay
Foundation
Wall
Outside
Material
Buy
Buy
Excavate
ExcavateMaterial
FINISH
Install
Roofing
Wall
Request
Request
Permits
Install
Exterior
Doors
Paint
Exterior
Permits
Install
Exterior
Plumbing
Bernd Bruegge & Allen H. Dutoit
Install
Interior
Doors
Install
Exterior
Electrical
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Install
Exterior
Siding
20
Example: Tasks for building a house
Install
Interior
Plumbing
Install
Interior
Electrical
Install
Wallboard
Paint
Interior
Install
Flooring
START
Survey
Excavate
Buy
Material
Lay
Foundation
Build
Outside
Wall
FINISH
Install
Roofing
Request
Permits
Install
Exterior
Doors
Paint
Exterior
Install
Exterior
Plumbing
Bernd Bruegge & Allen H. Dutoit
Install
Interior
Doors
Install
Exterior
Electrical
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Install
Exterior
Siding
21
Görevler ve İş Paketleri (Work Package)
• Görevler iş pakatleri ile belirlenir
•
•
•
•
Yaılacak işin tarifi
İşe başlamak için ön koşullar, süre, gerekli kaynaklar
İş çıktıları ve bunların kabul koşulları
Riskler
• Her görevin bir bitiş kriteri olmalı
• Includes the acceptance criteria for the work products
(deliverables) produced by the task.
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
22
İş Çıktıları (Work Products)
• Görev sonunda görülebilen iş çıktısı
• Örnek
•
•
•
•
•
Bir doküman
Bir dokümanın incelenmiş hali
Bir sunum
Kod parçası
Bir test raporu
• Müşteriye sunulan iş çıktılarına ara çıktılar
(deliverables) denebilir
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
23
Görev büyüklükleri
• Görevler takip edilebilir büyüklükte
parçalardan oluşur
• You may not know how to decompose the
problem into tasks at first
• Depends on the nature of work and how well
task is understood.
• Doğru büyüklüğü bulmak çok önemlidir
• To-do lists from previous projects
• Each software development activity identifies
more tasks and modifies existing ones.
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
24
Aktiviteler (Activities)
• Önemi bir iş miktarıdır
• Projede kilometre taşlarını belirleyebilir:
• İlerlemeyi ölçmek için belirlenmiş durumlar
• İçeride belirlenen kontrol noktaları dışarıdan
görünmemeli
• Projenin kilometre taşları genelde proje planını belirler
• Birçok zaman aktiviteler daha üst seviye
aktivitelere gruplanır:
• Phase 1, Phase 2 …
• Step 1, Step 2 …
• İşin ve zorlukların bölünmesini sağlar
• Aktiviteler arasında öncelik ilişkileri olabilir
• Örnek: “A1 must be executed before A2”
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
25
Example: Activities for Building a House
Install
Interior
Plumbing
Install
Interior
Electrical
Install
Wallboard
Paint
Interior
Install
Flooring
START
Survey
Excavate
Buy
Material
Lay
Foundation
Build
Outside
Wall
FINISH
Install
Roofing
Request
Permits
Install
Exterior
Doors
Paint
Exterior
Install
Exterior
Plumbing
Bernd Bruegge & Allen H. Dutoit
Install
Interior
Doors
Install
Exterior
Electrical
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Install
Exterior
Siding
26
Example: Activities for Building a House
Install
Interior
Plumbing
Install
Interior
Electrical
Install
Finish Wallboard
Interior
Paint
Interior
Install
Flooring
START
Establish
Survey
Excavate
Foundation
Buy
Material
Build Build
Outside
Outside Wall
Wall
Lay
Foundation
FINISH
Install
Roofing
Request
Permits
Install
Exterior
Doors
Paint
Exterior
Install
Exterior
Plumbing
Bernd Bruegge & Allen H. Dutoit
Install
Interior
Doors
Install
Finish Exterior
Exterior Siding
Install
Exterior
Electrical
Object-Oriented Software Engineering: Using UML, Patterns, and Java
27
Examples of Software Engineering
Activities
•
•
•
•
•
•
•
•
Planning
Requirements Elicitation
Analysis
System Design
Object Design
Implementation
Testing
Delivery
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
28
Associations between Tasks, Activities,
Roles, Work Products, and Work Packages
describes
Work Package
*
results in
Work Product
Unit Of Work
1
Activity
Task
*
1
assigned to
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Role
29
Summary
• Projects are concerted efforts towards a goal
that take place within a limited time
• Project participants are organized in terms of
teams, roles, control relationships, and
communication relationships.
• An individual can fill more than one role.
• Work is organized in terms of tasks assigned to
roles and producing work products.
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
30
Backup Slides
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
31
Download