Lecture 2 (CSC205)
Lecture 2 (CSC205)
(CSC-205)
BS(SE)/BS(SE)- III gg
Lecture 2
Agenda
• SE: Def
• SE:Objectives
• Layered Technology
• Process vs. Product based
03/21/2024 2
What is Software?
Programs
Software
System
Documentation
Documentatio
Data n
User
Documentation
03/21/2024 3
Common issues
•The final Software doesn´t fulfill the needs of the
customer.
•Bad documentation.
right?
Wrong!
Problems in Software
Development
Limitations of Non-engineered Software
Requirements
Software
Software Production has a Poor Track Record
Example: Space Shuttle Software
03/21/2024 10
Chaos Report
Conclusion
Programming is NOT enough!
03/21/2024 16
Software Engineering
What is it?
-IEEE
Software Engineering
• “A systematic approach to the analysis, design, implementation and
maintenance of software.”
(The Free On-Line Dictionary of Computing)
• “ The systematic application of tools and techniques in the development of
computer-based applications.”
(Sue Conger in The New Software Engineering)
• “ Software Engineering is about designing and developing high-quality
software.”
(Shari Lawrence Pfleeger in Software Engineering -- The Production of
Quality Software)
Project-based software engineering
03/21/2024 19
• Major Goals:
- To increase software productivity and quality.
- To effectively control software schedule and planning.
- To reduce the cost of software development.
- To meet the customers’ needs and requirements.
- To enhance the conduction of software engineering process.
- To improve the current software engineering practice.
- To support the engineers’ activities in a systematic and efficient manner.
Software Engineering
A Layered Technology
tools
methods
process model
a “quality” focus
Software Engineering
A Layered Technology
• Any engineering approach must rest on organizational commitment to
quality which fosters a continuous process improvement culture.
• Process layer as the foundation defines a framework with activities for
effective delivery of software engineering technology. Establish the context
where products (model, data, report, and forms) are produced, milestone are
established, quality is ensured and change is managed.
• Method provides technical how-to’s for building software. It
encompasses many tasks including communication, requirement analysis,
design modeling, program construction, testing and support.
• Tools provide automated or semi-automated support for the process and
methods.
A Software Engineering
Framework
• A quality focus
• Any engineering approach must rest on organizational commitment to quality which
fosters a continuous process improvement culture.
• Process layer
• The foundation for software engineering is the process layer
• Defines a framework that must be established for effective delivery of software
engineering technology
• Establish a context where
• Products (model, data, report, and forms) are produced
• Milestones are established
• Quality is ensured
• Change is managed
A Software Engineering Framework
• Methods
• Provide the technical how-to for building software
• Methods encompass a broad array of tasks
• Communication , requirements analysis, design modeling, program
construction, testing, and support
• Tools
• Provide automated or semi-automated support for the process and the
methods
• Integrated tools to support software development
• Called computer aided software engineering
Stages for Software Development
Requirements
Analysis
Software Design
Implementation
Testing
Maintenance
03/21/2024 26
SW Eng. vs. System Eng.
Systems Engineering:
Interdisciplinary engineering field (computer, software, and process
eng.).
Focuses on how complex engineering projects should be designed
and managed.
Systems Software
Engineering Engineering
• All aspects of • Deals with the
computer-based design,
systems development and
development: HW delivery of SW.
+ SW + Process. • Is part of Systems 03/21/2024 27
• Older than SWE. Engineering.