IN2013 Object-Oriented Analysis and Design: Lecture 1 Preparation

Verified

Added on  2023/02/01

|39
|7485
|59
Homework Assignment
AI Summary
This document presents the lecture notes for the first lecture of the IN2013 Object-Oriented Analysis and Design course at City, University of London, delivered on October 6th, 2022. The lecture introduces the core concepts of software engineering, including the software crisis and the need for structured methodologies. It delves into software process models, the challenges associated with specifications, and the basics of object-oriented analysis and design, with a brief overview of UML. The lecture also examines the importance of software engineering, the definition of software, and the concept of system boundaries. It explores emergent system properties and the challenges and complexities inherent in software development, touching upon professional and ethical responsibilities within the field. The notes also include examples of significant IT failures and references to further reading materials.
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 1
IN2013: Lecture 1 (preparation)
Object-oriented Analysis and Design:
Introduction and Context
Dr Peter Popov
6th of October 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 2
Objectives of this Lecture
Why Software Engineering
Software Engineering and Software Process Models
Difficulties with specifications
Object-oriented analysis and design
Brief introduction to UML
1
2
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 3
Part 1: Software Engineering and
Software Process Models
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 4
Why Software Engineering
Software engineering is a “relatively” new discipline, proposed in 1968 to address
the software crisis. SW projects are:
Over-budget;
Over-time;
Low quality software (inefficient, buggy, difficult to maintain);
Not meeting requirements;
The crisis was recognised in late 60s
1969–1970 NATO Software Engineering Conferences
(http://homepages.cs.ncl.ac.uk/brian.randell/NATO).
Software engineering: “an engineering discipline concerned with theories,
method and tools for cost-effective development of software systems”
(Ian Sommerville - SE, 9th Edition)
New techniques and methods were necessary tocontrol the
complexityinherent in large software systems
3
4
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 5
Why Should We Care?
Would you buy a car that only had a 30% chance of driving off the lot with
no problems?
Source: The Standish Group CHAOS report:
https://www.projectsmart.co.uk/white-papers/chaos-report.pdf
© John Wiley & Sons Inc. 2009
For 2019 the “software development
CHAOS” continues:
- 31.1% of the IT projects are
cancelled.
- 52.7% of projects will cost 189% of
their original estimates, etc..
If interested can check the most recent
CHAOS report at:
https://www.successthroughsafe.com/blog-
1/2021/11/13/standish-chaos-report-2021
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 6
Recent Significant IT Failures
Company Year Outcome
Hudson Bay (Canada) 2005 Inventory system problems lead to $33.3 million loss.
UK Inland Revenue 2004/5 $3.45 billion tax-credit overpayment caused by
software errors.
Avis Europe PLC (UK) 2004 Enterprise resource planning (ERP) system cancelled
after $54.5 million spent.
Ford Motor Co. 2004 Purchasing system abandoned after deployment
costing approximately $400 M
Hewlett-Packard Co. 2004 ERP system problems contribute to $160 million loss.
AT&T Wireless 2004 Customer relations management system upgrade
problems lead to $100M loss
© John Wiley & Sons Inc. 2009
Recent UK example – Terminal 5 luggage handling SW was not tested enough.
5
6
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 7
Problematic Projects (Yourdon)
Mission Impossible
Likely to succeed, happy workers
Ugly
Likely to succeed, unhappy workers
Kamikaze
Unlikely to succeed, happy workers
Suicide
Unlikely to succeed, unhappy workers
Who is Ed Yourdon: https://en.wikipedia.org/wiki/Edward_Yourdon
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 8
Roadmap
Why Software Engineering
Software Engineering
Software Process Models
Difficulties with specifications
Object-oriented analysis and design
Brief introduction to UML
7
8
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 9
What is Engineering?
Engineering is the profession in which a knowledge of the
mathematical and natural science, gained by study, experience
and practice, is applied with judgement to develop ways to
utilise economically the materials and forces of nature for
the benefit of mankind.
(Engineers’ Council for Professional Development)
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 10
What is Software?
Computer programs and associated documentation necessary to allow
programs to operate correctly:
separate programs
configuration files to set up the programs
system documentation - describes the systems structure
user documentation - explains how to use the system
web sites - for users to download product information
Software engineers are responsible for developing software products that
can be:
Generic: stand-alone systems which are produced to be sold/given away (including
open source) to a range of different customers
Bespoke (customised): systems commissioned by a particular customer according to
their specifications
9
10
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 11
Software Applications (examples...)
Computer games
Washing machines
Word processors Order of
Operating Systems Criticality
Automated Teller Machines
Avionics Control
Nuclear reactor control
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 12
What is a System?
A system is a bounded physical/virtual entity consisting of interacting elements operating in an
environment to achieve defined objectives
A system needs to interact with its external environment to achieve its objectives
The choice of system boundary is somewhat arbitrary – it depends on the problem you are trying to solve!
What are the system boundaries of the Internet?
software
environment
system boundary
people hardware
(computational,
mechanical)
interaction
(inputs and outputs)
people
systems
hardware
human interaction with software is mediated by hardware
© Clear View Training 2005 v1.0
11
12
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 13
System Boundaries
Every system has boundaries
Defining system boundaries is an important step in system
analysis:
Boundaries are not always obvious:
What are the system boundary of:
The Internet?
Of the Amazon cloud?
Usually boundaries become clearer when one asks the following questions:
What is the purpose and scope of the system
What is outside the scope of the system
Inside system boundaries are the system components
Outside system boundaries is the system environment
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 14
Emergent System Properties
Properties of the system as a whole. They can only be measured when
the subsystems have been integrated to form the complete system
Functional properties: they appear when all parts of a system work
together to achieve some objectives
Non-functional properties: they are related to the behaviour of a
system and are normally critical for computer-based systems (e.g.
reliability, performance, safety, security)
13
14
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 15
What is Software Engineering?
An engineering discipline that is concerned with all aspects of software production
ranging from system specification to maintenance
Software engineers should:
adopt a systematic, disciplined and quantifiable approach to the development,
operation, and maintenance,
use appropriate techniques and tools depending on:
the problem to be solved,
the development constraints and
available resources
Need to produce something that is good enough, given the time and resource
limitations
Perfection (i.e. Software that never fails/free from bugs) is an aspiration but is rarely feasible!
SW Body of Knowledge
https://www.computer.org/education/bodies-of-knowledge/software-engineering/v3
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 16
Why is Software Engineering hard
The computer revolution
General purpose machine + software = Special purpose machine
Mobile apps for measurements of calories, steps, IoT, Smart home, etc.
"Curse of flexibility"
Software design can be changed easily (no retooling needed).
Software is so flexible that one can start working with it before fully understanding what is
needed
"Software is the resting place of afterthoughts.“
The untrained can get partial success."Scaling up is hard to do“.
Organized complexity (Weaver)
The system consists of a very large number of interacting parts
Probabilities and statistics are adequate for describing the system behaviour, but rarely used in
software engineering
And they looked upon the software and saw that it was good. But they just
had to add one other feature ...’’
15
16
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 17
What is complexity
The underlying factor is intellectual manageability
A "simple" system has a small number of unknowns in its interactions within the
system and with its environment.
A system becomes intellectually unmanageable when the level of interactions
reaches the point where they cannot be thoroughly:
Planned
Understood
Anticipated
Guarded against
In this module we will practice with UML models, which allow us to start with the
simple and add complexity (gradually) later
If you start with implementation, then the scope for increasing complexity gradually are
quite limited.
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 18
SW Engineers
Software Engineer = (Master) Programmer?
Civil Engineer = (Master) Builder?
Artisans can build products (sometimes amazing ones!).
Engineers can build products following a process and demonstrate that these have
specific properties, such as.
Correctness
Reliability
Performance
If you cannot demonstrate that your artifact has specific properties (e.g. reliability or
security) you haven’t engineered it.
Sometimes artisans can build products that engineers cannot demonstrate that they have
specific properties.
No warranties...
Genuine difficulties demonstrating ultra-high software reliability.
17
18
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 19
Software Engineering & Computer Science
Computer science is concerned with the theories and methods that
underlie computers and software systems
Software engineering in concerned with the practical problems of
producing software
Knowledge of computer science is essential for software engineers
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 20
Professional and Ethical Responsibility
The job of software engineers involves large responsibilities beyond the application of
technical skills
Software engineers must behave in an honest and ethical way
Standards of acceptable behaviour are not bounded by laws, but by other notion of
professional responsibility:
Confidentiality
Competence
Intellectual property rights
Computer misuse
ACM, IEEE and British Computer Society have published a code of professional conduct
(code of ethics)
see Sommerville’s text book for extensive discussion!
19
20
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 21
Takeaway Messages (Part 1)
Software Engineering solves a real need of making software development similar to other
engineering disciplines
Software Engineering evolved, but software disasters are still common due to the sheer
complexity of the software systems being developed.
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 22
Further Reading (Part 1)
The material in this lecture is not covered in the recommended text book. There are
numerous sources (including on-line) that can be used.
I would recommend:
Ian Sommerville’s “Software Engineering”, Edition 6 - 9: Chapter 1, 2.
The University library should have a significant number of copies.
21
22
Document Page
City, University of London
IN2013 Object Oriented Analysis and Design, Lecture notes - Autumn 2022
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 23
Part 2: Software Process Models
IN2013 Object-Oriented Analysis and Design Introduction and context. Slide 24
Roadmap
Why Software Engineering
Software Engineering
Software Process Models
Software Requirements Engineering
Object-oriented analysis and design
Brief introduction to UML
23
24
chevron_up_icon
1 out of 39
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]