Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

Object-Oriented Software Engineering

Using UML, Patterns, and Java


Chapter 1: Introduction
Today’s Contents

• Administrative stuff

• Course objectives

• What is software engineering?

• Term project

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2
People, Times, and Locations
• Class hours:
• Room: C-210
• Tuesdays: 09:55 – 12:30
• Tuesdays : 17:00 – 19:35 (Night Edu.)

• Instructor: • TA: TBA


Dr. Zeynep Cipiloglu Yildiz
• Office: C-222
• Phone: 0 236 201 2106
• E-mail:
zeynep.cipiloglu[at]cbu.edu.tr
• Office hours: TBA

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3
Textbook

Bernd Bruegge, Allen H. Dutoit


Object-Oriented Software Engineering:
Using UML, Patterns and Java,
International Edition
Publisher: Prentice Hall, Upper Saddle
River, NJ;

We will not cover all the chapters

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4
Course Platform

• We will use MS Teams platform


• Announcements
• Class materials
• Assignments

• Team code: 56qdv8i

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5
Grading

• Tentative Grading:
• Exams:
• Midterm exam (30%)
• Final exam (40%)
• Term project (30%)
• ~3 reports

• Grading may change due to external reasons!

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6
Objectives of the Class
• Change approach to software engineering
• Get away from directly starting coding from
requirements

• Appreciate Software Engineering:


• Build complex software systems in the context of
frequent change

• Understand how to
• Produce a high-quality software system within limited
time
• while dealing with complexity and change

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7
Objectives of the Class

• Understand System Modeling


• Different methodologies (“philosophies”) to model and
develop software systems
• Different modeling notations
• Learn UML (Unified Modeling Language)
• Use Case modeling
• Object modeling
• Dynamic modeling
• Learn how to use Tools:
• CASE (Computer Aided Software Engineering)
• Modeling: Visual Paradigm (or any other tool of your
choice)
• Develop teamwork & communication skills

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8
Use Case Modeling – Sample UML Diagram

http://conceptdraw.com/en/products/cd5/ap_uml.php
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9
Object Modeling – Sample UML Diagram

http://www.dofactory.com/net/composite-design-pattern

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10
Dynamic Modeling – Sample UML Diagram

http://conceptdraw.com/en/products/cd5/ap_uml.php

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11
SW Engineering Failures

• In 1992, Mary Bandar from Winona, Minnesota,


received an invitation to attend a kindergarten.
Mary was 104 years old at that time.

• On April 10, 1990, in London, an underground


train left the station without its driver. The
driver had taped the button that started the
train, relying on the system that prevented the
train from moving when doors were open. The
train operator had left his train to close a door
which was stuck. When the door was finally
shut, the train simply left.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12
Why is software development difficult?
• The problem domain (also called application
domain) is difficult

• The solution domain is difficult

• The development process is difficult to manage

• Software offers extreme flexibility

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13
Software Engineering is more than
writing Code
• Problem solving
• Creating a solution
• Engineering a system based on the solution

• Modeling

• Knowledge acquisition

• Rationale management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14
Software Engineering:
A Problem-Solving Activity

• Analysis:
• Understand the nature of the problem and break the
problem into pieces
• Synthesis:
• Put the pieces together into a large structure

For problem solving we use techniques,


methodologies and tools.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15
Techniques, Methodologies and Tools
• Techniques:
• Formal procedures for producing results using
some well-defined notation
• Algorithms, cookbook recipes are examples of
techniques
• Methodologies:
• Collection of techniques applied across software
development and unified by a philosophical
approach
• A cookbook is a methodology
• Tools:
• Instruments or automated systems to
accomplish a technique
• Examples of tools are: Pans, pots and stove
• CASE = Computer Aided Software Engineering.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16
Software Engineering: A Working
Definition
Software Engineering is a collection of techniques,
methodologies and tools that help with the
production of

A high quality software system developed with a


given budget before a given deadline
while change occurs

Challenge: Dealing with complexity and


change
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17
Course Outline
Dealing with Complexity Dealing with Change
• Notations (UML, OCL) • Rationale Management
• Requirements Engineering, • Knowledge Management
Analysis and Design • Release Management
• OOSE, SA/SD, scenario-based • Big Bang vs Continuous
design, formal specifications Integration
• Testing • Software Life Cycle
• Vertical and horizontal testing • Linear models
• Iterative models
• Activity-vs Entity-based
views

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18
Software Engineering Concepts

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19
Overview of OOSE Activities

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20
Software Lifecycle Activities ...and their
models

Requirements System Object Implemen-


Analysis Testing
Elicitation Design Design tation

Implemented
Expressed in Structured By By Verified
Realized By
Terms Of By

class...
class...
class... ?
class.... ?
Use Case Application Solution
Domain Subsystems Source Test
Model Domain
Objects Code Cases
Objects

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21
Assignments

• Read Chapter 1 from the textbook

• Course page
• Follow the announcements in Teams

• Next week
• We will start learning UML notation
• You can read Chapter 2

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22
Term Project

• Read the project description

• Form teams for the term project


• 4-6 students

• Send e-mail to the TA


• Subject: OOAD project team
• Details:
• Names and IDs of the team members
• Deadline: 2.10.2022
• We will assign you to other teams, if you cannot
participate in a team

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23
Academic Ethics and Integrity

• You must obey the academic ethics rules and


avoid every kind of plagiarism and cheating in
your exams and assignments.
• Plagiarism detection tools will be used to check
your reports and codes.
• You will have a disciplinary investigation in case
of any violation.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

You might also like