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

Software Engineering

Prof. Marvin R. Arenas, MIT


Topics:
• Software Development
• Eight Principles of Software
Engineering
What is Software?
- Many people equate the term software with
computer programs. In fact, this is to restrictive a
view. Software is not just the programs but also all
associated documentation and configuration data
which is needed to make those programs operate
correctly. A software system usually consists of
number of separate programs, configuration files
which are used to set up these programs, system
documentation which describes the structure of the
system and user documentation which explains
how to use the system and, for software products,
web sites for
users to download recent product information.
Software engineers are concerned with
developing software products, software which can
be sold to a customer.

2 TYPES OF SOFTWARE PRODUCT


1. Generic Products
These are stand- alone systems which are
produced by a development organization and sold
on the open market to any customer who is able to
buy them. Sometimes they are referred to as
shrink-wrapped software.
Examples of this type of product are:
databases, word processors, drawing packages
and project management tools.

2. Bespoke or Customized Products


These are systems which are commissioned by a
particular customer. The software is developed
especially for that customer by a software
contractor.
Examples of this type of software include:
control systems for electronic devices, systems
written to support a particular business process and
air traffic control systems.

An important difference between these different


types of software is that, in generic products, the
organization which develops the software controls
the software specification.
For custom products, the specification is usually
developed and controlled by the organization on
that is buying the software.
The software developers must work to that
specification.

What is Software Process?


A software process is a set of activities and
associated results which produce a software
product . These activities are mostly carried out by
software engineers. There are four fundamental
process activities which are common to all
software processes.
These activities are:

1. Software Specification
- the functionality of the software and constraints
on it’s operation must be defined.

2. Software Development
- the software to meet the specification must be
produced.
3. Software Validation
- the software must be validated to ensure that it
does what the costumer wants.

4. Software Evolution
- the software must be evolve to meet changing
costumer needs.
What is Software Process Model?
- A software process model is a simplified
description of a software process which presented
from a particular perspective.
Some examples of the types of software process
model which may be produced are:

1. A workflow model
- This shows the sequence of the activities in the
process along with their inputs, outputs and
dependencies. The activities in this model
represent human actions.
2. A data-flow or activity model
- This represents the process as a set of activities
each of which carries out some data
transformation. It shows how the input to the
process such as specification is transformed to an
output such as a design. The activities here may be
at a lower level than activities in a workflow
model. They may represent transportation carried
out by the people or by computers.
3. A role/action model
- This represents the roles of the people involved
in the software process and the activities for which
they are responsible.
There are a number of different general models
or paradigms of software development:

1. The Waterfall Approach


- This represents the activities as separate
process design, implementation, testing, and so
on. After each stage is defined in it’s ‘signed
off’ and development goes on the following
stage.
2. Evolutionary Development
- This approach interleaves the activities of
specification, development and validation.
- An initial system is rapidly developed from
very abstract specifications. This is then refined
with costumer input to produce a system which
satisfies the costumers needs. The system may
be then delivered. Alternatively, it may be re-
implemented using a more structured approach
to produce a more robust and maintainable
system.
3. Formal Transformation
- This approach is based on producing formal
mathematical system specification and
transforming this specification using mathematical
methods, to a program.
These transformation are ‘correctness-
preserving’. This means that you can be sure that
the developed program meets its specification.
4. System assembly from reusable components
- This techniques assumes that parts of the
system already exist.
- The system development process focuses on
integrating these parts rather than developing them
from scratch.
What are the attributes of a good software?

- 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 does. Rather, they reflect its
behaviour while it is executing and the structure
and organization of the source program and
associated documentation.
Examples of these attributes (sometimes called
non-functional attributes) are the software’s
response time to a user query and the
understandability of the program code.
1. Correctness
The software which we are making should
meet all the specifications stated by the
customer.
2. 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.
3. 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.
4. Reliability
The software product should not have any
defects. Not only this, it shouldn't fail while
execution.
5. Efficiency
This characteristic relates to the way software
uses the available resources. The software
should make effective use of the storage space
and execute command as per desired timing
requirements.
6. Security
With the increase in security threats
nowadays, this factor is gaining importance.
The software shouldn't have ill effects on data /
hardware. Proper measures should be taken to
keep data secure from external threats.
7. Safety
The software should not be hazardous to the
environment/life.
8. Maintainability
Maintenance of the software should be easy
for any kind of user.
9. Flexibility
Changes in the software should be easy to
make.
10. Extensibility
It should be easy to increase the functions
performed by it.
11. Scalability
It should be very easy to upgrade it for more
work(or for more number of users).

