Transcript Slide 1

X36SSP
Správa softwarových produktů
5. přednáška
Ing. Martin Molhanec
ČVUT – FEL
K13113
OBJECT ORIENTED
SOFTWARE PROCESS
Dnešní témata
•Historie SP
•Co je to OOSP
•Z jakých částí se skládá
•Inicializační fáze OOSP
Software proces
• Způsob vytváření softwarových
produktů
–
–
–
–
Programů
Informačních systémů
Webových sídel
…
Co je?
• Proces
– Série akcí, která má svůj vstup a svůj výstup
• Pattern (vzor)
– Popis obecného způsobu dobrého řešení
• Antipattern
– Popis obecného způsobu špatného řešení
• OOSP
– Object-Oriented Software Process
Historie SP
• Sériový vývoj (vodopád)
– Nevýhodou je malá pružnost
• Inkrementální (spirálový)
– U velkých projektů je náročný na zdroje
• Iterativní
– Vývoj se děje po kouskách
• Paralelní
Dobrá
cesta
– Vývoj se děje současně
Agilní metodiky
objektově orientované paradigma
a velké projekty
Velké projekty je potřeba kvalifikovaně plánovat a řídit tak, aby se přednosti OO
paradigmatu projevily a ne aby se staly ohrožením projektu. Není možné se pouze
spoléhat na „zázračné“ vlastnosti nových programovacích jazyků a nástrojů.
pro oblast řízení a podpory softwarových projektů máme různé metodiky:
Rational Software Corporation.: RUP - Rational Unified Process




rozsáhlá sada různých nástrojů a technik, je třeba si umět vybrat
nepokrývá fázi údržby a provozu
je šitý na míru smíšeným vývojovým nástrojům
předpokládá klasický vývoj s UML
S. W. Ambler: Object-Oriented Process Pattern




