Top Banner
A Presentation on Software Engineering and Project Management” Course Code : IT- 605 Presented by : MANOJ
95

Software enginnering unit 01 by manoj kumar soni

May 25, 2015

Download

Education

manojsonikgn

Software enginnering unit 01 by manoj kumar soni.....RGPV
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software enginnering unit 01 by manoj kumar soni

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

Page 2: Software enginnering unit 01 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

Page 3: Software enginnering unit 01 by manoj kumar soni

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

Page 4: Software enginnering unit 01 by manoj kumar soni

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

Page 5: Software enginnering unit 01 by manoj kumar soni

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

Page 6: Software enginnering unit 01 by manoj kumar soni

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

Page 7: Software enginnering unit 01 by manoj kumar soni

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

Page 8: Software enginnering unit 01 by manoj kumar soni

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

Page 9: Software enginnering unit 01 by manoj kumar soni

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

Page 10: Software enginnering unit 01 by manoj kumar soni

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

Page 11: Software enginnering unit 01 by manoj kumar soni

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

Page 12: Software enginnering unit 01 by manoj kumar soni

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

Page 13: Software enginnering unit 01 by manoj kumar soni

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

Page 14: Software enginnering unit 01 by manoj kumar soni

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

Page 15: Software enginnering unit 01 by manoj kumar soni

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

Page 16: Software enginnering unit 01 by manoj kumar soni

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

Page 17: Software enginnering unit 01 by manoj kumar soni

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

Page 18: Software enginnering unit 01 by manoj kumar soni

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

Page 19: Software enginnering unit 01 by manoj kumar soni

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

Page 20: Software enginnering unit 01 by manoj kumar soni

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

Page 21: Software enginnering unit 01 by manoj kumar soni

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

Page 22: Software enginnering unit 01 by manoj kumar soni

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

Page 23: Software enginnering unit 01 by manoj kumar soni

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

Page 24: Software enginnering unit 01 by manoj kumar soni

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

Page 25: Software enginnering unit 01 by manoj kumar soni

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

Page 26: Software enginnering unit 01 by manoj kumar soni

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

Page 27: Software enginnering unit 01 by manoj kumar soni

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

Page 28: Software enginnering unit 01 by manoj kumar soni

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

Page 29: Software enginnering unit 01 by manoj kumar soni

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

Page 30: Software enginnering unit 01 by manoj kumar soni

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

Page 31: Software enginnering unit 01 by manoj kumar soni

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

Page 32: Software enginnering unit 01 by manoj kumar soni

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

Page 33: Software enginnering unit 01 by manoj kumar soni

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

Page 34: Software enginnering unit 01 by manoj kumar soni

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

Page 35: Software enginnering unit 01 by manoj kumar soni

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

Page 36: Software enginnering unit 01 by manoj kumar soni

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

Page 37: Software enginnering unit 01 by manoj kumar soni

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

Page 38: Software enginnering unit 01 by manoj kumar soni

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

Page 39: Software enginnering unit 01 by manoj kumar soni

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

Page 40: Software enginnering unit 01 by manoj kumar soni

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

Page 41: Software enginnering unit 01 by manoj kumar soni

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

Page 42: Software enginnering unit 01 by manoj kumar soni

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

Page 43: Software enginnering unit 01 by manoj kumar soni

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

Page 44: Software enginnering unit 01 by manoj kumar soni

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

Page 45: Software enginnering unit 01 by manoj kumar soni

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

Page 46: Software enginnering unit 01 by manoj kumar soni

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

Page 47: Software enginnering unit 01 by manoj kumar soni

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

Page 48: Software enginnering unit 01 by manoj kumar soni

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

Page 49: Software enginnering unit 01 by manoj kumar soni

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

Page 50: Software enginnering unit 01 by manoj kumar soni

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

Page 51: Software enginnering unit 01 by manoj kumar soni

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

Page 52: Software enginnering unit 01 by manoj kumar soni

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

Page 53: Software enginnering unit 01 by manoj kumar soni

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

Page 54: Software enginnering unit 01 by manoj kumar soni

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

Page 55: Software enginnering unit 01 by manoj kumar soni

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

Page 56: Software enginnering unit 01 by manoj kumar soni

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

Page 57: Software enginnering unit 01 by manoj kumar soni

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

Page 58: Software enginnering unit 01 by manoj kumar soni

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

Page 59: Software enginnering unit 01 by manoj kumar soni

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

Page 60: Software enginnering unit 01 by manoj kumar soni

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

Page 61: Software enginnering unit 01 by manoj kumar soni

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

Page 62: Software enginnering unit 01 by manoj kumar soni

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

Page 63: Software enginnering unit 01 by manoj kumar soni

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

Page 64: Software enginnering unit 01 by manoj kumar soni

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

Page 65: Software enginnering unit 01 by manoj kumar soni

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

Page 66: Software enginnering unit 01 by manoj kumar soni

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

Page 67: Software enginnering unit 01 by manoj kumar soni

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

Page 68: Software enginnering unit 01 by manoj kumar soni

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

Page 69: Software enginnering unit 01 by manoj kumar soni

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

Page 70: Software enginnering unit 01 by manoj kumar soni

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

Page 71: Software enginnering unit 01 by manoj kumar soni

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

Page 72: Software enginnering unit 01 by manoj kumar soni

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

Page 73: Software enginnering unit 01 by manoj kumar soni

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

Page 74: Software enginnering unit 01 by manoj kumar soni

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

Page 75: Software enginnering unit 01 by manoj kumar soni

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

Page 76: Software enginnering unit 01 by manoj kumar soni

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

Page 77: Software enginnering unit 01 by manoj kumar soni

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

Page 78: Software enginnering unit 01 by manoj kumar soni

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

Page 79: Software enginnering unit 01 by manoj kumar soni

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

Page 80: Software enginnering unit 01 by manoj kumar soni

QuestionsQuestions