01 Chapter 1 SWE MT 46
01 Chapter 1 SWE MT 46
Engineering Paradigm
Contents of Software Engineering
Chapter 1: Introduction
Chapter 2: Unified Modeling Language
(UML)
Chapter 3: Requirements Elicitation
Chapter 4: Software Project
management
Chapter 5: Object Oriented System
Analysis
Chapter 6: Object Oriented System
Design
Chapter 7: Software Quality Assurance
2
History
Computers were invented in the 1940’s
By the late 1960’s, digital computers were less than 25 years old and already facing
a software crisis
Software Engineering term first emerged as title of a 1968 NATO conference [1]
failures of large software projects to meet schedule and budget constraints
Recognition of "the software crisis"
The term became popular after NATO Conference in Garmisch Partenkirchen
(Germany), 1968
when the introduction of third generation computer hardware led more complex
software systems than before
Early approaches based on informal methodologies leading to
Delays in software delivery
Higher costs than initially estimated
Unreliable, difficult to maintain software
Need for new methods and techniques to manage the production of complex
software
3
What is software?
Computer programs and associated
documentation such as
requirements, design models and
user manuals.
Software products may be developed for
a particular customer or may be
developed for a general market.
Software products may be
Generic - developed to be sold to a
range of different customers e.g.
PC software such as Excel or Word.
Custom - developed for a single
customer according to their
4
specification.
Ctd…
development
Technique
Collection of guidelines
Enables an analyst to complete an activity or task
Example techniques
Modeling techniques, software-testing techniques, user-
interviewing techniques, relational database design techniques
Cont..
Why model?
Blue print
Clarity
Familiarity
Maintenance
Simplification
Two orthogonal views of software:
Structured Object-Oriented
Methodology SDLC Iterative/Incremental
Focus/based Process/data Objects
on
Risk High Low
Reuse Low High
Maturity Mature and widespread Emerging (1997)
Suitable for Well-defined projects Risky large projects
with stable user with changing user
requirements requirements
Cont..
Phase Structured Object-Oriented
Easier to maintain
Promotion of reusability
Cont..
Higher level of abstraction
Object orientation approach support abstraction at object
level.
Object encapsulates both data and functions. So they work at
higher level of abstraction.
So designing, coding, testing and maintaining the system are
much simpler.
Encouragement of good programming techniques
Changing one class has no impact on other classes
But there is communication between classes through
interface
Promote clear design
Implementation is easy
Provides for better overall communication
Cont..
Promotion of reusability
Objects are reusable because they are modeled directly out
A compound data type that is often used to model a thing or concept in the
real world.
Cont..
E.g. A car is an object a real-world entity, identifiably separate from its
surroundings. A car has a well-defined set of attributes in relation to other
object.
Cont..
Each object is an instance of a class
Objects are classified into classes, and objects belonging to
the same class have common properties, such as attributes
and operations.
Main role of a class is to define the properties and
procedures (the state & behavior) and applicability of its
instances
Each object is an instance of a class
ATTRIBUTES AND METHODS
Objects can be described by their properties (attributes ) and
methods (operations)
Class Cat
Color
Attribute Food preference
Size Class
Weight
Diagram
Elaboration (milestone)
Construction (release)
39
Iteration Across Life Cycle Phases
A model leads the software development
process in iterations. It projects the
process of development in cyclic manner
repeating every step after every cycle of
SDLC process.
40
The Spiral Life Cycle Model
41
The Unified Process Life Cycle Model
42
UP Life Cycle with Phases, Iterations, and Disciplines
44
Abstraction
Encapsulation
Modularity
polymorphism
coupling
Object Orientation
cohesion
Hierarchy
Basic Principles of Object Orientation
…