Professional Documents
Culture Documents
Syllabus:
• Introduction: What is software engineering? Software Development Life Cycle,
Requirements Analysis, Software Design, Coding, Testing, Maintenance etc.
• Software Requirements: Functional and Non-functional requirements, User
Requirements, System Requirements, Interface Specification, Documentation of the
software requirements.
• Software Processes: Process and Project, Component Software Processes.
• Software Development Process Models. • Waterfall Model. • Prototyping. • Iterative
Development. • Rational Unified Process. • The RAD Model • Time boxing Model.
• Agile software development: Agile methods, Plan-driven and agile development, Extreme
programming, Agile project management, Scaling agile methods.
•
References: Ian Somerville book
Compiled bY Ms.Crimita Almeida
TOPIC-01
Software Engineering
Introduction: What is software engineering? Software Development Life
Cycle, Requirements Analysis, Software Design, Coding, Testing,
Maintenance etc
• Common Issues:-
• The final Software doesn ́t fulfill the needs of the customer.
• Hard to extend and improve: if you want to add a functionality later is
mission impossible.
• Bad documentation.
• Bad quality: frequent errors, hard to use, ...
• More time and costs than expected
• What is it?
• The study and application of methodologies to develop quality software that
fulfillcustomer needs.
• Objective
• To produce software that is:
• • On time: is deliver at the established date.
• • Reliable: doesn ́t crash.
• • Complete: good documentation, fulfill customer needs.
Software products which were developed with the target to sell them to
customer eligible to buy with no customization for any specific customer are
called generic software products.
Customized software can be developed from scratch such as gathering all the
requirements from the customer, analyzing and developing using various
software development process models or it can also be that a software
product already exists and it will modified as per the requirements of the
customer.
Stages for software development
.
Usability/Learnability: The amount of efforts or time required to learn how
to use the software should be less. This makes the software user-friendly
even for IT-illiterate people.
Integrity : Just like medicines have side-effects, in the same way a software
may have a side-effect i.e. it may affect the working of another application.
But a quality software should not have side effects
Interoperability : Interoperability is the ability of software to exchange
information with other applications and make use of information
transparently.
Reusability : If we are able to use the software code with some
modifications for different purpose then we call software to be reusable.
Portability : The ability of software to perform same functions across all
environments and platforms, demonstrate its portability
Extensibility : It should be easy to increase the functions performed by it.
Scalability : It should be very easy to upgrade it for more work(or for more
number of users).
• A software product can be judged by what it offers and how well it
can be used. This software must satisfy on the following grounds:
• Operational
• Transitional
• Maintenance
Maintenance
• This aspect briefs about how well a software has the capabilities to maintain itself in
the
• ever-changing environment:
• Modularity
• Maintainability
• Flexibility
• Scalability Compiled bY Ms.Crimita Almeida
Software engineering-A layered technology
Software development is totally a layered technology. That means, to develop
software one will have to go from one layer to another. The layers are related
and each layer demands the fulfillment of the previous layer.
Quality Focus:
Quality of the software is the backbone of the product and must meet
customer specification. Quality can be defined as conformance to
requirements that focuses on the continual and continuous improvement
process which would satisfy the customer.
Tools:
Pre- and post-conditions, which are statements that are true before and after
a process activity has been enacted or a product produced.
Process and Project
• A process is a sequence of steps performed for a given purpose
• project its development process plays a key role—it is by following
the process the desired end goal of delivering the software is
achieved.
• A process is often specified at a high level as a sequence of stages.
The sequence of steps for a stage is the process for that stage, and is
often referred to as a sub-process of the process.
This model also requires that the time duration of each stage is approximately equal so that
pipelining concept is employed to have the reduction in development time and product releases.
There is a dedicated team for each stage so that the work can be done in pipelining.
Thus, stages should be chosen in such a way that each stage perform some logical unit of work
that becomes the input for next stage.
Advantages
1. Speeds up the development process and shortens the delivery
time
2. Well suited to develop projects with a number of features in short
time period.
Disadvantages
3. Project management becomes more complex.
4. Not suited to projects in which entire development work cannot be
divided into multiple iterations of almost, equal duration.
Process activities
The four basic process activities of
1.specification
2.development
3.validation
4.evolution
are organized differently in different development processes.
Software specification
The process of establishing what services are required and the constraints on
the system’s operation and development.
Requirements engineering process
Feasibility study • Is it technically and financially feasible to build the
system?
Requirements elicitation and analysis • What do the system stakeholders
require or expect from the system?
Requirements specification • Defining the requirements in detail
Requirements validation • Checking the validity of the requirements
Requirement engineering process
Software design and implementation
The process of converting the system specification into an executable
system.
Design is about how to build a system.
Software design Design a software structure that realises the
specification;
Implementation Translate this structure into an executable program;
The activities of design and implementation are closely related and may be
inter-leaved.
General model of design process
Design activities
Architectural design, where you identify the overall structure of the system,
the principal components (sometimes called sub-systems or modules), their
relationships and how they are distributed.
Interface design, where you define the interfaces between system
components.
Component design, where you take each system component and design how
it will operate.
Database design, where you design the system data structures and how
these are to be represented in a database.
Software validation
Verification and validation (V & V) is intended to show that a system
conforms to its specification and meets the requirements of the system
customer.
System testing involves executing the system with test cases that are derived
from the specification of the real data to be processed by the system.
Testing is the most commonly used V & V activity.
Stages of testing
Development or component testing Individual components are tested
independently;
System testing Testing of the system as a whole.
Acceptance testing Testing with customer data to check that the system
meets the customer’s needs.
Software evolution
Software is inherently flexible and can change.
As requirements change through changing business circumstances, the
software that supports the business must also evolve and change