SlideShare a Scribd company logo
1 of 54
Computer Science Software Engineering Slide 1
CS425/CS625
 List of classes for the banking system
 Groups for projects
 Software development process
 Assignment 1
• Due Sept 11, 2001
• Individual AND group portions
• Requirements for Galaxy Sleuth – Questions (group)
• Informal scenarios – group and individual
Computer Science Software Engineering Slide 2
Groups
Paul Simmerlink
Stephen Herbert
Daniel Coming
Ogechi Ugwulebo
James King
Jigna J. Bhatt
Brett Harrison
Jonathan Ward
Michael Vidal
Howard C. Wu
Don Miller
James Frye
David Brewer
Olja Mihic
Casey Mees
Maggie Lu
Reid Webber
Taisuke Nagayama
Jeff Payne
Matasaka Sako
Casey J. Powell
Shana Rheault
RichardD.VanHorn
Rodel Mangoba
Steve Luong
Jason Dodd
Beifang Yi
Dorothy P. Cheung
William Nelson
Will Woolsey
Andrew Rodgers
James Cohen, Judy Rowley, Stan Sexton, Rajashekhar Yakkali,
Kazuhito Mori
Computer Science Software Engineering Slide 3
Engineering and Administration
Computer Science Software Engineering Slide 4
Informal Scenarios
 Help understand the problem
 Come up with questions on requirements
 Help constrain architecture
Computer Science Software Engineering Slide 5
Informal Scenarios - Guidelines
 Large number of small informal scenarios – short
scenarios
 An informal scenario should address one coherent aspect
of the system (logon, make a move, …)
 Should specify concrete values
 Address some errors
 Implementation details must not be in informal scenario
 Each informal scenario should have the form:
• System state at start
• Informal scenario
• Next informal scenario in sequence
Computer Science Software Engineering Slide 6
Sample: User makes a move
 Current system state: The system state consists of each
player at his or her starting location on the game board.
The 3 players in the game, Andrea, Max, and Emma have
each been dealt six cards (evidence). Value of cards is
irrelevant to this scenario
 Informal Scenario: Andrea has the next move. She spins
the spinner which lands on the number 5. Andrea has the
white playing piece. She moves this piece one space to
the left, one space toward the top, two spaces to the right,
and finally, one space to the top. Because of the final
position of the game piece, Andrea has not additional
option and her turn ends.
 Next scenario: The player to the left of Andrea goes next,
Max goes next
Computer Science Software Engineering Slide 7
Software Processes
 Coherent sets of activities for
specifying, designing, implementing
and testing software systems
Computer Science Software Engineering Slide 8
Objectives
 To introduce software process models
 To describe a number of different process models
and when they may be used
 To describe process models for requirements
engineering, software development, testing and
evolution
Computer Science Software Engineering Slide 9
Topics covered
 Software process models
 Process iteration
 Software specification
 Software design and implementation
 Software validation
 Software evolution
 Automated process support
Computer Science Software Engineering Slide 10
The software process
 A structured set of activities required to develop a
software system
• Specification
• Design
• Validation
• Evolution
 A software process model is an abstract
representation of a process. It presents a
description of a process from some particular
perspective
Computer Science Software Engineering Slide 11
Generic software process models
 The waterfall model
• Separate and distinct phases of specification and development
 Evolutionary development
• Specification and development are interleaved
 Formal systems development
• A mathematical system model is formally transformed to an
implementation
 Reuse-based development
• The system is assembled from existing components
Computer Science Software Engineering Slide 12
Waterfall model
Requirements
definition
System and
software design
Implementation
and unit testing
Integration and
system testing
Operation and
maintenance
Computer Science Software Engineering Slide 13
Waterfall model phases
 Requirements analysis and definition
 System and software design
 Implementation and unit testing
 Integration and system testing
 Operation and maintenance
 The drawback of the waterfall model is the
difficulty of accommodating change after the
process is underway
Computer Science Software Engineering Slide 14
Waterfall model problems
 Inflexible partitioning of the project into distinct
stages
 This makes it difficult to respond to changing
customer requirements
 Therefore, this model is only appropriate when
the requirements are well-understood
Computer Science Software Engineering Slide 15
Evolutionary development
 Exploratory development
• Objective is to work with customers and to evolve a final
system from an initial outline specification. Should start with
well-understood requirements
 Throw-away prototyping
• Objective is to understand the system requirements. Should start
with poorly understood requirements
Computer Science Software Engineering Slide 16
Evolutionary development
Validation
Final
version
Development
Intermediate
versions
Specification
Initial
version
Outline
description
Concurrent
activities
Computer Science Software Engineering Slide 17
Evolutionary development
 Problems
• Lack of process visibility
• Systems are often poorly structured
• Special skills (e.g. in languages for rapid prototyping) may be
required
 Applicability
• For small or medium-size interactive systems
• For parts of large systems (e.g. the user interface)
• For short-lifetime systems
Computer Science Software Engineering Slide 18
Formal systems development
 Based on the transformation of a mathematical
specification through different representations to
an executable program
 Transformations are ‘correctness-preserving’ so it
is straightforward to show that the program
conforms to its specification
 Embodied in the ‘Cleanroom’ approach to
software development
Computer Science Software Engineering Slide 19
Formal systems development
Requirements
definition
Formal
specification
Formal
transformation
Integration and
system testing
Computer Science Software Engineering Slide 20
Formal transformations
R2
Formal
specification
R3
Executable
program
P2 P3 P4
T1 T2 T3 T4
Proofs of transformation correctness
Formal transformations
R1
P1
Computer Science Software Engineering Slide 21
Formal systems development
 Problems
