object oriented software development 2009-2010 the development of software engineering lecture: week...
Post on 21-Dec-2015
218 views
TRANSCRIPT
![Page 1: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/1.jpg)
Object Oriented Software
Development2009-2010
The Development of Software Engineering
Lecture: Week 1Brian Farrimond
![Page 2: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/2.jpg)
2
Objectives
Be able to explain the module structure, assessment and learning activities
Have awareness of claimed benefits and problems with OO methods.
Have awareness of historical context of OO in methods development.
Still be awake.
At the end of this session you should
![Page 3: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/3.jpg)
3
Module Structure Topics Schedule Assessment
Hint: All details are
on the hopelive Web site
![Page 4: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/4.jpg)
4
OOSD Topics Systems Modelling systems Object Oriented models for systems Implementing models in C++
… can you spot the theme?
![Page 5: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/5.jpg)
5
OOSD ScheduleWeek 1 Software
Development Concepts
Week 7 Work on CW 2
Week 2 Systems Analysis introduction
Week 8 OpenGL
Week 3 Class models Week 9 OpenGL / CW 3
Week 4 Class models Week 10 OpenGL / CW 3
Week 5 Use cases Week 11 OpenGL / CW 3
Week 6 Work on CW 2 Christmas
![Page 6: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/6.jpg)
6
OOSD ScheduleWeek 12 Building C+
+ProgramsWeek 19 Advanced features of
C++
Week 13 Variables and statements in C++
Week 20 Inheritance in C++
Week 14 Functions, Arrays and Program Flow in C++
Week 21 Polymorphism in C++
Week 15 OO Principles and Programming in C++
Week 22 CW 1
Week 16 OO Classes in C++ Week 23 CW 1
Week 17 OO Classes in C++ Easter
Week 18 Pointers and References in C++
Week 24 CW 1
![Page 7: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/7.jpg)
7
OOSD ScheduleWeek 25 Preparation for exam
Examination
![Page 8: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/8.jpg)
8
Assessment scheduleWeek 1 Practice Quiz (doesn’t count) Week 7 Quiz 4
Week 2 Quiz 1 Week 8 Submit CW 2
Week 3 Quiz 2 Week 9
Week 4 Week 10
Week 5 Quiz 3 Week 11
Week 6 Christmas
![Page 9: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/9.jpg)
9
Assessment scheduleWeek 12 Submit CW 3 Week 19
Week 13 Week 20
Week 14 Week 21
Week 15 Week 22
Week 16 Week 23
Week 17 Week 24
Week 18 Easter
![Page 10: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/10.jpg)
10
Assessment scheduleWeek 25
Week 26 Submit CW 1Submit portfolio of exercises
Examination (3 hours)
![Page 11: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/11.jpg)
11
Assessment components
Portfolio questions Show your progress to your tutor regularly
Quizzes Short – 15 mins
Backbone of your learning
Backbone of your learning
Regular check on your progress
Regular check on your progress
![Page 12: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/12.jpg)
12
Assessment components Quizzes and Portfolio Exercises
10% C++ Coursework (CW 1) 20% SAD Coursework (CW 2) 20% Feasibility study: (CW 3) 20%
Report with preliminary models Examination 30%
Partly similar in style to quizzes
![Page 13: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/13.jpg)
13
This is a 30 credits module 300 hours study 3 hours per week in class 9 hours per week self study
Do you want a good grade?
![Page 14: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/14.jpg)
14
Developing software systems:……The Story so Far
OOSAD Booklet Chapter 2
![Page 15: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/15.jpg)
15
In the beginning (1960s)“Now the program was formless
and empty… without structure…”
Systems were Late, over budget, full of bugs, didn’t do what users wanted.
- Poor Quality - The Software Crisis
Aagh!
![Page 16: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/16.jpg)
The Evil enemy: Complexity & Size
??“I have a very small brain and I had better learn
to live with it”- E. Dijkstra
Construction of software is the ” most complex ever
undertaken by humanity”- Fred Brooks*
“I have a very small brain and I had better learn
to live with it”- E. Dijkstra
Construction of software is the ” most complex ever
undertaken by humanity”- Fred Brooks*
* IEEE Computer April 87.
![Page 17: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/17.jpg)
17
Front Leg
Rear Leg
Eat Elephants in small chunks- Beaumont 2001
Eat Elephants in small chunks- Beaumont 2001
![Page 18: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/18.jpg)
18
Tablets of Stone..the 3 commandments
1. Modularitybreak it up into small parts
2. Coupling / EncapsulationFew interconnections, defined interface
3. Cohesion / AbstractionClearly defined task.
1. Modularitybreak it up into small parts
2. Coupling / EncapsulationFew interconnections, defined interface
3. Cohesion / AbstractionClearly defined task.
![Page 19: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/19.jpg)
19
Structure- Software Engineering 1970s (flares, long hair & Pink Floyd) Structured Programming
Languages with procedures / subroutines Goto-less programming
Structured Design Top-Down design, modules
Structured Analysis systematic, top down approach eg SSADM
Kermit the Frog.
![Page 20: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/20.jpg)
20
Structured Methods Functional
Concentrate on what the system does
Modules are Tasks
Data secondary Recipes!
Data Driven Concentrate on Data
inputs, outputs and transformation e.g. JSP
Process derived from Data (secondary)
Evolved to Data modelling, E-R, DBMS
Both methods SeparateCode and Data
Both methods SeparateCode and Data
![Page 21: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/21.jpg)
21
Outcomes: Did it work? Some improvement, but:
Systems still late, Systems still over budget Difficult to modify
New Emphasis on Quality Management Project management User Requirements / Prototype / RAD.
![Page 22: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/22.jpg)
22
Formal Methods 1980s (Yuppies, Margaret Thatcher, Culture
Club) Focus on Quality led to Formal
(Mathematical) specification languages. Logic could be used to reason & prove correctness.
E.g. Z, VDM, CSP, OBJ. Difficult to understand, expensive.
![Page 23: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/23.jpg)
23
Object OrientationMid 1980s A new paradigm (wow!). Booch, Rumbaugh, Jacobson, Schlaer-
Mellor. 64 Flavours (Webster 1996)
“OO is a religion, it’s the people who become oriented towards objects”
- Stevens (2000)
“OO is a religion, it’s the people who become oriented towards objects”
- Stevens (2000)
![Page 24: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/24.jpg)
24
Characteristics Objects / Classes:
modules which Combine Data and Behaviour (functionality). Well defined interfaces achieve encapsulation & abstraction)
Inheritance between classes Polymorphism
Same messages to different objects, arguments of different types.
![Page 25: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/25.jpg)
25
Claimed Benefits Naturalness
Objects mirror real world, ease of learning, stability of structure, ease of maintenance and reuse.
Reuse Through Inheritance (libraries of
classes). Less chance of error , productivity, robustness, flexibility.
![Page 26: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/26.jpg)
26
Is it justified? Naturalness
ease of learning - no, Procedural easier Reuse
Studies show productivity increase and significant reuse within an application domain, but much less across domains.
“There is no silver bullet” (Brooks)
![Page 27: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/27.jpg)
27
Issues with OO Persistance
storing objects. Efficient Relational Data bases, OODB in their infancy.
Large Inheritance hierarchies introduces complexity!
![Page 28: Object Oriented Software Development 2009-2010 The Development of Software Engineering Lecture: Week 1 Brian Farrimond](https://reader034.vdocuments.us/reader034/viewer/2022051401/56649d645503460f94a46f01/html5/thumbnails/28.jpg)
28
Summary Principles of combating complexity are
universal: modularity / loose coupling / high cohesion /
abstraction / encapsulation. OO is a development from structured
methods: Objects / Classes encapsulate Data and behaviour
rather than splitting them up. Inheritance is new, facilitates reuse
OO is becoming dominant Advantages of productivity / reuse within a domain. Difficulties over persistence.