A Presentation on “Software Engineering and Project Management” Course Code : IT- 605 Presented by : MANOJ
May 25, 2015
A Presentation on ldquoSoftware Engineering and
Project Managementrdquo Course Code IT-605
Presented by MANOJ KUMAR SONI
SEPMhellipSEPMhellip11 SOFTWARESOFTWARE Collection of codecollection of Collection of codecollection of
methodscollection of Objects in a sequencing methodscollection of Objects in a sequencing mannermanner
22 ENGINEERINGENGINEERING A technique or collection of A technique or collection of techniques for implementing something to achieve techniques for implementing something to achieve desired goalsdesired goals
33 PROJECTPROJECT A project is a temporary endeavor A project is a temporary endeavor having a defined beginning and end undertaken to having a defined beginning and end undertaken to meet unique goals and objectivesmeet unique goals and objectives
44 MANAGEMENTMANAGEMENT ManagingMaintaining ManagingMaintaining somethingsomething
SOFTWARE ENGINEEERINGSOFTWARE ENGINEEERING Software Engineering Is the establishment and use Software Engineering Is the establishment and use
of Sound Engineering Principles in order to obtain of Sound Engineering Principles in order to obtain economically Software that is reliable amp works economically Software that is reliable amp works efficiently on real machinesefficiently on real machines
(or)(or) Software Engineering is a systematic approach to
development operation maintenance and retirement of software
TOOLS
METHODS
PROCESS
A QUALITY FOCUS
FIG SOFTWARE ENGG LAYERS
ndash A discipline whose aim is the production of quality software delivered on time within budget and satisfying users needs
ndash The specification development management and evolution of software systems
ndash Designing and developing high-quality software
Software Applications 1048708system software 1048708application software 1048708engineeringscientific software 1048708embedded software 1048708product-line software 1048708WebApps (Web applications) 1048708AI software
Management of software projects is different from other types of management because Software is not tangible(clear enough) Software processes are relatively new and still
ldquounder trialrdquo Larger software projects are usually ldquoone-offrdquo
projects Computer technology evolves very rapidly
MODELSMODELS1 1 SW PROCESS MODELSW PROCESS MODEL Waterfall Model Linear Sequential model Waterfall Model Linear Sequential model
Classic Life Cycle ModelClassic Life Cycle Model Incremental ModelIncremental Model RAD ModelRAD Model
2 2 EVOLUTIONARY PROCESS MODELEVOLUTIONARY PROCESS MODEL Prototyping ModelPrototyping Model Spiral ModelSpiral Model WIN WIN SPIRAL MODELWIN WIN SPIRAL MODEL The Concurrent devlopment modelThe Concurrent devlopment model
Waterfall Model Linear Sequential Waterfall Model Linear Sequential model Classic Life Cycle Modelmodel Classic Life Cycle Model
DiagramDiagram
FIG WATERFALL
MODEL
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
SEPMhellipSEPMhellip11 SOFTWARESOFTWARE Collection of codecollection of Collection of codecollection of
methodscollection of Objects in a sequencing methodscollection of Objects in a sequencing mannermanner
22 ENGINEERINGENGINEERING A technique or collection of A technique or collection of techniques for implementing something to achieve techniques for implementing something to achieve desired goalsdesired goals
33 PROJECTPROJECT A project is a temporary endeavor A project is a temporary endeavor having a defined beginning and end undertaken to having a defined beginning and end undertaken to meet unique goals and objectivesmeet unique goals and objectives
44 MANAGEMENTMANAGEMENT ManagingMaintaining ManagingMaintaining somethingsomething
SOFTWARE ENGINEEERINGSOFTWARE ENGINEEERING Software Engineering Is the establishment and use Software Engineering Is the establishment and use
of Sound Engineering Principles in order to obtain of Sound Engineering Principles in order to obtain economically Software that is reliable amp works economically Software that is reliable amp works efficiently on real machinesefficiently on real machines
(or)(or) Software Engineering is a systematic approach to
development operation maintenance and retirement of software
TOOLS
METHODS
PROCESS
A QUALITY FOCUS
FIG SOFTWARE ENGG LAYERS
ndash A discipline whose aim is the production of quality software delivered on time within budget and satisfying users needs
ndash The specification development management and evolution of software systems
ndash Designing and developing high-quality software
Software Applications 1048708system software 1048708application software 1048708engineeringscientific software 1048708embedded software 1048708product-line software 1048708WebApps (Web applications) 1048708AI software
Management of software projects is different from other types of management because Software is not tangible(clear enough) Software processes are relatively new and still
ldquounder trialrdquo Larger software projects are usually ldquoone-offrdquo
projects Computer technology evolves very rapidly
MODELSMODELS1 1 SW PROCESS MODELSW PROCESS MODEL Waterfall Model Linear Sequential model Waterfall Model Linear Sequential model
Classic Life Cycle ModelClassic Life Cycle Model Incremental ModelIncremental Model RAD ModelRAD Model
2 2 EVOLUTIONARY PROCESS MODELEVOLUTIONARY PROCESS MODEL Prototyping ModelPrototyping Model Spiral ModelSpiral Model WIN WIN SPIRAL MODELWIN WIN SPIRAL MODEL The Concurrent devlopment modelThe Concurrent devlopment model
Waterfall Model Linear Sequential Waterfall Model Linear Sequential model Classic Life Cycle Modelmodel Classic Life Cycle Model
DiagramDiagram
FIG WATERFALL
MODEL
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
SOFTWARE ENGINEEERINGSOFTWARE ENGINEEERING Software Engineering Is the establishment and use Software Engineering Is the establishment and use
of Sound Engineering Principles in order to obtain of Sound Engineering Principles in order to obtain economically Software that is reliable amp works economically Software that is reliable amp works efficiently on real machinesefficiently on real machines
(or)(or) Software Engineering is a systematic approach to
development operation maintenance and retirement of software
TOOLS
METHODS
PROCESS
A QUALITY FOCUS
FIG SOFTWARE ENGG LAYERS
ndash A discipline whose aim is the production of quality software delivered on time within budget and satisfying users needs
ndash The specification development management and evolution of software systems
ndash Designing and developing high-quality software
Software Applications 1048708system software 1048708application software 1048708engineeringscientific software 1048708embedded software 1048708product-line software 1048708WebApps (Web applications) 1048708AI software
Management of software projects is different from other types of management because Software is not tangible(clear enough) Software processes are relatively new and still
ldquounder trialrdquo Larger software projects are usually ldquoone-offrdquo
projects Computer technology evolves very rapidly
MODELSMODELS1 1 SW PROCESS MODELSW PROCESS MODEL Waterfall Model Linear Sequential model Waterfall Model Linear Sequential model
Classic Life Cycle ModelClassic Life Cycle Model Incremental ModelIncremental Model RAD ModelRAD Model
2 2 EVOLUTIONARY PROCESS MODELEVOLUTIONARY PROCESS MODEL Prototyping ModelPrototyping Model Spiral ModelSpiral Model WIN WIN SPIRAL MODELWIN WIN SPIRAL MODEL The Concurrent devlopment modelThe Concurrent devlopment model
Waterfall Model Linear Sequential Waterfall Model Linear Sequential model Classic Life Cycle Modelmodel Classic Life Cycle Model
DiagramDiagram
FIG WATERFALL
MODEL
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
TOOLS
METHODS
PROCESS
A QUALITY FOCUS
FIG SOFTWARE ENGG LAYERS
ndash A discipline whose aim is the production of quality software delivered on time within budget and satisfying users needs
ndash The specification development management and evolution of software systems
ndash Designing and developing high-quality software
Software Applications 1048708system software 1048708application software 1048708engineeringscientific software 1048708embedded software 1048708product-line software 1048708WebApps (Web applications) 1048708AI software
Management of software projects is different from other types of management because Software is not tangible(clear enough) Software processes are relatively new and still
ldquounder trialrdquo Larger software projects are usually ldquoone-offrdquo
projects Computer technology evolves very rapidly
MODELSMODELS1 1 SW PROCESS MODELSW PROCESS MODEL Waterfall Model Linear Sequential model Waterfall Model Linear Sequential model
Classic Life Cycle ModelClassic Life Cycle Model Incremental ModelIncremental Model RAD ModelRAD Model
2 2 EVOLUTIONARY PROCESS MODELEVOLUTIONARY PROCESS MODEL Prototyping ModelPrototyping Model Spiral ModelSpiral Model WIN WIN SPIRAL MODELWIN WIN SPIRAL MODEL The Concurrent devlopment modelThe Concurrent devlopment model
Waterfall Model Linear Sequential Waterfall Model Linear Sequential model Classic Life Cycle Modelmodel Classic Life Cycle Model
DiagramDiagram
FIG WATERFALL
MODEL
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
ndash A discipline whose aim is the production of quality software delivered on time within budget and satisfying users needs
ndash The specification development management and evolution of software systems
ndash Designing and developing high-quality software
Software Applications 1048708system software 1048708application software 1048708engineeringscientific software 1048708embedded software 1048708product-line software 1048708WebApps (Web applications) 1048708AI software
Management of software projects is different from other types of management because Software is not tangible(clear enough) Software processes are relatively new and still
ldquounder trialrdquo Larger software projects are usually ldquoone-offrdquo
projects Computer technology evolves very rapidly
MODELSMODELS1 1 SW PROCESS MODELSW PROCESS MODEL Waterfall Model Linear Sequential model Waterfall Model Linear Sequential model
Classic Life Cycle ModelClassic Life Cycle Model Incremental ModelIncremental Model RAD ModelRAD Model
2 2 EVOLUTIONARY PROCESS MODELEVOLUTIONARY PROCESS MODEL Prototyping ModelPrototyping Model Spiral ModelSpiral Model WIN WIN SPIRAL MODELWIN WIN SPIRAL MODEL The Concurrent devlopment modelThe Concurrent devlopment model
Waterfall Model Linear Sequential Waterfall Model Linear Sequential model Classic Life Cycle Modelmodel Classic Life Cycle Model
DiagramDiagram
FIG WATERFALL
MODEL
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Software Applications 1048708system software 1048708application software 1048708engineeringscientific software 1048708embedded software 1048708product-line software 1048708WebApps (Web applications) 1048708AI software
Management of software projects is different from other types of management because Software is not tangible(clear enough) Software processes are relatively new and still
ldquounder trialrdquo Larger software projects are usually ldquoone-offrdquo
projects Computer technology evolves very rapidly
MODELSMODELS1 1 SW PROCESS MODELSW PROCESS MODEL Waterfall Model Linear Sequential model Waterfall Model Linear Sequential model
Classic Life Cycle ModelClassic Life Cycle Model Incremental ModelIncremental Model RAD ModelRAD Model
2 2 EVOLUTIONARY PROCESS MODELEVOLUTIONARY PROCESS MODEL Prototyping ModelPrototyping Model Spiral ModelSpiral Model WIN WIN SPIRAL MODELWIN WIN SPIRAL MODEL The Concurrent devlopment modelThe Concurrent devlopment model
Waterfall Model Linear Sequential Waterfall Model Linear Sequential model Classic Life Cycle Modelmodel Classic Life Cycle Model
DiagramDiagram
FIG WATERFALL
MODEL
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Management of software projects is different from other types of management because Software is not tangible(clear enough) Software processes are relatively new and still
ldquounder trialrdquo Larger software projects are usually ldquoone-offrdquo
projects Computer technology evolves very rapidly
MODELSMODELS1 1 SW PROCESS MODELSW PROCESS MODEL Waterfall Model Linear Sequential model Waterfall Model Linear Sequential model
Classic Life Cycle ModelClassic Life Cycle Model Incremental ModelIncremental Model RAD ModelRAD Model
2 2 EVOLUTIONARY PROCESS MODELEVOLUTIONARY PROCESS MODEL Prototyping ModelPrototyping Model Spiral ModelSpiral Model WIN WIN SPIRAL MODELWIN WIN SPIRAL MODEL The Concurrent devlopment modelThe Concurrent devlopment model
Waterfall Model Linear Sequential Waterfall Model Linear Sequential model Classic Life Cycle Modelmodel Classic Life Cycle Model
DiagramDiagram
FIG WATERFALL
MODEL
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
MODELSMODELS1 1 SW PROCESS MODELSW PROCESS MODEL Waterfall Model Linear Sequential model Waterfall Model Linear Sequential model
Classic Life Cycle ModelClassic Life Cycle Model Incremental ModelIncremental Model RAD ModelRAD Model
2 2 EVOLUTIONARY PROCESS MODELEVOLUTIONARY PROCESS MODEL Prototyping ModelPrototyping Model Spiral ModelSpiral Model WIN WIN SPIRAL MODELWIN WIN SPIRAL MODEL The Concurrent devlopment modelThe Concurrent devlopment model
Waterfall Model Linear Sequential Waterfall Model Linear Sequential model Classic Life Cycle Modelmodel Classic Life Cycle Model
DiagramDiagram
FIG WATERFALL
MODEL
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Waterfall Model Linear Sequential Waterfall Model Linear Sequential model Classic Life Cycle Modelmodel Classic Life Cycle Model
DiagramDiagram
FIG WATERFALL
MODEL
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
DiagramDiagram
FIG WATERFALL
MODEL
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
COMMUNICATION
PLANNING
MODELING
CONSTRUCTION
DEPLOYMENT
FIG WATERFALL MODEL
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Waterfall ModelWaterfall Model RequirementsRequirements ndash defines needed ndash defines needed
information function behavior information function behavior performance and interfacesperformance and interfaces
Design Design ndash data structures software ndash data structures software architecture interface architecture interface representations algorithmic representations algorithmic detailsdetails
Implementation Implementation ndash source code ndash source code database user documentation database user documentation testingtesting
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Waterfall StrengthsWaterfall Strengths
Easy to understandEasy to understand easy to use easy to use Provides structure Provides structure to inexperienced staffto inexperienced staff Milestones are well understoodMilestones are well understood Sets Sets requirements stabilityrequirements stability Good for Good for management control management control (plan staff track)(plan staff track) Works well when Works well when quality is more important quality is more important than cost than cost
or scheduleor schedule
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
When to use the Waterfall ModelWhen to use the Waterfall Model
Requirements are very Requirements are very well knownwell known Product definition is Product definition is stablestable Technology is Technology is understoodunderstood New New version of an existing productversion of an existing product Porting an existing product Porting an existing product to a new platformto a new platform
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Incremental ModelIncremental Model
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Incremental ModelIncremental ModelCommunication
Planning
Modeling
Construction(Code Test)
Deplyment(delivery feeback)
Increment 01
Increment 02
Increment n
Delivery of 1st increment
Delivery of 2nd increment
Delivery of n th increment
PROJECT CALANDAR TIME
SO
FT
WA
RE
FU
NC
TIO
NA
LIT
Y amp
FE
AT
UR
ES
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
When the elements of waterfall model are applied in iterative manner the result is the Incremental Model In this the product is designed implemented integrated and tested as incremental builds This model is more applicable where software requirements are well defined and basic software functionality is required early
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
ADVANTAGES OF INCREMENTAL MODEL
- It generates working software quickly and early during the software life cycle- Flexibility is more and less costly- Testing and debugging becomes easier during a smaller iteration- Risk can be managed more easily because they can be identified easily during iteration- Early increments can be implemented with fewer people
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
DISADVANTAGES OF INCREMENTALMODEL
- Each phase of an iteration is rigid (not changed) and do not overlap each other
- Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
RAD MODELRAD MODEL
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
RAD MODELRAD MODEL
COMMUNICATION
PLANNING
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
DEPLOYMENTIntegration Delivery Feedback
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
CONSTRUCTIONComponent reuse Automatic code generation Testing
MODELLINGBusiness data amp process modeling
TEAM 1
TEAM 2
TEAM N
60 to 90 Days
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Advantages of the RAD methodology Flexible and adaptable to changes Prototyping applications gives users a tangible description
from which to judge whether critical system requirements are being met by the system Report output can be compared with existing reports Data entry forms can be reviewed for completeness of all fields navigation data access (drop down listscheckboxes radio buttons etc)
RAD generally incorporates short development cycles - users see the RAD product quickly
RAD involves user participation thereby increasing chances of early user community acceptance
RAD realizes an overall reduction in project risk Paretos 80 - 20 Rule usually results in reducing the costs to
create a custom system
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Disadvantages of RAD methodology Unknown cost of product As mentioned above
this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process
It may be difficult for many important users to commit the time required for success of the RAD process
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
PROTOTYPING MODELPROTOTYPING MODEL
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
PROTOTYPING MODELPROTOTYPING MODEL
QUICK PLAN
MODELINGQUICK DESIGN
CONSTRUCTION OF PROTOTYPE
DEPLOYTMENT DELIVERY amp FEEDBACK
COMMUNICATION
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Spiral ModelSpiral Model
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Since end-user requirements are hard to Since end-user requirements are hard to
obtaindefine it is natural to develop softwareobtaindefine it is natural to develop software
in an in an experimentalexperimental way eg way eg
11 Build some softwareBuild some software
22 See if it meets customer requirementsSee if it meets customer requirements
33 If no goto 1 else stopIf no goto 1 else stop
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
This loop approach gives rise to structuredThis loop approach gives rise to structured
iterative lifecycle modelsiterative lifecycle models
In 1988 Bohem developed the spiral model asIn 1988 Bohem developed the spiral model as
an iterative model which includes an iterative model which includes riskrisk
analysisanalysis and and risk managementrisk management
Key ideaKey idea on each iteration identify and solve on each iteration identify and solve
the sub-problems with the the sub-problems with the highest riskhighest risk
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Spiral ModelSpiral Model
PLANING
MODELING
CONSTRUCTION
COMMUNICATION
DEPLOYMENT
START
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Cumulative cost Evaluate alternativesIdentify amp resolve risks
Develop amp verify next-level product
Plan next phase
Determine objectivesalternatives amp constraints
Review amp commitment
Prototypes
P1 P2 P3Operational PrototypeStart
End
Requirements plan
Development plan
Integration amp Test plan
Requirements validation
Design Validation amp Verification
Detailed design
Coding
Unit amp IntegrationTesting
Acceptance Testing
Concept Of Operation
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Each cycle follows a waterfall model byEach cycle follows a waterfall model by
11 Determining objectivesDetermining objectives
22 Specifying constraintsSpecifying constraints
33 Generating alternativesGenerating alternatives
44 Identifying risksIdentifying risks
55 Resolving risksResolving risks
66 Developing next-level productDeveloping next-level product
77 Planning next cyclePlanning next cycle
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
AdvantagesAdvantages
11 RealismRealism the model accurately reflects the the model accurately reflects the iterative nature of software development on iterative nature of software development on projects with unclear requirementsprojects with unclear requirements
22 FlexibleFlexible incoporates the advantages of the incoporates the advantages of the waterfal and rapid prototyping methodswaterfal and rapid prototyping methods
33 Comprehensive model decreases riskComprehensive model decreases risk
44 Good project visibilityGood project visibility
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
DisadvantagesDisadvantages
Needs technical expertise in risk analysis to Needs technical expertise in risk analysis to really workreally work
Model is poorly understood by non-technical Model is poorly understood by non-technical management hence not so widely usedmanagement hence not so widely used
Complicated model needs competent Complicated model needs competent professional management High administrative professional management High administrative overheadoverhead
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
open source softwareopen source software
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
What is Open Source Software (OSS)What is Open Source Software (OSS)
bull OSS software licensed to users with these freedomsndash to run the program for any purposendash to study and modify the program andndash to freely redistribute copies of either the original or
modified program (without royalties etc) bull Original term ldquoFree softwarerdquo (confused with no-
price) bull Other synonyms libre sw free-libre sw FOSS FLOSSbull Antonyms(oposite word) proprietary software closed
softwarebull Widely used OSS 1 or 2 in many marketsbull Not non-commercial OSS almost always commercial
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
what is open source softwarewhat is open source software Open Source software is distributed with its source Open Source software is distributed with its source
code The Open Source Definition has three code The Open Source Definition has three essential featuresessential features It allows free re-distribution of the software without It allows free re-distribution of the software without
royalties or licensing fees to the authorroyalties or licensing fees to the author It requires that source code be distributed with the It requires that source code be distributed with the
software or otherwise made available for no more than software or otherwise made available for no more than the cost of distributionthe cost of distribution
It allows anyone to modify the software or derive other It allows anyone to modify the software or derive other software from it and to redistribute the modified software from it and to redistribute the modified software under the same termssoftware under the same terms
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Typical OSS development model
Developer
TrustedDeveloper
bull OSS users typically use software without paying licensing feesbull OSS users typically pay for training amp support (competed) bull OSS users are responsible for payingdeveloping new improvements ampany evaluations that they need often cooperate with others to do sobull Goal Active development community (like a consortium)
TrustedRepository
Distributor
User
Source Code
Bug Reports
Improvements (as source code) and evaluation results User as Developer
ldquoStone soup developmentrdquo
DevelopmentCommunity
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
examples of open source softwareexamples of open source software
Operating SystemsOperating Systems LinuxLinux FreeBSD OpenBSD and NetBSD The BSDs are FreeBSD OpenBSD and NetBSD The BSDs are
all based on the Berkeley Systems Distribution of all based on the Berkeley Systems Distribution of Unix developed at the University of California Unix developed at the University of California Berkeley Another BSD based open source project Berkeley Another BSD based open source project is Darwin which is the base of Apples Mac OS Xis Darwin which is the base of Apples Mac OS X
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
examples of open source softwareexamples of open source software InternetInternet Apache which runs over 50 of the worlds web Apache which runs over 50 of the worlds web
serversservers BIND the software that provides the DNS (domain BIND the software that provides the DNS (domain
name service) for the entire Internetname service) for the entire Internet sendmail the most important and widely used email sendmail the most important and widely used email
transport software on the Internettransport software on the Internet Mozilla the open source redesign of the Netscape Mozilla the open source redesign of the Netscape
BrowserBrowser OpenSSL is the standard for secure communication OpenSSL is the standard for secure communication
(strong encryption) over the Internetcategories(strong encryption) over the Internetcategories
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
example of open source softwareexample of open source software Programming ToolsProgramming Tools
Zope and PHP are popular engines behind the live Zope and PHP are popular engines behind the live content on the World Wide Webcontent on the World Wide Web
LanguagesLanguages PerlPerl PythonPython RubyRuby TclTkTclTk
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
open source software sitesopen source software sites
Free Software Foundation Free Software Foundation wwwfsforg Open Source Initiative Open Source Initiative wwwopensourceorg FreshmeatnetFreshmeatnet SourceForgenetSourceForgenet OSDircomOSDircom developerBerliOSdedeveloperBerliOSde BioinformaticsorgBioinformaticsorg see also individual project sites eg see also individual project sites eg
wwwapacheorg wwwcpanorg etc etc
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
some dates from the history of open some dates from the history of open sourcesource
1970s UNIX operating system developed at Bell 1970s UNIX operating system developed at Bell Labs and by a diverse group of contributors Labs and by a diverse group of contributors outside of Bell Labs later ATampT enforces outside of Bell Labs later ATampT enforces intellectual property rights and ldquoclosesrdquo the codeintellectual property rights and ldquoclosesrdquo the code
1983 Richard Stallman founds the Free 1983 Richard Stallman founds the Free Software FoundationSoftware Foundation
1993 Linus Torvalds releases first version of 1993 Linus Torvalds releases first version of Linux builtLinux built
1997 Debian Free Software Guidelines released1997 Debian Free Software Guidelines released 1998 Netscape releases Navigator in source1998 Netscape releases Navigator in source
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
open source software developmentopen source software development
Coredeveloper(s)
Maintainers
Patchers
Bug reporters
Documenters Users
Users
Users
Users
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
open source companiesopen source companies IBMIBM
uses and develops Apache and Linux created Secure Mailer uses and develops Apache and Linux created Secure Mailer and created other software on AlphaWorksand created other software on AlphaWorks
AppleApple released core layers of Mac OS X Server as an open source released core layers of Mac OS X Server as an open source
BSD operating system called Darwin open sourcing the BSD operating system called Darwin open sourcing the QuickTime Streaming Server and the OpenPlay network QuickTime Streaming Server and the OpenPlay network gaming toolkitgaming toolkit
HPHP uses and releases products running Linuxuses and releases products running Linux
SunSun uses Linux supports some open source development uses Linux supports some open source development
efforts(Forte IDE for Java and the Mozilla web browser)efforts(Forte IDE for Java and the Mozilla web browser)
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
open source licensingopen source licensing see see httpwwwopensourceorglicenses
apache software licenseapache software license python licensepython license ibm public licenseibm public license apple public source license etcapple public source license etc
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Unified ProcessUnified Process
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Unified ProcessUnified Process Unified Process (UP) is an attempt to draw
on the best features and characteristics of conventional Software process model
The UP recognizes the importance of customer communication and streamlined methods for describing the customers view of a system
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
HISTORYDuring the early 1990s James Rumbaugh Grady
Booch and Iver Jacobson began working on a ldquoUnified Methodrdquo that would combines the best features of each of their individuals methods and adopt additional features proposed by other experts The result was UML- ldquoUnified Modeling Languagerdquo that contains a robust notation for the modeling and development of OO (Object Oriented) systems
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
UNIFIED PROCESS
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Inception Elaboration
ConstructionTransition
UP Lifecycle ndash single phase workflow(drawn as a UML Statechart)
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Unified ProcessSoftware Lifecycle
Cycle
Phase
Iteration
Artifact
Workflow
Management
Environment
Requirements
Design
Implementation
Assessment
Deployment
Inception
Elaboration
Construction
Transition
4
Product
releases
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
DocumentationDocumentation
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Documentation as part of the Documentation as part of the software life cyclesoftware life cycle
ProgrammingProgramming
SpecificationsSpecifications TestingTesting
MaintenanceMaintenance
DocumentationDocumentation
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
What is DocumentationWhat is Documentation
Anything written or printedAnything written or printed Relied on as a record of proof for authorized Relied on as a record of proof for authorized
persons persons Vital part of professional practice Vital part of professional practice
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
A few questions to ask before writingA few questions to ask before writing
Who will use the documentWho will use the document How will they use itHow will they use it Does the documentation contain the Does the documentation contain the
information to help the achieve their goalsinformation to help the achieve their goals
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Some quality aspects of good Some quality aspects of good documentationdocumentation
conciseconcise completecomplete up-to-dateup-to-date free of jargonfree of jargon well organizedwell organized accurateaccurate consistentconsistent
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Parts of a good user manualParts of a good user manual
Table of contents (two levels if necessary)Table of contents (two levels if necessary) ConventionsConventions Whatrsquos newWhatrsquos new ContentContent AppendixAppendix IndexIndex
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Configuration managementConfiguration management
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
What is a ConfigurationA configuration is the ldquofunctional and physical characteristics of hardware or softwarerdquo as set forth in technical documentation or achieved in a productWhat is SCMSoftware configuration management (SCM) is responsible to establish and maintain the integrity of the products of the software project throughout the software life cycleThis includes identifying configuration items controlling changes and recording and reporting the change implementation status
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Configuration managementConfiguration management Managing the products of system changeManaging the products of system change ObjectivesObjectives
To explain the importance of software configuration To explain the importance of software configuration management (CM)management (CM)
To describe key CM activities namely CM planning To describe key CM activities namely CM planning change management version management and system change management version management and system buildingbuilding
Topics coveredTopics covered Configuration management planningConfiguration management planning Change managementChange management Version and release managementVersion and release management System buildingSystem building
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
New versions of software systems are created as New versions of software systems are created as they changethey change For different machinesOSFor different machinesOS Offering different functionalityOffering different functionality Tailored for particular user requirementsTailored for particular user requirements
Configuration management is concerned with Configuration management is concerned with managing evolving software systemsmanaging evolving software systems System change is a team activitySystem change is a team activity CM aims to control the costs and effort involved in CM aims to control the costs and effort involved in
making changes to a systemmaking changes to a system
Configuration management ndash WhyConfiguration management ndash Why
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Configuration management ndash WhyConfiguration management ndash Why Involves the development and application of Involves the development and application of
procedures and standards to manage an evolving procedures and standards to manage an evolving software productsoftware product
May be seen as part of a more general quality May be seen as part of a more general quality management processmanagement process
When released to CM software systems are When released to CM software systems are sometimes called sometimes called baselinesbaselines as they are a starting as they are a starting point for further developmentpoint for further development
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
System familiesSystem families
Workstationversion
Unixversion
DECversion
Initialsystem
Mainframeversion
VMSversion
PCversion
Sunversion
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Starts during the early phases of the projectStarts during the early phases of the project All products of the software process may have to All products of the software process may have to
be managedbe managed SpecificationsSpecifications DesignsDesigns ProgramsPrograms Test dataTest data User manualsUser manuals
Thousands of separate documents may be Thousands of separate documents may be generated for a large software systemgenerated for a large software system
Configuration management planningConfiguration management planning
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Defines the types of documents to be managed and a Defines the types of documents to be managed and a document naming schemedocument naming scheme
Defines who takes responsibility for the CM procedures Defines who takes responsibility for the CM procedures and creation of ldquobaselinesrdquoand creation of ldquobaselinesrdquo
Defines policies for change control and version Defines policies for change control and version managementmanagement
Defines the CM records which must be maintainedDefines the CM records which must be maintained
Describes the tools which should be used to assist the Describes the tools which should be used to assist the CM process and any limitations on their useCM process and any limitations on their use
The CM planThe CM plan
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Symptoms of poor CM
1048708 Bugs that have been corrected reappear1048708 Previous releases of software cannot be rebuilt1048708 Previous releases of software cannot be found1048708 Files get lost1048708 Files are ldquomysteriouslyrdquo changed1048708 The same or similar code exists multiple timesin different projects1048708 Two developers accidentally change the samefile concurrently
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Large projects typically produce thousands of Large projects typically produce thousands of documents which must be uniquely identifieddocuments which must be uniquely identified
Some of these documents must be maintained Some of these documents must be maintained for the lifetime of the softwarefor the lifetime of the software
Document naming scheme should be defined Document naming scheme should be defined so that related documents have related namesso that related documents have related names
A hierarchical scheme with multi-level names A hierarchical scheme with multi-level names is probably the most flexible approachis probably the most flexible approach
Configuration item identificationConfiguration item identification
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
All CM information should be maintained in a All CM information should be maintained in a configuration databaseconfiguration database
This should allow queries about configurations to be This should allow queries about configurations to be answeredanswered Who has a particular system versionWho has a particular system version What platform is required for a particular versionWhat platform is required for a particular version What versions are affected by a change to component XWhat versions are affected by a change to component X How many reported faults in version THow many reported faults in version T
The CM database should preferably be linked to the The CM database should preferably be linked to the software being managedsoftware being managed
The configuration databaseThe configuration database
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Risk ManagementRisk Management
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
What is Risk ManagementWhat is Risk Management
The total process to identify control and The total process to identify control and minimize the impact of uncertain eventsminimize the impact of uncertain events
In IT ndash we focus on availability reliability In IT ndash we focus on availability reliability maintainability amp securitymaintainability amp security
In SE ndash we focus on quality amp productivityIn SE ndash we focus on quality amp productivity One time on budget amp worksOne time on budget amp works Realistic expectationsRealistic expectations
Critical but not glamorous ndash Important but not Critical but not glamorous ndash Important but not urgenturgent
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Risk Management in IT contextRisk Management in IT context
Key business functionsKey business functions Procurement stock control payroll etcProcurement stock control payroll etc
Key business systemsKey business systems ERP CRM Data Warehousing etcERP CRM Data Warehousing etc
Key business infrastructureKey business infrastructure Computer systems amp communication networksComputer systems amp communication networks
Mission Critical Systems ndash high dependencyMission Critical Systems ndash high dependency
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Risk Analysis MethodsRisk Analysis Methods
Identify potential source of riskIdentify potential source of risk Threats vulnerabilities amp breachesThreats vulnerabilities amp breaches
Quantification of consequencesQuantification of consequences Financial amp non financial lossesFinancial amp non financial losses
Assessment of likelihood of occurringAssessment of likelihood of occurring Annual loss expectation (ALE)Annual loss expectation (ALE)
Mitigation strategiesMitigation strategies Insurance procedures back-upsInsurance procedures back-ups
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Threats Vulnerabilities amp BreachesThreats Vulnerabilities amp Breaches
ThreatThreat Potential for an event to occur having adverse Potential for an event to occur having adverse
consequencesconsequences VulnerabilityVulnerability
A weakness in a system which increases the A weakness in a system which increases the likelihood of a failure (eg security breach)likelihood of a failure (eg security breach)
BreachFailureBreachFailure Exploitation of a vulnerability yielding Exploitation of a vulnerability yielding
unauthorised access to a system or failureunauthorised access to a system or failure
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Risk IdentificationRisk Identification ThreatsThreats
Natural disasters (fire flood lightninghellip)Natural disasters (fire flood lightninghellip) Infrastructure failures (blackouts head crash Infrastructure failures (blackouts head crash
communications outagehellip)communications outagehellip) Software defects (buffer overflowshellip)Software defects (buffer overflowshellip) Government policies (ban on SPAMPorn)Government policies (ban on SPAMPorn) Intruders amp illegitimate use (hacking sniffinghellip)Intruders amp illegitimate use (hacking sniffinghellip) Human limitation (user errors staff shortageshellip)Human limitation (user errors staff shortageshellip)
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Risk IdentificationRisk Identification
VulnerabilitiesVulnerabilities Software defects (no audit trail poor Software defects (no audit trail poor
documentation poor version control insufficient documentation poor version control insufficient testinghellip)testinghellip)
Hardware failure (MTBFs)Hardware failure (MTBFs) Design weakness (open protocols spoofinghellip)Design weakness (open protocols spoofinghellip) Human behaviour (security awareness social Human behaviour (security awareness social
engineering recruitment procedureshellip)engineering recruitment procedureshellip)
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Risk IdentificationRisk IdentificationExample of Social Engineering Example of Social Engineering
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Risk IdentificationRisk Identification
Breaches Breaches Michelangelo virusMichelangelo virus lsquolsquoI Love Yoursquo virusI Love Yoursquo virus lsquolsquoGood Timesrsquo hoaxGood Timesrsquo hoax Kevin MitnickKevin Mitnick
FailuresFailures Head crashHead crash Staff absenceStaff absence
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Four Facets of SecurityFour Facets of Security
11 ConfidentialityConfidentiality Access control unobservability AnonymityAccess control unobservability Anonymity
22 IntegrityIntegrity Physical integrity rollback separation of dutiesPhysical integrity rollback separation of duties
33 AvailabilityAvailability Containment robustness recoveryContainment robustness recovery
44 AccountabilityAccountability Audit id amp authentication trusted pathhellipAudit id amp authentication trusted pathhellip
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
Security Control TechniquesSecurity Control Techniques
Physical securityPhysical security Access control intrusion detection monitoringAccess control intrusion detection monitoring
Logical securityLogical security Accountability least privilege separation of powers Accountability least privilege separation of powers
default security cryptography auditsdefault security cryptography audits Disaster Recovery PlansDisaster Recovery Plans
Id risks assess impact plan recovery Id risks assess impact plan recovery testtest Backup StrategiesBackup Strategies
Loss tolerance target data media rotation Loss tolerance target data media rotation testtest
QuestionsQuestions
QuestionsQuestions