Chapter 1: Introduction



Similar documents
Chapter 1: Introduction

Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr.

Chapter 13 Configuration Management

Chapter 13 Configuration Management

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Chapter 11: Integrationand System Testing

Chapter 11, Testing, Part 2: Integration and System Testing

Software Lifecycles Models

Change Management: Modeling Software Product Lines Evolution

Classical Software Life Cycle Models

Lecture 20: Software Evolution

Chapter 11: Integration- and System Testing

Cours de base / Basic Courses. Niveau avancé / Advanced Level ESL 1112 ESL 1113 ESL 2111 ESL 2112 ESL 2113

Tech Day IBM 28 août 2009 RAT06P3 Introduction à Rhapsody Architect pour l Ingénierie des Systèmes et des Logiciels Embarqués

TDDC88 Lab 2 Unified Modeling Language (UML)

Section C. Requirements Elicitation

Introduction to Software Engineering: Project Management ( Highlights )

City University of Hong Kong Course Syllabus. offered by Department of Computer Science with effect from Semester A 2015/16

Note concernant votre accord de souscription au service «Trusted Certificate Service» (TCS)

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

How To Develop A Multi Agent System (Mma)

Architecture. Reda Bendraou

How To Develop Software

"Internationalization vs. Localization: The Translation of Videogame Advertising"

Guidance on Extended Producer Responsibility (EPR) Analysis of EPR schemes in the EU and development of guiding principles for their functioning

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

ESMA REGISTERS OJ/26/06/2012-PROC/2012/004. Questions/ Answers

Post-Secondary Opportunities For Student-Athletes / Opportunités post-secondaire pour les étudiantathlètes

Software Project Management. Lecture Objectives. Project. A Simple Project. Management. What is involved

An Automatic Reversible Transformation from Composite to Visitor in Java

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

NUNAVUT HOUSING CORPORATION - BOARD MEMBER RECRUITMENT

Software Development Methodologies

THE SOFTWARE DEVELOPMENT LIFE CYCLE *The following was adapted from Glencoe s Introduction to Computer Science Using Java

Cliquez sur le résultat que vous avez obtenu au test de classement linguistique Click on the result you obtained following the language test

A Process Model for Software Architecture

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES

Masters of Science in Software & Information Systems

Lecture 9: Requirements Modelling

Journal of Information Technology Management SIGNS OF IT SOLUTIONS FAILURE: REASONS AND A PROPOSED SOLUTION ABSTRACT

The Ecole polytechnique : Training science-based leaders

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Common Warehouse Metamodel (CWM): Extending UML for Data Warehousing and Business Intelligence

Chapter 4 Software Lifecycle and Performance Analysis

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Software Configuration Management, Software Product lines and Summary

Chap 1. Introduction to Software Architecture

Strategic solutions to drive results in matrix organizations

Evidence Product Checklist For Standard IEC 62304:2006 Medical device software Software life cycle processes

CS 40 Computing for the Web

The Structure of a Software Development Team

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

What is a life cycle model?

Ghizlane El Boussaidi , boul. Lévesque Est Phone : (450)

Objectif. Participant. Prérequis. Pédagogie. Oracle Database 11g - Administration Workshop I Release 2. 5 Jours [35 Heures]

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Personnalisez votre intérieur avec les revêtements imprimés ALYOS design

Software Project Management Part 1: Organization

Software Configuration Management. Addendum zu Kapitel 13

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Session T1C A Cross-Disciplinary Software Engineering Project Implemented as a Web Service

OCC1 546 STRATEGIES IN OCCUPATIONAL THERAPY PROFESSIONAL PRACTICE

Improving Traceability of Requirements Through Qualitative Data Analysis

SERENITY Pattern-based Software Development Life-Cycle

Object-oriented design methodologies

A Software Engineering Process for Operational Space Weather Systems. S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies

Chapter 3, Project Organization and Communication

Introduction. GEAL Bibliothèque Java pour écrire des algorithmes évolutionnaires. Objectifs. Simplicité Evolution et coévolution Parallélisme

Bachelor of Science [Computing Science & Information Systems] Programme Document

