SlideShare a Scribd company logo
1 of 26
SOFTWARE ENGINEERING
By
Yamuna p
Department of computer applications
Acharya Institute of graduate studies
• Software in its most general sense, is a set of instructions or programs
instructing a computer to do specific tasks. Software is a generic term
used to describe computer programs. Scripts, applications, programs and
a set of instructions are all terms often used to describe software
• Software engineering is an engineering branch associated with
development of software product using well-defined scientific principles,
methods and procedures. The outcome of software engineering should an
efficient and reliable software product.
• A software engineer/developer: takes the software needs of end users
into account and consequently develops or designs new applications.
Furthermore, software engineering may involve the process of analyzing
existing software and modifying it to meet current application needs.
SOFTWARE APPLICATION DOMAIN:
• An application domain is a mechanism (similar to a process in an operating system) used within
the Common Language Infrastructure (CLI) to isolate executed software applications from one
another so that they do not affect each other. Each application domain has its own virtual address
space which scopes the resources for the application domain using that address space
• 1) System Software: Systems software includes the programs that are dedicated to managing the
computer itself, such as the operating system, file management utilities, and disk operating system
(or DOS).
• System software is a software that provides platform to other software's. Some examples can be
operating systems, antivirus software's, disk formatting software's, Computer language translators
etc. These are commonly prepared by the computer manufacturers. These software's consists of
programs written in low-level languages, used to interact with the hardware at a very basic level.
System software serves as the interface between the hardware and the end users.
• 2) Application software: Application software is commonly defined as any program or number of
programs designed for end-users.
• Examples of application software include items like Microsoft Word, Microsoft Excel, or any of the
web browsers used navigate the Internet … or the actual software suites themselves
3) Scientific and engineering: software satisfies the needs of a scientific or engineering user to
perform enterprise specific tasks. Such software is written for specific applications using principles,
techniques and formulae specific to that field. Examples are software like MATLAB, AUTOCAD,
PSPICE, ORCAD, etc
4) Embedded systems :Software can be defined as specialized programming tools in embedded
devices that facilitate the functioning of the machines. The software manages various hardware
devices and systems.
• Embedded systems software can be defined as specialized programming tools in embedded
devices that facilitate the functioning of the machines. The software manages various hardware
devices and systems Ex: Calculator, .Smart watch, Robots.
5)Product-Line Software: “A set of software-reliant systems that share a common managed set of
features satisfying a particular market or mission area, and are built from a common set of core assets
in a prescribed way.”
6) Web Application Software: A web application (or web app) is an application software that runs
on a web server, unlike computer-based software programs that are stored locally on the Operating
System (OS) of the device. Web applications are accessed by the user through a web browser with an
active internet connection.
7) Artificial Intelligence Software :It is an area of computer science focused on the creation of
intelligent machines that work and react like humans. Some of the activities computers with
artificial intelligence are designed for include: Speech recognition
• SOFTWARE PROCESS:
• Software process can be defined as “set of activities and associated results that help to produce
software products.
• Software process comprises of four fundamental activities such as:
1. Software specification. In this activity the functionality of the software and constraints on its
operation must be defined.
 2. Software design and implementation. Software design is a creative activity in which you
identify software components and their relationships, based on a customer's requirements. –
Implementation is the process of realizing the design as a program.
3. Software validation. The software must be validated to ensure that it has all the
functionalities what the customer needs.
 4. Software evolution. The software must evolve to meet changing customer needs