• Need for specialised skills and training to apply the technique
• Difficult to formally specify some aspects of the system such as
the user interface
 Applicability
• Critical systems especially those where a safety or security case
must be made before the system is put into operation
Computer Science Software Engineering Slide 22
Reuse-oriented development
 Based on systematic reuse where systems are
integrated from existing components or COTS
(Commercial-off-the-shelf) systems
 Process stages
• Component analysis
• Requirements modification
• System design with reuse
• Development and integration
 This approach is becoming more important but
still limited experience with it
Computer Science Software Engineering Slide 23
Reuse-oriented development
Requirements
specification
Component
analysis
Development
and integration
System design
with reuse
Requirements
modification
System
validation
Computer Science Software Engineering Slide 24
Process iteration
 System requirements ALWAYS evolve in the
course of a project so process iteration where
earlier stages are reworked is always part of the
process for large systems
 Iteration can be applied to any of the generic
process models
 Two (related) approaches
• Incremental development
• Spiral development
Computer Science Software Engineering Slide 25
Incremental development
 Rather than deliver the system as a single
delivery, the development and delivery is broken
down into increments with each increment
delivering part of the required functionality
 User requirements are prioritised and the highest
priority requirements are included in early
increments
 Once the development of an increment is started,
the requirements are frozen though requirements
for later increments can continue to evolve
Computer Science Software Engineering Slide 26
Incremental development
Validate
increment
Develop system
increment
Design system
architecture
Integrate
increment
Validate
system
Define outline
requirements
Assign requirements
to increments
System incomplete
Final
system
Computer Science Software Engineering Slide 27
Incremental development advantages
 Customer value can be delivered with each
increment so system functionality is available
earlier
 Early increments act as a prototype to help elicit
requirements for later increments
 Lower risk of overall project failure
 The highest priority system services tend to
receive the most testing
Computer Science Software Engineering Slide 28
Extreme programming
 New approach to development based on the
development and delivery of very small
increments of functionality
 Relies on constant code improvement, user
involvement in the development team and
pairwise programming
Computer Science Software Engineering Slide 29
Spiral development
 Process is represented as a spiral rather than as a
sequence of activities with backtracking
 Each loop in the spiral represents a phase in the
process.
 No fixed phases such as specification or design -
loops in the spiral are chosen depending on what
is required
 Risks are explicitly assessed and resolved
throughout the process
Computer Science Software Engineering Slide 30
Spiral model of the software process
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis Proto-
type 1
Prototype 2
Prototype 3
Opera-
tional
protoype
Concept of
Operation
Simulations, models, benchmarks
S/W
requirements
Requirement
validation
Design
V&V
Product
design Detailed
design
Code
Unit test
Integration
test
Acceptance
test
Service Develop, verify
next-level product
Evaluate alternatives
identify, resolve risks
Determine objectives
alternatives and
constraints
Plan next phase
Integration
and test plan
Development
plan
Requirements plan
Life-cycle plan
REVIEW
Computer Science Software Engineering Slide 31
Spiral model sectors
 Objective setting
• Specific objectives for the phase are identified
 Risk assessment and reduction
• Risks are assessed and activities put in place to reduce the key
risks
 Development and validation
• A development model for the system is chosen which can be
any of the generic models
 Planning
• The project is reviewed and the next phase of the spiral is
planned
Computer Science Software Engineering Slide 32
Software specification
 The process of establishing what services are
required and the constraints on the system’s
operation and development
 Requirements engineering process
• Feasibility study
• Requirements elicitation and analysis
• Requirements specification
• Requirements validation
Computer Science Software Engineering Slide 33
The requirements engineering process
Feasibility
study
Requirements
elicitation and
analysis
Requirements
specification
Requirements
validation
Feasibility
report
System
models
User and system
requirements
Requirements
document
Computer Science Software Engineering Slide 34
Software design and implementation
 The process of converting the system
specification into an executable system
 Software design
• Design a software structure that realises the specification
 Implementation
• Translate this structure into an executable program
 The activities of design and implementation are
closely related and may be inter-leaved
Computer Science Software Engineering Slide 35
Design process activities
 Architectural design
 Abstract specification
 Interface design
 Component design
 Data structure design
 Algorithm design
Computer Science Software Engineering Slide 36
The software design process
Ar
chitectur
al
design
Abstr
act
specifica
tion
Interface
design
Component
design
Da
ta
structur
e
design
Algorithm
design
Sy stem
architectur
e
Softw
are
specifica
tion
Interface
specifica
tion
Component
specifica
tion
Da
ta
structur
e
specifica
tion
Algorithm
specifica
tion
Requir
ements
specifica
tion
Design acti
vities
Design pr
oducts
Computer Science Software Engineering Slide 37
Design methods
 Systematic approaches to developing a software
design
 The design is usually documented as a set of
graphical models
 Possible models
• Data-flow model
• Entity-relation-attribute model
• Structural model
• Object models
Computer Science Software Engineering Slide 38
Programming and debugging
 Translating a design into a program and removing
errors from that program
 Programming is a personal activity - there is no
generic programming process
 Programmers carry out some program testing to
discover faults in the program and remove these
faults in the debugging process
Computer Science Software Engineering Slide 39
The debugging process
Locate
error
Design
error repair
Repair
error
Re-test
program
Computer Science Software Engineering Slide 40
Software validation
 Verification and validation is intended to show
that a system conforms to its specification and
meets the requirements of the system customer
 Involves checking and review processes and
system testing
 System testing involves executing the system
