510411 Software Engineering About the Course 510411 Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.

Slides:



Advertisements
Similar presentations
Chapter 1: Introduction
Advertisements

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Computer Science Department
CS3773 Software Engineering Lecture 01 Introduction.
© Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University.
Difference between project and other assignments  real customer  before programming: negotiations with client to clarify requirements  often.
Software Engineering Dr.Basem Alkazemi
What is Software Engineering? And why is it so hard?
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
General information CSE 230 : Introduction to Software Engineering
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Software Engineering COMP 201
ESD.83Cory R. A. Hallam1 An Introduction to Systems Engineering The Art of Managing Complexity Presented By Cory R. A. Hallam B.Eng., M.Eng., ISU SSP,
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.
Course Introduction and Overview of Software Engineering Richard N. Taylor ICS 221 Fall 2002.
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAMING PRACTICES Introduction.
Software Engineering Course Instructor: Aisha Azeem.
CS4/542- Software Engineering  Software Design and Development  Required Text -- Code Complete by Steve McConnell  (Focuses on the problems of designing.
1 Software Engineering CEN5035 copyright © 1996, 2001 R.S. Pressman & Associates, Inc.
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.
Chapter 1 The Systems Development Environment
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
SYSE 802 John D. McGregor Module 0 Session 1 Course Introduction.
Software Engineering ‘The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and.
Software EngineeringIntroduction Slide 1 Software Engineering Mr. Ahmad Al-Ghoul.
EECE 310 Software Engineering Lecture 0: Course Orientation.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
1 Requirements Analysis and Design Engineering Southern Methodist University CSE 7313.
SE-308 Software Engineering-II 7th Term SE University of Engineering & Technology Taxila, Pakistan Software Engineering Department.
CEN st Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi What.
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Course Introduction Software Engineering
Ch.1 1 Software Engineering A Preview Chapter 1. Ch.1 2 Outline My Background Definitions of software engineering (SE) Historical origins of SE SE as.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Course Guide IS325 Systems Analysis & Design II Ms Fatima Khan Prince Sultan University, College for Women.
Content The system development life cycle
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
Ministry of Higher Education Sohar College of Applied Sciences IT department Comp Introduction to Programming Using C++ Fall, 2011.
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)
Course Introduction CEN 5016 Software Engineering Dr. David A. Workman School of EE and Computer Science January 9, 2007.
CEN First Lecture CEN 4010 Introduction to Software Engineering Instructor: Masoud Sadjadi
Software Engineering Administrivia September 5, 2001 Joseph Conron Computer Science Department New York University
The Systems Development Environment Systems Analysis and Design II.
CS Introduction to Computer Science Spring 2011 Dr. Angela Guercio (
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle (Waterfall)
CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 1, 1999 Marge Holtsinger.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
Advanced Software Engineering Dr. Cheng
Advanced Programing practices
CSCI 360: Software Architecture & Design
INTERNATIONAL BURCH UNIVERSITY
Fundamentals of Information Systems, Sixth Edition
ECE 355 Software Engineering Instructor Kostas Kontogiannis
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Software Engineering - CSC 323
Introduction to Software Engineering
CEN 5011 Advanced Software Engineering
EECE 310 Software Engineering
Chapter 1, Introduction to Software Engineering
Practical Software Engineering
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Advanced Programing practices
Presentation transcript:

Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University

Software Engineering 2 Instructor Name: Qutaibah Malluhi, Title: Professor Computer Science and Engineering Department Office: Corredor 8, CV27 Phone: Office Hrs: TBD

Software Engineering 3 Course URL   Currently accessible inside campus?  Address will change  Dynamic and evolving document

Software Engineering 4 Requirements for this Class  (Data Structures and Algorithms)  The course assumes proficiency in a programming language  Strong motivation to learn more about the technical aspects of analysis and design of complex software systems

Software Engineering 5 Textbook  Bernd Bruegge, Allen Dutoit, “Object-Oriented Software Engineering: Using UML, Patterns, and Java”, 2 nd Edition, Prentice Hall, (ISBN )  Book has an associated web site that can be found at ojects/lehrstuhl/twiki/bin/view/ OOSE/WebHome  Additional readings may be recommended during individuals lectures

Software Engineering 6 Grading  Evaluation  Mid Term Exam20%  Final Exam (comprehensive)40%  Presentation10%  Lab assignments30%  Grading Scale  %A  %B  %C  %D  Below 50%F  Typically goes down (to your benefit) at the end of the semester but never goes up

Software Engineering 7 About Software Engineering  What is Software Engineering?  Why Software Engineering?

Software Engineering 8 Setting the Context Small project You Build what you want One product Few sequential changes Short-lived Cheap Small consequences Ad-hoc approach Huge project Teams Build what they want Family of products Many parallel changes Long-lived Costly Large consequences Systematic approach ProgrammingEngineering

Software Engineering 9 Motivation: The Mythical Man-Month  Title of the classic Software Engineering book  by Brooks  In 1975 based on experience in 1965  Manager in the OS/360 project – largest software in its time  Brooks Law  “Adding manpower to a late project makes it later”

Software Engineering 10 Estimating the cost with man-months  Traditional man-month  10 people working for 1 month = 10 man-months  Assumptions:  People and months can be interchanged  Tasks can be done in absolute parallelism  The reality  Interrelationships are complex  Communication is expensive and not easy  Project tasks are typically not isolated  Examples of costs of adding project personnel  Training  Preserving “conceptual integrity”  Communication paths Far from being linearly scalability Far from being linearly scalability

Software Engineering 11 Issues about Scaling  When the problem is orders-of-magnitude larger, new technologies may be necessary  High powered techniques not appropriate for all problems (Using an elephant gun to kill a fly)

Software Engineering 12 Software Engineering is different than programming  For example, Software Engineering includes  determining what to build  organizing teams to cooperatively build systems  analysis and testing  lifecycle system engineering  software architecture

Software Engineering 13 Software Engineering: Definition  Classic Definition (1969)  “The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.”  IEEE Definition (1993)  “Software Engineering: (1) The application of a systematic, disciplines, quantifiable approach to the development, operation, and maintenance of software; that is the application of engineering to software. (2) The study of approaches as in (1).”

Software Engineering 14 Problem Solving COMPUTER SCIENCE COMPUTER SCIENCE CUSTOMER SOFTWARE ENGINEERING SOFTWARE ENGINEERING Theories Computer Functions Problem Modeling, problem solving, rationale mngmnt, & data collection Modeling, problem solving, rationale mngmnt, & data collection Tools and Techniques to Solve Problem High Quality & Economical Software Solution High Quality & Economical Software Solution

Software Engineering 15 Distribution of Software Cost Source: Steven Schach, Software Engineering, 2 nd Ed., Asken Associates. Designing software with change in mind is extremely important

Software Engineering 16 Software Engineering: Textbook Definition  “Software Engineering is a collection of techniques, methodologies and tools that help with the production of  a high quality software system  with a given budget  before a given deadline while change occurs.”

Software Engineering 17 Objectives of the Class  Appreciate Software Engineering  Understand how to  produce a high quality software system within time  while dealing with complexity and change  Understand System Modeling and learn different modeling methods  Functional (use case) modeling  Object Modeling  Dynamic Modeling  Learn UML (Unified Modeling Language)  Learn how to use CASE (Computer Aided Software Engineering) tools  In the lab  Tool: Eclipse with UML plugin  Understand SWE Development activities  Requirements elicitation, analysis, system design, object design, implementation, and testing  Introduce software development methodologies  Agile methodologies and extreme programming (XP)