Download Software Engineering Lecture Notes - Prof. Susan Elliott Sim and more Study notes Computer Science in PDF only on Docsity!
INF 111 / CSE 121:
Software Tools and Methods
Lecture Notes for Fall Quarter, 2007
Michele Rousseau
Set 2
(Some slides adapted from Susan E. Sim)
Announcements
} Labs 1,2 Due today
Lecture Notes 2 2
Previous Class…
} Brief Review of S/W Engineering
} Introduction to Tools & Methods
} Review Questions
● T or F – Software Engineering can be defined as
the practice of programming a software product.
◘ False
Lecture Notes 2 3
● Why do we need software engineering?
◘ Many reasons
- To build larger systems
- Reduce costs
- Have some level of confidence in the quality of the system
● What is a S/W Lifecycle Model?
◘ An Abstract representation of the software process - that defines the process from inception through maintenance
More Review Questions
● What are the 3 elements that are
necessary to create a S/W product?
◘ People ◘ Processes ◘ Tools
● Why do we need tools?
Scaling problem
Lecture Notes 2 4
◘ Scaling problem ◘ They support the process/people so that we can build bigger systems
● Why is there a gap between research and
practice?
◘ Leaning curve ◘ Unclear payoffs ◘ Focus tends to be more on what and not how
Today’s Lecture
} Software Tools
} Methods & Notations
} Process Modeling
● Agile Process
Lecture Notes 2 5
● Agile Process
● Extreme Programming
Notations, Tools & Methods
} Tools :
● Machines, Executable Programs
} Methods :
Lecture Notes 2 6
● Processes, Procedures
} Notations :
● Languages Used by Tools and Methods
Remember the Guitar Example ... Tool: Guitar Method: How I play (strum/pick/style) Notation: Music
Applying Tools in SE
} Computer Aided Software Engineering
(CASE)
} Different types of CASE Products:
● A Simple Tool
◘ Supports 1 specific task
Lecture Notes 2 7
● A Toolkit
◘ A Set of Independent Tools
● A Workbench
◘ Supports a set of tasks or activities (maybe Requirements & Specs only) ◘ May be several tools that work together
● An Environment
◘ Supports the entire process ◘ May be several workbenches – integrated
} Often Focused on Some Aspect
● Language-Centered
◘ Program Structures
◘ Grammatical Descriptions
● Integrated
Environments
Lecture Notes 2 8
◘ Data Repository
● Process-Centered
◘ Development Process
Analyst Workbench or Upper CASE
} Supports Upper Part of the Waterfall
● Requirements ● Design
} Tools to Support
● Drawing Tools ◘ Simple Æ Complex ● Database
Lecture Notes 2 9
● Database ● Data Analysis Tool ◘ Consistency Checking, Completeness ● Generate Reports ◘ Adhere to Company Standards
} Examples:
● Argo UML ● Rational Rose ● TogetherJ
Programmer Workbench / Lower CASE
} Supports Lower Part of the Waterfall
● Implementation ● Testing ● Maintenance
} Tools to Support
● Language Sensitive Text Editor (WebEdit) ● Debugging
Lecture Notes 2 10
● Debugging ● Code Generators ● Syntax Checker ● Performance Analyzer ● Configuration Management ● Compiler ● Generation of Test Data ● Unit Test Tools ● Simulation ● Regression Testing ● Refactoring Tools
What is Refactoring?
} Cleaning up Code
● Does not change the output
● Renaming Variables
● Restructuring Code
● Changing Logic
Lecture Notes 2 11
} Helps with:
● Legacy Code Æ Code Atrophy
● Spaghetti Code
Management Workbench
} Supports Management of the Project
● Planning ● Control
} Tools to Support
● Configuration Control ◘ Design or Data Analysis ◘ Workflow
Lecture Notes 2 12
◘ Workflow ● Work Assignment ◘ Assigning Resources Efficiently ● Cost Estimation ● Reliability ◘ Estimates Reliability ◘ Forecasting Testing time
Petri-Net View of PSEE
Code Ready
From
Hold Review
Reviewed Code
Revised
Next Step
Update End
Lecture Notes 2 19
Review Scheduled
Coding
From Mgt
Minutes
Revised Code
Step
Some of the Tools/Environments We
Will Use
} Eclipse JDT
} JUnit
} Eclipse Plugins
Lecture Notes 2 20
} Argo UML (Or Rational Rose)
} Etc…
Remember -- Selecting a Tool?
Tools
I
T
y
p
i
Lecture Notes 2 21
Techniques
S/W Process Model
D
E
A
L
i c a l l y
Methods
} A Method is a technical prescription for how
to perform a collection of activities , focusing
on integration of techniques and guidance on
their use.
Lecture Notes 2 22
● Prescribe Æ to lay down a rule
} A Technique is a prescription of how to
perform a particular activity
● May include rules on how to describe a product of
that activity in a particular notation
● Smaller than a Method
● Example: Unit Testing
Graphically
Activity 2 Activity 1^ Activity 2
Technique –
How to perform
as specific Activity
Method –
How to perform
Many Activities
Lecture Notes 2 23
Activity 1
Activity 3 Activity 3
Tools vs. Methods
} Construction
● Tools
◘ Hammer
◘ Saw
◘ Measuring Tape
Lecture Notes 2 24
● Methods
◘ Rules for Construction
Tools vs. Methods – Take 2
} I give you a camera
} I teach you how to take a picture:
● Auto-focus P h th B tt
Lecture Notes 2 25
● Push the Button
} I teach you how to shoot a very nice picture
● Lighting ● Aperture ● Shutter Speed ● Composition
Method vs. Methodology
} A method is a description of how we do
something
} A methodology is the study of methods
} Methodology (from Wikipedia)
Lecture Notes 2 26
The common idea here is the collection, the
comparative study, and the critique of the
individual methods that are used in the given
discipline or field of inquiry
Notations
} A notation is a representation scheme (or
language)
} A process model is an abstract
description of how to conduct a collection
of activities focusing on resource usage
Lecture Notes 2 27
of activities , focusing on resource usage
and dependencies between activities
● Often expressed using a notation
Notations, Tools & Methods
} Tools:
● Machines, Executable Programs
} Methods:
Lecture Notes 2 28
● Processes, Procedures
} Notations:
● Languages Used by Tools and Methods
Remember the Guitar Example ... Tool: Guitar Method: How I play (strum/pick/style) Notation: Music
Modeling
Lecture Notes 2 29
Modeling
} A model is an abstract representation of a
specification
} Defined by a consistent set of rules
● Dictate the meaning of the components d i t ti
Lecture Notes 2 30
… and interactions
} Some Basic Principles
● Models are used for breaking down concepts ◘ Requirements or Design (Unified Modeling Language) ● Used for communicating ● Choice of the Model influences the Product ◘ Object Models ◘ Data Repository Models ◘ Pipe and Filter ◘ Etc..
We Discussed Traditional S/W Process
Models
} Waterfall
} Spiral
} Incremental
Lecture Notes 2 37
} …etc
Criticisms with Traditional Process
Models
} Generally don’t handle change well
} Implementation is delayed until
Lecture Notes 2 38
p y
uncertainties are completely
resolved
} Too mechanistic to be used in detail
The Agile Method
} Agile – “having a quick resourceful
and adaptable character” – Merriam-Webster
} Works best for smaller teams and
Lecture Notes 2 39
projects
} Quick Product Releases
Four Central Values of Agile
Methods
1. Focus on the human role of s/w dev
2. Continuously turn out tested working
software
Lecture Notes 2 40
so t a e
3. Foster the relationship with the client
(over nitpicking the contract)
4. The Development Group
What makes a Method Agile?
} Incremental
● Small software releases with rapid cycles
} Cooperative
● Customers and developers working together
constantl close comm nication
Lecture Notes 2 41
constantly - close communication
} Straightforward
● Method is easy to learn, modify and well
documented
} Adaptive
● Able to make last moment changes
How is Agile Different
} “What is new about agile methods is
not the practices they use but their
recognition of people as the primary
drivers of project success, coupled
ith i t f
Lecture Notes 2 42
with an intense focus on
effectiveness and maneuverability.
This yields a new combination of
values and principles that define an
agile world view”
Highsmith anc Cockburn (2001, p 122)
Take a break!
} Stretch, Relax
} Get some water, Use the restroom
} Get to know your classmates…
} Etc…..
When we return…
} More on the Agile Process Model
} Extreme Programming
Lecture Notes 2 43
Before Break we discussed
} Review Questions
● What is included in an Integrated Process
Support Environment ( IPSE )?
◘ Analyst Workbench
◘ Programmer Workbench
Lecture Notes 2 44
◘ Management Workbench
● What is the difference between a method and
a technique?
◘ Method: technical prescription for how to perform a
collection of activities
◘ Technique: prescription of how to perform a
particular activity
More Review Questions
● What is a model in SE?
◘ An abstract representation of a specification
● Name two characteristics of a good model?
◘ Low Coupling & High Cohesion
◘ Rigor, Separation of concerns, Anticipation of
change, Generality, Incrementality , etc…
Lecture Notes 2 45
● Name a Software Process Activity and the
associated deliverables:
◘ Check the slides.. There are several examples
● Name a key difference between the Agile
process model and Traditional process
models
◘ Several – eg, Customer is in the development team
Four Central Values of Agile Methods
1. Focus on the human role of s/w dev
● Interactions Between Developers “Communality”
● Close Team Relationships
● Close Working Arrangements
● Team Spirit
Lecture Notes 2 46
2. Continuously turn out tested working
software
● Small releases
● Frequent Intervals (Hourly Æ Monthly)
● Keep Code Simple & Technically Advanced Æ
Reduces Documentation
Four Central Values of Agile Methods
3. Foster the relationship with the client
(over nitpicking the contract)
● Short releases allow clients to see progress
4. The Development Group has specific
qualities
Lecture Notes 2 47
qualities
● Includes Developers and Customer Reps
● All should be:
◘ Informed ◘ Competent ◘ Authorized to make changes
● Contracts need to be formed with tools that
support these changes
What makes a Method Agile?
} Incremental
● Small software releases with rapid cycles
} Cooperative
C t d d l ki t th
Lecture Notes 2 48
● Customers and developers working together
constantly - close communication
} Straightforward
● Method is easy to learn, modify and well
documented
} Adaptive
● Able to make last moment changes
6 Phases Of Development
} Exploration
} Planning
} Iterations to Release
} Productionizing
Lecture Notes 2 55
} Maintenance
} Death
Exploration Phase
} Customers
● Story Cards – 1 feature per card ◘ Customer wish list for first release
} Developers
● Get familiar with
Lecture Notes 2 56
◘ Tools ◘ Technology ◘ Practices … to be used ● Architecture possibilities explored – Prototype ● Tailor process to the project
} A few weeks to months
● How familiar is tech to programmers
Planning Phase
} Prioritize Stories
● First Small release agreement
} Effort Estimate for each story
S h d l A t
Lecture Notes 2 57
● Schedule Agreement
◘ Usually < 2 months
} Takes a few days
Iterations to Release Phase
} Several Iterations before 1st^ Release
} # of Iterations determined in planning phase
} Each iteration takes 1-4 wks to implement
Lecture Notes 2 58
} Select stories wisely
● these enforce system arch. for the entire system
● Customer chooses stories for each iteration
} Functional tests created by Customer
● Run at the end of each iteration
At the end of last iteration Æ Production
Productionizing Phase
} End testing before release
} New changes may be found
● Decide whether to include in current release
Lecture Notes 2 59
● Documented for later implementation
ÆMaintenance Phase
} Iterations shortened
Maintenance and Death Phases
} Maintenance
● May need more people
◘ Maintain current production ◘ Produce new Iterations ◘ Change team structure
● Development slows
Lecture Notes 2 60
} Death Phase
Either…
● All stories complete & quality is satisfactory
● Not delivering expected outcomes
● Too expensive to continue
XP Lifecycle Model
Lecture Notes 2 61