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

1/18/2016

Introduction to Software Engineering:


Overview and Methodologies

John T. Bell

Department of Computer Science


University of Illinois, Chicago
Based on materials from Bruegge & DuToit, “Object Oriented
Software Engineering” 3e, Ch 1, 14-16, and other sources.

What is “Software Engineering”?

• Large software development projects, requiring


teams of developers working together, and
often spanning long time frames.
• Borrows paradigms and ideas from other large
engineering projects, such as highway
construction, airplane manufacturing,
skyscrapers, nuclear power plants, etc.

1
1/18/2016

What are the major activities in SE?

See tables 15-2 to 15-6


for detailed lists of the
activities included in
each process.

The Classic Waterfall Model

2
1/18/2016

The V model shows the relationships


between planning and testing

An activity diagram shows the relationship


between actions and products. ( 1 of 2 )

3
1/18/2016

An activity diagram shows the relationship


between actions and products. ( 2 of 2 )

Boehm’s Spiral Model was one of the


first iterative approaches

4
1/18/2016

The Unified Process is also an iterative


approach.

Workflow activity levels fluctuate in


the Unified Process phases.

10

5
1/18/2016

Agile development methods take a


somewhat different approach.
• Embracing change, rather than fearing it.
• Development in small increments, without
pre-planning the entire project.
• Incremental functionality delivered as the
project proceeds.
• Rapid ( high quality ) development methods.
• More suitable for small teams working on
shorter-term projects.

11

The Agile Manifesto


We are uncovering better ways of developing software by
doing it and helping others do it. Through this work we
have come to value:
• Individuals and interactions over Processes and tools
• Working software over Comprehensive documentation
• Customer collaboration over Contract negotiation
• Responding to change over Following a plan
That is, while there is value in the items on the right, we
value the items on the left more.[1]

1. Beck, Kent; et al. (2001). "Manifesto for Agile Software Development". Agile Alliance.

12

6
1/18/2016

The Rugby method moves forward in a


series of sprints ( scrums. )

13

Methods Used in the Rugby Approach

14

7
1/18/2016

The Planning Poker Estimation Method

• Team members are given cards with numbers


on them, e.g. 1, 2, 3, 5, 8, 13, 20, 50, 100.
• After discussion of a task, each team member
selects a card, and they are all shown at once.
• The highest and lowest estimators explain
their reasoning, and the process repeats until
a consensus is reached.

15

Rugby monitors progress with


burndown charts ( or burnup. )

16

8
1/18/2016

XP is best known for Pair Programming

17

Rotating Roles

• Assign each team member a role, such as


organizer, lead programmer, scribe, etc.
• Pair off programmers and assign tasks.
• Every two weeks reassign roles and
redistribute programmers to new pairs and
new tasks.
• Result is cross-training and shared
responsibilities.

18

9
1/18/2016

A Closer Look at Project Management

19

A Closer Look at Pre-Development

20

10
1/18/2016

A Closer Look at Development

21

A Closer Look at Post-Development

22

11
1/18/2016

A Closer Look at Integral Processes

23

Project Initiation in CS 440

Description
Scenario
Scenarios Diagram
•Who?
•What?
•Where? Once upon
A time . . .
•Why?
•When?
•How Much?

24

12
1/18/2016

Requirements Phase in CS 440


Requirements
Use Cases Use Case Functional
Diagram Requirements
Entry

+
Flow
1 ---- F1 ----
2 ----
3 ---- F1
F2 ----
4 ----
Exit F3 ----

Non-Functional
Requirements
+
N1 ---- Snow
Checklists N2
F1 ----
N3 ----
Cards

25

System Design Phase in CS 440

26

13
1/18/2016

Object Design Phase in CS 440

Object Design

Class Name
[ + - # ~ ] attributes : types
[ + - # ~ ] methods( arguments : types ) : type

+ Constraints ( OCL )

27

Implementation Plus in CS 440

28

14
1/18/2016

Testing and Inspection in CS 440

Testing and Inspection


• Conducted from day 1 to end.
• Test Plans
• Test Inputs
• Oracles
• Automated Procedures
• Inspection Checklists
• Test & Inspection Reports

29

References

• Bruegge & DuToit


– Inside front cover
– Chapters 1, 14-16
• Especially Sections 14.4, 14.5, 15.2, 15.4, 16.4
– JTB Diagrams

30

15
1/18/2016

Review
What is the key feature that distinguishes agile development
methods from more traditional classical Software Engineering
approaches?
A. Embracing and expecting change, often by iteratively
delivering the product one new feature at a time.
B. Pair programming.
C. Short periods of intense programming, ( e.g. sprints ),
managed by very brief daily meetings.
D. Small teams performing rapid development.
E. Use of user stories in place of both requirements and
acceptance testing.

31

Review 2

The following diagram represents


what model of Software
Engineering?

A.Boehm’s Spiral model


B.The Rugby model
C.The Unified model
D.The V model
E.The Waterfall model

32

16