Soft Dev Flashcards
(133 cards)
Purpose of SDL
-Represents the development of software as phases or sets of activities
- Is driven by the desire to define a predictable process to improve quality
- Involves creating processes that can be effectively managed
Types of Software Development
-Waterfall
-Prototyping
-Rapid Application Development
-Agile
The selection is dependent on the project type and resources available
Describe the waterfall approach
It breaks the SDLC into distinct sequential phases. Each phase needs to be signed off before moving on. Projects are well-documented, but errors propagate through if not spotted, which is very expensive
Why are iterative or incremental designe processes often used
-It allows you to build on an existing platform, that you have confidence in
-It reduces the amount of time and resources required to develop a new product
-It reduces the risk of failure, or issues that could delay release
Why might incremntal changes not be enough
-The potential capacity of the design has been reached
-The new spec is beyond the capabilities of the previous design
-The previous design is not compatible with the new assembly it needs to integrate with
-The requirements priorities have changed and the previous design is not efficiently suited
On a V diagram what phases match with each other
Requirement analysis - System in use report
Requirement specification - System test
Functional design specification - Integration test
Detailed design - Unit test
Implementation
Explain Rapid application Development
-Heavy focus on tool use to reduce development time and costs (IDEs, GUI builders, database management systems)
-Planning and software implementation are interleaved
-Business need paramount
-Often development deadline prioritised over requirements
What is agile development
Development based on short iterative sprints. Examples include scrum and pair programming
Explain scrum
-Based on short fixed-length sprints
-Typically 2-4 weeks long
-Aim to produce deployable software in each sprint
-Sprint planning meeting
-Daily scrum meeting
-Sprint review meeting
Explain pair programming
-Two people working on a single task - one programs and the other is responsible for direction
-Roles are reversed periodically
-Better productivity than working independently
-Promotes dissemination of project knowledge among the team
-Good for transferring skill to junior developers
Advantages of agile development
-User engagement
-Rapid development of usable product
-Early testing catches bugs and results in high quality product
-Small incremental changes mitigate the potential risk of introducing a large change to a system
Examples of design documents
-Software architecture
-Data flow diagram
-State transition diagram
-Flowchart
-Commented code
What are the two types of nested classes
-Static nested (doesnt have access to instance members)
-Inner (has access to intance members)
What modifers can a nested class be declared with
-Public
-Private
-Protected
-Package private
How are the nested classes accessed
-static nested: using the enclosing name
-inner: using an instance of the enclosing name
-all nested classes can be accessed externally through either the containing class or object
What are local classes
Classes that are defined and exist in a block/method. They cannot contain public, protected, private or static access modifiers. They cannot access local variables unless they are declared as final. They can access all the members of the outer class instance like inner class members.
What are anonymous classes
They are declared without any name at all. They can be defined in a method or in an argument to a method
What are enums
They are used for creating variables with specifc ranges. They can be declared as a separate class, or as a class member, but not internally in a method
What are threads
-Treated as a lightweight process
-Every process has at least one thread
-Threading allows for shared memory space
How does the OS handle threads on a single and multicore processor
-Single - virtually in parallel
-Multi - actually ran in parallel
What is liveness
The issue of the code not performing correctly in time
How are threads created in Java
-Extending thread class
-Implementing runnable interface
What is a race condition
Two threads trying to access/change data at the same time
How do you use synchronise
Synchronise can be used on a method or a few statements