Software Engineering
Review of SE | Fall 2024 - Fresno Pacific University
What IS Software Engineering?
What Is SDLC?
Explain Predictive and Adaptive SDLC approaches. And, what are the Pros and Cons
What document is produced via the Requirement Analysis *Phase and what does it consist?
Explain the Process and People involved in the Design Process and explain the roles
Explain Prototype, Proof of Concept *, and MVP
Software Engineering | Overview
Software engineering is the application of engineering principles to the development of software. It involves a systematic approach to designing, developing, testing, and maintaining software systems, ensuring that they are reliable, efficient, scalable, and meet user requirements.
The term "software engineering" refers to the systematic application of engineering principles to the development, maintenance, and evaluation of software systems. It involves designing, coding, testing, and managing software applications. Software engineering blends elements of traditional engineering disciplines with the complexities of computer science, covering areas such as requirements analysis, system design, testing, and software evolution.
Software engineering as a field is guided by frameworks such as the IEEE/ACM's Software Engineering Body of Knowledge (SWEBOK), which outlines core knowledge areas, including software construction, design, quality assurance, and management practices. These areas ensure the reliability, efficiency, and sustainability of software products in diverse environments(Wikipedia)(IEEE Entity Web Hosting).
* assisted by ChatGPT
SDLC (Software Development Life Cycle) | Overview
From Wikimedia Commons, the free media repository
Introduction To Software Development LifeCycle | What Is Software Development? | Simplilearn
Predictive SDLC and Adaptive SDLC
Predictive SDLC
Overview: Assumes that the complete workflow and product requirements can be predicted in advance.
Key Features:
Full understanding of the final product.
Cost, Scope, and Timeline determined in the early phases.
Follows a linear and sequential process.
Example Methodologies: Waterfall, V-Model
Best For: Projects with clear, stable requirements.
Adaptive SDLC
Overview: Mix of incremental and iterative development.
Key Features:
Work is completed in increments, with opportunities for changes and refinements.
Easily adapts to new requirements based on client feedback.
Emphasizes flexibility and continuous evolution of the product.
Example Methodologies: Agile, Scrum, Kanban
Best For: Projects with evolving or unclear requirements.
Key Comparison:
Predictive: Defined upfront, minimal changes.
Adaptive: Continuous adjustments, customer feedback.
Predictive SDLC is an approach that presumes that project planning outlined in advance, products was produced according to the plan. ⇒ Water Fall
Adaptive SDLC focuses on achieving the desired end goal by quickly adapting the dynamic business requirements. ⇒ Agile
Requirement Analysis Documentation (Asana)
READ: A 6-step guide to requirements gathering for project success
https://asana.com/resources/requirements-gathering
https://asana.com/resources/requirements-gathering
DO: How to write a software requirement document
https://asana.com/resources/software-requirement-document-template
You will be required to include your SRS in your Project portfolio with this template: https://asana.com/resources/download-software-requirement-template
Proof-of-Concept | Prototype | MVP
A PoC (Proof-of-Concept) and a Prototype are used at the pre-product stage and require minimal-to-medium investment. With MVP (Minimum Viable Product) development, you enter a product stage with core functionalities and features to see how the market receives your idea.
READ: https://www.techmagic.co/blog/poc-vs-prototype-vs-mvp/
Next on Agile / SCRUM