About the Course 510411 Software Engineering - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

About the Course 510411 Software Engineering

Description:

Email: qmalluhi_at_qu.edu.qa. 510411 Software Engineering 3. Course URL ... The course assumes proficiency in a programming language ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 18
Provided by: bernd205
Category:

less

Transcript and Presenter's Notes

Title: About the Course 510411 Software Engineering


1
About the Course510411 Software Engineering
  • Qutaibah Malluhi
  • Computer Science and Engineering Department
  • Qatar University

2
Instructor
  • Name Qutaibah Malluhi,
  • Title Professor Computer Science and
    Engineering Department
  • Office Corredor 8, CV27
  • Phone 485-1594
  • Office Hrs TBD
  • Email qmalluhi_at_qu.edu.qa

3
Course URL
  • http//127.17.151.93/courses/SWEng
  • Currently accessible inside campus?
  • Address will change
  • Dynamic and evolving document

4
Requirements for this Class
  • 204303 (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

5
Textbook
  • Bernd Bruegge, Allen Dutoit, Object-Oriented
    Software Engineering Using UML, Patterns, and
    Java, 2nd Edition, Prentice Hall, 2003. (ISBN
    0-13-047110-0)
  • Book has an associated web site that can be found
    at http//wwwbruegge.in.tum.de/projects/lehrstuhl/
    twiki/bin/view/OOSE/WebHome
  • Additional readings may be recommended during
    individuals lectures

6
Grading
  • Evaluation
  • Mid Term Exam 20
  • Final Exam (comprehensive) 40
  • Presentation 10
  • Lab assignments 30 
  • Grading Scale
  • 85 - 100 A
  • 75 -  84 B
  • 60 -  74 C
  • 50 -  59 D
  • Below 50 F
  • Typically goes down (to your benefit) at the end
    of the semester but never goes up 

7
About Software Engineering
  • What is Software Engineering?
  • Why 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

Programming
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

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
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)

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

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).

14
Problem Solving
CUSTOMER
COMPUTER SCIENCE
Computer Functions
Theories
Problem
Modeling, problem solving, rationale mngmnt,
data collection
Tools and Techniques to Solve Problem
SOFTWARE ENGINEERING
High Quality Economical Software Solution
15
Distribution of Software Cost
Designing software with change in mind is
extremely important
Source Steven Schach, Software Engineering, 2nd
Ed., Asken Associates.
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.

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)
Write a Comment
User Comments (0)
About PowerShow.com