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

Lecture - 1 Introduction

The document outlines a syllabus for a Software Engineering course, covering topics such as engineering paradigms, system analysis, design, development, testing, and maintenance. It emphasizes the importance of software engineering in modern economies and discusses various software domains, costs, and principles. Additionally, it addresses ethical considerations and best practices in software engineering.

Uploaded by

Devansh Gupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Lecture - 1 Introduction

The document outlines a syllabus for a Software Engineering course, covering topics such as engineering paradigms, system analysis, design, development, testing, and maintenance. It emphasizes the importance of software engineering in modern economies and discusses various software domains, costs, and principles. Additionally, it addresses ethical considerations and best practices in software engineering.

Uploaded by

Devansh Gupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Software Engineering

Dr. Pilli Emmanuel Shubhakar


Associate Professor
Syllabus
• Engineering paradigms.
• System Analysis: Feasibility study requirement analysis, Cost benefit
analysis, Planning systems, Analysis tools and techniques.
• System Design: Design fundamentals, Modular Design, Data and procedural
design, Object oriented design.
• System Development: Code documentation, Program design paradigms.
• Verification, Validation and Testing: Testing methods, Formal Program
Verification, Testing Strategies.
• Software Maintenance: Maintenance Characteristics, Maintainability,
Maintenance tasks and side effects.

2
Textbooks

3
Software
• Instructions (computer programs) that when executed provide
desired features, function, and performance;
• Data structures that enable the programs to adequately manipulate
information.
• Documentation that describes the operation and use of the
programs.

4
What is Software Characteristics of software

• Software is developed or engineered it is not manufactured in the


classical sense.
• Software doesn't "wear out“ but is does deteriorate.
• Although the industry is moving toward component-based
construction, most software continues to be custom-built

5
Software Domains
• System software.
• Application software.
• Engineering/Scientific software.
• Embedded software.
• Product-line software.
• Web/Mobile applications.
• AI software (robotics, neural nets, game playing).

6
Software Domains
• Stand-alone applications
• These are application systems that run on a local computer, such as a PC. They
include all necessary functionality and do not need to be connected to a network.
• Interactive transaction-based applications
• Applications that execute on a remote computer and are accessed by users from
their own PCs or terminals. These include web applications such as e-commerce
applications.
• Embedded control systems
• These are software control systems that control and manage hardware devices.
Numerically, there are probably more embedded systems than any other type of
system.

7
Software Domains

• Batch processing systems


• These are business systems that are designed to process data in large batches.
They process large numbers of individual inputs to create corresponding outputs.
• Entertainment systems
• These are systems that are primarily for personal use and which are intended to
entertain the user.
• Systems for modeling and simulation
• These are systems that are developed by scientists and engineers to model
physical processes or situations, which include many, separate, interacting
objects.

8
Software Domains
• Data collection systems
• These are systems that collect data from their environment using a set of sensors
and send that data to other systems for processing.
• Systems of systems
• These are systems that are composed of a number of other software systems.

9
Legacy Software 2a 2e

• Software must be adapted to meet the needs of new computing


environments or technology.
• Software must be enhanced to implement new business
requirements.
• Software must be extended to make it interoperable with other
more modern systems or databases.
• Software must be re-architected to make it viable within a network
environment.

10
Need for Software Engineering 4 Points

• The economies of ALL developed nations are dependent on


software.
• More and more systems are software controlled
• Software engineering is concerned with theories, methods and
tools for professional software development.
• Expenditure on software represents a significant fraction of GNP
in all developed countries.

11
Software Costs 3 Points

• Software costs often dominate computer system costs. The costs


of software on a PC are often greater than the hardware cost.
• Software costs more to maintain than it does to develop. For
systems with a long life, maintenance costs may be several
times development costs.
• Software engineering is concerned with cost-effective software
development.

12
Definition
Software Engineering (IEEE):

1. The application of a systematic, disciplined, quantifiable


approach to the development, operation, and maintenance of
software; that is, the application of engineering to software.

2. The study of approaches as in (1).

13
Software Engineering Layers

Layer 1 — Tools
The first layer involves choosing the semi-automated and automated tools that will become the framework for the
project. Some examples may include:

Layer 2 — Method
The second layer establishes the methods of developing the software. This includes any technical knowledge and
resources required for development. Some tasks include choosing methods for:
software engineering processes define the series of activities and steps that a development team follows to create
and manage software. Common software development processes include requirements gathering, design, coding,
testing, deployment, and maintenance.

