0% found this document useful (0 votes)
22 views46 pages

01 Chapter 1 SWE MT 46

The document provides an introduction to software engineering, detailing its history, methodologies, and key concepts such as the Unified Modeling Language (UML) and object-oriented development. It emphasizes the systematic approach to software production, the importance of methodologies, and the benefits of object-oriented systems for adaptability and reusability. Additionally, it outlines the phases of the Unified Process (UP) and the software development life cycle, highlighting the structured approach to managing software projects.

Uploaded by

mamomohi13
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)
22 views46 pages

01 Chapter 1 SWE MT 46

The document provides an introduction to software engineering, detailing its history, methodologies, and key concepts such as the Unified Modeling Language (UML) and object-oriented development. It emphasizes the systematic approach to software production, the importance of methodologies, and the benefits of object-oriented systems for adaptability and reusability. Additionally, it outlines the phases of the Unified Process (UP) and the software development life cycle, highlighting the structured approach to managing software projects.

Uploaded by

mamomohi13
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/ 46

Introduction to Software

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…

Computer systems come in all shapes and sizes.


There are systems that
o process e-mail and process payroll. There are also
systems
o that monitor space missions and
o monitor student grades.
No matter how diverse the functionality of these
systems, they have several things in common:
 All systems have end users.
 All systems are composed of functions and
data.
 All systems use hardware and software
 All systems are written using
programming languages
 All systems should be designed using a
methodology and proper documentary
techniques
5
What is software engineering?
 The application of a systematic, disciplined, quantifiable
approach to the development, operation, and
maintenance of software; that is, the application of
engineering to software.(IEEE)
 Software engineering is an engineering discipline that is
concerned with all aspects of software production.
 Software engineers should adopt a systematic and
organised approach to their work and use appropriate
tools and techniques depending on the problem to be
solved, the development constraints and the resources
available.
 Software engineering is the establishment and use of
sound engineering principles in order to obtain
economically software that is reliable and works
efficiently on real machines.
 Software engineering is a modeling activity.
 Software engineering is a problem-solving activity.
 Software engineering is a knowledge acquisition activity.
6
 Software engineering is a rationale-driven activity.
Introduction
 Software : Computer programs and associated documentation such
as requirements, design models and user manuals
 What is software engineering?
 the application of a systematic, disciplined, quantifiable approach
to the development, operation, and maintenance of software; that
is, the application of engineering to software.
 Software Engineering can be defined as the construction of
quality software with a limited budget and a given deadline in
the context of constant change
 The goal is to produce high quality software to satisfy a set of
functional and nonfunctional requirements
 Object oriented systems development
 is a way to develop software by building self – contained modules or
objects that can be easily replaced, modified and reused.
Cont..
 A software development methodology?
 It is a series of processes that lead to the development of an
application. e.g. SDLC, iterative/incremental
 SD? refers to all activities that go into producing an information
systems solution. These activities consist of:
 Requirements models
 System analysis
 Design
 Implementation
 Testing
 Installation and Maintenance
Techniques, Methodologies ,Tools and Model:
To aid you in the analysis and synthesis.
 Methodology provides guidelines for every activity in system

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..

 Tool: software used to create models or components


 Example tools
 Project management software tools (Microsoft Project)
 Integrated development environments (Visual Studio)
 Code generators
 UML modeling software
 Automated testing tools
Cont..
 Model is abstract aspects of the real world
 Models come in many forms
 Physical analogs, mathematical, graphical
 System development models are highly abstract
 Show inputs, outputs, processes, data, objects, interactions,
locations, networks, and devices
 Unified Modeling Language (UML): standard notation
 PERT or Gantt charts: model project itself
Cont..

 Why model?

 Blue print

 Clarity

 Familiarity

 Maintenance

 Simplification
Two orthogonal views of software:

There are two orthogonal views of the software differs in their


primary focus.
 The traditional approach: focuses on the functions of the
system and says software as a collection of programs (or
functions) and isolated data.
 Object oriented: systems development centers on the object,
