Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

CIT 214 - Software Engineering - After which developers create a

prototype of the intended software


and show it to the users to get their
Unit 1: Software Engineering feedback at the early stage of the
- engineering branch associated with software product development.
development of software products - The users suggest changes, on
using well-defined scientific which several consecutive updates
principles, methods and procedures. and maintenance keep on changing
- the term is made of two words: too.
➢ Software - This process changes to the
- is more than just a original software, till the desired
program code. A software is accomplished.
program is an - The only feasible and economical
executable code, which solution is to update the existing
serves some software so that it matches the
computational purpose. latest requirements.
- considered to be a
collection of executable
programming code, Software Evolution Laws
associated libraries and Lehman divided the software into three
documentations. different categories:
- Software, when made ● Static-type (S-type)
for a specific - a software, which works
requirement is called a strictly according to
software product. defined specifications and
➢ Engineering solutions.
- developing products, - the solution and the method
using well-defined, to achieve it, both are
scientific principles and immediately understood
methods. before coding.
- is least subjected to changes
Software Evolution hence this is the simplest of
- process of developing a software all.
product using software engineering - Ex: Calculator program
principles and methods.. ● Practical-type (P-type)
- this includes the initial development - a software with a collection
of software and its maintenance and of procedures.
updates. - defined by exactly what
procedures can do.
- in this software, the
specifications can be
described but the solution is
not obviously instant.
- Ex: Gaming software
-
- ● Embedded-type (E-type)
- - works closely as their
quirement of the real-world
- Evolution starts from the environment.
requirement gathering process. - has a high degree of
evolution as there are
various changes in laws, over the lifetime of the
taxes etc. in the real world product.
situations.
- Ex: Online trading software. Software Paradigms
- refer to the methods and steps,
E-Type software evolution which are taken while designing the
Lehman has given eight laws for E-Type software.
software evolution (CICCRFSO):
1. Continuing change These can be combined into various
- must continue to adapt to the categories, though each of them is
real world changes, else it contained in one another:
becomes progressively less
useful.
2. Increasing complexity
- E-type software systems
evolve, their complexity
tends to increase unless
work is done to maintain or
reduce it.
3. Conservation of familiarity
- the familiarity with the
software or the knowledge
about how it was developed, Software Development Paradigm
why was it developed in that - known as software engineering
particular manner etc., paradigms; where all the
4. Continuing growth engineering concepts pertaining to
- its size of implementing the the development of software are
changes grows according to applied.
the lifestyle changes of the - It consists of:
business. ➢ Requirement gathering
5. Reducing quality ➢ Software design
- declines in quality unless ➢ Programming
rigorously maintained and
adapted to a changing Software Design Paradigm
operational environment. - This paradigm is a part of Software
6. Feedback systems Development and includes:
- constitute multi-loop, ➢ Design
multi-level feedback systems ➢ Maintenance
and must be treated as such ➢ Programming
to be successfully modified
or improved. Programming Paradigm
7. Self-regulation - This paradigm is closely related to
- self-regulating with the the programming aspect of software
distribution of product and development. This includes:
process measures close to ➢ Coding
normal. ➢ Testing
8. Organizational stability ➢ Integration
- the average effective global
activity rate in an evolving
E-type system is invariant
Need of Software Engineering (LSCDQ) ■ Correctness
● Large software ■ Functionality
- as the size of the software ■ Dependability
becomes large, engineering ■ Security
has to step to give it a ■ Safety
scientific process. ○ TRANSITIONAL - This
● Scalability aspect is important when the
- If the software process were software is moved from one
not based on scientific and platform to another (PIRA):
engineering concepts, it ■ Portability
would be easier to re-create ■ Interoperability
new software than to scale ■ Reusability
an existing one. ■ Adaptability
● Cost ○ MAINTENANCE - This
- As hardware industry has aspect briefs about how well
shown its skills and huge the software has the
manufacturing has lower capabilities to maintain it self
down the price of computer in the ever-changing
and electronic hardware. But, environment (MMFS):
cost of the software remains ■ Modularity
high if proper process is not ■ Maintainability
adapted. ■ Flexibility
● Dynamic Nature ■ Scalability
- Always growing and adapting
nature of the software hugely In short, Software engineering is a
depends upon the branch of computer science, which uses
environment in which the well-defined engineering concepts
user works. required to produce efficient, durable,
● Quality Management scalable, in-budget, and on-time
- Better process of software software products.
development provides better
and quality software product.
Unit 2: Software Development Life Cycle
Characteristics of good software (OTM) (SDLC)
● A software product can be judged by - Software Development Life Cycle,
what it offers and how well it can be SDLC for short, is a well-defined,
used. This software must satisfy on structured sequence of stages in
the following grounds: software engineering to develop the
○ Operational intended software product.
○ Transitional SDLC Activities
○ Maintenance - SDLC provides a aries of steps to be
● Well-engineered and crafted followed to design and develop a
software is expected to have the software product efficiently
following characteristics: - It includes the following steps
○ OPERATIONAL - This tells (CRFSSCTIIOD):
us how well the software
works in operations. It can be
measured on (BUCSFEDS):
■ Budget
■ Usability
■ Efficiency
SDLC STEPS (CRFSSCTIIOD) - The implementation of software
1. Communication design starts in terms of writing
- The first step where the user initiates program code in the suitable
the request for a desired software programming language and
product. developing error-free executable
- The user contacts the service programs efficiently.
provider and tries to negotiate the 6. Testing
terms,submits the request to the - An estimate says that 50% of the
service providing organization in whole software development
writing process should be tested.
2. Requirement Gathering - Errors may ruin the software from
- This step onwards the software critical level to its own removal.
development team works to carry on 7. Integration
the project. - Software may need to be integrated
- The team holds discussions with with the libraries, databases, and
various stakeholders from the other program(s).
problem domain - This stage of SDLC is involved in the
- The requirements are collected integration of software withouter
using a number of practices as world entities
given: 8. Implementation
➢ studying the existing or - This means installing the software
obsolete on user machines.
➢ system and software - At times, software needs
➢ conducting interviews of post-installation configurations at the
users and developers, user end.
➢ referring to the database or 9. Operation and Maintenance
➢ collecting answers from the - This phase confirms the software
questionnaires operation in terms of more efficiency
3. System Analysis and less errors.
- The developers decide a roadmap of - If required, the users are trained on,
their plan and try to bring up the best or aided with the documentation on
software model suitable for the how to operate the software and
project. how to keep the software operational
- Includes understanding of software
product limitations, learning system Software Development Paradigm
related problems or changes to be - The software development paradigm
done in existing systems helps a developer to select a
4. Software Design strategy to develop the software.
- Next step is to bring down the whole - A software development paradigm
knowledge of requirements and has its own set of tools, methods,
analysis on the desk and design the and procedures, which are
software product. expressed clearly and defines
- The inputs from users and software development life cycle.
information gathered in the
requirement gathering phase are the A few of software development
inputs of this step. paradigms or process models are
- The output of this step comes in the defined as follows:
form of two designs; logical ● Waterfall Model
design, and physical design. - The simplest model of
5. Coding software development
- Known as the programming phase. paradigm.
- All the phases of SDLC will - V- Model provides means of
function one after another in testing of software at each
a linear manner. stage in reverse manner.
- That is, when the first phase
is finished then only the
second phase will start and
so on.
● Iterative Model
- This model leads the
software development
process in iterations.
- It projects the process of
development in a cyclic ● Big Bang Model
manner repeating every step - This model is the simplest
after every cycle ofSDLC model in its form.
process. - It requires little planning, lots
of programming and lots of
funds.
- This model is conceptualized
around the big bang of the
universe.
- As scientists say that after
the big bang lots of galaxies,
planets, and stars evolved
● Spiral Model just as an event.
- A combination of both, - Likewise, if we put together
iterative models and one of lots of programming and
the SDLC models. funds, you may achieve the
- It can be seen as if you best software product.
choose one SDLC model and
combined it with cyclic
process (iterative model).

