The document provides an introduction to software engineering and discusses various topics including:
- The definition of software and how it is different from hardware.
- Common software development process models like waterfall, incremental, RAD, and evolutionary models.
- The differences between product and process in software engineering.
- Common software engineering practices and myths in management, customer, and practitioner perspectives.
It serves as an introductory lecture covering fundamental concepts in software engineering.
1. The document provides an introduction to software engineering, defining it as the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates.
2. It discusses the need for software engineering due to increasing complex applications in the 1960s that resulted in cost overruns, late deliveries, and lack of reliability. Workshops defined "software engineering" to address technical and managerial processes.
3. Software engineering relies on computer science, management science, economics, communication skills, and engineering approaches. It aims to improve quality and productivity through a systematic approach.
Software includes computer programs, data structures, and documentation. It is engineered rather than manufactured. While hardware wears out over time, software deteriorates due to factors like compatibility issues, bugs, security vulnerabilities, and changing user requirements. Software is used in domains like system software, applications, engineering/science, embedded systems, product lines, web applications, and artificial intelligence. Legacy software from decades ago is still used but requires updates to work with new technologies and business needs. Software engineering is a broader discipline than programming that involves designing, building, and maintaining software systems using engineering principles. Reliable software is increasingly critical as it is embedded in more aspects of modern life and relied on for strategic decisions.
The document provides an overview of an introduction to software engineering course. It discusses the course objectives which are to learn about difficulties in software development, different software processes, designing high-quality software, and advanced software engineering methods. The course contents are then listed, covering topics like requirements engineering, software design, testing, and project management. It also discusses the software crisis and reasons for poor project outcomes like misunderstanding software as just programming and lack of engineering practices.
This document provides an introduction to software engineering. It defines software as a set of instructions that provide desired functions when executed. Engineering is defined as applying scientific methods to construct, operate, modify and maintain useful devices and systems. Software engineering then applies technologies and practices from computer science, project management, and other fields to the design, development and documentation of software. Some key characteristics of software discussed are that it is developed rather than manufactured, can be easily modified and reproduced, and does not wear out. The document also outlines various types of software applications and discusses software engineering as a layered technology with foundations in quality focus, processes, methods and tools. Finally, it addresses some common software myths from management, customer, and practitioner perspectives.
This document provides an introduction to software engineering. It defines software engineering as the systematic application of engineering principles to software development, maintenance, and operation. The document discusses key questions about software engineering, including what it is, how it differs from computer science and systems engineering, the "software crisis" involving cost overruns and defects, and attributes of good software like maintainability and dependability. It also covers software engineering processes, methods, costs, and challenges.
The document provides an introduction to software engineering and discusses various topics including:
- The definition of software and how it is different from hardware.
- Common software development process models like waterfall, incremental, RAD, and evolutionary models.
- The differences between product and process in software engineering.
- Common software engineering practices and myths in management, customer, and practitioner perspectives.
It serves as an introductory lecture covering fundamental concepts in software engineering.
1. The document provides an introduction to software engineering, defining it as the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates.
2. It discusses the need for software engineering due to increasing complex applications in the 1960s that resulted in cost overruns, late deliveries, and lack of reliability. Workshops defined "software engineering" to address technical and managerial processes.
3. Software engineering relies on computer science, management science, economics, communication skills, and engineering approaches. It aims to improve quality and productivity through a systematic approach.
Software includes computer programs, data structures, and documentation. It is engineered rather than manufactured. While hardware wears out over time, software deteriorates due to factors like compatibility issues, bugs, security vulnerabilities, and changing user requirements. Software is used in domains like system software, applications, engineering/science, embedded systems, product lines, web applications, and artificial intelligence. Legacy software from decades ago is still used but requires updates to work with new technologies and business needs. Software engineering is a broader discipline than programming that involves designing, building, and maintaining software systems using engineering principles. Reliable software is increasingly critical as it is embedded in more aspects of modern life and relied on for strategic decisions.
The document provides an overview of an introduction to software engineering course. It discusses the course objectives which are to learn about difficulties in software development, different software processes, designing high-quality software, and advanced software engineering methods. The course contents are then listed, covering topics like requirements engineering, software design, testing, and project management. It also discusses the software crisis and reasons for poor project outcomes like misunderstanding software as just programming and lack of engineering practices.
This document provides an introduction to software engineering. It defines software as a set of instructions that provide desired functions when executed. Engineering is defined as applying scientific methods to construct, operate, modify and maintain useful devices and systems. Software engineering then applies technologies and practices from computer science, project management, and other fields to the design, development and documentation of software. Some key characteristics of software discussed are that it is developed rather than manufactured, can be easily modified and reproduced, and does not wear out. The document also outlines various types of software applications and discusses software engineering as a layered technology with foundations in quality focus, processes, methods and tools. Finally, it addresses some common software myths from management, customer, and practitioner perspectives.
This document provides an introduction to software engineering. It defines software engineering as the systematic application of engineering principles to software development, maintenance, and operation. The document discusses key questions about software engineering, including what it is, how it differs from computer science and systems engineering, the "software crisis" involving cost overruns and defects, and attributes of good software like maintainability and dependability. It also covers software engineering processes, methods, costs, and challenges.
The document provides an introduction to software engineering. It defines software and describes its key attributes and classifications. It discusses what constitutes good software in terms of maintainability, dependability, efficiency and usability. The document also outlines different types of software and defines software engineering as a systematic approach to software analysis, design, implementation and maintenance. It compares software engineering to computer science and system engineering. Finally, it discusses the two main components of software engineering as the systems engineering approach and development engineering approach.
The document describes several IT job roles including Java Developer, Project Manager, Data Modeler, Applications Architect, Systems Administrator, Business Analyst, Software Engineer, Technical Support Engineer, Computer Programmer, and Quality Assurance Analyst. Each role includes a brief job description, why the role is needed, and a salary range. The roles cover a variety of specialties from programming and engineering to project management and quality assurance.
Software encompasses computer programs, data structures, and documentation. It is developed through software engineering processes and methods rather than manufactured. While software doesn't physically deteriorate, it does deteriorate over time due to changes. Software engineering aims to develop software through systematic, disciplined, and quantifiable approaches to achieve reliable and efficient software economically.
Lecture 2 introduction to Software Engineering 1IIUI
This document discusses key concepts in software engineering including:
- Software engineering uses a layered technology approach with tools, methods, processes, and a quality focus.
- It introduces common process frameworks and activities like planning, modeling, construction, and deployment.
- It also discusses umbrella activities that span the entire software development process such as configuration management, quality assurance, and risk management.
- Finally, it debunks some common myths among managers, customers, and practitioners regarding software projects.
This document summarizes key aspects of software engineering processes and models. It discusses the fundamental activities of software specification, development, validation, and evolution. It describes plan-driven and incremental process models like the waterfall model and incremental development. It also covers topics like software prototyping, reuse-oriented processes, and coping with changing requirements through change avoidance and change tolerance strategies.
This document provides an overview of the Software Engineering for BS(IT) course. The course objectives are to introduce important concepts like software development models, project management, and the software development lifecycle. The course outline covers topics such as requirement engineering, software design, testing, and project management. It aims to teach students how to develop high-quality software using systematic and disciplined engineering practices.
Software engineering is a systematic approach to software development that accounts for practical issues like costs and schedules while meeting customer needs. It involves activities like specification, development, validation, and evolution. The discipline has expanded to include web-based systems and services. Ethical practices like protecting intellectual property and customer data are important for professional software engineers.
This document discusses software engineering and the software development process. It defines software, describes different types of software products and applications. It then explains that software engineering aims to develop software systems on time, on budget, with acceptable performance and correct operation. Different software process models are discussed, including waterfall, evolutionary, and hybrid models. Key stages of the software development process are also outlined.
This document provides an overview of key concepts in the field of software engineering. It defines software engineering as the application of systematic and disciplined approaches to software development, operation, and maintenance. The document discusses the importance of software engineering in producing reliable and economical software. It also summarizes essential attributes of good software such as maintainability, dependability, efficiency, and acceptability. Additionally, the document outlines a generic software engineering process framework involving activities like communication, planning, modeling, construction, and deployment. It notes that the process should be adapted to the specific project.
Software engineering for IV sem BCA ,RCU Belgavi.SyllabusNagaraj Hiremath
The document provides an overview of software engineering as a discipline for professional software development. It discusses key differences between amateur and professional software development, including that professionally developed software often includes documentation, configuration files, and other components beyond just code. It also outlines different types of software processes, including waterfall, incremental development, and reuse-oriented processes. The document emphasizes that software engineering is concerned with all phases of development from initial specification through ongoing maintenance.
Software engineering is the application of engineering principles and methods to the development of software. It involves developing software products using well-defined scientific principles, methods, and procedures. The role of software has evolved significantly over the past 50 years from standalone programs to complex systems that deliver both information and control functions. Addressing the "software crisis" of the 1960s required treating software development as an engineering discipline with processes, documentation, and quality assurance rather than an art. Applying software engineering principles and practices was seen as a solution to issues like projects running over budget and schedule, producing inefficient and low-quality software that did not meet requirements.
This document provides an overview of software engineering concepts. It begins by defining software and discussing different types of software applications. It then defines software engineering as the systematic application of engineering principles to software development. Some key practices of software engineering discussed include understanding requirements, planning solutions, implementing plans, and examining results. The document also summarizes George Polya's four essential practices of software engineering and Richard Hooker's seven general principles of software engineering. Finally, it discusses some common myths regarding software and software engineering practices.
want to contact me login to www.stqa.orgnazeer pasha
The document discusses the history and evolution of software engineering from the early 1950s to the present. It covers the major problems faced like correctness, efficiency, and complexity. Software engineering aims to systematically develop software through paradigms like waterfall and agile methods. The document defines software engineering and describes phases like requirements analysis, design, implementation, testing and maintenance in the software development life cycle.
The document provides an introduction to software engineering. It defines software and describes its key attributes and classifications. It discusses what constitutes good software in terms of maintainability, dependability, efficiency and usability. The document also outlines different types of software and defines software engineering as a systematic approach to software analysis, design, implementation and maintenance. It compares software engineering to computer science and system engineering. Finally, it discusses the two main components of software engineering as the systems engineering approach and development engineering approach.
The document describes several IT job roles including Java Developer, Project Manager, Data Modeler, Applications Architect, Systems Administrator, Business Analyst, Software Engineer, Technical Support Engineer, Computer Programmer, and Quality Assurance Analyst. Each role includes a brief job description, why the role is needed, and a salary range. The roles cover a variety of specialties from programming and engineering to project management and quality assurance.
Software encompasses computer programs, data structures, and documentation. It is developed through software engineering processes and methods rather than manufactured. While software doesn't physically deteriorate, it does deteriorate over time due to changes. Software engineering aims to develop software through systematic, disciplined, and quantifiable approaches to achieve reliable and efficient software economically.
Lecture 2 introduction to Software Engineering 1IIUI
This document discusses key concepts in software engineering including:
- Software engineering uses a layered technology approach with tools, methods, processes, and a quality focus.
- It introduces common process frameworks and activities like planning, modeling, construction, and deployment.
- It also discusses umbrella activities that span the entire software development process such as configuration management, quality assurance, and risk management.
- Finally, it debunks some common myths among managers, customers, and practitioners regarding software projects.
This document summarizes key aspects of software engineering processes and models. It discusses the fundamental activities of software specification, development, validation, and evolution. It describes plan-driven and incremental process models like the waterfall model and incremental development. It also covers topics like software prototyping, reuse-oriented processes, and coping with changing requirements through change avoidance and change tolerance strategies.
This document provides an overview of the Software Engineering for BS(IT) course. The course objectives are to introduce important concepts like software development models, project management, and the software development lifecycle. The course outline covers topics such as requirement engineering, software design, testing, and project management. It aims to teach students how to develop high-quality software using systematic and disciplined engineering practices.
Software engineering is a systematic approach to software development that accounts for practical issues like costs and schedules while meeting customer needs. It involves activities like specification, development, validation, and evolution. The discipline has expanded to include web-based systems and services. Ethical practices like protecting intellectual property and customer data are important for professional software engineers.
This document discusses software engineering and the software development process. It defines software, describes different types of software products and applications. It then explains that software engineering aims to develop software systems on time, on budget, with acceptable performance and correct operation. Different software process models are discussed, including waterfall, evolutionary, and hybrid models. Key stages of the software development process are also outlined.
This document provides an overview of key concepts in the field of software engineering. It defines software engineering as the application of systematic and disciplined approaches to software development, operation, and maintenance. The document discusses the importance of software engineering in producing reliable and economical software. It also summarizes essential attributes of good software such as maintainability, dependability, efficiency, and acceptability. Additionally, the document outlines a generic software engineering process framework involving activities like communication, planning, modeling, construction, and deployment. It notes that the process should be adapted to the specific project.
Software engineering for IV sem BCA ,RCU Belgavi.SyllabusNagaraj Hiremath
The document provides an overview of software engineering as a discipline for professional software development. It discusses key differences between amateur and professional software development, including that professionally developed software often includes documentation, configuration files, and other components beyond just code. It also outlines different types of software processes, including waterfall, incremental development, and reuse-oriented processes. The document emphasizes that software engineering is concerned with all phases of development from initial specification through ongoing maintenance.
Software engineering is the application of engineering principles and methods to the development of software. It involves developing software products using well-defined scientific principles, methods, and procedures. The role of software has evolved significantly over the past 50 years from standalone programs to complex systems that deliver both information and control functions. Addressing the "software crisis" of the 1960s required treating software development as an engineering discipline with processes, documentation, and quality assurance rather than an art. Applying software engineering principles and practices was seen as a solution to issues like projects running over budget and schedule, producing inefficient and low-quality software that did not meet requirements.
This document provides an overview of software engineering concepts. It begins by defining software and discussing different types of software applications. It then defines software engineering as the systematic application of engineering principles to software development. Some key practices of software engineering discussed include understanding requirements, planning solutions, implementing plans, and examining results. The document also summarizes George Polya's four essential practices of software engineering and Richard Hooker's seven general principles of software engineering. Finally, it discusses some common myths regarding software and software engineering practices.
want to contact me login to www.stqa.orgnazeer pasha
The document discusses the history and evolution of software engineering from the early 1950s to the present. It covers the major problems faced like correctness, efficiency, and complexity. Software engineering aims to systematically develop software through paradigms like waterfall and agile methods. The document defines software engineering and describes phases like requirements analysis, design, implementation, testing and maintenance in the software development life cycle.
Similar to Software Requirements Engineering - SRE also called as Requirements Engineering (20)
Better Builder Magazine brings together premium product manufactures and leading builders to create better differentiated homes and buildings that use less energy, save water and reduce our impact on the environment. The magazine is published four times a year.
Data Communication and Computer Networks Management System Project Report.pdfKamal Acharya
Networking is a telecommunications network that allows computers to exchange data. In
computer networks, networked computing devices pass data to each other along data
connections. Data is transferred in the form of packets. The connections between nodes are
established using either cable media or wireless media.
Sachpazis_Consolidation Settlement Calculation Program-The Python Code and th...Dr.Costas Sachpazis
Consolidation Settlement Calculation Program-The Python Code
By Professor Dr. Costas Sachpazis, Civil Engineer & Geologist
This program calculates the consolidation settlement for a foundation based on soil layer properties and foundation data. It allows users to input multiple soil layers and foundation characteristics to determine the total settlement.
2. UNIT - I
Software Engineering Concepts
Introduction- Nature of Software - The changing nature of Software – Software
Myths – Characteristics of Software -The Software Process: The Process
Framework - Umbrella Activities.
3. Software Engineering
Software Engineering is an engineering branch related to the evolution of
software product using well-defined scientific principles, techniques, and
procedures.
Software Engineering provides a standard procedure to design and develop a
software.
Ms. Preetha V AP/CSE
4.
The software is a collection of integrated programs.
Software subsists of carefully-organized instructions and code written by
developers on any of various particular computer languages.
Computer programs and related documentation such as requirements, design
models and user manuals.
Engineering is the application of scientific and practical knowledge
to invent, design, build, maintain, and improve frameworks, processes,
etc.
Ms. Preetha V AP/CSE
6. Why is Software Engineering required?
Software Engineering is required due to the following reasons:
To manage Large software
For more Scalability
Cost Management
To manage the dynamic nature of software
For better quality Management
Ms. Preetha V AP/CSE
7. Characteristics of a good software engineer
The features that good software engineers should possess are as follows:
Exposure to systematic methods, i.e., familiarity with software engineering
principles.
Good technical knowledge of the project range (Domain knowledge).
Good programming abilities.
Good communication skills. These skills comprise of oral, written, and
interpersonal skills.
High motivation.
Ms. Preetha V AP/CSE
8. What is the nature of software in software
engineering?
Software is:
(1) instructions (computer programs) that when executed provide desired
features, function, and performance;
(2) data structures that enable the programs to adequately manipulate
information, and
(3) document that describes the operation and use of the programs.
Ms. Preetha V AP/CSE
9. Changing Nature of Software
System Software:
System software is a collection of programs which are written to service other
programs. Some system software processes complex but determinate,
information structures. Other system application process largely
indeterminate data. Sometimes when, the system software area is
characterized by the heavy interaction with computer hardware that requires
scheduling, resource sharing, and sophisticated process management.
Examples of system software include operating systems (OS) (like macOS,
Linux, Android, and Microsoft Windows), computational science software,
game engines, search engines, industrial automation, and software as a
service applications.
Ms. Preetha V AP/CSE
10. Application Software:
Application software is defined as programs that solve a specific business
need. Application in this area process business or technical data in a way that
facilitates business operation or management technical decision making. In
addition to convention data processing application, application software is
used to control business function in real time.
A collection of Microsoft software including MS Office, PowerPoint, Word,
Excel, and Outlook.
Common Internet browsers like Google Chrome, Safari, Firefox, etc.
Graphics and designing software such as Canva, Adobe Photoshop, CorelDraw,
and AutoCAD.
Ms. Preetha V AP/CSE
11. Engineering and Scientific Software:
This software is used to facilitate the engineering function and task. however
modern application within the engineering and scientific area are moving
away from the conventional numerical algorithms. Computer-aided design,
system simulation, and other interactive applications have begun to take a
real-time and even system software characteristic.
Software is written for specific applications Examples are software
like MATLAB, AUTOCAD, PSPICE, ORCAD, etc.
Ms. Preetha V AP/CSE
12. Embedded Software:
Embedded software resides within the system or product and is used to
implement and control feature and function for the end-user and for the
system itself. Embedded software can perform the limited and esoteric
function or provided significant function and control capability.
Image processing systems found in medical imaging equipment. Fly-by-wire
control systems found in aircraft. Motion detection systems in security
cameras. Traffic control systems found in traffic lights.
Ms. Preetha V AP/CSE
13. Product-line Software:
Designed to provide a specific capability for use by many
different customers, product line software can focus on the
limited and esoteric marketplace or address the mass consumer
market.
Software product lines often have many features in common
and operate using the same core programming. This may
include a line of products like devices, in which your phone,
smartwatch and laptop all function together and use versions of
the same software.
Ms. Preetha V AP/CSE
14. Web Application:
It is a client-server computer program which the client runs on the web
browser. In their simplest form, Web apps can be little more than a set of
linked hypertext files that present information using text and limited
graphics. However, as e-commerce and B2B application grow in importance.
Web apps are evolving into a sophisticate computing environment that not
only provides a standalone feature, computing function, and content to the
end user.
Google Docs. Google Workspace, the Google Office suite, is one of the most
popular collections of web apps. ...
Netflix. One of the top video-streaming platforms is also a web app. ...
Trello. ...
Basecamp. ...
Microsoft Office. ...
Uber. ...
eBay. ...
Ms. Preetha V AP/CSE
15. Artificial Intelligence Software:
Artificial intelligence software makes use of a nonnumerical algorithm to
solve a complex problem that is not amenable to computation or
straightforward analysis. Application within this area includes robotics, expert
system, pattern recognition, artificial neural network, theorem proving and
game playing.
Virtual assistants like Siri and Alexa.
Recommendation systems used in e-commerce platforms.
Fraud detection in financial institutions.
Autonomous vehicles.
NLP for chatbots and customer service.
Ms. Preetha V AP/CSE
16. Software Myths:
Most, experienced experts have seen myths or superstitions (false beliefs or
interpretations) or misleading attitudes (naked users) which creates major
problems for management and technical people. The types of software-related
myths are listed below.
Ms. Preetha V AP/CSE
17. (i) Management Myths:
Managers are often under pressure for software development
under a tight budget, improved quality, and a packed
schedule, often believing in some software myths. Following
are some management myths.
Myth1:
We have all the standards and procedures available for software
development.
Fact:
Software experts do not know all the requirements for the software
development.
And all existing processes are incomplete as new software development is
based on new and different problem.
Ms. Preetha V AP/CSE
18. Myth 2
Falling behind on schedule could be taken care of by adding more
programmers.
Reality 2
Adding more human resources to already late projects worsens the problem.
Developers working on the project have to educate the newcomers, further
delaying the project. Also, newcomers are far less productive than developers
already working on them. As a result, time spent on educating newcomers
could not meet the immediate reduction in work.
Ms. Preetha V AP/CSE
19. Myth 3
If a project is outsourced to a third party, we could just relax and wait for
them to build it.
Reality 3
If an organisation is not able to manage and control software projects
internally, then the organisation will suffer invariably when they outsourced
the project.
Ms. Preetha V AP/CSE
20. Customer Myths
Customer Myths are generally due to false expectations by customers, and
these myths end up leaving customers with dissatisfaction with the software
developers. Following are some customer myths.
Ms. Preetha V AP/CSE
21. Myth 1:
A general statement of intent is enough to start writing plans (software
development) and details of objectives can be done over time.
Fact:
Official and detailed description of the database function, ethical
performance, communication, structural issues and the verification process
are important.
Unambiguous requirements (usually derived iteratively) are developed only
through effective and continuous
communication between customer and developer.
Ms. Preetha V AP/CSE
22. Myth 2:
Software requirements continually change, but change can be easily
accommodated because software is flexible
Fact:
It is true that software requirements change, but the impact of change varies
with the time at which it is introduced. When requirements changes are
requested early (before design or code has been started), the cost impact is
relatively small. However, as time passes, the cost impact grows rapidly—
resources have been committed, a design framework has been established,
and change can cause upheaval that requires additional resources and major
design modification.
Ms. Preetha V AP/CSE
24. Practitioner’s Myths
Developers often work under management pressure to
complete software within a timeframe, with fewer resources
often believing in these software myths. Following are some
practitioners’ myths.
Myth 1
Once the software is developed or the code is delivered to the customer, the
developer's work ends.
Reality 1
A significant chunk of developers' work, i.e., 50-60 % of all the efforts
expended on software, will be spent after the customer provides the
software. Major requirements would get found missing, and new bugs may get
discovered, and so on.
Ms. Preetha V AP/CSE
25. Myth 2
Software testing could only be possible when the software program starts
running.
Reality 2
Quality of software could be measured at any phase of development by
applying some QA mechanism.
Ms. Preetha V AP/CSE
26. Myth 3
Unnecessary Documentation slows down the process of software
development.
Reality 3
Software engineering is about creating a quality product at every level and
not about adding unnecessary work. Proper documentation of software helps
us guide the user and enhance the quality, which reduces the amount of
rework.
Ms. Preetha V AP/CSE
27. Characteristics of Software
Software Characteristics are classified into six major components.
ISO( International Organization for Standardization)/IEC (International
Electrotechnical Commission) 9126 is an international standard proposed to
make sure ‘quality of all software-intensive products’ which includes a
system like safety-critical where in case of failure of software lives will be in
danger.
Ms. Preetha V AP/CSE
28. Functionality
Functionality refers to the set of features and capabilities that a software
program or system provides to its users.
Examples of functionality in software include:
Data storage and retrieval
Data processing and manipulation
User interface and navigation
Communication and networking
Security and access control
Reporting and visualization
Automation and scripting
Ms. Preetha V AP/CSE
29. The more functionality a software has, the more powerful and versatile it is, but
also the more complex it can be.
Ms. Preetha V AP/CSE
30. Reliability
Reliability is a characteristic of software that refers to its ability to perform
its intended functions correctly and consistently over time. Reliability is an
important aspect of software quality, as it helps ensure that the software will
work correctly and not fail unexpectedly.
Examples of factors that can affect the reliability of software include:
Bugs and errors in the code
Lack of testing and validation
Poorly designed algorithms and data structures
Inadequate error handling and recovery
Incompatibilities with other software or hardware
Ms. Preetha V AP/CSE
31. To improve the reliability of software, various techniques, and methodologies
can be used, such as testing and validation, formal verification, and fault
tolerance.
Ms. Preetha V AP/CSE
32. Efficiency
It refers to the ability of the software to use system resources in the most
effective and efficient manner.
Efficiency is a characteristic of software that refers to its ability to use
resources such as memory, processing power, and network bandwidth in an
optimal way.
High efficiency means that a software program can perform its intended
functions quickly and with minimal use of resources, while low efficiency
means that a software program may be slow or consume excessive resources.
Ms. Preetha V AP/CSE
33. Examples of factors that can affect the efficiency of the software include:
Poorly designed algorithms and data structures
Inefficient use of memory and processing power
High network latency or bandwidth usage
Unnecessary processing or computation
Unoptimized code
Ms. Preetha V AP/CSE
34. To improve the efficiency of software, various techniques, and methodologies can
be used, such as performance analysis, optimization, and profiling.
Ms. Preetha V AP/CSE
35. Usability
It refers to the extent to which the software can be used with ease. the
amount of effort or time required to learn how to use the software.
Required functions are:
Ms. Preetha V AP/CSE
36. Maintainability
It refers to the ease with which modifications can be made in a software
system to extend its functionality, improve its performance, or correct
errors.
Required functions are:
Ms. Preetha V AP/CSE
37. Portability
A set of attributes that bears on the ability of software to be transferred from
one environment to another, without minimum changes.
Required functions are:
Ms. Preetha V AP/CSE
38. Various Characteristics of Software in
Software Engineering
Software is developed or engineered; it is not manufactured in the
classical sense:
Although some similarities exist between software development and hardware
manufacturing, few activities are fundamentally different.
In both activities, high quality is achieved through good design, but the
manufacturing phase for hardware can introduce quality problems than software.
Ms. Preetha V AP/CSE
39. The software doesn’t “wear out.”:
Hardware components suffer from the growing effects of many other
environmental factors. Stated simply, the hardware begins to wear out.
Software is not susceptible to the environmental maladies that cause hardware to
wear out.
When a hardware component wears out, it is replaced by a spare part.
There are no software spare parts.
Every software failure indicates an error in design or in the process through which
the design was translated into machine-executable code. Therefore, the software
maintenance tasks that accommodate requests for change involve considerably
more complexity than hardware maintenance. However, the implication is clear—
the software doesn’t wear out. But it does deteriorate.
Ms. Preetha V AP/CSE
40. The software continues to be custom-built:
A software part should be planned and carried out with the goal that it tends to be
reused in various projects.
Current reusable segments encapsulate the two pieces of information and the
preparation that is applied to the information, empowering the programmer to
make new applications from reusable parts.
In the hardware world, component reuse is a natural part of the engineering
process.
Ms. Preetha V AP/CSE
41. Software Processes
The term software specifies to the set of computer programs, procedures and associated
documents (Flowcharts, manuals, etc.) that describe the program and how they are to be
used.
A software process is the set of activities and associated outcome that produce a software
product. Software engineers mostly carry out these activities. These are four key process
activities, which are common to all software processes. These activities are:
Software specifications: The functionality of the software and constraints on its operation
must be defined.
Software development: The software to meet the requirement must be produced.
Software validation: The software must be validated to ensure that it does what the
customer wants.
Software evolution: The software must evolve to meet changing client needs.
Ms. Preetha V AP/CSE
42. Software Process Framework
Software Process Framework is an abstraction of the software development
process. It details the steps and chronological order of a process. Since it
serves as a foundation for them, it is utilized in most applications. Task sets,
umbrella activities, and process framework activities all define the
characteristics of the software development process.
Ms. Preetha V AP/CSE
44. Software process includes:
Tasks – focus on a small, specific objective.
Action – set of tasks that produce a major work product.
Activities – group of related tasks and actions for a major objective.
Ms. Preetha V AP/CSE
45. Umbrella activities
Umbrella activities are a series of steps or procedures followed by a software
development team to maintain the progress, quality, changes, and risks of
complete development tasks. These steps of umbrella activities will evolve
through the phases of the generic view of software development.
Ms. Preetha V AP/CSE
46. Umbrella activities
Typical umbrella activities are:
1. Software project tracking and controlIn this activity, the developing team accesses project
plan and compares it with the predefined schedule.
If these project plans do not match with the predefined schedule, then the required actions are
taken to maintain the schedule.
2. Risk managementRisk is an event that may or may not occur.
If the event occurs, then it causes some unwanted outcome. Hence, proper risk management is
required.
3. Software Quality Assurance (SQA)SQA is the planned and systematic pattern of activities
which are required to give a guarantee of software quality.
For example, during the software development meetings are conducted at every stage of
development to find out the defects and suggest improvements to produce good quality
software.
Ms. Preetha V AP/CSE
47. Umbrella activities
4. Formal Technical Reviews (FTR)FTR is a meeting conducted by the technical
staff.
The motive of the meeting is to detect quality problems and suggest
improvements.
The technical person focuses on the quality of the software from the customer
point of view.
5. MeasurementMeasurement consists of the effort required to measure the
software.
The software cannot be measured directly. It is measured by direct and indirect
measures.
Direct measures like cost, lines of code, size of software etc.
Indirect measures such as quality of software which is measured by some other
factor. Hence, it is an indirect measure of software.
Ms. Preetha V AP/CSE
48. Umbrella activities
6. Software Configuration Management (SCM)It manages the effect of
change throughout the software process.
7. Reusability managementIt defines the criteria for reuse the product.
The quality of software is good when the components of the software are
developed for certain application and are useful for developing other
applications.
8. Work product preparation and productionIt consists of the activities that
are needed to create the documents, forms, lists, logs and user manuals for
developing a software.
Ms. Preetha V AP/CSE