with test cases that are derived from the
specification of the real data to be processed by
the system
Computer Science Software Engineering Slide 41
The testing process
Sub-system
testing
Module
testing
Unit
testing
System
testing
Acceptance
testing
Component
testing
Integration testing User
testing
Computer Science Software Engineering Slide 42
Testing stages
 Unit testing
• Individual components are tested
 Module testing
• Related collections of dependent components are tested
 Sub-system testing
• Modules are integrated into sub-systems and tested. The focus here
should be on interface testing
 System testing
• Testing of the system as a whole. Testing of emergent properties
 Acceptance testing
• Testing with customer data to check that it is acceptable
Computer Science Software Engineering Slide 43
Testing phases
Requirements
specification
System
specification
System
design
Detailed
design
Module and
unit code
and tess
Sub-system
integration
test plan
System
integration
test plan
Acceptance
test plan
Service
Acceptance
test
System
integration test
Sub-system
integration test
Computer Science Software Engineering Slide 44
Software evolution
 Software is inherently flexible and can change.
 As requirements change through changing
business circumstances, the software that
supports the business must also evolve and
change
 Although there has been a demarcation between
development and evolution (maintenance) this is
increasingly irrelevant as fewer and fewer
systems are completely new
Computer Science Software Engineering Slide 45
System evolution
Assess existing
systems
Define system
requirements
Propose system
changes
Modify
systems
New
system
Existing
systems
Computer Science Software Engineering Slide 46
Automated process support (CASE)
 Computer-aided software engineering (CASE) is
software to support software development and
evolution processes
 Activity automation
• Graphical editors for system model development
• Data dictionary to manage design entities
• Graphical UI builder for user interface construction
• Debuggers to support program fault finding
• Automated translators to generate new versions of a program
Computer Science Software Engineering Slide 47
Case technology
 Case technology has led to significant
improvements in the software process though not
the order of magnitude improvements that were
once predicted
• Software engineering requires creative thought - this is not
readily automatable
• Software engineering is a team activity and, for large projects,
much time is spent in team interactions. CASE technology does
not really support these
Computer Science Software Engineering Slide 48
CASE classification
 Classification helps us understand the different types of
CASE tools and their support for process activities
 Functional perspective
• Tools are classified according to their specific function
 Process perspective
• Tools are classified according to process activities that are supported
 Integration perspective
• Tools are classified according to their organisation into integrated units
Computer Science Software Engineering Slide 49
Functional tool classification
Tool type Examples
Planning tools PERT tools, estimation tools,
spreadsheets
Editing tools Text editors, diagram editors, word
processors
Change management tools Requirements traceability tools, change
control systems
Configuration management tools Version management systems, system
building tools
Prototyping tools Very high-level languages,
userin terface generators
Method-support tools Design editors, data dictionaries, code
generators
Language-processing tools Compilers, interpreters
Program analysis tools Cross reference generators, static
analysers, dynamic analysers
Testing tools Test data generators, file comparators
Debugging tools Interactive debugging systems
Documentation tools Page layout programs,image editors
Re-engineering tools Cross-reference systems, program re-
structuring systems
Activity-based classification
Reengineering tools
Testing tools
Debugging tools
Program analysis tools
Language-processing
tools
Method support tools
Prototyping tools
Configuration
management tools
Change management tools
Documentation tools
Editing tools
Planning tools
Specification Design Implementation Verification
and
Validation
Computer Science Software Engineering Slide 51
CASE integration
 Tools
• Support individual process tasks such as design consistency
checking, text editing, etc.
 Workbenches
• Support a process phase such as specification or design,
Normally include a number of integrated tools
 Environments
• Support all or a substantial part of an entire software process.
Normally include several integrated workbenches
Computer Science Software Engineering Slide 52
Tools, workbenches, environments
Single-method
workbenches
General-purpose
workbenches
Multi-method
workbenches
Language-specific
workbenches
Programming Testing
Analysis and
design
Integrated
environments
Process-centred
environments
File
comparators
Compilers
Editors
Environments
Workbenches
Tools
CASE
technology
Computer Science Software Engineering Slide 53
Key points
 Software processes are the activities involved in
producing and evolving a software system. They
are represented in a software process model
 General activities are specification, design and
implementation, validation and evolution
 Generic process models describe the organisation
of software processes
 Iterative process models describe the software
process as a cycle of activities
Computer Science Software Engineering Slide 54
Key points
 Requirements engineering is the process of developing a
software specification
 Design and implementation processes transform the
specification to an executable program
 Validation involves checking that the system meets to its
specification and user needs
 Evolution is concerned with modifying the system after it
is in use
 CASE technology supports software process activities

More Related Content

Similar to regeeggregretgregrgrrgfergregrgregregrwgreger

SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SEAbhishekTripathi709328
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptxMarwondoMarwondo
 
Machine Learning in Software Engineering
Machine Learning in Software EngineeringMachine Learning in Software Engineering
Machine Learning in Software EngineeringAlaa Hamouda
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3koolkampus
 
Soft Eng - Software Process
Soft  Eng - Software ProcessSoft  Eng - Software Process
Soft Eng - Software ProcessJomel Penalba
 
about how software prototyping helps in SDLC
about how software prototyping helps in SDLCabout how software prototyping helps in SDLC
about how software prototyping helps in SDLCshettyplacement08
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 

Similar to regeeggregretgregrgrrgfergregrgregregrwgreger (20)

ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
 
merged (1).pdf
merged (1).pdfmerged (1).pdf
merged (1).pdf
 
