Lecture 1 Flashcards

1
Q

What are the 3 phases of an engineering project?

A
  1. Requirements are defined by the client and are refined and agreed upon by the contractor.
  2. Architects and engineers draw up plans according to best engineering practices.
  3. The plans are then implemented by builders, under the supervision and inspection of the engineers.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is software engineering

A

Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.

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

what are the “aspects of software production”?

A

Not just technical process of development. Also project management and the development of tools, methods etc. to support software production

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

What are the 4 SOEN fundamentals?

A

Systems should be developed using a managed and understood development process. Of course, different processes are used for different types of software.

Reliability and performance are important for all types of system.

Understanding and managing the software specification and requirements (what the software should do) are important.

Where appropriate, you should reuse software that has already been developed rather than writing new software.

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

What are the 4 attributes of good software?

A

Acceptability
Dependability and security
Efficiency
Maintainability

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

What is acceptability?

A

Software must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable and compatible with other systems that they use.

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

What is Dependability and Security?

A

Software dependability includes a range of characteristic including reliability, security and safety. Dependable software should not cause physical or economic damange in the event of a system failure. Software has to be secure so that malicious users cannot access or damage the system.

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

What is efficiency?

A

Software should not make wasteful use of system resource such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, resource util, etc.

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

What is maintainability

A

Software should be written in such a way that it can evolve to meet the changing needs of customers. This is a critical attribute because software change is an inevitable requirement of a changing business environment.`

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

What are the main SOEN activities

A

Specification
Development
Validation
Evolution

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

What is requirement/specification?

A

The process of establishing what services are required and the constraints on the system’s operation and development.

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

What are the 3 elements of the requirements?

A

Requirements elicitation and analysis
What do the system stakeholders require or expect from the system?
Requirements specification
Defining the requirements in detail
Requirements validation
Checking the validity of the requirements

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

What is software development.

A

Software development, where the software is designed and programmed.
The process of converting the system specification into an executable system.

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

What are the 2 steps of Software development

A

Design: Design a software structure that realizes the specification

Implementation: Translate this structure into an executable program

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

What are the 4 design activities

A

Architectural design
Component design
persistence and database design
Interface Design

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

What is architectural design

A

Architectural design, where you identify the overall structure of the system, the principal components (subsystems or modules), their relationships and how they are distributed.

17
Q

What is the database design

A

Persistence/Database design, where you design the system data structures and how these are to be represented in a database.

18
Q

What is interface Design

A

Interface design, where you define the interfaces between system components.

19
Q

Component Design

A

Component selection and design, where you search for reusable components. If unavailable, you design how it will operate.

20
Q

What is implementation

A

The software is implemented either by developing a program or programs or by configuring an application system.

Design and implementation are interleaved activities for most types of software system.

Programming is an individual activity with no standard process.

Debugging is the activity of finding program faults and correcting these faults.

21
Q

What is software Validation

A

basically, you try to break your code, and try to improve it and fix any faults

22
Q

What are the 3 components of validation testing

A

Component Testing

System Testing

Customer Testing

23
Q

What is component testing

A

Individual components are tested independently
Components may be functions or objects or coherent groupings of these entities.
Done by the person who writes the code
Often considered as part of coding

24
Q

What is system testing

A

Testing of the system as a whole. Testing of emergent properties is particularly important.
Feature testing, integration testing, API testing, performance testing…
Regression testing

25
Q

What is customer testing

A

Testing with customer data to check that the system meets the customer’s needs.
AKA: Acceptance testing, alpha testing
Field testing

26
Q

What is Software Evolution

A

Software is inherently flexible and will change.

As requirements change through changing business circumstances, the software that supports the business must also evolve and change.

Distinction between development and evolution (maintenance) is becoming irrelevant
fewer and fewer systems are completely new.

27
Q

What is Evolution / Maintenance

A

Maintaining and enhancing software to cope with newly discovered problems or new requirements can take far more time than the initial development of the software.

A part of that is fixing bugs. Most maintenance is extending systems to do new things, which in many ways can be considered new work.

You should specify the types of your maintenance and document it on issue tracking system.

28
Q

What are the 4 other activities that are not part of the main SOEN process, but complements to it?

A

Coding
Deployment
Documentation
Software training and support

29
Q

what is Deployment

A

Deployment
After the code is appropriately tested and approved, it is moved into production environment i.e. is made available for business use.

30
Q

What is Documentation

A

An important (and often overlooked) task is documenting the internal design of software for the purpose of future maintenance and enhancement.
Documentation is most important for external interfaces.

31
Q

What is software training and support

A

A large percentage of software projects fail because the developers fail to realize that it doesn’t matter how much time and planning a development team puts into creating software if nobody in the client organization ends up using it.