which combines data and functionality i.e., Programs =
Algorithms + Data Structures.
Cont..

TRADITIONAL APPROACH OBJECT ORIENTED SYSTEM


DEVELOPMENT
 Collection of  Combination of data and
procedures(functions) functionality
 Focuses on function and  Focuses on object, classes,
procedures, different styles and modules that can be easily
methodologies for each step of replaced, modified and reused.
process
 Moving from one phase to  Moving from one phase to
another phase is complex. another phase is easier.
 Increases duration of project  decreases duration of project
 Increases complexity  Reduces complexity and
redundancy
Key Differences Between Structured and
Object-Oriented Analysis and Design

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

Analysis Structuring Requirements Requirement Engineering


• DFDs • Use Case Model (find Uses Cases, Flow of
• Structured English Events, Activity Diagram)
• Decision Table / Tree • Object Model
• ER Analysis • Find Classes & class relations
• Object Interaction: Sequence &
collaboration Diagram, State Machine
Diagram,
• Object to ER Mapping

Design • DB design • Physical DB design


• (DB normalization) • Design elements
• GUI Design • Design system Architecture
• Design classes: Checking The Model,
• (forms & reports)
Combine Classes, Splitting Classes,
Eliminate Classes
• Design components
• GUI design
Object oriented system development methodology

 Object oriented development is a way to develop software by


building self-contained modules or objects that can be easily
replaced, modified, and reused.
 In an object-oriented environment,
 software is a collection of discrete objects that encapsulate their
data as well as the functionality to model real-world "objects.
 An object orientation yields important benefits to the practice of
software construction
 Each object has attributes (data) and methods (functions).
 Objects are grouped into classes; in object-oriented terms, we
discover and describe the classes involved in the problem domain.
 everything is an object and each object is responsible for itself.
Why an object orientation?

 Object oriented systems are

 Easier to adapt to changes

 Easier to maintain

 Promote greater design and code reuse

 Creates modules of functionality

 Reasons for working of object oriented systems:

 Higher level of abstraction

 Seamless transition among different phases of software development

 Encouragement of good programming techniques

 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

of real world problem.


 The object orientation adds inheritance, which is a

powerful technique that allows classes to built from each


other.
 The only different and enhancements between the classes

need to be designed and coded. All the previous


functionality remains and can be reused without change.
Cont..
Seamless transition among different phases of software
development
 Traditional Approach:
The software development using this approach requires
different styles and methodologies for each step of the
process.
So moving from one phase to another requires more
complex transition.
 Object-oriented approach:
We use the same language to talk about analysis, design,
programming and database design.
It returns the level of complexity and re-boundary, which
makes clearer and robust system development.
Basic concept of object
 An object is simply a tangible entity in the real world (at the requirement

analysis phase) or represents a system entity (at the design stage).


 Objects are responsible for managing their own private states, and for

offering services to other objects when is it requested.


 Thus, data and functions are encapsulated within an object.

 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

Method Catch mouse


Eat
miaow
Cont..
 Attributes:
Data of an object.
Properties of an object.
 in an object model, all data is stored as attributes of some
object
 the attributes of an object are manipulated by the
operations
 Methods:
Procedures of an object. Or
Behavior of an object.
Cont..
 The term object means a combination or data and logic that
represent some real-world entity.
 When developing an object oriented applications, two
basic questions arise
What objects does the application need?
What functionality should those objects have?
Cont...
 A Class defines a template for all objects of class

 Objects are instances of a class

 Customer object is an instance of a Customer class

 Objects interact through messages

 Objects have identity based on value of attributes

 Operations are methods or services

 Each of the operations that is encapsulated by an object provides a

representation of one of the behaviors of the object.


Cont..
 CONCEPT OF MESSAGES
 Objects interact with each other by sending and
receiving messages
 Messages are similar or procedure calls in traditional
programming languages
Objects perform operations in response to messages
 Ex: when you press on the brake pedal of a car, you send
