Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

Page |1

A Study Note on

Software Engineering

Course Name: Software Engineering


Course code: PGD 311

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
Page |2

Chapter 1: Introduction

What is Computer Software?

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
Page |3

Computer software is a complete package, which includes software program, its documentation and user
guide on how to use the software.
Software is that part of a computer system that consists of encoded information or computer instruction.

What is engineering?
Engineering on the other hand, is all about developing products, using well-defined, scientific principles
and methods.

Term Test Q.1.a) What is software engineering?


Simple: Software engineering is an engineering branch associated with software system development.
Software engineering (SWE) is the application of engineering to the design, development,
implementation, testing and maintenance of software in a systematic method. Software engineering is a
field of engineering, for designing and writing programs for computers or other electronic devices. A
software engineer, or programmer, writes software (or changes existing software) and compiles
software using methods that make it better quality. Better quality software is easier to use, and the
code is easier to understand, to maintain, and to add new features.

Types of Software
Generic products
Stand-alone systems that are marketed and sold to any customer who wishes to buy them.
The specification of what the software should do is owned by the software developer and decisions on
software change are made by the developer.
Examples – PC software such as graphics programs, project management tools; CAD software; software
for specific markets such as appointments systems for dentists.
Customized or bespoke products
Software that is commissioned by a specific customer to meet their own needs.
The specification of what the software should do is owned by the customer for the software and they
make decisions on software changes that are required.
Examples – embedded control systems, air traffic control software, traffic monitoring systems.

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
Page |4

Term Test Q.1.a) Write down the steps in creating software.

Steps in creating software


•Requirement - say what the software should do.
•Software design - is usually done on paper. It says what the different parts of the software are, and how
they talk to each other.
•Coding - Code is what tells the computer exactly what to do at each step.
•Testing - Testing is done to see if the components meet the requirements and that the system as a
whole meets the requirements.
•Bug fixed or new requirement are needed –
Part or all of this process can repeat if bugs are found or new requirements are needed.
•Maintenance

Term Test Q.1.b) Describe the essential attributes of good software.

1) Maintainability
Software should be written in such a way so that it can evolve to meet the changing needs of customers.
2) Dependability and security
Software dependability includes a range of characteristics including reliability, security, and safety.
Dependable software should not cause physical or economic damage in the event of system failure.
Malicious users should not be able to access or damage the system.
3) Efficiency
Software should not make wasteful use of system resources such as memory and processor cycles.
Efficiency therefore includes responsiveness, processing time, memory utilization, etc.
4) Acceptability
Software must be acceptable to the type of users for which it is designed. This means that it must be
understandable, usable, and compatible with other systems that they use.

Why is Software Engineering important?


•Complex systems need a disciplined approach for designing, developing and managing them.
• Should have balance of the TCQ
• If time minimum then Quality/cost will be considered

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
Page |5

Software Engineering vs. Computer Science

Software Development Crises


•Late:
To deliver lately due some reason
•Over Budget:
Hidden, cost added
•Difficult to maintain:
Not included the cost after deliver.
•Performed poorly:
Performance not up-to- mark or as per requirement
•Unreliable:
Not working properly or not given proper output

Software errors

•Errors in computer software can have devastating effects.


•2009 3rd October – London
Example: In London, there was hours of flight delay due to the monitor/system glitch issue.
•Ariane 5 explosion
- European space agency spent 10 years and $7 to product Ariane.
- Crash after 36.7 seconds

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
Page |6

Chapter 2: Software Processes

Software process model:


The systematic approach that is used in software engineering is sometimes called a software
process. A software process is a sequence of activities that leads to the production of a
software product.

Q. What are the four fundamental activities that are common to all software processes?

There are four fundamental activities that are common to all software processes. These
activities are:
1. Software specification, where customers and engineers define the software that is to be
produced and the constraints on its operation.
2. Software development, where the software is designed and programmed.
3. Software validation, where the software is checked to ensure that it is what the customer
requires.
4. Software evolution, where the software is modified to reflect changing customer and market
requirements.

Term Test Q.2.a) Describe waterfall model in software engineering.

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
Page |7

Figure: The waterfall model

Advantages:
1. Easy to understand and implement.
2. Widely used and known (in theory!).
3. Reinforces good habits: define-before- design, design-before-code.
4. Identifies deliverables and milestones.
5. Document driven, URD, SRD, etc. Published documentation standards, e.g. PSS-05.
6. Works well on mature products and weak teams.
Disadvantages:
1. Idealized, doesn’t match reality well.
2. Doesn’t reflect iterative nature of exploratory development.
3. Unrealistic to expect accurate requirements so early in project.
4. Software is delivered late in project, delays discovery of serious errors.
5. Difficult to integrate risk management.
6. Difficult and expensive to make changes to documents, “swimming upstream”.
7. Significant administrative overhead, costly for small teams and projects

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
Page |8