Machine Learning in Software Engineering
Machine Learning in Software EngineeringMachine Learning in Software Engineering
Machine Learning in Software Engineering
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Soft Eng - Software Process
Soft  Eng - Software ProcessSoft  Eng - Software Process
Soft Eng - Software Process
 
Ch4
Ch4Ch4
Ch4
 
Ch4
Ch4Ch4
Ch4
 
0273710133 pp01v2
0273710133 pp01v20273710133 pp01v2
0273710133 pp01v2
 
Introduction to Software Enigneering
Introduction to Software Enigneering Introduction to Software Enigneering
Introduction to Software Enigneering
 
Unit1
Unit1Unit1
Unit1
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
about how software prototyping helps in SDLC
about how software prototyping helps in SDLCabout how software prototyping helps in SDLC
about how software prototyping helps in SDLC
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
Intro-Soft-Engg-2.pptx
Intro-Soft-Engg-2.pptxIntro-Soft-Engg-2.pptx
Intro-Soft-Engg-2.pptx
 

Recently uploaded

Real Estate Finance and Investments (2019).pdf
Real Estate Finance and Investments (2019).pdfReal Estate Finance and Investments (2019).pdf
Real Estate Finance and Investments (2019).pdfZahraYusuf9
 
Vanam At Purva Soukhyam Guduvanchery.pdf.pdf
Vanam At Purva Soukhyam Guduvanchery.pdf.pdfVanam At Purva Soukhyam Guduvanchery.pdf.pdf
Vanam At Purva Soukhyam Guduvanchery.pdf.pdfkratirudram
 
Eldeco Dwarka Project In Delhi-brochure.pdf.pdf
Eldeco Dwarka Project In Delhi-brochure.pdf.pdfEldeco Dwarka Project In Delhi-brochure.pdf.pdf
Eldeco Dwarka Project In Delhi-brochure.pdf.pdfkratirudram
 
Kalpataru Exquisite Wakad Pune E-Brochure.pdf
Kalpataru Exquisite Wakad Pune  E-Brochure.pdfKalpataru Exquisite Wakad Pune  E-Brochure.pdf
Kalpataru Exquisite Wakad Pune E-Brochure.pdfManishSaxena95
 
Retail Space for Lease - 1221 W. Main St., Sun Prairie, WI
Retail Space for Lease - 1221 W. Main St., Sun Prairie, WIRetail Space for Lease - 1221 W. Main St., Sun Prairie, WI
Retail Space for Lease - 1221 W. Main St., Sun Prairie, WILee & Associates of Madison, WI
 
BPTP THE AMAARIO Luxury Project Invest Like Royalty in Sector 37D Gurgaon Dwa...
BPTP THE AMAARIO Luxury Project Invest Like Royalty in Sector 37D Gurgaon Dwa...BPTP THE AMAARIO Luxury Project Invest Like Royalty in Sector 37D Gurgaon Dwa...
BPTP THE AMAARIO Luxury Project Invest Like Royalty in Sector 37D Gurgaon Dwa...ApartmentWala1
 
Acibadem Konaklari Uskudar - Listin Turkey
Acibadem Konaklari Uskudar - Listin TurkeyAcibadem Konaklari Uskudar - Listin Turkey
Acibadem Konaklari Uskudar - Listin TurkeyListing Turkey
 
MEQ Mainstreet Equity Corp Q2 2024 Investor Presentation
MEQ Mainstreet Equity Corp Q2 2024 Investor PresentationMEQ Mainstreet Equity Corp Q2 2024 Investor Presentation
MEQ Mainstreet Equity Corp Q2 2024 Investor PresentationMEQ - Mainstreet Equity Corp.
 
Escort—>Call GiRls In Mori Gate Delhi —>8447779280—Service Escorts In South D...
Escort—>Call GiRls In Mori Gate Delhi —>8447779280—Service Escorts In South D...Escort—>Call GiRls In Mori Gate Delhi —>8447779280—Service Escorts In South D...
Escort—>Call GiRls In Mori Gate Delhi —>8447779280—Service Escorts In South D...asmaqueen5
 
Low Density Living New Project in BPTP THE AMAARIO Sector 37D Gurgaon Haryana...
Low Density Living New Project in BPTP THE AMAARIO Sector 37D Gurgaon Haryana...Low Density Living New Project in BPTP THE AMAARIO Sector 37D Gurgaon Haryana...
Low Density Living New Project in BPTP THE AMAARIO Sector 37D Gurgaon Haryana...ApartmentWala1
 
SVN Live 5.6.24 Weekly Property Broadcast
SVN Live 5.6.24 Weekly Property BroadcastSVN Live 5.6.24 Weekly Property Broadcast
SVN Live 5.6.24 Weekly Property BroadcastSVN International Corp.
 
BPTP THE AMAARIO For The Royals Of Tomorrow in Sector 37D Gurgaon Dwarka Expr...
BPTP THE AMAARIO For The Royals Of Tomorrow in Sector 37D Gurgaon Dwarka Expr...BPTP THE AMAARIO For The Royals Of Tomorrow in Sector 37D Gurgaon Dwarka Expr...
BPTP THE AMAARIO For The Royals Of Tomorrow in Sector 37D Gurgaon Dwarka Expr...ApartmentWala1
 
Best Interior Design Services in Haldwani
Best Interior Design Services in HaldwaniBest Interior Design Services in Haldwani
Best Interior Design Services in HaldwaniGeomatrix
 
Bridge & Elliot Ladner Floor Plans May 2024.pdf
Bridge & Elliot Ladner Floor Plans May 2024.pdfBridge & Elliot Ladner Floor Plans May 2024.pdf
Bridge & Elliot Ladner Floor Plans May 2024.pdfVickyAulakh1
 