12. Testability
Testing the software should be easy.
13. Modularity
Any software is said to made of units and
modules which are independent of each other.
These modules are then integrated to make the
final software. If the software is divided into
separate independent parts that can be modified,
tested separately, it has high modularity.
14. Interoperability
Interoperability is the ability of software to
exchange information with other applications
and make use of information transparently.

15. Reusability
If we are able to use the software code with
some modifications for different purpose then
we call software to be reusable.
16. Portability
The ability of software to perform same
functions across all environments and platforms,
demonstrate its portability.
Eight Principles of Software Engineering
- Software engineers are those who contribute
by direct participation or by teaching to the
analysis, specification, design, development,
certification, maintenance and testing of
software systems. Because of their roles in
developing software systems, software
engineers have significant opportunities to do
good or cause harm, to enable others to do good
or cause harm, or to influence others to do good
or cause harm.
To ensure, as much as possible, that their
efforts will be used for good software engineers
must commit themselves to making software
engineering a beneficial and respected
profession. In accordance with that
commitment, software engineers shall adhere to
the following Code of Ethics and Professional
Practice.
Eight Principles of Software Engineering

1. PUBLIC
- Software engineers shall act consistently
with the public interest.

2. CLIENT AND EMPLOYER


- Software engineers shall act in a manner that
is in the best interest of their client and
employer consistent with the public interest.
3. PRODUCTS
- Software engineers shall ensure that their
products and related modifications meet the
highest professional standards possible.
4. JUDGEMENT
- Software engineers shall maintain integrity
and independence in their professional
judgement.
5. MANAGEMENT
- Software engineering managers and leaders
shall subscribe to and promote an ethical
approach to the management of software
development and maintenance.

6. PROFESSION
- Software engineers shall advance the
integrity and reputation of the profession
consistent with the public interest.
7. COLLEAGUES
- Software engineers shall be fair to and
supportive at their colleagues.

8. SELF
- Software engineers shall participate in
lifelong learning regarding the practice of their
profession and shall promote an ethical
approach to the practice of the profession.
Meaning of "I-E-E-E"

- IEEE, pronounced "Eye-triple-E", stands for


the Institute of Electrical and Electronics
Engineers. The association is chartered under
this name and it is the full legal name.

- However, as the world's largest technical


professional association, IEEE's membership
has long been composed of engineers,
scientists, and allied professionals.
These include computer scientists, software
developers, information technology
professionals, physicists, medical doctors, and
many others in addition to our electrical and
electronics engineering core.

For this reason the organization no longer goes by


the full name, except on legal business
documents, and is referred to simply as IEEE.
The Institute of Electrical and Electronics
Engineers, Inc. (IEEE) is the world's largest
technical professional association with more
than 350,000 members in 150 countries. It is a
non-profit organization that is dedicated to
advancing the theory and application of
electrical and electronics engineering and
computer science.
- IEEE is an association dedicated to
advancing innovation and
technological excellence for the benefit of
humanity, is the world’s largest technical
- IEEE’s roots, however, go back to 1884
when electricity was just beginning to
become a major force in society. There was
one major established electrical industry,
the telegraph, which—beginning in the
1840s—had come to connect the world
with a communications system faster than
the speed of transportation.
A second major area had only barely
gotten underway—electric power and light,
originating in Thomas Edison’s inventions
The Institute of Electrical and Electronics
Engineers Standards Association (IEEE-SA)
is an organization within IEEE that develops
global standards in a broad range of industries,
including: power and energy, biomedical and he
alth care, information
technology, telecommunication, transportation,
nanotechnology, information assurance, and
many more.
IEEE-SA has developed standards for over a
century, through a program that offers balance,
openness, fair procedures, and consensus.
Technical experts from all over the world
participate in the development of IEEE standards.
IEEE-SA is not a body formally authorized by
any government, but rather a community. Formally
recognized international standards organizations
(ISO, IEC, ITU, CEN) are federations of national
standards bodies (American ANSI, German DIN,
Japanese JISC, etc.)
Standards and the IEEE Standards
Development Process
Each year, the IEEE-SA conducts over 200
standards ballots, a process by which proposed
standards are voted upon for technical reliability
and soundness.
In 2005, IEEE had close to 900 active standards,
with 500 standards under development. One of the
more notable are the IEEE 802 LAN/MAN group
of standards, with the widely used computer
networking standards for both wired (ethernet) and
wireless (IEEE 802.11) networks.
The IEEE standards development process can
be broken down into seven basic steps:

1. Securing Sponsorship: An IEEE-approved


organization must sponsor a standard. A
sponsoring organization is in charge of
coordinating and supervising the standard
development from inception to completion. The
professional societies within IEEE serve as the
natural sponsor for many standards.
2. Requesting Project Authorization: To gain
authorization for the standard a Project
Authorization Request (PAR) is submitted to the
IEEE-SA Standards Board. The New Standards
Committee (NesCom) of the IEEE-SA Standards
Board reviews the PAR and makes a
recommendation to the Standards Board about
whether to approve the PAR.
3. Assembling a Working Group: After the PAR
is approved, a working group of individuals
affected by, or interested in, the standard is
organized to develop the standard. IEEE-SA rules
ensure that all Working Group meetings are open
and that anyone has the right to attend and
contribute to the meetings.
4. Drafting the Standard: The Working Group
prepares a draft of the proposed standard.
Generally, the draft follows the IEEE Standards
Style Manual that sets guidelines for the clauses
and format of the standards document.
5. Balloting: Once a draft of the standard is
finalized in the Working Group, the draft is
submitted for Balloting approval. The IEEE
Standards Department sends an invitation-to-ballot
to any individual who has expressed an interest in
the subject matter of the standard.
Anyone who responds positively to the
invitation-to-ballot becomes a member of the
balloting group, as long as the individual is an
IEEE Standards Association member or has paid a
balloting fee. The IEEE requires that a proposed
draft of the standard receive a response rate of
75% (i.e., at least 75% of potential ballots are
returned) and that, of the responding ballots, at
least 75% approve the proposed draft of the
standard. If the standard is not approved, the
process returns to the drafting of the standard step
in order to modify the standard document to gain
approval of the balloting group.
6. Review Committee: After getting 75%
approval, the draft standard, along with the
balloting comments, are submitted to the IEEE-SA
Standards Board Review Committee (RevCom).
The RevCom reviews the proposed draft of the
standard against the IEEE-SA Standards Board
Bylaws and the stipulations set forth in the IEEE-
SA Standards Board Operations Manual. The
RevCom then makes a recommendation about
whether to approve the submitted draft of the
standard document.
7. Final Vote: Each member of the IEEE-SA
Standards Board places a final vote on the
submitted standard document. In some cases
external members are invited to vote. It takes a
majority vote of the Standards Board to gain final
approval of the standard. In general, if the
RevCom recommends approval, the Standards
Board will vote to approve the standard.
What is ISO?
- ISO (International Organization for
Standardization) is the world’s largest developer of
voluntary International Standards. International
Standards give state of the art specifications for
products, services and good practice, helping to
make industry more efficient and effective.
Developed through global consensus, they help to
break down barriers to international trade.
History of ISO
The ISO story began in 1946 when delegates
from 25 countries met at the Institute of Civil
Engineers in London and decided to create a new
international organization ‘to facilitate the
international coordination and unification of
industrial standards’. In February 1947 the new
organization, ISO, officially began operations.
Since then, we have published over 19, 500
International Standards covering almost all
aspects of technology and manufacturing from
food safety to computers.
Today we have members from 163 countries and
3, 368 technical bodies to take care of standard
development. More than 150 people work full time
for ISO’s Central Secretariat in Geneva,
Switzerland.

Founders of ISO, London 1946


Why ISO is their name?
Because 'International Organization for
Standardization' would have different acronyms in
different languages (IOS in English, OIN in French
for Organisation internationale de normalisation),
our founders decided to give it the short form ISO.
ISO is derived from the Greek “isos”, meaning
equal. Whatever the country, whatever the
language, the short form of our name is always
ISO.
How they work?

