MS. R. S.
MORE
ME (COMPUTER)
Lecturer
Department of Information Technology
[Link]
Email: [Link]@[Link]
Software Engineering
UNIT - 1 Layered Approach
Characteristics of Software
SOFTWARE DEVELOPMENT PROCESS Engineering
WHAT IS A PROBLEM ?
As per a layman’s definition a problem is a difference between the expected state of
affairs and the actual state of affairs. In organizations problems can come in many
forms and can have many causes. In fact most of the times problems are hidden and
what we think of as problems are only symptoms of the problem.
RSM POLYTECHNIC, NASHIK 3
WHAT IS A PROBLEM STATEMENT?
A problem statement is a statement of a current issue or problem that requires
timely action to improve the situation.
This statement is completely objective, focusing only on the facts of the problem
and leaving out any subjective opinions. To make this easier, it's recommended that
you ask who, what, when, where and why to create the structure for your problem
statement.
This will also make it easier to create and read, and makes the problem at hand
more comprehensible and therefore solvable.
The problem statement, in addition to defining a pressing issue, is a lead-in to a
proposal of a timely, effective solution.
RSM POLYTECHNIC, NASHIK 4
WHY IS A PROBLEM STATEMENT IMPORTANT?
A problem statement is a communication tool. Problem statements are important to
businesses, individuals and other entities to develop projects focused on
improvement.
RSM POLYTECHNIC, NASHIK 5
WHAT IS SOFTWARE ENGINEERING?
Software engineering is defined as a process of analyzing user
requirements and then designing, building, and testing software
application which will satisfy those requirements.
“ Software is a set of instructions to acquire inputs and to
manipulate them to produce the desired output in terms of
functions and performance as determined by the user of the
software. It also include a set of documents, such as the software
manual , meant for users to understand the software system.”
RSM POLYTECHNIC, NASHIK 6
DEFINITIONS
IEEE, in its standard 610.12-1990, defines software engineering as the application of a
systematic, disciplined, which is a computable approach for the development, operation, and
maintenance of software.
Fritz Bauer defined it as 'the establishment and used standard engineering principles. It
helps you to obtain, economically, software which is reliable and works efficiently on the
real machines'.
Boehm defines software engineering, which involves, 'the practical application of scientific
knowledge to the creative design and building of computer programs. It also includes
associated documentation needed for developing, operating, and maintaining them.'
RSM POLYTECHNIC, NASHIK 7
CLASSES OF SOFTWARE
Software is classified into two classes:
● Generic Software:
is designed for broad customer market whose requirements are very
common, fairly stable and well understood by the software engineer.
● Customized Software:
is developed for a customer where domain , environment and requirements
are being unique to that customer and cannot be satisfied by generic products.
WHAT WAS THE SOFTWARE CRISIS?
1. It was in the late 1960s when many software projects failed.
2. Many software became over budget. Output was an unreliable software which is
expensive to maintain.
3. Larger software was difficult and quite expensive to maintain.
4. Lots of software not able to satisfy the growing requirements of the customer.
5. Complexities of software projects increased whenever its hardware capability
increased.
6. Demand for new software increased faster compared with the ability to generate
new software.
RSM POLYTECHNIC, NASHIK 9
THE SOLUTION TO SOFTWARE CRISIS
Solution was to the problem was transforming unorganized coding effort into a
software engineering discipline. These engineering models helped companies to
streamline operations and deliver software meeting customer requirements.
1. The late 1970s saw the widespread uses of software engineering principles.
2. In the 1980s saw the automation of software engineering process and growth of
(CASE) Computer-Aided Software Engineering.
3. The 1990s have seen an increased emphasis on the 'management' aspects of
projects standard of quality and processes just like ISO 9001
RSM POLYTECHNIC, NASHIK 10
SOFTWARE ENGINEERING - LAYERED TECHNOLOGY
RSM POLYTECHNIC, NASHIK 11
CHARACTERISTICS OF GOOD SOFTWARE
Every software must satisfy the following attributes:
1. Operational
2. Transitional
3. Maintenance
RSM POLYTECHNIC, NASHIK 12
1. OPERATIONAL
1. Budget
2. Efficiency
3. Usability
4. Dependability
5. Correctness
6. Functionality
7. Safety
8. Security
RSM POLYTECHNIC, NASHIK 13
2. TRANSITIONAL
1. Interoperability
2. Reusability
3. Portability
4. Adaptability
RSM POLYTECHNIC, NASHIK 14
3. MAINTENANCE
1. Flexibility
2. Maintainability
3. Modularity
4. Scalability
RSM POLYTECHNIC, NASHIK 15
TYPES OF SOFTWARE
System Software- A collection of programs written to service other programs at system
level.
For example, compiler, operating systems.
Real-time Software- Programs that monitor/analyze/control real world events as they
occur.
Business Software- Programs that access, analyze and process business information.
Engineering and Scientific Software - Software using “number crunching” algorithms
for different science and applications. System simulation, computer-aided design.
Artificial Intelligence
● (AI) Software:
Programs make use of AI techniques and methods to solve complex problems. Active areas
are expert systems, pattern recognition, games
SOFTWARE DEVELOPMENT FRAMEWORK
Software Framework
A framework, or software framework, is a platform for developing
software applications. It provides a foundation on which software developers can
build programs for a specific platform.
A framework is similar to an application programming interface (API), though
technically a framework includes an API.
RSM POLYTECHNIC, NASHIK 17
SOFTWARE DEVELOPMENT FRAMEWORK
Software Development framework have many advantages that helps software professionals to a
great extent. These are some common advantages of this framework.
Frameworks are really efficient way of creating software.
Frameworks generally help in increasing productivity.
Software required features like Quality, reliability and robustness improves to a significant
level.
Software framework significantly reduces the overall efforts in creating software. Less
programming and testing effort are required for developing software with the help of software
framework.
RSM POLYTECHNIC, NASHIK 18
Thank You
RSM POLYTECHNIC, NASHIK 19