Yashwin Enchante Uppar Kharadi Pune E-Brochue.pdf
Yashwin Enchante Uppar Kharadi Pune  E-Brochue.pdfYashwin Enchante Uppar Kharadi Pune  E-Brochue.pdf
Yashwin Enchante Uppar Kharadi Pune E-Brochue.pdfManishSaxena95
 
Jaipur Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Jaipur Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsJaipur Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Jaipur Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsDeepika Singh
 
Cheap Rate ✨➥9582086666▻✨Call Girls In Gurgaon Sector 1 (Gurgaon)
Cheap Rate ✨➥9582086666▻✨Call Girls In Gurgaon Sector 1 (Gurgaon)Cheap Rate ✨➥9582086666▻✨Call Girls In Gurgaon Sector 1 (Gurgaon)
Cheap Rate ✨➥9582086666▻✨Call Girls In Gurgaon Sector 1 (Gurgaon)delhi24hrs1
 
Kohinoor Courtyard One Wakad Pune | Elegant Living Spaces
Kohinoor Courtyard One Wakad Pune | Elegant Living SpacesKohinoor Courtyard One Wakad Pune | Elegant Living Spaces
Kohinoor Courtyard One Wakad Pune | Elegant Living Spacesaidasheikh47
 
Rohan Harita Tathawade Pune Brochure.pdf
Rohan Harita Tathawade Pune Brochure.pdfRohan Harita Tathawade Pune Brochure.pdf
Rohan Harita Tathawade Pune Brochure.pdfabbu831446
 
Bptp The Amaario Launch Luxury Project Sector 37D Gurgaon Dwarka Expressway...
Bptp The Amaario Launch  Luxury Project  Sector 37D Gurgaon Dwarka Expressway...Bptp The Amaario Launch  Luxury Project  Sector 37D Gurgaon Dwarka Expressway...
Bptp The Amaario Launch Luxury Project Sector 37D Gurgaon Dwarka Expressway...ApartmentWala1
 

Recently uploaded (20)

Real Estate Finance and Investments (2019).pdf
Real Estate Finance and Investments (2019).pdfReal Estate Finance and Investments (2019).pdf
Real Estate Finance and Investments (2019).pdf
 
Vanam At Purva Soukhyam Guduvanchery.pdf.pdf
Vanam At Purva Soukhyam Guduvanchery.pdf.pdfVanam At Purva Soukhyam Guduvanchery.pdf.pdf
Vanam At Purva Soukhyam Guduvanchery.pdf.pdf
 
Eldeco Dwarka Project In Delhi-brochure.pdf.pdf
Eldeco Dwarka Project In Delhi-brochure.pdf.pdfEldeco Dwarka Project In Delhi-brochure.pdf.pdf
Eldeco Dwarka Project In Delhi-brochure.pdf.pdf
 
Kalpataru Exquisite Wakad Pune E-Brochure.pdf
Kalpataru Exquisite Wakad Pune  E-Brochure.pdfKalpataru Exquisite Wakad Pune  E-Brochure.pdf
Kalpataru Exquisite Wakad Pune E-Brochure.pdf
 
Retail Space for Lease - 1221 W. Main St., Sun Prairie, WI
Retail Space for Lease - 1221 W. Main St., Sun Prairie, WIRetail Space for Lease - 1221 W. Main St., Sun Prairie, WI
Retail Space for Lease - 1221 W. Main St., Sun Prairie, WI
 
BPTP THE AMAARIO Luxury Project Invest Like Royalty in Sector 37D Gurgaon Dwa...
BPTP THE AMAARIO Luxury Project Invest Like Royalty in Sector 37D Gurgaon Dwa...BPTP THE AMAARIO Luxury Project Invest Like Royalty in Sector 37D Gurgaon Dwa...
BPTP THE AMAARIO Luxury Project Invest Like Royalty in Sector 37D Gurgaon Dwa...
 
Acibadem Konaklari Uskudar - Listin Turkey
Acibadem Konaklari Uskudar - Listin TurkeyAcibadem Konaklari Uskudar - Listin Turkey
Acibadem Konaklari Uskudar - Listin Turkey
 
MEQ Mainstreet Equity Corp Q2 2024 Investor Presentation
MEQ Mainstreet Equity Corp Q2 2024 Investor PresentationMEQ Mainstreet Equity Corp Q2 2024 Investor Presentation
MEQ Mainstreet Equity Corp Q2 2024 Investor Presentation
 
Escort—>Call GiRls In Mori Gate Delhi —>8447779280—Service Escorts In South D...
Escort—>Call GiRls In Mori Gate Delhi —>8447779280—Service Escorts In South D...Escort—>Call GiRls In Mori Gate Delhi —>8447779280—Service Escorts In South D...
Escort—>Call GiRls In Mori Gate Delhi —>8447779280—Service Escorts In South D...
 
Low Density Living New Project in BPTP THE AMAARIO Sector 37D Gurgaon Haryana...
Low Density Living New Project in BPTP THE AMAARIO Sector 37D Gurgaon Haryana...Low Density Living New Project in BPTP THE AMAARIO Sector 37D Gurgaon Haryana...
Low Density Living New Project in BPTP THE AMAARIO Sector 37D Gurgaon Haryana...
 
SVN Live 5.6.24 Weekly Property Broadcast
SVN Live 5.6.24 Weekly Property BroadcastSVN Live 5.6.24 Weekly Property Broadcast
SVN Live 5.6.24 Weekly Property Broadcast
 
