1 - ch1 - Introduction To SWE
1 - ch1 - Introduction To SWE
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 1
Limitations of Non-engineered Software
Requirements
Software
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 3
Objectives of the Class
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 2
Example: Space Shuttle Software
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 4
Software Engineering Perspectives
Software Engineering is a:
Modeling activity: software engineers deals with complexity through
modeling
Problem solving activity: models are used to search for solutions
within constraints (time and budget)
Knowledge a acquisition activity: data collection and formalization
from models and solutions
Rationale activity
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 9
Software Engineering: A Problem Solving Activity
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 5
Software Engineering: Definition
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 6
Factors affecting the quality of a software system
Complexity:
The system is so complex that no single programmer can understand it
anymore
The introduction of one bug fix causes another bug
Change:
As time goes on, the cost to implement a change will be too high, and
the system will then be unable to support its intended task. This is true
of all systems, independent of their application domain or technological
base.
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 7
Why are software systems so complex?
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 8
Modeling
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 10
Why model software?
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 11
System Models
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 12
Software Lifecycle Activities ...and their models
Implemented
By
Expressed in Structured By Realized By Verified
Terms Of
By
class...
class...
class... ?
class....?
Application Solution
Use Case Subsystems
Domain Source Test
Model Domain
Objects Code Cases
Objects
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 14
Software Lifecycle Definition
Software lifecycle:
Set of activities and their relationships to each other to support the
development of a software system
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 15
Reusability
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 16
Design Patterns and Frameworks
Design Pattern:
A small set of classes that provide a template solution to a recurring
design problem
Reusable design knowledge on a higher level than datastructures
(link lists, binary trees, etc)
Framework:
A set of classes that collaborate to carry out a set of responsibilities
in an application domain.
⧫ Examples: User Interface Builder
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 17
Software Engineering Concepts
Project
*
Activity
is produced by * consumes
* *
WorkProduct Task Resources
System Participant
Model Time
Document Equipment
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 18
Project is composed of number of activities (ex: analysis phase
is an activity)
Each activity is a set of tasks (ex: determine functional
requirements)
A task consume recourses and produce a workproduct
A workproduct (artifact) is a system, model or document (ex:
source code, instruction manuals, specification document..).
Resources are participants, time, or equipment
Participants: all people involved in the project, each participant
has a role (ex: manager, client, user, developer).
Be rnd Bruegge & Allen H. Dutoit O bject-Oriented Software Engineering: Using UML, Patterns, and Java 19