0% found this document useful (0 votes)
8 views44 pages

Sepm Mod1

Uploaded by

diyagopal22
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)
8 views44 pages

Sepm Mod1

Uploaded by

diyagopal22
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/ 44

Ms Nisha Roche

1
Asst Prof, CSE Dept
SJEC

Module 1 Ms Nisha Roche 08/12/2023


Course Outcomes: At the end of the course the student will be able to:
Describe software process models and apply them in software development
21CSE501.1 scenarios.
Describe software process activities and develop a plan for requirement
21CSE501.2 engineering for agile method of software development
Apply object orientation and modeling constructs to design modeling diagrams for
21CSE501.3 software systems.
Differentiate between various software testing methods and select the right method
21CSE501.4 for testing a software.
Apply the principals involved in software evolution while maintaining a software and
21CSE501.5 describe the processes involved in project planning and quality management.

Function effectively in teams to develop software specification document, system


21CSE501.6 models, and test cases while implementing a systematic approach to problem
solving.
Module 1 Ms Nisha Roche 08/12/2023 2
▪ Professional software development
▪ Software engineering ethics
▪ Case studies

Module 1 Ms Nisha Roche 08/12/2023 3


SOFTWARE ENGINEERING
▪ The economy of ALL developed nations are dependent on
software.
▪ More and more systems are software controlled

Module 1 Ms Nisha Roche 08/12/2023 4


SOFTWARE ENGINEERING
▪ Software engineering is concerned with theories,
methods and tools for professional software development.

Module 1 Ms Nisha Roche 08/12/2023 5


SOFTWARE COSTS
▪ Software costs often dominate computer system costs.
▪ 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.

Module 1 Ms Nisha Roche 08/12/2023 6


SOFTWARE PROJECT FAILURE
▪ Increasing system complexity
▪ change in configuration such as OS, memory etc

▪ Failure to use software engineering methods

Module 1 Ms Nisha Roche 08/12/2023 7


SOFTWARE PRODUCTS
▪ 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.

Module 1 Ms Nisha Roche 08/12/2023 8


SOFTWARE PRODUCTS
▪ Customized 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.

Module 1 Ms Nisha Roche 08/12/2023 9


ATTRIBUTES OF A SOFTWARE
▪ Maintainability
▪ Software should be written in such a way so that it can evolve to meet
the changing needs of customers.
▪ This is a critical attribute because software change is an inevitable
requirement of a changing business environment.

Module 1 Ms Nisha Roche 08/12/2023 10


ATTRIBUTES OF A SOFTWARE
▪ 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.

Module 1 Ms Nisha Roche 08/12/2023 11


ATTRIBUTES OF A SOFTWARE
▪ Efficiency
▪ Software should not make wasteful use of system resources such as
memory and processor cycles.
▪ Efficiency therefore includes responsiveness, processing time,
memory utilisation, etc.

Module 1 Ms Nisha Roche 08/12/2023 12


ATTRIBUTES OF A SOFTWARE
▪ 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.

Module 1 Ms Nisha Roche 08/12/2023 13


SOFTWARE PROCESS ACTIVITIES
▪ 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.

Module 1 Ms Nisha Roche 08/12/2023 14


SOFTWARE ENGINEERING
Definition
▪ 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.

Module 1 Ms Nisha Roche 08/12/2023 15


SOFTWARE ENGINEERING
▪ Two Key Phrases
▪ 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.

Module 1 Ms Nisha Roche 08/12/2023 16


GENERAL ISSUES
▪ Heterogeneity
▪ Increasingly, systems are required to operate as distributed
systems across networks that include different types of computer
and mobile devices.
▪ Business and social change
▪ Business and society are changing incredibly quickly as emerging
economies develop and new technologies become available. They
need to be able to change their existing software and to rapidly
develop new software.

Module 1 Ms Nisha Roche 08/12/2023 17


GENERAL ISSUES
▪ Security and trust
▪ As software is intertwined with all aspects of our lives, it is essential
that we can trust that software.
▪ Scale
▪ Software has to be developed across a very wide range of scales,
from very small embedded systems in portable or wearable
devices through to Internet-scale, cloud-based systems that serve a
global community.

Module 1 Ms Nisha Roche 08/12/2023 18


Software Engineering Code of Ethics and Professional Practice

ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices

PREAMBLE
The short version of the code summarizes aspirations at a high level of the abstraction;
the clauses that are included in the full version give examples and details of how these
aspirations change the way we act as software engineering professionals. Without the
aspirations, the details can become legalistic and tedious; without the details, the
aspirations can become high sounding but empty; together, the aspirations and the
details form a cohesive code.
Software engineers shall commit themselves to making the analysis, specification,
design, development, testing and maintenance of software a beneficial and respected
profession. In accordance with their commitment to the health, safety and welfare of the
public, software engineers shall adhere to the following Eight Principles:

08/12/2023 Module 1 Ms Nisha Roche 19


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
interests of their client and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their
professional judgment.
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 of 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.
08/12/2023 Module 1 Ms Nisha Roche 20
INTERNET SOFTWARE ENGINEERING
▪ The Web is now a platform for running application
▪ Web services allow application functionality to be accessed over the web.
▪ organizations are increasingly developing web-based systems rather than local
systems.

Eg:
▪ Cloud computing is an approach to the provision of computer services where
applications run remotely on the ‘cloud’.
▪ Users do not buy software buy pay according to use.

Module 1 Ms Nisha Roche 08/12/2023 21


INTERNET SOFTWARE ENGINEERING

