Академический Документы
Профессиональный Документы
Культура Документы
Software Engineering
Activities
Lethbridge/Laganire
2005
Requirements and
Specification
Functional requirements what your
system does to solve customers
problems
Non-functional requirements how
your system does what it does
Lethbridge/Laganire
2005
Requirements and
Specification
Domain analysis
Who are your customers?
Requirements gathering
(Semi-structured) Interviews
Focus groups
Observation (shadowing)
Lethbridge/Laganire
2005
Requirements and
Specification
Requirements specification
Defining both functional and nonfunctional requirements such that
development can begin
Can be done using techniques that
overlap with other software
development activities
Use cases, tests,
Lethbridge/Laganire
2005
Design
Defining subsystems
Using class diagrams
Lethbridge/Laganire
2005
Design
Prototypes
A set of images that illustrate how the
system will look at different states
Allows customers to see
What the final system will look like
How functionality will be triggered
Lethbridge/Laganire
2005
Design
Low-fidelity prototype
Set of rough sketches of the system
Possibly done with pen and paper
Focus stays on features and usability
High-fidelity prototype
Set of high-quality images or semiworking code
Users interact with them like real systems
Focus is on style, look and feel
Lethbridge/Laganire
2005
Design
User-centered design
Understand user so that you can
Reduce costs, increase efficiency, etc.
Usability: learnability, memorability,
efficiency, errors, satisfaction
Encoding techniques: ways of
communicating information to the user
Modeling
Use cases / use case diagrams
Structural modeling
Class diagrams
Object diagrams
Lethbridge/Laganire
2005
10
Postcondition: Announcement is
made available to all users
enrolled in SENG301 course
12
Lethbridge/Laganire
2005
13
Modeling - Structural
Diagrams
Class diagrams
Show different classes in system
Shows relationships between classes
Possibly including directionality and
multiplicity
Object diagrams
Show which instances will be created at
runtime
14
Implementation
Actually creating the system
May be simplified through the use of
common software design patterns
Need to manage coupling vs.
cohesion
15
Implementation
Software Design Patterns
Creational patterns:
Abstract factory
Factory method
Prototype
Singleton
16
Implementation
Software Design Patterns
Structural patterns:
Adapter
Bridge
Composite
Decorator
Faade
Flyweight
Proxy
17
Implementation
Software Design Patterns
Behavioral patterns:
Chain of responsibility
Command
Memento
Observer
State
Strategy
Iterator
Visitor
18
Implementation
Coupling
The degree to which each part of
your program relies on other parts of
your program
Something you want to minimize
http://en.wikipedia.org/wiki/Coupling_(computer_pro
gramming)
19
Implementation
Cohesion
The extent to which elements of a
module belong together
Something you want to maximize
See also: separation of concerns
Putting different
concerns/responsibilities into the same
class/module
http://en.wikipedia.org/wiki/Cohesion_(computer_scien
ce)
20
Quality Assurance
Review and Inspection
Walking through code / other documents
on a projector in front of the team
Testing (Automated)
Arrange
Assert
Act
Lethbridge/Laganire
2005
Quality Assurance
Tests help with:
Documentation
Specification
Bug repellent
Safety net
Defect localization
Lethbridge/Laganire
2005
22
Quality Assurance
Good tests:
Do no harm
Are self-checking
Are repeatable
Are robust
Are simple
Lethbridge/Laganire
2005
23
Quality Assurance
Types of testing:
Black box: do not look at internals of
system and test from the customers
perspective
White box: focus on system internals
and focus on developers perspective
Lethbridge/Laganire
2005
24
Quality Assurance
Scope of testing:
Unit testing: test an individual method
or class in isolation
Integration testing: test an individual
subsystem or set of classes
System testing: test a feature in the
program from end to end
Lethbridge/Laganire
2005
25
Quality Assurance
Test-driven development (TDD)
Write a new test and watch it fail
Write code until all test pass
Refactor code while keeping all tests
passing
Lethbridge/Laganire
2005
26
Process Management
Project planning
Includes cost estimation
Includes creating backlogs, story maps,
etc.
Project tracking
Includes burn-up charts, burn-down
charts, etc.
27
Process Management
Cost Estimation
Units of estimation include:
Calendar time: how many weeks before I
hand you the working system?
Effort: how many person-hours will it
take to complete this task?
Relative effort: how difficult is each task
compared to other tasks (including tasks
weve already done)
Units: gummy bears, jelly beans, etc.
Lethbridge/Laganire
2005
28
Process Management
Cost Estimation
Yesterdays weather: how long did
this take us last time we did
something similar?
Include estimates for:
Best case
Expected case
Worst case
29
Process Management
Backlogs
http://www.agile42.com/en/agile-coaching-company/agile-info-center/keep-balanceproduct-owner/
30
Process Management
PERT Charts
Lethbridge/Laganire
2005
31
Process Management
Gantt Charts
Lethbridge/Laganire
2005
32
Process Management
Story Maps
time
33
Process Management
Burn Up Chart
James Shore:
http://jamesshore.com/Blog/Rabu/
34
Process Management
Burn Down Chart
35
Lethbridge/Laganire
2005
36
Lethbridge/Laganire
2005
37
Lethbridge/Laganire
2005
38
Phased
Release
Model
Lethbridge/Laganire
2005
39
Lethbridge/Laganire
2005
40
Customer collaboration
over contract negotiation
Responding to change
over following a plan
http://agilemanifesto.org/
41