CSC1011H Software Engineering Flashcards

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/33

flashcard set

Earn XP

Description and Tags

Flashcards based on lecture notes covering software engineering principles, methodologies, and team work.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

34 Terms

1
New cards

What are the dual aspects of Computer Science?

It's both a science (algorithms, data structures) and an engineering discipline (building software).

2
New cards

Why is the engineering aspect important in software development?

To build large, complex systems that meet specifications, are on time, and on budget.

3
New cards

What are the criteria for a successful software system (B2T)?

On brief (specification), on budget, on time.

4
New cards

Why is planning important in software development?

Because software development is complex, requires teamwork, involves time and money constraints, provides direction, and measures progress.

5
New cards

What are some important considerations for scheduling in software development?

Dependencies between tasks, realistic time estimates, and allocation of people to tasks.

6
New cards

What are Gantt charts used for in scheduling?

Visual representation of tasks, dependencies, and completion times.

7
New cards

What is a milestone in software development?

A check of progress, usually at the end of a distinct stage, that must be verifiable.

8
New cards

What is a deliverable in software development?

A tangible progress marker, often delivered to the customer, and also a milestone.

9
New cards

What should be considered when dividing labor in a software development team?

Ensuring a fair breakdown, using strengths/skills of each member, planning for integration of separate work, and ensuring related sub-tasks are done by the same person.

10
New cards

What are important aspects of team meetings in software development?

Regularity, focus, and efficient use of time.

11
New cards

Name some common project pitfalls in software development.

Coding before planning, no milestones, unrealistic goals, great plan no action, rigid task completion, one-man show, or inadequate documentation.

12
New cards

What are the stages in the traditional software life cycle?

Specification, Design, Implementation, Testing, and Maintenance.

13
New cards

What is the role of analyst in software development?

The link between users and developers, uncovering issues, writing specifications, dealing with management, solving problems, and having good communication skills.

14
New cards

What are some aspects of Software Design?

System design, algorithm & data structure design, and user interface design.

15
New cards

What happens during the implementation phase of the SDLC?

Transforming design into reality, choosing programming methodologies and languages.

16
New cards

What are the different levels of Testing?

Individual objects/methods, integration, system, and usability testing.

17
New cards

What does the maintenance phase involve?

Fixing problems, patching holes, minor adjustments for new requirements, and helping users.

18
New cards

What are some problems with the traditional software development lifecycle that led to the development of Agile methodologies?

Unsatisfied clients, over budget projects, and overrun deadlines.

19
New cards

Name some popular agile methodologies.

Extreme Programming (XP) and Scrum.

20
New cards

What are the values of the Agile Manifesto?

Individuals and interactions over processes and tools, working software over documentation, customer collaboration over contract negotiation, and responding to change over following a plan.

21
New cards

What is Extreme Programming (XP)?

An iterative, lightweight process for software development with little documentation or administration overhead.

22
New cards

What are aspects of the XP style?

Iterative development, just-in-time planning, emphasis on testing (unit tests first), and careful consideration of people issues (pair programming, stand-up meetings).

23
New cards

What is Pair Programming in XP?

All code is created by two people, a Driver and a Navigator, working together at a single computer.

24
New cards

What is Collective Code Ownership in XP?

Everyone owns and has access to all the code, with the right to view, change, and improve any part of it.

25
New cards

What is Continuous Integration in XP?

Integrating code into the repository on a daily or hourly basis after unit testing.

26
New cards

What type of emphasis does XP have in Testing?

Programmers create automated unit tests first, then write just enough code to pass them. Also, acceptance tests are developed for each user requirement.

27
New cards

What are some other features of XP?

A client representative works with the team, no overtime, no specialization, no overall design phase, refactoring, and moving people around.

28
New cards

What is Scrum?

A methodology based on managing projects in manufacturing sector.

29
New cards

What are the three major roles in a Scrum team?

Scrum Master, Product Owner, and Team.

30
New cards

What is the role of Scrum Master?

Primarily responsible for managing the process.

31
New cards

What is the role of Product Owner?

Typically represents clients and prioritizes feature wishlist.

32
New cards

What does the Scrum process involve?

Iterative cycles known as sprints, Sprint Planning Meeting, Daily Scrum, Sprint Review Meeting.

33
New cards

What are the two primary documents used in Scrum?

Product backlog and Sprint backlog.

34
New cards

How does Waterfall methodology contrast with Agile?

Waterfall is rigid, linear, has infrequent client interaction and lots of documentation. Agile is flexible, circular, has frequent client interaction, and only necessary documentation.