Introduction to Software Engineering

FALL-2009 SEN-360 : Software Engineering Tazeen Muzammil

Course Title: Software Engineering Course Code: SEN-261 Prerequisites: NONE Degree(s): BCS,BSE Laboratories: none


Course Description
Introduction to Software Engineering Software Process Models Project Management Concepts System Engineering Requirements Engineering Analysis Concepts and Principles Design Concepts and Principles Architecture and detailed design User-interface design Verification and Validation Software Quality Assurance Software Testing Techniques and Strategies Clean Room Software Engineering Maintenance Configuration Management Reengineering and Web Engineering

TEXT: Software Engineering:  A Practitioner's Approach Author:  Roger S. Pressman Publication Information:  6th Edition, McGraw-Hill, 2005  

Reference: Software Engineering Author: Ian Sommerville Publication Information: 7th Edition Pearson Education   The Mythical Man-Month:  Essays on Software Engineering Author:  Frederick P. Brooks Publication Information:  20th Anniversary Edition, AddisonWesley, 1995


Marks Distribution
Quizzes Mid–Term Examination Final Examination Project Total 10 20 50 20 100


Group Project
PROJECT GOAL: As a team, develop a software application (of your own choice) through the entire development life cycle. This means performing requirements analysis, design, implementing a functioning prototype, testing and documenting the system TEAM ORGANIZATION: Each team will consist of four (4-5) students. You may choose your own teams, although teams may be adjusted to accommodate all the students in the class. One team member should be chosen as project lead for organizational and contact purposes, but all team members are expected to contribute to all components of the project. IMPLEMENTATION: The prototype can be developed in any environment using any development or prototyping language.


DELIVERABLE Project Definition & Team Organization Software Requirements Specification Design Document Prototype User Documentation DUE DATE 21st September 14th October 4nd November 30th November 16th December


What is Software
Computer software, or just software is a general term used to describe the role that computer programs, procedures and documentation play in a computer system. Software is computer programs and associated documentation such as requirements, design models and user manuals.


What is Software Engineering
Software engineering is an engineering discipline whose focus is the cost effective development of high-quality software system. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting.


Software Engineering
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).”


What is the difference between software engineering and computer science?
Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.


What is the difference between software engineering and system engineering?
System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process concerned with developing the software infrastructure, control, applications and databases in the system.

What are the Attributes of good Software
Maintainability Dependability Efficiency Usability


What is CASE
The acronym CASE stands for ComputerAided Software Engineering. Software system which are intended to provide automated support for software process activities.

Software Engineering & Process Models


Product & Process
Product : What is delivered to the customer

Process : Collection of activities that lead to a product

Evolving Role of Software
Early Years
Batch orientation Custom software

Fourth Era
Desktop systems Object Oriented Technologies Expert Systems AI, neural networks Parallel computing Network computers0,

Second Era
Multi-user, Real-time Database Product software

Third Era
Distributed systems Low cost hardware


S/W Characteristics
S/W is developed or engineered, it is not developed in the classical sense S/W doesn’t wear out Although industry is moving towards component based assembly, most S/W continue to be custom built


S/W Applications
System Software Real-Time Software Business Software Engineering & Scientific Software Embedded Software Personal Computer Software Web Based Software AI Software


Software Myths − Managers
We have standards and procedures for building software, so developers have everything they need to know. We have state-of-the-art software development tools; after all, we buy the latest computers. If we’re behind schedule, we can add more programmers to catch up. A good manger can manage any project.


Software Myths − Client
A general statement of objectives is sufficient to begin writing programs − we can fill in the details later. Requirement changes are easy to accommodate because software is flexible. I know what my problem is, therefore I know how to solve it.


Software Myths − Practitioner
If I miss something now, I can fix it later. Once the program is written and running, my job is done. Until a program is running, there’s no way of assessing its quality. The only deliverable for a software project is a working program.


Software Engineering
Layered Technology
Key Process Areas
Tools Methods Process Quality
[Pressman 97]


Generic View of S/W Engg.
Definition Phase(WHAT)
System/Information Engineering Software Project planning Requirement Analysis

Development Phase(HOW)
Software design Code Generation Software testing

Support Phase
Correction Adaptation Enhancement Prevention

Capability Maturity Model
Developed by SEI Five Process Maturity Levels
Level Level Level Level Level Level 0: 1: 2: 3: 4: 5: Chaos Initial Repeatable Defined Managed Optimizing

S/W process – Activity Model
In a S/W development process context, Process is defined as an ordered set of activities that, after completed, result in a S/W product
Input Entry Conditions Activity Implementation Conditions Output Exit Conditions

Process Principles
Prescribes all major activities Uses resources, within a set of constraints, to produce intermediate and final products May be composed of sub-processes Each activity has entry and exit criteria Activities are organized in a sequence Has a set of guiding principles to explain goals Constraints may apply to activity, resource or product


Steps : S/W Dev.Process
Identify the S/W model Identify the activities Identify the relationship among activities Document other useful information on each activity Document how to tailor the process Document how to improve the process Obtain the buy-in of the process Continually use & improve the process
Software Engineering & Process Models 28

S/W Process Model
Problem Definition Status Quo Solution Integration Technical Development

Software Engineering & Process Models


Sign up to vote on this title
UsefulNot useful