0% found this document useful (0 votes)
33 views

Software Engineering-L2

The document discusses software engineering concepts including: 1. The attributes of good software such as maintainability, dependability, and efficiency. 2. The typical stages of the software lifecycle including requirements, design, construction, testing, deployment, and maintenance. 3. Common software process models used for development like the waterfall model which involves sequential phases from requirements to maintenance.

Uploaded by

Rosemary Odor
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

Software Engineering-L2

The document discusses software engineering concepts including: 1. The attributes of good software such as maintainability, dependability, and efficiency. 2. The typical stages of the software lifecycle including requirements, design, construction, testing, deployment, and maintenance. 3. Common software process models used for development like the waterfall model which involves sequential phases from requirements to maintenance.

Uploaded by

Rosemary Odor
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Software Engineering - Lecture2

The Attributes of Good Software:


As well as the service, which they provide, software products have a number
of other associated attributes, which reflect the quality of that software. These
attributes are not directly concerned with what the software dose, rather they
reflect its behavior which it is executing and the structure and organization of the
source program and associated documentation. Examples of these attributes (some
time called non-functional attributes) are the software’s response time to use query
and the understandability of the program code. The specific set of attributes which
you might expect from a software system obviously depends on its application.
Therefore, a banking system must be secure, on interactive game must be
responsive, a telephone switching system must be reliable, etc. these can be
generated in the following attributes:
1. Maintainability: software should be written in such a way that it may
evolve to meet the changing needs of customer. This is critical attribute
because software change is an inevitable
2. Dependability: software dependability has a range of characteristics,
including reliability, security and safety. Dependable software should not
cause physical or economic damage in the event of system failure.
3. Efficiency: software should not make wasteful use of system resources, such
as memory and processor cycles. Therefore, efficiency includes
responsiveness, processing time, memory utilization etc…
4. Usability: software must be usable, without under effort by the type of user
for whom it is designed. This means that it should have an appropriate user
interface and adequate documentation.

7
Software Engineering - Lecture2

Software Lifecycle:
Each software product proceeds to a number of distinct stages, these are:
 Requirements engineering
 Software design
 Software construction
 Validation and verification
 Software testing
 Software deployment
 Software maintenance
Depending the software process used for the development of the software product,
these stages may occur in different orders, or frequency.

Software Process Models:


There are various software development approaches defined and designed which
are used/employed during development process of software, these approaches are also
referred as "Software Development Process Models". Each process model follows a
particular life cycle in order to ensure success in process of software development.

The Waterfall Model:


One such approach/process used in Software Development is "The Waterfall
Model". Waterfall approach was first Process Model to be introduced and followed
widely in Software Engineering to ensure success of the project. In "The Waterfall"
approach,

8
Software Engineering - Lecture2

The waterfall model, sometimes called the classic life cycle, suggests a
systematic, sequential approach to software development that begins with customer
specification of requirements and progresses through planning, modeling,
construction, and deployment, culminating in ongoing support of the completed
software.
the whole process of software development is divided into separate process phases,
these are:
1) Requirement Specifications (analysis and definition).
2) Software Design.
3) Implementation.
4) Testing.
5) Maintenance.
All these phases are cascaded to each other so that second phase is started as and when
defined set of goals are achieved for first phase and it is signed off, so the name
"Waterfall Model".
1. Requirement Analysis & Definition: All possible requirements of the system to
be developed are captured in this phase. Requirements are set of functionalities
and constraints that the end-user (who will be using the system) expects from the
system. The requirements are gathered from the end-user by consultation, these
requirements are analyzed for their validity and the possibility of incorporating
the requirements in the system to be development is also studied. Finally, a
Requirement Specification document is created which serves the purpose of
guideline for the next phase of the model.
2. System & Software Design: Before a starting for actual coding, it is highly
important to understand what we are going to create and what it should look like?
The requirement specifications from first phase are studied in this phase and
system design is prepared. System Design helps in specifying hardware and
9
Software Engineering - Lecture2

system requirements and also helps in defining overall system architecture.


The system design specifications serve as input for the next phase of the
model.
3. Implementation & Unit Testing: On receiving system design documents, the
work is divided in modules/units and actual coding is started. The system is first
developed in small programs called units, which are integrated in the next phase.
Each unit is developed and tested for its functionality; this is referred to as Unit
Testing. Unit testing mainly verifies if the modules/units meet their
specifications.
4. Integration & System Testing: As specified above, the system is first divided in
units which are developed and tested for their functionalities. These units are
integrated into a complete system during Integration phase and tested to check if
all modules/units coordinate between each other and the system as a whole
behaves as per the specifications. After successfully testing the software, it is
delivered to the customer.
5. Maintenance: Generally, problems with the system developed (which are not
found during the development life cycle) come up after its practical use starts, so
the issues related to the system are solved after deployment of the system. Not all
the problems come in picture directly but they arise time to time and needs to be
solved; hence this process is referred as Maintenance.
There are some disadvantages of the Waterfall Model, these are:
1. As it is very important to gather all possible requirements during the
Requirement Gathering and Analysis phase in order to properly design the
system, not all requirements are received at once, the requirements from
customer goes on getting added to the list even after the end of "Requirement
Gathering and Analysis" phase, this affects the system development process and
its success in negative aspects.
10
Software Engineering - Lecture2

2. The problems with one phase are never solved completely during that phase and
in fact many problems regarding a particular phase arise after the phase is
signed off, this results in badly structured system as not all the problems (related
to a phase) are solved during the same phase.
3. The project is not partitioned in phases in flexible way.
4. As the requirements of the customer goes on getting added to the list, not all the
requirements are fulfilled, this results in development of almost unusable
system. These requirements are then met in newer version of the system; this
increases the cost of system development. Figure (1.5) shows the flow diagram
of the waterfall model.

Fig (1.5) waterfall model

11

You might also like