REPORTS: SDLC MODELS


(WISVABPRD)

1. Waterfall Model
● V - model ● A sequential and linear approach to
- The major drawback of the software development.
waterfall model is we move ● The progress flows steadily (like a
to the next stage only when waterfall) through several distinct
the previous one is finished phases.
and there is no chance to go ● Each stage must be completed
back if something is found before moving to the next.
wrong in later stages.
Phases of the Waterfall Model (RDITDM) Types of System This Model Can Be
1. Requirements Applied
2. Design ● Software Development
3. Implementation ● Product Development
4. Testing ● Web Development
5. Deployment ● Mobile App Development
6. Maintenance ● Game Development
● Engineering Systems
When To Use Waterfall Model ● Biomedical Systems
● fixed requirements are employed ● Data Science and Machine Learning
● definition of a product is constant
● People understand technology 3. Spiral Model
● no unclear prerequisites ● Also known as Boehm’s spiral
● many resources with the necessary model, the spiral development
knowledge model, the risk-driven model, the
● brief project cyclic model, and the incremental,
iterative model.
Types of System This Model Can Be ● It is a combination of Waterfall Model
Applied and Iterative Model.
● Large-scale Software Development ● best suited for complex embedded
Projects product development.
● Safety-Critical Systems ● Phase - Each loop of the spiral.
● Government and Defense Projects
● Projects with well-defined History of Spiral Model
requirements ● Defined by Barry Boehm in his 1988
● Projects with stable requirements article.
● was the first model to explain why
2. Iterative Model the iteration matters.
● refers to an approach where the
development process is divided into Phases of the Spiral Model (PREE)
multiple cycles or iterations. 1. Planning - focuses on defining the
● Each iteration involves a subset of spiral’s objectives, identifying the
the overall development tasks requirements and defining the
(PRAITED): scope.
○ Planning 2. Risk Analysis - identifies all of the
○ Requirements gathering potential risks and then establishes
○ Analysis and design strategies to mitigate those risks.
○ Implementation 3. Evaluation - evaluate the success
○ Testing of the output of the spiral using the
○ Evaluation defined metrics.
○ Deployment 4. Engineering & Development - the
engineers take what was
When To Use Iterative Model documented in the requirements and
● Uncertain or evolving requirements translate it into a functional product.
● Projects with long development
cycles When To Use Spiral Model
● Customer-driven projects ● costs and risk evaluation is
● Highly innovative projects important.
● For medium to high-risk projects.
● Users are unsure of their needs.
● Requirements are complex.
● Significant changes are expected. requirements from the
customer's perspective.
Types of System This Model Can Be ● System Design - detailing
Applied the hardware and
● Microsoft used it to develop early communication setup for the
versions of Windows product.
● Gantt chart software ● Architectural Design -
● NASA’s space shuttle program in the designed with multiple
1970s technical approaches,
considering technical and
Four Fold Procedure financial feasibility.
1. Evaluating the first prototype in ● Module Design - detailed
terms of its strengths, weaknesses, internal designs for system
and risks. modules, known as Low
2. Defining the requirements of the Level Design (LLD), are
second prototype specified.
3. Planning and designing the second ● Coding - system modules
prototype are developed using chosen
4. Constructing and testing the second programming languages and
Prototype guidelines.

