Sunteți pe pagina 1din 10

Department of Computer Science

Kulliyyah of Information & Communication Technology


International Islamic University Malaysia

COURSE OUTLINE
CSC 3501: Software Engineering

Kulliyyah Department
Kulliyah of Information and Department of Computer Science
Communication Technology

Programme Bachelor of Computer Science

Course Title Software Engineering

Course Code CSC 3501

Status Core

Level 3

Credit Hours 3

Contact Hours 3

Pre-requisites INFO 2401 Systems Analysis and Design

Teaching Methodology Lecture


Class discussion

Method of Evaluation Quizzes : 10%


Assignments : 10%
Project : 20%
Mid Term Exam : 20%
Final Exam : 40%
Total : 100%
Instructor(s) Sr. Suriani Sulaiman

Semester Offered 1, 2005/2006


Course Objectives
The main objectives of this course are as follows:

• To explain the real concept of software engineering


process model, project management, design, software
cost, testing and how to implement them in solving
complex problem.
• To introduce students with CASE tools.
• To introduce ethical and professional issues and explain
why they are concern to software engineers.
• To test the students with one specific requirements that
they have to apply the entire concept in software
engineering process.
Course Synopsis
Due to the advanced technologies of the day, students must
aware with modern methods especially in software engineering
field. This course actually emphasized the fundamentals of
software specification such as planning, formal specification,
programme development methodology, program testing,
evaluation, maintenance and costing. In addition, as the
beginning, this course will give the students the nature of the
software engineering approach and helping them to understand
the method as well.

Learning Outcomes
It is expected that students will apply various software
engineering methods and techniques introduced in the course.
Students should be able to:

1. Apply the fundamentals of software engineering


activities involved in any software development.
2. Gain understanding of the need to capture and
document requirements
3. Construct specifications for a simple software system
4. Design systematic testing procedures for a piece of
software
5. Plan software costing for software development
project
Course Outlines

Weeks Topics Reference

1 Introduction to Software Engineering


• The Evolving Role of Software Pressman
• Software (Chapter. 1)
• The changing Nature of Software
• Legacy Software
• Software Myths
• How It All Starts

The Software Process


Pressman
• Software Engineering ­ A Layered  (Chapter. 2)
Technology
• A Process Framework
• The Capability Maturity Model 
Integration (CMMI)
• Process Patterns
• Process Assessment
• Personal and Team Software Process
• Process Technology
• Product and Process

Process Models
2 • Prescriptive Models Pressman
• The Waterfall Model (Chapter. 3)
• Incremental Process Models
• Evolutionary Process Models
• Specialized Process Models
• The Unified Process

Software Engineering Practice


• The Essence of Practice
Pressman
• Communication Practices (Chapter. 5)
• Planning Practices
• Modeling Practices
• Construction Practices
3 System Engineering
• Computer­Based Systems Pressman
• The System Engineering Hierarchy (Chapter. 6)
• Business Process Engineering: An 
Overview

Requirements Engineering
• The Bridge to Design and Construction Pressman
• Requirements Engineering Tasks (Chapter. 7)
• Initiating the Requirements Engineering 
Process
• Eliciting Requirements
• Developing Use­Cases
• Building the Analysis Model
• Negotiating Requirements
• Validating Requirements

Analysis Modeling
• Requirements Analysis
• Analysis Modeling Concepts and 
4 Pressman
Approaches
• Data Modeling (Chapter. 8)
• Object­Oriented Concepts
• Scenario­Based Modeling
• Flow­Oriented Modeling
• Class-Based Modeling
• Creating a Behavioral Model

Design Engineering
• Design within the Context of Software 
Engineering
• The Design Process Pressman
• Design Concepts (Chapter. 9)
• The Design Model
• Pattern­Based Software Design

Architectural Design
• Software Architecture 
5 • Data Design 
• Architectural Styles and Patterns  Pressman
(Chapter.10)
• Architectural Design
• Analyzing Alternative Architectural 
Designs
• Mapping Data Flow into Software 
Architecture

Component Level Design


• What is a Component?
• Designing Class­Based Components
• Conducting Component­Level Design
Pressman
• Object Constraint Language (Chapter.11)
• Designing Traditional Components

User Interface Design


• The Golden Rules
• User Interface Analysis and Design
• Interface Analysis
• Interface Design Steps
• Implementation Tools
6 Pressman
• Design Evaluation (Chapter.12)
Software Testing Strategies
• A Strategic Approach to Software Testing
• Strategic Issues
• Test strategies for Traditional Software
• Test Strategies for Object-Oriented Software
• Validation Testing
• System Testing
Pressman
• The Art of Debugging
(Chapter.13)