• SOFTWARE ENGINEERING PRACTICES:
Consists of a collection of concepts, principles, methods, and tools that a software engineer calls upon on a
daily basis
• 1)The Reason It All Exists
• A software system exists for one reason: to value to its users. All decisions should be made with this in
mind. Before specifying a system requirement, before noting a piece of system functionality, If the
answer is no, don’t do it. All other principles support this one.
2)KIS (Keep It Simple)
• There are many factors to consider in any design effort. All design should be as simple as possible, but no
simpler. This facilities having a more easily understood, and easily maintained system. This is not to say
that features, even internal features, should be discarded in the name of simplicity. Indeed, the more
elegant designs are usually the simple ones. Simple also does not mean “quick and dirty.” In fact, it often,
takes a lot of thought and works over multiple iterations to simplify.
• 3)Maintain the Vision
• A clear vision is essential to the success of a software project. Without one, a project almost unfailingly
ends up being “of two minds” about itself.
• 4)What you produce, others will consume
• In some case or in some Situations there are some business stack holder will use the software what
you had developed of their business purpose , someone else will use, maintain, document, or
otherwise depend on being able to understand your system. . The audience for any product of
software development is potentially large.
• 5) Be Open to the future
• A system with a long lifetime has more value. In today’s computing environments, where
specifications change on a moment’s notice and hardware platforms are obsolete after just a few
months, software lifetimes are typically measured in months instead of years. Systems that do this
successfully are those that have been designed this way from the start. Never design yourself into a
corner
SOFTWARE MYTHS:
The development of software requires dedication and understanding on the developers' part. Many
software problems arise due to myths that are formed during the initial stages of software
development. Software myths propagate false beliefs and confusion in the minds of management, users
and developers.
Managers, who own software development responsibility, are often under strain and pressure to
maintain a software budget, time constraints, improved quality, and many other considerations.
Common management myths are listed in Table
1. Management myths
• Our company has books full of standards, procedures, protocol, and so on, related to programming
software. This provides everything that our programmers and managers need to know. While
company standards may exist, one must ask if the standards are complete, reflect modern software
practice, and are — importantly — actually used.
• If we fall behind schedule in developing software, we can just put more people on it. If software is
late, adding more people will merely make the problem worse. This is because the people already
working on the project now need to spend time educating the newcomers, and are thus taken away
from their work. The newcomers are also far less productive than the existing software engineers, and
so the work put into training them to work on the software does not immediately meet with an
appropriate reduction in work.
2. Customer / end-user myths
• A vague collection of software objectives is all that is required to begin programming.
Further details can be added later. If the goals / objectives for a piece of software are vague
enough to become ambiguous, then the software will almost certainly not do what the
customer requires.
• Changing requirements can be easily taken care of because software is so flexible. This is
not true: the longer that development on the software has proceeded for, the more work is
required to incorporate any changes to the software requirements.
3. Programmer myths
• Once the software is written, and works, our job is done. A large portion of software
engineering occurs after the customer has the software, since bugs will be discovered,
missing requirements uncovered, and so on.
• The only deliverable for a project is the working program. At the very least there should
also be documentation, which provides support to both the software maintainers, and to the
end-users.
• Software engineering will make us create a lot of unnecessary documentation, and will
slow us down. Software engineering is not about producing documents. Software
engineering increases the quality of the software. Better quality reduces work load and
speeds up software delivery times.
• GENERIC SOFTWARE PROCESS MODEL:-
• A software process is a collection of various activities.
There are five generic process framework activities:
1. Communication:
The software development starts with the communication between customer and developer.
2. Planning:
It consists of complete estimation, scheduling for project development and tracking.
3. Modeling: Modeling consists of complete requirement analysis and the design of the project like
algorithm, flowchart etc.
• The algorithm is the step-by-step solution of the problem and the flow chart shows a complete flow
diagram of a program.
• 4. Construction: Construction consists of code generation and the testing part.
• Coding part implements the design details using an appropriate programming language.
• Testing is to check whether the flow of coding is correct or not.
• Testing also check that the program provides desired output.
• 5. Deployment: Deployment step consists of delivering the product to the customer and take feedback
from them.
• If the customer wants some corrections or demands for the additional capabilities, then the change is
required for improvement in the quality of the software.
• SOFTWARE PROCESS ASSESSMENTS(ACTION) & IMPROVEMENTS
• The existence of software process does not guarantee the timely delivery of the software and its ability to
meet the user's expectations. The process needs to be assessed in order to ensure that it meets a set of
basic process criteria, which is essential for implementing the principles of software engineering in an
efficient manner. The process is assessed to evaluate methods, tools, and practices, which are used to
develop and test the software. The aim of process assessment is to identify the areas for improvement
and suggest a plan for making that improvement. The main focus areas of process assessment are listed
below.
• Obtaining guidance for improving software development and test processes
• Obtaining an independent and unbiased review of the process
• Obtaining a baseline (defined as a set of software components and documents that have been formerly
reviewed and accepted; that serves as the basis for further development) for improving quality and
productivity of processes.
• The capability of a process determines whether a process with some variations is capable of meeting
user's requirements. In addition, it measures the extent to which the software process meets the user's
requirements. Process assessment is useful to the organization as it helps in improving the existing
processes. In addition, it determines the strengths, weaknesses and the risks involved in the processes.
• Cycle Of Software Process Assessment
 Team selection – The members of the team should be professionals knowledgeable in software engineering and management.
 The assessment team performs an analysis of the questionnaire responses and likewise identifies the areas that warrant further
