KEMBAR78
Software Engineering Short Overview | PDF | Scrum (Software Development) | Agile Software Development
0% found this document useful (0 votes)
27 views12 pages

Software Engineering Short Overview

The document provides an overview of software and software engineering, defining software as a collection of instructions and data that enables computers to perform tasks. It outlines various types of software, the software engineering process, and different process models, including prescriptive models like the Waterfall and Prototyping models. Additionally, it emphasizes the importance of planning, communication, and adaptation in software development to meet user needs effectively.

Uploaded by

nevej37738
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views12 pages

Software Engineering Short Overview

The document provides an overview of software and software engineering, defining software as a collection of instructions and data that enables computers to perform tasks. It outlines various types of software, the software engineering process, and different process models, including prescriptive models like the Waterfall and Prototyping models. Additionally, it emphasizes the importance of planning, communication, and adaptation in software development to meet user needs effectively.

Uploaded by

nevej37738
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Chapter 1: Software and Software Engineering

1.1 The Nature of Software

●​ Definition of Software:
○​ Software is a collection of instructions (called programs), data, and
documents that makes a computer perform specific tasks.
○​ It’s not something you can touch like a keyboard; it’s the “brain” that tells
the computer what to do.
○​ Analogy: Think of software as a recipe (instructions) and ingredients (data)
that a chef (computer) uses to make a dish (task).
○​ Example: The Instagram app is software—it has code to show photos, data
like your profile, and a help guide.
●​ Types of Software (Application Domains):
○​ Software comes in different types, each serving a specific purpose:
1.​ System Software: Runs the computer itself.
■​ Example: Windows 10 helps your laptop start and run other
apps.
2.​ Application Software: Helps users do tasks.
■​ Example: Microsoft Word for writing documents.
3.​ Engineering/Scientific Software: Used for technical calculations.
■​ Example: Software for designing bridges or simulating
weather.
4.​ Embedded Software: Built into devices to control them.
■​ Example: The software in a microwave that sets cooking time.
5.​ Product-Line Software: For business operations.
■​ Example: A system to track sales in a store.
6.​ Web Applications: Run on browsers.
■​ Example: Netflix’s website for streaming movies.
7.​ Artificial Intelligence Software: Makes smart decisions.
■​ Example: Siri answering your questions.
○​ Analogy: Think of these as different types of vehicles—cars (application
software) for daily use, trucks (system software) for heavy work, or drones
(AI software) for smart tasks.
●​ Definition of Legacy Software:
○​ Legacy software is old software that a company still uses but is hard to
update or fix.
○​ Why It’s a Problem: It uses outdated technology, may lack manuals, and is
expensive to maintain.
○​ Example: A bank using a 1990s system to process loans—it works but
struggles with modern apps.
○​ Analogy: Like an old car that still runs but is hard to find parts for.

1.2 Defining the Discipline

●​ Definition of Software Engineering:


○​ Software engineering is the process of designing, building, testing, and
maintaining software in a planned, organized way to ensure it works well
and meets user needs.
○​ It’s like building a house—you need a blueprint, tools, and a team, not just
random hammering.
○​ Example: Creating a school app to track grades involves planning features,
coding, testing, and updating it.
●​ Layers of Software Engineering:
○​ Software engineering has four layers, like a cake:
1.​ Quality Focus: The base—ensuring the software is reliable and
bug-free.
■​ Example: Checking that a game app doesn’t crash.
2.​ Process: The steps to follow, like a recipe.
■​ Example: Deciding to plan, code, and test in order.
3.​ Methods: Techniques for each step.
■​ Example: Using a specific way to test the app, like checking
each button.
4.​ Tools: Software or apps to help the team.
■​ Example: Using Visual Studio to write code.
○​ Analogy: Building a house needs a goal (quality), a plan (process),
techniques (methods like hammering), and tools (hammers).

1.3 The Software Process

●​ Definition of a Software Process:


○​ A software process is a set of steps to create software, like following a map
to reach a destination.
○​ It ensures the software is built correctly and on time.
○​ Example: To make a calculator app, you plan, design, code, test, and release
it.
●​ Process Framework (The Main Steps)**:
○​ Every software project follows these five steps:
■​ Communication: Talk to users to understand what they want.
■​ Example: Meeting a teacher to learn they need an app to
track student attendance.
■​ Planning: Make a plan for tasks, timeline, and resources.
■​ Example: Deciding to finish the app in 3 months with 5
developers.
■​ Modeling: Draw designs, like sketching how the app will look or work.
■​ Example: Creating a diagram showing the app’s attendance
screen.
■​ Construction: Write the code and test it to find errors.
■​ Example: Coding the app and testing if the attendance
feature works.
■​ Deployment: Give the software to users and fix any issues.
■​ Example: Installing the app in the school and updating it if
teachers find bugs.
○​ Analogy: Like baking a cake—talk to the customer (what flavor?), plan (buy
ingredients), design (mix batter), bake (cook), and serve (deliver).
●​ Definition of Umbrella Activities:
○​ Umbrella activities are extra tasks done throughout the project to keep it on
track and ensure quality.
○​ They’re like checking your work while cooking to avoid mistakes.
○​ Examples:
■​ Software Project Tracking and Control: Check if the project is on
schedule.
■​ Example: Seeing if the app is halfway done after 1.5 months.
■​ Risk Management: Plan for problems, like a developer getting sick.
■​ Example: Having a backup coder ready.
■​ Software Quality Assurance (SQA): Make sure the software is good.
■​ Example: Testing the app to ensure no crashes.
■​ Software Configuration Management (SCM): Track changes to
code.
■​ Example: Saving different versions of the app’s code.
■​ Documentation: Write guides for users and developers.
■​ Example: Creating a manual for teachers to use the app.
●​ Definition of Process Adaptation:
○​ Process adaptation means changing the process to fit the project’s needs.
○​ Example: For a hospital app, add extra testing to ensure it’s safe for
patients.
○​ Analogy: Adjusting a recipe for a bigger party by doubling the ingredients.

1.4 Software Engineering Practice


●​ Definition of Software Engineering Practice:
○​ The practical steps and rules to build software correctly.
○​ It’s about solving problems smartly, not just coding randomly.
●​ Core Principles (Essence of Practice):
○​ Four key ideas to follow:
■​ Understand the Problem: Know what the user needs before starting.
■​ Example: Ask a store owner what features they want in a
sales app.
■​ Plan a Solution: Make a clear plan before coding.
■​ Example: Decide to build the login screen first, then the sales
tracker.
■​ Carry Out the Plan: Follow the plan and code carefully.
■​ Example: Write the login code and test it.
■​ Examine the Result: Test everything to ensure it works.
■​ Example: Check if the sales tracker shows correct numbers.
○​ Analogy: Like building a toy model—read the instructions, plan the steps,
assemble, and check if it looks right.
●​ General Principles:
○​ Simple rules to make software better:
■​ Deliver what users need.
■​ Keep designs simple.
■​ Test often to catch errors.
■​ Be ready for changes.
○​ Example: For a music app, keep the play button easy to use and test it
before release.

1.5 How It All Starts

●​ Definition of Project Initiation:


○​ A software project starts when someone has a problem or need that
software can solve.
○​ Example: A library wants an app to track books, so the project begins.
●​ Steps to Start:
○​ Identify the problem (e.g., manual book tracking is slow).
○​ Talk to users to list needs (e.g., search books, check availability).
○​ Plan the project (e.g., 6 months, 3 developers).
○​ Analogy: Like planning a road trip—decide where to go, what you need, and
how long it’ll take.
Chapter 2: Process Models
2.1 A Generic Process Model

●​ Definition of a Process Model:


○​ A process model is a plan or guide that shows how to build software step by
step.
○​ It’s like a map for a journey, showing the path to follow.
●​ Definition of Generic Process Model:
○​ A basic, flexible plan that works for any software project, with five steps:
1.​ Communication: Understand what the user wants.
■​ Example: Talk to a restaurant owner about a food ordering
app.
2.​ Planning: List tasks, timeline, and team needs.
■​ Example: Plan to build the app in 4 months with 4 coders.
3.​ Modeling: Draw how the software will work (like a blueprint).
■​ Example: Sketch the app’s menu and order screens.
4.​ Construction: Write code and test it.
■​ Example: Code the order feature and test if it works.
5.​ Deployment: Give the software to users and fix issues.
■​ Example: Launch the app and update it if users report bugs.
○​ Analogy: Like building a Lego set—talk to the kid (what model?), plan
pieces, design the structure, build it, and show it off.

2.2 Defining a Framework Activity

●​ Definition of Framework Activity:


○​ A framework activity is one of the main steps in a process model (like
Communication or Construction).
○​ Each step has smaller tasks to complete it.
○​ Example: For “Modeling,” tasks include drawing a diagram of how users
order food in the app.
○​ Analogy: Each activity is like a chapter in a book, with smaller sections
inside.

2.3 Identifying a Task Set

●​ Definition of Task Set:


○​ A task set is a list of specific jobs to do for a framework activity.
○​ Example: For “Construction,” tasks are:
■​ Write code for the order button.
■​ Test the button to ensure it works.
■​ Fix any errors found.
○​ Why It Matters: Keeps the team organized, like a to-do list.
○​ Analogy: Like a shopping list for cooking—you need specific items (tasks) to
make the dish (activity).

2.4 Process Assessment and Improvement

●​ Definition of Process Assessment:


○​ Checking how well the process is working to find problems.
○​ Example: If the app is delayed, check if planning was bad.
●​ Definition of Process Improvement:
○​ Making the process better to avoid problems and save time.
○​ Uses standards like CMMI (a guide to improve processes).
○​ Example: Add a tool to test the app automatically, saving time.
○​ Analogy: Like checking why your cake tastes bad (assessment) and using a
better recipe next time (improvement).

2.5 Prescriptive Process Models

●​ Definition of Prescriptive Process Model:


1.​ A specific, detailed plan for building software, unlike the flexible generic
model.
2.​ Each model has strict steps to follow.
●​ Types of Prescriptive Models:
1.​ Waterfall Model:
■​ Definition: A step-by-step model where each phase (step) is
completed before the next begins, like a waterfall flowing down.
■​ Phases:
■​ Requirements Analysis: List what the software must do.
■​ System Design: Plan how it will work.
■​ Implementation: Write code.
■​ Testing: Check for errors.
■​ Deployment: Give it to users.
■​ Maintenance: Fix issues later.
■​ When to Use: For projects with clear, unchanging needs.
■​ Pros: Easy to follow, clear steps.
■​ Cons: Can’t change requirements mid-way.
■​ Example: Building a payroll system for a company with fixed rules.
■​ Analogy: Like following a strict recipe—you can’t add ingredients
after baking starts.
2.​ Prototyping Model:
■​ Definition: Build a rough version (prototype) of the software to show
users and get feedback before making the final version.
■​ Steps:
■​ Talk to users about needs.
■​ Build a prototype (e.g., a basic app screen).
■​ Show it to users and get feedback.
■​ Improve the prototype or build the final software.
■​ When to Use: When users aren’t sure what they want.
■​ Pros: Helps understand user needs.
■​ Cons: May skip proper planning or documentation.
■​ Example: Creating a prototype of a game’s menu to see if players
like it.
■​ Analogy: Like sketching a dress design to check if the client likes it
before sewing.
3.​ Evolutionary Process Model:
■​ Definition: Build software in small parts, releasing each part to users
and improving it based on feedback.
■​ Types:
■​ Incremental: Add new features in each version.
■​ Spiral: Focus on risks in each cycle.
■​ Steps:
■​ Build a small part (e.g., basic app).
■​ Release it and get feedback.
■​ Add more features and repeat.
■​ When to Use: For projects where needs change often.
■​ Pros: Users get software early, easy to change.
■​ Cons: Can get messy if too many changes are added.
■​ Example: A music app starts with a play feature, then adds playlists
later.
■​ Analogy: Like building a house room by room, letting the owner use it
while adding more.
4.​ Unified Process Model:
■​ Definition: A model that builds software in cycles (iterations), with
four main phases.
■​ Phases:
■​ Inception: Plan the project, define goals, and check if it’s
possible.
■​ Elaboration: Design the system and fix major problems.
■​ Construction: Write most of the code.
■​ Transition: Deliver the software and fix issues.
■​ Key Feature: Uses use cases (stories of how users will use the
software) to define needs.
■​ When to Use: For complex projects needing structure and flexibility.
■​ Pros: Balances planning and adaptability.
■​ Cons: Can be complicated for small projects.
■​ Example: Building a banking app with use cases like “user withdraws
money.”
■​ Analogy: Like writing a book—plan the plot, draft chapters, write the
full story, and publish.
5.​ V-Model (From Quiz Context, Related to Pressman’s Prescriptive Models)**:
■​ Definition: An extension of the Waterfall Model where each
development phase has a matching testing phase, forming a “V”
shape.
■​ Phases:
■​ Requirements Analysis ↔ Acceptance Testing (check if it
meets user needs).
■​ System Design ↔ System Testing (check if the system works
together).
■​ Detailed Design ↔ Unit Testing (check individual parts).
■​ Implementation (coding).
■​ When to Use: For projects needing strong testing, like safety
systems.
■​ Pros: Testing is planned early, ensures quality.
■​ Cons: Hard to change requirements.
■​ Example: A hospital system where every feature is tested before
release.
■​ Analogy: Like building a bridge—plan and test each part (beams,
supports) before opening it.
6.​ Spiral Model (From Quiz Context, Pressman Section 2.5.3)**:
■​ Definition: A model that builds software in cycles, focusing on
identifying and fixing risks each time.
■​ Phases per Cycle:
■​ Objectives Definition: Set goals and needs.
■​ Risk Analysis: Find and fix potential problems.
■​ Engineering: Build and test a version.
■​ Evaluation: Check results and plan the next cycle.
■​ When to Use: For risky or complex projects, like space systems.
■​ Pros: Handles risks well.
■​ Cons: Can be expensive and slow.
■​ Example: A drone system where each cycle tests a new feature, like
navigation.
■​ Analogy: Like climbing a mountain—plan each step, check for
dangers, move up, and repeat.

2.6 Product and Process

●​ Definition of Product:
○​ The final software delivered to users, like an app or system.
○​ Example: A completed food delivery app.
●​ Definition of Process:
○​ The steps used to build the software, like Waterfall or Prototyping.
○​ Example: Using the Prototyping Model to build the app.
●​ Why They Matter:
○​ A good process makes a better product (fewer bugs, faster delivery).
○​ Example: Using the Evolutionary Model ensures a video app gets new
features users want.

Chapter 3: Agility and Process


3.1 What Is Agility?

●​ Definition of Agility:
○​ Agility is the ability to quickly adapt to changes in what users want or new
technology, while delivering software fast.
○​ It’s about being flexible, not stuck to a rigid plan.
○​ Example: A news app adds a “live updates” feature after users ask for it.
○​ Analogy: Like a chef tweaking a dish based on customer tastes during
cooking.

3.2 Agility and the Cost of Change

●​ Definition of Cost of Change:


○​ The cost (time and money) to fix or change software.
○​ In rigid models (like Waterfall), changes late in the project are expensive
because you redo a lot.
○​ Agile models make changes cheaper by working in small steps and testing
often.
○​ Example: Fixing a bug in a game app is easier if caught in a 2-week cycle,
not after 6 months.
○​ Analogy: Fixing a typo in a draft is easier than reprinting a published book.
3.3 What Is an Agile Process?

●​ Definition of Agile Process:


○​ An agile process is a flexible way to build software by working in short
cycles, delivering small parts often, and listening to users.
○​ It values people, working software, and adaptability over strict plans or
heavy paperwork.
●​ Key Ideas:
○​ Work closely with users.
○​ Release usable software every few weeks.
○​ Be ready to change plans.
○​ Test all the time to catch errors.
●​ Definition of Agility Principles:
○​ Rules for agile work, from the Agile Manifesto:
■​ Deliver working software often (every 2–4 weeks).
■​ Welcome changes, even late in the project.
■​ Talk to users daily.
■​ Trust the team to do good work.
○​ Example: A team builds a fitness app, releasing a workout tracker first, then
adding a diet planner after user feedback.
○​ Analogy: Like painting a house—do one room, show it to the owner, adjust
colors, and move to the next.
●​ Politics of Agile Development:
○​ Definition: Challenges when switching to agile, like resistance from teams or
bosses who like old methods.
○​ Example: A company used to Waterfall may not like Agile’s less detailed
plans.
○​ Analogy: Like convincing someone to try a new phone when they love their
old one.

3.4 Scrum

●​ Definition of Scrum:
○​ Scrum is a popular agile method that builds software in short cycles called
sprints (usually 2–4 weeks), delivering a working piece each time.
○​ It’s about teamwork, quick delivery, and fixing problems fast.
○​ Example: A team uses Scrum to build a travel app, delivering a flight
booking feature in one sprint.
○​ Analogy: Like running a relay race—each sprint is a lap, passing the baton
(software) to the next.
●​ Scrum Teams and Artifacts:
○​ Definition of Roles:
■​ Product Owner: Decides what features to build and their order.
■​ Example: Chooses to add flight booking before hotel booking.
■​ Scrum Master: Helps the team follow Scrum and solves problems.
■​ Example: Fixes a delay by getting a new computer for a
coder.
■​ Development Team: Builds the software (coders, testers, designers).
■​ Example: Codes and tests the booking feature.
○​ Definition of Artifacts:
■​ Product Backlog: A list of all features or tasks the software needs,
prioritized by the Product Owner.
■​ Example: A list with “flight booking,” “hotel booking,” and
“maps.”
■​ Sprint Backlog: The tasks chosen for the current sprint.
■​ Example: “Code flight booking” and “test search feature” for
a 2-week sprint.
■​ Increment: The working software delivered at the end of a sprint.
■​ Example: A flight booking feature users can try.
○​ Analogy: Like planning a party—make a wish list (Product Backlog), pick
tasks for today (Sprint Backlog), and finish the decorations (Increment).
●​ Scrum Events:
○​ Sprint Planning Meeting:
■​ Definition: A meeting to decide what to build in the next sprint and
how.
■​ Example: Plan to build the flight booking feature in 2 weeks.
■​ Duration: 4–8 hours for a month-long sprint.
○​ Daily Scrum Meeting:
■​ Definition: A quick 15-minute meeting every day to discuss what’s
done, what’s next, and any problems.
■​ Example: A coder says they finished the search button but needs
help with testing.
○​ Sprint Review Meeting:
■​ Definition: A meeting to show the finished work to users and get
feedback.
■​ Example: Show the flight booking feature and hear if users want
changes.
○​ Sprint Retrospective:
■​ Definition: A meeting to discuss what went well and what to improve
in the next sprint.
■​ Example: The team realizes testing took too long and plans to use a
new tool.
○​ Analogy: Like a school project—plan the topic, check progress daily, show
the draft to the teacher, and discuss how to do better next time.

You might also like