a STOP message to the car
 Object. The car object knows how to respond to the
STOP message
Cont.…
The unified approach
 Unified approach (UP) is an object-oriented system development
methodology
 A system development process is the set of activities needed to
transform a user‘s requirements into a software system
 Basic properties:
 use case driven: Use case driven design uses use case as a tool to
discover the entity, interface, interaction message and the
workflow on how certain business operation is being conducted.
 This is used often in more analysis or design stage to gather or
understand the requirements and establish some initial designs
 Architecture centric
 Iterative and incremental
Cont..
 Project use in this approach will be use case driven/focused
 Use case
 Activity or process that the system carries out
 Basis for defining requirements and designs
 A use case constitutes complete course of events initiated by
actor
 Defines interaction between actor and system
 is a member of the set of all use cases which together define all
existing ways of using the system
 An actor is: anything external to the system, human or
otherwise – a user type or category
Cont..
 Unified Process (UP) development methodology

Consists of phases, iterations, and disciplines

Provides framework for project definition and execution


 UP defines disciplines within each phase
 Discipline: set of functionally related activities
 Iterations concatenate activities from all disciplines
 Activities in each discipline produce artifacts; models,
documents, source code, and executables
UP Phases
The Unified Process divides the project into four phases:
Inception

Elaboration (milestone)

Construction (release)

Transition (final production release)


Cont...

Typical goals for the Inception phase.


Establish a justification or business case for the project
Establish the project scope and boundary conditions
Outline one or more candidate architectures
Identify risks
Prepare a preliminary project schedule and cos estimate
Feasibility
buy or develop it
The UP Disciplines
 Six main UP development disciplines
Business modeling, requirements, design,
implementation, testing, and deployment
 Each iteration
Similar to a mini-project
Results in a completed portion of the system
 Three additional support disciplines
Project management, configuration and change
management, and environment
Software development
Life Cycle
 Process of progressively developing
representation of a system component
(or object) through each phases of analysis,
design, implementation,etc.
The life of a software system can be
represented as a series of cycle.
A cycle ends with the release of a version of
the system to the customers.
Software development life cycle
encompasses the
phases/processes that a software
developer goes through when
37
developing a new software
Cont.…
There are 5 basic phases in SW
Develompment Life cycle -
System planning
 includes initial investigation
System analysis
 includes requirements
capture/elicitation
System design
System construction and
implementation
 includes system testing
System deployment
Every system development models that
have been developed incorporates these
basic phases into their model,
 Waterfall Model,
38  Iterative Model,
 Unified Process etc.
Waterfall model
Waterfall model is the simplest model of
software development paradigm. All the
phases of SDLC will function one after
another in linear manner.

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

It is combining both SDLC and Iterative


model of cyclic process.

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

 Abstraction is a process in which we identify the important


aspects of a problem and ignore its unimportant details.
 Modularity A complex system may be divided into separate
and distinct pieces or decomposition which divides a
system into modules of a relatively uniform size.
 Coupling means that subsystems are dependent
on each other, messages are passed between
subsystems.[degree of interdependence b/n
modules]
 Cohesion is the extent to which a subsystem
performs single functions[elements in module
belong together].
 Encapsulation: is the concept of binding object and
methods together as a single entity.
 Polymorphism: is the use of a single symbol to
represent multiple forms
 Hierarchy: is system arranged according to different ranks or levels .
45
What is Object Orientation?
 Procedural paradigm: as functions
 Software is organized around the notion of
procedures
 Procedural abstraction[design for medium size
program
Works as long as the data is simple
 Adding data abstractions
Groups together the pieces of data that describe some entity
Helps reduce the system’s complexity.
 Object oriented paradigm: as objects
 Organizing procedural abstractions in the context of
data abstractions
An approach to the solution of problems in which all
computations are performed in the context of
objects. design for large/complex size program
 The objects are instances of classes, which:
contain procedural abstractions that operate on the objects
 A running program can be seen as a collection of
objects
46
collaborating to perform a given task

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