Software Engineering Methodologies and Project Management, Cheat Sheet of Software Development

An overview of various software engineering methodologies, including waterfall, incremental, and agile-based approaches. It discusses the pros and cons of each methodology, the role of documentation, and the creation of project documents. The document also covers the v-shaped model and rapid application development (rad) methodology, and provides guidance on when to use each approach.

Typology: Cheat Sheet

2023/2024

Uploaded on 04/23/2024

minh_1709
minh_1709 🇻🇳

4 documents

1 / 75

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
SDLC Models
“You’ve got to be very careful if you don’t know where you’re going,
because you might not get there.”
Yogi Berra
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b

Partial preview of the text

Download Software Engineering Methodologies and Project Management and more Cheat Sheet Software Development in PDF only on Docsity!

SDLC Models

“You’ve got to be very careful if you don’t know where you’re going, because you might not get there.” Yogi Berra

  • There are many different methodologies in use for software engineering
  • Plan-based software engineering produces a large amount of documentation for sustainable projects - Waterfall, Incremental, Reuse-oriented, Spiral
  • Agile-based software engineering sacrifices documentation for earlier release dates and more adaptability to changing requirements - eXtreme Programming (XP), Scrum, Scrum-but

Methodologies

  • Royce’s waterfall model follows a very strict lifecycle (paper on Lectures page)
  • Each phase is signed off before moving to the next

Waterfall Model

  • Incremental development develops an initial implementation, exposes this to user comment, and evolves through several versions Incremental Development
  • The initial requirements stage is similar to waterfall, but modification occurs later in the process based on what reusable components were discovered Reuse-oriented Software Engineering
  • There are three types of software components that may be used in the reuse-oriented process - Web services that are available for remote invocation - Collections of objects developed as a package, such as J2EE or .NET - Stand-alone software systems configured for use in a particular environment Reuse-oriented Software Engineering Use
  • Software is not developed as a single unit but as a series of increments
  • Here are some fundamental characteristics
    • Documentation is minimized
    • Customers are involved in the development process
    • Releases are typically every 2-3 weeks Rapid Software Development
  • Agile method philosophy We are uncovering better ways of developing software by doing it and helping others do it. Through this work, we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more
  • DeMarco and Boehm discuss the advantages and disadvantages of agile methods (paper on Lectures page)

Agile Methods

  • Programmers work in pairs to develop software - Supports the idea of collective ownership - Acts as an informal review process - Helps support refactoring
  • The productivity of most pair programming actually rivals that of two programmers working independently - Less rework, fewer errors
  • With more experienced programmers, the productivity is typically lower than two independent programmers though higher than one programmer

Pair Programming in XP

  • Scrum focuses on managing iterative development rather than specific technical approaches to agile software engineering

Scrum

  • Is it important to have a very detailed specification and design before moving to implementation?
  • Is an incremental delivery strategy realistic?
  • How large is the system being developed?
  • What type of system is being developed?
  • What is the expected system lifetime?
  • What technologies are available to support system development?
  • How is the development team organized?
  • Are there cultural issues that may affect the system development?
  • How good are the designers and programmers in the development team?
  • Is the system subject to external regulation? Agile-Based vs Plan-Based Methods
  • Software Processes – Plan-Based
  • Software Processes – Agile-Based
  • Waterfall Example

Outline

  • Many projects start off with a concept document
  • This would usually consist of 1-2 paragraphs explaining what the stakeholder would like
  • It sometimes also includes motivation for wanting the project implemented

Concept

  • It would be great if students could submit a programming assignment and have it graded instantaneously in an automated manner. This would reduce time and money paying a grader and provide students an opportunity to submit their program more than once in an effort to improve their score.

Example – Concept