OOSE Lecture 1
OOSE Lecture 1
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
4
The Nature of Software...
1. Software is intangible
• Hard to understand development effort
5
The Nature of Software ...
6
The Nature of Software
Conclusions
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
9
Types of 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.
11
Some software has both real-time and data processing aspects.
12
Exercise
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:
• 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
17
What is Software Engineering?…
• Key challenge: Dividing up the work and ensuring that the parts of
the system work properly together
18
What is Software Engineering?
• Finite resources
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
•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.
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.
23
Exercises
For each of the following systems, which
attributes of quality do you think would be the
most important and the least 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.
26
References
Chapter 1:
Software and Software Engineering: Object-Oriented Software
Engineering Practical Software Development using UML and Java
27