Module 1 Ms Nisha Roche 08/12/2023 22


WEB SOFTWARE ENGINEERING
▪ the fundamental principles of software engineering are applicable
to Web-based systems as they are to any other types of system.

Module 1 Ms Nisha Roche 08/12/2023 23


WEB SOFTWARE ENGINEERING
▪ Software reuse
▪ Software reuse is the dominant approach for constructing web-
based systems.
▪ When building these systems, you think about how you can
assemble them from pre-existing software components and
systems.
▪ Incremental and agile development
▪ Web-based systems should be developed and delivered
incrementally. It is now generally recognized that it is impractical to
specify all the requirements for such systems in advance.

Module 1 Ms Nisha Roche 08/12/2023 24


WEB SOFTWARE ENGINEERING
▪ Service-oriented systems
▪ Software may be implemented using service-oriented software
engineering, where the software components are stand-alone web
services.

▪ Rich interfaces
▪ Interface development technologies such as AJAX and HTML5 have
emerged that support the creation of rich interfaces within a web
browser.

Module 1 Ms Nisha Roche 08/12/2023 25


KEY POINTS
▪ Software engineering is an engineering discipline that is concerned with all
aspects of software production.
▪ Essential software product attributes are maintainability, dependability and
security, efficiency and acceptability.
▪ The high-level activities of specification, development, validation and evolution are
part of all software processes.
▪ The fundamental notions of software engineering are universally applicable to all
types of system development.

08/12/2023 Module 1 Ms Nisha Roche 26


KEY POINTS
▪ There are many different types of system and each requires appropriate software
engineering tools and techniques for their development.
▪ The fundamental ideas of software engineering are applicable to all types of
software system.
▪ Software engineers have responsibilities to the engineering profession and society.
They should not simply be concerned with technical issues.
▪ Professional societies publish codes of conduct which set out the standards of
behaviour expected of their members.

08/12/2023 Module 1 Ms Nisha Roche 27


28
SOFTWARE PROCESS
MODELS

Module 1 Ms Nisha Roche 08/12/2023


SOFTWARE PROCESS MODELS
▪ Waterfall Model
▪ Incremental development
▪ Integration and configuration

Module 1 Ms Nisha Roche 08/12/2023 29


THE WATERFALL MODEL

Module 1 Ms Nisha Roche 08/12/2023 30


WATERFALL MODEL PHASES
▪ There are separate identified phases in the waterfall model:
▪ Requirements analysis and definition
▪ System and software design
▪ Implementation and unit testing
▪ Integration and system testing
▪ Operation and maintenance

Module 1 Ms Nisha Roche 08/12/2023 33


DRAWBACK
1. Difficulty of accommodating change after the process is underway.
In principle, a phase has to be complete before moving onto the
next phase.

2.Inflexible partitioning of the project into distinct stages makes it


difficult to respond to changing customer requirements.
▪ Therefore, this model is only appropriate when the requirements are
well-understood and changes will be fairly limited during the design
process.

3. Used for large systems engineering projects where a system is


developed at several sites.
▪ In those circumstances, the plan-driven nature of the waterfall model
helps
Module 1 coordinate
Ms Nisha Rochethe work. 08/12/2023 34
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.

Module 1 Ms Nisha Roche 08/12/2023 35


INCREMENTAL DEVELOPMENT

Module 1 Ms Nisha Roche 08/12/2023 36


INCREMENTAL DEVELOPMENT
▪ Example:
▪ Consider an e-learning app. We can consider features like video courses, test
series, student profile management etc.

Module 1 Ms Nisha Roche 08/12/2023 37


ADVANTAGES
▪ The cost of accommodating changing customer requirements is
reduced.
▪ It is easier to get customer feedback on the development work that
has been done.
▪ More rapid delivery and deployment of useful software to the
customer is possible.

Module 1 Ms Nisha Roche 08/12/2023 40


DRAWBACKS
▪ 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.

▪ 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.

Module 1 Ms Nisha Roche 08/12/2023 41


INTEGRATION AND CONFIGURATION
▪ Based on software reuse where systems are integrated from existing
components or application systems (sometimes called COTS -
Commercial-off-the-shelf systems).
▪ Reused elements may be configured to adapt their behaviour and
functionality to a user’s requirements
▪ Reuse is now the standard approach for building many types of
business system

Module 1 Ms Nisha Roche 08/12/2023 42


Module 1 Ms Nisha Roche 08/12/2023 43
TYPES OF REUSABLE SOFTWARE
▪ Stand-alone application systems (sometimes called COTS) that are
configured for use in a particular environment.
▪ Collections of objects that are developed as a package to be
integrated with a component framework such as .NET or J2EE.
▪ Web services that are developed according to service standards and
which are available for remote invocation.

Module 1 Ms Nisha Roche 08/12/2023 44


REUSE-ORIENTED SOFTWARE ENGINEERING

Module 1 Ms Nisha Roche 08/12/2023 46


KEY PROCESS STAGES
▪ Requirements specification
▪ Software discovery and evaluation
▪ Requirements refinement
▪ Application system configuration
▪ Component adaptation and integration

Module 1 Ms Nisha Roche 08/12/2023 47


ADVANTAGES AND DISADVANTAGES
▪ Reduced costs and risks as less software is developed from scratch
▪ Faster delivery and deployment of system
▪ But requirements compromises are inevitable so system may not
meet real needs of users
▪ Loss of control over evolution of reused system elements

Module 1 Ms Nisha Roche 08/12/2023 48


The End

Module 1 Ms Nisha Roche 08/12/2023 49

You might also like