Lecture No.
01
What is Software?
Engineering:
“The process of productive use of scientific knowledge is called engineering
Why is it important?
-making
nd engineering problem solving
Games
Software Engineering as defined by IEEE (International institute of Electric and Electronic Engineering)
“All aspects of software production’ Software engineering is not just concerned with the technical
processes of software development but also with activities such as software project management and
with the development of tools, methods and theories to support software production”.
Software Engineering:
Software Engineering is the set of processes and tools to develop software
Software Engineering encompasses:
Well-Engineered Software
-interface
-effective
well-engineered software has the following characteristics.
-friendly
-effective
The Balancing Act!
It may be the case that if you try to make it more user-friendly then the efficiency may
suffer. And if you try to make it more cost-effective then reliability may suffer. Therefore
there may be tension among the following:
-interface
Law of diminishing returns
It is a phenomenon that occurs when more and more units of a changing input are to be used.
e.g if we keep adding sugar it will no longer dissolve in it
Software Background
Caper Jones:
1. practitioner and researcher in the filed of Software Engineering
2. divided software related activities into about 25 different categories
3. They have analyzed around 10000 software projects to come up with such categorization
nine of them that are listed below:
Project Management
Requirement Engineering
Design
Coding
Testing
Software Quality Assurance
Software Configuration Management
Software Integration and
Rest of the activities
Pov: coding is very important but it is not more than 13-14% of the whole effort of software
development.
Fred Brook
is a renowned software engineer;
book named “A Mythical Man Month”
He combined all his articles in this book.
“No Silver Bullet”
Software Engineering is nothing but a disciplined and systematic approach to software development
Lecture No. 02
Software Development
Divided into two:
1.Construction
The construction activities are those that directly related to the development of software,
Some of the major construction activities are listed below.
2.Management
Management activities are kind of umbrella activities that are used to smoothly and
successfully perform the construction activities
Some of the major management activities are listed below.
ng and Management
A Software Engineering Framework
The major components of this framework are described below.
Quality Focus
Processes
Methods
Tools
Software Development Loop
Software development activities could be performed in a cyclic and that cycle is called software
development loop .The major stages of software development
loop are described below.
1. Problem Definition
2. Technical Development
3. Solution Integration
4. Status Quo: when we actually deployed the new system at the user site then that situation is called
status quo
Software Engineering Phases
There are four basic phases of software development that are shown in Figure 4.
Vision
Definition
Development
Maintenance
Lecture No. 3
Software Requirements Definitions
1. Jones defines software requirements as a statement of needs by a user that triggers the
development of a program or system.
2. Alan Davis defines software requirements as a user need or necessary feature, function,
or attribute of a system that can be sensed from a position external to that system.
IEEE defines software requirements is:
1. A condition or capability needed by user to solve a problem or achieve an objective
3. A documented representation of a condition or capability
Lecture No. 4
Some Risks from Inadequate Requirement Process
Following is a list of some of the risks of adopting an inadequate requirement process:
1. Insufficient user involvement leads to unacceptable products.
2. Creeping user requirements contribute to overruns and degrade product quality.
It basically means identifying and adding new requirements to the list at some
advanced stages of the software development process
3. Ambiguous requirements lead to ill-spent time and rework
Ambiguity means that two different readers of the same document interpret the requirement
differently.
4. Gold-plating by developers and users adds unnecessary features
Describres how much we made our product perfect and nice
5. Minimal specifications lead to missing key requirements and hence result in an unacceptable
product.
6. Incompletely defined requirements make accurate project planning and tracking impossible.
Levels of Software Requirements
Let us now look at the following set of requirement statements for another system:
1. Business Requirements:
2. User requirements
3. Functional Requirements:
4. Non-Functional Requirements
Stakeholders
A stakeholder is a person or group who has a vested interest in a company and can either affect
or be affected by its operations and performance
Requirement Statement Characteristics
A good Requirements statement document must possess the following characteristics.
Requirement Specification Characteristics
Complete
Consistent
Modifiable
Traceable
Mixed level of Abstraction
It is important to recognize that all requirements in a requirement document are stated at a uniform
level of abstraction.
Lecture No. 5
Relationship of Several components of Software Requirement