Term Test Q.2.b) Draw the diagram of a general model of design process.

Figure: A general model of design process

Incremental Development Process

Incremental development
This approach interleaves the activities of specification, development, and validation. The system is
developed as a series of versions (increments), with each version adding functionality to the previous
version.

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
Page |9

Figure: Incremental Development

Term Test Q.3.a) Write the advantages and disadvantages of incremental model.

Ans:

Advantages of Incremental model:

 Generates working software quickly and early during the software life cycle.
 This model is more flexible – less costly to change scope and requirements.
 It is easier to test and debug during a smaller iteration.
 In this model customer can respond to each built.
 Lowers initial delivery cost.
 Easier to manage risk because risky pieces are identified and handled during it’d iteration.

Disadvantages of Incremental model:

 Needs good planning and design.


 Needs a clear and complete definition of the whole system before it can be broken down and
built incrementally.
 Total cost is higher than waterfall.

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
P a g e | 10

Or Ans:

Advantages
Incremental development has three important benefits, compared to the waterfall model:
1. The cost of accommodating changing customer requirements is reduced. The amount of analysis and
documentation that has to be redone is much less than is required with the waterfall model.
2. It is easier to get customer feedback on the development work that has been done. Customers can
comment on demonstrations of the software and see how much has been implemented. Customers find
it difficult to judge progress from software design documents.
3. More rapid delivery and deployment of useful software to the customer is possible, even if all of the
functionality has not been included. Customers are able to use and gain value from the software earlier
than is possible with a waterfall process.
Disadvantages
From a management perspective, the incremental approach has two problems:
1. The process is not visible. Managers need regular deliverables to measure progress. If systems are developed
quickly, it is not cost-effective to produce documents that reflect every version of the system.
2. System structure tends to degrade as new increments are added. Unless time and money is spent on refactoring
to improve the software, regular change tends to corrupt its structure. Incorporating further software changes
becomes increasingly difficult and costly.
The problems of incremental development become particularly acute for large, complex, long-lifetime systems,
where different teams develop different parts of the system. Large systems need a stable framework or
architecture and the responsibilities of the different teams working on parts of the system need to be clearly
defined with respect to that architecture.

Term Test Q.3.b) what is Reuse oriented software engineering? Explain the model.
The reuse-oriented model, also called reuse-oriented development (ROD), is a method of software
development in which a program is refined by producing a sequence of prototypes called models, each
of which is automatically derived from the preceding one according to a sequence of defined rules.

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
P a g e | 11

Pros

 Increased reliability
 Fewer development risks
 Capitalize on expert skills
 Adopt standards
 Decrease development time

Cons

 Application maintenance
 Long term reused code maintenance
 Tool support
 Not invented here syndrome
 Searching, evaluating, and adopting reused code

What is prototype? Draw the process of prototype development.

A prototype is an initial version of a software system that is used to demonstrate concepts, try out
design options, and find out more about the problem and its possible solutions.
A software prototype can be used in a software development process to help anticipate changes that
may be required:
1. In the requirements engineering process, a prototype can help with the elicitation and validation of
system requirements.
2. In the system design process, a prototype can be used to explore particular software solutions and to
support user interface design.

Figure: the process of prototype development

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
P a g e | 12

Draw the testing phase in a plan driven software process.

Figure: the testing phase in a plan driven software process

Describe Boehm’s spiral model.

The spiral model is similar to the incremental model, with more emphases placed on risk analysis. The
spiral model has four phases: Planning, Risk Analysis, Engineering and
Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this
model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is
assessed. Each subsequent spiral builds on the baseline spiral. Requirements are gathered during the
planning phase. In the risk analysis phase, a process is undertaken to identify risk and alternate
solutions. A prototype is produced at the end of the risk analysis phase. Software is produced in the
engineering phase, along with testing at the end of the phase. The evaluation phase allows the customer
to evaluate the output of the project to date before the project continues to the next spiral.
In the spiral model, the angular component represents progress, and the radius of the spiral represents
cost.

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
P a g e | 13

Figure: Boehm’s spiral model.

Advantages
1. High amount of risk analysis.
2. Good for large and mission-critical projects.
3. Software is produced early in the software life cycle.
Disadvantages
1. Can be a costly model to use.
2. Risk analysis requires highly specific expertise.
3. Project’s success is highly dependent on the risk analysis phase.
4. Doesn’t work well for smaller projects

Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed

You might also like