1/33
Flashcards based on lecture notes covering software engineering principles, methodologies, and team work.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What are the dual aspects of Computer Science?
It's both a science (algorithms, data structures) and an engineering discipline (building software).
Why is the engineering aspect important in software development?
To build large, complex systems that meet specifications, are on time, and on budget.
What are the criteria for a successful software system (B2T)?
On brief (specification), on budget, on time.
Why is planning important in software development?
Because software development is complex, requires teamwork, involves time and money constraints, provides direction, and measures progress.
What are some important considerations for scheduling in software development?
Dependencies between tasks, realistic time estimates, and allocation of people to tasks.
What are Gantt charts used for in scheduling?
Visual representation of tasks, dependencies, and completion times.
What is a milestone in software development?
A check of progress, usually at the end of a distinct stage, that must be verifiable.
What is a deliverable in software development?
A tangible progress marker, often delivered to the customer, and also a milestone.
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.
What are important aspects of team meetings in software development?
Regularity, focus, and efficient use of time.
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.
What are the stages in the traditional software life cycle?
Specification, Design, Implementation, Testing, and Maintenance.
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.
What are some aspects of Software Design?
System design, algorithm & data structure design, and user interface design.
What happens during the implementation phase of the SDLC?
Transforming design into reality, choosing programming methodologies and languages.
What are the different levels of Testing?
Individual objects/methods, integration, system, and usability testing.
What does the maintenance phase involve?
Fixing problems, patching holes, minor adjustments for new requirements, and helping users.
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.
Name some popular agile methodologies.
Extreme Programming (XP) and Scrum.
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.
What is Extreme Programming (XP)?
An iterative, lightweight process for software development with little documentation or administration overhead.
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).
What is Pair Programming in XP?
All code is created by two people, a Driver and a Navigator, working together at a single computer.
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.
What is Continuous Integration in XP?
Integrating code into the repository on a daily or hourly basis after unit testing.
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.
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.
What is Scrum?
A methodology based on managing projects in manufacturing sector.
What are the three major roles in a Scrum team?
Scrum Master, Product Owner, and Team.
What is the role of Scrum Master?
Primarily responsible for managing the process.
What is the role of Product Owner?
Typically represents clients and prioritizes feature wishlist.
What does the Scrum process involve?
Iterative cycles known as sprints, Sprint Planning Meeting, Daily Scrum, Sprint Review Meeting.
What are the two primary documents used in Scrum?
Product backlog and Sprint backlog.
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.