0% found this document useful (0 votes)
65 views

OOSE Lecture 1

For the spacecraft program: Most important: Reliability, since failure could jeopardize the mission. Least important: Usability and Maintainability, since it will only be used once and not maintained after upload. For the utility billing package: Most important: Reliability, Efficiency, Maintainability. Least important: Reusability, since it is a custom package. For the automatic transmission controller: Most important: Reliability. Failure could damage the vehicle or injure passengers. Least important: Usability and Maintainability, since users don't interact with it directly and it isn't designed to be changed after production.

Uploaded by

018 Chhavi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views

OOSE Lecture 1

For the spacecraft program: Most important: Reliability, since failure could jeopardize the mission. Least important: Usability and Maintainability, since it will only be used once and not maintained after upload. For the utility billing package: Most important: Reliability, Efficiency, Maintainability. Least important: Reusability, since it is a custom package. For the automatic transmission controller: Most important: Reliability. Failure could damage the vehicle or injure passengers. Least important: Usability and Maintainability, since users don't interact with it directly and it isn't designed to be changed after production.

Uploaded by

018 Chhavi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

Object Oriented Software Engineering

1
Syllabus

Unit I

Introduction to Software Engineering: Software Engineering Development, Software Life Cycle Models,
Standards for developing life cycle models.

Object Methodology & Requirement Elicitation: Introduction to object Oriented Methodology, Overview of
Requirements Elicitation, Requirements Model-Action & Use cases, Requirements Elicitation Activities,
Managing Requirements Elicitation.

Unit II

Architecture: Model Architecture, Requirements Model, Analysis Model, Design Model, Implementation
Model, Test Model

Unit III

Modeling with UML: Basic Building Blocks of UML, A conceptual Model of UML, Basic Structural Modeling
, UML Diagram System Design: Design concepts & activities, Design Models, Block design, Testing

Unit IV

Testing Object Oriented Systems: Introduction, Testing Activities & Techniques, The Testing Process, Managing
Testing Case Studies
Books

I. Jacobson, “Object-Oriented Software Engineering: A Use


Case Driven Approach”, Pearson, 1992
2. B. Breugge and A. H. Dutoit, “Object Oriented Software
Engineering: Using UML, Patterns, and Java”, Prentice
Hall, 2004.
3. G. Booch, J. Rumbaugh and I. Jacboson, “The Unified
Modeling Language User Guide” Addison-Wesley, 2005
Software and Software Engineering

4
The Nature of Software...

1. Software is intangible
• Hard to understand development effort

2. Software is easy to reproduce


• Cost is in its development
—in other engineering products, manufacturing is the costly stage

3. The industry is labor-intensive


• Hard to automate

5
The Nature of Software ...

4. Software is easy to modify


• People make changes without fully understanding it

5. Software does not ‘wear out’


• It deteriorates by having its design changed:
—erroneously, or
—in ways that were not anticipated, thus making it complex

6
The Nature of Software
Conclusions

• Much software has poor design and is getting worse

• Demand for software is high and rising

• We are in a perpetual ‘software crisis’

• We have to learn to ‘engineer’ software

7
Types of Software

1. Custom
• For a specific customer
• Examples of custom software : Web sites, air-traffic control systems
and software for managing the specialized finances of large
organizations.

2. Generic
• Sold on open market
• Often called
—COTS (Commercial Off The Shelf)
• Shrink-wrappeds software (since it is commonly sold in packages
wrapped in plastic.)
8
• Examples of generic software include word processors, spreadsheets,
• compilers, web browsers, operating systems, computer games and
accounting packages for small businesses.

3. Embedded
• Built into hardware
• Hard to change

• Example: Embedded software run washing machines, DVD players,


microwave ovens and automobiles.

9
Types of Software

Differences among custom, generic and embedded software

10
Types of Software: Another Categorization
Real time software
• Must react immediately
• Safety often a concern
• E.g. control and monitoring systems
• all embedded systems operate in real time.
• custom systems that run industrial plants and telephone networks
are also real-time.

Data processing software


• Used to run businesses
• Accuracy and security of data are key

11
Some software has both real-time and data processing aspects.

For example, a telephone system has to manage phone calls in real


time, but billing for those calls is a data processing activity.

12
Exercise

Classify the following software according to whether it is likely to be


custom, generic; and whether it is data processing or real time.
a) A system to control the reaction rate in a nuclear reactor.
b) A program that runs inside badges worn by nuclear plant workers.
c) A program used by secretaries at the nuclear plant to write letters.
d) A program used to generate annual summaries of the radiation
exposure experienced by the workers.