exploration according to the CMM key process areas.
 Assessment team conducts a site visit to gain an understanding of the software process followed by the site.
 The assessment team produces a list of findings that identifies the strengths and likewise the weakness of the organization’s
software process.
Software Process Assessment Normative Models
SPICE (Software Process Improvement and Capability Determination) is a standard used for both process improvement and
process capability determination.
• Spice has three main objectives:
• 1.) to develop initial documents to the pattern of SPA called technical reports;
• 2.) to organize the industry initiatives regarding the use of the new pattern; and
• 3.) finally, to promote the technology transfer of SPA inside the software industry.
• CMMI
• The Capability Maturity Model Integration (CMMI) is a process and behavioral model that helps organizations streamline process
improvement and encourage productive, efficient behaviors that decrease risks in software, product and service development
• The CMMI are continuous and staged models. Therefore, software organizations should choose one or other of the models, and
also the disciplines that will be part of the model for the assessment and improvement of the software process.
• PERSPECTIVE PROCESS MODEL:
• The name 'prescriptive' is given because the model prescribes a set of
activities, actions, tasks, quality assurance and change the mechanism for
every project.
There are three types of prescriptive process models. They are:
1. The Waterfall Model
2. Incremental Process model
3. RAD model
1. The Waterfall Model
•The waterfall model is also called as 'Linear sequential model' or 'Classic life cycle model'.
•In this model, each phase is fully completed before the beginning of the next phase.
•This model is used for the small projects.
•In this model, feedback is taken after each phase to ensure that the project is on the right path.
•Testing part starts only after the development is complete.
• Advantages of waterfall model: The waterfall model is simple and easy to
understand, implement, and use.
• All the requirements are known at the beginning of the project, hence it is easy to
manage.
• It avoids overlapping of phases because each phase is completed at once.
• This model works for small projects because the requirements are understood very
well.
• This model is preferred for those projects where the quality is more important as
compared to the cost of the project.
• Disadvantages of the waterfall model:This model is not good for complex and
object oriented projects.
• It is a poor model for long projects.
• The problems with this model are uncovered, until the software testing.
• The amount of risk is high.
• Specialized Process Models:
• Specialized process models use many of the characteristics of one or more of the
Process model, however they tend to be applied when a narrowly defined
software engineering approach is chosen. They include,
 Components based development
The Formal Methods Model
Aspect oriented software development
• Components Based Development :
• In this approach, Commercial Off-The-Shelf (COTS) S/W components, developed by vendors
Commercial off-the-shelf (COTS) :The 'shelf' normally means the shelf of products
in any store, accessible to anyone who walks into the store.
• commercial off-the-shelf, it describes software or hardware products that are
ready-made and available for sale to the general public
• Merits:
Leads to software reuse, which provides number of benefits
• 70% reduction in development cycle time
• 84 % reduction in project cost
• Productivity index goes up to 26.2
• Demerits:
Component Library must be robust.
Performance may degrade
The Formal Methods Model:
• The formal methods model encompasses a set of activities that lead to formal
mathematical specification of computer software.
• It consists of specifications, development & verification by applying rigorous
mathematical notation.
• Merits:
Removes many of the problems that are difficult to remove using other
S/W Engg approaches
Ambiguity, Incompleteness & Inconsistency can be discovered & corrected
easily by using formal methods of mathematical analysis.
• Demerits:
Development is time consuming & expensive
 Extensive training is required