jednodušší, procesně orientovaný, zahrnuje CMM, SCM, metriky, ...
fáze údržby a provozu je aktivní součástí celého procesu
důraz na využití refactoringu, znovupoužitelnosti a vlastností čistých nástrojů
použitelný i pro XP, BORM
SOFTWARE DEVELOPMENT
PROCESS
project initiation
in-house development
using packages
INITIATION
maintenance &
support
CONSTRUCTION
• well define user
requirements
• well end efficient
performed analysis
DELIVER
• start system use
seamless and efectively
MAINTAIN & SUPORT
• to have satisfied users
• repair defects
• select
optimal solution
• best system
assembling and
testing
• prepare all required
for project start success
...
• to have good
documentation
...
• well prepare users
of the system
...
• to have good
knowledge base for
possible new version
start
...
key performance issues
Each phase has associate its key performance issues, corresponding
roles, activities etc.
GO NEXT
Advanced SW Development
Model (ASDM)
• Vychází z praktických zkušeností na IT projektech.
• Inspirace metodikou „object-oriented process pattern“ (Scott W. Amblera).
• Inspirace některými prvky metody RUP.
INICIACE
KONSTRUKCE
PROVOZ
DODÁNÍ
• správně definovat
požadavky na systém
• provést dobře
a efektivně analýzu
• efektivně zahájit
provoz systému
• spokojenost
uživatelů s podporou
• vybrat optimální
variantu řešení
• co nejlépe sestavit
a otestovat systém
• dobře zaškolit
uživatele
• rychlá oprava chyb
• naplánovat a připravit
vše potřebné
k zahájení projektu
...
oblasti klíčových
výkonnostních
požadavků
• mít dostatečnou
znalostní bázi
požadavků a návrhů
pro novou verzi
• mít řádnou
dokumentaci
...
...
...
Pro každou fázi jsou identifikovány charakteristické činnosti
a k nim jsou definovány pracovní role a odpovědnosti.
SOFTWARE DEVELOPMENT PROCESS
project initiation
INITIATE
in-house development
using packages
CONSTRUCT
JUSTIFY
define and
validate
REQUIREMENTS
define
initial
management
DOCUMENTS
define
INFRASTRUCTURE
MODEL
TEST
in the small
GENERALIZE
PROGRAM
PROCESS
project office team
user experts
maintenance &
support
MAINTAIN & SUPORT
DELIVER
TEST
in the large
REWORK
development team
RELEASE
SUPPORT
ASSESS
identify
defects and
enhancements
support team
end-users
quality assurance, manage project, trainig&education,
manage people, manage risk, manage reuse, manage metrics,
manage deliverables, manage infrastructure GO NEXT
Scott W. Ambler: Object-Oriented Process Pattern
činnosti provozované
na vývojové a testovací platformě
INITIATE
činnosti provozované
na provozní platformě
CONSTRUCT
DELIVER
MAINTAIN & SUPPORT
JUSTIFY
DEFINE
REQUIREMENTS
MODEL
TESTS
IN
THE SMALL
TESTS
IN
THE LARGE
RELEASE
SUPPORT
DEFINE
MGMT
DOCUMENTS
DEFINE
INFRASTRUCTURE
GENERALIZE
PROGRAM
REWORK
ASSESS
IDENTIFY
DEFECTS
zahajovací tým
pracovní tým
podpora týmem projektové kanceláře
spolupráce zástupců budoucích uživatelů
provozní tým
podpora týmem
„help desk“
spolupráce všech budoucích uživatelů
PODPŮRNÉ PROCESY
zajištění kvality, people management, risc management, reuse management,
právní zabezpečení, bezpečnost, řízení infrastruktury, ...
SUPPORT PROCESSES FOR
THE ADVANCE SOFTWARE DEVELOPMENT MODEL
QUALITY
ASSURANCE
FOLLOW
ISO
STANDARDS
REUSE
MANAGEMENT
COLLECT
REUSABLE
ITEMS
RISK MANAGEMENT
TRAINING & EDUCATION
IDENTIFY
A RISK
ASSESS
THE RISK
DEVELOP
MITIGATION
STRATEGIES
DEVELOP
A RISK
MANAGEMENT
PLAN
MITIGATE
THE RISK
REPORT
RISK
METRICS
MANAGEMENT
DEVELOP
METRICS
PLAN
PERFORM
AND
DISCUSS
PERFORM
INTRO
TRAININGS
PERFORM
DETAILED
TRAININGS
DEVELOP
A TRAINING
PLAN
DELIVERABLES
MANAGEMENT
MANAGE
SOFTWARE
CONFIGURATION
INFRASTRUCTURE
MANAGEMENT
APPLY
CMM, …
TECHNIQUES
Nasazení rolí v jednotlivých
fázích je odlišné
model
program
generalize
test in
the small
…
development
engineer
modeler
project manager
subject matter
expert / user
technical writer
Složení týmu a nasazení jeho členů se v různých
fázích ASDM mění.
Alokace lidských zdrojů
INITIATE
CONSTRUCT
DELIVER
MAINTAIN & SUPPORT
!!! při zahájení projektu se nemá plýtvat
pracovní silou !!!
poměr programátorských profesí
k analytickým klesá se mění v závislosti na
fázi projektu.
Struktura ASDM
allocated
maintenance
changes
Co do dané fáze
vstupuje!
from maintain & support phase
INITIATE PHASE
The main goal is to lay the foundation
for a successful project. This is hard
due to pressures by senior management
and developers to start “real work” as
soon as possible.
define
defineand
and
validate
validate
REQUIREREQUIREMENTS
MENTS
JUSTIFY
JUSTIFY
define
define
initial
initial
management
management
DOCUMENTS
DOCUMENTS
Co se v dané
fázi dělá!
management documents
initial req uirement
project infrastructure
project fund ing
project charter
define
define
INFRAINFRAST
RUCTURE
ST RUCTURE
potential roles during this phase :
project manager
standards specialist
analyst
tools specialist
subject matter expert
project sponsor
quality assurance
engineer
estimator / planner
JAD / meeting facilitator
process specialist
infrastructure engineer
Co je výstupem
dané fáze!
technical writer
Jaké role se v
dané fázi
uplatňují!
Struktura ASDM
allocated
maintenance
changes
from maintain & support phase
INITIATE PHASE
The main goal is to lay the foundation
for a successful project. This is hard
due to pressures by senior management
and developers to start “real work” as
soon as possible.
define
defineand
and
validate
validate
REQUIREREQUIREMENTS
MENTS
JUSTIFY
JUSTIFY
define
define
initial
initial
management
management
DOCUMENTS
DOCUMENTS
management documents
initial req uirement
project infrastructure
project fund ing
project charter
define
define
INFRAINFRAST
STRUCTURE
RUCTURE
potential roles during this phase :
project manager
standards specialist
analyst
tools specialist
subject matter expert
project sponsor
quality assurance
engineer
estimator / planner
JAD / meeting facilitator
process specialist
infrastructure engineer
This is determining what needs to be built. Initial requirements are a foundation from
which modeling can begin.
DEFINE AND VALIDATE INITIAL REQUIREMENTS
technical writer
vision
commitment
reasib ility study
existing applications
main ten ance changes
DEFINE
DEFINE
SYSTEM
SYSTEM
FUNCTIONS
FUNCTIONS
DEFINE
DEFINE
SYSTEM
SYSTEM
SCENARIOS
SCENARIOS
DRAW
DRAW
PROCES
PROCES
MAPS
MAPS
HOLD
HOLD
SESSIONS
SESSIONS
CREATE
CREATE
MODELING
MODELING
CARDS
CARDS
PRIORITIZE
PRIORITIZE
REQUIREREQUIREMENTS
MENTS
INTERVIEW
INTERVIEW
USERS
USERS
SIMULATE
SIMULATE
SCENARIOS
SCENARIOS
WALK
WALK
THROUGH
THROUGH
PROT
OTYPES
PROTOTYPES
requirement
documentation
(forms, tables, diagrams, ...)
project scop e
INITIATE PHASE
The main goal of the Initiate phase
is to lay the foundation for
a successful project.
INITIATE PHASE
The main goal is to lay the foundation
for a successful project. This is hard due
to pressures by senior management and
developers to start “real work” as soon
as possible.
allocated
maintenance
changes
define and
validate
REQUIREMENTS
JUSTIFY
define
initial
management
DOCUMENTS
from maintain & support phase
management documents
initial requirement
project infrastructure
project funding
project charter
define
INFRASTRUCTURE
to construct phase
potential roles during this phase:
project manager
standards specialist
analyst
tools specialist
subject matter expert
project sponsor
quality assurance
engineer
estimator / planner
JAD / meeting facilitator
process specialist
infrastructure engineer
technical writer
This is determining what needs to be built.
Initial requirements are a foundation from which modeling can begin.
DEFINE AND VALIDATE INITIAL REQUIREMENTS
vision
commitment
reasibility study
existing applications
maintenance changes
DEFINE
SYSTEM
FUNCTIONS
DEFINE
SYSTEM
SCENARIOS
DRAW
PROCES
MAPS
HOLD
SESSIONS
CREATE
MODELING
CARDS
PRIORITIZE
REQUIREMENTS
INTERVIEW
USERS
SIMULATE
SCENARIOS
WALK
THROUGH
PROTOTYPES
requirement
documentation
(forms, tables, diagrams, ...)
project scope
Analýza požadavků
Purpose of this process is to initiate documents such as the project plan
and project risk assessment.
They must be started at the beginning of the project and then
maintained throughout its life.
DEFINE INITIAL MANAGEMENT DOCUMENTS
DEFINE
TASKS
reasibility study
project infrastructure
initial requirements
project objectives
CREATE
INITIAL
ESTIMATE
CREATE
INITIAL
SCHEDULE
CREATE
INITIAL RISK
ASSESMENT
DEFINE
PROJECT
SCOPE
CREATE
INITIAL
QUALITY
ASSUR. PLAN
project plan
risk assessment
master test
quality assurance plan
Definice dokumentů pro
management
The purpose is to determine whether or not an application should be built.
It is a reality check to determine whether or not a project makes a sense.
JUSTIFY
vision
estimate
requirements documentation
schedule
risk assessment
IDENTIFY
IMPLEMENTATION
ALTERNATIVES
DETERMINE
OPERATIONAL
FEASIBILITY
DETERMINE
ECONOMIC
FEASIBILITY
DETERMINE
TECHNICAL
FEASIBILITY
IDENTIFY
RISKS
feasibility study
recommendations
project funding
risk assessment
CHOOSE
ALTERNATIVE
Studie proveditelnosti
Feasibility Study
The project infrastructure is made up of the project team,
the tools that they will use, and a tailored version
of the software development process that the team will follow.
DEFINE INFRASTRUCTURE
SELECT
TOOLS
project plan
initial requirements
feasibility study
existing infrastructure
SELECT
METHODOLOGY
DEFINE TEAM
SELECT
STANDARDS
AND
GUIDELINES
GREATE
GROUP
KNOWLEDGE
BASE
NEGOTIATE
DELIVERABLES
team definition
(profile, skill database, ...)
tools selection
tailored software process
group knowledges
Definice infrastruktury
(Architektury projektu)
INITIATE PHASE
Checklists
INITIATE
entrance conditions checklist
senior management support exists to initiate
a new project
 maintenance changes pertaining to previous
