Introduction to software engineering
-
Upload
sakshamjain -
Category
Documents
-
view
12 -
download
0
description
Transcript of Introduction to software engineering
![Page 1: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/1.jpg)
Slide 1
How do Software/IT Companies
(Google, IBM, Microsoft)
make
Software?
![Page 2: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/2.jpg)
Slide 2
Software Engineering
CSX-303
Subject Incharge Dr. Paramvir Singh
Assistant Professor
E-mail: [email protected]
![Page 3: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/3.jpg)
Slide 3
Recommended Course Textbooks
• Roger S. Pressman (2010)
Software Engineering:
A Practitioner's Approach,
7th edition, McGraw-Hill, USA
• Sommerville I. (2001,2004)
Software Engineering 9th Edition (/Latest), Addison-Wesley, Harlow, Essex,UK
• Stevens P. with Pooley, R. (2010)
Using UML: Software Engineering with Objects and Components,
Addison-Wesley, Harlow, Essex, UK
![Page 4: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/4.jpg)
Slide 4
What is software?
• Computer programs and associated documentation
![Page 5: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/5.jpg)
Slide 5
Software Vs Hardware
• Software is developed or engineered; it is not manufactured in the classical sense
– Impacts the management of software projects
• Software doesn't wear out
– Hardware bathtub curve compared to the software ascending spiked curve
• Although the industry is moving toward component-based construction, most software continues to be custom built (it is still complex to build)
![Page 6: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/6.jpg)
Slide 6
Software Vs Hardware
![Page 7: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/7.jpg)
Slide 7
What is Engineering?
• Design, Implement and Maintain/Manage a Product
![Page 8: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/8.jpg)
Slide 8
Why Software Engineering?
• Software development is hard !
• Important to distinguish “easy” systems (one developer, one user, experimental use only) from “hard” systems (multiple developers, multiple users, products)
• Experience with “easy” systems is misleading
– One person techniques do not scale up
• Analogy with bridge building:
– Over a Stream = easy, one person job
– Over a River … ? (the techniques do not scale)
![Page 9: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/9.jpg)
Slide 9
Why Software Engineering ?
• The problem is complexity
• Many sources, but size is key:
– UNIX contains 4 million lines of code
– Windows 7 contains 108 lines of code
Software engineering is about managing
this complexity.
![Page 10: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/10.jpg)
Slide 10
Outline Syllabus
• Introduction to Software Engineering
• Software Process models
• Software requirements
• Formal Specification
• Software Design and Implementation
• Software verification, validation and testing
• Management of Software Projects & Cost Estimation
![Page 11: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/11.jpg)
Slide 11
What is software engineering?
Software engineering is the establishment and use of
sound engineering principles in order to obtain
economically software that is reliable and works
efficiently on real machines.
Software engineering is the application of a
systematic, disciplined, quantifiable approach to the
development, operation and maintenance of
software.
![Page 12: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/12.jpg)
Slide 12
What is the difference between software
engineering and computer science?
Computer Science Software Engineering
is concerned with
Computer science theories are currently insufficient to act as a complete underpinning for software engineering, BUT it is
a foundation for practical aspects of software engineering
theory
fundamentals
Algorithms, date structures, complexity
theory, numerical methods
the practicalities of developing
delivering useful software
SE deals with practical problems in
complex software products
![Page 13: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/13.jpg)
Slide 13
Changing Nature of Software
• System software (OS, drivers, file management utility)
• Application software (Hostel Management system, Lib. System)
• Engineering/scientific software (Satellite, Calculator, Earthquake intensity measurement)
• Embedded software (AC, TV etc)
• Product-line software (e.g., inventory control, word processing, multimedia)
• Web applications (Gtalk, Websites, Email services)
• Artificial intelligence software (Robotic, Gaming, ANN)
• Open world computing (small, wireless devices)
• Open source (operating systems, databases, development environments)
• The ".com" marketing applications
![Page 14: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/14.jpg)
Slide 14
Use SE to ENSURE
• Quality
– Software is of highest quality
• Time Schedule
– Software finishes on estimated time
• Cost Schedule
– Software consumes estimated budget
• Managed
– Software is easily manageable after release
![Page 15: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/15.jpg)
Slide 15
The Four P’s of Software Engineering
• People — the most important element of a successful project
• Product — the software to be built
• Process — the set of framework activities and software engineering tasks to get the
job done
• Project — all work required to make the product a reality
![Page 16: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/16.jpg)
Slide 16
The Four P’s of Software Engineering
![Page 17: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/17.jpg)
Slide 17
The Four P’s of Software Engineering
![Page 18: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/18.jpg)
Slide 18
The Four P’s of Software Engineering
![Page 19: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/19.jpg)
Slide 19
The Four P’s of Software Engineering
![Page 20: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/20.jpg)
Slide 20
The Four P’s of Software Engineering
![Page 21: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/21.jpg)
Slide 21
The Four P’s of Software Engineering
End Product
Process 1
OR Process 2 OR Process 3
Selected based on:
•Cost
•Time
•Quality
•Resources
![Page 22: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/22.jpg)
Slide 22
The Four P’s of Software Engineering
Selected based on:
•Cost
•Time
•Quality
•Resources
![Page 23: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/23.jpg)
Slide 23
What is a Process?
• (Webster) A system of operations in producing something; a
series of actions, changes, or functions that achieve an end or a
result
• (IEEE) A sequence of steps performed for a given purpose
![Page 24: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/24.jpg)
Slide 24
Generic Process Framework
Analysis Design Code Test
Communication Planning Modelling Construction
Obsolete Approach
Modern Approach
Deployment
Analysis Design Code Test
![Page 25: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/25.jpg)
Slide 25
Generic Process Framework
• Communication
– Involves communication among the customer and other stake holders; encompasses requirements gathering
• Planning
– Establishes a plan for software engineering work; addresses technical tasks, resources, work products, and work schedule
• Modeling (Analyze, Design)
– Encompasses the creation of models to better understand the requirements and the design
• Construction (Code, Test)
– Combines code generation and testing to uncover errors
• Deployment
– Involves delivery of software to the customer for evaluation and feedback
![Page 26: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/26.jpg)
Slide 26
Software Engineering is a Layered
Technology
Tools
Methods
Processes
Quality Focus
![Page 27: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/27.jpg)
Slide 27
Process, Methods, and Tools
• Process
– Provides the glue that holds the layers together; enables rational and timely development; provides a framework for effective delivery of technology; forms the basis for management; provides the context for technical methods, work products, milestones, quality measures, and change management
• Methods
– Provide the technical "how to" for building software; rely on a set of basic principles; encompass a broad array of tasks; include modeling activities
• Tools
– Provide automated or semi-automated support for the process and methods (i.e. CASE tools)
![Page 28: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/28.jpg)
Slide 28
Umbrella Activities (In addition to General Framework Activities)
• Software requirements management
• Software project planning
• Software project tracking and oversight
• Software quality assurance
• Software configuration management
• Software subcontract management
• Formal technical reviews
• Risk management
• Measurement – process, project, product
• Reusability management (component reuse)
• Work product preparation and production
![Page 29: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/29.jpg)
Slide 29
Capability Maturity Model
(CMM)
• Developed in 1987 by the Software Engineering Institute (SEI) at
Carnegie-Mellon University
• Described in the book Managing the Software Process in 1989 by
Watts Humphrey
• Published as a separate document: Capability Maturity Model for
Software in 1991
![Page 30: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/30.jpg)
Slide 30
Immature Software Organizations
• Software processes are generally improvised
• If a process is specified, it is not rigorously followed or enforced
• The software organization is reactionary
• Managers only focus on solving immediate (crisis) problems
• Schedules and budgets are routinely exceeded because they are not based on realistic estimates
• When hard deadlines are imposed, product functionality and quality are often compromised
• There is no basis for judging process quality or for solving product or process problems
• Activities such as reviews and testing are curtailed or eliminated when projects fall behind schedule
![Page 31: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/31.jpg)
Slide 31 •31
Five Levels of Software Process
Maturity
![Page 32: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/32.jpg)
Slide 32
Characteristics of Each Level
• Initial Level (Level 1)
– Characterized as ad hoc, and occasionally even chaotic
– Few processes are defined, and success depends on
individual effort
• Repeatable (Level 2)
– Basic project management processes are established to track
cost, schedule, and functionality
– The necessary process discipline is in place to repeat earlier
successes on projects with similar applications
![Page 33: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/33.jpg)
Slide 33
Characteristics of Each Level
(continued)
• Defined (Level 3)
– The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization
– All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software
• Managed (Level 4)
– Detailed measures of the software process and product quality are collected
– Both the software process and products are quantitatively understood and controlled
![Page 34: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/34.jpg)
Slide 34
Characteristics of Each Level
(continued)
• Optimized (Level 5)
– Continuous process improvement is enabled by quantitative
feedback from the process and from piloting innovative ideas
and technologies
![Page 35: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/35.jpg)
Slide 35 •35
Visibility into the Software Process
![Page 36: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/36.jpg)
Slide 36
Probability of Schedule and Budget
![Page 37: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/37.jpg)
Slide 37
The CMM Structure
![Page 38: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/38.jpg)
Slide 38 •38
Key Process Areas
![Page 39: Introduction to software engineering](https://reader033.fdocuments.in/reader033/viewer/2022051219/5695d09a1a28ab9b02931d96/html5/thumbnails/39.jpg)
Slide 39 •39
Software Process Assessments