Title: About the Course 510411 Software Engineering
1About the Course510411 Software Engineering
- Qutaibah Malluhi
- Computer Science and Engineering Department
- Qatar University
2Instructor
- 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
3Course URL
- http//127.17.151.93/courses/SWEng
- Currently accessible inside campus?
- Address will change
- Dynamic and evolving document
4Requirements 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
5Textbook
- 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
6Grading
- 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
7About Software Engineering
- What is Software Engineering?
- Why Software Engineering?
8Setting 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
9Motivation 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
10Estimating 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
11Issues 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)
12Software 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
13Software 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).
14Problem 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
15Distribution of Software Cost
Designing software with change in mind is
extremely important
Source Steven Schach, Software Engineering, 2nd
Ed., Asken Associates.
16Software 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.
17Objectives 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)