27/09/1999(c) ian davis1 background material software architecture (shaw & garlan) object...

10
27/09/1999 (c) Ian Davis 1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha ..) Design Patterns (Gamma, Helm, et al) Software Engineering concepts (Fairley) Software Engineering (Pressman) Software Architecture in Practice (Bass, Clements, Kazman)

Upload: neal-ferguson

Post on 22-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 27/09/1999(c) Ian Davis1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha..) Design Patterns (Gamma,

27/09/1999 (c) Ian Davis 1

Background material• Software Architecture (Shaw & Garlan)• Object modeling & design (Rumbaugh,Blaha ..)• Design Patterns (Gamma, Helm, et al)• Software Engineering concepts (Fairley)• Software Engineering (Pressman)• Software Architecture in Practice (Bass, Clements,

Kazman)

Page 2: 27/09/1999(c) Ian Davis1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha..) Design Patterns (Gamma,

27/09/1999 (c) Ian Davis 2

Further background material • The Mythical Man Month (Brooks)• ACM Sigsoft Software Engineering Notices

• Code complete (McConnell)

• Death march (Yourdon)

Page 3: 27/09/1999(c) Ian Davis1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha..) Design Patterns (Gamma,

27/09/1999 (c) Ian Davis 3

Goals of software development

• Need to understand requirements.

• Want software with maximum functionality.

• Code must be reliable.

• Cost to develop and maintain important.

• Want results as fast as possible.

• Must minimize development risks.

Page 4: 27/09/1999(c) Ian Davis1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha..) Design Patterns (Gamma,

27/09/1999 (c) Ian Davis 4

Problem

• You cannot achieve all six goals simultaneously.

• Which of these goals are you willing to compromise on.

• How do you identify which (if any) of these six goals is realistic or realizable.

Page 5: 27/09/1999(c) Ian Davis1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha..) Design Patterns (Gamma,

27/09/1999 (c) Ian Davis 5

Software engineering to rescue

• Identify desired functionality

• Develop architectural design

• Plan/cost activities

• Monitor progress

• Document decision points

• Identify problems ASAP.

Page 6: 27/09/1999(c) Ian Davis1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha..) Design Patterns (Gamma,

27/09/1999 (c) Ian Davis 6

Is software development an art?

• YES– Getting it right the first time demands vision.– There is beauty in a good design.– It is easy to appreciate a good design and

dislike a bad one, at a raw gut level.

• NO– Little argument about what is good or bad

Page 7: 27/09/1999(c) Ian Davis1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha..) Design Patterns (Gamma,

27/09/1999 (c) Ian Davis 7

Is software development engineering?• YES

– We are building things.– Need a methodology to succeed.– Need engineering management skills.– Need to appreciate the importance of quality and

reliability.– Need professional standards, discipline, and

bodies.– Should be held accountable for our actions.

Page 8: 27/09/1999(c) Ian Davis1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha..) Design Patterns (Gamma,

27/09/1999 (c) Ian Davis 8

Is software development engineering?

• NO– Not concerned with designing within tolerances– Code is either right or wrong (ie. Maths)– Limited/questionable concern with reuse of

code– Not building ‘n’ of the same. Each project is

new and unique.– Cookbook for algorithms, but not the project.

Page 9: 27/09/1999(c) Ian Davis1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha..) Design Patterns (Gamma,

27/09/1999 (c) Ian Davis 9

Acid tests

• Which of the development goals are more achievable using engineering principals?

• Can software development be a set of well defined manageable discrete logical steps?

• When is a picture/design/essay worth 1000 lines of code?

• When does the theory encourage needless bureaucratic displacement activities?

Page 10: 27/09/1999(c) Ian Davis1 Background material Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha..) Design Patterns (Gamma,

27/09/1999 (c) Ian Davis 10

The basic issues• Get it right the first time, that’s the main

thing.• Getting it right at the end doesn’t fly.• So how do you avoid getting it wrong?• Plan to throw your first attempt away - you

will anyway.• If you plan to throw your first attempt away

you will throw at least two attempts away.