version (if any) are identified
 infrastructure is available

INITIATE
to be performed checklist






the initial requirements have been defined and
validated
the initial management documents have been defined
the project has been technically, economically and
operationally justified
required project infrastructure has been defined
potential reusable artifacts have been identified
project team has been identified and trained where
appropriate
INITIATE
exit conditions checklist











project plan has been accepted by senior
management
project schedule has been accepted by senior mgmt
initial risk assessment has been performed
initial requirements have been accepted by senior
management
appropriate standards and guidelines have been
identified
software development process has been tailored to
meet specific needs for the project
appropriate tools are prepared/installed
project funding has been obtained
project charter has been defined and accepted
project team has been assembled
lessons learned have been identified - team should take
the time to consider the processes that could be improved
INITIATE PHASE
Define and validate initial
requirements Stage
Checklists
Define and validate initial req.
to be performed checklist










business process models have been developed and validated
user interface prototype has been developed and validated (if
appropriate)
technical requirements have been documented and validated
operation and support requirements have been documented and
validated
requirements have been prioritized
requests of appropriate stakeholders have been considered
reusable artifacts have been identified
risk assessment document has been updated
decisions (both made and forgone) were documented into group
memory
metrics have been collected
Define and validate initial req.
exit conditions checklist



requirement documents have been validated and accepted by
the user community
requirement documents have been validated and accepted by
the senior management
the scope of the project has been defined and accepted definition of the functionality that will, and will not, be
implemented
INITIATE PHASE
Define the initial management
documents Stage
Checklists
Define the initial mgmt documents
entrance conditions checklist