11 Tips to make the requirements definition process more effective and results more usable

Accélérer le développement d'applications avec DevOps

Use-Case Analysis. ! What is it? ! From where did it come? ! Now part of UML

Business Process Modeling with Structured Scenarios

Brief description of the paper/report. Identification

Catalogue de Cours / Course Syllabus 2015/2016

Software Engineering I: Software Technology WS 2008/09. Integration Testing and System Testing

THE PLANNING OF A CUSTOMER RELATIONSHIP MANAGEMENT PROJECT: REQUIREMENTS AND OPPORTUNITIES

SIG 4: Developing different models for language policies in Higher Education

Chapter 13: Program Development and Programming Languages

Configuration & Build Management

Product / Produit Description Duration /Days Total / Total

CHAPTER 1 INTRODUCTION

Chapter 13: Program Development and Programming Languages

Development Methodologies

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Life Cycle Activity Areas for Component-Based Software Engineering Processes

Administrer les solutions Citrix XenApp et XenDesktop 7.6 CXD-203

Enterprise Risk Management & Board members. GUBERNA Alumni Event June 19 th 2014 Prepared by Gaëtan LEFEVRE

How To Write A Program In Java (Programming) On A Microsoft Macbook Or Ipad (For Pc) Or Ipa (For Mac) (For Microsoft) (Programmer) (Or Mac) Or Macbook (For

MODELING MULTIPLE REPRESENTATIONS INTO SPATIAL DATA WAREHOUSES: A UML-BASED APPROACH

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

The value of modeling

«Object-Oriented Multi-Methods in Cecil» Craig Chambers (Cours IFT6310, H08)

Transcription:

Object-Oriented Sof tware Engi neering Using UM L, Patterns, and Java Chapter 1: Introduction

Objectifs des cours Apprécier les fondammentales du Génie Logiciel: Methodologies Techniques de description et de modelisation Analyse du système - Ingénierie des exigences Conception du système Implementation: Principe de développement du système. Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 2

Prérequis pour le cours Prérequis : Vous avez déjà fait de la COO Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 3

Focus: Acquire Technical Knowledge Different methodologies ( philosophies ) to model and develop software systems Different modeling notations Different modeling methods Different software lifecycle models (empirical control models, defined control models) Different testing techniques Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 4

Outline of Today s Lecture The development challenge Dealing with change Concepts: Abstraction, Modeling, Hierarchy Methodologies Organizational issues Lecture schedule Exercise schedule Associated Project Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 6

Can you develop this system? Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 7

Can you develop this system? Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 8

Can you develop this system? Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 9

Can you develop this system? The impossible Fork Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 10

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 Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 13

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 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 Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 14

Can we not use the Scientific Method? Not exactly, we need ideas and hypotheses The scientific method, unfortunately, has never quite gotten around to saying exactly where to pick up these hypotheses. The traditional scientific method has always been at the very best, 20-20 hindsight It's good for seeing where you've been. It's good for testing of what you think you know But it can't tell you where you should to go Creativity, originality, inventiveness, intuition, imagination "unstuckness," in other words are completely outside the domain of the scientific method Robert Pirsig, Zen and the Art of Motorcycle Maintenance, p. 251, Bantam Books, 1984. Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 15

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 Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 16

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 Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 17

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 Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 18 20

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 Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 19

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 Exercises Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 20

C est tout pour aujourd hui! Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 21

Que faire ensuite? Lire les lectures obligatoire et conseillée Obligatoire : Chapter 2 Bruegge&Dutoit, Object- Oriented Software Engineering 2.1, 2.2, 2.3, 2.4 (long!) Conseillée : Chapter 1 Bruegge&Dutoit 1.1, 1.2, 1.3, 1.4 Visiter le portail de COA (en chantier) Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 25

Lecture obligatoire Bernd Bruegge, Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns and Java, 3 rd Edition Pearson New International Edition, 3/E ISBN-10: 1292024011 ISBN-13: 9781292024011 Bernd Bruegge & Allen H. Dutoit Object-Oriented Sof tw are Engi neering: Usi ng UM L, Patterns, and Java 26