Professional Documents
Culture Documents
Software Engineering in Brief For The Beginners
Software Engineering in Brief For The Beginners
A Study Note on
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 |2
Chapter 1: Introduction
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.
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
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.
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 errors
Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
Page |6
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.
Prepared by: Md. Shoaib Ahmed , PGD in IT, 3rd batch, IICT, SUST
E-mail: shoaib1971@outlook.com WWW. Facebook.com/Shoaib Ahmed
Page |7
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.
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
Term Test Q.3.a) Write the advantages and disadvantages of incremental model.
Ans:
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.
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
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.
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
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
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