13
a )Custom; real- time.
c ) Generic; real-time ( but soft real- time ) .

14
What is Software Engineering?...
The term Software Engineering was coined in 1968
People began to realize that the principles of
engineering should be applied to
software development

definitions:

• IEEE: (1) the application of a systematic, disciplined, quantifiable approach to the


development, operation, maintenance of software; that is, the application of engineering to
software. (2) The study of approaches as in (1).

• The Canadian Standards Association: The systematic activities involved in the design,
implementation and testing of software to optimize its production and support.

15
What is Software Engineering?…
The process of solving customers’ problems by the systematic
development and evolution of large, high-quality software systems
within cost, time and other constraints

Solving customers’ problems


• This is the goal of software engineering

• Sometimes the solution is to buy, not build

• Adding unnecessary features does not help solve the problem

• Software engineers must communicate effectively to identify and


understand the problem 16
What is Software Engineering?…

Systematic development and evolution


• An engineering process involves applying well understood
techniques in a organized and disciplined way

• Many well-accepted practices have been formally standardized


—e.g. by the IEEE or ISO

• Most development work is evolution

17
What is Software Engineering?…

Large, high quality software systems


• Software engineering techniques are needed because large systems
cannot be completely understood by one person

• Teamwork and co-ordination are required

• Key challenge: Dividing up the work and ensuring that the parts of
the system work properly together

• The end-product must be of sufficient quality

18
What is Software Engineering?

Cost, time and other constraints

• Finite resources

• The benefit must outweigh the cost

• Others are competing to do the job cheaper and faster

• Inaccurate estimates of cost and time have caused many project


failures

19
Stakeholders in Software Engineering

1. Users
• Those who use the software

2. Customers
• Those who pay for the software

3. Software developers

4. Development Managers

All four roles can be fulfilled by the same person


20
Exercise
How do you think each of the four types of stakeholders described
previously would react in each of the following situations.

•As a software engineer, you study the proposal for a new system that
will completely automate the work of an individual in the customer’s
company. You discover, however, that the cost of developing the system
would be far more than the cost of continuing to do the work manually,
so you recommend against proceeding with the project.

•You implement a system according to the precise specifications of a


customer; however, when the software is put into the use, the users find
it does not solve their problem.

21
• The user may be disappointed, since he or she might be looking
forward to no longer having to do this particular type of work. On the
other hand, he or she may be relieved about not being put out of
work.

• The customer may be disappointed at not being able to save money; he


or she may also be surprised, since many people believe that software
systems are easy to develop; they underestimate the complexity of tasks
that are to be automated. The customer might consult some other
software engineer to obtain a second opinion.

• The developers will probably move on to other work.

•The development managers may be disappointed at not having the


opportunity to do further work on the project.
22
Software Quality...
1. Usability
Users can learn it and fast and get their job done easily
2. Efficiency
It doesn’t waste resources such as CPU time and memory
3. Reliability
It does what it is required to do without failing
4. Maintainability
It can be easily changed
5. Reusability
Its parts can be used in other projects, so reprogramming is not
needed

23
Exercises
For each of the following systems, which
attributes of quality do you think would be the
most important and the least important?

•A program that is being uploaded into the


spacecraft that was launched 20 years ago, and
has been flying towards Pluto since then. The
program will enable the space craft to move
into the orbit of Pluto.
• A utility package of printing bills
• The controller of an automatic transmission in
24
Solution : Spacecraft Software

Reliability will be paramount for the spacecraft software . It would be sad if


the spacecraft did not make it into orbit after all that time.

Efficiency might be important.

Usability will likely not be an issue since the software will run autonomously
and report any feedback to experts; furthermore the software cannot be
interactive since it takes considerable time to send signals to and from Pluto at
the speed of light.

Maintainability is also likely to be a minimal concern since this software is


likely to only be used once. However, there remains the possibility that the
software could be used on other systems, or will need to be changed as last-
minute bugs are fixed.
25
Solution: Data Processing Bills

Maintainability will likely be the most important concern since data


processing software tends to evolve.

Reliability will also be of considerable importance : Bill printing must


be accurate, since it can be costly to rectify mistakes.

Usability of the bills themselves will be important because ordinar y


people have to understand them.

Efficiency should not be a concern.

26
References

Chapter 1:
Software and Software Engineering: Object-Oriented Software
Engineering Practical Software Development using UML and Java

27

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy