Oose Complete Module1
Oose Complete Module1
MODULE – I
Introduction
Syllabus
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
INTRODUCTION TO SOFTWARE ENGINEERING
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Software
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Definition
As a Product:
•It delivers the computing potential across
networks of Hardware.
•It enables the Hardware to deliver the
expected functionality.
•It acts as an information transformer
because it produces, manages, acquires,
modifies, displays, or transmits
information.
1.Maintainability
It should be feasible for the software to
evolve to meet changing requirements.
2.Efficiency
The software should not make wasteful
use of computing devices such as
memory, processor cycles, etc.
3.Correctness
A software product is correct if the
different requirements as specified in DON’T WRITE
the SRS document have been correctly OR PLACE ANY IMAGE IN
implemented. THIS AREA.
.
4.Reusability .
A software product has good reusability
if the different modules of the product
Objectives of Software Engineering
5. Testability
Here software facilitates both the establishment of
test criteria and the evaluation of the software with
respect to those criteria.
6. Reliability
It is an attribute of software quality. The extent to
which a program can be expected to perform its
desired function, over an arbitrary time period.
7.Portability
In this case, the software can be transferred from one
computer system or environment to another. DON’T WRITE
8.Adaptability OR PLACE ANY IMAGE IN
THIS AREA.
In this case, the software allows differing system .
constraints and the user needs to be satisfied by .
making changes to the software.
9.Interoperability
Characteristics of Software
1.System software:
Infrastructure software come under this category like compilers,
operating systems, editors, drivers, etc. Basically system
software is a collection of programs to provide service to other
programs. Ex Operating System
2. Real time software:
These software are used to monitor, control and analyze real
world events as they occur. An example may be software
required for weather forecasting. Such software will gather and
process the status of temperature, humidity and other
environmental parameters to forecast the weather.
3. Embedded software:
DON’T WRITE
This type of software is placed in “Read-Only- Memory OR PLACE ANY IMAGE IN
(ROM)”of the product and control the various functions of the THIS AREA.
product. The product could be an aircraft, automobile, security .
system, signalling system, control unit of power plants, etc. The .
embedded software handles hardware components and is also
termed as intelligent software .
Changing Nature of Software
4. Business software :
This is the largest application area. The software designed to
process business applications is called business software.
Business software could be payroll, file monitoring system,
employee management, account management. It may also be a
data warehousing tool which helps us to take decisions based
on available data. Management information system, enterprise
resource planning (ERP) and such other software are popular
examples of business software.
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Management Myths
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
SE—A Layered Technology
1. Quality focus
Correctness of the functions required to be
performed by the software.
•Maintainability of the software
•Integrity i.e. providing security so that the
unauthorized user cannot access information or
data.
•Usability i.e. the efforts required to use or operate
the software.
2. Process
It is the base layer or foundation layer for the
software engineering.
•The software process is the key to keep all levels DON’T WRITE
together. OR PLACE ANY IMAGE IN
•It defines a framework that includes different THIS AREA.
activities and tasks. .
•In short, it covers all activities, actions and tasks .
required to be carried out for software
development.
SE—A Layered Technology
3. Methods
•The method provides the answers of all 'how-to'
that are asked during the process.
•It provides the technical way to implement the
software.
•It includes collection of tasks starting from
communication, requirement analysis, analysis and
design modelling, program construction, testing
and support.
4. Tools
The software engineering tool is an automated
support for the software development.
•The tools are integrated i.e the information DON’T WRITE
created by one tool can be used by the other tool. OR PLACE ANY IMAGE IN
•For example: The Microsoft publisher can be THIS AREA.
used as a web designing tool. .
.
Object Oriented Software Engineering
Module 1
Introduction- Software Process Framework
21
Software Process Framework
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Software Process Framework
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Process Framework Activities
5. Software configuration
management: Managing of configuration
process when any change in the software occurs.
6. Work product preparation and
production: The activities to create models,
documents, logs, forms, and lists are carried out.
7. Reusability management: It defines criteria
for work product reuse. Reusable work items
should be backed up, and reusable software
components should be achieved.
8. Measurement: In this activity, the process
can be defined and collected. Also, project and
DON’T WRITE
product measures are used to assist the software OR PLACE ANY IMAGE IN
team in delivering the required software. THIS AREA.
.
.
Object Oriented Software Engineering
Module 1
Software Process Models
27
Software Process Models
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Types of Software Development Process Models
1. Waterfall model
2. V model
3. Incremental model
Incremental model
RAD model
4. Iterative model
Spiral model
Prototype model
DON’T WRITE
5. Unified Model OR PLACE ANY IMAGE IN
6. Hybrid Model THIS AREA.
.
.
Waterfall Model
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Advantages & Disadvantages
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Pros & Cons of V Model
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
When to Use Incremental Process Model
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Disadvantages of Incremental Process Model
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
RAD Model
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
RAD Model
Application Generation
The actual system is built and coding is done by using
automation tools to convert process and data models
into actual prototypes.
Testing and Turnover
The overall testing time is reduced in the RAD model as
the prototypes are independently tested during every
iteration.
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Prototype Process Models
• Each pass results in adjustments to the project plan. Cost and schedule are
adjusted based on feedback. Also, the number of iterations will be adjustedDON’T by WRITE
project manager.
OR PLACE ANY IMAGE IN
• Good to develop large-scale system as software evolves as the process progressesTHIS AREA.
.
and risk should be understood and properly reacted to. Prototyping is used to reduce
risk. .
Advantages:
• Focuses attention on reuse options.
• Focuses attention on early error elimination.
• Puts quality objectives up front.
• Integrates development and maintenance.
• Provides a framework for hardware/software
Development.
Disadvantages:
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
WIN-WIN SPIRAL MODEL
Advantages & Disadvantages of Win-Win Spiral Model
Advantages:
•Inception
•Elaboration
•Conception
•Transition
•Production
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Unified Process Model
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Advantages & Disadvantages of Unified Process Model
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Hybrid Process Models
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
V & V and prototype Model
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Object Oriented Software Engineering
Module 1
Agile Software Development
60
Agile Software Development
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Phases of Agile Model
1.Requirements gathering
2.Design the requirements
3.Construction/ iteration
4.Testing/ Quality assurance
5.Deployment
6.Feedback
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Agile Methodology
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Agile Model
When to Use Agile Model?
Frequent Delivery
pair programming
test-driven development
stand-ups
planning sessions
sprints.
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Agile Software Development Process Models
•eXtreme Programming(XP)
•Scrum
•Crystal
•Dynamic Software Development
Method(DSDM)
•Feature Driven Development(FDD)
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Extreme programming
70
The extreme programming release cycle
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
71
The Parts and the Whole
• Iteration Plan
• Daily Stand-Up
Set
Adapt Controller
Target
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Examples of task cards for prescribing medication
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
74
Scrum
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
76
The Sprint cycle
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
77
Scrum benefits
78
Crystal
79
Crystal
80
Crystal
People involved
Interaction between the teams
Community
Skills of people involved
Their Talents
Communication between all the teams
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
81
Dynamic Software Development Method(DSDM):
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
82
Dynamic Software Development Method(DSDM):
Pre-project
Feasibility Study
Business Study
Functional Model Iteration
Design and build Iteration
Implementation
DON’T WRITE
Post-project OR PLACE ANY IMAGE IN
THIS AREA.
.
.
83
Feature Driven Development
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
84
Planning Phase
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
86
FDD Pitfalls
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
87
Project and Process
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Process
Ex: HR Process
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Process Framework Activities
5. Software configuration
management: Managing of configuration
process when any change in the software occurs.
6. Work product preparation and
production: The activities to create models,
documents, logs, forms, and lists are carried out.
7. Reusability management: It defines criteria
for work product reuse. Reusable work items
should be backed up, and reusable software
components should be achieved.
8. Measurement: In this activity, the process
can be defined and collected. Also, project and
DON’T WRITE
product measures are used to assist the software OR PLACE ANY IMAGE IN
team in delivering the required software. THIS AREA.
.
.
Object Oriented Software Engineering
Module 1
Software Project management
94
Software Project
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
4 P’s (Project & Process)
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Software Project Management
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Software Project
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Software Project Management
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Project Manager
Managing Project
•Defining and setting up project scope
•Managing project management activities
DON’T WRITE
•Monitoring progress and performance OR PLACE ANY IMAGE IN
•Risk analysis at every phase THIS AREA.
•Take necessary step to avoid or come out .
.
of problems
•Act as project spokesperson
Project management Activities
•Project Planning
•Scope Management
•Project Estimation
•Resource Management
•Project Risk Management
•Software Configuration Management
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Software Project Planning
Planning Objectives:
• Understand the scope of the problem.
• Make use of past historical data.
• Estimate effort or function or size.
• Define a project schedule.
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Project Plan
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Types of Project Plan
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Project Estimation Activities
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Project Management Tools
Gantt Chart
Gantt charts was devised by Henry Gantt
(1917). It represents project schedule with
respect to time periods. It is a horizontal bar
chart with bars representing activities and
time scheduled for the project activities.
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Project Management Tools
PERT Chart
PERT (Program Evaluation & Review Technique) chart
is a tool that depicts project as network diagram. It is
capable of graphically representing main events of
project in both parallel and consecutive way. Events,
which occur one after another, show dependency of
the later event over the previous one.
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Project Management Tools
Resource Histogram
This is a graphical tool that contains bar or chart
representing number of resources (usually skilled
staff) required over time for a project event (or
phase). Resource Histogram is an effective tool for
staff planning and coordination.
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Critical Path Analysis
120
Software Metrics
To characterize in order to
•Gain an understanding of processes, products,
resources, and environments.
•Establish baselines for comparisons with future
assessments
To evaluate in order to
•Determine status with respect to plans
To predict in order to
•Gain understanding of relationships among
processes and products.
•Build models of these relationships DON’T WRITE
OR PLACE ANY IMAGE IN
To improve in order to THIS AREA.
•Identify roadblocks, root causes, inefficiencies, .
and other opportunities for improving product .
quality and process performance.
Types of Software Metrics
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Process Metrics
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Measure Effectiveness of Process
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Object Oriented Software Engineering
Class
In OOP, class can be described as a user defined
prototype or blue print of the data attributes and
methods structure. For example, a Car class may
include attributes like color, speed, engine type,
model no. etc.
Object
In OOP, objects are created from the class and
include the data structured in the same way as the
class to which it belongs. For example, a car object DON’T WRITE
named “i10” can be created from the Car class OR PLACE ANY IMAGE IN
THIS AREA.
having its own properties structured in the similar .
way like the class. .
OOSE Concepts
Encapsulation
Encapsulation means grouping of the
data with the methods or functions that
operate on that data. Along with this, it
also hides the data or prevents the
outside world from using the data from
within the object.
Abstraction
Abstraction can be referred to as showing DON’T WRITE
essential data/working to the user and OR PLACE ANY IMAGE IN
hiding the rest of the details. Only THIS AREA.
.
necessary details are shown to the .
outside world.
OOSE Concepts
Inheritance
Enabling programmers to share the attributes of
the existing class into new class by extending it.
The existing class is known as the base or parent
class and the class that derives the attributes is
known as the child class or derived class.
Polymorphism
Polymorphism means many forms, thus it can be
described as the same names or operators or
functions can behave in various different forms
based on the number of arguments or based on
DON’T WRITE
the type of arguments at the time of the function OR PLACE ANY IMAGE IN
call. Operators will behave differently when used THIS AREA.
along with operands of different types. .
.
Object Oriented Methodologies
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Object Oriented Methodologies
DON’T WRITE
OR PLACE ANY IMAGE IN
THIS AREA.
.
.
Object Oriented Analysis (OOA)
•Formal document
•Requirement statements
•Primary data collected through stakeholders