Quality is a critical aspect of software engineering. This layer involves quality assurance and control measures to
ensure that the software meets its requirements and performs reliably.

14
Software Engineering
• Software Engineering is an engineering discipline that is concerned
with all aspects of software production from the early stages of
system specification through to maintaining the system after it has
gone into use.
• Engineering discipline
• Using appropriate theories and methods to solve problems bearing in mind
organizational and financial constraints.
• All aspects of software production
• Not just technical process of development. Also project management and
the development of tools, methods etc. to support software production.

15
Software Engineering Principles Reuse
Development process
Specs and req
Dependency and performance
• Some fundamental principles apply to all types of software system,
irrespective of the development techniques used:
• Systems should be developed using a managed and understood
development process. Different processes will be used for different types of
software.
• Dependability and performance are important for all types of system.
• Understanding and managing the software specification and requirements
(what the software should do) are important.
• Where appropriate, you should reuse software that has already been
developed rather than write new software.

16
Software Engineering Process SDVE

• Software Specification, where customers and engineers define the


software that is to be produced and the constraints on its operation.
• Software Development, where the software is designed and
programmed.
• Software Validation, where the software is checked to ensure that
it is what the customer requires.
• Software Evolution, where the software is modified to reflect
changing customer and market requirements.

17
Process Framework

• Communication.
• Planning.
• Modeling.
• Analysis of requirements.
• Design.
• Construction.
• Code generation.
• Testing.
• Deployment.

18
Umbrella Activities

• Software project tracking and control.


• Risk management.
• Software quality assurance.
• Technical reviews.
• Measurement.
• Software configuration management.
• Reusability management.
• Work product preparation and production.

19
Software Engineering Practice

Polya suggests:

1. Understand the problem (communication and analysis).

2. Plan a solution (modeling and software design).

3. Carry out the plan (code generation).

4. Examine result for accuracy (testing & quality assurance).

20
Understand the Problem

• Who has a stake in the solution to the problem?


That is, who are the stakeholders?

• What are the unknowns?


What data, functions, and features are required to properly solve the problem?

• Can the problem be compartmentalized?


Is it possible to represent smaller problems that may be easier to understand?

• Can the problem be represented graphically?


Can an analysis model be created?

21
Plan a Solution
• Have you seen similar problems before?
Are there patterns that are recognizable in a potential solution? Is there existing
software that implements the data, functions, and features that are required?

• Has a similar problem been solved?


If so, are elements of the solution reusable?

• Can subproblems be defined?


If so, are solutions readily apparent for the subproblems?

• Can you represent a solution in a manner that leads to effective


implementation?
Can a design model be created?

22
Carry out the Plan

• Does the solution conform to the plan?


Is source code traceable to the design model?

• Is each component part of the solution provably correct?


Has the design and code been reviewed, or better, have correctness proofs
been applied to algorithm?

23
Examine the Result

• Is it possible to test each component part of the solution?


Has a reasonable testing strategy been implemented?

• Does the solution produce results, that conform to the data,


functions, and features that are required?
Has the software been validated against all stakeholder requirements?

24
Hooker’s General Principles
Maintain Vision -> Think -> Plan ahead for reuse -> What you produce other will consume -> KISS -> Reason all it exist ->
Be open to future
• The Reason It All Exists – provide value to users.
• KISS (Keep It Simple, Stupid!) – design simple as it can be.
• Maintain the Vision – clear vision is essential.
• What You Produce, Others Will Consume.
• Be Open to the Future – do not design yourself into a corner.
• Plan Ahead for Reuse – reduces cost and increases value.
• Think! – placing thought before action produce results.

25
Software Engineering Ethics (IEEE)
• Public Interest – Software engineers shall act consistently with
the public interest.
• Client and Employer – Software engineers shall act in a manner
that is in the best interests of their client and employer consistent
with the public interest.
• Product – Software engineers shall ensure that their products
and related modifications meet the highest professional standards
possible.
• Judgment – Software engineers shall maintain integrity and
independence in their professional judgment.

26
Software Engineering Ethics
• Management – Software engineering managers and leaders shall
subscribe to and promote an ethical approach to the management of
software development and maintenance.
• Profession – Software engineers shall advance the integrity and
reputation of the profession consistent with the public interest.
• Colleagues – Software engineers shall be fair to and supportive of
their colleagues.
• 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.

27
Persons- Others
1.Client and Employer 1.Management
2.Public Interest 2.Proffesion
3.Self 3.Product
4.Colleagues 4.Judgment

THANK YOU

You might also like