the project infrastructure has been selected
the feasibility study has been at least started
the project objectives have been identified and agreed to
initial requirements have been defined
Define the initial mgmt documents to
be performed checklist












build-versus-buy decisions have been made
application release schedule has been defined or updated
project estimate has been developed and accepted
metric plan has been developed and accepted
project plan has been developed and accepted
assumptions and constraints have been documented
risk assessment has been started
test plan has been developed and accepted
reusable artifacts have been identified
risk assessment document has been updated
decisions (both made and forgone) were documented into group
memory
metrics have been collected
Define the initial mgmt documents
exit conditions checklist



initial version of the project plan has been accepted
by senior management
initial version of the project plan has been accepted
by the development team
initial version of the risk assessment has been
accepted by senior management
INITIATE PHASE
Justify Stage
Checklists
Justify
entrance conditions checklist





development of the requirements documents has
begun
development of the project plan has begun
development of the risk assessment has begun
definition of the project infrastructure has begun
access to key users, technical experts, and financial
experts has been obtained
Justify
to be performed checklist









implementation alternatives were identified and considered
economic feasibility of each alternative was determined
cost/benefit analysis was performed
technical feasibility of each alternative was determined
operational feasibility of each alternative was determined
alternatives were suggested to senior management for approval
risk assessment document has been update
decisions (both made and forgone) were documented into group
memory
metrics have been collected
INITIATE PHASE
Define infrastructure Stage
Checklists
Define infrastructure
entrance conditions checklist




development of the initial requirements has begun
development of the project plan has begun
development of the feasibility study has begun
existing infrastructure is available
Define infrastructure
to be performed checklist












project team has been defined
skill assessment for each team member has been defined
required training for each member has been defined and
performed
project skill matrix was developed
potential subcontractors have been contracted
project deliverables have been negotiated with senior management
and agreed to
group memory has been organized
shared library of books etc. is available
reusable artifacts have been identified
risk assessment document has been updated
decisions (both made and forgone) were documented into group
memory
metrics have been collected
Define infrastructure
exit conditions checklist




the team has been accepted by senior management
the tailored software process has been accepted by
the team members
the tailored software process has been accepted by
senior management
group memory has been initiated
Poznámky
•Co je to studie proveditelnosti
•Co je to infrastruktura projektu
•Rizika v inicializační fázi
•Co je to Group Memory
•Co je to tým
•Co je to Change request
Feasibility study
• can the system be built
(technically feasible)
• can we afford to build the system
(economically feasible)
• can we maintain and support the system
(operationally feasible)
Project infrastructure
• team defined for the project
• tools defined for the project
• processes defined/selected for the
project
Potential risks in initiate
phase
• senior management pressures to start
too early
• pressure to bring people on the project
too early
• beware the new toy syndrome
• resistance to change
Group memory
• records of what team accomplished
• decisions made
• lessons learned
Team definition
• description of who will be involved
with a project incl. its reporting
structure
• project skill matrix
• organization chart
Change requests
• software change request for
potential improvements of the
deliverable or inconsistency with the
requirements
• software problem report of potential
software defects identified
A na závěr!
Pro řízení velkých projektů využívajících
objektovou technologii je třeba
nastavit procesy včetně rolí participantů v procesech
 zajistit potřebnou infrastrukturu (projektová kancelář, nástroje, ...)
 vyřešit problém měření kvality
 vhodně nastavit motivační faktory
podporovat objektově orientované paradigma
 shromažďovat znovupožitelné komponenty (CONSTRUCT/generalize)
 uchovávat všechna rozhodnutí a informace, budovat “group memory”
 využívat “group memory” (INITIATE/justify)
 rozvíjet lidský potenciál (DELIVER/assess)
rozlišovat platformy (vývojová, testovací, provozní)
 není možné se spoléhat na “zázračné” vlastnosti moderních nástrojů