Introduction To Software Engineering Course Outline: Naveed Anwer Butt Office: A-207 Lab: CS/IT Research Lab
Introduction To Software Engineering Course Outline: Naveed Anwer Butt Office: A-207 Lab: CS/IT Research Lab
Course Outline
References
Roger S. Pressman. Software Engineeri
ng: a practitioner’s approach, 5th or 6th
edition. McGRAW-HILL. 2005.
Course Web Site
For announcements, lecture slides,
handouts, assignments, quiz
solutions, web resources:
Students will have Download from
UOGIS
Other Stuff
Philosophy
Knowledge cannot be taught; it is learned.
Be excited. That is the best way to learn. I
cannot teach everything in class. Develop
an inquiring mind, ask questions, and go
beyond what is required.
I don’t believe in strict grading. But… there
has to be a way of rewarding performance.
Course Outline
Introduction (FAQs about SE)
Software Processes
Requirements
Design
Verification and Validation
Project Management
Other Topics
Software Processes
Activities concern about Software Development
Software Specification
Design
Implementation
Validation (what customer wants, Testing, Quality
Assurance)
Software Evolution (must evolve to meeting changing
needs of customers, maintenance)
Process Models
Waterfall model, evolutionary development (concurrent
activities), component-based software engineering
(design with reuse)
CASE tools for aiding the evolving of processes
Requirements
Detailed Descriptions of what the
system should do.
Functional (service provided) and
non-functional requirements
(constraints)
User Requirements (external behavior
of the system)
System Requirements (starting points
for system design)
Design
Architecture Design
Subsystem identifications
Subsystem Control and Communication
Output the Software Architecture
Object-oriented Design
Design as a set of interacting objects
User interface Design
Interface code constitutes the major part of
system
Judging the system from UI instead of
Functionality
External Behaviors of the system
Verification and Validation
Validation: Building the right product ?
Software meets the user’s expectations
Verification: Building the product right ?
Software conforms to the specification
Software Testing
Formal Methods
Project Management
Project Scheduling
Software Metrics
Cost Estimation
Quality Management
Risk Management
Change Management
Other Issues
Software Outsourcing
Open source Software Engineering
Building for Trustworthy
Component-based development
Term Project