Prototype 2. Validation Phase


● early sample, model or release of a ● Unit Testing - Unit Test
product built to test a concept. Plans (UTPs) are created
during module design to
4. V - Model eliminate errors at the code
● sequential SDLC model where each level.
development phase has a ● Integration Testing - verifies
corresponding testing phase. the coexistence and
● The "V" shape visualizes the communication of internal
process. The left side represents the modules within the system.
verification phase, and the right ● System Testing - ensures
side represents the validation the entire system's
phase. functionality and
● Progress is linear, with one phase communication with external
dependent on completing the prior systems.
phase. ● User Acceptance Testing -
conducted in a user
History of V - Model environment resembling
● originating in late 1980s Germany, is production, ensuring the
a software development framework, delivered system meets user
advancing over the waterfall model requirements.
by incorporating early testing
phases. Examples of V - Model
● It gained notable adoption, like ● Telecommunication Software
automotive manufacturing. ● Medical Device Software
● Automotive Embedded Systems
2 Phases of V - Model
1. Verification Phase When To Use V - Model
● Requirements Analysis - ● Requirements are clearly defined.
understanding product ● technical resources are available.
● Small to medium-sized projects.
● focus on early detection and Phases of Bigbang Model
correction of defects. 1. Requirements Gathering - involves
● The project is short. collecting and documenting the
needs and expectations of
5. Agile Method stakeholders.
● Agile is a software development 2. Design - refers to the high-level
methodology that focuses on planning and conceptualization of
iterative, incremental development the software system.
with continuous feedback and 3. Development - involves building all
collaboration. components of the software system
simultaneously.
Key Principles of Agile Method 4. Testing - entails checking the entire
● Adaptive: Responds to changing system as a whole for bugs, errors,
requirements and customer and inconsistencies.
feedback. 5. Deployment - refers to releasing the
● Iterative: Develop software in small, entire system to users or customers
manageable increments. at once.
● Incremental: Delivers working
software regularly. 7. Prototyping
● Collaborative: Involves the entire ● a software development approach
team that focuses on creating a working
● Feedback-Driven: Uses feedback model of the software to
from testing, customer input, and demonstrate its functionality to
team retrospectives to improve the stakeholders.
process. ● most popularly used Software
Development Life Cycle Models
Agile is used in a wide range of software (SDLC models).
development projects, including:
● Web Applications Phases of Prototype Model
● Mobile Applications 1. Requirement Gathering -
● Enterprise Software developers engage in in-depth
● Embedded Systems discussions with stakeholders to
● Real-time Ssytems identify the primary objectives.
2. Quick Design - developers create a
6. Bigbang Model quick and simplified design of the
● simplest model in the Software software's user interface
Development Life Cycle. 3. Prototype Development - the
● approach to software development designed prototype is coded and
where the entire project is developed developed.
in one go, without following a 4. Prototype Development - Once the
structured set of phases or prototype is developed, it undergoes
iterations. testing to identify any issues, or
bugs.
Use-cases of Bigbang Model 5. Refinement - Feedback obtained
● smaller or simple projects from prototype testing forms the
● small development teams basis for the refinement phase.
● requirements are not specified at the
start of the project Real World Applications
● experimental projects ● Game development
● projects for learning purposes
8. Rapid Application Development (RAD) DevOps Lifecycle
● flexible software development
strategy that focuses on
experimentation and quick feedback
rather than explicit design.
● driven by user interface needs and is
perfect for quick development and
deployment.

Rapid Web Application Development


● application development
methodology that emphasizes speed
and efficiency in creating web
applications.
DevOps 7c’s
Steps in Rapid Application Development 1. Continuous Development
1. Define the requirements - RAD 2. Continuous Integration
asks for a broad requirement. 3. Continuous Testing
2. Prototype - Are quickly made to 4. Continuous Deployment
work to showcase just the key 5. Continuous Feedback
features 6. Continuous Monitoring
3. Construction - flesh out a working 7. Continuous Operations
system from a working model
4. Deployment - deploying the built DevOps Application
system into a live production ● Netflix
environment ● Amazon
● Etsy
Where to use the RAD model? ● Nordstrom
● project requires a dynamic approach
● Progress needs to be made visible
● Apps need to be developed quickly
● Clients need to be involved in the
development
● User feedback is readily available
● Technical risk is not high

What are some apps that can be


developed through RAD?
● IT helpdesk
● Employee onboarding
● Performance appraisals
● Expense reimbursements
● Creative requests

9. DevOps
● combines development and
operations to increase the efficiency,
speed, and security of software
development and delivery compared
to traditional processes.

You might also like