Software Testing Techniques


• Software Testing Fundamentals
• Black­Box and White­Box Testing
• White­Box Testing
• Basis Path Testing
•  Control Structure Testing
Product Metrics for Software
7 Software Quality Pressman
A Framework for Technical (Chapter.14)
      Software Metrics
• Metrics for the Analysis Model
• Metrics for the Design Model
• Metrics for Source Code
• Metrics for Testing
• Metrics for Maintenance

Web Engineering Pressman
(Chapter.15)
• Attributes of Web­Based 
      Systems and Applications
• WebApp Engineering Layers
• The Web Engineering Process
• Web Engineering Best 
       Practices

Analysis Modelling for Web Applications
• Requirements Analysis for WebApps
8 • An Analysis Model for WebApps Pressman
• The Content Model (Chapter.16)
• The Interaction Model
• The Functional Model
• The Configuration Model

SEMESTER BREAK

Pressman
(Chapter.18)
9 Design Modeling for Web Applications Pressman
• Design Issues for Web  (Chapter.19)
      Engineering 
• The WebE Design Pyramid
• WebApp Interface Design
• Aesthetic Design      
• Content Design
• Architecture Design
• Navigation Design
• Component­Level Design
• Hypermedia Design Patterns
• Object­Oriented Hypermedia 
      Design Method (OOHDM)
• Design Metrics for WebApps

Testing for Web Applications
• Testing Concepts for WebApps 
• The Testing Process—An Overview Pressman
(Chapter.20)
• The Content Model
• The Interaction Model
• The Functional Model
• The Configuration Model

10 Project Management Concepts Pressman


• The Management Spectrum (Chapter.21)
• People
• The Product
• The Process
• The Project
• The W5HH Principle
• Critical Practices

Software Process and Project Metrics Pressman
• Metrics in the Process and  (Chapter.22)
      Project Domains
• Software Measurement
• Metrics for Software Quality
• Integrating Metrics within the
Software Engineering Process
• Metrics for Small Organizations
• Establishing a Software Metrics 
      Program

11 Software Project Planning Pressman


• Observations on Estimating (Chapter.23)
• The Project Planning Process
• Software Scope and Feasibility
• Resources
• Software Project Estimation
• Decomposition Techniques
• Empirical Estimation Models
• Estimation for Object­Oriented Projects
• Specialized Estimation Techniques
• The Make­Buy Decision

Project Scheduling
• Basic Concepts
• Project Scheduling Pressman
• Defining a Task Set for the  (Chapter.24)
      Software Project
• Defining a Task Network
• Scheduling
• Earned Value Analysis

12 Risk Management Pressman


• Reactive vs. Proactive Risk Strategies (Chapter.25)
• Software Risks
• Risk Identification
• Risk Projection
• Risk Refinement
• Risk Mitigation, Monitoring and 
Management
• Safety Risks and Hazards
• The Risk Mitigation, Monitoring & 
Management (RMMM) Plan
Quality Management
• Quality Concepts  Pressman
• Software Quality Assurance (Chapter.26)
• Software Reviews 
• Formal Technical Reviews 
• Formal Approaches to SQA
• Statistical Quality Assurance
• Software Reliability
• Mistake­Proofing for Software
• The ISO 9000 Quality Standards
• The SQA Plan

13 Change Management Pressman


• Software Configuration Management (Chapter.27)
• The SCM Repository
• The SCM Process
• Configuration Management for Web 
Engineering
• SCM Standards

Formal Methods
• Basic Concepts  Pressman
• Mathematical Preliminaries  (Chapter.28)
• Applying Mathematical Notation for 
Formal Specification
• Formal Specification Languages
• Object Constraint Language (OCL)
• Using Z to Represent and 
       Example Software Component
• The Ten Commandments of 
       Formal Methods
• Formal Methods—The Road Ahead
14 Reengineering Pressman
• Business Process Reengineering (Chapter.31)
• Software Reengineering
• Reverse Engineering
• Restructuring
• Forward Engineering
• The Economics of Reengineering

FINAL EXAMINATION
(Chap. 16 – 31)

References Required :

Pressman R. S., Software engineering a practitioner’s approach, 6th


Edition, McGraw Hill, 2002.

Recommended :

Sommerville, I., Software engineering, 7th Edition, Addison Wesley,


2004.

George T. Heineman, Council, William T., Component based software


engineering, 1st Edition, Addison-Wesley Professional, 2001.

Glass, Robert L., The limits of software: people, projects and


perspectives (paperback), 1st Edition, Addison-Wesley, 1999.

Proposed Start
Date

Batch of All batches


Students to be
Affected