Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.

Slides:



Advertisements
Similar presentations
Chapter 1: Introduction
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design 1.
Software Processes.
Software Tools Lecture 10: Software Tools Dr Valentina Plekhanova University of Sunderland, UK.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 16, Methodologies: Putting It All Together.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Computer Science Department
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5: Analysis, Object Modeling.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
Chapter 1: Introduction
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 5, 2001 Introduction.
An Introduction to Software Engineering
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Chapter 1: Introduction
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 15, Software Life Cycle.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
CSE 308 Software Engineering Software Engineering Strategies.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Object Modeling.
CS 319: Object Oriented Software Engineering
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Content The system development life cycle
Chapter 1. Introduction.
1 Introduction to Software Engineering Lecture 1.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies Extreme Programming.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Software Production ( ) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD)
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle (Waterfall)
Requirements Analysis
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Software Engineering – Fall 2015 (CSC 4350/6350) TR. 5:30 pm – 7:15 pm Rao Casturi 09/01/2015
Bernd Bruegge and Allen Dutoit Requirements Process The requirements process consists of two activities: Requirements Elicitation: Definition of the system.
CSCI 360: Software Architecture & Design
Chapter 1: Introduction
INTERNATIONAL BURCH UNIVERSITY
Chapter 0: Introduction
Review of last class Software Engineering Modeling Problem Solving
Fundamentals of Information Systems, Sixth Edition
ECE 355 Software Engineering Instructor Kostas Kontogiannis
Chapter 1: Introduction
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 1: Introduction
Rapid Application Development Model
CEN 5011 Advanced Software Engineering
Introduction To System Analysis and Design PART 2
Object Oriented Analysis and Design
Chapter 1, Introduction to Software Engineering
Introduction To software engineering
Chapter 0 : Introduction to Object Oriented Design
Presentation transcript:

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2 Objectives of the Lectures Appreciate the Fundamentals of Software Engineering: Methodologies Process models Description and modeling techniques System analysis - Requirements engineering System design Implementation: Principles of system development

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3 Outline of Today’s Lecture The development challenge Dealing with change Concepts: Abstraction, Modeling, Hierarchy Methodologies

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4 Can you develop this system?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5 Can you develop this system?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6 Can you develop this system?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7 Can you develop this system? The impossible Fork

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8 Why is Software Development difficult? The problem is usually ambiguous The requirements are usually unclear and changing when they become clearer The problem domain (called application domain) is complex, and so is the solution domain The development process is difficult to manage Software offers extreme flexibility Software is a discrete system Continuous systems have no hidden surprises Discrete systems can have hidden surprises!

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9 Software Development is more than just Writing Code It is problem solving Understanding a problem Proposing a solution and plan Engineering a system based on the proposed solution using a good design It is about dealing with complexity(modeling) Creating abstractions and models Notations for abstractions It is knowledge management Elicitation, analysis, design, validation of the system and the solution process It is rationale management Making the design and development decisions explicit to all stakeholders involved.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10 Techniques, Methodologies and Tools Techniques: Formal procedures for producing results using some well-defined notation Methodologies: Collection of techniques applied across software development and unified by a philosophical approach Tools: Instruments or automated systems to accomplish a technique Interactive Development Environment (IDE) Computer Aided Software Engineering (CASE)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11 Computer Science vs. Engineering Computer Scientist Assumes techniques and tools have to be developed. Proves theorems about algorithms, designs languages, defines knowledge representation schemes Has infinite time… Engineer Develops a solution for a problem formulated by a client Uses computers & languages, techniques and tools Software Engineer Works in multiple application domains Has only 3 months... …while changes occurs in the problem formulation (requirements) and also in the available technology.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Challenge: Dealing with complexity and change 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 Software Engineering: A Working Definition

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13 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 14 Course Outline Dealing with Complexity Notations (UML, OCL) Requirements Engineering, Analysis and Design OOSE, SA/SD, scenario-based design, formal specifications Testing Vertical and horizontal testing Dealing with Change Rationale Management Knowledge Management Patterns Release Management Configuration Management, Continuous Integration Software Life Cycle Linear models Iterative models Activity-vs Entity-based views Application of these Concepts in the Exerises