Systems Engineering Flashcards

1
Q

Software Engineering

A

concerned with
- technical processes of software dev
- project management activities
- development of tools, methods and theories supporting software dev

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

What is the main benefit of using Software Engineering Principles?

A

Better quality code

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

When does software development take place within the software engineering lifecycle?

A
  1. software spec
  2. software dev < < <
  3. software testing
  4. software documentation
  5. software maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the 4 advantages of using software engineering principles?

A
  • Maintainability
  • Dependability and Security
  • Efficiency
  • Acceptability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Maintainability:

A
  • software written to be able to adapt to changing needs
  • changing needs of the customer and business
    environment is inevitable
  • code design and written to be easily to changed (without refactoring and completely rewriting)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Dependability and Security:

A
  • dependability = reliable, secure and safe software
  • software should not cause physical or economic damage in the case of system failure
  • malicious users should not be able to access or damage system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Efficiency:

A
  • software should make efficient use of system resources
  • responsiveness, processing time, memory, usage
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Acceptability:

A
  • software must be acceptable for its users
  • understandable, usable, compatible with OSs
  • design for adults different to children
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the 4 main aspects that make up software engineering?

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

Software specification

A
  • customers and developers define software product to be developed
  • scope, functional requirements, constraints
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

software development

A
  • process of designing and creating the software product
  • engineers/developers programming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Software validation:

A
  • checking software to ensure it meets requirements
  • testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

software evolution

A
  • modifying software to reflect changing requirements for customer and market
  • maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What 3 factors make up software engineering diversity?

A
  • heterogeneity
  • social and business change
  • security and trust
  • considered when producing software to ensure software meets standards
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Heterogeneity:

A
  • systems have to operate as distributed systems across networks, including different types of computing devices and operating systems, different languages, etc.
  • need to develop techniques for building dependable software that can cope with this heterogeneity
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Social and Business change:

A
  • businesses and society changes rapidly with emerging economies
  • software needs to keep up with this changes
  • new software needs to be built rapidly
  • traditional techniques are time consuming
  • need to be able to reduce time for which software is able to produce value for its customers
17
Q

Security and Trust:

A
  • software is present in all aspects of our lives
  • needs to be trusted
  • especially remote systems
  • need to protect users from malicious users and maintain information security
18
Q

How can these factors be managed?

A
  • use software engineering processes
  • use different techniques for different system types
  • when developing software, software engineering principles need to be adhered to
19
Q

What is true for any software system? (4)

A
  • the development process needs to be managed and understood
  • there needs to be focus on dependability and performance
  • software requirements are understood and managed
  • effective use/reuse of resources
20
Q

Project management processes:

A
  • help development of software systems
21
Q

Give examples of areas making use of project management processes:

A
  • planning
  • communication
  • people management
  • methods/methodologies
  • tools
  • ethics
22
Q

Methods for software development:

A
  • different methodologies exist
  • each needed for specific project to ensure good software quality
23
Q

6 Development life cycle phases

A
  1. analysis - requirements, PO, PM, BA, CEO
  2. design - architecture, System architect, UX designers
  3. development - programming, engineers, developers
  4. testing - testing, solutions architect, QA, DevOps
  5. deployment - release, DevOps
  6. maintenance - software maintenance, users, testers
24
Q

Waterfall methodology stages:

A

1 discovery
2 design
3 coding
4 testing
5 deployment
6 maintenance

25
Q

Typical agile methodology stages:

A

1 plan
2 design
3 develop
4 test
5 deploy
6 review
7 repeat 1-6 in increments or iterations until software is complete
8 launch

26
Q

Ethics (4):

A
  • confidentiality - respect employers and clients confidentiality
  • competence - do not misrepresent competence
  • intellectual property rights - aware of law governing use of IP
  • computer misuse - do not use technical skills for malice