Upload
maylin
View
26
Download
0
Embed Size (px)
DESCRIPTION
X36SSP Správa softwarových produktů 6. přednáška. Ing. Martin Molhanec ČVUT – FEL K13113. OBJECT ORIENTED SOFTWARE PROCESS. Dnešní témata. Připomenutí co je to OOSP Konstrukční fáze OOSP. Opakování!. SOFTWARE DEVELOPMENT PROCESS. project initiation. in-house development - PowerPoint PPT Presentation
Citation preview
X36SSPX36SSPSpráva softwarových Správa softwarových
produktůproduktů6. 6. přednáškapřednáška
X36SSPX36SSPSpráva softwarových Správa softwarových
produktůproduktů6. 6. přednáškapřednáška
Ing. Martin MolhanecIng. Martin MolhanecČVUT – FELČVUT – FEL
K13113K13113
OBJECT ORIENTEDOBJECT ORIENTED
SOFTWARE PROCESSSOFTWARE PROCESS
Dnešní témataDnešní témataDnešní témataDnešní témata
•Připomenutí co je to Připomenutí co je to OOSPOOSP•Konstrukční fáze OOSPKonstrukční fáze OOSP
maintenance & supportmaintenance & support
in-house developmentusing packagesin-house developmentusing packages
project initiationproject initiation
SOFTWARE DEVELOPMENT PROCESS
INITIATIONINITIATION CONSTRUCTIONCONSTRUCTION DELIVERDELIVER MAINTAIN & SUPORTMAINTAIN & SUPORT
• well define userwell define user requirements requirements
• select select optimal solutionoptimal solution
• prepare all requiredprepare all requiredfor project start successfor project start success. . . . . .
• well define userwell define user requirements requirements
• select select optimal solutionoptimal solution
• prepare all requiredprepare all requiredfor project start successfor project start success. . . . . .
key performance issues
Each phase has associate its key performance issues, corresponding roles, activities etc.
• well end efficient well end efficient performed analysisperformed analysis
• best system best system assembling andassembling andtestingtesting
• to have good to have good documentationdocumentation. . . . . .
• well end efficient well end efficient performed analysisperformed analysis
• best system best system assembling andassembling andtestingtesting
• to have good to have good documentationdocumentation. . . . . .
• start system usestart system useseamless and efectivelyseamless and efectively
• well prepare userswell prepare usersof the systemof the system
. . . . . .
• start system usestart system useseamless and efectivelyseamless and efectively
• well prepare userswell prepare usersof the systemof the system
. . . . . .
• to have satisfied usersto have satisfied users
• repair defectsrepair defects
• to have good to have good knowledge base for knowledge base for possible new version possible new version startstart. . . . . .
• to have satisfied usersto have satisfied users
• repair defectsrepair defects
• to have good to have good knowledge base for knowledge base for possible new version possible new version startstart. . . . . .
GO NEXT
Opakování!
Advanced SW Development Model
(ASDM)
INICIACEINICIACE KONSTRUKCEKONSTRUKCE DODÁNÍDODÁNÍ PROVOZPROVOZ
• 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.
• správně definovatsprávně definovatpožadavky na systémpožadavky na systém
• vybrat optimálnívybrat optimálnívariantu řešenívariantu řešení
• naplánovat a připravitnaplánovat a připravitvše potřebné vše potřebné k zahájení projektuk zahájení projektu
. . . . . .
• správně definovatsprávně definovatpožadavky na systémpožadavky na systém
• vybrat optimálnívybrat optimálnívariantu řešenívariantu řešení
• naplánovat a připravitnaplánovat a připravitvše potřebné vše potřebné k zahájení projektuk zahájení projektu
. . . . . .
oblasti klíčovýchvýkonnostních
požadavků
Pro každou fázi jsou identifikovány charakteristické činnosti
a k nim jsou definovány pracovní role a odpovědnosti.
• provést dobřeprovést dobřea efektivně analýzua efektivně analýzu
• co nejlépe sestavit co nejlépe sestavit a otestovat systéma otestovat systém
• mít řádnoumít řádnoudokumentacidokumentaci
. . . . . .
• provést dobřeprovést dobřea efektivně analýzua efektivně analýzu
• co nejlépe sestavit co nejlépe sestavit a otestovat systéma otestovat systém
• mít řádnoumít řádnoudokumentacidokumentaci
. . . . . .
• efektivně zahájitefektivně zahájitprovoz systémuprovoz systému
• dobře zaškolit dobře zaškolit uživatele uživatele
. . . . . .
• efektivně zahájitefektivně zahájitprovoz systémuprovoz systému
• dobře zaškolit dobře zaškolit uživatele uživatele
. . . . . .
• spokojenost spokojenost uživatelů s podporouuživatelů s podporou
• rychlá oprava chybrychlá oprava chyb
• mít dostatečnou mít dostatečnou znalostní báziznalostní bázipožadavků a návrhůpožadavků a návrhůpro novou verzipro novou verzi
. . . . . .
• spokojenost spokojenost uživatelů s podporouuživatelů s podporou
• rychlá oprava chybrychlá oprava chyb
• mít dostatečnou mít dostatečnou znalostní báziznalostní bázipožadavků a návrhůpožadavků a návrhůpro novou verzipro novou verzi
. . . . . .
Opakování!
maintenance & supportmaintenance & support
in-house developmentusing packagesin-house developmentusing packages
project initiationproject initiation
INITIATEINITIATE CONSTRUCTCONSTRUCT DELIVERDELIVER MAINTAIN & SUPORTMAINTAIN & SUPORT
JUSTIFYJUSTIFY
define and validate
REQUIRE-MENTS
define and validate
REQUIRE-MENTS
define initial
managementDOCUMENTS
define initial
managementDOCUMENTS
define INFRA-
STRUCTURE
define INFRA-
STRUCTURE
MODELMODEL TESTin the small
TESTin the small
GENERALIZEGENERALIZE PROGRAMPROCESSPROGRAMPROCESS
TESTin the large
TESTin the large RELEASERELEASE
REWORKREWORK ASSESSASSESS
SUPPORTSUPPORT
identifydefects and
enhance-ments
identifydefects and
enhance-ments
SOFTWARE DEVELOPMENT PROCESS
project office teamproject office team development teamdevelopment team support teamsupport team
user expertsuser experts end-usersend-users
quality assurance, manage project, trainig&education, manage people, manage risk, manage reuse, manage metrics,
manage deliverables, manage infrastructure GO NEXT
Opakování!
činnosti provozované činnosti provozované na provozní platforměna provozní platforměčinnosti provozované činnosti provozované na provozní platforměna provozní platformě
činnosti provozované činnosti provozované na vývojové a testovací platforměna vývojové a testovací platformě
činnosti provozované činnosti provozované na vývojové a testovací platforměna vývojové a testovací platformě
INITIATEINITIATEINITIATEINITIATE CONSTRUCTCONSTRUCTCONSTRUCTCONSTRUCT DELIVERDELIVERDELIVERDELIVER MAINTAIN MAINTAIN & & SUPPORTSUPPORTMAINTAIN MAINTAIN & & SUPPORTSUPPORT
PODPŮRNÉ PROCESYPODPŮRNÉ PROCESYzajištění kvality, people management, risc management, reuse management, zajištění kvality, people management, risc management, reuse management,
právní zabezpečení, bezpečnost, řízení infrastruktury, ... právní zabezpečení, bezpečnost, řízení infrastruktury, ...
PODPŮRNÉ PROCESYPODPŮRNÉ PROCESYzajištění kvality, people management, risc management, reuse management, zajištění kvality, people management, risc management, reuse management,
právní zabezpečení, bezpečnost, řízení infrastruktury, ... právní zabezpečení, bezpečnost, řízení infrastruktury, ...
JUSTIFYJUSTIFYJUSTIFYJUSTIFYDEFINEDEFINE
REQUIRE-REQUIRE-MENTSMENTS
DEFINEDEFINEREQUIRE-REQUIRE-
MENTSMENTS
DEFINEDEFINEMGMTMGMT
DOCUMENTSDOCUMENTS
DEFINEDEFINEMGMTMGMT
DOCUMENTSDOCUMENTS
DEFINEDEFINEINFRA-INFRA-
STRUCTURESTRUCTURE
DEFINEDEFINEINFRA-INFRA-
STRUCTURESTRUCTURE
MODELMODELMODELMODELTESTSTESTS
IN IN THE SMALLTHE SMALL
TESTSTESTSIN IN
THE SMALLTHE SMALL
GENERALIZEGENERALIZEGENERALIZEGENERALIZE PROGRAMPROGRAMPROGRAMPROGRAM
TESTSTESTSININ
THE LARGETHE LARGE
TESTSTESTSININ
THE LARGETHE LARGERELEASERELEASERELEASERELEASE
REWORKREWORKREWORKREWORK ASSESSASSESSASSESSASSESS
SUPPORTSUPPORTSUPPORTSUPPORT
IDENTIFY IDENTIFY DEFECTSDEFECTSIDENTIFY IDENTIFY DEFECTSDEFECTS
podpora týmem podpora týmem „help desk“„help desk“
podpora týmem podpora týmem „help desk“„help desk“podpora týmem projektové kancelářepodpora týmem projektové kancelářepodpora týmem projektové kancelářepodpora týmem projektové kanceláře
spolupráce všech budoucích uživatelůspolupráce všech budoucích uživatelůspolupráce všech budoucích uživatelůspolupráce všech budoucích uživatelůspolupráce zástupců budoucích uživatelůspolupráce zástupců budoucích uživatelůspolupráce zástupců budoucích uživatelůspolupráce zástupců budoucích uživatelů
provozní týmprovozní týmprovozní týmprovozní týmpracovní týmpracovní týmpracovní týmpracovní týmzahajovací týmzahajovací týmzahajovací týmzahajovací tým
Scott W. Ambler: Object-OrientedProcess PatternOpakování!
SUPPORT PROCESSES FOR THE ADVANCE SOFTWARE DEVELOPMENT MODEL
RISK MANAGEMENTRISK MANAGEMENT
IDENTIFYA RISK
IDENTIFYA RISK
ASSESSTHE RISKASSESS
THE RISK
DEVELOPMITIGATIONSTRATEGIES
DEVELOPMITIGATIONSTRATEGIES
MITIGATETHE RISKMITIGATETHE RISK
REPORTRISK
REPORTRISK
QUALITYASSURANCE
QUALITYASSURANCE
FOLLOWISO
STANDARDS
FOLLOWISO
STANDARDS
TRAINING & EDUCATIONTRAINING & EDUCATION
DEVELOPA TRAINING
PLAN
DEVELOPA TRAINING
PLAN
REUSEMANAGEMENT
REUSEMANAGEMENT
COLLECTREUSABLE
ITEMS
COLLECTREUSABLE
ITEMS
METRICSMANAGEMENT
METRICSMANAGEMENT
DEVELOPMETRICS
PLAN
DEVELOPMETRICS
PLAN
DELIVERABLESMANAGEMENT
DELIVERABLESMANAGEMENT
INFRA-STRUCTURE
MANAGEMENT
INFRA-STRUCTURE
MANAGEMENT
MANAGESOFTWARE
CONFI-GURATION
MANAGESOFTWARE
CONFI-GURATION
APPLYCMM, …
TECHNIQUES
APPLYCMM, …
TECHNIQUES
DEVELOPA RISK
MANAGEMENTPLAN
DEVELOPA RISK
MANAGEMENTPLAN
PERFORMINTRO
TRAININGS
PERFORMINTRO
TRAININGS
PERFORMDETAILEDTRAININGS
PERFORMDETAILEDTRAININGS
PERFORMAND
DISCUSS
PERFORMAND
DISCUSS
Opakování!
CONSTRUCTCONSTRUCT PHASE PHASECONSTRUCTCONSTRUCT PHASE PHASEThe main goal of the Construction phase The main goal of the Construction phase
is to build working software that is is to build working software that is ready to be tested and delivered to your ready to be tested and delivered to your
user community.user community.
MODELMODEL TESTin the small
TESTin the small
GENERALIZEGENERALIZE PROGRAMPROCESSPROGRAMPROCESS
allocated maintenance
changes
management documentsinitial requirementproject infrastructureproject fundingproject charter
potential roles during this phase:
project managerproject manager
software applicationdocumentationrequirement allocation matrixmodels, source codemanagement documents
team leaderteam leader
software conf. managersoftware conf. manager
test managertest manager
architectural modelerarchitectural modeler
domain programmerdomain programmer
subject matter expertsubject matter expert
quality assurance quality assurance engineerengineerdomain modelerdomain modeler
mentormentor
infrastructure engineerinfrastructure engineer
technical writertechnical writer
component engineercomponent engineer
reuse engineerreuse engineer
test engineertest engineer
proof-of-concept engineerproof-of-concept engineer
from maintain & support phase
CONSTRUCT PHASEThe main goal of the construct phase is to build working software that is ready to be tested and delivered to its user community.
MODEL MODEL
ARCHITECTU-RAL
MODELING
ARCHITECTU-RAL
MODELING
requirement documentationmodeling standards
TECHNICALMODELING
TECHNICALMODELING
HUMAN INTERACTION
DOMAINMODELING
HUMAN INTERACTION
DOMAINMODELING
PROBLEMDOMAIN
MODELING
PROBLEMDOMAIN
MODELING
MANAGEMETRICSMANAGEMETRICS
TASKMODELING
TASKMODELING
models (diagrams, docs)test planrequirement alloc. matrix
The developers first need to understand what the are supposed to build. This “software analysis and design” process should be performed iteratively, because of developers do not need to do all of the analysis first time, then do all of the design and then all of the coding.
PROGRAM PROCESS PROGRAM PROCESS
UNDERSTANDMODELS
UNDERSTANDMODELS
modelsproject infrastructure
MAKESOURCE
CODE
MAKESOURCE
CODE
PREPAREPROJECT
INTEGRATIONPLAN
PREPAREPROJECT
INTEGRATIONPLAN
PREPARECODE FOR
INSPECTIONS
PREPARECODE FOR
INSPECTIONS
INTEGRATEAND
PACKAGE
INTEGRATEAND
PACKAGE
SYNCHRONIZESOURCE CODE
WITHMODELS
SYNCHRONIZESOURCE CODE
WITHMODELS
packaged applicationsource codesoftware components
OPTIMIZE CODE
OPTIMIZE CODE
BUILDSOFTWARE
APPLICATION
BUILDSOFTWARE
APPLICATION
REUSEEXISTING
CODE ANDCOMPONENTS
REUSEEXISTING
CODE ANDCOMPONENTS
DOCUMENTSOFTWARE
APPLICATION
DOCUMENTSOFTWARE
APPLICATION
DOCUMENTSOURCE
CODE
DOCUMENTSOURCE
CODE
PERFORMMETRICS
PERFORMMETRICS
During this process the source code is written, documented, reviewed, tested and packaged for delivery. For this to be successful, the models must drive the development of the source code. This process is far more to writing source code of programs.
GENERALIZE GENERALIZE
IDENTIFYPOTENTIALREUSABLE
ITEMS
IDENTIFYPOTENTIALREUSABLE
ITEMS
project deliverables
HOLDGENERALIZA-
TIONSESSIONS
HOLDGENERALIZA-
TIONSESSIONS
RELEASERELEASEMAKE
DOCUMENTA-TION
MAKEDOCUMENTA-
TION
PERFORMMETRICS
PERFORMMETRICS
REFACTORCODE
REFACTORCODE
reusable items
This is the recognition that the short-term pressures of software development result in the temptation for developers to settle for specific, non-reusable solutions. In this process, application specific items are identified and then reworked to be reusable by other development teams.
TEST IN THE SMALL TEST IN THE SMALL
DEVELOPTESTPLAN
DEVELOPTESTPLAN
modelssource coderequirementsmaster test quality assurance plan
SCENARIOAND
PROCESSTEST
SCENARIOAND
PROCESSTEST
RECORDDEFECTSRECORDDEFECTS
WALK-THROUGHMODELS
WALK-THROUGHMODELS
USERINTERFACE
TESTING
USERINTERFACE
TESTING
PROGRAMCODE
TESTING
PROGRAMCODE
TESTING
REVIEWTECHNICAL
DESIGN
REVIEWTECHNICAL
DESIGN
INSPECTSOURCE
CODE
INSPECTSOURCE
CODE
REVIEWPROTOTYPES
REVIEWPROTOTYPES
tested artifactstest resultsmaster testquality assurance plan
This process focuses on the verification, validation, and testing of documents, models, and source code produced. In many ways it is quality assurance techniques such as peer reviews and inspections combined with unit testing techniques for validating code.
CONSTRUCT PHASECONSTRUCT PHASECONSTRUCT PHASECONSTRUCT PHASEChecklistChecklist
CONSTRUCT to be performed checklist
the models for the application have been developed and validated
the source code for the application have been developed and validated
reusable artifacts have been identified potential artifacts to be generalized for reuse
have been identified and potentially generalized user documentation has been developed decisions (both made and forgone) were
documented into group memory metrics have been collected
CONSTRUCT exit conditions checklist
requirement allocation matrix has been updated project plan was updated appropriately models, source code and documentation were
baselined test plan has been updated for for the test in the
large user, support and operations documentation is
ready for testing application has been packaged for testing training, release, and project plans have been
updated appropriately
CONSTRUCT PHASECONSTRUCT PHASECONSTRUCT PHASECONSTRUCT PHASEModel StageModel StageChecklistsChecklists
Model entrance conditions checklist
initial requirements have been documented and accepted
modeling and programming tools were prepared subject matter experts have been scheduled team members have been given the appropriate
training
Model to be performed checklist
models were assembled and validated user interface prototype was developed and validated assumptions made during modeling were challenged
and documented appropriately manual processes, legacy applications, and new
system development was identified and modeled accordingly
requirement allocation matrix was updated/developed reusable artifacts have been identified and used risk assessment document has been updated decisions (both made and forgone) were documented
into group memory metrics have been collected
Model exit conditions checklist
models have been appropriately documented models have been validated test plan has been updated models have been accepted by the team models have been accepted by senior
management
CONSTRUCT PHASECONSTRUCT PHASECONSTRUCT PHASECONSTRUCT PHASE
PProgramrogram Stage Stage
CheklistsCheklists
Program entrance conditions checklist
appropriate models are available development tools are installed professional programmers are available team members have appropriate training
Program to be performed checklist
programmers worked with the designers to understand models
source code was written and documented source code was synchronized with models source code was prepared for inspection during
test in the small integration plan was prepared reusable artifacts have been used risk assessment document has been updated decisions (both made and forgone) were
documented into group memory metrics have been collected
CONSTRUCT PHASECONSTRUCT PHASECONSTRUCT PHASECONSTRUCT PHASE
GGeneralizeeneralize Stage Stage
CheklistsCheklists
Generalize entrance conditions checklist
project deliverable experienced reuse engineers are available organizational support for reuse exists team members have been given the appropriate
training
Generalize to be performed checklist
potential reusable items have been identified generalization sessions were held potentially reusable items were refactored reusable items were documented examples of how to reuse reusable items were
documented reusable items were released into the repository
and made accessible to all developers risk assessment document has been updated decisions (both made and forgone) were
documented into group memory metrics have been collected
Generalize exit conditions checklist
generalized items have been submitted to the reuse repository
all developers have been made aware of new items
CONSTRUCT PHASECONSTRUCT PHASECONSTRUCT PHASECONSTRUCT PHASE
Test in Test in tthe he ssmall Stagemall StageChecklistsChecklists
Test in the small entrance conditions checklist
there are artifacts to be tested test plan exists requirements have been documented team members have appropriate training
Test in the small to be performed checklist
test plan was updated appropriately models were reviewed and walked through and
accepted user interface prototypes were reviewed and tested source code was inspected and improved before
being tested perform software testing defects were recorded and analyzed risk assessment document has been updated decisions (both made and forgone) were
documented into group memory metrics have been collected
Test in the small exit conditions checklist
all items have been tested, reviewed and updated accordingly
master test has been updated for “test in the large”
Závěr
• Konstrukční fáze projektu je to,co se obvykle (+/-) učí jako SI (softwarové inženýrství).
• Celé programování je pouze jedna krabička z celé Konstrukční fáze!
Čím větší je projekt, tím důležitější pro jeho úspěch jsou věci, které stojí mimo
vlastní programování!
• Konstrukční fáze projektu je to,co se obvykle (+/-) učí jako SI (softwarové inženýrství).
• Celé programování je pouze jedna krabička z celé Konstrukční fáze!
Závěr
Čím větší je projekt, tím důležitější pro jeho úspěch jsou věci, které stojí mimo
vlastní programování!