Chapter 1, Introduction to Software Engineering

Slides:



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

Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Computer Science Department
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Chapter 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Example of a Problem Statement: Introduction into.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
Lecture 11: Chapter 22 Topics –Object Oriented Modeling –UML –Use case.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
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.
Itntroduction to UML, page 1 Introduction to UML.
January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
1 Lecture 5.3: SEF Ch 4 Requirements Analysis Dr. John MacCarthy UMBC CMSC 615 Fall, 2006.
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.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 11, Project Management.
Software Engineering CS B Prof. George Heineman.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Paul Bourke DT211/3 & DT228/3 Team Project Paul Bourke Module Web Page:
WXGE 6103 Digital Image Processing Semester 2, Session 2013/2014.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
1 Introduction to Software Engineering Lecture 1.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
SCHILLER INTERNATIONAL UNIVERSITY
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)
CEN First Lecture CEN 4010 Introduction to Software Engineering Instructor: Masoud Sadjadi
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Software Engineering Administrivia September 5, 2001 Joseph Conron Computer Science Department New York University
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Software Engineering Lecture 10: System Engineering.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Object Oriented Methodology Course Introduction. Objectives A 3-credit hour graduate course explaining the development of object oriented software systems.
COP st Lecture August 29, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
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.
Advanced Programing practices
INTERNATIONAL BURCH UNIVERSITY
Review of last class Software Engineering Modeling Problem Solving
CSc 4350 / CSc 6350 SOFTWARE ENGINEERING Fall, 2005
Object-Oriented Software Engineering Using UML, Patterns, and Java,
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
Course Overview CSE8313 Object-Oriented Analysis and Design
Presented by Igor Ivković
Introduction to Object Oriented Analysis, Design and Unified Modeling Language (UML) Shanika Karunasekera.
CEN 5011 Advanced Software Engineering
Chapter 20 Object-Oriented Analysis and Design
ARCH-5: From Design to Implementation in OpenEdge® using UML and MDA
CHAPTER 9 (part a) BASIC INFORMATION SYSTEMS CONCEPTS
Software Design Methodologies and Testing
Presented by Igor Ivković
Presentation transcript:

Chapter 1, Introduction to Software Engineering

Software Engineering Software systems are complex 1968 Definition: 3 Software systems are complex Impossible to understand by a single person Many projects are never finished: "vaporware" The problem is arbitrary complexity 1968 Definition: Software Engineering means the construction of quality software with a limited budget and a given deadline Our definition: Software Engineering means the construction of quality software with a limited budget and a given deadline in the context of constant change Emphasis is on both, on software and on engineering 4 2

Course format A Single Semester Course 4 A Single Semester Course Lectures: Theoretical foundations and background Project: Learn how to apply them in practice Lectures and Project work are interleaved Everybody will participate in a software project 5 3

Objectives of this course Acquire technical knowledge Understand difference between program and software product Be able to reconstruct the analysis and design of an existing software system Be able to design and implement a subsystem that will be part of a larger system Acquire managerial knowledge produce a high quality software system within budget & time while dealing with complexity and change

Emphasis is on team work Participate in collaborative design Work as a member of a project team, assuming various roles Create and follow a project and test plan Create the full range of documents associated with a software product Complete a project on time

How can we accomplish this? Course Projects Internet Ordering System Internet Sales Tracking System You will organize into groups of 3 Each group will be assigned a project Details will be revealed once the groups are formed Course project will be done in 3 stages Requirements elicitation Analysis and design Implementation 6 8

Assumptions and Requirements for this Class You are proficient in a programming language (Java preferred), but have no experience in analysis or design of a system You have access to a Web Browser Course Homepage: http://www.cs.fiu.edu/~ege/cen4010/ Requirements: You have taken required courses (Programming III, Data Structures) or You have practical experience with maintaining or developing a large software system

Textbooks Textbook Optional Readings Bernd Bruegge and Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Prentice Hall, 2000. Optional Readings Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design Patterns, Addison-Wesley, 1996, ISBN 0-201-63361-2 Ivar Jacobson, M. Christerson, P. Jonsson, G. Övergaard, "Object-Oriented Software Engineering" , Addison Wesley, 1992 Grady Booch, "Object-Oriented Design with Applications", Benjamin Cummings, 1991. James Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorensen, Object-Oriented Modeling and Design, Prentice Hall, 1991 43 41

Ground Rules Attendance: Attendance and class participation is required Every project team member is responsible for the whole project Grading: Midterm exam 30% Final exam 30% Group project 40% Requirements document 30% Design document 40% System implementation 30%

Project Each team must: Submit a bi-weekly activity log Submit a Requirement Analysis Document Submit an Object Design Document Demonstrate the entire running program Each of the above also require a 15 minutes in class presentation Every team member is responsible for the entire project

What is Software Engineering Software Engineering is the construction of quality software with a limited budget and a given deadline How about change? Software Engineering is the construction of quality software with a limited budget and a given deadline in the context of constant change Emphasis is on both, on software and on engineering

Why Software Engineering Software Systems are complex: Impossible to understand by a single person Many projects are never finished The problem being solved is arbitrarily complex Software Systems are subject to constant change

What are the activities? Modeling An abstract representation of a system that allows the software engineer to answer questions about the system Models allow visualizing and understanding systems that are too large too complex too expensive for direct experimentation or do not even exist in the real world Problem Solving Find a solution with incomplete knowledge and limited resources Formulate the problem Analyze the problem Search for solutions Select an appropriate solution Specify the solution

What are the activities? Knowledge Acquisition software Engineer must acquire problem domain knowledge required to develop the target system is nonlinear Rationale Management Justification of decisions issues that were addressed alternatives that were considered decisions that were made to resolve the issues the criteria that were used to guide decisions the underlying debates

Concepts A project’s purpose is to develop a software system A project is composed of a number of activities An activity is composed of a number of tasks A task consumes resources and produces a work product work product: a system a Model a document resource: time equipment personnel

Concepts -- UML Project Activity * Task * WorkProduct is produced by * consumes Resources * System Participant Document Model Time Equipment

Development Activities Requirement Elicitation Analysis System Design Object Design Implementation

Requirement Elicitation Define the purpose of the system Describe the system in terms of actors and use cases Actors: External entities that interact with the system Use Cases: Sequences of events that describe all possible actions between actors and the system

Analysis Produce a model of the system that is: Correct Complete Consistent Unambiguous Realistic Verifiable Transform use cases into object model

System Design Define the design goals Decompose the system into smaller subsystems Select strategies for building the system

Object Design Precisely describe object and system interfaces Select off-the shelf components Restructure the object model to attain design goals: Extensibility Understandability Performance optimization Result: Detailed object model

Implementation Translate the object model into source code Implement the attributes and methods of each object Integrate all the objects

Managerial Aspects Communication Rationale Management Testing Discover as many faults as possible and repair them before the delivery Software Configuration Management Monitor and control changes Software Project Management Budgeting Hiring Tracking progress, etc. Software life cycle modeling

Summary Find the class website Read Chapter 1 Form your teams