sep Flashcards

(22 cards)

1
Q

Main activities

A
  • Software specification
  • Software development
  • Software validation
  • Software evolution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

issue of
1. Heterogeneity
2. Business and social change
3. Security and trust and privacy

A
  1. Software systems are distributed and include different types of computer and mobile devices
  2. Business and society are changing quickly. Also their software needs to change quickly (i.e., change existing software and rapidly develop new software)
  3. As software is intertwined with all aspects of our lives, it is essential that we can trust that software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Software Engineering Fundamentals

A

dependability
performance
software specification and reqs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definition of a Software Engineering Process

A

A structured set of activities required to develop a software system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Common Activities to All SEP

A
  • Specification– What should the software do?
  • Design– How should the software do it?
  • Implementation– Do it!
  • Test and Validation– Check that the software does what the customer asked!
  • Maintenance and Evolution– Changing the software over time according to customer requests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Software Process Descriptions

A
  • Activities– what steps are defined by the model
  • Products– which are the outcomes of a process activity
  • Roles– which are the responsibilities of the people involved in the process
  • Pre- and post-conditions– which are the statements true before and after a process activity has been enacted or a product produced
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Plan-driven

A
  • All process activities are planned in advance
  • Progress is measured against this plan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

agile

A

Planning is incremental and it is easier to change the process to reflect changing customer requirements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Waterfall (software life cycle)

A
  • Plan-driven
  • Sequential activities
  • Separate and distinct activities
  1. req definition
  2. sd
  3. implementation and unit testing
  4. integration and system testing
  5. operation and maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Incremental development

A
  • Activities are interleaved
  • Plan-driven or agile
  1. outline description
  2. specification + development + validation
  3. initial version + intermediate versions + final version
  4. <->3.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Reuse-o8. riented software engineering

A
  • Software is assembled from existing components
  • Plan-driven or agile
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Waterfall: Advantages and Limitations

A

Advantages:
- Applied where requirements are stable
- Useful for work coordination in large projects where the development is done at several sites
- Easy to follow the progress

Limitations:
- Does not cope with changes in requirements
- Not flexible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Incremental Delivery

A
  1. define outline reqs
  2. assign req to increments
  3. design system architecture
  4. develop system increment
  5. validate increment
  6. integrate increment
  7. validate system
  8. deploy increment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Incremental Development Advantages

A
  • Customer value delivered with each increment
  • Functionality is available earlier
  • Early increments seen as a prototype to help elicit requirements for later increments
  • Lower risk of overall project failure
  • The highest priority functionality receives the most testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Incremental Development Limitations

A
  • The process is not visible
  • The structure/architecture tends to degrade by adding new
    increments
  • Most systems require basic facilities used by different
    functionality
  • Requirements not defined in detail until an increment is implemented -> hard to identify common facilities for all increments
  • The essence is that the specification is developed with the
    software
    • This conflicts with the procurement model of many organizations, where the complete specification is part of the development contract
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Boehm’s Spiral Model

17
Q

Spiral Model Sectors

A
  • Objective setting
    • Specific objectives for the phase are identified
  • Risk assessment and reduction
    • Risks are assessed and activities put in place to reduce the key risks
  • Development and validation
    • A development model for the system is chosen which can be any of the generic models.
  • Planning
    • The project is reviewed and the next phase is planned
  • Spiral Model Usage
    • Introduced iteration in software processes
    • Introduced the risk-driven approach to development
    • In practice, however, the model is rarely used as
      published for practical software development
18
Q

Reuse Oriented SE

A
  • Systematic reuse of available software
  • Systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems
  • Process steps:
    • Component analysis
    • Requirements modification/adaptation
    • System design with reuse
    • Development and integration
  • Reuse is now the standard approach for building many types of business system
19
Q

Rapid Application/Software Development (RAD)

A
  • Objective:
    • Produce useful software quickly
    • Based on prototyping
  • Main idea:
    • Software is developed in a series of increments
    • Each increment provides new functionality
  • Emerged as an alternative to Waterfall in 1980s and 1990s

RAD - Characteristics

  • Specification, design and implementation are interleaved
  • Software is developed as a series of versions with stakeholders involved in version evaluation
  • User interfaces are often developed using an IDE and graphical toolset
20
Q

Agile Methods

A
  • Reduce overheads in the software process (e.g., by limiting documentation)
  • Respond quickly to changing requirements without excessive rework
  • Practical guidelines:
    • Focus on the code rather than the design
    • Iterative approach to software development
    • Deliver working software quickly
    • Evolve software quickly to meet changing requirements
21
Q

Agile Manifesto

A

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

22
Q

Principles of Agile Methods

A

customer involvement
incremental delivery
people not process
embrace change
maintain simplicity