You are on page 1of 40

Software Engineering and

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

✓Software vs. Hardware


✓Engineered

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

✓Concerns and Challenges


✓Why best practices are important?

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

✓Concerns and Challenges


-Why best practices are important?

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]

Nature of a software application depends on information content and


determinacy.

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.

➢Content – meaning and form of incoming and outgoing information.


E.g. Business applications: highly structured data (database), generates formatted reports.
Software for automated machines – Discrete data items, generates machine commands

➢Determinacy – Predictability of the order and timing of information


E.g. Determinate systems – Data in predefined order; analysis without interruption; structured output
Real-time systems - indeterminate in nature; accepts varied input, output depends on environment and
time.

CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 13
Classifying Software applications
➢Difficult to develop meaningful generic categories for software applications.

➢As software complexity grows, neat compartmentalization disappears.

CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 14
Categories of Software applications
➢Difficult to develop meaningful generic categories for software applications.

➢As software complexity grows, neat compartmentalization disappears.

➢Classification based on potential 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

❑Monitors/analyzes/controls real-world events as they occur


❑Elements:
➢ data gathering component - collects and formats information from an external
environment
➢ analysis component - transforms information as required by the application
➢ control/output component - responds to the external environment
➢ monitoring component - coordinates all other components so that real-time response
can be maintained

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

❑Recent trends – IoT, ML, Cloud computing, AI Cybersecurity, AI enabled Chips

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

Software Requirements Formal Model Object-Oriented Analysis


Object Modeling Language
User Stories
(OML)
Formal Methods
Requirements Specification
Requirements Inspection
CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 37
Life-Cycle Activity Models Methods & Tools Standards
Architectural Model Structured Design [IEEE 1012]
Structure Diagram Object-Oriented Design [IEEE 1016]
Object Diagram OML [IEEE 12207]
Class Specification Modular Design [IEEE 42010]
Integrated Development
Software Design Data Model
Environment (IDE)
Database Management System
(DBMS)
Design Review
Refinement
Detail Design Document Detailed Design [IEEE 1008]
Pseudocode Functional Programming [IEEE 1012]
Flow Chart Object-Oriented Programming [IEEE 1016]
Program Code IDE [IEEE 12207]
Unit Test Plan DBMS
Integration Test Plan Black Box/White Box Testing
Software Construction Basic Path Testing
Unit Testing
Code Review
Proof of Correctness
Software Reuse
Integration
Integration Testing

CSE 312 SOFTWARE ENGINEERING AND PROJECT MANAGEMENT, ODD SEMESTER, 2021 38
Life-Cycle Activity Models Methods & Tools Standards

System Test Plan Usability Testing [IEEE 829]


Reliability Model System Testing [IEEE 1012]
Software Maintenance Process Acceptance Testing [IEEE 12207]
Software Testing
Regression Testing
Reliability Testing
Non-Functional Software Testing
Automated Testing Tools [IEEE 1219]
Maintenance Change [IEEE 12207]
Impact Analysis [IEEE 14764]
Software Maintenance Software Maintenance Process Inventory Analysis
Restructuring
Reverse Engineering
Re-engineering

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

You might also like