SEPM Applications Layers
SEPM Applications Layers
Project Management
Dr D i v ya S i n dhu L e k h a
A s s i stant Pro fess or
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 1
A quick recap
✓Course outline
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 2
A quick recap
✓Course outline
✓Software (Developer vs User perspective)
✓programs + data structures + documentation
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 3
A quick recap
✓Course outline
✓Software (Developer vs User perspective)
✓programs + data structures + documentation
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 4
A quick recap
✓Course outline
✓Software – programs + data structures + documentation
✓Software vs. Hardware
✓Engineered
✓Deteriorates over time
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 5
A quick recap
✓Course outline
✓Software – programs + data structures + documentation
✓Software vs. Hardware
✓Engineered
✓Deteriorates over time
✓Complex Maintenance
✓Customized components
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 6
A quick recap
✓Course outline
✓Software – programs + data structures + documentation
✓Software vs. Hardware
✓Engineered
✓Deteriorates over time
✓Complex Maintenance
✓Customized components
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 7
A quick recap
✓Course outline
✓Software – programs + data structures + documentation
✓Software vs. Hardware
✓Engineered
✓Deteriorates over time
✓Complex Maintenance
✓Customized components
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 8
Outline – Product and Process
▪Software applications
▪Software engineering
▪Layered technology
▪Process framework
▪Process models
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 9
Software applications
Software – A prespecified set of procedural steps (algorithm)
Exceptions?
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 10
Software applications
Software – A prespecified set of procedural steps (algorithm)
Exceptions?
Expert system software, Learning systems (ML, DL, Other Neural Network
applications)
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 11
Software applications
Software – A prespecified set of procedural steps (algorithm) [ Exceptions -
Expert systems, Learning systems]
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 12
Software applications
Software – A prespecified set of procedural steps (algorithm) [ Exceptions - Expert systems, Learning systems]
Nature of a software application depends on information content and determinacy.
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 13
Classifying Software applications
➢Difficult to develop meaningful generic categories for software applications.
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 14
Categories of Software applications
➢Difficult to develop meaningful generic categories for software applications.
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 15
Software applications
▪ System software
▪ Real time software
▪ Business software
▪ Engineering/scientific software
▪ Embedded software
▪ Personal computer software
▪ WebApps (Web applications)
▪ AI software
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 16
https://www.electronicsandcommunications.com/2020/08/system-software-tutorial-for-beginners.html
System software
❑Collection of programs written to service other programs.
◦ Determinate - e.g., compilers, editors, and file management utilities
◦ Indeterminate - e.g., operating system components, drivers, telecommunications processors
❑Characteristics:
➢ heavy interaction with computer hardware;
➢ heavy usage by multiple users;
➢ concurrent operation that requires scheduling, resource sharing, and sophisticated
process management;
➢ complex data structures; and
➢ multiple external interfaces
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 17
Real time software
http://retis.sssup.it/~giorgio/rts-MECS.html
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 18
Business software
❑Business information processing.
❑Largest single software application area.
◦ E.g. Management Information Systems
❑Characteristics:
➢ restructure existing data to facilitate business operations or management decision
making.
➢ interactive computing (e.g., pointof-sale transaction processing)
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 19
Engineering/scientific software
❑Characterized by "number crunching" algorithms
❑Applications:
➢ Astronomy
➢ Volcanology
➢ Automotive stress analysis
➢ Space shuttle orbital dynamics
➢ Molecular biology
➢ Automated manufacturing
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 20
Embedded software
❑Resides in read-only memory
❑Used to control products and systems for the consumer and industrial markets.
❑Perform very limited and esoteric functions
e.g., keypad control for a microwave oven
❑Provide significant function and control capability
e.g., digital functions in an automobile such as fuel control, dashboard displays, and
braking
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 21
Personal computer software
❑ Word processing
❑ Spreadsheets
❑ Computer graphics
❑ Multimedia
❑ Entertainment
❑ Database management
❑ Personal and business financial applications,
❑ External network
❑ Database access
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 22
Web based software
❑ Web pages retrieved by a browser
❑ Incorporates executable instructions (e.g., CGI, HTML, Perl, or Java) , and data (e.g., hypertext
and a variety of visual and audio formats).
❑ New trends:
▪ AI and bots - 24/7 problem-solving potential, human-like experience, and deep consumer behavior
analytics.
▪ Accelerated Mobile Pages (AMP) - Optimized pages that are mobile-friendly and their content is
always readable.
▪ Javascript frameworks - Application framework created with JavaScript. Benefits: high efficiency, fast
performance, coding simplicity. E.g. React, Angular.
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 23
Artificial Intelligence software
❑Non-numerical algorithms
❑ Solve complex problems that are not amenable to computation or straightforward analysis.
❑ Expert systems/knowledge-based systems
❑ pattern recognition (image and voice)
❑ Artificial neural networks/ Learning based systems
❑ Theorem proving
❑ Game playing
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 24
Software – New Categories
➢ Open world computing—pervasive, distributed computing
➢ Ubiquitous computing—wireless networks
➢ Open source—”free” source code open to the computing community (a blessing, but also
a potential curse!)
➢ Data mining
➢ Grid computing
➢ Cognitive machines
➢ Software for nanotechnologies
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 25
Legacy Software
“Why it must change?”
▪ software must be adapted to meet the needs of new computing environments or
technology.
▪ software must be enhanced to implement new business requirements.
▪ software must be extended to make it interoperable with other more modern systems or
databases.
▪ software must be re-architected to make it viable within a network environment.
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 26
Question
Operating system components are system software. They
handle indeterminate information.
TRUE / FALSE?
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 27
Software Engineering
Some realities:
❖ a concerted effort should be made to understand the problem before a software
solution is developed
❖ design becomes a pivotal activity
❖ software should exhibit high quality
❖ software should be maintainable
The seminal definition:
[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.
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 28
Software Engineering
The IEEE definition:
Software Engineering:
1) The application of a systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software; that is, the application of
engineering to software.
2) The study of approaches as in (1).
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 29
A Layered Technology
tools
methods
process model
a “quality” focus
Software Engineering
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 30
Quality focus
❑Any engineering approach must rest on an organizational commitment to quality.
❑Total quality management foster a continuous process improvement culture.
❑This culture ultimately leads to the development of increasingly more mature approaches to
software engineering.
❑The bedrock that supports software engineering is a quality focus.
tools
methods
process model
a “quality” focus
Software Engineering
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 31
Process layer
❑Foundation for Software Engineering
❑Framework for a set of key process areas that must be established for effective delivery of SE
technology.
❑Key process areas
❑form the basis for management control of software projects.
❑establish the context in which technical methods are applied, work products are produced, milestones are
established, quality is ensured, and change is properly managed.
tools
methods
process model
a “quality” focus
Software Engineering
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 32
Methods layer
❑Technical how-to's for building software.
❑Encompass a broad array of tasks (requirements analysis, design, program construction,
testing, and support).
❑Rely on a set of basic principles that govern each area of the technology
❑Include modeling activities and other descriptive techniques
tools
methods
process model
a “quality” focus
Software Engineering
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 33
Tools layer
❑Provide automated or semi-automated support for the process and the methods.
❑Tools are integrated for the support of software development, computer-aided software
engineering (CASE).
❑ CASE create a software engineering environment analogous to CAD/CAE (computer-aided
design/engineering) for hardware.
tools
methods
process model
a “quality” focus
Software Engineering
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 34
Question
A. A quality focus in SE boosts continuous improvement.
B. Key process areas form the basis for control of project management.
C. CASE creates a manufacturing environment for hardware.
D. All of them.
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 35
Some Standards for SE Models, Methods
and Tools (Additional)
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 36
Life-Cycle Activity Models Methods & Tools Standards
Effort, Schedule and Cost
Life-Cycle Process Model [IEEE 828]
Estimation
Work Breakdown Structure Risk Analysis [IEEE 1058]
Constructive Cost Model
Data Collection [IEEE 1540]
(COCOMO)
Software Management Project Plan Project Tracking [IEEE 12207]
Configuration Management (CM)
CM Management
Plan
Iterative/Incremental
Risk Management Plan
Development
Agile Development
Functional Model Requirements Elicitation [IEEE 830]
User Class Model Prototyping [IEEE 1012]
Data Flow Diagram Structural Analysis [IEEE 12207]
Object Model Data-Oriented Analysis
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 38
Life-Cycle Activity Models Methods & Tools Standards
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 39
Additional Reads
Web applications working group: https://www.w3.org/2019/webapps/
A write up on CASE tools: http://www.umsl.edu/~sauterv/analysis/F08papers/View.html
Standards for SE: https://www.sebokwiki.org/wiki/Software_Engineering_Features_-
_Models,_Methods,_Tools,_Standards,_and_Metrics
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 40