Lecture 2-2022 - Introduction To Software Engineering
Lecture 2-2022 - Introduction To Software Engineering
▪ SOFTWARE-ENGINEERING PRINCIPLES
▪ The two software engineering principles are:
1. Process of software engineering and
2. The final Product.
▪ The right process will help produce the right product, but
the desired product will also affect the choice of which
process to use
▪ SOFTWARE-ENGINEERING PRINCIPLES
▪ To apply these principles, appropriate methods and
specific techniques are needed to produce the desired
processes and products features.
▪ Methods are general guidelines that govern the execution
of some activity; they are rigorous, systematic, and
disciplined approaches.
▪ Techniques are more technical and mechanical than
methods; often, they also have more restricted
applicability.
▪ SOFTWARE CRISIS
▪ These are the problems that are raised during the
development of softwares.
▪ SOFTWARE MYTHS
▪ These are the misconceptions that surrounds software
and its development.
▪ They include:
▪ Once we write the program and get it to work, our job is
done
▪ Software with more features is better software.
▪ The only deliverable work product for a successful
project is the working program.
▪ SOFTWARE MYTHS
▪ …
▪ Until we get the program running, we have no way of
assessing its quality.
▪ Software engineering create voluminous and
unnecessary documentation and will invariably slow
down progress.
▪ If we get behind schedule, we can add more
programmers and catch up.
▪ SOFTWARE-ENGINEERING PROCESSES
▪ What is a Process?
▪ Series of steps involving activities, constraints, and
resources that produce an intended output of some kind.
▪ Features of a process:
▪ Every process has a set of guiding principles that explain
the goals of each activity.
▪ Each process activity has entry and exit criteria, so that we
know when the activity begins and ends.
▪ The activities are organized in a sequence, so that it is clear
when one activity is performed relative to the other activities.
▪ SOFTWARE-ENGINEERING PROCESSES…
▪ Features of a process…:
▪ The process prescribes all of the major process
activities
▪ The process uses resources, subject to a set of
constraints (such as a schedule), and produces
intermediate and final products.
▪ Constraints or controls may apply to an activity,
resource, or product.
▪ The process may be composed of sub-processes that
are linked in some way
▪ Made up of hierarchy of processes
▪ SOFTWARE-ENGINEERING PROCESSES…
▪ What is a Software Process?
▪ Related set of activities and processes that are
involved in developing and evolving a software system.
▪ A set of activities and associated results, which
produce a software product.
▪ A set of activities whose goal is the development or
evolution of software.
▪ SOFTWARE-ENGINEERING PROCESSES…
▪ Fundamental process activities
1. Software specifications: The functionality of the
software and constraints on its operation must be
defined.
2. Software development: Software that meets the
specifications must be produced.
3. Software validation: The software must be validated
to ensure that it does what the customer wants.
4. Software evolution: The software must evolve to
meet changing customer needs.
▪ SOFTWARE EVOLUTION
▪ This describes the progress and generation of software
engineering/development.
▪ The development of software can be divided into four eras,
▪ Early Era,
▪ Second Era,
▪ Third Era, and
▪ Fourth Era.
▪ SOFTWARE EVOLUTION…
▪ Early Era:
▪ This era was from 1950 to 1960, and it was characterized
by:
▪ Limited software distribution,
▪ Customized softwares
▪ Batch-oriented systems.
▪ Most softwares were developed and ultimately used by the
same person or organization.
▪ SOFTWARE EVOLUTION…
▪ Second Era
▪ This era was from 1960 to 1972 and includes:
▪ Multi-users
▪ Databases
▪ Real-time software
▪ Customized softwares
▪ Product software
▪ Multi-programming
▪ Introduction of new concepts of human-machine
interaction.
▪ Interactive techniques and new levels of hardware and
software sophistication.
SOFTWARE ENGINEERING LECTURER: MATTHEW COBBINAH
22
INTRODUCTION TO SOFTWARE ENGINEERING
▪ SOFTWARE EVOLUTION…
▪ Third Era
▪ This era was from 1973 to 1985 and includes:
▪ Embedded intelligence
▪ Consumer impact
▪ Distributed systems
▪ Low-cost hardware
▪ SOFTWARE EVOLUTION…
▪ Fourth Era
▪ This era is from 1985 to present and includes:
▪ Powerful desktop systems
▪ Expert systems
▪ Artificial intelligence
▪ Network computers
▪ Parallel computing
▪ Object-oriented technology