Chapter 1 Object Oriented Software Engineering and System Design
Chapter 1 Object Oriented Software Engineering and System Design
ENGINEERING
COURSE CODE :MCA 2005
• BRIDGE COURSE
• SYLLABUS
• CO-PO MAPPING
• INTRODUCTION TO OBJECT ORIENTED
SOFTWARE ENGINEERING
1
Object Oriented Software Engineering
Module : 1 Software Engineering
1.1 Software Engineering:
1.2 The nature of software
1.3 Stakeholders in software engineering
1.4 Types of Software,
1.5 Software Engineering Projects,
1.5 Software Engineering Activities,
1.6 Software Process Models
1.7 SDLC Process Models
1.8 Waterfall Model,
1.9 RAD Model,
1.10 Agile Software Development Model,
1.11 RUP Model, 2
SOFTWARE ENGINEERING
OUTLINE
� Introduction
� Learning Objectives(Course Objectives)
� Syllabus
� Learning Outcomes (Course Outcomes)
� Program Outcomes
� Program Specific Outcomes
� Course Articulation Matrix (CO-PO mapping)
� Target
� Assessment Process
3
COURSE SPECIFICATION
4
CO : COURSE OUTCOMES
5
SYLLABUS
MODULE 1 AND MODULE 2
NO OF HOURS : 11 HOURS
6
SYLLABUS MODULE 3
HOURS: 10 SESSIONS
7
SYLLABUS MODULE 4
HOURS: 12 SESSIONS
8
SYLLABUS MODULE 5
HOURS: 10 SESSIONS
9
MODE OF TEACHING AND
EVALUATION
10
Text Books:
11
Reference Books:
12
MODULE : 1 TOPICS AS PER SYLLABUS
SOFTWARE ENGINEERING
� Software Engineering:
� The nature of software
� Stakeholders in software engineering
� SDLC Process Models
� Waterfall,
� RAD
� Agile Software Development.
� RUP
Time : 5 Hours
COURSE OUTCOMES : CO1, CO2, CO3
PROGRAM OUTCOMES : PO1, PO2,PO3,PO4,PO5 and PSO2
13
Object Oriented Software Engineering
Module : 1 Software Engineering
1.1 Software Engineering:
1.2 The nature of software
1.3 Stakeholders in software engineering
1.4 Types of Software,
1.5 Software Engineering Projects,
1.5 Software Engineering Activities,
1.6 Software Process Models
1.7 SDLC Process Models
1.8 Waterfall Model,
1.9 RAD Model,
1.10 Agile Software Development Model,
1.11 RUP Model, 14
Project based
Object Oriented Software Engineering and Software Reuse
16
� REFERENCE :
17
MCA2005 MODULE 1 : INTRODUCTION TO
OBJECT ORIENTED SOFTWARE ENGINEERING
� Types of Software
18
SOFTWARE ENGINEERING AND
TYPES OF SOFTWARE
19
WHAT IS SOFTWARE?
� Computer programs and associated documentation
20
TYPES OF SOFTWARE
� Three types of software:
(a) Custom Software:
❖ For a specific customer/single customer.
❖ Software for managing the specialized finances of large
organizations.
❖ It accommodate customer‟s particular expectations.
❖ Examples like:
❖ Examples like:
23
TYPES OF SOFTWARE (CONTD.)
(d) Real-Time Software:
❖ Must react immediately (Faster).
❖ Safety is taken care
26
WHAT IS SOFTWARE ENGINEERING?
� The term Software Engineering is defined as
following 4 key points:
❖ solving customers‟ problems.
❖ systematic development and evolution.
27
SOFTWARE ENGINEERING PARADIGMS
� Software paradigms refer to the methods and steps,
which are taken while designing the software.
� Programming
� Programming
❖Embedded Software
❖Product-like Software
❖Web-applications
33
NATURE OF SOFTWARE ENGINEERING (CONTD.)
� Software is largely intangible – you cant feel the shape of
a piece of software and its design can be hard to visualize. So,
its difficult for people to assess its quality and hard to
understand development effort.
39
SOFTWARE ENGINEERING PROJECTS
� Software engineering work is normally organized into projects.
41
SOFTWARE ENGINEERING PROJECTS (CONTD.)
(a) Evolutionary or maintenance projects
� Corrective projects: fixing defects.
❖ Database
43
SOFTWARE ENGINEERING PROJECTS (CONTD.)
(c) Projects that involve building on a framework or a set
of existing components.
� The framework is an application that is missing some
important details.
� E.g. Specific rules of this organization.
� Some projects:
❖ Involve plugging together components that are:
❖ Already developed.
44
SOFTWARE ENGINEERING ACTIVITIES
45
ACTIVITIES COMMON TO SOFTWARE ENGINEERING
Seven Major Activities:
(i) Requirement & Specification
(ii) Design
(iii) Modeling
(iv) Programming
(v) Quality Assurance
(vi) Deployment
(vii) Managing the Process
46
ACTIVITIES COMMON TO SOFTWARE ENGINEERING
(i) Requirement & Specification:
� Includes
❖ Domain analysis
❖ Defining the problem
❖ Requirements gathering
❖ Requirements analysis
❖ Requirements specification
should behave
47
ACTIVITIES COMMON TO SOFTWARE ENGINEERING
(ii) Design:
� Deciding how the requirements should be implemented,
using the available technology
� Includes:
❖ Systems engineering: Deciding what should be in
hardware and what in software
❖ Software architecture: Dividing the system into
subsystems and deciding how the subsystems will
interact
❖ Detailed design of the internals of a subsystem
❖ Design of databases
48
ACTIVITIES COMMON TO SOFTWARE ENGINEERING
(iii) Modeling:
� Creating representations of the domain or the software
❖ Use case modeling
❖ Structural modeling
(iv) Programming:
� Integral part of software engineering.
� It involves the translation of higher-level designs into
particular programming languages.
50
MODULE : 1
SOFTWARE ENGINEERING
1.1 Software Engineering:
1.2 The nature of software
1.3 Stakeholders in software engineering
1.4 Types of Software,
1.5 Software Engineering Projects,
1.5 Software Engineering Activities,
1.6 Software Process Models
1.7 SDLC Process Models
1.8 Waterfall Model,
1.9 RAD Model,
1.10 Agile Software Development Model,
1.11 RUP Model, 51
MODULE 1.3 SDLC PROCESS
MODELS
SDLC Process Models:
� Design
� Validation
� Evolution
Waterfall Model
RAD
Agile Software Development.
RUP
Opportunistic Model
Phased Released Model
Spiral Model
Evolutionary Model
Concurrent Engineering Model
54
WATERFALL MODEL
Waterfall Model:
58
WATERFALL MODEL
(A) WATERFALL MODEL (CONTD.)
Dis-advantages of waterfall model:
� Once an application is in the testing stage, it is very
difficult to go back and change something that was not
well-thought out in the concept stage.
� No working software is produced until late during the life
cycle.
� High amounts of risk and uncertainty.
85
(C) PHASED - RELEASE MODEL (CONTD.)
86
(D) SPIRAL MODEL
� It explicitly embraces prototyping and an iterative approach to
software development.
� Start by developing a small prototype.
� Followed by a mini-waterfall process, primarily to gather
requirements.
� Then, the first prototype is reviewed.
� In subsequent loops, the project team performs further
requirements, design, implementation and review.
� The first thing to do before embarking on each new loop is
risk analysis.
� Maintenance is simply a type of on-going development.
87
(D) SPIRAL MODEL(CONTD.)
88
(D) SPIRAL MODEL(CONTD.)
Advantages of Spiral model:
� High amount of risk analysis hence, avoidance of Risk is
enhanced.
� Good for large and mission-critical projects.
� Strong approval and documentation control.
� Additional Functionality can be added at a later date.
� Software is produced early in the software life cycle.
90
(E) EVOLUTIONARY MODEL (CONTD.)
91
(E) EVOLUTIONARY MODEL (CONTD.)
� Problems
� Lack of process visibility
� Systems are often poorly structured
� Special skills (e.g. in languages for rapid prototyping) may be
required
� Applicability
� For small or medium-size interactive systems
� For parts of large systems (e.g. the user interface)
� For short-lifetime systems
92
(E) EVOLUTIONARY MODEL (CONTD.)
Advantages:
� In evolutionary model, a user gets a chance to experiment
partially developed system.
� It reduces the error because the core modules get tested
thoroughly.
Disadvantages:
� Sometimes it is hard to divide the problem into several
versions that would be acceptable to the customer which can
be incrementally implemented and delivered.
93
(F) CONCURRENT ENGINEERING MODEL
� It explicitly accounts for the divide and conquer
principle.
� Each team works on its own component, typically following a
spiral or evolutionary approach.
� There has to be some initial planning, and periodic
integration.
94
INTRODUCTION TO OBJECT
ORIENTATION
95
INTRODUCTION TO OBJECT ORIENTATION
� The procedure of identifying software engineering
requirements and developing software specifications in
terms of a software system‟s object model, which
comprises of interacting objects.
� The primary tasks in object-oriented analysis (OOA) are:−
� Identifying objects.
� Organizing the objects by creating object model diagram.
96
BASIC CONCEPTS OF OBJECT-ORIENTED
(a) Classes
(b) Objects
(c) Inheritance
(d) Polymorphism
(e) Data Abstraction
(f) Data Encapsulation Objects
Data
Encapsulation
Classes
OOP
Features
Data
Abstraction Inheritance
97
Polymorphism
(A) CLASSES
� User-defined data types on which objects are created.
� Objects with similar properties & methods are grouped
together to join a class.
� Example:
Class Name:
Class Book
Attributes:
Book
Book Title: String
Language: English
Author Name: String
S/w
S/w Testing S/w Quality Operations:
Engineering
addbook( )
Object 1 Object 2 Object 3 deletebook( )
updatebook( )
view( )
98
NAMING CLASSES
� Use capital letters
� E.g. BankAccount not bankAccount
99
(B) OBJECTS
� Run-time entities that may represent a person, place or
any item.
� Each object contains data & code to manipulate the data.
Attributes Data
Data
Functions Code
Object 2 Object 3
Data Data
& &
Functions Functions
101
DIFFERENCE B/W CLASS & OBJECT
Class Object
Class is a data type. Object is an instance of class.
It generate objects. It gives life to class by adding
features.
Class doesn‟t occupy memory Objects occupy memory
location. locations.
Class cannot be manipulated Objects can be manipulated.
since it is not available in
memory.
102
(C) INHERITANCE
� Each derived class inherits the attributes of its base class &
its process is known as inheritance.
� The existing classes are called the base classes/parent
classes/super-classes, and the new classes are called the derived
classes/child classes/subclasses.
� Example: Class Name: Member
Attributes:
ID: long
Name: String
DOB: Date
Phone: long
addmem( )
deletemem( )
updatemem( )
view( )
� Highlights relationships.
104
ORGANIZING CLASSES INTO INHERITANCE
� Superclasses
� Contain features common to a set of subclasses.
� Inheritance hierarchies
� Show the relationships among superclasses and subclasses
� A triangle shows a generalization.
� Inheritance
� The implicit possession by all subclasses of features defined in
its superclasses.
105
EX: INHERITANCE HIERARCHY OF MATHEMATICAL
OBJECTS
106
(D) POLYMORPHISM
� Polymeans „Many‟, morphism means „forms‟.
� Representing any item in many forms.
107
INHERITANCE, POLYMORPHISM & VARIABLES
108
OBJECT ORIENTATED PARADIGMS
�Two different paradigms:
�Procedural paradigm
�Object-oriented paradigm
objects.
�Object-oriented paradigm:
� Organizing procedural abstractions in the context of data
abstractions
110
A VIEW OF TWO PARADIGMS
Procedural paradigm Object-oriented paradigm
111
Module 1 Summary
Object oriented Software engineering
So far in this Module, we discussed the following concepts..