Difficult to use with technically unsophisticated customers
• Aspect Oriented Software Development (AOSD):
• A set of localized features, functions & information contents are used while
building complex software.
• These localized s/w characteristics are modelled as components
• (e.g. Object Oriented classes) & then constructed within the context of a system
architecture.
• Certain “concerns” (Customer required properties or areas of technical interest)
span the entire architecture i.e. Cross cutting Concerns like system security, fault
tolerance etc will be identified and recovered with specific period of time
• Merits:
It is similar to component based development for aspects
• Demerits:
Component Library must be robust.
Performance may degrade
BSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IV

More Related Content

What's hot

Software Engineering I
Software Engineering ISoftware Engineering I
Software Engineering I
alamzeb123
 
Se lect1 btech
Se lect1 btechSe lect1 btech
Se lect1 btech
IIITA
 

What's hot (20)

Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
Software Engineering I
Software Engineering ISoftware Engineering I
Software Engineering I
 
Se lect1 btech
Se lect1 btechSe lect1 btech
Se lect1 btech
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNotes of Software engineering and Project Management
Notes of Software engineering and Project Management
 
SE
SESE
SE
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1
 
Ch1 introduction
Ch1 introductionCh1 introduction
Ch1 introduction
 
Ch1
Ch1Ch1
Ch1
 
Software engineering tutorial
Software engineering tutorial Software engineering tutorial
Software engineering tutorial
 
Software engineering introduction
Software engineering   introductionSoftware engineering   introduction
Software engineering introduction
 
software characteristics
software characteristicssoftware characteristics
software characteristics
 
SE Unit 1
SE Unit 1SE Unit 1
SE Unit 1
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software Engineering
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 

Similar to BSC Software & Software engineering-UNIT-IV

Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...
GaytriMate
 

Similar to BSC Software & Software engineering-UNIT-IV (20)

Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
Software engineering unit 1
Software engineering unit 1Software engineering unit 1
Software engineering unit 1
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
SE-Unit I.pptx
SE-Unit I.pptxSE-Unit I.pptx
SE-Unit I.pptx
 
SE UNIT-1.pptx
SE UNIT-1.pptxSE UNIT-1.pptx
SE UNIT-1.pptx
 
Unit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxUnit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptx
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
 
software engineering
software engineeringsoftware engineering
software engineering
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Software Process and Requirement
Software Process and RequirementSoftware Process and Requirement
Software Process and Requirement
 
The Product and Process(1).pdf
The Product and Process(1).pdfThe Product and Process(1).pdf
The Product and Process(1).pdf
 
Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...
 
Software Engineering UPTU
Software Engineering UPTUSoftware Engineering UPTU
Software Engineering UPTU
 
Introduction to Software Engineering.ppt
Introduction to Software Engineering.pptIntroduction to Software Engineering.ppt
Introduction to Software Engineering.ppt
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 

Recently uploaded

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 

Recently uploaded (20)

Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 