BPTP THE AMAARIO For The Royals Of Tomorrow in Sector 37D Gurgaon Dwarka Expr...
BPTP THE AMAARIO For The Royals Of Tomorrow in Sector 37D Gurgaon Dwarka Expr...BPTP THE AMAARIO For The Royals Of Tomorrow in Sector 37D Gurgaon Dwarka Expr...
BPTP THE AMAARIO For The Royals Of Tomorrow in Sector 37D Gurgaon Dwarka Expr...
 
Best Interior Design Services in Haldwani
Best Interior Design Services in HaldwaniBest Interior Design Services in Haldwani
Best Interior Design Services in Haldwani
 
Bridge & Elliot Ladner Floor Plans May 2024.pdf
Bridge & Elliot Ladner Floor Plans May 2024.pdfBridge & Elliot Ladner Floor Plans May 2024.pdf
Bridge & Elliot Ladner Floor Plans May 2024.pdf
 
Yashwin Enchante Uppar Kharadi Pune E-Brochue.pdf
Yashwin Enchante Uppar Kharadi Pune  E-Brochue.pdfYashwin Enchante Uppar Kharadi Pune  E-Brochue.pdf
Yashwin Enchante Uppar Kharadi Pune E-Brochue.pdf
 
Jaipur Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Jaipur Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsJaipur Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Jaipur Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
 
Cheap Rate ✨➥9582086666▻✨Call Girls In Gurgaon Sector 1 (Gurgaon)
Cheap Rate ✨➥9582086666▻✨Call Girls In Gurgaon Sector 1 (Gurgaon)Cheap Rate ✨➥9582086666▻✨Call Girls In Gurgaon Sector 1 (Gurgaon)
Cheap Rate ✨➥9582086666▻✨Call Girls In Gurgaon Sector 1 (Gurgaon)
 
Kohinoor Courtyard One Wakad Pune | Elegant Living Spaces
Kohinoor Courtyard One Wakad Pune | Elegant Living SpacesKohinoor Courtyard One Wakad Pune | Elegant Living Spaces
Kohinoor Courtyard One Wakad Pune | Elegant Living Spaces
 
Rohan Harita Tathawade Pune Brochure.pdf
Rohan Harita Tathawade Pune Brochure.pdfRohan Harita Tathawade Pune Brochure.pdf
Rohan Harita Tathawade Pune Brochure.pdf
 
Bptp The Amaario Launch Luxury Project Sector 37D Gurgaon Dwarka Expressway...
Bptp The Amaario Launch  Luxury Project  Sector 37D Gurgaon Dwarka Expressway...Bptp The Amaario Launch  Luxury Project  Sector 37D Gurgaon Dwarka Expressway...
Bptp The Amaario Launch Luxury Project Sector 37D Gurgaon Dwarka Expressway...
 

