Course Objectives:
This course is intended to provide an introduction to SE concepts and practices focusing on industrial software development characteristics and processes, development models, and the software life cycle for long-term and large-scale system. The course includes use of CASE tools and environments. Teamwork aspects typical of large-scale software development are emphasized throughout the course and exercised via group projects.
Course Contents:
1. Introduction to software engineering, distinguishing between small-scale and large-scale applications and the challenges of the later.
2. Sequential software development life cycle model, the waterfall model, the spiral model.
3. Concepts of software development project management, building and managing project team.
4. Concepts of software analysis: capturing classifying, and determining requirements and Use case construction; constructing: Data Flow Diagrams, data dictionary, decision diagrams and tables, Object-oriented diagrams.
5. Concepts of software design: building software components, software containment, software abstraction, structural design, sequence interactive diagrams.
6. Software implementation, testing, maintenance and improvement.
7. Estimating time cost and resources required for software engineering.
Course Outcomes:
Upon successful completion of the course, the student should have:
1. Knowledge on the differences between large-scale and small-scale software in terms of design and construction.
2. Knowledge on the sequential phases of software development and the limits of each phase’s requirements, and the relationship among those phases in terms of inputs and outputs for each phase.
3. Ability to capture and analyze software requirements, construct and understand analysis diagrams.
4. Ability to construct and understand software design diagrams and utilize object-oriented concepts in software design.
5. Knowledge on software implementation and testing methods.
6. Personal and professional skills necessary to be part of software development teams.
Marks distribution:
Assignment: 5
Exam 1: 10
Exam 2: 15
Project: 30
Final Exam: 40
---
Total: 100
Course Syllabus:
Object-oriented Software Engineering, Practical Software Development using UML and Java, 2nd Ed. Timothy C. Lethbridge and Robert Laganiere, 2005
Chapter 1: Introduction
Chapter 2: Review of Object-orientation
Chapter 4: Developing requirements
Chapter 5: Modeling with classes
Chapter 8: Modeling interactions and behavior
Chapter 10: Testing and inspecting to ensure high quality
System analysis and design, 6th Ed. Kendall and Kendall,2005
Chapter 3: Determining Feasability and Managing Analysis and Design Activities
Chapter 7: Using data flow diagrams
Chapter 8: Analyzing systems using data dictionaries
Chapter 9: Describing process specifications and structured decisions
---------
References:
Object-oriented Software Engineering, Practical Software Development using UML and Java, 2nd Ed. Timothy C. Lethbridge and Robert Laganiere, 2005
System analysis and design, 6th Ed. Kendall and Kendall,2005
C. Ghezzi, M. Jazayri, and Mandrioli, “Fundamentals of Software Engineering”, 2nd Edition, 2002. Prentice Hall, ISBN 010133056996
|