ISO is an independent, non-governmental


organization made up of members from the
national standards bodies of 163 countries. We
have a Central Secretariat in Geneva, Switzerland,
that coordinates the system.
What they do?

ISO develops International Standards. They were


founded in 1947, and since then have published
more than 19, 500 International Standards
covering almost all aspects of technology and
business. From food safety to computers, and
agriculture to healthcare, ISO International
Standards impact all our lives.
Benefits of International Standards...

International Standards bring technological,


economic and societal benefits. They help to
harmonize technical specifications of products and
services making industry more efficient and
breaking down barriers to international trade.
Conformity to International Standards helps
reassure consumers that products are safe, efficient
and good for the environment.
1. For business:
International Standards are strategic tools and
guidelines to help companies tackle some of the
most demanding challenges of modern business.
They ensure that business operations are as
efficient as possible, increase productivity and help
companies access new markets.
Benefits include:
• Cost savings - International Standards help
optimize operations and therefore improve the
bottom line
• Enhanced customer satisfaction - International
Standards help improve quality, enhance
customer satisfaction and increase sales
• Access to new markets - International
Standards help prevent trade barriers and open
up global markets
• Increased market share - International
Standards help increase productivity and
competitive advantage
• Environmental benefits - International
Standards help reduce negative impacts on the
environment
2. For government

ISO standards draw on international expertise


and experience and are therefore a vital resource
for governments when developing regulations.

National governments can make ISO standards a


regulatory requirement (remember ISO standards
themselves are voluntary). This has a number of
benefits:
• Expert opinion - ISO standards are developed by
experts. By integrating an ISO standard into
national regulation, governments can benefit from
the opinion of experts without having to call on
their services directly.
• Opening up world trade - ISO standards are
international and adopted by many governments.
By integrating ISO standards into national
regulation, governments help to ensure that
requirements for imports and exports are the same
the world over, therefore facilitating the movement
of goods, services and technologies from country
to country.
1. For Society
When products and services conform to
International Standards consumers can have
confidence that they are safe, reliable and of
good quality. For example, ISO's standards on
road safety, toy safety and secure medical
packaging are just a selection of those that help
make the world a safer place.
To make sure that the benefits of ISO International
Standards are as broad as possible, ISO
supports the involvement of consumers in
standard development work with its Committee
on Consumer Policy (COPOLCO).
What is ISO 9126?
ISO 9126 is a quality software testing tool that can
assess the performance of any software products and
platform.
Product quality was an international standard for the
evaluation of software quality. It has been replaced by
ISO/IEC 25010:2011.
The fundamental objective of the ISO/IEC 9126 standard is to
address some of the well-known human biases that can
adversely affect the delivery and perception of a software
development project. These biases include changing
priorities after the start of a project or not having any
clear definitions of "success". By clarifying, then agreeing
on the project priorities and subsequently converting
abstract priorities (compliance) to measurable values
(output data can be validated against schema X with zero
intervention), ISO/IEC 9126 tries to develop a common
understanding of the project's objectives and goals.
The standard is divided into four parts:
quality model
external metrics
internal metrics
quality in use metrics
Supply additional information or details in the above standards.
What is the Difference between iso/iec 9126 and iso 14598?
ISO/IEC 9126 and ISO 14598 are both international standards for software
engineering. However, they differ in their scope and purpose.
ISO/IEC 9126 is an international standard for the evaluation of software quality. It has
been replaced by ISO/IEC 25010:2011, which is a more recent standard for
systems and software engineering - systems and software quality requirements and
evaluation (SQuaRE) - system and software quality models. The standard is
divided into four parts: quality model, external metrics, internal metrics, and
quality in use metrics. The quality model presented in the first part of the standard
classifies software quality into a structured set of characteristics and sub-
characteristics such as functionality, reliability, usability, efficiency,
maintainability, and portability.
On the other hand, ISO 14598 is a multipart standard that provides guidelines for the
specification and evaluation of software quality 2. It offers an overview of the
series, explains the relationship between its series and the ISO/IEC 9126 quality
model, defines technical terms used, contains general requirements for specifying
and evaluating software quality, and clarifies general concepts.
In summary, ISO/IEC 9126 focuses on evaluating software quality while ISO 14598
provides guidelines for specifying and evaluating software quality.
What is W3C?
• W3C Stands for the World Wide Web
Consortium
• W3C was created in October 1994
• W3C was created by Tim Berners-Lee
• W3C was created by the Inventor of the Web
• W3C is organized as a Member Organization
• W3C is working to Standardize the Web
• W3C creates and maintains WWW Standards
• W3C Standards are called W3C
Recommendations
How it Started?
The World Wide Web (WWW) began as a
project at the Council European pour la Recherche
Nucleaire (CERN) or in English European
Organization for Nuclear Research, where Tim
Berners-Lee developed a vision of the World Wide
Web.