regeeggregretgregrgrrgfergregrgregregrwgreger

  • 1. Computer Science Software Engineering Slide 1 CS425/CS625  List of classes for the banking system  Groups for projects  Software development process  Assignment 1 • Due Sept 11, 2001 • Individual AND group portions • Requirements for Galaxy Sleuth – Questions (group) • Informal scenarios – group and individual
  • 2. Computer Science Software Engineering Slide 2 Groups Paul Simmerlink Stephen Herbert Daniel Coming Ogechi Ugwulebo James King Jigna J. Bhatt Brett Harrison Jonathan Ward Michael Vidal Howard C. Wu Don Miller James Frye David Brewer Olja Mihic Casey Mees Maggie Lu Reid Webber Taisuke Nagayama Jeff Payne Matasaka Sako Casey J. Powell Shana Rheault RichardD.VanHorn Rodel Mangoba Steve Luong Jason Dodd Beifang Yi Dorothy P. Cheung William Nelson Will Woolsey Andrew Rodgers James Cohen, Judy Rowley, Stan Sexton, Rajashekhar Yakkali, Kazuhito Mori
  • 3. Computer Science Software Engineering Slide 3 Engineering and Administration
  • 4. Computer Science Software Engineering Slide 4 Informal Scenarios  Help understand the problem  Come up with questions on requirements  Help constrain architecture
  • 5. Computer Science Software Engineering Slide 5 Informal Scenarios - Guidelines  Large number of small informal scenarios – short scenarios  An informal scenario should address one coherent aspect of the system (logon, make a move, …)  Should specify concrete values  Address some errors  Implementation details must not be in informal scenario  Each informal scenario should have the form: • System state at start • Informal scenario • Next informal scenario in sequence
  • 6. Computer Science Software Engineering Slide 6 Sample: User makes a move  Current system state: The system state consists of each player at his or her starting location on the game board. The 3 players in the game, Andrea, Max, and Emma have each been dealt six cards (evidence). Value of cards is irrelevant to this scenario  Informal Scenario: Andrea has the next move. She spins the spinner which lands on the number 5. Andrea has the white playing piece. She moves this piece one space to the left, one space toward the top, two spaces to the right, and finally, one space to the top. Because of the final position of the game piece, Andrea has not additional option and her turn ends.  Next scenario: The player to the left of Andrea goes next, Max goes next
  • 7. Computer Science Software Engineering Slide 7 Software Processes  Coherent sets of activities for specifying, designing, implementing and testing software systems
  • 8. Computer Science Software Engineering Slide 8 Objectives  To introduce software process models  To describe a number of different process models and when they may be used  To describe process models for requirements engineering, software development, testing and evolution
  • 9. Computer Science Software Engineering Slide 9 Topics covered  Software process models  Process iteration  Software specification  Software design and implementation  Software validation  Software evolution  Automated process support
  • 10. Computer Science Software Engineering Slide 10 The software process  A structured set of activities required to develop a software system • Specification • Design • Validation • Evolution  A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective
  • 11. Computer Science Software Engineering Slide 11 Generic software process models  The waterfall model • Separate and distinct phases of specification and development  Evolutionary development • Specification and development are interleaved  Formal systems development • A mathematical system model is formally transformed to an implementation  Reuse-based development • The system is assembled from existing components
  • 12. Computer Science Software Engineering Slide 12 Waterfall model Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance
  • 13. Computer Science Software Engineering Slide 13 Waterfall model phases  Requirements analysis and definition  System and software design  Implementation and unit testing  Integration and system testing  Operation and maintenance  The drawback of the waterfall model is the difficulty of accommodating change after the process is underway
  • 14. Computer Science Software Engineering Slide 14 Waterfall model problems  Inflexible partitioning of the project into distinct stages  This makes it difficult to respond to changing customer requirements  Therefore, this model is only appropriate when the requirements are well-understood
  • 15. Computer Science Software Engineering Slide 15 Evolutionary development  Exploratory development • Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements  Throw-away prototyping • Objective is to understand the system requirements. Should start with poorly understood requirements
  • 16. Computer Science Software Engineering Slide 16 Evolutionary development Validation Final version Development Intermediate versions Specification Initial version Outline description Concurrent activities
  • 17. Computer Science Software Engineering Slide 17 Evolutionary development  Problems • Lack of process visibility • Systems are often poorly structured • Special skills (e.g. in languages for rapid prototyping) may be required  Applicability • For small or medium-size interactive systems • For parts of large systems (e.g. the user interface) • For short-lifetime systems
  • 18. Computer Science Software Engineering Slide 18 Formal systems development  Based on the transformation of a mathematical specification through different representations to an executable program  Transformations are ‘correctness-preserving’ so it is straightforward to show that the program conforms to its specification  Embodied in the ‘Cleanroom’ approach to software development
  • 19. Computer Science Software Engineering Slide 19 Formal systems development Requirements definition Formal specification Formal transformation Integration and system testing
  • 20. Computer Science Software Engineering Slide 20 Formal transformations R2 Formal specification R3 Executable program P2 P3 P4 T1 T2 T3 T4 Proofs of transformation correctness Formal transformations R1 P1
  • 21. Computer Science Software Engineering Slide 21 Formal systems development  Problems • Need for specialised skills and training to apply the technique • Difficult to formally specify some aspects of the system such as the user interface  Applicability • Critical systems especially those where a safety or security case must be made before the system is put into operation
  • 22. Computer Science Software Engineering Slide 22 Reuse-oriented development  Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems  Process stages • Component analysis • Requirements modification • System design with reuse • Development and integration  This approach is becoming more important but still limited experience with it
  • 23. Computer Science Software Engineering Slide 23 Reuse-oriented development Requirements specification Component analysis Development and integration System design with reuse Requirements modification System validation
  • 24. Computer Science Software Engineering Slide 24 Process iteration  System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems  Iteration can be applied to any of the generic process models  Two (related) approaches • Incremental development • Spiral development
  • 25. Computer Science Software Engineering Slide 25 Incremental development  Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality  User requirements are prioritised and the highest priority requirements are included in early increments  Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve
  • 26. Computer Science Software Engineering Slide 26 Incremental development Validate increment Develop system increment Design system architecture Integrate increment Validate system Define outline requirements Assign requirements to increments System incomplete Final system
  • 27. Computer Science Software Engineering Slide 27 Incremental development advantages  Customer value can be delivered with each increment so system functionality is available earlier  Early increments act as a prototype to help elicit requirements for later increments  Lower risk of overall project failure  The highest priority system services tend to receive the most testing
  • 28. Computer Science Software Engineering Slide 28 Extreme programming  New approach to development based on the development and delivery of very small increments of functionality  Relies on constant code improvement, user involvement in the development team and pairwise programming
  • 29. Computer Science Software Engineering Slide 29 Spiral development  Process is represented as a spiral rather than as a sequence of activities with backtracking  Each loop in the spiral represents a phase in the process.  No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required  Risks are explicitly assessed and resolved throughout the process
  • 30. Computer Science Software Engineering Slide 30 Spiral model of the software process Risk analysis Risk analysis Risk analysis Risk analysis Proto- type 1 Prototype 2 Prototype 3 Opera- tional protoype Concept of Operation Simulations, models, benchmarks S/W requirements Requirement validation Design V&V Product design Detailed design Code Unit test Integration test Acceptance test Service Develop, verify next-level product Evaluate alternatives identify, resolve risks Determine objectives alternatives and constraints Plan next phase Integration and test plan Development plan Requirements plan Life-cycle plan REVIEW
  • 31. Computer Science Software Engineering Slide 31 Spiral model sectors  Objective setting • Specific objectives for the phase are identified  Risk assessment and reduction • Risks are assessed and activities put in place to reduce the key risks  Development and validation • A development model for the system is chosen which can be any of the generic models  Planning • The project is reviewed and the next phase of the spiral is planned
  • 32. Computer Science Software Engineering Slide 32 Software specification  The process of establishing what services are required and the constraints on the system’s operation and development  Requirements engineering process • Feasibility study • Requirements elicitation and analysis • Requirements specification • Requirements validation
  • 33. Computer Science Software Engineering Slide 33 The requirements engineering process Feasibility study Requirements elicitation and analysis Requirements specification Requirements validation Feasibility report System models User and system requirements Requirements document
  • 34. Computer Science Software Engineering Slide 34 Software design and implementation  The process of converting the system specification into an executable system  Software design • Design a software structure that realises the specification  Implementation • Translate this structure into an executable program  The activities of design and implementation are closely related and may be inter-leaved
  • 35. Computer Science Software Engineering Slide 35 Design process activities  Architectural design  Abstract specification  Interface design  Component design  Data structure design  Algorithm design
  • 36. Computer Science Software Engineering Slide 36 The software design process Ar chitectur al design Abstr act specifica tion Interface design Component design Da ta structur e design Algorithm design Sy stem architectur e Softw are specifica tion Interface specifica tion Component specifica tion Da ta structur e specifica tion Algorithm specifica tion Requir ements specifica tion Design acti vities Design pr oducts
  • 37. Computer Science Software Engineering Slide 37 Design methods  Systematic approaches to developing a software design  The design is usually documented as a set of graphical models  Possible models • Data-flow model • Entity-relation-attribute model • Structural model • Object models
  • 38. Computer Science Software Engineering Slide 38 Programming and debugging  Translating a design into a program and removing errors from that program  Programming is a personal activity - there is no generic programming process  Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process
  • 39. Computer Science Software Engineering Slide 39 The debugging process Locate error Design error repair Repair error Re-test program
  • 40. Computer Science Software Engineering Slide 40 Software validation  Verification and validation is intended to show that a system conforms to its specification and meets the requirements of the system customer  Involves checking and review processes and system testing  System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system
  • 41. Computer Science Software Engineering Slide 41 The testing process Sub-system testing Module testing Unit testing System testing Acceptance testing Component testing Integration testing User testing
  • 42. Computer Science Software Engineering Slide 42 Testing stages  Unit testing • Individual components are tested  Module testing • Related collections of dependent components are tested  Sub-system testing • Modules are integrated into sub-systems and tested. The focus here should be on interface testing  System testing • Testing of the system as a whole. Testing of emergent properties  Acceptance testing • Testing with customer data to check that it is acceptable
  • 43. Computer Science Software Engineering Slide 43 Testing phases Requirements specification System specification System design Detailed design Module and unit code and tess Sub-system integration test plan System integration test plan Acceptance test plan Service Acceptance test System integration test Sub-system integration test
  • 44. Computer Science Software Engineering Slide 44 Software evolution  Software is inherently flexible and can change.  As requirements change through changing business circumstances, the software that supports the business must also evolve and change  Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new
  • 45. Computer Science Software Engineering Slide 45 System evolution Assess existing systems Define system requirements Propose system changes Modify systems New system Existing systems
  • 46. Computer Science Software Engineering Slide 46 Automated process support (CASE)  Computer-aided software engineering (CASE) is software to support software development and evolution processes  Activity automation • Graphical editors for system model development • Data dictionary to manage design entities • Graphical UI builder for user interface construction • Debuggers to support program fault finding • Automated translators to generate new versions of a program
  • 47. Computer Science Software Engineering Slide 47 Case technology  Case technology has led to significant improvements in the software process though not the order of magnitude improvements that were once predicted • Software engineering requires creative thought - this is not readily automatable • Software engineering is a team activity and, for large projects, much time is spent in team interactions. CASE technology does not really support these
  • 48. Computer Science Software Engineering Slide 48 CASE classification  Classification helps us understand the different types of CASE tools and their support for process activities  Functional perspective • Tools are classified according to their specific function  Process perspective • Tools are classified according to process activities that are supported  Integration perspective • Tools are classified according to their organisation into integrated units
  • 49. Computer Science Software Engineering Slide 49 Functional tool classification Tool type Examples Planning tools PERT tools, estimation tools, spreadsheets Editing tools Text editors, diagram editors, word processors Change management tools Requirements traceability tools, change control systems Configuration management tools Version management systems, system building tools Prototyping tools Very high-level languages, userin terface generators Method-support tools Design editors, data dictionaries, code generators Language-processing tools Compilers, interpreters Program analysis tools Cross reference generators, static analysers, dynamic analysers Testing tools Test data generators, file comparators Debugging tools Interactive debugging systems Documentation tools Page layout programs,image editors Re-engineering tools Cross-reference systems, program re- structuring systems
  • 50. Activity-based classification Reengineering tools Testing tools Debugging tools Program analysis tools Language-processing tools Method support tools Prototyping tools Configuration management tools Change management tools Documentation tools Editing tools Planning tools Specification Design Implementation Verification and Validation
  • 51. Computer Science Software Engineering Slide 51 CASE integration  Tools • Support individual process tasks such as design consistency checking, text editing, etc.  Workbenches • Support a process phase such as specification or design, Normally include a number of integrated tools  Environments • Support all or a substantial part of an entire software process. Normally include several integrated workbenches
  • 52. Computer Science Software Engineering Slide 52 Tools, workbenches, environments Single-method workbenches General-purpose workbenches Multi-method workbenches Language-specific workbenches Programming Testing Analysis and design Integrated environments Process-centred environments File comparators Compilers Editors Environments Workbenches Tools CASE technology
  • 53. Computer Science Software Engineering Slide 53 Key points  Software processes are the activities involved in producing and evolving a software system. They are represented in a software process model  General activities are specification, design and implementation, validation and evolution  Generic process models describe the organisation of software processes  Iterative process models describe the software process as a cycle of activities
  • 54. Computer Science Software Engineering Slide 54 Key points  Requirements engineering is the process of developing a software specification  Design and implementation processes transform the specification to an executable program  Validation involves checking that the system meets to its specification and user needs  Evolution is concerned with modifying the system after it is in use  CASE technology supports software process activities