Вы находитесь на странице: 1из 41

Course Review

TDH for UofC


9 Apr 2015

Software Engineering
Activities

Requirements and Specification


Design
Modeling
Implementation
Quality Assurance
Process Management

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

User interface design


Prototypes
User-centered design

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

Modeling - Use Cases


Name: Post announcement to
SENG301
Actor: Instructor or TA
Goal: Disseminate course
information to students
enrolled in SENG301
Precondition: Actor is logged
in to Blackboard and is on the
root screen
11

Modeling - Use Cases


Flow:
Actor selects SENG301 from
available courses
Blackboard displays the SENG301
home page

Postcondition: Announcement is
made available to all users
enrolled in SENG301 course

12

Modeling - Use Case Diagram

Lethbridge/Laganire
2005

13

Modeling - Structural
Diagrams
Class diagrams
Show different classes in system
Shows relationships between classes
Possibly including directionality and
multiplicity

See: UML Cheat Sheet on Blackboard

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.

Managing your development process


Which tasks take place at which time?
Lethbridge/Laganire
2005

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

Ways to gather estimates:


Planning poker
Silent grouping
Lethbridge/Laganire
2005

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

Jeff Patton, www.AgileProductDesign.com

33

Process Management
Burn Up Chart

James Shore:
http://jamesshore.com/Blog/Rabu/

34

Process Management
Burn Down Chart

Kenji Hiranabi: http


://www.infoq.com/articles/agile-kanban-boards

35

Software Process Models


Opportunistic Model

Lethbridge/Laganire
2005

36

Software Process Models


Waterfall
Model
(Ideal)

Lethbridge/Laganire
2005

37

Software Process Models


Waterfall
Model
(Page 1)

Lethbridge/Laganire
2005

38

Software Process Models

Phased
Release
Model
Lethbridge/Laganire
2005

39

Software Process Models


Concurren
t
Engineeri
ng Model

Lethbridge/Laganire
2005

40

Software Process Models


Individuals and interactions
Agile
Developm
over processes and tools
ent
Working software
over comprehensive documentation

Customer collaboration
over contract negotiation

Responding to change
over following a plan
http://agilemanifesto.org/

41

Вам также может понравиться