Tim Berners-Lee, the inventor of the World Wide


Web - is now the Director of the World Wide Web
Consortium (W3C).
W3C was created in 1994 as a collaboration
between the Massachusetts Institute of Technology
(MIT) and the European Organization for Nuclear
Research, with support from the U.S. Defense
Advanced Research Project Agency (DARPA) and
the European Commission.

The World Wide Web Consortium (W3C) is the


main international standards organization for the
World Wide Web (abbreviated WWW or W3).
Standardizing the Web

W3C is working to make the Web accessible to


all users (despite differences in culture, education,
ability, resources, and physical limitations) W3C
also coordinates its work with many other
standards organizations such as the Internet
Engineering Task Force, the Wireless Application
Protocols (WAP) Forum and the Unicode
Consortium.
W3C is hosted by three universities:

• Massachusetts Institute of Technology in the U.S.


• The French National Research Institute in Europe
• Keio University in Japan
W3C Members
Because the Web is so important (both in scope
and in investment) that no single organization
should have control over its future, W3C functions
as a member organization.
Some well known members are:
1. IBM 5. Adobe
2. Microsoft 6. Macromedia
3. America Online 7. Sun Microsystems
4. Apple
W3C Recommendations
The most important work done by the W3C is
the development of Web specifications (called
"Recommendations") that describe communication
protocols (like HTML and XML) and other
building blocks of the Web.
Each W3C Recommendation is developed by a
work group consisting of members and invited
experts. The group obtains its input from
companies and other organizations, and creates a
Working Draft and finally a Proposed
Recommendation. In general the Recommendation
is submitted to the W3C membership and director,
for a formal approval as a W3C Recommendation.
BE READY TO YOUR
QUIZ
(70 points)
No Erasures!!!!
Wrong Spelling
wrong!
Self-Check I. Enumeration

A. What are the two types of software


product?
1.
2.

B. What are the 4 fundamental process


common to all software process?
1.
2.
3.
4.
A. What are the 4 general models/paradigms
of software development?
1.
2.
3.
4.
B. Give all the attributes of a good software.
3. 2. 3.
4. 5. 6.
7. 8. 9.
5. 11.
12.
6. 14.
A. What are these 3 universities wherein
W3C is hosted by?

1.
2.
3.

B. What is the meaning of the Greek word


“isos”?

1.
Identification:
1. This is not just the programs but
also all associated documentation and
configuration data which is needed to
make programs operate correctly.

2. It is a set of activities and


associated results which produce a
software product.

3. It is a simplified description of a
software process which presented from a
particular perspective.
4. This shows the sequence of the
activities in the process along with their
inputs, outputs, and dependencies.

5. This represents the roles of the


people involved in the software process.

6. This approach interleaves the


activities of specification, development
and validation.
7. Is the world’s largest developer of
voluntary International Standards.
8. He created the W3C in October
1994.

9. Year wherein ISO officially began


their operations.
10. Is an association dedicated to
advancing innovation and technological
excellence.
What are these ACRONYMS stands for?

1. IEEE 6. MIT
2. PAR 7. CERN
3. ISO 8. DARPA
4. COPOLCO 9. WAP
5. W3C 10. NesCom
Essay:

1. Explain what is a data-flow or


activity model. (5 points)

2. Differentiate bespoke or customized


product and the generic products.
(5points)
Questions?

You might also like