BSC Software & Software engineering-UNIT-IV

  • 1. SOFTWARE ENGINEERING By Yamuna p Department of computer applications Acharya Institute of graduate studies
  • 2.
  • 3. • Software in its most general sense, is a set of instructions or programs instructing a computer to do specific tasks. Software is a generic term used to describe computer programs. Scripts, applications, programs and a set of instructions are all terms often used to describe software • Software engineering is an engineering branch associated with development of software product using well-defined scientific principles, methods and procedures. The outcome of software engineering should an efficient and reliable software product. • A software engineer/developer: takes the software needs of end users into account and consequently develops or designs new applications. Furthermore, software engineering may involve the process of analyzing existing software and modifying it to meet current application needs.
  • 4. SOFTWARE APPLICATION DOMAIN: • An application domain is a mechanism (similar to a process in an operating system) used within the Common Language Infrastructure (CLI) to isolate executed software applications from one another so that they do not affect each other. Each application domain has its own virtual address space which scopes the resources for the application domain using that address space • 1) System Software: Systems software includes the programs that are dedicated to managing the computer itself, such as the operating system, file management utilities, and disk operating system (or DOS). • System software is a software that provides platform to other software's. Some examples can be operating systems, antivirus software's, disk formatting software's, Computer language translators etc. These are commonly prepared by the computer manufacturers. These software's consists of programs written in low-level languages, used to interact with the hardware at a very basic level. System software serves as the interface between the hardware and the end users. • 2) Application software: Application software is commonly defined as any program or number of programs designed for end-users. • Examples of application software include items like Microsoft Word, Microsoft Excel, or any of the web browsers used navigate the Internet … or the actual software suites themselves
  • 5. 3) Scientific and engineering: software satisfies the needs of a scientific or engineering user to perform enterprise specific tasks. Such software is written for specific applications using principles, techniques and formulae specific to that field. Examples are software like MATLAB, AUTOCAD, PSPICE, ORCAD, etc 4) Embedded systems :Software can be defined as specialized programming tools in embedded devices that facilitate the functioning of the machines. The software manages various hardware devices and systems. • Embedded systems software can be defined as specialized programming tools in embedded devices that facilitate the functioning of the machines. The software manages various hardware devices and systems Ex: Calculator, .Smart watch, Robots. 5)Product-Line Software: “A set of software-reliant systems that share a common managed set of features satisfying a particular market or mission area, and are built from a common set of core assets in a prescribed way.” 6) Web Application Software: A web application (or web app) is an application software that runs on a web server, unlike computer-based software programs that are stored locally on the Operating System (OS) of the device. Web applications are accessed by the user through a web browser with an active internet connection.
  • 6. 7) Artificial Intelligence Software :It is an area of computer science focused on the creation of intelligent machines that work and react like humans. Some of the activities computers with artificial intelligence are designed for include: Speech recognition • SOFTWARE PROCESS: • Software process can be defined as “set of activities and associated results that help to produce software products. • Software process comprises of four fundamental activities such as: 1. Software specification. In this activity the functionality of the software and constraints on its operation must be defined.  2. Software design and implementation. Software design is a creative activity in which you identify software components and their relationships, based on a customer's requirements. – Implementation is the process of realizing the design as a program. 3. Software validation. The software must be validated to ensure that it has all the functionalities what the customer needs.  4. Software evolution. The software must evolve to meet changing customer needs
  • 7. • SOFTWARE ENGINEERING PRACTICES: Consists of a collection of concepts, principles, methods, and tools that a software engineer calls upon on a daily basis • 1)The Reason It All Exists • A software system exists for one reason: to value to its users. All decisions should be made with this in mind. Before specifying a system requirement, before noting a piece of system functionality, If the answer is no, don’t do it. All other principles support this one. 2)KIS (Keep It Simple) • There are many factors to consider in any design effort. All design should be as simple as possible, but no simpler. This facilities having a more easily understood, and easily maintained system. This is not to say that features, even internal features, should be discarded in the name of simplicity. Indeed, the more elegant designs are usually the simple ones. Simple also does not mean “quick and dirty.” In fact, it often, takes a lot of thought and works over multiple iterations to simplify. • 3)Maintain the Vision • A clear vision is essential to the success of a software project. Without one, a project almost unfailingly ends up being “of two minds” about itself.
  • 8. • 4)What you produce, others will consume • In some case or in some Situations there are some business stack holder will use the software what you had developed of their business purpose , someone else will use, maintain, document, or otherwise depend on being able to understand your system. . The audience for any product of software development is potentially large. • 5) Be Open to the future • A system with a long lifetime has more value. In today’s computing environments, where specifications change on a moment’s notice and hardware platforms are obsolete after just a few months, software lifetimes are typically measured in months instead of years. Systems that do this successfully are those that have been designed this way from the start. Never design yourself into a corner
  • 9. SOFTWARE MYTHS: The development of software requires dedication and understanding on the developers' part. Many software problems arise due to myths that are formed during the initial stages of software development. Software myths propagate false beliefs and confusion in the minds of management, users and developers. Managers, who own software development responsibility, are often under strain and pressure to maintain a software budget, time constraints, improved quality, and many other considerations. Common management myths are listed in Table 1. Management myths • Our company has books full of standards, procedures, protocol, and so on, related to programming software. This provides everything that our programmers and managers need to know. While company standards may exist, one must ask if the standards are complete, reflect modern software practice, and are — importantly — actually used. • If we fall behind schedule in developing software, we can just put more people on it. If software is late, adding more people will merely make the problem worse. This is because the people already working on the project now need to spend time educating the newcomers, and are thus taken away from their work. The newcomers are also far less productive than the existing software engineers, and so the work put into training them to work on the software does not immediately meet with an appropriate reduction in work.
  • 10. 2. Customer / end-user myths • A vague collection of software objectives is all that is required to begin programming. Further details can be added later. If the goals / objectives for a piece of software are vague enough to become ambiguous, then the software will almost certainly not do what the customer requires. • Changing requirements can be easily taken care of because software is so flexible. This is not true: the longer that development on the software has proceeded for, the more work is required to incorporate any changes to the software requirements. 3. Programmer myths • Once the software is written, and works, our job is done. A large portion of software engineering occurs after the customer has the software, since bugs will be discovered, missing requirements uncovered, and so on. • The only deliverable for a project is the working program. At the very least there should also be documentation, which provides support to both the software maintainers, and to the end-users. • Software engineering will make us create a lot of unnecessary documentation, and will slow us down. Software engineering is not about producing documents. Software engineering increases the quality of the software. Better quality reduces work load and speeds up software delivery times.
  • 11. • GENERIC SOFTWARE PROCESS MODEL:- • A software process is a collection of various activities. There are five generic process framework activities: 1. Communication: The software development starts with the communication between customer and developer. 2. Planning: It consists of complete estimation, scheduling for project development and tracking. 3. Modeling: Modeling consists of complete requirement analysis and the design of the project like algorithm, flowchart etc. • The algorithm is the step-by-step solution of the problem and the flow chart shows a complete flow diagram of a program. • 4. Construction: Construction consists of code generation and the testing part. • Coding part implements the design details using an appropriate programming language. • Testing is to check whether the flow of coding is correct or not. • Testing also check that the program provides desired output. • 5. Deployment: Deployment step consists of delivering the product to the customer and take feedback from them. • If the customer wants some corrections or demands for the additional capabilities, then the change is required for improvement in the quality of the software.
  • 12. • SOFTWARE PROCESS ASSESSMENTS(ACTION) & IMPROVEMENTS • The existence of software process does not guarantee the timely delivery of the software and its ability to meet the user's expectations. The process needs to be assessed in order to ensure that it meets a set of basic process criteria, which is essential for implementing the principles of software engineering in an efficient manner. The process is assessed to evaluate methods, tools, and practices, which are used to develop and test the software. The aim of process assessment is to identify the areas for improvement and suggest a plan for making that improvement. The main focus areas of process assessment are listed below. • Obtaining guidance for improving software development and test processes • Obtaining an independent and unbiased review of the process • Obtaining a baseline (defined as a set of software components and documents that have been formerly reviewed and accepted; that serves as the basis for further development) for improving quality and productivity of processes. • The capability of a process determines whether a process with some variations is capable of meeting user's requirements. In addition, it measures the extent to which the software process meets the user's requirements. Process assessment is useful to the organization as it helps in improving the existing processes. In addition, it determines the strengths, weaknesses and the risks involved in the processes.
  • 13. • Cycle Of Software Process Assessment  Team selection – The members of the team should be professionals knowledgeable in software engineering and management.  The assessment team performs an analysis of the questionnaire responses and likewise identifies the areas that warrant further exploration according to the CMM key process areas.  Assessment team conducts a site visit to gain an understanding of the software process followed by the site.  The assessment team produces a list of findings that identifies the strengths and likewise the weakness of the organization’s software process. Software Process Assessment Normative Models SPICE (Software Process Improvement and Capability Determination) is a standard used for both process improvement and process capability determination. • Spice has three main objectives: • 1.) to develop initial documents to the pattern of SPA called technical reports; • 2.) to organize the industry initiatives regarding the use of the new pattern; and • 3.) finally, to promote the technology transfer of SPA inside the software industry. • CMMI • The Capability Maturity Model Integration (CMMI) is a process and behavioral model that helps organizations streamline process improvement and encourage productive, efficient behaviors that decrease risks in software, product and service development • The CMMI are continuous and staged models. Therefore, software organizations should choose one or other of the models, and also the disciplines that will be part of the model for the assessment and improvement of the software process.
  • 14.
  • 15. • PERSPECTIVE PROCESS MODEL: • The name 'prescriptive' is given because the model prescribes a set of activities, actions, tasks, quality assurance and change the mechanism for every project. There are three types of prescriptive process models. They are: 1. The Waterfall Model 2. Incremental Process model 3. RAD model
  • 16. 1. The Waterfall Model •The waterfall model is also called as 'Linear sequential model' or 'Classic life cycle model'. •In this model, each phase is fully completed before the beginning of the next phase. •This model is used for the small projects. •In this model, feedback is taken after each phase to ensure that the project is on the right path. •Testing part starts only after the development is complete.
  • 17. • Advantages of waterfall model: The waterfall model is simple and easy to understand, implement, and use. • All the requirements are known at the beginning of the project, hence it is easy to manage. • It avoids overlapping of phases because each phase is completed at once. • This model works for small projects because the requirements are understood very well. • This model is preferred for those projects where the quality is more important as compared to the cost of the project. • Disadvantages of the waterfall model:This model is not good for complex and object oriented projects. • It is a poor model for long projects. • The problems with this model are uncovered, until the software testing. • The amount of risk is high.
  • 18.
  • 19.
  • 20.
  • 21. • Specialized Process Models: • Specialized process models use many of the characteristics of one or more of the Process model, however they tend to be applied when a narrowly defined software engineering approach is chosen. They include,  Components based development The Formal Methods Model Aspect oriented software development
  • 22. • Components Based Development : • In this approach, Commercial Off-The-Shelf (COTS) S/W components, developed by vendors Commercial off-the-shelf (COTS) :The 'shelf' normally means the shelf of products in any store, accessible to anyone who walks into the store. • commercial off-the-shelf, it describes software or hardware products that are ready-made and available for sale to the general public • Merits: Leads to software reuse, which provides number of benefits • 70% reduction in development cycle time • 84 % reduction in project cost • Productivity index goes up to 26.2 • Demerits: Component Library must be robust. Performance may degrade
  • 23. The Formal Methods Model: • The formal methods model encompasses a set of activities that lead to formal mathematical specification of computer software. • It consists of specifications, development & verification by applying rigorous mathematical notation. • Merits: Removes many of the problems that are difficult to remove using other S/W Engg approaches Ambiguity, Incompleteness & Inconsistency can be discovered & corrected easily by using formal methods of mathematical analysis. • Demerits: Development is time consuming & expensive  Extensive training is required Difficult to use with technically unsophisticated customers
  • 24. • Aspect Oriented Software Development (AOSD): • A set of localized features, functions & information contents are used while building complex software. • These localized s/w characteristics are modelled as components • (e.g. Object Oriented classes) & then constructed within the context of a system architecture. • Certain “concerns” (Customer required properties or areas of technical interest) span the entire architecture i.e. Cross cutting Concerns like system security, fault tolerance etc will be identified and recovered with specific period of time • Merits: It is similar to component based development for aspects • Demerits: Component Library must be robust. Performance may degrade